@gomomento/sdk
Advanced tools
Comparing version 0.13.0 to 0.13.1
@@ -16,2 +16,3 @@ { | ||
"scripts": { | ||
"prebuild": "eslint . --ext .ts", | ||
"test": "jest", | ||
@@ -18,0 +19,0 @@ "integration": "jest --config jest-integration.config.js", |
@@ -6,6 +6,7 @@ import { Interceptor } from '@grpc/grpc-js'; | ||
} | ||
export declare function createRetryInterceptorIfEnabled(options: RetryInterceptorOptions): Array<Interceptor>; | ||
export declare class RetryInterceptor { | ||
private readonly logger; | ||
constructor(options?: RetryInterceptorOptions); | ||
addRetryInterceptor(): Interceptor; | ||
createRetryInterceptor(): Interceptor; | ||
} |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.RetryInterceptor = void 0; | ||
exports.RetryInterceptor = exports.createRetryInterceptorIfEnabled = void 0; | ||
// This is temporary work around defining our own interceptor to power re-try's | ||
@@ -36,8 +36,20 @@ // Longer term with this proposal re-try's should be added to grpc core, and we | ||
]; | ||
// TODO: Retry interceptor behavior should be configurable, but we need to | ||
// align on basic API design first: https://github.com/momentohq/client-sdk-javascript/issues/79 . | ||
// For now, for convenience during development, you can toggle this hard-coded | ||
// variable to enable/disable it. | ||
const RETRIES_ENABLED = true; | ||
function createRetryInterceptorIfEnabled(options) { | ||
if (RETRIES_ENABLED) { | ||
return [new RetryInterceptor(options).createRetryInterceptor()]; | ||
} | ||
else { | ||
return []; | ||
} | ||
} | ||
exports.createRetryInterceptorIfEnabled = createRetryInterceptorIfEnabled; | ||
class RetryInterceptor { | ||
constructor(options) { | ||
this.logger = (0, logging_1.getLogger)(this.constructor.name, options === null || options === void 0 ? void 0 : options.loggerOptions); | ||
this.logger = (0, logging_1.getLogger)(this, options === null || options === void 0 ? void 0 : options.loggerOptions); | ||
} | ||
// TODO: Retry interceptor behavior should be configurable, but we need to | ||
// align on basic API design first: https://github.com/momentohq/client-sdk-javascript/issues/79 | ||
// TODO: We need to send retry count information to the server so that we | ||
@@ -48,3 +60,3 @@ // will have some visibility into how often this is happening to customers: | ||
// https://github.com/momentohq/client-sdk-javascript/issues/81 | ||
addRetryInterceptor() { | ||
createRetryInterceptor() { | ||
const logger = this.logger; | ||
@@ -96,7 +108,7 @@ return (options, nextCall) => { | ||
if (retryableGrpcStatusCodes.includes(status.code)) { | ||
logger.debug(`Request path: ${options.method_definition.path}; response status code: ${status.code}; eligible for retry.`); | ||
logger.debug(`Request path: ${options.method_definition.path}; response status code: ${status.code}; number of retries (${retries}) is less than max (${maxRetry}), retrying.`); | ||
retry(savedSendMessage, savedMetadata); | ||
} | ||
else { | ||
logger.debug(`Request path: ${options.method_definition.path}; response status code: ${status.code}; not eligible for retry.`); | ||
logger.trace(`Request path: ${options.method_definition.path}; response status code: ${status.code}; not eligible for retry.`); | ||
savedMessageNext(savedReceiveMessage); | ||
@@ -114,2 +126,2 @@ next(status); | ||
exports.RetryInterceptor = RetryInterceptor; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV0cnlJbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncnBjL1JldHJ5SW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSwyQ0FBMkM7QUFDM0Msc0ZBQXNGO0FBQ3RGLDBHQUEwRztBQUMxRyxnR0FBZ0c7QUFDaEcsNEZBQTRGO0FBQzVGLDJDQU11QjtBQUN2QixpRUFBeUQ7QUFDekQsOENBQWtFO0FBRWxFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVuQixNQUFNLHdCQUF3QixHQUFrQjtJQUM5QyxvREFBb0Q7SUFDcEQsNkRBQTZEO0lBRTdELGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4QixrQkFBTSxDQUFDLFFBQVE7SUFDZixrQkFBTSxDQUFDLFdBQVc7SUFDbEIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtDQUMxQixDQUFDO0FBTUYsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBWSxPQUFpQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsbUJBQVMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxnR0FBZ0c7SUFDaEcseUVBQXlFO0lBQ3pFLDJFQUEyRTtJQUMzRSwrREFBK0Q7SUFDL0QsdURBQXVEO0lBQ3ZELCtEQUErRDtJQUN4RCxtQkFBbUI7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztR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QVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDOUIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhGRCw0Q0F3RkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGlzIHRlbXBvcmFyeSB3b3JrIGFyb3VuZCBkZWZpbmluZyBvdXIgb3duIGludGVyY2VwdG9yIHRvIHBvd2VyIHJlLXRyeSdzXG4vLyBMb25nZXIgdGVybSB3aXRoIHRoaXMgcHJvcG9zYWwgcmUtdHJ5J3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGdycGMgY29yZSwgYW5kIHdlXG4vLyBjYW4gbGV2ZXJhZ2UgYnkgZGVmaW5pbmcgYSByZXRyeSBwb2xpY3kuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZ3JwYy9wcm9wb3NhbC9ibG9iL21hc3Rlci9BNi1jbGllbnQtcmV0cmllcy5tZCNncnBjLXJldHJ5LWRlc2lnblxuLy8gRm9yIG5vdyB3ZSB1c2UgcmUtdHJ5IGludGVyY2VwdG9yIGluc3BpcmVkIGJ5IGV4YW1wbGUgaGVyZSBpbiBpbnRlcmNlcHRvciBwcm9wb3NhbCBmb3Igbm9kZWpzIGdycGMgY29yZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dycGMvcHJvcG9zYWwvYmxvYi9tYXN0ZXIvTDUtbm9kZS1jbGllbnQtaW50ZXJjZXB0b3JzLm1kI2FkdmFuY2VkLWV4YW1wbGVzXG4vLyBNYWluIGRpZmZlcmVuY2UgaXMgdGhhdCB3ZSBtYWludGFpbiBhIGFsbG93IGxpc3Qgb2YgcmV0cnlhYmxlIHN0YXR1cyBjb2RlcyB2cyB0cnlpbmcgYWxsLlxuaW1wb3J0IHtcbiAgSW50ZXJjZXB0aW5nQ2FsbCxcbiAgSW50ZXJjZXB0b3IsXG4gIExpc3RlbmVyLFxuICBNZXRhZGF0YSxcbiAgU3RhdHVzT2JqZWN0LFxufSBmcm9tICdAZ3JwYy9ncnBjLWpzJztcbmltcG9ydCB7U3RhdHVzfSBmcm9tICdAZ3JwYy9ncnBjLWpzL2J1aWxkL3NyYy9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRMb2dnZXIsIExvZ2dlciwgTG9nZ2VyT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvbG9nZ2luZyc7XG5cbmNvbnN0IG1heFJldHJ5ID0gMztcblxuY29uc3QgcmV0cnlhYmxlR3JwY1N0YXR1c0NvZGVzOiBBcnJheTxTdGF0dXM+ID0gW1xuICAvLyBpbmNsdWRpbmcgYWxsIHRoZSBzdGF0dXMgY29kZXMgZm9yIHJlZmVyZW5jZSwgYnV0XG4gIC8vIGNvbW1lbnRpbmcgb3V0IHRoZSBvbmVzIHdlIGRvbid0IHdhbnQgdG8gcmV0cnkgb24gZm9yIG5vdy5cblxuICAvLyBTdGF0dXMuT0ssXG4gIC8vIFN0YXR1cy5DQU5DRUxMRUQsXG4gIC8vIFN0YXR1cy5VTktOT1dOLFxuICAvLyBTdGF0dXMuSU5WQUxJRF9BUkdVTUVOVCxcbiAgLy8gU3RhdHVzLkRFQURMSU5FX0VYQ0VFREVELFxuICAvLyBTdGF0dXMuTk9UX0ZPVU5ELFxuICAvLyBTdGF0dXMuQUxSRUFEWV9FWElTVFMsXG4gIC8vIFN0YXR1cy5QRVJNSVNTSU9OX0RFTklFRCxcbiAgLy8gU3RhdHVzLlJFU09VUkNFX0VYSEFVU1RFRCxcbiAgLy8gU3RhdHVzLkZBSUxFRF9QUkVDT05ESVRJT04sXG4gIC8vIFN0YXR1cy5BQk9SVEVELFxuICAvLyBTdGF0dXMuT1VUX09GX1JBTkdFLFxuICAvLyBTdGF0dXMuVU5JTVBMRU1FTlRFRCxcbiAgU3RhdHVzLklOVEVSTkFMLFxuICBTdGF0dXMuVU5BVkFJTEFCTEUsXG4gIC8vIFN0YXR1cy5EQVRBX0xPU1MsXG4gIC8vIFN0YXR1cy5VTkFVVEhFTlRJQ0FURURcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlJbnRlcmNlcHRvck9wdGlvbnMge1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFJldHJ5SW50ZXJjZXB0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBSZXRyeUludGVyY2VwdG9yT3B0aW9ucykge1xuICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSwgb3B0aW9ucz8ubG9nZ2VyT3B0aW9ucyk7XG4gIH1cblxuICAvLyBUT0RPOiBSZXRyeSBpbnRlcmNlcHRvciBiZWhhdmlvciBzaG91bGQgYmUgY29uZmlndXJhYmxlLCBidXQgd2UgbmVlZCB0b1xuICAvLyBhbGlnbiBvbiBiYXNpYyBBUEkgZGVzaWduIGZpcnN0OiBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50b2hxL2NsaWVudC1zZGstamF2YXNjcmlwdC9pc3N1ZXMvNzlcbiAgLy8gVE9ETzogV2UgbmVlZCB0byBzZW5kIHJldHJ5IGNvdW50IGluZm9ybWF0aW9uIHRvIHRoZSBzZXJ2ZXIgc28gdGhhdCB3ZVxuICAvLyB3aWxsIGhhdmUgc29tZSB2aXNpYmlsaXR5IGludG8gaG93IG9mdGVuIHRoaXMgaXMgaGFwcGVuaW5nIHRvIGN1c3RvbWVyczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudG9ocS9jbGllbnQtc2RrLWphdmFzY3JpcHQvaXNzdWVzLzgwXG4gIC8vIFRPRE86IHdlIG5lZWQgdG8gYWRkIGJhY2tvZmYvaml0dGVyIGZvciB0aGUgcmV0cmllczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudG9ocS9jbGllbnQtc2RrLWphdmFzY3JpcHQvaXNzdWVzLzgxXG4gIHB1YmxpYyBhZGRSZXRyeUludGVyY2VwdG9yKCk6IEludGVyY2VwdG9yIHtcbiAgICBjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlcjtcblxuICAgIHJldHVybiAob3B0aW9ucywgbmV4dENhbGwpID0+IHtcbiAgICAgIGxldCBzYXZlZE1ldGFkYXRhOiBNZXRhZGF0YTtcbiAgICAgIGxldCBzYXZlZFNlbmRNZXNzYWdlOiBhbnk7XG4gICAgICBsZXQgc2F2ZWRSZWNlaXZlTWVzc2FnZTogYW55O1xuICAgICAgbGV0IHNhdmVkTWVzc2FnZU5leHQ6IChhcmcwOiBhbnkpID0+IHZvaWQ7XG4gICAgICByZXR1cm4gbmV3IEludGVyY2VwdGluZ0NhbGwobmV4dENhbGwob3B0aW9ucyksIHtcbiAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChtZXRhZGF0YSwgbGlzdGVuZXIsIG5leHQpIHtcbiAgICAgICAgICBzYXZlZE1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgICAgY29uc3QgbmV3TGlzdGVuZXI6IExpc3RlbmVyID0ge1xuICAgICAgICAgICAgb25SZWNlaXZlTWVzc2FnZTogZnVuY3Rpb24gKFxuICAgICAgICAgICAgICBtZXNzYWdlOiBhbnksXG4gICAgICAgICAgICAgIG5leHQ6IChhcmcwOiBhbnkpID0+IHZvaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICAgIHNhdmVkUmVjZWl2ZU1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICAgICAgICBzYXZlZE1lc3NhZ2VOZXh0ID0gbmV4dDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblJlY2VpdmVTdGF0dXM6IGZ1bmN0aW9uIChcbiAgICAgICAgICAgICAgc3RhdHVzOiBTdGF0dXNPYmplY3QsXG4gICAgICAgICAgICAgIG5leHQ6IChhcmcwOiBhbnkpID0+IHZvaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBsZXQgcmV0cmllcyA9IDA7XG4gICAgICAgICAgICAgIGNvbnN0IHJldHJ5ID0gZnVuY3Rpb24gKG1lc3NhZ2U6IGFueSwgbWV0YWRhdGE6IE1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0cmllcysrO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NhbGwgPSBuZXh0Q2FsbChvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgIG5ld0NhbGwuc3RhcnQobWV0YWRhdGEsIHtcbiAgICAgICAgICAgICAgICAgIG9uUmVjZWl2ZU1lc3NhZ2U6IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgc2F2ZWRSZWNlaXZlTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgb25SZWNlaXZlU3RhdHVzOiBmdW5jdGlvbiAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXRyeWFibGVHcnBjU3RhdHVzQ29kZXMuaW5jbHVkZXMoc3RhdHVzLmNvZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJldHJpZXMgPD0gbWF4UmV0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlcXVlc3QgcGF0aDogJHtvcHRpb25zLm1ldGhvZF9kZWZpbml0aW9uLnBhdGh9OyByZXRyeWFibGUgc3RhdHVzIGNvZGU6ICR7c3RhdHVzLmNvZGV9OyBudW1iZXIgb2YgcmV0cmllcyAoJHtyZXRyaWVzfSkgaXMgbGVzcyB0aGFuIG1heCAoJHttYXhSZXRyeX0pLCByZXRyeWluZy5gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnkobWVzc2FnZSwgbWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBSZXF1ZXN0IHBhdGg6ICR7b3B0aW9ucy5tZXRob2RfZGVmaW5pdGlvbi5wYXRofTsgcmV0cnlhYmxlIHN0YXR1cyBjb2RlOiAke3N0YXR1cy5jb2RlfTsgbnVtYmVyIG9mIHJldHJpZXMgKCR7cmV0cmllc30pIGhhcyBleGNlZWRlZCBtYXggKCR7bWF4UmV0cnl9KSwgbm90IHJldHJ5aW5nLmBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlZE1lc3NhZ2VOZXh0KHNhdmVkUmVjZWl2ZU1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dChzdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzYXZlZE1lc3NhZ2VOZXh0KHNhdmVkUmVjZWl2ZU1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgIG5leHQoe2NvZGU6IHN0YXR1cy5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGlmIChyZXRyeWFibGVHcnBjU3RhdHVzQ29kZXMuaW5jbHVkZXMoc3RhdHVzLmNvZGUpKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgYFJlcXVlc3QgcGF0aDogJHtvcHRpb25zLm1ldGhvZF9kZWZpbml0aW9uLnBhdGh9OyByZXNwb25zZSBzdGF0dXMgY29kZTogJHtzdGF0dXMuY29kZX07IGVsaWdpYmxlIGZvciByZXRyeS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXRyeShzYXZlZFNlbmRNZXNzYWdlLCBzYXZlZE1ldGFkYXRhKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgICBgUmVxdWVzdCBwYXRoOiAke29wdGlvbnMubWV0aG9kX2RlZmluaXRpb24ucGF0aH07IHJlc3BvbnNlIHN0YXR1cyBjb2RlOiAke3N0YXR1cy5jb2RlfTsgbm90IGVsaWdpYmxlIGZvciByZXRyeS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBzYXZlZE1lc3NhZ2VOZXh0KHNhdmVkUmVjZWl2ZU1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIG5leHQoc3RhdHVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIG5leHQobWV0YWRhdGEsIG5ld0xpc3RlbmVyKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV0cnlJbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncnBjL1JldHJ5SW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSwyQ0FBMkM7QUFDM0Msc0ZBQXNGO0FBQ3RGLDBHQUEwRztBQUMxRyxnR0FBZ0c7QUFDaEcsNEZBQTRGO0FBQzVGLDJDQU11QjtBQUN2QixpRUFBeUQ7QUFDekQsOENBQWtFO0FBRWxFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVuQixNQUFNLHdCQUF3QixHQUFrQjtJQUM5QyxvREFBb0Q7SUFDcEQsNkRBQTZEO0lBRTdELGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4QixrQkFBTSxDQUFDLFFBQVE7SUFDZixrQkFBTSxDQUFDLFdBQVc7SUFDbEIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtDQUMxQixDQUFDO0FBTUYsMEVBQTBFO0FBQzFFLGtHQUFrRztBQUNsRyw4RUFBOEU7QUFDOUUsaUNBQWlDO0FBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUU3QixTQUFnQiwrQkFBK0IsQ0FDN0MsT0FBZ0M7SUFFaEMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsT0FBTyxDQUFDLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0tBQ2pFO1NBQU07UUFDTCxPQUFPLEVBQUUsQ0FBQztLQUNYO0FBQ0gsQ0FBQztBQVJELDBFQVFDO0FBRUQsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBWSxPQUFpQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsbUJBQVMsRUFBQyxJQUFJLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCx5RUFBeUU7SUFDekUsMkVBQTJFO0lBQzNFLCtEQUErRDtJQUMvRCx1REFBdUQ7SUFDdkQsK0RBQStEO0lBQ3hELHNCQUFzQjtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxhQUF1QixDQUFDO1lBQzVCLElBQUksZ0JBQXFCLENBQUM7WUFDMUIsSUFBSSxtQkFBd0IsQ0FBQztZQUM3QixJQUFJLGdCQUFxQyxDQUFDO1lBQzFDLE9BQU8sSUFBSSwwQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdDLEtBQUssRUFBRSxVQUFVLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSTtvQkFDdkMsYUFBYSxHQUFHLFFBQVEsQ0FBQztvQkFDekIsTUFBTSxXQUFXLEdBQWE7d0JBQzVCLGdCQUFnQixFQUFFLFVBQ2hCLE9BQVksRUFDWixJQUF5Qjs0QkFFekIsbUVBQW1FOzRCQUNuRSxtQkFBbUIsR0FBRyxPQUFPLENBQUM7NEJBQzlCLGdCQUFnQixHQUFHLElBQUksQ0FBQzt3QkFDMUIsQ0FBQzt3QkFDRCxlQUFlLEVBQUUsVUFDZixNQUFvQixFQUNwQixJQUF5Qjs0QkFFekIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDOzRCQUNoQixNQUFNLEtBQUssR0FBRyxVQUFVLE9BQVksRUFBRSxRQUFrQjtnQ0FDdEQsT0FBTyxFQUFFLENBQUM7Z0NBQ1YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dDQUNsQyxpRUFBaUU7Z0NBQ2pFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO29DQUN0QixnQkFBZ0IsRUFBRSxVQUFVLE9BQU87d0NBQ2pDLG1FQUFtRTt3Q0FDbkUsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO29DQUNoQyxDQUFDO29DQUNELGVBQWUsRUFBRSxVQUFVLE1BQU07d0NBQy9CLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTs0Q0FDbEQsSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFO2dEQUN2QixNQUFNLENBQUMsS0FBSyxDQUNWLGlCQUFpQixPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSw0QkFBNEIsTUFBTSxDQUFDLElBQUksd0JBQXdCLE9BQU8sdUJBQXVCLFFBQVEsY0FBYyxDQUNuSyxDQUFDO2dEQUNGLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7NkNBQzFCO2lEQUFNO2dEQUNMLE1BQU0sQ0FBQyxLQUFLLENBQ1YsaUJBQWlCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLDRCQUE0QixNQUFNLENBQUMsSUFBSSx3QkFBd0IsT0FBTyx1QkFBdUIsUUFBUSxrQkFBa0IsQ0FDdkssQ0FBQztnREFDRixnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dEQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7NkNBQ2Q7eUNBQ0Y7NkNBQU07NENBQ0wsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0Q0FDdEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO3lDQUMzQjtvQ0FDSCxDQUFDO2lDQUNGLENBQUMsQ0FBQzs0QkFDTCxDQUFDLENBQUM7NEJBQ0YsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO2dDQUNsRCxNQUFNLENBQUMsS0FBSyxDQUNWLGlCQUFpQixPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSwyQkFBMkIsTUFBTSxDQUFDLElBQUksd0JBQXdCLE9BQU8sdUJBQXVCLFFBQVEsY0FBYyxDQUNsSyxDQUFDO2dDQUNGLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQzs2QkFDeEM7aUNBQU07Z0NBQ0wsTUFBTSxDQUFDLEtBQUssQ0FDVixpQkFBaUIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksMkJBQTJCLE1BQU0sQ0FBQyxJQUFJLDJCQUEyQixDQUNqSCxDQUFDO2dDQUNGLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0NBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs2QkFDZDt3QkFDSCxDQUFDO3FCQUNGLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDOUIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRGRCw0Q0FzRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGlzIHRlbXBvcmFyeSB3b3JrIGFyb3VuZCBkZWZpbmluZyBvdXIgb3duIGludGVyY2VwdG9yIHRvIHBvd2VyIHJlLXRyeSdzXG4vLyBMb25nZXIgdGVybSB3aXRoIHRoaXMgcHJvcG9zYWwgcmUtdHJ5J3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGdycGMgY29yZSwgYW5kIHdlXG4vLyBjYW4gbGV2ZXJhZ2UgYnkgZGVmaW5pbmcgYSByZXRyeSBwb2xpY3kuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZ3JwYy9wcm9wb3NhbC9ibG9iL21hc3Rlci9BNi1jbGllbnQtcmV0cmllcy5tZCNncnBjLXJldHJ5LWRlc2lnblxuLy8gRm9yIG5vdyB3ZSB1c2UgcmUtdHJ5IGludGVyY2VwdG9yIGluc3BpcmVkIGJ5IGV4YW1wbGUgaGVyZSBpbiBpbnRlcmNlcHRvciBwcm9wb3NhbCBmb3Igbm9kZWpzIGdycGMgY29yZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dycGMvcHJvcG9zYWwvYmxvYi9tYXN0ZXIvTDUtbm9kZS1jbGllbnQtaW50ZXJjZXB0b3JzLm1kI2FkdmFuY2VkLWV4YW1wbGVzXG4vLyBNYWluIGRpZmZlcmVuY2UgaXMgdGhhdCB3ZSBtYWludGFpbiBhIGFsbG93IGxpc3Qgb2YgcmV0cnlhYmxlIHN0YXR1cyBjb2RlcyB2cyB0cnlpbmcgYWxsLlxuaW1wb3J0IHtcbiAgSW50ZXJjZXB0aW5nQ2FsbCxcbiAgSW50ZXJjZXB0b3IsXG4gIExpc3RlbmVyLFxuICBNZXRhZGF0YSxcbiAgU3RhdHVzT2JqZWN0LFxufSBmcm9tICdAZ3JwYy9ncnBjLWpzJztcbmltcG9ydCB7U3RhdHVzfSBmcm9tICdAZ3JwYy9ncnBjLWpzL2J1aWxkL3NyYy9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRMb2dnZXIsIExvZ2dlciwgTG9nZ2VyT3B0aW9uc30gZnJvbSAnLi4vdXRpbHMvbG9nZ2luZyc7XG5cbmNvbnN0IG1heFJldHJ5ID0gMztcblxuY29uc3QgcmV0cnlhYmxlR3JwY1N0YXR1c0NvZGVzOiBBcnJheTxTdGF0dXM+ID0gW1xuICAvLyBpbmNsdWRpbmcgYWxsIHRoZSBzdGF0dXMgY29kZXMgZm9yIHJlZmVyZW5jZSwgYnV0XG4gIC8vIGNvbW1lbnRpbmcgb3V0IHRoZSBvbmVzIHdlIGRvbid0IHdhbnQgdG8gcmV0cnkgb24gZm9yIG5vdy5cblxuICAvLyBTdGF0dXMuT0ssXG4gIC8vIFN0YXR1cy5DQU5DRUxMRUQsXG4gIC8vIFN0YXR1cy5VTktOT1dOLFxuICAvLyBTdGF0dXMuSU5WQUxJRF9BUkdVTUVOVCxcbiAgLy8gU3RhdHVzLkRFQURMSU5FX0VYQ0VFREVELFxuICAvLyBTdGF0dXMuTk9UX0ZPVU5ELFxuICAvLyBTdGF0dXMuQUxSRUFEWV9FWElTVFMsXG4gIC8vIFN0YXR1cy5QRVJNSVNTSU9OX0RFTklFRCxcbiAgLy8gU3RhdHVzLlJFU09VUkNFX0VYSEFVU1RFRCxcbiAgLy8gU3RhdHVzLkZBSUxFRF9QUkVDT05ESVRJT04sXG4gIC8vIFN0YXR1cy5BQk9SVEVELFxuICAvLyBTdGF0dXMuT1VUX09GX1JBTkdFLFxuICAvLyBTdGF0dXMuVU5JTVBMRU1FTlRFRCxcbiAgU3RhdHVzLklOVEVSTkFMLFxuICBTdGF0dXMuVU5BVkFJTEFCTEUsXG4gIC8vIFN0YXR1cy5EQVRBX0xPU1MsXG4gIC8vIFN0YXR1cy5VTkFVVEhFTlRJQ0FURURcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlJbnRlcmNlcHRvck9wdGlvbnMge1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9ucztcbn1cblxuLy8gVE9ETzogUmV0cnkgaW50ZXJjZXB0b3IgYmVoYXZpb3Igc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdlIG5lZWQgdG9cbi8vIGFsaWduIG9uIGJhc2ljIEFQSSBkZXNpZ24gZmlyc3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnRvaHEvY2xpZW50LXNkay1qYXZhc2NyaXB0L2lzc3Vlcy83OSAuXG4vLyBGb3Igbm93LCBmb3IgY29udmVuaWVuY2UgZHVyaW5nIGRldmVsb3BtZW50LCB5b3UgY2FuIHRvZ2dsZSB0aGlzIGhhcmQtY29kZWRcbi8vIHZhcmlhYmxlIHRvIGVuYWJsZS9kaXNhYmxlIGl0LlxuY29uc3QgUkVUUklFU19FTkFCTEVEID0gdHJ1ZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJldHJ5SW50ZXJjZXB0b3JJZkVuYWJsZWQoXG4gIG9wdGlvbnM6IFJldHJ5SW50ZXJjZXB0b3JPcHRpb25zXG4pOiBBcnJheTxJbnRlcmNlcHRvcj4ge1xuICBpZiAoUkVUUklFU19FTkFCTEVEKSB7XG4gICAgcmV0dXJuIFtuZXcgUmV0cnlJbnRlcmNlcHRvcihvcHRpb25zKS5jcmVhdGVSZXRyeUludGVyY2VwdG9yKCldO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmV0cnlJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFJldHJ5SW50ZXJjZXB0b3JPcHRpb25zKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIodGhpcywgb3B0aW9ucz8ubG9nZ2VyT3B0aW9ucyk7XG4gIH1cblxuICAvLyBUT0RPOiBXZSBuZWVkIHRvIHNlbmQgcmV0cnkgY291bnQgaW5mb3JtYXRpb24gdG8gdGhlIHNlcnZlciBzbyB0aGF0IHdlXG4gIC8vIHdpbGwgaGF2ZSBzb21lIHZpc2liaWxpdHkgaW50byBob3cgb2Z0ZW4gdGhpcyBpcyBoYXBwZW5pbmcgdG8gY3VzdG9tZXJzOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50b2hxL2NsaWVudC1zZGstamF2YXNjcmlwdC9pc3N1ZXMvODBcbiAgLy8gVE9ETzogd2UgbmVlZCB0byBhZGQgYmFja29mZi9qaXR0ZXIgZm9yIHRoZSByZXRyaWVzOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50b2hxL2NsaWVudC1zZGstamF2YXNjcmlwdC9pc3N1ZXMvODFcbiAgcHVibGljIGNyZWF0ZVJldHJ5SW50ZXJjZXB0b3IoKTogSW50ZXJjZXB0b3Ige1xuICAgIGNvbnN0IGxvZ2dlciA9IHRoaXMubG9nZ2VyO1xuXG4gICAgcmV0dXJuIChvcHRpb25zLCBuZXh0Q2FsbCkgPT4ge1xuICAgICAgbGV0IHNhdmVkTWV0YWRhdGE6IE1ldGFkYXRhO1xuICAgICAgbGV0IHNhdmVkU2VuZE1lc3NhZ2U6IGFueTtcbiAgICAgIGxldCBzYXZlZFJlY2VpdmVNZXNzYWdlOiBhbnk7XG4gICAgICBsZXQgc2F2ZWRNZXNzYWdlTmV4dDogKGFyZzA6IGFueSkgPT4gdm9pZDtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJjZXB0aW5nQ2FsbChuZXh0Q2FsbChvcHRpb25zKSwge1xuICAgICAgICBzdGFydDogZnVuY3Rpb24gKG1ldGFkYXRhLCBsaXN0ZW5lciwgbmV4dCkge1xuICAgICAgICAgIHNhdmVkTWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgICBjb25zdCBuZXdMaXN0ZW5lcjogTGlzdGVuZXIgPSB7XG4gICAgICAgICAgICBvblJlY2VpdmVNZXNzYWdlOiBmdW5jdGlvbiAoXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGFueSxcbiAgICAgICAgICAgICAgbmV4dDogKGFyZzA6IGFueSkgPT4gdm9pZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgc2F2ZWRSZWNlaXZlTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgIHNhdmVkTWVzc2FnZU5leHQgPSBuZXh0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uUmVjZWl2ZVN0YXR1czogZnVuY3Rpb24gKFxuICAgICAgICAgICAgICBzdGF0dXM6IFN0YXR1c09iamVjdCxcbiAgICAgICAgICAgICAgbmV4dDogKGFyZzA6IGFueSkgPT4gdm9pZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGxldCByZXRyaWVzID0gMDtcbiAgICAgICAgICAgICAgY29uc3QgcmV0cnkgPSBmdW5jdGlvbiAobWVzc2FnZTogYW55LCBtZXRhZGF0YTogTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXRyaWVzKys7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2FsbCA9IG5leHRDYWxsKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICAgICAgbmV3Q2FsbC5zdGFydChtZXRhZGF0YSwge1xuICAgICAgICAgICAgICAgICAgb25SZWNlaXZlTWVzc2FnZTogZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICBzYXZlZFJlY2VpdmVNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBvblJlY2VpdmVTdGF0dXM6IGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJldHJ5YWJsZUdycGNTdGF0dXNDb2Rlcy5pbmNsdWRlcyhzdGF0dXMuY29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0cmllcyA8PSBtYXhSZXRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgUmVxdWVzdCBwYXRoOiAke29wdGlvbnMubWV0aG9kX2RlZmluaXRpb24ucGF0aH07IHJldHJ5YWJsZSBzdGF0dXMgY29kZTogJHtzdGF0dXMuY29kZX07IG51bWJlciBvZiByZXRyaWVzICgke3JldHJpZXN9KSBpcyBsZXNzIHRoYW4gbWF4ICgke21heFJldHJ5fSksIHJldHJ5aW5nLmBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXRyeShtZXNzYWdlLCBtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlcXVlc3QgcGF0aDogJHtvcHRpb25zLm1ldGhvZF9kZWZpbml0aW9uLnBhdGh9OyByZXRyeWFibGUgc3RhdHVzIGNvZGU6ICR7c3RhdHVzLmNvZGV9OyBudW1iZXIgb2YgcmV0cmllcyAoJHtyZXRyaWVzfSkgaGFzIGV4Y2VlZGVkIG1heCAoJHttYXhSZXRyeX0pLCBub3QgcmV0cnlpbmcuYFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVkTWVzc2FnZU5leHQoc2F2ZWRSZWNlaXZlTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHNhdmVkTWVzc2FnZU5leHQoc2F2ZWRSZWNlaXZlTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgbmV4dCh7Y29kZTogc3RhdHVzLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgaWYgKHJldHJ5YWJsZUdycGNTdGF0dXNDb2Rlcy5pbmNsdWRlcyhzdGF0dXMuY29kZSkpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgICAgICAgICBgUmVxdWVzdCBwYXRoOiAke29wdGlvbnMubWV0aG9kX2RlZmluaXRpb24ucGF0aH07IHJlc3BvbnNlIHN0YXR1cyBjb2RlOiAke3N0YXR1cy5jb2RlfTsgbnVtYmVyIG9mIHJldHJpZXMgKCR7cmV0cmllc30pIGlzIGxlc3MgdGhhbiBtYXggKCR7bWF4UmV0cnl9KSwgcmV0cnlpbmcuYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0cnkoc2F2ZWRTZW5kTWVzc2FnZSwgc2F2ZWRNZXRhZGF0YSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLnRyYWNlKFxuICAgICAgICAgICAgICAgICAgYFJlcXVlc3QgcGF0aDogJHtvcHRpb25zLm1ldGhvZF9kZWZpbml0aW9uLnBhdGh9OyByZXNwb25zZSBzdGF0dXMgY29kZTogJHtzdGF0dXMuY29kZX07IG5vdCBlbGlnaWJsZSBmb3IgcmV0cnkuYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2F2ZWRNZXNzYWdlTmV4dChzYXZlZFJlY2VpdmVNZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBuZXh0KHN0YXR1cyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZXh0KG1ldGFkYXRhLCBuZXdMaXN0ZW5lcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG4iXX0= |
@@ -5,4 +5,5 @@ import { SimpleCacheClient } from './SimpleCacheClient'; | ||
import { CacheGetStatus } from './messages/Result'; | ||
import { CacheInfo } from './messages/CacheInfo'; | ||
import { AlreadyExistsError, AuthenticationError, CancelledError, CacheServiceError, LimitExceededError, ServiceValidationError, InternalServerError, InvalidArgumentError, UnknownServiceError, TimeoutError, BadRequestError, PermissionError, NotFoundError } from './Errors'; | ||
export { LogLevel, LogFormat } from './utils/logging'; | ||
export { SimpleCacheClient, GetResponse, SetResponse, CacheGetStatus, AlreadyExistsError, AuthenticationError, CancelledError, CacheServiceError, LimitExceededError, ServiceValidationError, InternalServerError, InvalidArgumentError, UnknownServiceError, TimeoutError, BadRequestError, PermissionError, NotFoundError, }; | ||
export { Logger, LoggerOptions, LogLevel, LogFormat, getLogger, } from './utils/logging'; | ||
export { SimpleCacheClient, GetResponse, SetResponse, CacheGetStatus, CacheInfo, AlreadyExistsError, AuthenticationError, CancelledError, CacheServiceError, LimitExceededError, ServiceValidationError, InternalServerError, InvalidArgumentError, UnknownServiceError, TimeoutError, BadRequestError, PermissionError, NotFoundError, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.NotFoundError = exports.PermissionError = exports.BadRequestError = exports.TimeoutError = exports.UnknownServiceError = exports.InvalidArgumentError = exports.InternalServerError = exports.ServiceValidationError = exports.LimitExceededError = exports.CacheServiceError = exports.CancelledError = exports.AuthenticationError = exports.AlreadyExistsError = exports.CacheGetStatus = exports.SetResponse = exports.GetResponse = exports.SimpleCacheClient = exports.LogFormat = exports.LogLevel = void 0; | ||
exports.NotFoundError = exports.PermissionError = exports.BadRequestError = exports.TimeoutError = exports.UnknownServiceError = exports.InvalidArgumentError = exports.InternalServerError = exports.ServiceValidationError = exports.LimitExceededError = exports.CacheServiceError = exports.CancelledError = exports.AuthenticationError = exports.AlreadyExistsError = exports.CacheInfo = exports.CacheGetStatus = exports.SetResponse = exports.GetResponse = exports.SimpleCacheClient = exports.getLogger = exports.LogFormat = exports.LogLevel = void 0; | ||
const SimpleCacheClient_1 = require("./SimpleCacheClient"); | ||
@@ -12,2 +12,4 @@ Object.defineProperty(exports, "SimpleCacheClient", { enumerable: true, get: function () { return SimpleCacheClient_1.SimpleCacheClient; } }); | ||
Object.defineProperty(exports, "CacheGetStatus", { enumerable: true, get: function () { return Result_1.CacheGetStatus; } }); | ||
const CacheInfo_1 = require("./messages/CacheInfo"); | ||
Object.defineProperty(exports, "CacheInfo", { enumerable: true, get: function () { return CacheInfo_1.CacheInfo; } }); | ||
const Errors_1 = require("./Errors"); | ||
@@ -30,2 +32,3 @@ Object.defineProperty(exports, "AlreadyExistsError", { enumerable: true, get: function () { return Errors_1.AlreadyExistsError; } }); | ||
Object.defineProperty(exports, "LogFormat", { enumerable: true, get: function () { return logging_1.LogFormat; } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXNEO0FBdUJwRCxrR0F2Qk0scUNBQWlCLE9BdUJOO0FBdEJuQix3REFBbUQ7QUF1QmpELDRGQXZCTSx5QkFBVyxPQXVCTjtBQXRCYix3REFBbUQ7QUF1QmpELDRGQXZCTSx5QkFBVyxPQXVCTjtBQXRCYiw4Q0FBaUQ7QUF1Qi9DLCtGQXZCTSx1QkFBYyxPQXVCTjtBQXRCaEIscUNBY2tCO0FBU2hCLG1HQXRCQSwyQkFBa0IsT0FzQkE7QUFDbEIsb0dBdEJBLDRCQUFtQixPQXNCQTtBQUNuQiwrRkF0QkEsdUJBQWMsT0FzQkE7QUFDZCxrR0F0QkEsMEJBQWlCLE9Bc0JBO0FBQ2pCLG1HQXRCQSwyQkFBa0IsT0FzQkE7QUFDbEIsdUdBdEJBLCtCQUFzQixPQXNCQTtBQUN0QixvR0F0QkEsNEJBQW1CLE9Bc0JBO0FBQ25CLHFHQXRCQSw2QkFBb0IsT0FzQkE7QUFDcEIsb0dBdEJBLDRCQUFtQixPQXNCQTtBQUNuQiw2RkF0QkEscUJBQVksT0FzQkE7QUFDWixnR0F0QkEsd0JBQWUsT0FzQkE7QUFDZixnR0F0QkEsd0JBQWUsT0FzQkE7QUFDZiw4RkF0QkEsc0JBQWEsT0FzQkE7QUFuQmYsMkNBQW9EO0FBQTVDLG1HQUFBLFFBQVEsT0FBQTtBQUFFLG9HQUFBLFNBQVMsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2ltcGxlQ2FjaGVDbGllbnR9IGZyb20gJy4vU2ltcGxlQ2FjaGVDbGllbnQnO1xuaW1wb3J0IHtHZXRSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9HZXRSZXNwb25zZSc7XG5pbXBvcnQge1NldFJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL1NldFJlc3BvbnNlJztcbmltcG9ydCB7Q2FjaGVHZXRTdGF0dXN9IGZyb20gJy4vbWVzc2FnZXMvUmVzdWx0JztcbmltcG9ydCB7XG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgQ2FuY2VsbGVkRXJyb3IsXG4gIENhY2hlU2VydmljZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VWYWxpZGF0aW9uRXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBVbmtub3duU2VydmljZUVycm9yLFxuICBUaW1lb3V0RXJyb3IsXG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgUGVybWlzc2lvbkVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tICcuL0Vycm9ycyc7XG5cbmV4cG9ydCB7TG9nTGV2ZWwsIExvZ0Zvcm1hdH0gZnJvbSAnLi91dGlscy9sb2dnaW5nJztcblxuZXhwb3J0IHtcbiAgU2ltcGxlQ2FjaGVDbGllbnQsXG4gIEdldFJlc3BvbnNlLFxuICBTZXRSZXNwb25zZSxcbiAgQ2FjaGVHZXRTdGF0dXMsXG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgQ2FuY2VsbGVkRXJyb3IsXG4gIENhY2hlU2VydmljZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VWYWxpZGF0aW9uRXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBVbmtub3duU2VydmljZUVycm9yLFxuICBUaW1lb3V0RXJyb3IsXG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgUGVybWlzc2lvbkVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufTtcbiJdfQ== | ||
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logging_1.getLogger; } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXNEO0FBOEJwRCxrR0E5Qk0scUNBQWlCLE9BOEJOO0FBN0JuQix3REFBbUQ7QUE4QmpELDRGQTlCTSx5QkFBVyxPQThCTjtBQTdCYix3REFBbUQ7QUE4QmpELDRGQTlCTSx5QkFBVyxPQThCTjtBQTdCYiw4Q0FBaUQ7QUE4Qi9DLCtGQTlCTSx1QkFBYyxPQThCTjtBQTdCaEIsb0RBQStDO0FBOEI3QywwRkE5Qk0scUJBQVMsT0E4Qk47QUE3QlgscUNBY2tCO0FBZ0JoQixtR0E3QkEsMkJBQWtCLE9BNkJBO0FBQ2xCLG9HQTdCQSw0QkFBbUIsT0E2QkE7QUFDbkIsK0ZBN0JBLHVCQUFjLE9BNkJBO0FBQ2Qsa0dBN0JBLDBCQUFpQixPQTZCQTtBQUNqQixtR0E3QkEsMkJBQWtCLE9BNkJBO0FBQ2xCLHVHQTdCQSwrQkFBc0IsT0E2QkE7QUFDdEIsb0dBN0JBLDRCQUFtQixPQTZCQTtBQUNuQixxR0E3QkEsNkJBQW9CLE9BNkJBO0FBQ3BCLG9HQTdCQSw0QkFBbUIsT0E2QkE7QUFDbkIsNkZBN0JBLHFCQUFZLE9BNkJBO0FBQ1osZ0dBN0JBLHdCQUFlLE9BNkJBO0FBQ2YsZ0dBN0JBLHdCQUFlLE9BNkJBO0FBQ2YsOEZBN0JBLHNCQUFhLE9BNkJBO0FBMUJmLDJDQU15QjtBQUh2QixtR0FBQSxRQUFRLE9BQUE7QUFDUixvR0FBQSxTQUFTLE9BQUE7QUFDVCxvR0FBQSxTQUFTLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NpbXBsZUNhY2hlQ2xpZW50fSBmcm9tICcuL1NpbXBsZUNhY2hlQ2xpZW50JztcbmltcG9ydCB7R2V0UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvR2V0UmVzcG9uc2UnO1xuaW1wb3J0IHtTZXRSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9TZXRSZXNwb25zZSc7XG5pbXBvcnQge0NhY2hlR2V0U3RhdHVzfSBmcm9tICcuL21lc3NhZ2VzL1Jlc3VsdCc7XG5pbXBvcnQge0NhY2hlSW5mb30gZnJvbSAnLi9tZXNzYWdlcy9DYWNoZUluZm8nO1xuaW1wb3J0IHtcbiAgQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBBdXRoZW50aWNhdGlvbkVycm9yLFxuICBDYW5jZWxsZWRFcnJvcixcbiAgQ2FjaGVTZXJ2aWNlRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgU2VydmljZVZhbGlkYXRpb25FcnJvcixcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcixcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIFVua25vd25TZXJ2aWNlRXJyb3IsXG4gIFRpbWVvdXRFcnJvcixcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBQZXJtaXNzaW9uRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gJy4vRXJyb3JzJztcblxuZXhwb3J0IHtcbiAgTG9nZ2VyLFxuICBMb2dnZXJPcHRpb25zLFxuICBMb2dMZXZlbCxcbiAgTG9nRm9ybWF0LFxuICBnZXRMb2dnZXIsXG59IGZyb20gJy4vdXRpbHMvbG9nZ2luZyc7XG5cbmV4cG9ydCB7XG4gIFNpbXBsZUNhY2hlQ2xpZW50LFxuICBHZXRSZXNwb25zZSxcbiAgU2V0UmVzcG9uc2UsXG4gIENhY2hlR2V0U3RhdHVzLFxuICBDYWNoZUluZm8sXG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgQ2FuY2VsbGVkRXJyb3IsXG4gIENhY2hlU2VydmljZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFNlcnZpY2VWYWxpZGF0aW9uRXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBVbmtub3duU2VydmljZUVycm9yLFxuICBUaW1lb3V0RXJyb3IsXG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgUGVybWlzc2lvbkVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufTtcbiJdfQ== |
@@ -25,3 +25,3 @@ "use strict"; | ||
constructor(props) { | ||
this.logger = (0, logging_1.getLogger)(this.constructor.name, props.loggerOptions); | ||
this.logger = (0, logging_1.getLogger)(this, props.loggerOptions); | ||
const headers = [ | ||
@@ -34,5 +34,5 @@ new HeadersInterceptor_1.Header('Authorization', props.authToken), | ||
(0, ClientTimeoutInterceptor_1.ClientTimeoutInterceptor)(Momento.REQUEST_TIMEOUT_MS), | ||
new RetryInterceptor_1.RetryInterceptor({ | ||
...(0, RetryInterceptor_1.createRetryInterceptorIfEnabled)({ | ||
loggerOptions: props.loggerOptions, | ||
}).addRetryInterceptor(), | ||
}), | ||
]; | ||
@@ -163,2 +163,2 @@ this.logger.debug(`Creating control client using endpoint: '${props.endpoint}`); | ||
Momento.REQUEST_TIMEOUT_MS = 60 * 1000; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9tZW50by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Nb21lbnRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFtRDtBQUNuRCxrRUFBb0U7QUFDcEUsOEVBQXlFO0FBQ3pFLHFDQUlrQjtBQUNsQixpRUFBeUQ7QUFDekQsdUVBQWtFO0FBQ2xFLDJDQUE4RDtBQUM5RCx3RUFBbUU7QUFDbkUsd0VBQW1FO0FBQ25FLHNFQUFpRTtBQUNqRSxrREFBd0M7QUFDeEMsa0ZBQTZFO0FBQzdFLGtGQUE2RTtBQUM3RSxnRkFBMkU7QUFDM0UsOERBQXlEO0FBQ3pELDZDQUFpRTtBQVFqRSxNQUFhLE9BQU87SUFNbEI7O09BRUc7SUFDSCxZQUFZLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBQSxtQkFBUyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRztZQUNkLElBQUksMkJBQU0sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLDJCQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsc0JBQU8sRUFBRSxDQUFDO1NBQzdDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLElBQUksc0NBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLEVBQUU7WUFDdEQsSUFBQSxtREFBd0IsRUFBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDcEQsSUFBSSxtQ0FBZ0IsQ0FBQztnQkFDbkIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2FBQ25DLENBQUMsQ0FBQyxtQkFBbUIsRUFBRTtTQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsNENBQTRDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDN0QsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFN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TUFBTSxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQ3pCLE9BQU8sRUFDUCxFQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLEVBQ2pDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxFQUFFO29CQUNQLE1BQU0sQ0FBQyxJQUFBLGlEQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLGlEQUF1QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0RDtZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBWTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQWtCO1FBQzNDLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLElBQUksNkJBQW9CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7O0FBdkxILDBCQXdMQztBQXJMeUIsMEJBQWtCLEdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29udHJvbH0gZnJvbSAnQGdvbW9tZW50by9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHtIZWFkZXIsIEhlYWRlckludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvSGVhZGVyc0ludGVyY2VwdG9yJztcbmltcG9ydCB7Q2xpZW50VGltZW91dEludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvQ2xpZW50VGltZW91dEludGVyY2VwdG9yJztcbmltcG9ydCB7XG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gJy4vRXJyb3JzJztcbmltcG9ydCB7U3RhdHVzfSBmcm9tICdAZ3JwYy9ncnBjLWpzL2J1aWxkL3NyYy9jb25zdGFudHMnO1xuaW1wb3J0IHtjYWNoZVNlcnZpY2VFcnJvck1hcHBlcn0gZnJvbSAnLi9DYWNoZVNlcnZpY2VFcnJvck1hcHBlcic7XG5pbXBvcnQge0NoYW5uZWxDcmVkZW50aWFscywgSW50ZXJjZXB0b3J9IGZyb20gJ0BncnBjL2dycGMtanMnO1xuaW1wb3J0IHtEZWxldGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0RlbGV0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtDcmVhdGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0NyZWF0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtMaXN0Q2FjaGVzUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvTGlzdENhY2hlc1Jlc3BvbnNlJztcbmltcG9ydCB7dmVyc2lvbn0gZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCB7Q3JlYXRlU2lnbmluZ0tleVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0NyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZSc7XG5pbXBvcnQge1Jldm9rZVNpZ25pbmdLZXlSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9SZXZva2VTaWduaW5nS2V5UmVzcG9uc2UnO1xuaW1wb3J0IHtMaXN0U2lnbmluZ0tleXNSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9MaXN0U2lnbmluZ0tleXNSZXNwb25zZSc7XG5pbXBvcnQge1JldHJ5SW50ZXJjZXB0b3J9IGZyb20gJy4vZ3JwYy9SZXRyeUludGVyY2VwdG9yJztcbmltcG9ydCB7Z2V0TG9nZ2VyLCBMb2dnZXIsIExvZ2dlck9wdGlvbnN9IGZyb20gJy4vdXRpbHMvbG9nZ2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9tZW50b1Byb3BzIHtcbiAgYXV0aFRva2VuOiBzdHJpbmc7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGxvZ2dlck9wdGlvbnM/OiBMb2dnZXJPcHRpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgTW9tZW50byB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBjb250cm9sLmNvbnRyb2xfY2xpZW50LlNjc0NvbnRyb2xDbGllbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJjZXB0b3JzOiBJbnRlcmNlcHRvcltdO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRVFVRVNUX1RJTUVPVVRfTVM6IG51bWJlciA9IDYwICogMTAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcblxuICAvKipcbiAgICogQHBhcmFtIHtNb21lbnRvUHJvcHN9IHByb3BzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogTW9tZW50b1Byb3BzKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wcy5sb2dnZXJPcHRpb25zKTtcbiAgICBjb25zdCBoZWFkZXJzID0gW1xuICAgICAgbmV3IEhlYWRlcignQXV0aG9yaXphdGlvbicsIHByb3BzLmF1dGhUb2tlbiksXG4gICAgICBuZXcgSGVhZGVyKCdBZ2VudCcsIGBqYXZhc2NyaXB0OiR7dmVyc2lvbn1gKSxcbiAgICBdO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzID0gW1xuICAgICAgbmV3IEhlYWRlckludGVyY2VwdG9yKGhlYWRlcnMpLmFkZEhlYWRlcnNJbnRlcmNlcHRvcigpLFxuICAgICAgQ2xpZW50VGltZW91dEludGVyY2VwdG9yKE1vbWVudG8uUkVRVUVTVF9USU1FT1VUX01TKSxcbiAgICAgIG5ldyBSZXRyeUludGVyY2VwdG9yKHtcbiAgICAgICAgbG9nZ2VyT3B0aW9uczogcHJvcHMubG9nZ2VyT3B0aW9ucyxcbiAgICAgIH0pLmFkZFJldHJ5SW50ZXJjZXB0b3IoKSxcbiAgICBdO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIGNvbnRyb2wgY2xpZW50IHVzaW5nIGVuZHBvaW50OiAnJHtwcm9wcy5lbmRwb2ludH1gXG4gICAgKTtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBjb250cm9sLmNvbnRyb2xfY2xpZW50LlNjc0NvbnRyb2xDbGllbnQoXG4gICAgICBwcm9wcy5lbmRwb2ludCxcbiAgICAgIENoYW5uZWxDcmVkZW50aWFscy5jcmVhdGVTc2woKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ2FjaGUobmFtZTogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVDYWNoZVJlc3BvbnNlPiB7XG4gICAgdGhpcy52YWxpZGF0ZUNhY2hlTmFtZShuYW1lKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKGBDcmVhdGluZyBjYWNoZTogJHtuYW1lfWApO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fQ3JlYXRlQ2FjaGVSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX25hbWU6IG5hbWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPENyZWF0ZUNhY2hlUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LkNyZWF0ZUNhY2hlKFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB7aW50ZXJjZXB0b3JzOiB0aGlzLmludGVyY2VwdG9yc30sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gU3RhdHVzLkFMUkVBRFlfRVhJU1RTKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgQWxyZWFkeUV4aXN0c0Vycm9yKFxuICAgICAgICAgICAgICAgICAgYGNhY2hlIHdpdGggbmFtZTogJHtuYW1lfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobmV3IENyZWF0ZUNhY2hlUmVzcG9uc2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhY2hlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fRGVsZXRlQ2FjaGVSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX25hbWU6IG5hbWUsXG4gICAgfSk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhgRGVsZXRpbmcgY2FjaGU6ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuRGVsZXRlQ2FjaGUoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgaWYgKGVyci5jb2RlID09PSBTdGF0dXMuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgTm90Rm91bmRFcnJvcihgY2FjaGUgd2l0aCBuYW1lOiAke25hbWV9IGRvZXMgbm90IGV4aXN0YClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgRGVsZXRlQ2FjaGVSZXNwb25zZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdENhY2hlcyhuZXh0VG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPExpc3RDYWNoZXNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fTGlzdENhY2hlc1JlcXVlc3QoKTtcbiAgICByZXF1ZXN0Lm5leHRfdG9rZW4gPSBuZXh0VG9rZW4gPz8gJyc7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdsaXN0Q2FjaGVzJyByZXF1ZXN0XCIpO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxMaXN0Q2FjaGVzUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50Lkxpc3RDYWNoZXMoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgTGlzdENhY2hlc1Jlc3BvbnNlKHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2lnbmluZ0tleShcbiAgICB0dGxNaW51dGVzOiBudW1iZXIsXG4gICAgZW5kcG9pbnQ6IHN0cmluZ1xuICApOiBQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT4ge1xuICAgIHRoaXMudmFsaWRhdGVUdGxNaW51dGVzKHR0bE1pbnV0ZXMpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSXNzdWluZyAnY3JlYXRlU2lnbmluZ0tleScgcmVxdWVzdFwiKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IGNvbnRyb2wuY29udHJvbF9jbGllbnQuX0NyZWF0ZVNpZ25pbmdLZXlSZXF1ZXN0KCk7XG4gICAgcmVxdWVzdC50dGxfbWludXRlcyA9IHR0bE1pbnV0ZXM7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuQ3JlYXRlU2lnbmluZ0tleShcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAge2ludGVyY2VwdG9yczogdGhpcy5pbnRlcmNlcHRvcnN9LFxuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGNhY2hlU2VydmljZUVycm9yTWFwcGVyKGVycikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG5ldyBDcmVhdGVTaWduaW5nS2V5UmVzcG9uc2UoZW5kcG9pbnQsIHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmV2b2tlU2lnbmluZ0tleShcbiAgICBrZXlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBjb250cm9sLmNvbnRyb2xfY2xpZW50Ll9SZXZva2VTaWduaW5nS2V5UmVxdWVzdCgpO1xuICAgIHJlcXVlc3Qua2V5X2lkID0ga2V5SWQ7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdyZXZva2VTaWduaW5nS2V5JyByZXF1ZXN0XCIpO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxSZXZva2VTaWduaW5nS2V5UmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LlJldm9rZVNpZ25pbmdLZXkoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobmV3IFJldm9rZVNpZ25pbmdLZXlSZXNwb25zZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdFNpZ25pbmdLZXlzKFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgbmV4dFRva2VuPzogc3RyaW5nXG4gICk6IFByb21pc2U8TGlzdFNpZ25pbmdLZXlzUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IGNvbnRyb2wuY29udHJvbF9jbGllbnQuX0xpc3RTaWduaW5nS2V5c1JlcXVlc3QoKTtcbiAgICByZXF1ZXN0Lm5leHRfdG9rZW4gPSBuZXh0VG9rZW4gPz8gJyc7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdsaXN0U2lnbmluZ0tleXMnIHJlcXVlc3RcIik7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPExpc3RTaWduaW5nS2V5c1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNsaWVudC5MaXN0U2lnbmluZ0tleXMoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgTGlzdFNpZ25pbmdLZXlzUmVzcG9uc2UoZW5kcG9pbnQsIHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ2FjaGVOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGlmICghbmFtZS50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignY2FjaGUgbmFtZSBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUdGxNaW51dGVzKHR0bE1pbnV0ZXM6IG51bWJlcikge1xuICAgIGlmICh0dGxNaW51dGVzIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd0dGxNaW51dGVzIG11c3QgYmUgcG9zaXRpdmUnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9tZW50by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Nb21lbnRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFtRDtBQUNuRCxrRUFBb0U7QUFDcEUsOEVBQXlFO0FBQ3pFLHFDQUlrQjtBQUNsQixpRUFBeUQ7QUFDekQsdUVBQWtFO0FBQ2xFLDJDQUE4RDtBQUM5RCx3RUFBbUU7QUFDbkUsd0VBQW1FO0FBQ25FLHNFQUFpRTtBQUNqRSxrREFBd0M7QUFDeEMsa0ZBQTZFO0FBQzdFLGtGQUE2RTtBQUM3RSxnRkFBMkU7QUFDM0UsOERBR2lDO0FBQ2pDLDZDQUFpRTtBQVFqRSxNQUFhLE9BQU87SUFNbEI7O09BRUc7SUFDSCxZQUFZLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBQSxtQkFBUyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLDJCQUFNLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDNUMsSUFBSSwyQkFBTSxDQUFDLE9BQU8sRUFBRSxjQUFjLHNCQUFPLEVBQUUsQ0FBQztTQUM3QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixJQUFJLHNDQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixFQUFFO1lBQ3RELElBQUEsbURBQXdCLEVBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBQ3BELEdBQUcsSUFBQSxrREFBK0IsRUFBQztnQkFDakMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2FBQ25DLENBQUM7U0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsNENBQTRDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDN0QsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FDdkQsS0FBSyxDQUFDLFFBQVEsRUFDZCw0QkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUkseUJBQU8sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUM7WUFDN0QsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFzQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDckIsT0FBTyxFQUNQLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDakMsNkRBQTZEO1lBQzdELENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxFQUFFO29CQUNQLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxrQkFBTSxDQUFDLGNBQWMsRUFBRTt3QkFDdEMsTUFBTSxDQUNKLElBQUksMkJBQWtCLENBQ3BCLG9CQUFvQixJQUFJLGlCQUFpQixDQUMxQyxDQUNGLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLElBQUEsaURBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDdEM7aUJBQ0Y7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUkseUNBQW1CLEVBQUUsQ0FBQyxDQUFDO2lCQUNwQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFZO1FBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUkseUJBQU8sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUM7WUFDN0QsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFzQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDckIsT0FBTyxFQUNQLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDakMsNkRBQTZEO1lBQzdELENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxFQUFFO29CQUNQLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxrQkFBTSxDQUFDLFNBQVMsRUFBRTt3QkFDakMsTUFBTSxDQUNKLElBQUksc0JBQWEsQ0FBQyxvQkFBb0IsSUFBSSxpQkFBaUIsQ0FBQyxDQUM3RCxDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLE1BQU0sQ0FBQyxJQUFBLGlEQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQ3RDO2lCQUNGO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLHlDQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBa0I7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSx5QkFBTyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDbEQsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFxQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDcEIsT0FBTyxFQUNQLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUMsRUFDakMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxHQUFHLEVBQUU7b0JBQ1AsTUFBTSxDQUFDLElBQUEsaURBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUksdUNBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdkM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsVUFBa0IsRUFDbEIsUUFBZ0I7UUFFaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSx5QkFBTyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBMkIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDMUIsT0FBTyxFQUNQLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUMsRUFDakMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxHQUFHLEVBQUU7b0JBQ1AsTUFBTSxDQUFDLElBQUEsaURBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUksbURBQXdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3ZEO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQzNCLEtBQWE7UUFFYixNQUFNLE9BQU8sR0FBRyxJQUFJLHlCQUFPLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdEUsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQTJCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sRUFDUCxFQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLEVBQ2pDLEdBQUcsQ0FBQyxFQUFFO2dCQUNKLElBQUksR0FBRyxFQUFFO29CQUNQLE1BQU0sQ0FBQyxJQUFBLGlEQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLG1EQUF3QixFQUFFLENBQUMsQ0FBQztpQkFDekM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQzFCLFFBQWdCLEVBQ2hCLFNBQWtCO1FBRWxCLE1BQU0sT0FBTyxHQUFHLElBQUkseUJBQU8sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBMEIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQ3pCLE9BQU8sRUFDUCxFQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLEVBQ2pDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNaLElBQUksR0FBRyxFQUFFO29CQUNQLE1BQU0sQ0FBQyxJQUFBLGlEQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLGlEQUF1QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0RDtZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBWTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQWtCO1FBQzNDLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLElBQUksNkJBQW9CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7O0FBdkxILDBCQXdMQztBQXJMeUIsMEJBQWtCLEdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y29udHJvbH0gZnJvbSAnQGdvbW9tZW50by9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHtIZWFkZXIsIEhlYWRlckludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvSGVhZGVyc0ludGVyY2VwdG9yJztcbmltcG9ydCB7Q2xpZW50VGltZW91dEludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvQ2xpZW50VGltZW91dEludGVyY2VwdG9yJztcbmltcG9ydCB7XG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gJy4vRXJyb3JzJztcbmltcG9ydCB7U3RhdHVzfSBmcm9tICdAZ3JwYy9ncnBjLWpzL2J1aWxkL3NyYy9jb25zdGFudHMnO1xuaW1wb3J0IHtjYWNoZVNlcnZpY2VFcnJvck1hcHBlcn0gZnJvbSAnLi9DYWNoZVNlcnZpY2VFcnJvck1hcHBlcic7XG5pbXBvcnQge0NoYW5uZWxDcmVkZW50aWFscywgSW50ZXJjZXB0b3J9IGZyb20gJ0BncnBjL2dycGMtanMnO1xuaW1wb3J0IHtEZWxldGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0RlbGV0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtDcmVhdGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0NyZWF0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtMaXN0Q2FjaGVzUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvTGlzdENhY2hlc1Jlc3BvbnNlJztcbmltcG9ydCB7dmVyc2lvbn0gZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCB7Q3JlYXRlU2lnbmluZ0tleVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0NyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZSc7XG5pbXBvcnQge1Jldm9rZVNpZ25pbmdLZXlSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9SZXZva2VTaWduaW5nS2V5UmVzcG9uc2UnO1xuaW1wb3J0IHtMaXN0U2lnbmluZ0tleXNSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9MaXN0U2lnbmluZ0tleXNSZXNwb25zZSc7XG5pbXBvcnQge1xuICBjcmVhdGVSZXRyeUludGVyY2VwdG9ySWZFbmFibGVkLFxuICBSZXRyeUludGVyY2VwdG9yLFxufSBmcm9tICcuL2dycGMvUmV0cnlJbnRlcmNlcHRvcic7XG5pbXBvcnQge2dldExvZ2dlciwgTG9nZ2VyLCBMb2dnZXJPcHRpb25zfSBmcm9tICcuL3V0aWxzL2xvZ2dpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vbWVudG9Qcm9wcyB7XG4gIGF1dGhUb2tlbjogc3RyaW5nO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIE1vbWVudG8ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogY29udHJvbC5jb250cm9sX2NsaWVudC5TY3NDb250cm9sQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGludGVyY2VwdG9yczogSW50ZXJjZXB0b3JbXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVRVUVTVF9USU1FT1VUX01TOiBudW1iZXIgPSA2MCAqIDEwMDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7TW9tZW50b1Byb3BzfSBwcm9wc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM6IE1vbWVudG9Qcm9wcykge1xuICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKHRoaXMsIHByb3BzLmxvZ2dlck9wdGlvbnMpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBbXG4gICAgICBuZXcgSGVhZGVyKCdBdXRob3JpemF0aW9uJywgcHJvcHMuYXV0aFRva2VuKSxcbiAgICAgIG5ldyBIZWFkZXIoJ0FnZW50JywgYGphdmFzY3JpcHQ6JHt2ZXJzaW9ufWApLFxuICAgIF07XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMgPSBbXG4gICAgICBuZXcgSGVhZGVySW50ZXJjZXB0b3IoaGVhZGVycykuYWRkSGVhZGVyc0ludGVyY2VwdG9yKCksXG4gICAgICBDbGllbnRUaW1lb3V0SW50ZXJjZXB0b3IoTW9tZW50by5SRVFVRVNUX1RJTUVPVVRfTVMpLFxuICAgICAgLi4uY3JlYXRlUmV0cnlJbnRlcmNlcHRvcklmRW5hYmxlZCh7XG4gICAgICAgIGxvZ2dlck9wdGlvbnM6IHByb3BzLmxvZ2dlck9wdGlvbnMsXG4gICAgICB9KSxcbiAgICBdO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIGNvbnRyb2wgY2xpZW50IHVzaW5nIGVuZHBvaW50OiAnJHtwcm9wcy5lbmRwb2ludH1gXG4gICAgKTtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBjb250cm9sLmNvbnRyb2xfY2xpZW50LlNjc0NvbnRyb2xDbGllbnQoXG4gICAgICBwcm9wcy5lbmRwb2ludCxcbiAgICAgIENoYW5uZWxDcmVkZW50aWFscy5jcmVhdGVTc2woKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ2FjaGUobmFtZTogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVDYWNoZVJlc3BvbnNlPiB7XG4gICAgdGhpcy52YWxpZGF0ZUNhY2hlTmFtZShuYW1lKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKGBDcmVhdGluZyBjYWNoZTogJHtuYW1lfWApO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fQ3JlYXRlQ2FjaGVSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX25hbWU6IG5hbWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPENyZWF0ZUNhY2hlUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LkNyZWF0ZUNhY2hlKFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB7aW50ZXJjZXB0b3JzOiB0aGlzLmludGVyY2VwdG9yc30sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gU3RhdHVzLkFMUkVBRFlfRVhJU1RTKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgQWxyZWFkeUV4aXN0c0Vycm9yKFxuICAgICAgICAgICAgICAgICAgYGNhY2hlIHdpdGggbmFtZTogJHtuYW1lfSBhbHJlYWR5IGV4aXN0c2BcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobmV3IENyZWF0ZUNhY2hlUmVzcG9uc2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhY2hlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fRGVsZXRlQ2FjaGVSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX25hbWU6IG5hbWUsXG4gICAgfSk7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhgRGVsZXRpbmcgY2FjaGU6ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuRGVsZXRlQ2FjaGUoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgaWYgKGVyci5jb2RlID09PSBTdGF0dXMuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBuZXcgTm90Rm91bmRFcnJvcihgY2FjaGUgd2l0aCBuYW1lOiAke25hbWV9IGRvZXMgbm90IGV4aXN0YClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgRGVsZXRlQ2FjaGVSZXNwb25zZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdENhY2hlcyhuZXh0VG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPExpc3RDYWNoZXNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY29udHJvbC5jb250cm9sX2NsaWVudC5fTGlzdENhY2hlc1JlcXVlc3QoKTtcbiAgICByZXF1ZXN0Lm5leHRfdG9rZW4gPSBuZXh0VG9rZW4gPz8gJyc7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdsaXN0Q2FjaGVzJyByZXF1ZXN0XCIpO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxMaXN0Q2FjaGVzUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50Lkxpc3RDYWNoZXMoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgTGlzdENhY2hlc1Jlc3BvbnNlKHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2lnbmluZ0tleShcbiAgICB0dGxNaW51dGVzOiBudW1iZXIsXG4gICAgZW5kcG9pbnQ6IHN0cmluZ1xuICApOiBQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT4ge1xuICAgIHRoaXMudmFsaWRhdGVUdGxNaW51dGVzKHR0bE1pbnV0ZXMpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSXNzdWluZyAnY3JlYXRlU2lnbmluZ0tleScgcmVxdWVzdFwiKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IGNvbnRyb2wuY29udHJvbF9jbGllbnQuX0NyZWF0ZVNpZ25pbmdLZXlSZXF1ZXN0KCk7XG4gICAgcmVxdWVzdC50dGxfbWludXRlcyA9IHR0bE1pbnV0ZXM7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuQ3JlYXRlU2lnbmluZ0tleShcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAge2ludGVyY2VwdG9yczogdGhpcy5pbnRlcmNlcHRvcnN9LFxuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGNhY2hlU2VydmljZUVycm9yTWFwcGVyKGVycikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG5ldyBDcmVhdGVTaWduaW5nS2V5UmVzcG9uc2UoZW5kcG9pbnQsIHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmV2b2tlU2lnbmluZ0tleShcbiAgICBrZXlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBjb250cm9sLmNvbnRyb2xfY2xpZW50Ll9SZXZva2VTaWduaW5nS2V5UmVxdWVzdCgpO1xuICAgIHJlcXVlc3Qua2V5X2lkID0ga2V5SWQ7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdyZXZva2VTaWduaW5nS2V5JyByZXF1ZXN0XCIpO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxSZXZva2VTaWduaW5nS2V5UmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LlJldm9rZVNpZ25pbmdLZXkoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobmV3IFJldm9rZVNpZ25pbmdLZXlSZXNwb25zZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdFNpZ25pbmdLZXlzKFxuICAgIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgbmV4dFRva2VuPzogc3RyaW5nXG4gICk6IFByb21pc2U8TGlzdFNpZ25pbmdLZXlzUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IGNvbnRyb2wuY29udHJvbF9jbGllbnQuX0xpc3RTaWduaW5nS2V5c1JlcXVlc3QoKTtcbiAgICByZXF1ZXN0Lm5leHRfdG9rZW4gPSBuZXh0VG9rZW4gPz8gJyc7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJc3N1aW5nICdsaXN0U2lnbmluZ0tleXMnIHJlcXVlc3RcIik7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPExpc3RTaWduaW5nS2V5c1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNsaWVudC5MaXN0U2lnbmluZ0tleXMoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtpbnRlcmNlcHRvcnM6IHRoaXMuaW50ZXJjZXB0b3JzfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgTGlzdFNpZ25pbmdLZXlzUmVzcG9uc2UoZW5kcG9pbnQsIHJlc3ApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ2FjaGVOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGlmICghbmFtZS50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignY2FjaGUgbmFtZSBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUdGxNaW51dGVzKHR0bE1pbnV0ZXM6IG51bWJlcikge1xuICAgIGlmICh0dGxNaW51dGVzIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd0dGxNaW51dGVzIG11c3QgYmUgcG9zaXRpdmUnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |
@@ -26,5 +26,5 @@ import { GetResponse } from './messages/GetResponse'; | ||
private static readonly DEFAULT_REQUEST_TIMEOUT_MS; | ||
private static isUserAgentSent; | ||
private readonly logger; | ||
private readonly loggerOptions; | ||
private readonly allInterceptorsExceptHeaderInterceptor; | ||
/** | ||
@@ -31,0 +31,0 @@ * @param {MomentoCacheProps} props |
@@ -38,3 +38,3 @@ "use strict"; | ||
this.loggerOptions = props.loggerOptions; | ||
this.logger = (0, logging_1.getLogger)(this.constructor.name, props.loggerOptions); | ||
this.logger = (0, logging_1.getLogger)(this, props.loggerOptions); | ||
this.validateRequestTimeout(props.requestTimeoutMs); | ||
@@ -49,2 +49,16 @@ this.logger.debug(`Creating cache client using endpoint: '${props.endpoint}`); | ||
this.endpoint = props.endpoint; | ||
// The first interceptor in our list is a Header interceptor, which | ||
// includes a header for the cache name. The cache name is part of the | ||
// get/set API calls, so we cannot construct that interceptor here in the | ||
// constructor; we have to construct it for each request. Here, we construct | ||
// all of the other interceptors, which do not vary per request. It is crucial | ||
// that we only construct these once and re-use them, because some of them are | ||
// very heavy-weight (in terms of memory usage, EventEmitter registrations on the | ||
// `process` object, etc.). | ||
this.allInterceptorsExceptHeaderInterceptor = [ | ||
(0, ClientTimeoutInterceptor_1.ClientTimeoutInterceptor)(this.requestTimeoutMs), | ||
...(0, RetryInterceptor_1.createRetryInterceptorIfEnabled)({ | ||
loggerOptions: this.loggerOptions, | ||
}), | ||
]; | ||
} | ||
@@ -64,3 +78,3 @@ getEndpoint() { | ||
this.ensureValidSetRequest(key, value, ttl || this.defaultTtlSeconds); | ||
this.logger.debug(`Issuing 'set' request; key: ${key.toString()}, value: ${value.toString()}, ttl: ${(_a = ttl === null || ttl === void 0 ? void 0 : ttl.toString()) !== null && _a !== void 0 ? _a : 'null'}`); | ||
this.logger.trace(`Issuing 'set' request; key: ${key.toString()}, value length: ${value.length}, ttl: ${(_a = ttl === null || ttl === void 0 ? void 0 : ttl.toString()) !== null && _a !== void 0 ? _a : 'null'}`); | ||
const encodedKey = this.convert(key); | ||
@@ -91,3 +105,3 @@ const encodedValue = this.convert(value); | ||
this.ensureValidKey(key); | ||
this.logger.debug(`Issuing 'delete' request; key: ${key.toString()}`); | ||
this.logger.trace(`Issuing 'delete' request; key: ${key.toString()}`); | ||
return await this.sendDelete(cacheName, this.convert(key)); | ||
@@ -114,5 +128,5 @@ } | ||
this.ensureValidKey(key); | ||
this.logger.debug(`Issuing 'get' request; key: ${key.toString()}`); | ||
this.logger.trace(`Issuing 'get' request; key: ${key.toString()}`); | ||
const result = await this.sendGet(cacheName, this.convert(key)); | ||
this.logger.debug(`'get' request result: ${JSON.stringify(result)}`); | ||
this.logger.trace(`'get' request result: ${result.status}`); | ||
return result; | ||
@@ -150,6 +164,3 @@ } | ||
new HeadersInterceptor_1.HeaderInterceptor(headers).addHeadersInterceptor(), | ||
(0, ClientTimeoutInterceptor_1.ClientTimeoutInterceptor)(this.requestTimeoutMs), | ||
new RetryInterceptor_1.RetryInterceptor({ | ||
loggerOptions: this.loggerOptions, | ||
}).addRetryInterceptor(), | ||
...this.allInterceptorsExceptHeaderInterceptor, | ||
]; | ||
@@ -176,3 +187,2 @@ } | ||
MomentoCache.DEFAULT_REQUEST_TIMEOUT_MS = 5 * 1000; | ||
MomentoCache.isUserAgentSent = false; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9tZW50b0NhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01vbWVudG9DYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBaUQ7QUFDakQsMEdBQTBHO0FBQzFHLCtCQUFpQztBQUNqQyxrRUFBb0U7QUFDcEUsOEVBQXlFO0FBQ3pFLDhDQUF5RTtBQUN6RSxxQ0FBbUU7QUFDbkUsdUVBQWtFO0FBQ2xFLDJDQUE4RDtBQUM5RCx3REFBbUQ7QUFDbkQsd0RBQW1EO0FBQ25ELGtEQUF3QztBQUN4Qyw4REFBeUQ7QUFDekQsOERBQXlEO0FBQ3pELDZDQUFpRTtBQWdCakUsTUFBYSxZQUFZO0lBWXZCOztPQUVHO0lBQ0gsWUFBWSxLQUF3QjtRQWdLNUIscUJBQWdCLEdBQUcsQ0FDekIsSUFBcUMsRUFDeEIsRUFBRTtZQUNmLE1BQU0sYUFBYSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSx5QkFBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFTSxxQkFBZ0IsR0FBRyxDQUN6QixJQUFxQyxFQUNyQyxLQUFpQixFQUNKLEVBQUU7WUFDZixPQUFPLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUVGLDhEQUE4RDtRQUN0RCxtQkFBYyxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixNQUFNLElBQUksNkJBQW9CLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FBQztRQWxMQSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FB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QU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsS0FBVSxFQUFFLEdBQVc7UUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLDZCQUFvQixDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQzs7QUFyT0gsb0NBc09DO0FBL055Qix1Q0FBMEIsR0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3ZELDRCQUFlLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjYWNoZX0gZnJvbSAnQGdvbW9tZW50by9nZW5lcmF0ZWQtdHlwZXMnO1xuLy8gb2xkZXIgdmVyc2lvbnMgb2Ygbm9kZSBkb24ndCBoYXZlIHRoZSBnbG9iYWwgdXRpbCB2YXJpYWJsZXMgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2lzc3Vlcy8yMDM2NVxuaW1wb3J0IHtUZXh0RW5jb2Rlcn0gZnJvbSAndXRpbCc7XG5pbXBvcnQge0hlYWRlciwgSGVhZGVySW50ZXJjZXB0b3J9IGZyb20gJy4vZ3JwYy9IZWFkZXJzSW50ZXJjZXB0b3InO1xuaW1wb3J0IHtDbGllbnRUaW1lb3V0SW50ZXJjZXB0b3J9IGZyb20gJy4vZ3JwYy9DbGllbnRUaW1lb3V0SW50ZXJjZXB0b3InO1xuaW1wb3J0IHtDYWNoZUdldFN0YXR1cywgbW9tZW50b1Jlc3VsdENvbnZlcnRlcn0gZnJvbSAnLi9tZXNzYWdlcy9SZXN1bHQnO1xuaW1wb3J0IHtJbnZhbGlkQXJndW1lbnRFcnJvciwgVW5rbm93blNlcnZpY2VFcnJvcn0gZnJvbSAnLi9FcnJvcnMnO1xuaW1wb3J0IHtjYWNoZVNlcnZpY2VFcnJvck1hcHBlcn0gZnJvbSAnLi9DYWNoZVNlcnZpY2VFcnJvck1hcHBlcic7XG5pbXBvcnQge0NoYW5uZWxDcmVkZW50aWFscywgSW50ZXJjZXB0b3J9IGZyb20gJ0BncnBjL2dycGMtanMnO1xuaW1wb3J0IHtHZXRSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9HZXRSZXNwb25zZSc7XG5pbXBvcnQge1NldFJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL1NldFJlc3BvbnNlJztcbmltcG9ydCB7dmVyc2lvbn0gZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCB7RGVsZXRlUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvRGVsZXRlUmVzcG9uc2UnO1xuaW1wb3J0IHtSZXRyeUludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvUmV0cnlJbnRlcmNlcHRvcic7XG5pbXBvcnQge2dldExvZ2dlciwgTG9nZ2VyLCBMb2dnZXJPcHRpb25zfSBmcm9tICcuL3V0aWxzL2xvZ2dpbmcnO1xuXG4vKipcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhdXRoVG9rZW4gLSBtb21lbnRvIGp3dCB0b2tlblxuICogQHByb3BlcnR5IHtzdHJpbmd9IGVuZHBvaW50IC0gZW5kcG9pbnQgdG8gcmVhY2ggbW9tZW50byBjYWNoZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGRlZmF1bHRUdGxTZWNvbmRzIC0gdGhlIGRlZmF1bHQgdGltZSB0byBsaXZlIG9mIG9iamVjdCBpbnNpZGUgb2YgY2FjaGUsIGluIHNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByZXF1ZXN0VGltZW91dE1zIC0gdGhlIGFtb3VudCBvZiB0aW1lIGZvciBhIHJlcXVlc3QgdG8gY29tcGxldGUgYmVmb3JlIHRpbWluZyBvdXQsIGluIG1pbGxpc2Vjb25kc1xuICovXG50eXBlIE1vbWVudG9DYWNoZVByb3BzID0ge1xuICBhdXRoVG9rZW46IHN0cmluZztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgZGVmYXVsdFR0bFNlY29uZHM6IG51bWJlcjtcbiAgcmVxdWVzdFRpbWVvdXRNcz86IG51bWJlcjtcbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnM7XG59O1xuXG5leHBvcnQgY2xhc3MgTW9tZW50b0NhY2hlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IGNhY2hlLmNhY2hlX2NsaWVudC5TY3NDbGllbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEVuY29kZXI6IFRleHRFbmNvZGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRUdGxTZWNvbmRzOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdFRpbWVvdXRNczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhUb2tlbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUkVRVUVTVF9USU1FT1VUX01TOiBudW1iZXIgPSA1ICogMTAwMDtcbiAgcHJpdmF0ZSBzdGF0aWMgaXNVc2VyQWdlbnRTZW50ID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyT3B0aW9uczogTG9nZ2VyT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQHBhcmFtIHtNb21lbnRvQ2FjaGVQcm9wc30gcHJvcHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBNb21lbnRvQ2FjaGVQcm9wcykge1xuICAgIHRoaXMubG9nZ2VyT3B0aW9ucyA9IHByb3BzLmxvZ2dlck9wdGlvbnM7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wcy5sb2dnZXJPcHRpb25zKTtcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdFRpbWVvdXQocHJvcHMucmVxdWVzdFRpbWVvdXRNcyk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgY2FjaGUgY2xpZW50IHVzaW5nIGVuZHBvaW50OiAnJHtwcm9wcy5lbmRwb2ludH1gXG4gICAgKTtcbiAgICB0aGlzLmNsaWVudCA9IG5ldyBjYWNoZS5jYWNoZV9jbGllbnQuU2NzQ2xpZW50KFxuICAgICAgcHJvcHMuZW5kcG9pbnQsXG4gICAgICBDaGFubmVsQ3JlZGVudGlhbHMuY3JlYXRlU3NsKClcbiAgICApO1xuICAgIHRoaXMudGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICB0aGlzLmRlZmF1bHRUdGxTZWNvbmRzID0gcHJvcHMuZGVmYXVsdFR0bFNlY29uZHM7XG4gICAgdGhpcy5yZXF1ZXN0VGltZW91dE1zID1cbiAgICAgIHByb3BzLnJlcXVlc3RUaW1lb3V0TXMgfHwgTW9tZW50b0NhY2hlLkRFRkFVTFRfUkVRVUVTVF9USU1FT1VUX01TO1xuICAgIHRoaXMuYXV0aFRva2VuID0gcHJvcHMuYXV0aFRva2VuO1xuICAgIHRoaXMuZW5kcG9pbnQgPSBwcm9wcy5lbmRwb2ludDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBVc2luZyBjYWNoZSBlbmRwb2ludDogJHt0aGlzLmVuZHBvaW50fWApO1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3RUaW1lb3V0KHRpbWVvdXQ/OiBudW1iZXIpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgUmVxdWVzdCB0aW1lb3V0OiAke3RoaXMuZW5kcG9pbnR9YCk7XG4gICAgaWYgKHRpbWVvdXQgJiYgdGltZW91dCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICdyZXF1ZXN0IHRpbWVvdXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IG51bWJlclxuICApOiBQcm9taXNlPFNldFJlc3BvbnNlPiB7XG4gICAgdGhpcy5lbnN1cmVWYWxpZFNldFJlcXVlc3Qoa2V5LCB2YWx1ZSwgdHRsIHx8IHRoaXMuZGVmYXVsdFR0bFNlY29uZHMpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYElzc3VpbmcgJ3NldCcgcmVxdWVzdDsga2V5OiAke2tleS50b1N0cmluZygpfSwgdmFsdWU6ICR7dmFsdWUudG9TdHJpbmcoKX0sIHR0bDogJHtcbiAgICAgICAgdHRsPy50b1N0cmluZygpID8/ICdudWxsJ1xuICAgICAgfWBcbiAgICApO1xuICAgIGNvbnN0IGVuY29kZWRLZXkgPSB0aGlzLmNvbnZlcnQoa2V5KTtcbiAgICBjb25zdCBlbmNvZGVkVmFsdWUgPSB0aGlzLmNvbnZlcnQodmFsdWUpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZFNldChcbiAgICAgIGNhY2hlTmFtZSxcbiAgICAgIGVuY29kZWRLZXksXG4gICAgICBlbmNvZGVkVmFsdWUsXG4gICAgICB0dGwgfHwgdGhpcy5kZWZhdWx0VHRsU2Vjb25kc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbmRTZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBVaW50OEFycmF5LFxuICAgIHR0bDogbnVtYmVyXG4gICk6IFByb21pc2U8U2V0UmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IGNhY2hlLmNhY2hlX2NsaWVudC5fU2V0UmVxdWVzdCh7XG4gICAgICBjYWNoZV9ib2R5OiB2YWx1ZSxcbiAgICAgIGNhY2hlX2tleToga2V5LFxuICAgICAgdHRsX21pbGxpc2Vjb25kczogdHRsICogMTAwMCxcbiAgICB9KTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuU2V0KFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB7XG4gICAgICAgICAgaW50ZXJjZXB0b3JzOiB0aGlzLmdldEludGVyY2VwdG9ycyhjYWNoZU5hbWUpLFxuICAgICAgICB9LFxuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3ApIHtcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5wYXJzZVNldFJlc3BvbnNlKHJlc3AsIHZhbHVlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPERlbGV0ZVJlc3BvbnNlPiB7XG4gICAgdGhpcy5lbnN1cmVWYWxpZEtleShrZXkpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBJc3N1aW5nICdkZWxldGUnIHJlcXVlc3Q7IGtleTogJHtrZXkudG9TdHJpbmcoKX1gKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kRGVsZXRlKGNhY2hlTmFtZSwgdGhpcy5jb252ZXJ0KGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kRGVsZXRlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogVWludDhBcnJheVxuICApOiBQcm9taXNlPERlbGV0ZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBjYWNoZS5jYWNoZV9jbGllbnQuX0RlbGV0ZVJlcXVlc3Qoe1xuICAgICAgY2FjaGVfa2V5OiBrZXksXG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LkRlbGV0ZShcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAge1xuICAgICAgICAgIGludGVyY2VwdG9yczogdGhpcy5nZXRJbnRlcmNlcHRvcnMoY2FjaGVOYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwKSB7XG4gICAgICAgICAgICByZXNvbHZlKG5ldyBEZWxldGVSZXNwb25zZSgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGNhY2hlU2VydmljZUVycm9yTWFwcGVyKGVycikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8R2V0UmVzcG9uc2U+IHtcbiAgICB0aGlzLmVuc3VyZVZhbGlkS2V5KGtleSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYElzc3VpbmcgJ2dldCcgcmVxdWVzdDsga2V5OiAke2tleS50b1N0cmluZygpfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VuZEdldChjYWNoZU5hbWUsIHRoaXMuY29udmVydChrZXkpKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgJ2dldCcgcmVxdWVzdCByZXN1bHQ6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kR2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogVWludDhBcnJheVxuICApOiBQcm9taXNlPEdldFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBjYWNoZS5jYWNoZV9jbGllbnQuX0dldFJlcXVlc3Qoe1xuICAgICAgY2FjaGVfa2V5OiBrZXksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQuR2V0KFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICB7XG4gICAgICAgICAgaW50ZXJjZXB0b3JzOiB0aGlzLmdldEludGVyY2VwdG9ycyhjYWNoZU5hbWUpLFxuICAgICAgICB9LFxuICAgICAgICAoZXJyLCByZXNwKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3ApIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudG9SZXN1bHQgPSBtb21lbnRvUmVzdWx0Q29udmVydGVyKHJlc3AucmVzdWx0KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbW9tZW50b1Jlc3VsdCAhPT0gQ2FjaGVHZXRTdGF0dXMuTWlzcyAmJlxuICAgICAgICAgICAgICBtb21lbnRvUmVzdWx0ICE9PSBDYWNoZUdldFN0YXR1cy5IaXRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZWplY3QobmV3IFVua25vd25TZXJ2aWNlRXJyb3IocmVzcC5tZXNzYWdlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHRoaXMucGFyc2VHZXRSZXNwb25zZShyZXNwKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlR2V0UmVzcG9uc2UgPSAoXG4gICAgcmVzcDogY2FjaGUuY2FjaGVfY2xpZW50Ll9HZXRSZXNwb25zZVxuICApOiBHZXRSZXNwb25zZSA9PiB7XG4gICAgY29uc3QgbW9tZW50b1Jlc3VsdCA9IG1vbWVudG9SZXN1bHRDb252ZXJ0ZXIocmVzcC5yZXN1bHQpO1xuICAgIHJldHVybiBuZXcgR2V0UmVzcG9uc2UobW9tZW50b1Jlc3VsdCwgcmVzcC5tZXNzYWdlLCByZXNwLmNhY2hlX2JvZHkpO1xuICB9O1xuXG4gIHByaXZhdGUgcGFyc2VTZXRSZXNwb25zZSA9IChcbiAgICByZXNwOiBjYWNoZS5jYWNoZV9jbGllbnQuX1NldFJlc3BvbnNlLFxuICAgIHZhbHVlOiBVaW50OEFycmF5XG4gICk6IFNldFJlc3BvbnNlID0+IHtcbiAgICByZXR1cm4gbmV3IFNldFJlc3BvbnNlKHJlc3AubWVzc2FnZSwgdmFsdWUpO1xuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgZW5zdXJlVmFsaWRLZXkgPSAoa2V5OiBhbnkpID0+IHtcbiAgICBpZiAoIWtleSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdrZXkgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXRJbnRlcmNlcHRvcnMoY2FjaGVOYW1lOiBzdHJpbmcpOiBJbnRlcmNlcHRvcltdIHtcbiAgICBjb25zdCBoZWFkZXJzID0gW1xuICAgICAgbmV3IEhlYWRlcignQXV0aG9yaXphdGlvbicsIHRoaXMuYXV0aFRva2VuKSxcbiAgICAgIG5ldyBIZWFkZXIoJ2NhY2hlJywgY2FjaGVOYW1lKSxcbiAgICAgIG5ldyBIZWFkZXIoJ0FnZW50JywgYGphdmFzY3JpcHQ6JHt2ZXJzaW9ufWApLFxuICAgIF07XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBIZWFkZXJJbnRlcmNlcHRvcihoZWFkZXJzKS5hZGRIZWFkZXJzSW50ZXJjZXB0b3IoKSxcbiAgICAgIENsaWVudFRpbWVvdXRJbnRlcmNlcHRvcih0aGlzLnJlcXVlc3RUaW1lb3V0TXMpLFxuICAgICAgbmV3IFJldHJ5SW50ZXJjZXB0b3Ioe1xuICAgICAgICBsb2dnZXJPcHRpb25zOiB0aGlzLmxvZ2dlck9wdGlvbnMsXG4gICAgICB9KS5hZGRSZXRyeUludGVyY2VwdG9yKCksXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydCh2OiBzdHJpbmcgfCBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gICAgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHYpO1xuICAgIH1cbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgZW5zdXJlVmFsaWRTZXRSZXF1ZXN0KGtleTogYW55LCB2YWx1ZTogYW55LCB0dGw6IG51bWJlcikge1xuICAgIHRoaXMuZW5zdXJlVmFsaWRLZXkoa2V5KTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigndmFsdWUgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICB9XG5cbiAgICBpZiAodHRsICYmIHR0bCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigndHRsIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9tZW50b0NhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01vbWVudG9DYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBaUQ7QUFDakQsMEdBQTBHO0FBQzFHLCtCQUFpQztBQUNqQyxrRUFBb0U7QUFDcEUsOEVBQXlFO0FBQ3pFLDhDQUF5RTtBQUN6RSxxQ0FBbUU7QUFDbkUsdUVBQWtFO0FBQ2xFLDJDQUE4RDtBQUM5RCx3REFBbUQ7QUFDbkQsd0RBQW1EO0FBQ25ELGtEQUF3QztBQUN4Qyw4REFBeUQ7QUFDekQsOERBQXdFO0FBQ3hFLDZDQUFpRTtBQWdCakUsTUFBYSxZQUFZO0lBWXZCOztPQUVHO0lBQ0gsWUFBWSxLQUF3QjtRQStLNUIscUJBQWdCLEdBQUcsQ0FDekIsSUFBcUMsRUFDeEIsRUFBRTtZQUNmLE1BQU0sYUFBYSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSx5QkFBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFTSxxQkFBZ0IsR0FBRyxDQUN6QixJQUFxQyxFQUNyQyxLQUFpQixFQUNKLEVBQUU7WUFDZixPQUFPLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUVGLDhEQUE4RDtRQUN0RCxtQkFBYyxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixNQUFNLElBQUksNkJBQW9CLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FBQztRQWpNQSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLG1CQUFTLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsMENBQTBDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDM0QsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx1QkFBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQ2QsNEJBQWtCLENBQUMsU0FBUyxFQUFFLENBQy9CLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksa0JBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixLQUFLLENBQUMsZ0JBQWdCLElBQUksWUFBWSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFFL0IsbUVBQW1FO1FBQ25FLHVFQUF1RTtRQUN2RSx5RUFBeUU7UUFDekUsNkVBQTZFO1FBQzdFLCtFQUErRTtRQUMvRSw4RUFBOEU7UUFDOUUsaUZBQWlGO1FBQ2pGLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsc0NBQXNDLEdBQUc7WUFDNUMsSUFBQSxtREFBd0IsRUFBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsR0FBRyxJQUFBLGtEQUErQixFQUFDO2dCQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxPQUFnQjtRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksNkJBQW9CLENBQzVCLDRDQUE0QyxDQUM3QyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FDZCxTQUFpQixFQUNqQixHQUF3QixFQUN4QixLQUEwQixFQUMxQixHQUFZOztRQUVaLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZiwrQkFBK0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxtQkFDM0MsS0FBSyxDQUFDLE1BQ1IsVUFBVSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLEVBQUUsbUNBQUksTUFBTSxFQUFFLENBQ3RDLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLE9BQU8sQ0FDbkIsU0FBaUIsRUFDakIsR0FBZSxFQUNmLEtBQWlCLEVBQ2pCLEdBQVc7UUFFWCxNQUFNLE9BQU8sR0FBRyxJQUFJLHVCQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUNqRCxVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsR0FBRztZQUNkLGdCQUFnQixFQUFFLEdBQUcsR0FBRyxJQUFJO1NBQzdCLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYixPQUFPLEVBQ1A7Z0JBQ0UsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2FBQzlDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDN0M7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLElBQUEsaURBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQ2pCLFNBQWlCLEVBQ2pCLEdBQXdCO1FBRXhCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEUsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVUsQ0FDdEIsU0FBaUIsRUFDakIsR0FBZTtRQUVmLE1BQU0sT0FBTyxHQUFHLElBQUksdUJBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1lBQ3BELFNBQVMsRUFBRSxHQUFHO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNoQixPQUFPLEVBQ1A7Z0JBQ0UsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2FBQzlDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLElBQUksK0JBQWMsRUFBRSxDQUFDLENBQUM7aUJBQy9CO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxJQUFBLGlEQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUNkLFNBQWlCLEVBQ2pCLEdBQXdCO1FBRXhCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseUJBQXlCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTyxDQUNuQixTQUFpQixFQUNqQixHQUFlO1FBRWYsTUFBTSxPQUFPLEdBQUcsSUFBSSx1QkFBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDakQsU0FBUyxFQUFFLEdBQUc7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ2IsT0FBTyxFQUNQO2dCQUNFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQzthQUM5QyxFQUNELENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNaLElBQUksSUFBSSxFQUFFO29CQUNSLE1BQU0sYUFBYSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxRCxJQUNFLGFBQWEsS0FBSyx1QkFBYyxDQUFDLElBQUk7d0JBQ3JDLGFBQWEsS0FBSyx1QkFBYyxDQUFDLEdBQUcsRUFDcEM7d0JBQ0EsTUFBTSxDQUFDLElBQUksNEJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7cUJBQy9DO29CQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLElBQUEsaURBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXVCTyxlQUFlLENBQUMsU0FBaUI7UUFDdkMsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLDJCQUFNLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDM0MsSUFBSSwyQkFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7WUFDOUIsSUFBSSwyQkFBTSxDQUFDLE9BQU8sRUFBRSxjQUFjLHNCQUFPLEVBQUUsQ0FBQztTQUM3QyxDQUFDO1FBQ0YsT0FBTztZQUNMLElBQUksc0NBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLEVBQUU7WUFDdEQsR0FBRyxJQUFJLENBQUMsc0NBQXNDO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTyxDQUFDLENBQXNCO1FBQ3BDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCw4REFBOEQ7SUFDdEQscUJBQXFCLENBQUMsR0FBUSxFQUFFLEtBQVUsRUFBRSxHQUFXO1FBQzdELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSw2QkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRTtZQUNsQixNQUFNLElBQUksNkJBQW9CLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7O0FBalBILG9DQWtQQztBQTNPeUIsdUNBQTBCLEdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2FjaGV9IGZyb20gJ0Bnb21vbWVudG8vZ2VuZXJhdGVkLXR5cGVzJztcbi8vIG9sZGVyIHZlcnNpb25zIG9mIG5vZGUgZG9uJ3QgaGF2ZSB0aGUgZ2xvYmFsIHV0aWwgdmFyaWFibGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvMjAzNjVcbmltcG9ydCB7VGV4dEVuY29kZXJ9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHtIZWFkZXIsIEhlYWRlckludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvSGVhZGVyc0ludGVyY2VwdG9yJztcbmltcG9ydCB7Q2xpZW50VGltZW91dEludGVyY2VwdG9yfSBmcm9tICcuL2dycGMvQ2xpZW50VGltZW91dEludGVyY2VwdG9yJztcbmltcG9ydCB7Q2FjaGVHZXRTdGF0dXMsIG1vbWVudG9SZXN1bHRDb252ZXJ0ZXJ9IGZyb20gJy4vbWVzc2FnZXMvUmVzdWx0JztcbmltcG9ydCB7SW52YWxpZEFyZ3VtZW50RXJyb3IsIFVua25vd25TZXJ2aWNlRXJyb3J9IGZyb20gJy4vRXJyb3JzJztcbmltcG9ydCB7Y2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXJ9IGZyb20gJy4vQ2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXInO1xuaW1wb3J0IHtDaGFubmVsQ3JlZGVudGlhbHMsIEludGVyY2VwdG9yfSBmcm9tICdAZ3JwYy9ncnBjLWpzJztcbmltcG9ydCB7R2V0UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvR2V0UmVzcG9uc2UnO1xuaW1wb3J0IHtTZXRSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9TZXRSZXNwb25zZSc7XG5pbXBvcnQge3ZlcnNpb259IGZyb20gJy4uL3BhY2thZ2UuanNvbic7XG5pbXBvcnQge0RlbGV0ZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0RlbGV0ZVJlc3BvbnNlJztcbmltcG9ydCB7Y3JlYXRlUmV0cnlJbnRlcmNlcHRvcklmRW5hYmxlZH0gZnJvbSAnLi9ncnBjL1JldHJ5SW50ZXJjZXB0b3InO1xuaW1wb3J0IHtnZXRMb2dnZXIsIExvZ2dlciwgTG9nZ2VyT3B0aW9uc30gZnJvbSAnLi91dGlscy9sb2dnaW5nJztcblxuLyoqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXV0aFRva2VuIC0gbW9tZW50byBqd3QgdG9rZW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBlbmRwb2ludCAtIGVuZHBvaW50IHRvIHJlYWNoIG1vbWVudG8gY2FjaGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBkZWZhdWx0VHRsU2Vjb25kcyAtIHRoZSBkZWZhdWx0IHRpbWUgdG8gbGl2ZSBvZiBvYmplY3QgaW5zaWRlIG9mIGNhY2hlLCBpbiBzZWNvbmRzXG4gKiBAcHJvcGVydHkge251bWJlcn0gcmVxdWVzdFRpbWVvdXRNcyAtIHRoZSBhbW91bnQgb2YgdGltZSBmb3IgYSByZXF1ZXN0IHRvIGNvbXBsZXRlIGJlZm9yZSB0aW1pbmcgb3V0LCBpbiBtaWxsaXNlY29uZHNcbiAqL1xudHlwZSBNb21lbnRvQ2FjaGVQcm9wcyA9IHtcbiAgYXV0aFRva2VuOiBzdHJpbmc7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGRlZmF1bHRUdGxTZWNvbmRzOiBudW1iZXI7XG4gIHJlcXVlc3RUaW1lb3V0TXM/OiBudW1iZXI7XG4gIGxvZ2dlck9wdGlvbnM/OiBMb2dnZXJPcHRpb25zO1xufTtcblxuZXhwb3J0IGNsYXNzIE1vbWVudG9DYWNoZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBjYWNoZS5jYWNoZV9jbGllbnQuU2NzQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHRFbmNvZGVyOiBUZXh0RW5jb2RlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VHRsU2Vjb25kczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RUaW1lb3V0TXM6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoVG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludDogc3RyaW5nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JFUVVFU1RfVElNRU9VVF9NUzogbnVtYmVyID0gNSAqIDEwMDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyT3B0aW9uczogTG9nZ2VyT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxJbnRlcmNlcHRvcnNFeGNlcHRIZWFkZXJJbnRlcmNlcHRvcjogSW50ZXJjZXB0b3JbXTtcblxuICAvKipcbiAgICogQHBhcmFtIHtNb21lbnRvQ2FjaGVQcm9wc30gcHJvcHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBNb21lbnRvQ2FjaGVQcm9wcykge1xuICAgIHRoaXMubG9nZ2VyT3B0aW9ucyA9IHByb3BzLmxvZ2dlck9wdGlvbnM7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIodGhpcywgcHJvcHMubG9nZ2VyT3B0aW9ucyk7XG4gICAgdGhpcy52YWxpZGF0ZVJlcXVlc3RUaW1lb3V0KHByb3BzLnJlcXVlc3RUaW1lb3V0TXMpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgYENyZWF0aW5nIGNhY2hlIGNsaWVudCB1c2luZyBlbmRwb2ludDogJyR7cHJvcHMuZW5kcG9pbnR9YFxuICAgICk7XG4gICAgdGhpcy5jbGllbnQgPSBuZXcgY2FjaGUuY2FjaGVfY2xpZW50LlNjc0NsaWVudChcbiAgICAgIHByb3BzLmVuZHBvaW50LFxuICAgICAgQ2hhbm5lbENyZWRlbnRpYWxzLmNyZWF0ZVNzbCgpXG4gICAgKTtcbiAgICB0aGlzLnRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgdGhpcy5kZWZhdWx0VHRsU2Vjb25kcyA9IHByb3BzLmRlZmF1bHRUdGxTZWNvbmRzO1xuICAgIHRoaXMucmVxdWVzdFRpbWVvdXRNcyA9XG4gICAgICBwcm9wcy5yZXF1ZXN0VGltZW91dE1zIHx8IE1vbWVudG9DYWNoZS5ERUZBVUxUX1JFUVVFU1RfVElNRU9VVF9NUztcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHByb3BzLmF1dGhUb2tlbjtcbiAgICB0aGlzLmVuZHBvaW50ID0gcHJvcHMuZW5kcG9pbnQ7XG5cbiAgICAvLyBUaGUgZmlyc3QgaW50ZXJjZXB0b3IgaW4gb3VyIGxpc3QgaXMgYSBIZWFkZXIgaW50ZXJjZXB0b3IsIHdoaWNoXG4gICAgLy8gaW5jbHVkZXMgYSBoZWFkZXIgZm9yIHRoZSBjYWNoZSBuYW1lLiAgVGhlIGNhY2hlIG5hbWUgaXMgcGFydCBvZiB0aGVcbiAgICAvLyBnZXQvc2V0IEFQSSBjYWxscywgc28gd2UgY2Fubm90IGNvbnN0cnVjdCB0aGF0IGludGVyY2VwdG9yIGhlcmUgaW4gdGhlXG4gICAgLy8gY29uc3RydWN0b3I7IHdlIGhhdmUgdG8gY29uc3RydWN0IGl0IGZvciBlYWNoIHJlcXVlc3QuICBIZXJlLCB3ZSBjb25zdHJ1Y3RcbiAgICAvLyBhbGwgb2YgdGhlIG90aGVyIGludGVyY2VwdG9ycywgd2hpY2ggZG8gbm90IHZhcnkgcGVyIHJlcXVlc3QuICBJdCBpcyBjcnVjaWFsXG4gICAgLy8gdGhhdCB3ZSBvbmx5IGNvbnN0cnVjdCB0aGVzZSBvbmNlIGFuZCByZS11c2UgdGhlbSwgYmVjYXVzZSBzb21lIG9mIHRoZW0gYXJlXG4gICAgLy8gdmVyeSBoZWF2eS13ZWlnaHQgKGluIHRlcm1zIG9mIG1lbW9yeSB1c2FnZSwgRXZlbnRFbWl0dGVyIHJlZ2lzdHJhdGlvbnMgb24gdGhlXG4gICAgLy8gYHByb2Nlc3NgIG9iamVjdCwgZXRjLikuXG4gICAgdGhpcy5hbGxJbnRlcmNlcHRvcnNFeGNlcHRIZWFkZXJJbnRlcmNlcHRvciA9IFtcbiAgICAgIENsaWVudFRpbWVvdXRJbnRlcmNlcHRvcih0aGlzLnJlcXVlc3RUaW1lb3V0TXMpLFxuICAgICAgLi4uY3JlYXRlUmV0cnlJbnRlcmNlcHRvcklmRW5hYmxlZCh7XG4gICAgICAgIGxvZ2dlck9wdGlvbnM6IHRoaXMubG9nZ2VyT3B0aW9ucyxcbiAgICAgIH0pLFxuICAgIF07XG4gIH1cblxuICBwdWJsaWMgZ2V0RW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVXNpbmcgY2FjaGUgZW5kcG9pbnQ6ICR7dGhpcy5lbmRwb2ludH1gKTtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVSZXF1ZXN0VGltZW91dCh0aW1lb3V0PzogbnVtYmVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYFJlcXVlc3QgdGltZW91dDogJHt0aGlzLmVuZHBvaW50fWApO1xuICAgIGlmICh0aW1lb3V0ICYmIHRpbWVvdXQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAncmVxdWVzdCB0aW1lb3V0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxTZXRSZXNwb25zZT4ge1xuICAgIHRoaXMuZW5zdXJlVmFsaWRTZXRSZXF1ZXN0KGtleSwgdmFsdWUsIHR0bCB8fCB0aGlzLmRlZmF1bHRUdGxTZWNvbmRzKTtcbiAgICB0aGlzLmxvZ2dlci50cmFjZShcbiAgICAgIGBJc3N1aW5nICdzZXQnIHJlcXVlc3Q7IGtleTogJHtrZXkudG9TdHJpbmcoKX0sIHZhbHVlIGxlbmd0aDogJHtcbiAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICB9LCB0dGw6ICR7dHRsPy50b1N0cmluZygpID8/ICdudWxsJ31gXG4gICAgKTtcbiAgICBjb25zdCBlbmNvZGVkS2V5ID0gdGhpcy5jb252ZXJ0KGtleSk7XG4gICAgY29uc3QgZW5jb2RlZFZhbHVlID0gdGhpcy5jb252ZXJ0KHZhbHVlKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmRTZXQoXG4gICAgICBjYWNoZU5hbWUsXG4gICAgICBlbmNvZGVkS2V5LFxuICAgICAgZW5jb2RlZFZhbHVlLFxuICAgICAgdHRsIHx8IHRoaXMuZGVmYXVsdFR0bFNlY29uZHNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZW5kU2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogVWludDhBcnJheSxcbiAgICB2YWx1ZTogVWludDhBcnJheSxcbiAgICB0dGw6IG51bWJlclxuICApOiBQcm9taXNlPFNldFJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBjYWNoZS5jYWNoZV9jbGllbnQuX1NldFJlcXVlc3Qoe1xuICAgICAgY2FjaGVfYm9keTogdmFsdWUsXG4gICAgICBjYWNoZV9rZXk6IGtleSxcbiAgICAgIHR0bF9taWxsaXNlY29uZHM6IHR0bCAqIDEwMDAsXG4gICAgfSk7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LlNldChcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAge1xuICAgICAgICAgIGludGVyY2VwdG9yczogdGhpcy5nZXRJbnRlcmNlcHRvcnMoY2FjaGVOYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwKSB7XG4gICAgICAgICAgICByZXNvbHZlKHRoaXMucGFyc2VTZXRSZXNwb25zZShyZXNwLCB2YWx1ZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxEZWxldGVSZXNwb25zZT4ge1xuICAgIHRoaXMuZW5zdXJlVmFsaWRLZXkoa2V5KTtcbiAgICB0aGlzLmxvZ2dlci50cmFjZShgSXNzdWluZyAnZGVsZXRlJyByZXF1ZXN0OyBrZXk6ICR7a2V5LnRvU3RyaW5nKCl9YCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZERlbGV0ZShjYWNoZU5hbWUsIHRoaXMuY29udmVydChrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VuZERlbGV0ZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxEZWxldGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY2FjaGUuY2FjaGVfY2xpZW50Ll9EZWxldGVSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX2tleToga2V5LFxuICAgIH0pO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNsaWVudC5EZWxldGUoXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIHtcbiAgICAgICAgICBpbnRlcmNlcHRvcnM6IHRoaXMuZ2V0SW50ZXJjZXB0b3JzKGNhY2hlTmFtZSksXG4gICAgICAgIH0sXG4gICAgICAgIChlcnIsIHJlc3ApID0+IHtcbiAgICAgICAgICBpZiAocmVzcCkge1xuICAgICAgICAgICAgcmVzb2x2ZShuZXcgRGVsZXRlUmVzcG9uc2UoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChjYWNoZVNlcnZpY2VFcnJvck1hcHBlcihlcnIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPEdldFJlc3BvbnNlPiB7XG4gICAgdGhpcy5lbnN1cmVWYWxpZEtleShrZXkpO1xuICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBJc3N1aW5nICdnZXQnIHJlcXVlc3Q7IGtleTogJHtrZXkudG9TdHJpbmcoKX1gKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnNlbmRHZXQoY2FjaGVOYW1lLCB0aGlzLmNvbnZlcnQoa2V5KSk7XG4gICAgdGhpcy5sb2dnZXIudHJhY2UoYCdnZXQnIHJlcXVlc3QgcmVzdWx0OiAke3Jlc3VsdC5zdGF0dXN9YCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VuZEdldChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxHZXRSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgY2FjaGUuY2FjaGVfY2xpZW50Ll9HZXRSZXF1ZXN0KHtcbiAgICAgIGNhY2hlX2tleToga2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LkdldChcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAge1xuICAgICAgICAgIGludGVyY2VwdG9yczogdGhpcy5nZXRJbnRlcmNlcHRvcnMoY2FjaGVOYW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgKGVyciwgcmVzcCkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnRvUmVzdWx0ID0gbW9tZW50b1Jlc3VsdENvbnZlcnRlcihyZXNwLnJlc3VsdCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG1vbWVudG9SZXN1bHQgIT09IENhY2hlR2V0U3RhdHVzLk1pc3MgJiZcbiAgICAgICAgICAgICAgbW9tZW50b1Jlc3VsdCAhPT0gQ2FjaGVHZXRTdGF0dXMuSGl0XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBVbmtub3duU2VydmljZUVycm9yKHJlc3AubWVzc2FnZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnBhcnNlR2V0UmVzcG9uc2UocmVzcCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoY2FjaGVTZXJ2aWNlRXJyb3JNYXBwZXIoZXJyKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUdldFJlc3BvbnNlID0gKFxuICAgIHJlc3A6IGNhY2hlLmNhY2hlX2NsaWVudC5fR2V0UmVzcG9uc2VcbiAgKTogR2V0UmVzcG9uc2UgPT4ge1xuICAgIGNvbnN0IG1vbWVudG9SZXN1bHQgPSBtb21lbnRvUmVzdWx0Q29udmVydGVyKHJlc3AucmVzdWx0KTtcbiAgICByZXR1cm4gbmV3IEdldFJlc3BvbnNlKG1vbWVudG9SZXN1bHQsIHJlc3AubWVzc2FnZSwgcmVzcC5jYWNoZV9ib2R5KTtcbiAgfTtcblxuICBwcml2YXRlIHBhcnNlU2V0UmVzcG9uc2UgPSAoXG4gICAgcmVzcDogY2FjaGUuY2FjaGVfY2xpZW50Ll9TZXRSZXNwb25zZSxcbiAgICB2YWx1ZTogVWludDhBcnJheVxuICApOiBTZXRSZXNwb25zZSA9PiB7XG4gICAgcmV0dXJuIG5ldyBTZXRSZXNwb25zZShyZXNwLm1lc3NhZ2UsIHZhbHVlKTtcbiAgfTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIGVuc3VyZVZhbGlkS2V5ID0gKGtleTogYW55KSA9PiB7XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigna2V5IG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgZ2V0SW50ZXJjZXB0b3JzKGNhY2hlTmFtZTogc3RyaW5nKTogSW50ZXJjZXB0b3JbXSB7XG4gICAgY29uc3QgaGVhZGVycyA9IFtcbiAgICAgIG5ldyBIZWFkZXIoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmF1dGhUb2tlbiksXG4gICAgICBuZXcgSGVhZGVyKCdjYWNoZScsIGNhY2hlTmFtZSksXG4gICAgICBuZXcgSGVhZGVyKCdBZ2VudCcsIGBqYXZhc2NyaXB0OiR7dmVyc2lvbn1gKSxcbiAgICBdO1xuICAgIHJldHVybiBbXG4gICAgICBuZXcgSGVhZGVySW50ZXJjZXB0b3IoaGVhZGVycykuYWRkSGVhZGVyc0ludGVyY2VwdG9yKCksXG4gICAgICAuLi50aGlzLmFsbEludGVyY2VwdG9yc0V4Y2VwdEhlYWRlckludGVyY2VwdG9yLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnQodjogc3RyaW5nIHwgVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRFbmNvZGVyLmVuY29kZSh2KTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIGVuc3VyZVZhbGlkU2V0UmVxdWVzdChrZXk6IGFueSwgdmFsdWU6IGFueSwgdHRsOiBudW1iZXIpIHtcbiAgICB0aGlzLmVuc3VyZVZhbGlkS2V5KGtleSk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3ZhbHVlIG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHR0bCAmJiB0dGwgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3R0bCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcicpO1xuICAgIH1cbiAgfVxufVxuIl19 |
@@ -28,3 +28,3 @@ "use strict"; | ||
constructor(authToken, defaultTtlSeconds, options) { | ||
this.logger = (0, logging_1.getLogger)(this.constructor.name, options === null || options === void 0 ? void 0 : options.loggerOptions); | ||
this.logger = (0, logging_1.getLogger)(this, options === null || options === void 0 ? void 0 : options.loggerOptions); | ||
const claims = (0, jwt_1.decodeJwt)(authToken); | ||
@@ -144,2 +144,2 @@ const controlEndpoint = claims.cp; | ||
exports.SimpleCacheClient = SimpleCacheClient; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2ltcGxlQ2FjaGVDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2ltcGxlQ2FjaGVDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQWtDO0FBQ2xDLGlEQUE0QztBQUM1QyxxQ0FBc0M7QUFVdEMsNkNBQWlFO0FBZ0JqRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLGlCQUFpQjtJQUs1Qjs7Ozs7OztPQU9HO0lBQ0gsWUFDRSxTQUFpQixFQUNqQixpQkFBeUIsRUFDekIsT0FBa0M7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLG1CQUFTLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLElBQUEsZUFBUyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksMkJBQVksQ0FBQztZQUNqQyxTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLGdCQUFnQixFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxnQkFBZ0I7WUFDM0MsYUFBYSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFhO1NBQ3RDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxpQkFBTyxDQUFDO1lBQy9CLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVM7WUFDVCxhQUFhLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWE7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUNkLFNBQWlCLEVBQ2pCLEdBQXdCO1FBRXhCLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUNkLFNBQWlCLEVBQ2pCLEdBQXdCLEVBQ3hCLEtBQTBCLEVBQzFCLEdBQVk7UUFFWixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUNqQixTQUFpQixFQUNqQixHQUF3QjtRQUV4QixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFrQjtRQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsVUFBa0I7UUFFbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQzlDLFVBQVUsRUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQzNCLEtBQWE7UUFFYixPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FDMUIsU0FBa0I7UUFFbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUM3QixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBLRCw4Q0FvS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbWVudG99IGZyb20gJy4vTW9tZW50byc7XG5pbXBvcnQge01vbWVudG9DYWNoZX0gZnJvbSAnLi9Nb21lbnRvQ2FjaGUnO1xuaW1wb3J0IHtkZWNvZGVKd3R9IGZyb20gJy4vdXRpbHMvand0JztcbmltcG9ydCB7U2V0UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvU2V0UmVzcG9uc2UnO1xuaW1wb3J0IHtHZXRSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9HZXRSZXNwb25zZSc7XG5pbXBvcnQge0NyZWF0ZUNhY2hlUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvQ3JlYXRlQ2FjaGVSZXNwb25zZSc7XG5pbXBvcnQge0RlbGV0ZUNhY2hlUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvRGVsZXRlQ2FjaGVSZXNwb25zZSc7XG5pbXBvcnQge0xpc3RDYWNoZXNSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9MaXN0Q2FjaGVzUmVzcG9uc2UnO1xuaW1wb3J0IHtEZWxldGVSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9EZWxldGVSZXNwb25zZSc7XG5pbXBvcnQge0NyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZX0gZnJvbSAnLi9tZXNzYWdlcy9DcmVhdGVTaWduaW5nS2V5UmVzcG9uc2UnO1xuaW1wb3J0IHtSZXZva2VTaWduaW5nS2V5UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvUmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlJztcbmltcG9ydCB7TGlzdFNpZ25pbmdLZXlzUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvTGlzdFNpZ25pbmdLZXlzUmVzcG9uc2UnO1xuaW1wb3J0IHtnZXRMb2dnZXIsIExvZ2dlciwgTG9nZ2VyT3B0aW9uc30gZnJvbSAnLi91dGlscy9sb2dnaW5nJztcblxuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVDYWNoZUNsaWVudE9wdGlvbnMge1xuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtyZXF1ZXN0VGltZW91dE1zXSAtIEEgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGdldCBhbmQgc2V0IG9wZXJhdGlvbnNcbiAgICogdG8gY29tcGxldGUuIERlZmF1bHRzIHRvIDUgc2Vjb25kcy4gSWYgdGhlIHJlcXVlc3QgdGFrZXMgbG9uZ2VyIHRoYW4gdGhpcyB2YWx1ZSwgaXRcbiAgICogd2lsbCBiZSB0ZXJtaW5hdGVkIGFuZCB0aHJvdyBhIFRpbWVvdXRFcnJvci5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0xvZ2dlck9wdGlvbnN9IFtsb2dnZXJPcHRpb25zXSAtIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdG8gY29udHJvbCBsb2dnaW5nXG4gICAqIG91dHB1dC5cbiAgICovXG4gIGxvZ2dlck9wdGlvbnM/OiBMb2dnZXJPcHRpb25zO1xufVxuXG4vKipcbiAqIE1vbWVudG8gU2ltcGxlIENhY2hlIENsaWVudC5cbiAqXG4gKiBGZWF0dXJlcyBpbmNsdWRlOlxuICogLSBHZXQsIHNldCwgYW5kIGRlbGV0ZSBkYXRhXG4gKiAtIENyZWF0ZSwgZGVsZXRlLCBhbmQgbGlzdCBjYWNoZXNcbiAqIC0gQ3JlYXRlLCByZXZva2UsIGFuZCBsaXN0IHNpZ25pbmcga2V5c1xuICogQGV4cG9ydFxuICogQGNsYXNzIFNpbXBsZUNhY2hlQ2xpZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVDYWNoZUNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YUNsaWVudDogTW9tZW50b0NhY2hlO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDbGllbnQ6IE1vbWVudG87XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2ltcGxlQ2FjaGVDbGllbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdXRoVG9rZW4gLSBNb21lbnRvIHRva2VuIHRvIGF1dGhlbnRpY2F0ZSByZXF1ZXN0cyB3aXRoIFNpbXBsZSBDYWNoZSBTZXJ2aWNlLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZGVmYXVsdFR0bFNlY29uZHMgLSBBIGRlZmF1bHQgdGltZSB0byBsaXZlLCBpbiBzZWNvbmRzLCBmb3IgY2FjaGUgb2JqZWN0c1xuICAgKiBjcmVhdGVkIGJ5IHRoaXMgY2xpZW50LlxuICAgKiBAcGFyYW0ge1NpbXBsZUNhY2hlQ2xpZW50T3B0aW9uc30gb3B0aW9ucyAtIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgY2FjaGUgY2xpZW50LlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGF1dGhUb2tlbjogc3RyaW5nLFxuICAgIGRlZmF1bHRUdGxTZWNvbmRzOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNpbXBsZUNhY2hlQ2xpZW50T3B0aW9uc1xuICApIHtcbiAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUsIG9wdGlvbnM/LmxvZ2dlck9wdGlvbnMpO1xuICAgIGNvbnN0IGNsYWltcyA9IGRlY29kZUp3dChhdXRoVG9rZW4pO1xuICAgIGNvbnN0IGNvbnRyb2xFbmRwb2ludCA9IGNsYWltcy5jcDtcbiAgICBjb25zdCBkYXRhRW5kcG9pbnQgPSBjbGFpbXMuYztcbiAgICB0aGlzLmRhdGFDbGllbnQgPSBuZXcgTW9tZW50b0NhY2hlKHtcbiAgICAgIGF1dGhUb2tlbixcbiAgICAgIGRlZmF1bHRUdGxTZWNvbmRzLFxuICAgICAgZW5kcG9pbnQ6IGRhdGFFbmRwb2ludCxcbiAgICAgIHJlcXVlc3RUaW1lb3V0TXM6IG9wdGlvbnM/LnJlcXVlc3RUaW1lb3V0TXMsXG4gICAgICBsb2dnZXJPcHRpb25zOiBvcHRpb25zPy5sb2dnZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb250cm9sQ2xpZW50ID0gbmV3IE1vbWVudG8oe1xuICAgICAgZW5kcG9pbnQ6IGNvbnRyb2xFbmRwb2ludCxcbiAgICAgIGF1dGhUb2tlbixcbiAgICAgIGxvZ2dlck9wdGlvbnM6IG9wdGlvbnM/LmxvZ2dlck9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjYWNoZSB2YWx1ZSBzdG9yZWQgZm9yIHRoZSBnaXZlbiBrZXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWNoZU5hbWUgLSBOYW1lIG9mIHRoZSBjYWNoZSB0byBwZXJmb3JtIHRoZSBsb29rdXAgaW4uXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IFVpbnQ4QXJyYXkpfSBrZXkgLSBUaGUga2V5IHRvIGxvb2t1cC5cbiAgICogQHJldHVybnMge1Byb21pc2U8R2V0UmVzcG9uc2U+fSAtIFByb21pc2UgY29udGFpbmluZyB0aGUgc3RhdHVzXG4gICAqIG9mIHRoZSBnZXQgb3BlcmF0aW9uIChoaXQgb3IgbWlzcykgYW5kIHRoZSBhc3NvY2lhdGVkIHZhbHVlLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8R2V0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kYXRhQ2xpZW50LmdldChjYWNoZU5hbWUsIGtleSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgaW4gY2FjaGUgd2l0aCBhIGdpdmVuIHRpbWUgdG8gbGl2ZSAoVFRMKSBzZWNvbmRzLlxuICAgKiBJZiBhIHZhbHVlIGZvciB0aGlzIGtleSBpcyBhbHJlYWR5IHByZXNlbnQgaXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgbmV3IHZhbHVlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FjaGVOYW1lIC0gTmFtZSBvZiB0aGUgY2FjaGUgdG8gc3RvcmUgdGhlIGl0ZW0gaW4uXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IFVpbnQ4QXJyYXkpfSBrZXkgLSBUaGUga2V5IHRvIHNldC5cbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgVWludDhBcnJheSl9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIHN0b3JlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0dGxdIC0gVGltZSB0byBsaXZlIChUVEwpIGZvciB0aGUgaXRlbSBpbiBDYWNoZS5cbiAgICogVGhpcyBUVEwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBUVEwgdXNlZCB3aGVuIGluaXRpYWxpemluZyBhIGNhY2hlIGNsaWVudC5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2V0UmVzcG9uc2U+fSAtIFJlc3VsdCBvZiB0aGUgc2V0IG9wZXJhdGlvbi5cbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxTZXRSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQuc2V0KGNhY2hlTmFtZSwga2V5LCB2YWx1ZSwgdHRsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGtleSBmcm9tIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhY2hlTmFtZSAtIE5hbWUgb2YgdGhlIGNhY2hlIHRvIGRlbGV0ZSB0aGUga2V5IGZyb20uXG4gICAqIEBwYXJhbSB7KHN0cmluZyB8IFVpbnQ4QXJyYXkpfSBrZXkgLSBUaGUga2V5IHRvIGRlbGV0ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8RGVsZXRlUmVzcG9uc2U+fSAtIFByb21pc2UgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIHRoZVxuICAgKiBkZWxldGUgb3BlcmF0aW9uLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8RGVsZXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kYXRhQ2xpZW50LmRlbGV0ZShjYWNoZU5hbWUsIGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY2FjaGUgaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWNoZU5hbWUgLSBOYW1lIG9mIHRoZSBjYWNoZSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDcmVhdGVDYWNoZVJlc3BvbnNlPn0gLSBQcm9taXNlIG9mIHRoZSBjcmVhdGUgY2FjaGUgcmVzdWx0LlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYWNoZShjYWNoZU5hbWU6IHN0cmluZyk6IFByb21pc2U8Q3JlYXRlQ2FjaGVSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRyb2xDbGllbnQuY3JlYXRlQ2FjaGUoY2FjaGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBjYWNoZSBhbmQgYWxsIGl0ZW1zIHN0b3JlZCBpbiBpdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhY2hlTmFtZSAtIE5hbWUgb2YgdGhlIGNhY2hlIHRvIGRlbGV0ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT59IC0gUHJvbWlzZSBvZiB0aGUgZGVsZXRlIGNhY2hlIHJlc3VsdC5cbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlQ2FjaGUoY2FjaGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPERlbGV0ZUNhY2hlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb250cm9sQ2xpZW50LmRlbGV0ZUNhY2hlKGNhY2hlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgY2FjaGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW25leHRUb2tlbl0gLSBBIHRva2VuIHRvIHNwZWNpZnkgd2hlcmUgdG8gc3RhcnQgcGFnaW5hdGluZy5cbiAgICogVGhpcyBpcyB0aGUgTmV4dFRva2VuIGZyb20gYSBwcmV2aW91cyByZXNwb25zZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8TGlzdENhY2hlUmVzcG9uc2U+fSAtIFByb21pc2Ugb2YgdGhlIGxpc3QgY2FjaGUgcmVzcG9uc2UuXG4gICAqIENvbnRhaW5zIHRoZSBsaXN0ZWQgY2FjaGVzIGFuZCBhIG5leHQgdG9rZW4gdG8gY29udGludWUgbGlzdGluZy5cbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdENhY2hlcyhuZXh0VG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPExpc3RDYWNoZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRyb2xDbGllbnQubGlzdENhY2hlcyhuZXh0VG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIE1vbWVudG8gc2lnbmluZyBrZXkuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0dGxNaW51dGVzIC0gVGhlIHRpbWUgdG8gbGl2ZSBpbiBtaW51dGVzIHVudGlsIHRoZSBNb21lbnRvIHNpZ25pbmcga2V5IGV4cGlyZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT59IC0gUHJvbWlzZSBvZiBjcmVhdGUgc2lnbmluZyBrZXlcbiAgICogcmVzcG9uc2UuIENvbnRhaW5zIGVuZHBvaW50IGFuZCBleHBpcmF0aW9uLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVTaWduaW5nS2V5KFxuICAgIHR0bE1pbnV0ZXM6IG51bWJlclxuICApOiBQcm9taXNlPENyZWF0ZVNpZ25pbmdLZXlSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRyb2xDbGllbnQuY3JlYXRlU2lnbmluZ0tleShcbiAgICAgIHR0bE1pbnV0ZXMsXG4gICAgICB0aGlzLmRhdGFDbGllbnQuZ2V0RW5kcG9pbnQoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV2b2tlcyBhIE1vbWVudG8gc2lnbmluZyBrZXkuXG4gICAqXG4gICAqIEFsbCB0b2tlbnMgc2lnbmVkIGJ5IHRoaXMga2V5IHdpbGwgYmUgaW52YWxpZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleUlkICAtIFRoZSBJRCBvZiB0aGUgTW9tZW50byBzaWduaW5nIGtleSB0byByZXZva2UuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJldm9rZVNpZ25pbmdLZXlSZXNwb25zZT59IC0gUmV2b2NhdGlvbiByZXNwb25zZSAoZW1wdHkpXG4gICAqIEBtZW1iZXJvZiBTaW1wbGVDYWNoZUNsaWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJldm9rZVNpZ25pbmdLZXkoXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPFJldm9rZVNpZ25pbmdLZXlSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRyb2xDbGllbnQucmV2b2tlU2lnbmluZ0tleShrZXlJZCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgYWxsIE1vbWVudG8gc2lnbmluZyBrZXlzIGZvciB0aGUgcHJvdmlkZWQgYXV0aCB0b2tlbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtuZXh0VG9rZW5dIC0gVG9rZW4gdG8gY29udGludWUgcGFnaW5hdGluZyB0aHJvdWdoIHRoZSBsaXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMaXN0U2lnbmluZ0tleXNSZXNwb25zZT59IC0gUHJvbWlzZSBvZiB0aGUgbGlzdCBzaWduaW5nIGtleXMgcmVzcG9uc2UuXG4gICAqIENvbnRhaW5zIHRoZSByZXRyaWV2ZWQgc2lnbmluZyBrZXlzIGFuZCBhIG5leHQgdG9rZW4gdG8gY29udGludWUgbGlzdGluZy5cbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdFNpZ25pbmdLZXlzKFxuICAgIG5leHRUb2tlbj86IHN0cmluZ1xuICApOiBQcm9taXNlPExpc3RTaWduaW5nS2V5c1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbENsaWVudC5saXN0U2lnbmluZ0tleXMoXG4gICAgICB0aGlzLmRhdGFDbGllbnQuZ2V0RW5kcG9pbnQoKSxcbiAgICAgIG5leHRUb2tlblxuICAgICk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2ltcGxlQ2FjaGVDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2ltcGxlQ2FjaGVDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQWtDO0FBQ2xDLGlEQUE0QztBQUM1QyxxQ0FBc0M7QUFVdEMsNkNBQWlFO0FBZ0JqRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLGlCQUFpQjtJQUs1Qjs7Ozs7OztPQU9HO0lBQ0gsWUFDRSxTQUFpQixFQUNqQixpQkFBeUIsRUFDekIsT0FBa0M7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLG1CQUFTLEVBQUMsSUFBSSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFhLENBQUMsQ0FBQztRQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQVMsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDJCQUFZLENBQUM7WUFDakMsU0FBUztZQUNULGlCQUFpQjtZQUNqQixRQUFRLEVBQUUsWUFBWTtZQUN0QixnQkFBZ0IsRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZ0JBQWdCO1lBQzNDLGFBQWEsRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYTtTQUN0QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksaUJBQU8sQ0FBQztZQUMvQixRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTO1lBQ1QsYUFBYSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFhO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FDZCxTQUFpQixFQUNqQixHQUF3QjtRQUV4QixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FDZCxTQUFpQixFQUNqQixHQUF3QixFQUN4QixLQUEwQixFQUMxQixHQUFZO1FBRVosT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FDakIsU0FBaUIsRUFDakIsR0FBd0I7UUFFeEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBa0I7UUFDeEMsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQzNCLFVBQWtCO1FBRWxCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUM5QyxVQUFVLEVBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQixDQUMzQixLQUFhO1FBRWIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxlQUFlLENBQzFCLFNBQWtCO1FBRWxCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFDN0IsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwS0QsOENBb0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnRvfSBmcm9tICcuL01vbWVudG8nO1xuaW1wb3J0IHtNb21lbnRvQ2FjaGV9IGZyb20gJy4vTW9tZW50b0NhY2hlJztcbmltcG9ydCB7ZGVjb2RlSnd0fSBmcm9tICcuL3V0aWxzL2p3dCc7XG5pbXBvcnQge1NldFJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL1NldFJlc3BvbnNlJztcbmltcG9ydCB7R2V0UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvR2V0UmVzcG9uc2UnO1xuaW1wb3J0IHtDcmVhdGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0NyZWF0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtEZWxldGVDYWNoZVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0RlbGV0ZUNhY2hlUmVzcG9uc2UnO1xuaW1wb3J0IHtMaXN0Q2FjaGVzUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvTGlzdENhY2hlc1Jlc3BvbnNlJztcbmltcG9ydCB7RGVsZXRlUmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvRGVsZXRlUmVzcG9uc2UnO1xuaW1wb3J0IHtDcmVhdGVTaWduaW5nS2V5UmVzcG9uc2V9IGZyb20gJy4vbWVzc2FnZXMvQ3JlYXRlU2lnbmluZ0tleVJlc3BvbnNlJztcbmltcG9ydCB7UmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL1Jldm9rZVNpZ25pbmdLZXlSZXNwb25zZSc7XG5pbXBvcnQge0xpc3RTaWduaW5nS2V5c1Jlc3BvbnNlfSBmcm9tICcuL21lc3NhZ2VzL0xpc3RTaWduaW5nS2V5c1Jlc3BvbnNlJztcbmltcG9ydCB7Z2V0TG9nZ2VyLCBMb2dnZXIsIExvZ2dlck9wdGlvbnN9IGZyb20gJy4vdXRpbHMvbG9nZ2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlQ2FjaGVDbGllbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbcmVxdWVzdFRpbWVvdXRNc10gLSBBIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBnZXQgYW5kIHNldCBvcGVyYXRpb25zXG4gICAqIHRvIGNvbXBsZXRlLiBEZWZhdWx0cyB0byA1IHNlY29uZHMuIElmIHRoZSByZXF1ZXN0IHRha2VzIGxvbmdlciB0aGFuIHRoaXMgdmFsdWUsIGl0XG4gICAqIHdpbGwgYmUgdGVybWluYXRlZCBhbmQgdGhyb3cgYSBUaW1lb3V0RXJyb3IuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogQHBhcmFtIHtMb2dnZXJPcHRpb25zfSBbbG9nZ2VyT3B0aW9uc10gLSBvcHRpb25hbCBjb25maWd1cmF0aW9uIHNldHRpbmdzIHRvIGNvbnRyb2wgbG9nZ2luZ1xuICAgKiBvdXRwdXQuXG4gICAqL1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9ucztcbn1cblxuLyoqXG4gKiBNb21lbnRvIFNpbXBsZSBDYWNoZSBDbGllbnQuXG4gKlxuICogRmVhdHVyZXMgaW5jbHVkZTpcbiAqIC0gR2V0LCBzZXQsIGFuZCBkZWxldGUgZGF0YVxuICogLSBDcmVhdGUsIGRlbGV0ZSwgYW5kIGxpc3QgY2FjaGVzXG4gKiAtIENyZWF0ZSwgcmV2b2tlLCBhbmQgbGlzdCBzaWduaW5nIGtleXNcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBTaW1wbGVDYWNoZUNsaWVudFxuICovXG5leHBvcnQgY2xhc3MgU2ltcGxlQ2FjaGVDbGllbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFDbGllbnQ6IE1vbWVudG9DYWNoZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ2xpZW50OiBNb21lbnRvO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIFNpbXBsZUNhY2hlQ2xpZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXV0aFRva2VuIC0gTW9tZW50byB0b2tlbiB0byBhdXRoZW50aWNhdGUgcmVxdWVzdHMgd2l0aCBTaW1wbGUgQ2FjaGUgU2VydmljZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGRlZmF1bHRUdGxTZWNvbmRzIC0gQSBkZWZhdWx0IHRpbWUgdG8gbGl2ZSwgaW4gc2Vjb25kcywgZm9yIGNhY2hlIG9iamVjdHNcbiAgICogY3JlYXRlZCBieSB0aGlzIGNsaWVudC5cbiAgICogQHBhcmFtIHtTaW1wbGVDYWNoZUNsaWVudE9wdGlvbnN9IG9wdGlvbnMgLSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGNhY2hlIGNsaWVudC5cbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBhdXRoVG9rZW46IHN0cmluZyxcbiAgICBkZWZhdWx0VHRsU2Vjb25kczogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBTaW1wbGVDYWNoZUNsaWVudE9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIodGhpcywgb3B0aW9ucz8ubG9nZ2VyT3B0aW9ucyk7XG4gICAgY29uc3QgY2xhaW1zID0gZGVjb2RlSnd0KGF1dGhUb2tlbik7XG4gICAgY29uc3QgY29udHJvbEVuZHBvaW50ID0gY2xhaW1zLmNwO1xuICAgIGNvbnN0IGRhdGFFbmRwb2ludCA9IGNsYWltcy5jO1xuICAgIHRoaXMuZGF0YUNsaWVudCA9IG5ldyBNb21lbnRvQ2FjaGUoe1xuICAgICAgYXV0aFRva2VuLFxuICAgICAgZGVmYXVsdFR0bFNlY29uZHMsXG4gICAgICBlbmRwb2ludDogZGF0YUVuZHBvaW50LFxuICAgICAgcmVxdWVzdFRpbWVvdXRNczogb3B0aW9ucz8ucmVxdWVzdFRpbWVvdXRNcyxcbiAgICAgIGxvZ2dlck9wdGlvbnM6IG9wdGlvbnM/LmxvZ2dlck9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbnRyb2xDbGllbnQgPSBuZXcgTW9tZW50byh7XG4gICAgICBlbmRwb2ludDogY29udHJvbEVuZHBvaW50LFxuICAgICAgYXV0aFRva2VuLFxuICAgICAgbG9nZ2VyT3B0aW9uczogb3B0aW9ucz8ubG9nZ2VyT3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhY2hlIHZhbHVlIHN0b3JlZCBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhY2hlTmFtZSAtIE5hbWUgb2YgdGhlIGNhY2hlIHRvIHBlcmZvcm0gdGhlIGxvb2t1cCBpbi5cbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgVWludDhBcnJheSl9IGtleSAtIFRoZSBrZXkgdG8gbG9va3VwLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHZXRSZXNwb25zZT59IC0gUHJvbWlzZSBjb250YWluaW5nIHRoZSBzdGF0dXNcbiAgICogb2YgdGhlIGdldCBvcGVyYXRpb24gKGhpdCBvciBtaXNzKSBhbmQgdGhlIGFzc29jaWF0ZWQgdmFsdWUuXG4gICAqIEBtZW1iZXJvZiBTaW1wbGVDYWNoZUNsaWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxHZXRSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQuZ2V0KGNhY2hlTmFtZSwga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBpbiBjYWNoZSB3aXRoIGEgZ2l2ZW4gdGltZSB0byBsaXZlIChUVEwpIHNlY29uZHMuXG4gICAqIElmIGEgdmFsdWUgZm9yIHRoaXMga2V5IGlzIGFscmVhZHkgcHJlc2VudCBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBuZXcgdmFsdWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWNoZU5hbWUgLSBOYW1lIG9mIHRoZSBjYWNoZSB0byBzdG9yZSB0aGUgaXRlbSBpbi5cbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgVWludDhBcnJheSl9IGtleSAtIFRoZSBrZXkgdG8gc2V0LlxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBVaW50OEFycmF5KX0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgc3RvcmVkLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3R0bF0gLSBUaW1lIHRvIGxpdmUgKFRUTCkgZm9yIHRoZSBpdGVtIGluIENhY2hlLlxuICAgKiBUaGlzIFRUTCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIFRUTCB1c2VkIHdoZW4gaW5pdGlhbGl6aW5nIGEgY2FjaGUgY2xpZW50LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTZXRSZXNwb25zZT59IC0gUmVzdWx0IG9mIHRoZSBzZXQgb3BlcmF0aW9uLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IG51bWJlclxuICApOiBQcm9taXNlPFNldFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZGF0YUNsaWVudC5zZXQoY2FjaGVOYW1lLCBrZXksIHZhbHVlLCB0dGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUga2V5IGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FjaGVOYW1lIC0gTmFtZSBvZiB0aGUgY2FjaGUgdG8gZGVsZXRlIHRoZSBrZXkgZnJvbS5cbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgVWludDhBcnJheSl9IGtleSAtIFRoZSBrZXkgdG8gZGVsZXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZWxldGVSZXNwb25zZT59IC0gUHJvbWlzZSBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgdGhlXG4gICAqIGRlbGV0ZSBvcGVyYXRpb24uXG4gICAqIEBtZW1iZXJvZiBTaW1wbGVDYWNoZUNsaWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxEZWxldGVSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQuZGVsZXRlKGNhY2hlTmFtZSwga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjYWNoZSBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhY2hlTmFtZSAtIE5hbWUgb2YgdGhlIGNhY2hlIHRvIGJlIGNyZWF0ZWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZUNhY2hlUmVzcG9uc2U+fSAtIFByb21pc2Ugb2YgdGhlIGNyZWF0ZSBjYWNoZSByZXN1bHQuXG4gICAqIEBtZW1iZXJvZiBTaW1wbGVDYWNoZUNsaWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUNhY2hlKGNhY2hlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVDYWNoZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbENsaWVudC5jcmVhdGVDYWNoZShjYWNoZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGNhY2hlIGFuZCBhbGwgaXRlbXMgc3RvcmVkIGluIGl0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FjaGVOYW1lIC0gTmFtZSBvZiB0aGUgY2FjaGUgdG8gZGVsZXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZWxldGVDYWNoZVJlc3BvbnNlPn0gLSBQcm9taXNlIG9mIHRoZSBkZWxldGUgY2FjaGUgcmVzdWx0LlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGVDYWNoZShjYWNoZU5hbWU6IHN0cmluZyk6IFByb21pc2U8RGVsZXRlQ2FjaGVSZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbnRyb2xDbGllbnQuZGVsZXRlQ2FjaGUoY2FjaGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBjYWNoZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbmV4dFRva2VuXSAtIEEgdG9rZW4gdG8gc3BlY2lmeSB3aGVyZSB0byBzdGFydCBwYWdpbmF0aW5nLlxuICAgKiBUaGlzIGlzIHRoZSBOZXh0VG9rZW4gZnJvbSBhIHByZXZpb3VzIHJlc3BvbnNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMaXN0Q2FjaGVSZXNwb25zZT59IC0gUHJvbWlzZSBvZiB0aGUgbGlzdCBjYWNoZSByZXNwb25zZS5cbiAgICogQ29udGFpbnMgdGhlIGxpc3RlZCBjYWNoZXMgYW5kIGEgbmV4dCB0b2tlbiB0byBjb250aW51ZSBsaXN0aW5nLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsaXN0Q2FjaGVzKG5leHRUb2tlbj86IHN0cmluZyk6IFByb21pc2U8TGlzdENhY2hlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbENsaWVudC5saXN0Q2FjaGVzKG5leHRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgTW9tZW50byBzaWduaW5nIGtleS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHR0bE1pbnV0ZXMgLSBUaGUgdGltZSB0byBsaXZlIGluIG1pbnV0ZXMgdW50aWwgdGhlIE1vbWVudG8gc2lnbmluZyBrZXkgZXhwaXJlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8Q3JlYXRlU2lnbmluZ0tleVJlc3BvbnNlPn0gLSBQcm9taXNlIG9mIGNyZWF0ZSBzaWduaW5nIGtleVxuICAgKiByZXNwb25zZS4gQ29udGFpbnMgZW5kcG9pbnQgYW5kIGV4cGlyYXRpb24uXG4gICAqIEBtZW1iZXJvZiBTaW1wbGVDYWNoZUNsaWVudFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNyZWF0ZVNpZ25pbmdLZXkoXG4gICAgdHRsTWludXRlczogbnVtYmVyXG4gICk6IFByb21pc2U8Q3JlYXRlU2lnbmluZ0tleVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbENsaWVudC5jcmVhdGVTaWduaW5nS2V5KFxuICAgICAgdHRsTWludXRlcyxcbiAgICAgIHRoaXMuZGF0YUNsaWVudC5nZXRFbmRwb2ludCgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZva2VzIGEgTW9tZW50byBzaWduaW5nIGtleS5cbiAgICpcbiAgICogQWxsIHRva2VucyBzaWduZWQgYnkgdGhpcyBrZXkgd2lsbCBiZSBpbnZhbGlkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5SWQgIC0gVGhlIElEIG9mIHRoZSBNb21lbnRvIHNpZ25pbmcga2V5IHRvIHJldm9rZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8UmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlPn0gLSBSZXZvY2F0aW9uIHJlc3BvbnNlIChlbXB0eSlcbiAgICogQG1lbWJlcm9mIFNpbXBsZUNhY2hlQ2xpZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmV2b2tlU2lnbmluZ0tleShcbiAgICBrZXlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8UmV2b2tlU2lnbmluZ0tleVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udHJvbENsaWVudC5yZXZva2VTaWduaW5nS2V5KGtleUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyBhbGwgTW9tZW50byBzaWduaW5nIGtleXMgZm9yIHRoZSBwcm92aWRlZCBhdXRoIHRva2VuLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW25leHRUb2tlbl0gLSBUb2tlbiB0byBjb250aW51ZSBwYWdpbmF0aW5nIHRocm91Z2ggdGhlIGxpc3QuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExpc3RTaWduaW5nS2V5c1Jlc3BvbnNlPn0gLSBQcm9taXNlIG9mIHRoZSBsaXN0IHNpZ25pbmcga2V5cyByZXNwb25zZS5cbiAgICogQ29udGFpbnMgdGhlIHJldHJpZXZlZCBzaWduaW5nIGtleXMgYW5kIGEgbmV4dCB0b2tlbiB0byBjb250aW51ZSBsaXN0aW5nLlxuICAgKiBAbWVtYmVyb2YgU2ltcGxlQ2FjaGVDbGllbnRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsaXN0U2lnbmluZ0tleXMoXG4gICAgbmV4dFRva2VuPzogc3RyaW5nXG4gICk6IFByb21pc2U8TGlzdFNpZ25pbmdLZXlzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb250cm9sQ2xpZW50Lmxpc3RTaWduaW5nS2V5cyhcbiAgICAgIHRoaXMuZGF0YUNsaWVudC5nZXRFbmRwb2ludCgpLFxuICAgICAgbmV4dFRva2VuXG4gICAgKTtcbiAgfVxufVxuIl19 |
export interface Logger { | ||
error(msg: string): void; | ||
warn(msg: string): void; | ||
info(msg: string): void; | ||
debug(msg: string): void; | ||
trace(msg: string): void; | ||
} | ||
export declare enum LogLevel { | ||
TRACE = "trace", | ||
DEBUG = "debug", | ||
INFO = "info" | ||
INFO = "info", | ||
WARN = "warn", | ||
ERROR = "error" | ||
} | ||
@@ -17,2 +23,2 @@ export declare enum LogFormat { | ||
} | ||
export declare function getLogger(name: string, options?: LoggerOptions): Logger; | ||
export declare function getLogger(caller: string | any, options?: LoggerOptions): Logger; |
@@ -7,4 +7,7 @@ "use strict"; | ||
(function (LogLevel) { | ||
LogLevel["TRACE"] = "trace"; | ||
LogLevel["DEBUG"] = "debug"; | ||
LogLevel["INFO"] = "info"; | ||
LogLevel["WARN"] = "warn"; | ||
LogLevel["ERROR"] = "error"; | ||
})(LogLevel = exports.LogLevel || (exports.LogLevel = {})); | ||
@@ -16,5 +19,10 @@ var LogFormat; | ||
})(LogFormat = exports.LogFormat || (exports.LogFormat = {})); | ||
function getLogger(name, options) { | ||
function getLogger(caller, options) { | ||
const loggerOptions = options !== null && options !== void 0 ? options : defaultLoggerOptions(); | ||
return new PinoLogger(name, loggerOptions); | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment | ||
const loggerName = typeof caller === 'string' || caller instanceof String | ||
? caller | ||
: // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access | ||
caller.constructor.name; | ||
return new PinoLogger(loggerName, loggerOptions); | ||
} | ||
@@ -33,2 +41,8 @@ exports.getLogger = getLogger; | ||
} | ||
error(msg) { | ||
this._logger.error(msg); | ||
} | ||
warn(msg) { | ||
this._logger.warn(msg); | ||
} | ||
info(msg) { | ||
@@ -40,2 +54,5 @@ this._logger.info(msg); | ||
} | ||
trace(msg) { | ||
this._logger.trace(msg); | ||
} | ||
} | ||
@@ -49,2 +66,4 @@ function defaultLoggerOptions() { | ||
switch (level) { | ||
case LogLevel.TRACE: | ||
return 'trace'; | ||
case LogLevel.DEBUG: | ||
@@ -54,2 +73,6 @@ return 'debug'; | ||
return 'info'; | ||
case LogLevel.WARN: | ||
return 'warn'; | ||
case LogLevel.ERROR: | ||
return 'error'; | ||
default: | ||
@@ -74,2 +97,2 @@ throw new Error(`Unsupported log level: ${String(level)}`); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQVk3QixJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsMkJBQWUsQ0FBQTtJQUNmLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFHbkI7QUFFRCxJQUFZLFNBR1g7QUFIRCxXQUFZLFNBQVM7SUFDbkIsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUdwQjtBQU9ELFNBQWdCLFNBQVMsQ0FBQyxJQUFZLEVBQUUsT0FBdUI7SUFDN0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUN4RCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBSEQsOEJBR0M7QUFFRCxNQUFNLFVBQVU7SUFHZCxZQUFZLElBQVksRUFBRSxPQUFzQjs7UUFDOUMsTUFBTSxTQUFTLEdBQXlCLHdCQUF3QixDQUM5RCxNQUFBLE9BQU8sQ0FBQyxLQUFLLG1DQUFJLFFBQVEsQ0FBQyxJQUFJLENBQy9CLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRywwQkFBMEIsQ0FDMUMsTUFBQSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxTQUFTLENBQUMsT0FBTyxDQUNwQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBRUQsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTztRQUNMLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSTtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsS0FBZTtJQUMvQyxRQUFRLEtBQUssRUFBRTtRQUNiLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxRQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLE1BQU0sQ0FBQztRQUNoQjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUQ7QUFDSCxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FDakMsTUFBaUI7SUFNakIsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLFNBQVMsQ0FBQyxPQUFPO1lBQ3BCLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLE9BQU8sRUFBRTtvQkFDUCxRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGLENBQUM7UUFDSixLQUFLLFNBQVMsQ0FBQyxJQUFJO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoRTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwaW5vIGZyb20gJ3Bpbm8nO1xuaW1wb3J0IHtcbiAgVHJhbnNwb3J0TXVsdGlPcHRpb25zLFxuICBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnMsXG4gIFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMsXG59IGZyb20gJ3Bpbm8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIGluZm8obXNnOiBzdHJpbmcpOiB2b2lkO1xuICBkZWJ1Zyhtc2c6IHN0cmluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgREVCVUcgPSAnZGVidWcnLFxuICBJTkZPID0gJ2luZm8nLFxufVxuXG5leHBvcnQgZW51bSBMb2dGb3JtYXQge1xuICBDT05TT0xFID0gJ2NvbnNvbGUnLFxuICBKU09OID0gJ2pzb24nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlck9wdGlvbnMge1xuICBsZXZlbD86IExvZ0xldmVsO1xuICBmb3JtYXQ/OiBMb2dGb3JtYXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2dnZXIobmFtZTogc3RyaW5nLCBvcHRpb25zPzogTG9nZ2VyT3B0aW9ucyk6IExvZ2dlciB7XG4gIGNvbnN0IGxvZ2dlck9wdGlvbnMgPSBvcHRpb25zID8/IGRlZmF1bHRMb2dnZXJPcHRpb25zKCk7XG4gIHJldHVybiBuZXcgUGlub0xvZ2dlcihuYW1lLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuY2xhc3MgUGlub0xvZ2dlciBpbXBsZW1lbnRzIExvZ2dlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlcjogcGluby5Mb2dnZXI7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBMb2dnZXJPcHRpb25zKSB7XG4gICAgY29uc3QgcGlub0xldmVsOiBwaW5vLkxldmVsV2l0aFNpbGVudCA9IHBpbm9Mb2dMZXZlbEZyb21Mb2dMZXZlbChcbiAgICAgIG9wdGlvbnMubGV2ZWwgPz8gTG9nTGV2ZWwuSU5GT1xuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc3BvcnQgPSBwaW5vVHJhbnNwb3J0RnJvbUxvZ0Zvcm1hdChcbiAgICAgIG9wdGlvbnMuZm9ybWF0ID8/IExvZ0Zvcm1hdC5DT05TT0xFXG4gICAgKTtcblxuICAgIHRoaXMuX2xvZ2dlciA9IHBpbm8ucGlubyh7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgbGV2ZWw6IHBpbm9MZXZlbCxcbiAgICAgIHRyYW5zcG9ydDogdHJhbnNwb3J0LFxuICAgIH0pO1xuICB9XG5cbiAgaW5mbyhtc2c6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5pbmZvKG1zZyk7XG4gIH1cblxuICBkZWJ1Zyhtc2c6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1Zyhtc2cpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRMb2dnZXJPcHRpb25zKCk6IExvZ2dlck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGxldmVsOiBMb2dMZXZlbC5JTkZPLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwaW5vTG9nTGV2ZWxGcm9tTG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogcGluby5MZXZlbFdpdGhTaWxlbnQge1xuICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgY2FzZSBMb2dMZXZlbC5ERUJVRzpcbiAgICAgIHJldHVybiAnZGVidWcnO1xuICAgIGNhc2UgTG9nTGV2ZWwuSU5GTzpcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbG9nIGxldmVsOiAke1N0cmluZyhsZXZlbCl9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGlub1RyYW5zcG9ydEZyb21Mb2dGb3JtYXQoXG4gIGZvcm1hdDogTG9nRm9ybWF0XG4pOlxuICB8IHVuZGVmaW5lZFxuICB8IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnNcbiAgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnNcbiAgfCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnMge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgTG9nRm9ybWF0LkNPTlNPTEU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0YXJnZXQ6ICdwaW5vLXByZXR0eScsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBjb2xvcml6ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSBMb2dGb3JtYXQuSlNPTjpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbG9nIGZvcm1hdDogJHtTdHJpbmcoZm9ybWF0KX1gKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQWU3QixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsMkJBQWUsQ0FBQTtJQUNmLDJCQUFlLENBQUE7SUFDZix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtJQUNiLDJCQUFlLENBQUE7QUFDakIsQ0FBQyxFQU5XLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBTW5CO0FBRUQsSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLDBCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFHcEI7QUFPRCxTQUFnQixTQUFTLENBQ3ZCLE1BQW9CLEVBQ3BCLE9BQXVCO0lBRXZCLE1BQU0sYUFBYSxHQUFHLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDeEQsbUVBQW1FO0lBQ25FLE1BQU0sVUFBVSxHQUNkLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLFlBQVksTUFBTTtRQUNwRCxDQUFDLENBQUMsTUFBTTtRQUNSLENBQUMsQ0FBQyxzRUFBc0U7WUFDdEUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDOUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQVpELDhCQVlDO0FBRUQsTUFBTSxVQUFVO0lBR2QsWUFBWSxJQUFZLEVBQUUsT0FBc0I7O1FBQzlDLE1BQU0sU0FBUyxHQUF5Qix3QkFBd0IsQ0FDOUQsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxRQUFRLENBQUMsSUFBSSxDQUMvQixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsMEJBQTBCLENBQzFDLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksU0FBUyxDQUFDLE9BQU8sQ0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBVztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBVztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBVztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQUVELFNBQVMsb0JBQW9CO0lBQzNCLE9BQU87UUFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUk7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLEtBQWU7SUFDL0MsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxRQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxPQUFPLENBQUM7UUFFakI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzlEO0FBQ0gsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQ2pDLE1BQWlCO0lBTWpCLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxTQUFTLENBQUMsT0FBTztZQUNwQixPQUFPO2dCQUNMLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixPQUFPLEVBQUU7b0JBQ1AsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRixDQUFDO1FBQ0osS0FBSyxTQUFTLENBQUMsSUFBSTtZQUNqQixPQUFPLFNBQVMsQ0FBQztRQUNuQjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDaEU7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGlubyBmcm9tICdwaW5vJztcbmltcG9ydCB7XG4gIFRyYW5zcG9ydE11bHRpT3B0aW9ucyxcbiAgVHJhbnNwb3J0UGlwZWxpbmVPcHRpb25zLFxuICBUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tICdwaW5vJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXIge1xuICBlcnJvcihtc2c6IHN0cmluZyk6IHZvaWQ7XG4gIHdhcm4obXNnOiBzdHJpbmcpOiB2b2lkO1xuICBpbmZvKG1zZzogc3RyaW5nKTogdm9pZDtcbiAgZGVidWcobXNnOiBzdHJpbmcpOiB2b2lkO1xuICB0cmFjZShtc2c6IHN0cmluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgVFJBQ0UgPSAndHJhY2UnLFxuICBERUJVRyA9ICdkZWJ1ZycsXG4gIElORk8gPSAnaW5mbycsXG4gIFdBUk4gPSAnd2FybicsXG4gIEVSUk9SID0gJ2Vycm9yJyxcbn1cblxuZXhwb3J0IGVudW0gTG9nRm9ybWF0IHtcbiAgQ09OU09MRSA9ICdjb25zb2xlJyxcbiAgSlNPTiA9ICdqc29uJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXJPcHRpb25zIHtcbiAgbGV2ZWw/OiBMb2dMZXZlbDtcbiAgZm9ybWF0PzogTG9nRm9ybWF0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKFxuICBjYWxsZXI6IHN0cmluZyB8IGFueSxcbiAgb3B0aW9ucz86IExvZ2dlck9wdGlvbnNcbik6IExvZ2dlciB7XG4gIGNvbnN0IGxvZ2dlck9wdGlvbnMgPSBvcHRpb25zID8/IGRlZmF1bHRMb2dnZXJPcHRpb25zKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgY29uc3QgbG9nZ2VyTmFtZTogc3RyaW5nID1cbiAgICB0eXBlb2YgY2FsbGVyID09PSAnc3RyaW5nJyB8fCBjYWxsZXIgaW5zdGFuY2VvZiBTdHJpbmdcbiAgICAgID8gY2FsbGVyXG4gICAgICA6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgY2FsbGVyLmNvbnN0cnVjdG9yLm5hbWU7XG4gIHJldHVybiBuZXcgUGlub0xvZ2dlcihsb2dnZXJOYW1lLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuY2xhc3MgUGlub0xvZ2dlciBpbXBsZW1lbnRzIExvZ2dlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlcjogcGluby5Mb2dnZXI7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBMb2dnZXJPcHRpb25zKSB7XG4gICAgY29uc3QgcGlub0xldmVsOiBwaW5vLkxldmVsV2l0aFNpbGVudCA9IHBpbm9Mb2dMZXZlbEZyb21Mb2dMZXZlbChcbiAgICAgIG9wdGlvbnMubGV2ZWwgPz8gTG9nTGV2ZWwuSU5GT1xuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc3BvcnQgPSBwaW5vVHJhbnNwb3J0RnJvbUxvZ0Zvcm1hdChcbiAgICAgIG9wdGlvbnMuZm9ybWF0ID8/IExvZ0Zvcm1hdC5DT05TT0xFXG4gICAgKTtcblxuICAgIHRoaXMuX2xvZ2dlciA9IHBpbm8ucGlubyh7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgbGV2ZWw6IHBpbm9MZXZlbCxcbiAgICAgIHRyYW5zcG9ydDogdHJhbnNwb3J0LFxuICAgIH0pO1xuICB9XG5cbiAgZXJyb3IobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIuZXJyb3IobXNnKTtcbiAgfVxuXG4gIHdhcm4obXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIud2Fybihtc2cpO1xuICB9XG5cbiAgaW5mbyhtc2c6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5pbmZvKG1zZyk7XG4gIH1cblxuICBkZWJ1Zyhtc2c6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1Zyhtc2cpO1xuICB9XG5cbiAgdHJhY2UobXNnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIudHJhY2UobXNnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0TG9nZ2VyT3B0aW9ucygpOiBMb2dnZXJPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBsZXZlbDogTG9nTGV2ZWwuSU5GTyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGlub0xvZ0xldmVsRnJvbUxvZ0xldmVsKGxldmVsOiBMb2dMZXZlbCk6IHBpbm8uTGV2ZWxXaXRoU2lsZW50IHtcbiAgc3dpdGNoIChsZXZlbCkge1xuICAgIGNhc2UgTG9nTGV2ZWwuVFJBQ0U6XG4gICAgICByZXR1cm4gJ3RyYWNlJztcbiAgICBjYXNlIExvZ0xldmVsLkRFQlVHOlxuICAgICAgcmV0dXJuICdkZWJ1Zyc7XG4gICAgY2FzZSBMb2dMZXZlbC5JTkZPOlxuICAgICAgcmV0dXJuICdpbmZvJztcbiAgICBjYXNlIExvZ0xldmVsLldBUk46XG4gICAgICByZXR1cm4gJ3dhcm4nO1xuICAgIGNhc2UgTG9nTGV2ZWwuRVJST1I6XG4gICAgICByZXR1cm4gJ2Vycm9yJztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxvZyBsZXZlbDogJHtTdHJpbmcobGV2ZWwpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBpbm9UcmFuc3BvcnRGcm9tTG9nRm9ybWF0KFxuICBmb3JtYXQ6IExvZ0Zvcm1hdFxuKTpcbiAgfCB1bmRlZmluZWRcbiAgfCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zXG4gIHwgVHJhbnNwb3J0TXVsdGlPcHRpb25zXG4gIHwgVHJhbnNwb3J0UGlwZWxpbmVPcHRpb25zIHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIExvZ0Zvcm1hdC5DT05TT0xFOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGFyZ2V0OiAncGluby1wcmV0dHknLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgY29sb3JpemU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgTG9nRm9ybWF0LkpTT046XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxvZyBmb3JtYXQ6ICR7U3RyaW5nKGZvcm1hdCl9YCk7XG4gIH1cbn1cbiJdfQ== |
{ | ||
"name": "@gomomento/sdk", | ||
"version": "0.13.0", | ||
"version": "0.13.1", | ||
"description": "Client SDK for Momento services", | ||
@@ -16,2 +16,3 @@ "main": "dist/src/index.js", | ||
"scripts": { | ||
"prebuild": "eslint . --ext .ts", | ||
"test": "jest", | ||
@@ -18,0 +19,0 @@ "integration": "jest --config jest-integration.config.js", |
194740
1693