@haventech/supertype
Advanced tools
Comparing version 6.1.0 to 7.0.0-es2020.beta.0
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.remote = exports.property = exports.supertypeClass = void 0; | ||
exports.remote = exports.property = exports.supertypeClass = exports.Supertype = void 0; | ||
var Supertype_1 = require("./Supertype"); | ||
Object.defineProperty(exports, "Supertype", { enumerable: true, get: function () { return Supertype_1.Supertype; } }); | ||
var ObjectTemplate_1 = require("./ObjectTemplate"); | ||
const ObjectTemplate_1 = require("./ObjectTemplate"); | ||
require("reflect-metadata"); | ||
@@ -111,3 +111,4 @@ /** | ||
function getName() { | ||
return target.toString().match(/function ([^(]*)/)[1]; | ||
//return target.toString().match(/function ([^(]*)/)[1]; | ||
return target.toString().match(/class ([^]\w+)/)[1]; | ||
} | ||
@@ -174,2 +175,2 @@ function getDictionary() { | ||
exports.remote = remote; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUEvQixzR0FBQSxTQUFTLE9BQUE7QUFDbEIsbURBQWtEO0FBRWxELDRCQUEwQjtBQUUxQjs7Ozs7Ozs7TUFRTTtBQUNOLFNBQWdCLGNBQWMsQ0FBQyxXQUFZLEVBQUUsY0FBZTtJQUV4RCxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUU5RixnQ0FBZ0M7SUFDaEMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsd0lBQXdJO1FBQ2pLLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQztJQUVqQixzQkFBc0I7SUFDdEIsU0FBUyxTQUFTLENBQUMsTUFBTTtRQUNyQixjQUFjLEdBQUcsY0FBYyxJQUFJLCtCQUFjLENBQUM7UUFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUN4QyxNQUFNLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLGNBQWMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQUMzQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVks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QUFPLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSTtvQkFDN0Isa0ZBQWtGO29CQUNsRixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7WUFFbkQsQ0FBQyxDQUFDO1NBQ0w7UUFDRCxJQUFJLGNBQWMsS0FBSyxLQUFLLEVBQUU7WUFDMUIsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbkIsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7U0FDbkI7YUFDSTtZQUNELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBQ0QsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDTixDQUFDO0FBdkNELDRCQXVDQztBQUFBLENBQUM7QUFFRixTQUFnQixNQUFNLENBQUMsY0FBYztJQUNqQyxPQUFPLFVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVO0lBQ2pELENBQUMsQ0FBQTtBQUNMLENBQUM7QUFIRCx3QkFHQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFN1cGVydHlwZSB9IGZyb20gJy4vU3VwZXJ0eXBlJztcbmltcG9ydCB7IE9iamVjdFRlbXBsYXRlIH0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5cbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbi8qKlxuICAgICogXG4gICAgKiBAcGFyYW0geyp9IG9iamVjdFByb3BzLSBvcHRpb25hbCBwcm9wZXJ0eSBmb3IgcGFzc2luZyBwYXJhbXMgaW50byBzdXBlcnR5cGVjbGFzcywgaWYgbm8gcGFyYW1zLCBpcyB1bmRlZmluZWQsXG4gICAgKiAgICAgICAgICAgICAgICAgICAgICBmaXJzdCBwYXJhbSBvZiB0aGlzIGZ1bmN0aW9uIGRlZmF1bHRzIHRvIG9iamVjdFRlbXBsYXRlIGluc3RlYWRcbiAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0VGVtcGxhdGUgXG4gICAgKiBcbiAgICAqIEBUT0RPOiBmaXggcmV0dXJuIHR5cGVzXG4gICAgKiBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzZcbiAgICAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1cGVydHlwZUNsYXNzKG9iamVjdFByb3BzPywgb2JqZWN0VGVtcGxhdGU/KTogYW55IHtcblxuICAgIC8vIFdoZW4gdXNlZCBhcyBAc3VwZXJ0eXBlQ2xhc3Moe2JsYSBibGEgYmxhfSksIHRoZSBkZWNvcmF0b3IgaXMgZmlyc3QgY2FsbGVkIGFzIGl0IGlzXG4gICAgLy8gaXMgYmVpbmcgcGFzc2VkIGludG8gdGhlIGRlY29yYXRvciBwcm9jZXNzb3IgYW5kIHNvIGl0IG5lZWRzIHRvIHJldHVybiBhIGZ1bmN0aW9uXG4gICAgLy8gc28gdGhhdCBpdCB3aWxsIGJlIGNhbGxlZCBhZ2FpbiB3aGVuIHRoZSBkZWNvcmF0b3JzIGFyZSBhY3R1YWxseSBwcm9jZXNzZWQuICBLaW5kYSBzcGxpZmZ5LlxuXG4gICAgLy8gQ2FsbGVkIGJ5IGRlY29yYXRvciBwcm9jZXNzb3JcbiAgICBpZiAob2JqZWN0UHJvcHMucHJvdG90eXBlKSB7IC8vIGlmIG9iamVjdFByb3BzIGlzIHRoZSBjbGFzcyAoc2Vjb25kIHBhc3MgaWYgcGFzc2VkIHdpdGgge3RvQ2xpZW50IHN0eWxlIHBhcmFtc30gb3IgZmlyc3QgcGFzcyB3aGVuIEBzdXBlcnR5cGVDbGFzcyBubyBwYXJlbiBhbmQgYXJncylcbiAgICAgICAgcmV0dXJuIGRlY29yYXRvcihvYmplY3RQcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ2FsbGVkIGZpcnN0IHRpbWUgd2l0aCBwYXJhbWV0ZXJcbiAgICB2YXIgcHJvcHMgPSBvYmplY3RQcm9wcztcbiAgICByZXR1cm4gZGVjb3JhdG9yO1xuXG4gICAgLy8gRGVjb3JhdG9yIFdvcmtlcmJlZVxuICAgIGZ1bmN0aW9uIGRlY29yYXRvcih0YXJnZXQpIHtcbiAgICAgICAgb2JqZWN0VGVtcGxhdGUgPSBvYmplY3RUZW1wbGF0ZSB8fCBPYmplY3RUZW1wbGF0ZTtcblxuICAgICAgICB0YXJnZXQucHJvdG90eXBlLl9fdGVtcGxhdGVfXyA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5hbW9ycGhpY0NsYXNzID0gdGFyZ2V0O1xuICAgICAgICB0YXJnZXQucHJvdG90eXBlLmFtb3JwaGljR2V0Q2xhc3NOYW1lID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGFyZ2V0Ll9fbmFtZV9fIH07XG4gICAgICAgIHRhcmdldC5pc09iamVjdFRlbXBsYXRlID0gdHJ1ZTtcbiAgICAgICAgdGFyZ2V0Ll9faW5qZWN0aW9uc19fID0gW107XG4gICAgICAgIHRhcmdldC5fX29iamVjdFRlbXBsYXRlX18gPSBvYmplY3RUZW1wbGF0ZTtcbiAgICAgICAgdmFyIGNyZWF0ZVByb3BzID0gb2JqZWN0VGVtcGxhdGUuZ2V0VGVtcGxhdGVQcm9wZXJ0aWVzKHByb3BzIHx8IHt9KTtcbiAgICAgICAgdGFyZ2V0Ll9fdG9DbGllbnRfXyA9IGNyZWF0ZVByb3BzLl9fdG9DbGllbnRfXztcbiAgICAgICAgdGFyZ2V0Ll9fdG9TZXJ2ZXJfXyA9IGNyZWF0ZVByb3BzLl9fdG9TZXJ2ZXJfXztcbiAgICAgICAgdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXyA9IFtdO1xuXG4gICAgICAgIC8vIFB1c2ggYW4gYXJyYXkgb2YgdGVtcGxhdGUgcmVmZXJlbmNlcyAod2UgY2FuJ3QgZ2V0IGF0IHRoZWlyIG5hbWVzIG5vdykuICBMYXRlciB3ZSB3aWxsXG4gICAgICAgIC8vIHVzZSB0aGlzIHRvIGNvbnN0cnVjdCBfX2RpY3Rpb25hcnlfX1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fID0gb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXyB8fCBbXTtcbiAgICAgICAgb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXy5wdXNoKHRhcmdldCk7XG5cblxuICAgICAgICAvLyBXZSBjYW4gbmV2ZXIgcmVmZXJlbmNlIHRlbXBsYXRlIGZ1bmN0aW9ucyBhdCBjb21waWxlIHRpbWUgd2hpY2ggaXMgd2hlbiB0aGlzIGRlY29yYXRvciBpcyBleGVjdXRlZFxuICAgICAgICAvLyBUaGVyZWZvcmUgd2UgaGF2ZSB0byBzZXR1cCBnZXR0ZXJzIGZvciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCBhY2Nlc3MgdG8gdGhlIHRlbXBsYXRlIGZ1bmN0aW9ucyBzb1xuICAgICAgICAvLyB0aGF0IHdlIGNhbiBlbnN1cmUgdGhleSBhcmUgZnVsbHkgcmVzb2x2ZWQgYmVmb3JlIGFjY2Vzc2luZyB0aGVtXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdkZWZpbmVQcm9wZXJ0aWVzJywgeyBnZXQ6IGRlZmluZVByb3BlcnRpZXMgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1Byb3BlcnRpZXMnLCB7IGdldDogZGVmaW5lUHJvcGVydGllcyB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fbmFtZV9fJywgeyBnZXQ6IGdldE5hbWUgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY0NsYXNzTmFtZScsIHsgZ2V0OiBnZXROYW1lIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAncGFyZW50VGVtcGxhdGUnLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19wYXJlbnRfXycsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX2NoaWxkcmVuX18nLCB7IGdldDogZ2V0Q2hpbGRyZW4gfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1BhcmVudENsYXNzJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljQ2hpbGRDbGFzc2VzJywgeyBnZXQ6IGdldENoaWxkcmVuIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNTdGF0aWMnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gb2JqZWN0VGVtcGxhdGUgfSB9KTtcblxuICAgICAgICB0YXJnZXQuZnJvbVBPSk8gPSBmdW5jdGlvbiBmcm9tUE9KTyhwb2pvKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ocG9qbywgdGFyZ2V0KTtcbiAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuZnJvbUpTT04gPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0Zyb21KU09OID0gZnVuY3Rpb24gZnJvbUpTT04oc3RyLCBpZFByZWZpeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5mcm9tSlNPTihzdHIsIHRhcmdldCwgaWRQcmVmaXgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuZ2V0UHJvcGVydGllcyA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljR2V0UHJvcGVydGllcyA9IGZ1bmN0aW9uIGdldFByb3BlcnRpZXMoaW5jbHVkZVZpcnR1YWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuX2dldERlZmluZVByb3BlcnRpZXModGFyZ2V0LCB1bmRlZmluZWQsIGluY2x1ZGVWaXJ0dWFsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmNyZWF0ZVByb3BlcnR5ID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNDcmVhdGVQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5LmJvZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtwcm9wZXJ0eU5hbWVdID0gb2JqZWN0VGVtcGxhdGUuX3NldHVwRnVuY3Rpb24ocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eS5ib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkub24sIGRlZmluZVByb3BlcnR5LnZhbGlkYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGUuX19hbW9ycGhpY3Byb3BzX19bcHJvcGVydHlOYW1lXSA9IGRlZmluZVByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRlZmluZVByb3BlcnR5LnZhbHVlIGluIFsnc3RyaW5nJywgJ251bWJlciddIHx8IGRlZmluZVByb3BlcnR5LnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQucHJvdG90eXBlLCBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGRlZmluZVByb3BlcnR5LnZhbHVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIHByb3BlcnR5TmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0VGVtcGxhdGUuY2xvbmUoZGVmaW5lUHJvcGVydHkudmFsdWUsIGRlZmluZVByb3BlcnR5Lm9mIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnR5cGUgfHwgbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXyA9IG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fIHx8IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgZXhjZXB0aW9uS2V5IGluIHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX18pIHtcbiAgICAgICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgZnVuYzogdGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfX1tleGNlcHRpb25LZXldLFxuICAgICAgICAgICAgICAgICAgICBjbGFzczogZ2V0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcDogZXhjZXB0aW9uS2V5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5wcm90b3R5cGUuX19hbW9ycGhpY3Byb3BzX187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0TmFtZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pWzFdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldERpY3Rpb25hcnkoKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5nZXRDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0UGFyZW50KCkge1xuICAgICAgICAgICAgZ2V0RGljdGlvbmFyeSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5fX3NoYWRvd1BhcmVudF9fO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldENoaWxkcmVuKCkge1xuICAgICAgICAgICAgZ2V0RGljdGlvbmFyeSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5fX3NoYWRvd0NoaWxkcmVuX187XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KHByb3BzPyk6IGFueSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHRhcmdldEtleSkge1xuICAgICAgICBwcm9wcyA9IHByb3BzIHx8IHt9O1xuICAgICAgICBwcm9wcy5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGFyZ2V0Ll9fYW1vcnBoaWNwcm9wc19fID0gdGFyZ2V0Lmhhc093blByb3BlcnR5KCdfX2Ftb3JwaGljcHJvcHNfXycpID8gdGFyZ2V0Ll9fYW1vcnBoaWNwcm9wc19fIDoge307XG4gICAgICAgIHZhciByZWZsZWN0aW9uVHlwZSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgdGFyZ2V0LCB0YXJnZXRLZXkpO1xuICAgICAgICB2YXIgZGVjbGFyZWRUeXBlID0gcHJvcHMudHlwZTtcbiAgICAgICAgdmFyIHR5cGUgPSByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkgPyBkZWNsYXJlZFR5cGUgfHwgcmVmbGVjdGlvblR5cGUgOiBkZWNsYXJlZFR5cGU7XG4gICAgLy8gVHlwZSBtaXNtYXRjaGVzXG4gICAgICAgIGlmIChkZWNsYXJlZFR5cGUgJiYgcmVmbGVjdGlvblR5cGUgJiYgcmVmbGVjdGlvblR5cGUgIT09IEFycmF5KSB7XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX18gPSB0YXJnZXQuX19leGNlcHRpb25zX18gfHwge307XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX19bdGFyZ2V0S2V5XSA9IGZ1bmN0aW9uIChjbGFzc05hbWUsIHByb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lICsgJy4nICsgcHJvcCArICcgLSBkZWNvcmF0b3IgdHlwZSBkb2VzIG5vdCBtYXRjaCBhY3R1YWwgdHlwZSc7XG4gICAgICAgICAgICB9O1xuICAgIC8vIERlZmVycmVkIHR5cGVcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcHJvcHMuZ2V0VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fZGVmZXJyZWRUeXBlX18nKSA/IHRhcmdldC5fX2RlZmVycmVkVHlwZV9fIDoge307XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfX1t0YXJnZXRLZXldID0gcHJvcHMuZ2V0VHlwZTtcbiAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX18gPSB0YXJnZXQuX19leGNlcHRpb25zX18gfHwge307XG4gICAgICAgICAgICB0YXJnZXQuX19leGNlcHRpb25zX19bdGFyZ2V0S2V5XSA9IGZ1bmN0aW9uIChjbGFzc05hbWUsIHByb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lICsgJy4nICsgcHJvcCArXG4gICAgICAgICAgICAgICAgJyAtIHR5cGUgaXMgdW5kZWZpbmVkLiBDaXJjdWxhciByZWZlcmVuY2U/IFRyeSBAcHJvcGVydHkoe2dldFR5cGU6ICgpID0+IHtyZXR1cm4gJyArXG4gICAgICAgICAgICAgICAgcHJvcFswXS50b1VwcGVyQ2FzZSgpICsgcHJvcC5zdWJzdHIoMSkgKyAnfX0pJztcblxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmbGVjdGlvblR5cGUgPT09IEFycmF5KSB7XG4gICAgICAgICAgICBwcm9wcy50eXBlID0gQXJyYXk7XG4gICAgICAgICAgICBwcm9wcy5vZiA9IHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwcm9wcy50eXBlID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX19bdGFyZ2V0S2V5XSA9IHByb3BzO1xuICAgIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3RlKGRlZmluZVByb3BlcnR5KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikge1xuICAgIH1cbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUEvQixzR0FBQSxTQUFTLE9BQUE7QUFDbEIscURBQWtEO0FBRWxELDRCQUEwQjtBQUUxQjs7Ozs7Ozs7TUFRTTtBQUNOLFNBQWdCLGNBQWMsQ0FBQyxXQUFZLEVBQUUsY0FBZTtJQUV4RCxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUU5RixnQ0FBZ0M7SUFDaEMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsd0lBQXdJO1FBQ2pLLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQztJQUVqQixzQkFBc0I7SUFDdEIsU0FBUyxTQUFTLENBQUMsTUFBTTtRQUNyQixjQUFjLEdBQUcsY0FBYyxJQUFJLCtCQUFjLENBQUM7UUFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUN4QyxNQUFNLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLGNBQWMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQUMzQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVks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SUFBSTtnQkFDeEQsT0FBTyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUk7b0JBQzdCLGtGQUFrRjtvQkFDbEYsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRW5ELENBQUMsQ0FBQztTQUNMO1FBQ0QsSUFBSSxjQUFjLEtBQUssS0FBSyxFQUFFO1lBQzFCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQ25CO2FBQ0k7WUFDRCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUNELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQXZDRCw0QkF1Q0M7QUFBQSxDQUFDO0FBRUYsU0FBZ0IsTUFBTSxDQUFDLGNBQWM7SUFDakMsT0FBTyxVQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVTtJQUNqRCxDQUFDLENBQUE7QUFDTCxDQUFDO0FBSEQsd0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTdXBlcnR5cGUgfSBmcm9tICcuL1N1cGVydHlwZSc7XG5pbXBvcnQgeyBPYmplY3RUZW1wbGF0ZSB9IGZyb20gJy4vT2JqZWN0VGVtcGxhdGUnO1xuXG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG4vKipcbiAgICAqIFxuICAgICogQHBhcmFtIHsqfSBvYmplY3RQcm9wcy0gb3B0aW9uYWwgcHJvcGVydHkgZm9yIHBhc3NpbmcgcGFyYW1zIGludG8gc3VwZXJ0eXBlY2xhc3MsIGlmIG5vIHBhcmFtcywgaXMgdW5kZWZpbmVkLFxuICAgICogICAgICAgICAgICAgICAgICAgICAgZmlyc3QgcGFyYW0gb2YgdGhpcyBmdW5jdGlvbiBkZWZhdWx0cyB0byBvYmplY3RUZW1wbGF0ZSBpbnN0ZWFkXG4gICAgKiBAcGFyYW0geyp9IG9iamVjdFRlbXBsYXRlIFxuICAgICogXG4gICAgKiBAVE9ETzogZml4IHJldHVybiB0eXBlc1xuICAgICogaHR0cHM6Ly9naXRodWIuY29tL2hhdmVuLWxpZmUvc3VwZXJ0eXBlL2lzc3Vlcy82XG4gICAgKi9cbmV4cG9ydCBmdW5jdGlvbiBzdXBlcnR5cGVDbGFzcyhvYmplY3RQcm9wcz8sIG9iamVjdFRlbXBsYXRlPyk6IGFueSB7XG5cbiAgICAvLyBXaGVuIHVzZWQgYXMgQHN1cGVydHlwZUNsYXNzKHtibGEgYmxhIGJsYX0pLCB0aGUgZGVjb3JhdG9yIGlzIGZpcnN0IGNhbGxlZCBhcyBpdCBpc1xuICAgIC8vIGlzIGJlaW5nIHBhc3NlZCBpbnRvIHRoZSBkZWNvcmF0b3IgcHJvY2Vzc29yIGFuZCBzbyBpdCBuZWVkcyB0byByZXR1cm4gYSBmdW5jdGlvblxuICAgIC8vIHNvIHRoYXQgaXQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2hlbiB0aGUgZGVjb3JhdG9ycyBhcmUgYWN0dWFsbHkgcHJvY2Vzc2VkLiAgS2luZGEgc3BsaWZmeS5cblxuICAgIC8vIENhbGxlZCBieSBkZWNvcmF0b3IgcHJvY2Vzc29yXG4gICAgaWYgKG9iamVjdFByb3BzLnByb3RvdHlwZSkgeyAvLyBpZiBvYmplY3RQcm9wcyBpcyB0aGUgY2xhc3MgKHNlY29uZCBwYXNzIGlmIHBhc3NlZCB3aXRoIHt0b0NsaWVudCBzdHlsZSBwYXJhbXN9IG9yIGZpcnN0IHBhc3Mgd2hlbiBAc3VwZXJ0eXBlQ2xhc3Mgbm8gcGFyZW4gYW5kIGFyZ3MpXG4gICAgICAgIHJldHVybiBkZWNvcmF0b3Iob2JqZWN0UHJvcHMpO1xuICAgIH1cblxuICAgIC8vIENhbGxlZCBmaXJzdCB0aW1lIHdpdGggcGFyYW1ldGVyXG4gICAgdmFyIHByb3BzID0gb2JqZWN0UHJvcHM7XG4gICAgcmV0dXJuIGRlY29yYXRvcjtcblxuICAgIC8vIERlY29yYXRvciBXb3JrZXJiZWVcbiAgICBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0KSB7XG4gICAgICAgIG9iamVjdFRlbXBsYXRlID0gb2JqZWN0VGVtcGxhdGUgfHwgT2JqZWN0VGVtcGxhdGU7XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX3RlbXBsYXRlX18gPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuYW1vcnBoaWNDbGFzcyA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5hbW9ycGhpY0dldENsYXNzTmFtZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRhcmdldC5fX25hbWVfXyB9O1xuICAgICAgICB0YXJnZXQuaXNPYmplY3RUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIHRhcmdldC5fX2luamVjdGlvbnNfXyA9IFtdO1xuICAgICAgICB0YXJnZXQuX19vYmplY3RUZW1wbGF0ZV9fID0gb2JqZWN0VGVtcGxhdGU7XG4gICAgICAgIHZhciBjcmVhdGVQcm9wcyA9IG9iamVjdFRlbXBsYXRlLmdldFRlbXBsYXRlUHJvcGVydGllcyhwcm9wcyB8fCB7fSk7XG4gICAgICAgIHRhcmdldC5fX3RvQ2xpZW50X18gPSBjcmVhdGVQcm9wcy5fX3RvQ2xpZW50X187XG4gICAgICAgIHRhcmdldC5fX3RvU2VydmVyX18gPSBjcmVhdGVQcm9wcy5fX3RvU2VydmVyX187XG4gICAgICAgIHRhcmdldC5fX3NoYWRvd0NoaWxkcmVuX18gPSBbXTtcblxuICAgICAgICAvLyBQdXNoIGFuIGFycmF5IG9mIHRlbXBsYXRlIHJlZmVyZW5jZXMgKHdlIGNhbid0IGdldCBhdCB0aGVpciBuYW1lcyBub3cpLiAgTGF0ZXIgd2Ugd2lsbFxuICAgICAgICAvLyB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgX19kaWN0aW9uYXJ5X19cbiAgICAgICAgb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXyA9IG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18gfHwgW107XG4gICAgICAgIG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18ucHVzaCh0YXJnZXQpO1xuXG5cbiAgICAgICAgLy8gV2UgY2FuIG5ldmVyIHJlZmVyZW5jZSB0ZW1wbGF0ZSBmdW5jdGlvbnMgYXQgY29tcGlsZSB0aW1lIHdoaWNoIGlzIHdoZW4gdGhpcyBkZWNvcmF0b3IgaXMgZXhlY3V0ZWRcbiAgICAgICAgLy8gVGhlcmVmb3JlIHdlIGhhdmUgdG8gc2V0dXAgZ2V0dGVycyBmb3IgcHJvcGVydGllcyB0aGF0IG5lZWQgYWNjZXNzIHRvIHRoZSB0ZW1wbGF0ZSBmdW5jdGlvbnMgc29cbiAgICAgICAgLy8gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoZXkgYXJlIGZ1bGx5IHJlc29sdmVkIGJlZm9yZSBhY2Nlc3NpbmcgdGhlbVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnZGVmaW5lUHJvcGVydGllcycsIHsgZ2V0OiBkZWZpbmVQcm9wZXJ0aWVzIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNQcm9wZXJ0aWVzJywgeyBnZXQ6IGRlZmluZVByb3BlcnRpZXMgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX25hbWVfXycsIHsgZ2V0OiBnZXROYW1lIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNDbGFzc05hbWUnLCB7IGdldDogZ2V0TmFtZSB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ3BhcmVudFRlbXBsYXRlJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fcGFyZW50X18nLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19jaGlsZHJlbl9fJywgeyBnZXQ6IGdldENoaWxkcmVuIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNQYXJlbnRDbGFzcycsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY0NoaWxkQ2xhc3NlcycsIHsgZ2V0OiBnZXRDaGlsZHJlbiB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljU3RhdGljJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9iamVjdFRlbXBsYXRlIH0gfSk7XG5cbiAgICAgICAgdGFyZ2V0LmZyb21QT0pPID0gZnVuY3Rpb24gZnJvbVBPSk8ocG9qbykge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLmZyb21QT0pPKHBvam8sIHRhcmdldCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmZyb21KU09OID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNGcm9tSlNPTiA9IGZ1bmN0aW9uIGZyb21KU09OKHN0ciwgaWRQcmVmaXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuZnJvbUpTT04oc3RyLCB0YXJnZXQsIGlkUHJlZml4KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmdldFByb3BlcnRpZXMgPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0dldFByb3BlcnRpZXMgPSBmdW5jdGlvbiBnZXRQcm9wZXJ0aWVzKGluY2x1ZGVWaXJ0dWFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgdW5kZWZpbmVkLCBpbmNsdWRlVmlydHVhbCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5jcmVhdGVQcm9wZXJ0eSA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljQ3JlYXRlUHJvcGVydHkgPSBmdW5jdGlvbiAocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGVbcHJvcGVydHlOYW1lXSA9IG9iamVjdFRlbXBsYXRlLl9zZXR1cEZ1bmN0aW9uKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkuYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5Lm9uLCBkZWZpbmVQcm9wZXJ0eS52YWxpZGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLl9fYW1vcnBoaWNwcm9wc19fW3Byb3BlcnR5TmFtZV0gPSBkZWZpbmVQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZpbmVQcm9wZXJ0eS52YWx1ZSBpbiBbJ3N0cmluZycsICdudW1iZXInXSB8fCBkZWZpbmVQcm9wZXJ0eS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LnByb3RvdHlwZSwgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBkZWZpbmVQcm9wZXJ0eS52YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQucHJvdG90eXBlLCBwcm9wZXJ0eU5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFRlbXBsYXRlLmNsb25lKGRlZmluZVByb3BlcnR5LnZhbHVlLCBkZWZpbmVQcm9wZXJ0eS5vZiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS50eXBlIHx8IG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICBpZiAodGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfXykge1xuICAgICAgICAgICAgb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18gPSBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXyB8fCBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGV4Y2VwdGlvbktleSBpbiB0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fKSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmM6IHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX19bZXhjZXB0aW9uS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGdldE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3A6IGV4Y2VwdGlvbktleVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQucHJvdG90eXBlLl9fYW1vcnBoaWNwcm9wc19fO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldE5hbWUoKSB7XG4gICAgICAgICAgICAvL3JldHVybiB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pWzFdO1xuICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLylbMV07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0RGljdGlvbmFyeSgpIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLmdldENsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRQYXJlbnQoKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93UGFyZW50X187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkocHJvcHM/KTogYW55IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgICAgIHByb3BzLmVudW1lcmFibGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fYW1vcnBoaWNwcm9wc19fJykgPyB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gOiB7fTtcbiAgICAgICAgdmFyIHJlZmxlY3Rpb25UeXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIHRhcmdldEtleSk7XG4gICAgICAgIHZhciBkZWNsYXJlZFR5cGUgPSBwcm9wcy50eXBlO1xuICAgICAgICB2YXIgdHlwZSA9IHJlZmxlY3Rpb25UeXBlICE9PSBBcnJheSA/IGRlY2xhcmVkVHlwZSB8fCByZWZsZWN0aW9uVHlwZSA6IGRlY2xhcmVkVHlwZTtcbiAgICAvLyBUeXBlIG1pc21hdGNoZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICsgJyAtIGRlY29yYXRvciB0eXBlIGRvZXMgbm90IG1hdGNoIGFjdHVhbCB0eXBlJztcbiAgICAgICAgICAgIH07XG4gICAgLy8gRGVmZXJyZWQgdHlwZVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5nZXRUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfXyA9IHRhcmdldC5oYXNPd25Qcm9wZXJ0eSgnX19kZWZlcnJlZFR5cGVfXycpID8gdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gOiB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2RlZmVycmVkVHlwZV9fW3RhcmdldEtleV0gPSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICAgICAgZGVsZXRlIHByb3BzLmdldFR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICtcbiAgICAgICAgICAgICAgICAnIC0gdHlwZSBpcyB1bmRlZmluZWQuIENpcmN1bGFyIHJlZmVyZW5jZT8gVHJ5IEBwcm9wZXJ0eSh7Z2V0VHlwZTogKCkgPT4ge3JldHVybiAnICtcbiAgICAgICAgICAgICAgICBwcm9wWzBdLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnN1YnN0cigxKSArICd9fSknO1xuXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZsZWN0aW9uVHlwZSA9PT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSBBcnJheTtcbiAgICAgICAgICAgIHByb3BzLm9mID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5fX2Ftb3JwaGljcHJvcHNfX1t0YXJnZXRLZXldID0gcHJvcHM7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGUoZGVmaW5lUHJvcGVydHkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSB7XG4gICAgfVxufSJdfQ== |
@@ -23,9 +23,9 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.SupertypeSession = exports.amorphicStatic = void 0; | ||
var ObjectTemplate_1 = require("./ObjectTemplate"); | ||
exports.remote = exports.property = exports.supertypeClass = exports.Supertype = exports.BuildSupertypeConfig = exports.SupertypeConfig = exports.SupertypeLogger = exports.SupertypeSession = exports.amorphicStatic = exports.StatsdHelper = void 0; | ||
const ObjectTemplate_1 = require("./ObjectTemplate"); | ||
ObjectTemplate_1.ObjectTemplate.init(); | ||
exports.default = ObjectTemplate_1.ObjectTemplate; | ||
var amorphicStatic = ObjectTemplate_1.ObjectTemplate.amorphicStatic; | ||
let amorphicStatic = ObjectTemplate_1.ObjectTemplate.amorphicStatic; | ||
exports.amorphicStatic = amorphicStatic; | ||
var SupertypeSession = ObjectTemplate_1.ObjectTemplate.amorphicStatic; | ||
let SupertypeSession = ObjectTemplate_1.ObjectTemplate.amorphicStatic; | ||
exports.SupertypeSession = SupertypeSession; | ||
@@ -45,2 +45,2 @@ var StatsdHelper_1 = require("./StatsdHelper"); | ||
Object.defineProperty(exports, "remote", { enumerable: true, get: function () { return decorators_1.remote; } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHOzs7QUFFSCxtREFBa0Q7QUFFbEQsK0JBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixrQkFBZSwrQkFBYyxDQUFDO0FBRTlCLElBQUksY0FBYyxHQUFHLCtCQUFjLENBQUMsY0FBYyxDQUFDO0FBSzFDLHdDQUFjO0FBSnZCLElBQUksZ0JBQWdCLEdBQUcsK0JBQWMsQ0FBQyxjQUFjLENBQUM7QUFJNUIsNENBQWdCO0FBRnpDLCtDQUE4QztBQUFyQyw0R0FBQSxZQUFZLE9BQUE7QUFHckIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixxREFBMEU7QUFBakUsa0hBQUEsZUFBZSxPQUFBO0FBQUUsdUhBQUEsb0JBQW9CLE9BQUE7QUFDOUMseUNBQXdDO0FBQS9CLHNHQUFBLFNBQVMsT0FBQTtBQUNsQiwyQ0FBZ0U7QUFBdkQsNEdBQUEsY0FBYyxPQUFBO0FBQUUsc0dBQUEsUUFBUSxPQUFBO0FBQUUsb0dBQUEsTUFBTSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogQ29weXJpZ2h0IDIwMTEtMjAxMiBTYW0gRWxzYW1tYW5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsXG4gRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFXG4gTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IE9iamVjdFRlbXBsYXRlIH0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5cbk9iamVjdFRlbXBsYXRlLmluaXQoKTtcbmV4cG9ydCBkZWZhdWx0IE9iamVjdFRlbXBsYXRlO1xuXG5sZXQgYW1vcnBoaWNTdGF0aWMgPSBPYmplY3RUZW1wbGF0ZS5hbW9ycGhpY1N0YXRpYztcbmxldCBTdXBlcnR5cGVTZXNzaW9uID0gT2JqZWN0VGVtcGxhdGUuYW1vcnBoaWNTdGF0aWM7XG5leHBvcnQgeyBTdGF0c2RDbGllbnRJbnRlcmZhY2UgfSBmcm9tICcuL1N0YXRzZENsaWVudEludGVyZmFjZSc7XG5leHBvcnQgeyBTdGF0c2RIZWxwZXIgfSBmcm9tICcuL1N0YXRzZEhlbHBlcic7XG5cbmV4cG9ydCB7IGFtb3JwaGljU3RhdGljLCBTdXBlcnR5cGVTZXNzaW9uIH07XG5leHBvcnQgeyBTdXBlcnR5cGVMb2dnZXIgfSBmcm9tICcuL1N1cGVydHlwZUxvZ2dlcic7XG5leHBvcnQgeyBTdXBlcnR5cGVDb25maWcsIEJ1aWxkU3VwZXJ0eXBlQ29uZmlnIH0gZnJvbSAnLi9TdXBlcnR5cGVDb25maWcnO1xuZXhwb3J0IHsgU3VwZXJ0eXBlIH0gZnJvbSAnLi9TdXBlcnR5cGUnO1xuZXhwb3J0IHsgc3VwZXJ0eXBlQ2xhc3MsIHByb3BlcnR5LCByZW1vdGUgfSBmcm9tICcuL2RlY29yYXRvcnMnOyJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHOzs7QUFFSCxxREFBa0Q7QUFFbEQsK0JBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0QixrQkFBZSwrQkFBYyxDQUFDO0FBRTlCLElBQUksY0FBYyxHQUFHLCtCQUFjLENBQUMsY0FBYyxDQUFDO0FBSzFDLHdDQUFjO0FBSnZCLElBQUksZ0JBQWdCLEdBQUcsK0JBQWMsQ0FBQyxjQUFjLENBQUM7QUFJNUIsNENBQWdCO0FBRnpDLCtDQUE4QztBQUFyQyw0R0FBQSxZQUFZLE9BQUE7QUFHckIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixxREFBMEU7QUFBakUsa0hBQUEsZUFBZSxPQUFBO0FBQUUsdUhBQUEsb0JBQW9CLE9BQUE7QUFDOUMseUNBQXdDO0FBQS9CLHNHQUFBLFNBQVMsT0FBQTtBQUNsQiwyQ0FBZ0U7QUFBdkQsNEdBQUEsY0FBYyxPQUFBO0FBQUUsc0dBQUEsUUFBUSxPQUFBO0FBQUUsb0dBQUEsTUFBTSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogQ29weXJpZ2h0IDIwMTEtMjAxMiBTYW0gRWxzYW1tYW5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmdcbiBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbiBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvXG4gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmVcbiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsXG4gRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkRcbiBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFXG4gTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTlxuIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTlxuIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IE9iamVjdFRlbXBsYXRlIH0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5cbk9iamVjdFRlbXBsYXRlLmluaXQoKTtcbmV4cG9ydCBkZWZhdWx0IE9iamVjdFRlbXBsYXRlO1xuXG5sZXQgYW1vcnBoaWNTdGF0aWMgPSBPYmplY3RUZW1wbGF0ZS5hbW9ycGhpY1N0YXRpYztcbmxldCBTdXBlcnR5cGVTZXNzaW9uID0gT2JqZWN0VGVtcGxhdGUuYW1vcnBoaWNTdGF0aWM7XG5leHBvcnQgeyBTdGF0c2RDbGllbnRJbnRlcmZhY2UgfSBmcm9tICcuL1N0YXRzZENsaWVudEludGVyZmFjZSc7XG5leHBvcnQgeyBTdGF0c2RIZWxwZXIgfSBmcm9tICcuL1N0YXRzZEhlbHBlcic7XG5cbmV4cG9ydCB7IGFtb3JwaGljU3RhdGljLCBTdXBlcnR5cGVTZXNzaW9uIH07XG5leHBvcnQgeyBTdXBlcnR5cGVMb2dnZXIgfSBmcm9tICcuL1N1cGVydHlwZUxvZ2dlcic7XG5leHBvcnQgeyBTdXBlcnR5cGVDb25maWcsIEJ1aWxkU3VwZXJ0eXBlQ29uZmlnIH0gZnJvbSAnLi9TdXBlcnR5cGVDb25maWcnO1xuZXhwb3J0IHsgU3VwZXJ0eXBlIH0gZnJvbSAnLi9TdXBlcnR5cGUnO1xuZXhwb3J0IHsgc3VwZXJ0eXBlQ2xhc3MsIHByb3BlcnR5LCByZW1vdGUgfSBmcm9tICcuL2RlY29yYXRvcnMnOyJdfQ== |
@@ -5,3 +5,3 @@ import * as serializer from './serializer'; | ||
import { Config, ApplicationNameToConfigMap } from '@haventech/amorphic-contracts'; | ||
export declare type CreateTypeForName = { | ||
export type CreateTypeForName = { | ||
name?: string; | ||
@@ -12,3 +12,3 @@ toClient?: boolean; | ||
}; | ||
export declare type Getter = { | ||
export type Getter = { | ||
get: any; | ||
@@ -20,3 +20,3 @@ }; | ||
*/ | ||
export declare type ConstructorTypeBase = Function & { | ||
export type ConstructorTypeBase = Function & { | ||
amorphicClassName: any; | ||
@@ -47,3 +47,3 @@ __shadowParent__: any; | ||
} | ||
export declare type ObjectTemplateClone = typeof ObjectTemplate; | ||
export type ObjectTemplateClone = typeof ObjectTemplate; | ||
/** | ||
@@ -50,0 +50,0 @@ * the og ObjectTemplate, what everything picks off of |
@@ -1,2 +0,2 @@ | ||
declare type hrTime = [number, number]; | ||
type hrTime = [number, number]; | ||
/** | ||
@@ -3,0 +3,0 @@ * mostly static utility functions to assist supertype in handling statsd operations |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.StatsdHelper = void 0; | ||
var index_1 = require("./index"); | ||
const index_1 = require("./index"); | ||
/** | ||
* mostly static utility functions to assist supertype in handling statsd operations | ||
*/ | ||
var StatsdHelper = /** @class */ (function () { | ||
function StatsdHelper() { | ||
} | ||
class StatsdHelper { | ||
/** | ||
@@ -16,5 +14,5 @@ * convert node time format hrtime to milliseconds | ||
*/ | ||
StatsdHelper.convertHRTimeToMilliseconds = function (hrTime) { | ||
static convertHRTimeToMilliseconds(hrTime) { | ||
return hrTime[0] * 1000 + hrTime[1] / 1000000; | ||
}; | ||
} | ||
/** | ||
@@ -26,15 +24,14 @@ * given a start time and a key, record the total amount of time and send stat info. | ||
*/ | ||
StatsdHelper.computeTimingAndSend = function (hrTimeStart, statsKey, tags) { | ||
var statsdClient = index_1.SupertypeSession.statsdClient; | ||
static computeTimingAndSend(hrTimeStart, statsKey, tags) { | ||
const statsdClient = index_1.SupertypeSession.statsdClient; | ||
if (statsdClient | ||
&& statsdClient.timing | ||
&& typeof statsdClient.timing === 'function') { | ||
var timerEndTime = process.hrtime(hrTimeStart); | ||
var totalTimeInMilliseconds = this.convertHRTimeToMilliseconds(timerEndTime); | ||
const timerEndTime = process.hrtime(hrTimeStart); | ||
const totalTimeInMilliseconds = this.convertHRTimeToMilliseconds(timerEndTime); | ||
statsdClient.timing(statsKey, totalTimeInMilliseconds, tags); | ||
} | ||
}; | ||
return StatsdHelper; | ||
}()); | ||
} | ||
} | ||
exports.StatsdHelper = StatsdHelper; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YXRzZEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBMkM7QUFNM0M7O0dBRUc7QUFDSDtJQUFBO0lBNkJBLENBQUM7SUEzQkc7Ozs7T0FJRztJQUNXLHdDQUEyQixHQUF6QyxVQUEwQyxNQUFjO1FBQ3BELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLGlDQUFvQixHQUFsQyxVQUFtQyxXQUFtQixFQUFFLFFBQWdCLEVBQUUsSUFBSztRQUMzRSxJQUFNLFlBQVksR0FBRyx3QkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFFbkQsSUFBRyxZQUFZO2VBQ1IsWUFBWSxDQUFDLE1BQU07ZUFDbkIsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUU5QyxJQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pELElBQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9FLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FBQyxBQTdCRCxJQTZCQztBQTdCWSxvQ0FBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1cGVydHlwZVNlc3Npb24gfSBmcm9tICcuL2luZGV4JztcblxuLy8gZm9ybWF0IGZvciBocnRpbWVcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvcHJvY2Vzcy5odG1sI3Byb2Nlc3NfcHJvY2Vzc19ocnRpbWVfdGltZVxudHlwZSBoclRpbWUgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIG1vc3RseSBzdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gYXNzaXN0IHN1cGVydHlwZSBpbiBoYW5kbGluZyBzdGF0c2Qgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU3RhdHNkSGVscGVyIHtcblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgbm9kZSB0aW1lIGZvcm1hdCBocnRpbWUgdG8gbWlsbGlzZWNvbmRzXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb252ZXJ0SFJUaW1lVG9NaWxsaXNlY29uZHMoaHJUaW1lOiBoclRpbWUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaHJUaW1lWzBdICogMTAwMCArIGhyVGltZVsxXSAvIDEwMDAwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2l2ZW4gYSBzdGFydCB0aW1lIGFuZCBhIGtleSwgcmVjb3JkIHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSBhbmQgc2VuZCBzdGF0IGluZm8uXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVN0YXJ0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0YXRzS2V5XG4gICAgICogQHBhcmFtIHRhZ3NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbXB1dGVUaW1pbmdBbmRTZW5kKGhyVGltZVN0YXJ0OiBoclRpbWUsIHN0YXRzS2V5OiBzdHJpbmcsIHRhZ3M/KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRzZENsaWVudCA9IFN1cGVydHlwZVNlc3Npb24uc3RhdHNkQ2xpZW50O1xuXG4gICAgICAgIGlmKHN0YXRzZENsaWVudFxuICAgICAgICAgICAgJiYgc3RhdHNkQ2xpZW50LnRpbWluZ1xuICAgICAgICAgICAgJiYgdHlwZW9mIHN0YXRzZENsaWVudC50aW1pbmcgPT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgICAgICAgY29uc3QgdGltZXJFbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUoaHJUaW1lU3RhcnQpO1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMgPSB0aGlzLmNvbnZlcnRIUlRpbWVUb01pbGxpc2Vjb25kcyh0aW1lckVuZFRpbWUpO1xuICAgICAgICAgICAgc3RhdHNkQ2xpZW50LnRpbWluZyhzdGF0c0tleSwgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMsIHRhZ3MpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdHNkSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N0YXRzZEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBMkM7QUFNM0M7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFFckI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQ3BELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFtQixFQUFFLFFBQWdCLEVBQUUsSUFBSztRQUMzRSxNQUFNLFlBQVksR0FBRyx3QkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFFbkQsSUFBRyxZQUFZO2VBQ1IsWUFBWSxDQUFDLE1BQU07ZUFDbkIsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUU5QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9FLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztDQUNKO0FBN0JELG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1cGVydHlwZVNlc3Npb24gfSBmcm9tICcuL2luZGV4JztcblxuLy8gZm9ybWF0IGZvciBocnRpbWVcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvcHJvY2Vzcy5odG1sI3Byb2Nlc3NfcHJvY2Vzc19ocnRpbWVfdGltZVxudHlwZSBoclRpbWUgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIG1vc3RseSBzdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gYXNzaXN0IHN1cGVydHlwZSBpbiBoYW5kbGluZyBzdGF0c2Qgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU3RhdHNkSGVscGVyIHtcblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgbm9kZSB0aW1lIGZvcm1hdCBocnRpbWUgdG8gbWlsbGlzZWNvbmRzXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb252ZXJ0SFJUaW1lVG9NaWxsaXNlY29uZHMoaHJUaW1lOiBoclRpbWUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaHJUaW1lWzBdICogMTAwMCArIGhyVGltZVsxXSAvIDEwMDAwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2l2ZW4gYSBzdGFydCB0aW1lIGFuZCBhIGtleSwgcmVjb3JkIHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSBhbmQgc2VuZCBzdGF0IGluZm8uXG4gICAgICogQHBhcmFtIHtoclRpbWV9IGhyVGltZVN0YXJ0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0YXRzS2V5XG4gICAgICogQHBhcmFtIHRhZ3NcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbXB1dGVUaW1pbmdBbmRTZW5kKGhyVGltZVN0YXJ0OiBoclRpbWUsIHN0YXRzS2V5OiBzdHJpbmcsIHRhZ3M/KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRzZENsaWVudCA9IFN1cGVydHlwZVNlc3Npb24uc3RhdHNkQ2xpZW50O1xuXG4gICAgICAgIGlmKHN0YXRzZENsaWVudFxuICAgICAgICAgICAgJiYgc3RhdHNkQ2xpZW50LnRpbWluZ1xuICAgICAgICAgICAgJiYgdHlwZW9mIHN0YXRzZENsaWVudC50aW1pbmcgPT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgICAgICAgY29uc3QgdGltZXJFbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUoaHJUaW1lU3RhcnQpO1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMgPSB0aGlzLmNvbnZlcnRIUlRpbWVUb01pbGxpc2Vjb25kcyh0aW1lckVuZFRpbWUpO1xuICAgICAgICAgICAgc3RhdHNkQ2xpZW50LnRpbWluZyhzdGF0c0tleSwgdG90YWxUaW1lSW5NaWxsaXNlY29uZHMsIHRhZ3MpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ== |
import { ObjectTemplate } from './ObjectTemplate'; | ||
export declare type Constructable = new (...args: any[]) => {}; | ||
export type Constructable = new (...args: any[]) => {}; | ||
/** | ||
@@ -4,0 +4,0 @@ * This is the base class for typescript classes. |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Supertype = void 0; | ||
var ObjectTemplate_1 = require("./ObjectTemplate"); | ||
var serializer = require("./serializer"); | ||
const ObjectTemplate_1 = require("./ObjectTemplate"); | ||
const serializer = require("./serializer"); | ||
function constructorName(constructor) { | ||
var namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
var namedFunction = constructor.toString().match(/class ([^]\w+)/); | ||
//var namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
return namedFunction ? namedFunction[1] : null; | ||
@@ -16,5 +17,29 @@ } | ||
*/ | ||
var Supertype = /** @class */ (function () { | ||
function Supertype(objectTemplate) { | ||
if (objectTemplate === void 0) { objectTemplate = ObjectTemplate_1.ObjectTemplate; } | ||
class Supertype { | ||
static amorphicCreateProperty(prop, defineProperty) { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
static amorphicGetProperties(includeVirtualProperties) { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
static amorphicFromJSON(json) { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
static createProperty(prop, defineProperty) { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
static getProperties() { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
amorphicGetClassName() { | ||
// Implemented in the decorator @supertypeClass | ||
return ''; | ||
} | ||
static fromJSON(json, idPrefix) { | ||
// Implemented in the decorator @supertypeClass | ||
} | ||
static inject(injector) { | ||
// Implemented in Line 128, of ObjectTemplate.ts (static performInjections) | ||
} | ||
constructor(objectTemplate = ObjectTemplate_1.ObjectTemplate) { | ||
var template = this.__template__; | ||
@@ -43,34 +68,9 @@ if (!template) { | ||
} | ||
Supertype.amorphicCreateProperty = function (prop, defineProperty) { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.amorphicGetProperties = function (includeVirtualProperties) { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.amorphicFromJSON = function (json) { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.createProperty = function (prop, defineProperty) { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.getProperties = function () { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.prototype.amorphicGetClassName = function () { | ||
// Implemented in the decorator @supertypeClass | ||
return ''; | ||
}; | ||
Supertype.fromJSON = function (json, idPrefix) { | ||
// Implemented in the decorator @supertypeClass | ||
}; | ||
Supertype.inject = function (injector) { | ||
// Implemented in Line 128, of ObjectTemplate.ts (static performInjections) | ||
}; | ||
Supertype.prototype.amorphicToJSON = function (cb) { | ||
amorphicToJSON(cb) { | ||
return serializer.toJSONString(this, cb); | ||
}; | ||
Supertype.prototype.amorphicGetPropertyDefinition = function (prop) { | ||
} | ||
amorphicGetPropertyDefinition(prop) { | ||
return ObjectTemplate_1.ObjectTemplate._getDefineProperty(prop, this.__template__); | ||
}; | ||
Supertype.prototype.amorphicGetPropertyValues = function (prop) { | ||
} | ||
amorphicGetPropertyValues(prop) { | ||
var defineProperty = this.__prop__(prop) || this.__prop__('_' + prop); | ||
@@ -81,4 +81,4 @@ if (typeof (defineProperty.values) === 'function') { | ||
return defineProperty.values; | ||
}; | ||
Supertype.prototype.amorphicGetPropertyDescriptions = function (prop) { | ||
} | ||
amorphicGetPropertyDescriptions(prop) { | ||
var defineProperty = this.__prop__(prop) || this.__prop__('_' + prop); | ||
@@ -89,30 +89,29 @@ if (typeof (defineProperty.descriptions) === 'function') { | ||
return defineProperty.descriptions; | ||
}; | ||
Supertype.prototype.createCopy = function (creator) { | ||
} | ||
createCopy(creator) { | ||
var obj = this; | ||
return ObjectTemplate_1.ObjectTemplate.fromPOJO(obj, obj.__template__, null, null, undefined, null, null, creator); | ||
}; | ||
Supertype.prototype.inject = function (injector) { | ||
} | ||
inject(injector) { | ||
ObjectTemplate_1.ObjectTemplate.inject(this, injector); | ||
}; | ||
Supertype.prototype.copyProperties = function (obj) { | ||
} | ||
copyProperties(obj) { | ||
for (var prop in obj) { | ||
this[prop] = obj[prop]; | ||
} | ||
}; | ||
Supertype.prototype.__prop__ = function (prop) { | ||
} | ||
__prop__(prop) { | ||
return this.amorphicGetPropertyDefinition(prop); | ||
}; | ||
Supertype.prototype.__values__ = function (prop) { | ||
} | ||
__values__(prop) { | ||
return this.amorphicGetPropertyValues(prop); | ||
}; | ||
Supertype.prototype.__descriptions__ = function (prop) { | ||
} | ||
__descriptions__(prop) { | ||
return this.amorphicGetPropertyDescriptions(prop); | ||
}; | ||
Supertype.prototype.toJSONString = function (cb) { | ||
} | ||
toJSONString(cb) { | ||
return this.amorphicToJSON(cb); | ||
}; | ||
return Supertype; | ||
}()); | ||
} | ||
} | ||
exports.Supertype = Supertype; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFDaEQseUNBQTJDO0FBRTNDLFNBQVMsZUFBZSxDQUFDLFdBQVc7SUFDaEMsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNuRCxDQUFDO0FBS0Q7Ozs7O0dBS0c7QUFFSDtJQWdESSxtQkFBWSxjQUErQjtRQUEvQiwrQkFBQSxFQUFBLGlCQUFpQiwrQkFBYztRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLDBCQUEwQixDQUFDLENBQUM7U0FDMUc7UUFFRCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRFLHlEQUF5RDtRQUN6RCxJQUFJLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDOUIsT0FBTyxjQUFjLEVBQUU7WUFDbkIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUM5RCxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDdEQ7WUFDRCxjQUFjLEdB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LENBQUM7SUFDMUMsQ0FBQztJQUVELGtDQUFjLEdBQWQsVUFBZSxHQUFHO1FBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFDRCw0QkFBUSxHQUFSLFVBQVMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCw4QkFBVSxHQUFWLFVBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxvQ0FBZ0IsR0FBaEIsVUFBaUIsSUFBSTtRQUNqQixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZ0NBQVksR0FBWixVQUFhLEVBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQWhJRCxJQWdJQztBQWhJWSw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VGVtcGxhdGV9IGZyb20gJy4vT2JqZWN0VGVtcGxhdGUnO1xuaW1wb3J0ICogYXMgc2VyaWFsaXplciBmcm9tICcuL3NlcmlhbGl6ZXInO1xuXG5mdW5jdGlvbiBjb25zdHJ1Y3Rvck5hbWUoY29uc3RydWN0b3IpIHtcbiAgICB2YXIgbmFtZWRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKTtcbiAgICByZXR1cm4gbmFtZWRGdW5jdGlvbiA/IG5hbWVkRnVuY3Rpb25bMV0gOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RhYmxlID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4ge307XG5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0eXBlc2NyaXB0IGNsYXNzZXMuIFxuICogSXQgd2lsbCBpbmplY3QgbWVtYmVycyBpbnRvIHRoZSBvYmplY3QgZnJvbSBib3RoIHRoZSB0ZW1wbGF0ZSBhbmQgb2JqZWN0VGVtcGxhdGVcbiAqIEBwYXJhbSB7T2JqZWN0VGVtcGxhdGV9IC0gb3RoZXIgbGF5ZXJzIGNhbiBwYXNzIGluIHRoZWlyIG93biBvYmplY3QgdGVtcGxhdGUgKHRoaXMgaXMgdGhlIG9iamVjdCBub3QgT2JqZWN0VGVtcGxhdGUpXG4gKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgb2JqZWN0IGl0c2VsZlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGUge1xuICAgIF9fdGVtcGxhdGVfXzogYW55O1xuICAgIGFtb3JwaGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGFtb3JwaGljQ3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljR2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbFByb3BlcnRpZXM/OiBib29sZWFuKTphbnkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgYW1vcnBoaWNGcm9tSlNPTihqc29uOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZVByb3BlcnR5KHByb3A6IFN0cmluZywgZGVmaW5lUHJvcGVydHk6IE9iamVjdCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcygpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRDbGFzc05hbWUgKCkgOiBzdHJpbmcge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tSlNPTiAoanNvbjogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBpbmplY3QgKGluamVjdG9yOiBhbnkpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gTGluZSAxMjgsIG9mIE9iamVjdFRlbXBsYXRlLnRzIChzdGF0aWMgcGVyZm9ybUluamVjdGlvbnMpXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljUHJvcGVydGllczogYW55O1xuICAgIHN0YXRpYyBhbW9ycGhpY0NoaWxkQ2xhc3NlczogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIGFtb3JwaGljUGFyZW50Q2xhc3M6IENvbnN0cnVjdGFibGU7XG4gICAgc3RhdGljIGFtb3JwaGljQ2xhc3NOYW1lIDogc3RyaW5nO1xuICAgIHN0YXRpYyBhbW9ycGhpY1N0YXRpYyA6IHR5cGVvZiBPYmplY3RUZW1wbGF0ZTtcblxuICAgIC8vIE9iamVjdCBtZW1iZXJzXG4gICAgX19pZF9fOiBTdHJpbmc7XG4gICAgYW1vcnBoaWNMZWF2ZUVtcHR5OiBib29sZWFuO1xuXG4gICAgLy8gRGVwcmVjYXRlZCBsZWdhY3kgbmFtaW5nXG4gICAgc3RhdGljIF9fY2hpbGRyZW5fXzogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIF9fcGFyZW50X186IENvbnN0cnVjdGFibGU7XG4gICAgYW1vcnBoaWNDbGFzcyA6IGFueVxuXG4gICAgY29uc3RydWN0b3Iob2JqZWN0VGVtcGxhdGUgPSBPYmplY3RUZW1wbGF0ZSkge1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLl9fdGVtcGxhdGVfXztcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yTmFtZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpICsgJyBtaXNzaW5nIEBzdXBlcnR5cGVDbGFzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVsbCBjb25zdHJ1Y3RvciBub3QgdG8gZXhlY3V0ZSBhcyB0aGlzIGlzIGFuIGVtcHR5IG9iamVjdFxuICAgICAgICB0aGlzLmFtb3JwaGljTGVhdmVFbXB0eSA9IG9iamVjdFRlbXBsYXRlLl9zdGFzaE9iamVjdCh0aGlzLCB0ZW1wbGF0ZSk7XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGV2ZWwgaW5qZWN0aW9ucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlXG4gICAgICAgIHZhciB0YXJnZXRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICB3aGlsZSAodGFyZ2V0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfXy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tpeF0uY2FsbCh0aGlzLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlID0gdGFyZ2V0VGVtcGxhdGUuX19wYXJlbnRfXztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdsb2JhbCBpbmplY3Rpb25zIHVzZWQgYnkgdGhlIGZyYW1ld29ya1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tqXS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbW9ycGhpYyA9IG9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIC8vQFRPRE86IGZpbGwgdGhlIHByb3BlcnRpZXMgb2YgJ3RoaXMnIGluPyBkbyBJIG5lZWQgdGhpcyBhZnRlciBkZWxldGluZyB0aGUgY2FsbGVyQ29udGV4dCBhcHByb2FjaFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzdcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGFtb3JwaGljVG9KU09OKGNiPyl7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyLnRvSlNPTlN0cmluZyh0aGlzLCBjYik7XG4gICAgfSBcblxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0eShwcm9wLCB0aGlzLl9fdGVtcGxhdGVfXyk7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlWYWx1ZXMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkudmFsdWVzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS52YWx1ZXM7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZXNjcmlwdGlvbnMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29weShjcmVhdG9yKSB7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ob2JqLCBvYmouX190ZW1wbGF0ZV9fLCBudWxsLCBudWxsLCB1bmRlZmluZWQsIG51bGwsIG51bGwsIGNyZWF0b3IpO1xuICAgIH1cblxuICAgIGluamVjdChpbmplY3Rvcikge1xuICAgICAgICBPYmplY3RUZW1wbGF0ZS5pbmplY3QodGhpcywgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIGNvcHlQcm9wZXJ0aWVzKG9iaikge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgdGhpc1twcm9wXSA9IG9ialtwcm9wXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfX3Byb3BfXyhwcm9wKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApO1xuICAgIH1cbiAgICBfX3ZhbHVlc19fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKTtcbiAgICB9XG4gICAgX19kZXNjcmlwdGlvbnNfXyhwcm9wKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKTtcbiAgICB9XG4gICAgdG9KU09OU3RyaW5nKGNiPykge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY1RvSlNPTihjYilcbiAgICB9XG59Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBZ0Q7QUFDaEQsMkNBQTJDO0FBRTNDLFNBQVMsZUFBZSxDQUFDLFdBQVc7SUFDaEMsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25FLHVFQUF1RTtJQUN2RSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQUtEOzs7OztHQUtHO0FBRUgsTUFBYSxTQUFTO0lBSWxCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDOUQsK0NBQStDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsd0JBQWtDO1FBQzNELCtDQUErQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDaEMsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVksRUFBRSxjQUFzQjtRQUN0RCwrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxhQUFhO1FBQ2hCLCtDQUErQztJQUNuRCxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLCtDQUErQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUFFLElBQVksRUFBRSxRQUFpQjtRQUM1QywrQ0FBK0M7SUFFbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBYTtRQUN4QiwyRUFBMkU7SUFDL0UsQ0FBQztJQWlCRCxZQUFZLGNBQWMsR0FBRywrQkFBYztRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FB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LGNBQWMsQ0FBQyxHQUFHO1FBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxZQUFZLENBQUMsRUFBRztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0o7QUFoSUQsOEJBZ0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RUZW1wbGF0ZX0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5pbXBvcnQgKiBhcyBzZXJpYWxpemVyIGZyb20gJy4vc2VyaWFsaXplcic7XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdG9yTmFtZShjb25zdHJ1Y3Rvcikge1xuICAgIHZhciBuYW1lZEZ1bmN0aW9uID0gY29uc3RydWN0b3IudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLyk7XG4gICAgLy92YXIgbmFtZWRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKTtcbiAgICByZXR1cm4gbmFtZWRGdW5jdGlvbiA/IG5hbWVkRnVuY3Rpb25bMV0gOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RhYmxlID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4ge307XG5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0eXBlc2NyaXB0IGNsYXNzZXMuIFxuICogSXQgd2lsbCBpbmplY3QgbWVtYmVycyBpbnRvIHRoZSBvYmplY3QgZnJvbSBib3RoIHRoZSB0ZW1wbGF0ZSBhbmQgb2JqZWN0VGVtcGxhdGVcbiAqIEBwYXJhbSB7T2JqZWN0VGVtcGxhdGV9IC0gb3RoZXIgbGF5ZXJzIGNhbiBwYXNzIGluIHRoZWlyIG93biBvYmplY3QgdGVtcGxhdGUgKHRoaXMgaXMgdGhlIG9iamVjdCBub3QgT2JqZWN0VGVtcGxhdGUpXG4gKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgb2JqZWN0IGl0c2VsZlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGUge1xuICAgIF9fdGVtcGxhdGVfXzogYW55O1xuICAgIGFtb3JwaGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGFtb3JwaGljQ3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljR2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbFByb3BlcnRpZXM/OiBib29sZWFuKTphbnkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgYW1vcnBoaWNGcm9tSlNPTihqc29uOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZVByb3BlcnR5KHByb3A6IFN0cmluZywgZGVmaW5lUHJvcGVydHk6IE9iamVjdCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcygpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRDbGFzc05hbWUgKCkgOiBzdHJpbmcge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tSlNPTiAoanNvbjogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBpbmplY3QgKGluamVjdG9yOiBhbnkpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gTGluZSAxMjgsIG9mIE9iamVjdFRlbXBsYXRlLnRzIChzdGF0aWMgcGVyZm9ybUluamVjdGlvbnMpXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljUHJvcGVydGllczogYW55O1xuICAgIHN0YXRpYyBhbW9ycGhpY0NoaWxkQ2xhc3NlczogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIGFtb3JwaGljUGFyZW50Q2xhc3M6IENvbnN0cnVjdGFibGU7XG4gICAgc3RhdGljIGFtb3JwaGljQ2xhc3NOYW1lIDogc3RyaW5nO1xuICAgIHN0YXRpYyBhbW9ycGhpY1N0YXRpYyA6IHR5cGVvZiBPYmplY3RUZW1wbGF0ZTtcblxuICAgIC8vIE9iamVjdCBtZW1iZXJzXG4gICAgX19pZF9fOiBTdHJpbmc7XG4gICAgYW1vcnBoaWNMZWF2ZUVtcHR5OiBib29sZWFuO1xuXG4gICAgLy8gRGVwcmVjYXRlZCBsZWdhY3kgbmFtaW5nXG4gICAgc3RhdGljIF9fY2hpbGRyZW5fXzogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIF9fcGFyZW50X186IENvbnN0cnVjdGFibGU7XG4gICAgYW1vcnBoaWNDbGFzcyA6IGFueVxuXG4gICAgY29uc3RydWN0b3Iob2JqZWN0VGVtcGxhdGUgPSBPYmplY3RUZW1wbGF0ZSkge1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLl9fdGVtcGxhdGVfXztcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yTmFtZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpICsgJyBtaXNzaW5nIEBzdXBlcnR5cGVDbGFzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVsbCBjb25zdHJ1Y3RvciBub3QgdG8gZXhlY3V0ZSBhcyB0aGlzIGlzIGFuIGVtcHR5IG9iamVjdFxuICAgICAgICB0aGlzLmFtb3JwaGljTGVhdmVFbXB0eSA9IG9iamVjdFRlbXBsYXRlLl9zdGFzaE9iamVjdCh0aGlzLCB0ZW1wbGF0ZSk7XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGV2ZWwgaW5qZWN0aW9ucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlXG4gICAgICAgIHZhciB0YXJnZXRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICB3aGlsZSAodGFyZ2V0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfXy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tpeF0uY2FsbCh0aGlzLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlID0gdGFyZ2V0VGVtcGxhdGUuX19wYXJlbnRfXztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdsb2JhbCBpbmplY3Rpb25zIHVzZWQgYnkgdGhlIGZyYW1ld29ya1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tqXS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbW9ycGhpYyA9IG9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIC8vQFRPRE86IGZpbGwgdGhlIHByb3BlcnRpZXMgb2YgJ3RoaXMnIGluPyBkbyBJIG5lZWQgdGhpcyBhZnRlciBkZWxldGluZyB0aGUgY2FsbGVyQ29udGV4dCBhcHByb2FjaFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzdcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGFtb3JwaGljVG9KU09OKGNiPyl7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyLnRvSlNPTlN0cmluZyh0aGlzLCBjYik7XG4gICAgfSBcblxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0eShwcm9wLCB0aGlzLl9fdGVtcGxhdGVfXyk7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlWYWx1ZXMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkudmFsdWVzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS52YWx1ZXM7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZXNjcmlwdGlvbnMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29weShjcmVhdG9yKSB7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ob2JqLCBvYmouX190ZW1wbGF0ZV9fLCBudWxsLCBudWxsLCB1bmRlZmluZWQsIG51bGwsIG51bGwsIGNyZWF0b3IpO1xuICAgIH1cblxuICAgIGluamVjdChpbmplY3Rvcikge1xuICAgICAgICBPYmplY3RUZW1wbGF0ZS5pbmplY3QodGhpcywgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIGNvcHlQcm9wZXJ0aWVzKG9iaikge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgdGhpc1twcm9wXSA9IG9ialtwcm9wXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfX3Byb3BfXyhwcm9wKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApO1xuICAgIH1cbiAgICBfX3ZhbHVlc19fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKTtcbiAgICB9XG4gICAgX19kZXNjcmlwdGlvbnNfXyhwcm9wKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKTtcbiAgICB9XG4gICAgdG9KU09OU3RyaW5nKGNiPykge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY1RvSlNPTihjYilcbiAgICB9XG59Il19 |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.BuildSupertypeConfig = exports.SupertypeConfig = void 0; | ||
var nconf = require("nconf"); | ||
const nconf = require("nconf"); | ||
function createNewNConfProvider() { | ||
@@ -11,4 +11,4 @@ return new nconf.Provider().argv().env({ separator: '__' }); | ||
*/ | ||
var SupertypeConfig = /** @class */ (function () { | ||
function SupertypeConfig() { | ||
class SupertypeConfig { | ||
constructor() { | ||
this.internalConfigStore = createNewNConfProvider(); | ||
@@ -22,5 +22,5 @@ } | ||
*/ | ||
SupertypeConfig.prototype.get = function (key) { | ||
get(key) { | ||
return this.internalConfigStore.get(key); | ||
}; | ||
} | ||
/** | ||
@@ -33,5 +33,5 @@ * Sets a value with a key | ||
*/ | ||
SupertypeConfig.prototype.set = function (key, value) { | ||
set(key, value) { | ||
return this.internalConfigStore.set(key, value); | ||
}; | ||
} | ||
/** | ||
@@ -43,8 +43,7 @@ * Load a configuration file into store | ||
*/ | ||
SupertypeConfig.prototype.loadFile = function (fileKey, file) { | ||
loadFile(fileKey, file) { | ||
this.internalConfigStore.file(fileKey, file); | ||
}; | ||
} | ||
; | ||
return SupertypeConfig; | ||
}()); | ||
} | ||
exports.SupertypeConfig = SupertypeConfig; | ||
@@ -56,9 +55,9 @@ /** | ||
function BuildSupertypeConfig(rootDir) { | ||
var rootConfig = new SupertypeConfig(); | ||
const rootConfig = new SupertypeConfig(); | ||
if (!rootDir) { | ||
throw new Error("Valid root path expected. rootDir[" + rootDir + "]"); | ||
throw new Error(`Valid root path expected. rootDir[${rootDir}]`); | ||
} | ||
else { | ||
var configStore = {}; | ||
var envName = rootConfig.internalConfigStore.get('APP_ENV'); | ||
const configStore = {}; | ||
let envName = rootConfig.internalConfigStore.get('APP_ENV'); | ||
if (envName) { | ||
@@ -68,9 +67,9 @@ envName = envName.toLowerCase(); | ||
if (envName) { | ||
loadConfigFile(rootConfig.internalConfigStore, 'root_env', rootDir, "config_" + envName + ".json"); | ||
loadConfigFile(rootConfig.internalConfigStore, 'root_env', rootDir, `config_${envName}.json`); | ||
} | ||
loadConfigFile(rootConfig.internalConfigStore, 'root_secure', rootDir, "config_secure.json"); | ||
loadConfigFile(rootConfig.internalConfigStore, 'root', rootDir, "config.json"); | ||
loadConfigFile(rootConfig.internalConfigStore, 'root_secure', rootDir, `config_secure.json`); | ||
loadConfigFile(rootConfig.internalConfigStore, 'root', rootDir, `config.json`); | ||
configStore['root'] = rootConfig; | ||
var appList = rootConfig.internalConfigStore.get('applications') || {}; | ||
for (var appKey in appList) { | ||
const appList = rootConfig.internalConfigStore.get('applications') || {}; | ||
for (let appKey in appList) { | ||
configStore[appKey] = buildAppSpecificConfigStore(appList[appKey], rootDir, envName); | ||
@@ -83,24 +82,24 @@ } | ||
function buildAppSpecificConfigStore(app, rootDir, envName) { | ||
var appPath = rootDir + "/" + app; // Location of the App relative to root | ||
var appCommonPath = rootDir + "/apps/common"; // Location of the common folder relative to root | ||
var config = new SupertypeConfig(); | ||
var appCfgApi = config.internalConfigStore; | ||
const appPath = `${rootDir}/${app}`; // Location of the App relative to root | ||
const appCommonPath = `${rootDir}/apps/common`; // Location of the common folder relative to root | ||
const config = new SupertypeConfig(); | ||
const appCfgApi = config.internalConfigStore; | ||
// Load the new app environment values into the config | ||
if (envName) { | ||
loadConfigFile(appCfgApi, 'app_env', appPath, "config_" + envName + ".json"); | ||
loadConfigFile(appCfgApi, 'app_env', appPath, `config_${envName}.json`); | ||
} | ||
loadConfigFile(appCfgApi, 'app_secure', appPath, "config_secure.json"); | ||
loadConfigFile(appCfgApi, 'app', appPath, "config.json"); | ||
loadConfigFile(appCfgApi, 'app_secure', appPath, `config_secure.json`); | ||
loadConfigFile(appCfgApi, 'app', appPath, `config.json`); | ||
// Load the common folder configs to this config provider | ||
if (envName) { | ||
loadConfigFile(appCfgApi, 'common_env', appCommonPath, "config_" + envName + ".json"); | ||
loadConfigFile(appCfgApi, 'common_env', appCommonPath, `config_${envName}.json`); | ||
} | ||
loadConfigFile(appCfgApi, 'common_secure', appCommonPath, "config_secure.json"); | ||
loadConfigFile(appCfgApi, 'common', appCommonPath, "config.json"); | ||
loadConfigFile(appCfgApi, 'common_secure', appCommonPath, `config_secure.json`); | ||
loadConfigFile(appCfgApi, 'common', appCommonPath, `config.json`); | ||
// Load the root values here too | ||
if (envName) { | ||
loadConfigFile(appCfgApi, 'root_env', rootDir, "config_" + envName + ".json"); | ||
loadConfigFile(appCfgApi, 'root_env', rootDir, `config_${envName}.json`); | ||
} | ||
loadConfigFile(appCfgApi, 'root_secure', rootDir, "config_secure.json"); | ||
loadConfigFile(appCfgApi, 'root', rootDir, "config.json"); | ||
loadConfigFile(appCfgApi, 'root_secure', rootDir, `config_secure.json`); | ||
loadConfigFile(appCfgApi, 'root', rootDir, `config.json`); | ||
return config; | ||
@@ -110,8 +109,8 @@ } | ||
try { | ||
config.file(name, appPath + "/" + fileName); | ||
config.file(name, `${appPath}/${fileName}`); | ||
} | ||
catch (err) { | ||
console.debug("Error loading " + appPath + "/" + fileName + " to config"); | ||
console.debug(`Error loading ${appPath}/${fileName} to config`); | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBK0I7QUFLL0IsU0FBUyxzQkFBc0I7SUFDM0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSDtJQUdJO1FBQ0ksSUFBSSxDQUFDLG1CQUFtQixHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNkJBQUcsR0FBSCxVQUFJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDZCQUFHLEdBQUgsVUFBSSxHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsa0NBQVEsR0FBUixVQUFTLE9BQU8sRUFBRSxJQUFJO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFBQSxDQUFDO0lBQ04sc0JBQUM7QUFBRCxDQUFDLEFBckNELElBcUNDO0FBckNZLDBDQUFlO0FBdUM1Qjs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFlO0lBQ2hELElBQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXFDLE9B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LElBQUksQ0FBQyxJQUFJLEVBQUssT0FBTyxTQUFJLFFBQVUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFpQixPQUFPLFNBQUksUUFBUSxlQUFZLENBQUMsQ0FBQztLQUNuRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBuY29uZiBmcm9tICduY29uZic7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICduY29uZic7XG5pbXBvcnQge0NvbmZpZywgQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXB9IGZyb20gJ0BoYXZlbnRlY2gvYW1vcnBoaWMtY29udHJhY3RzJztcblxuXG5mdW5jdGlvbiBjcmVhdGVOZXdOQ29uZlByb3ZpZGVyKCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IG5jb25mLlByb3ZpZGVyKCkuYXJndigpLmVudih7c2VwYXJhdG9yOiAnX18nfSk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRpbmcgbG9hZEZpbGUgZm9yIGp1c3QgJ2ZpbGUnXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGVDb25maWcgaW1wbGVtZW50cyBDb25maWcge1xuXG4gICAgaW50ZXJuYWxDb25maWdTdG9yZTogUHJvdmlkZXI7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZSA9IGNyZWF0ZU5ld05Db25mUHJvdmlkZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdmFsdWUgd2l0aCBhIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgd2l0aCBhIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsQ29uZmlnU3RvcmUuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgaW50byBzdG9yZVxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGVLZXlcbiAgICAgKiBAcGFyYW0gZmlsZVxuICAgICAqL1xuICAgIGxvYWRGaWxlKGZpbGVLZXksIGZpbGUpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ1N0b3JlLmZpbGUoZmlsZUtleSwgZmlsZSk7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBTYW1lIHR5cGUgYXMgdGhlIEFtb3JwaGljQ29uZmlnQnVpbGRlciBidWlsZCBmdW5jdGlvbiBhcyBzcGVjaWZpZWQgaW4gYW1vcnBoaWMtY29udHJhY3RzXG4gKiBAcGFyYW0gcm9vdERpclxuICovXG5leHBvcnQgZnVuY3Rpb24gQnVpbGRTdXBlcnR5cGVDb25maWcocm9vdERpcjogc3RyaW5nKTogQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXAge1xuICAgIGNvbnN0IHJvb3RDb25maWcgPSBuZXcgU3VwZXJ0eXBlQ29uZmlnKCk7XG4gICAgaWYgKCFyb290RGlyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsaWQgcm9vdCBwYXRoIGV4cGVjdGVkLiByb290RGlyWyR7cm9vdERpcn1dYCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjb25maWdTdG9yZTogQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXAgPSB7fTtcbiAgICAgICAgbGV0IGVudk5hbWUgPSByb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUuZ2V0KCdBUFBfRU5WJyk7XG5cbiAgICAgICAgaWYgKGVudk5hbWUpIHtcbiAgICAgICAgICAgIGVudk5hbWUgPSBlbnZOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW52TmFtZSkge1xuICAgICAgICAgICAgbG9hZENvbmZpZ0ZpbGUocm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLCAncm9vdF9lbnYnLCByb290RGlyLCBgY29uZmlnXyR7ZW52TmFtZX0uanNvbmApO1xuICAgICAgICB9XG4gICAgICAgIGxvYWRDb25maWdGaWxlKHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZSwgJ3Jvb3Rfc2VjdXJlJywgcm9vdERpciwgYGNvbmZpZ19zZWN1cmUuanNvbmApO1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShyb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUsICdyb290Jywgcm9vdERpciwgYGNvbmZpZy5qc29uYCk7XG5cblxuICAgICAgICBjb25maWdTdG9yZVsncm9vdCddID0gcm9vdENvbmZpZztcblxuICAgICAgICBjb25zdCBhcHBMaXN0ID0gcm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLmdldCgnYXBwbGljYXRpb25zJykgfHwge307XG5cbiAgICAgICAgZm9yIChsZXQgYXBwS2V5IGluIGFwcExpc3QpIHtcbiAgICAgICAgICAgIGNvbmZpZ1N0b3JlW2FwcEtleV0gPSBidWlsZEFwcFNwZWNpZmljQ29uZmlnU3RvcmUoYXBwTGlzdFthcHBLZXldLCByb290RGlyLCBlbnZOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWdTdG9yZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXBwU3BlY2lmaWNDb25maWdTdG9yZShhcHA6IHN0cmluZywgcm9vdERpcjogc3RyaW5nLCBlbnZOYW1lPzogc3RyaW5nKTogU3VwZXJ0eXBlQ29uZmlnIHtcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7cm9vdERpcn0vJHthcHB9YDsgLy8gTG9jYXRpb24gb2YgdGhlIEFwcCByZWxhdGl2ZSB0byByb290XG4gICAgY29uc3QgYXBwQ29tbW9uUGF0aCA9IGAke3Jvb3REaXJ9L2FwcHMvY29tbW9uYDsgLy8gTG9jYXRpb24gb2YgdGhlIGNvbW1vbiBmb2xkZXIgcmVsYXRpdmUgdG8gcm9vdFxuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IFN1cGVydHlwZUNvbmZpZygpO1xuICAgIGNvbnN0IGFwcENmZ0FwaSA9IGNvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlO1xuXG4gICAgLy8gTG9hZCB0aGUgbmV3IGFwcCBlbnZpcm9ubWVudCB2YWx1ZXMgaW50byB0aGUgY29uZmlnXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdhcHBfZW52JywgYXBwUGF0aCwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICB9XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnYXBwX3NlY3VyZScsIGFwcFBhdGgsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdhcHAnLCBhcHBQYXRoLCBgY29uZmlnLmpzb25gKTtcblxuXG4gICAgLy8gTG9hZCB0aGUgY29tbW9uIGZvbGRlciBjb25maWdzIHRvIHRoaXMgY29uZmlnIHByb3ZpZGVyXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdjb21tb25fZW52JywgYXBwQ29tbW9uUGF0aCwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICB9XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnY29tbW9uX3NlY3VyZScsIGFwcENvbW1vblBhdGgsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdjb21tb24nLCBhcHBDb21tb25QYXRoLCBgY29uZmlnLmpzb25gKTtcblxuICAgIC8vIExvYWQgdGhlIHJvb3QgdmFsdWVzIGhlcmUgdG9vXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdyb290X2VudicsIHJvb3REaXIsIGBjb25maWdfJHtlbnZOYW1lfS5qc29uYCk7XG4gICAgfVxuXG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAncm9vdF9zZWN1cmUnLCByb290RGlyLCBgY29uZmlnX3NlY3VyZS5qc29uYCk7XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAncm9vdCcsIHJvb3REaXIsIGBjb25maWcuanNvbmApO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbn1cblxuXG5mdW5jdGlvbiBsb2FkQ29uZmlnRmlsZShjb25maWc6IG5jb25mLlByb3ZpZGVyLCBuYW1lOiBzdHJpbmcsIGFwcFBhdGg6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbmZpZy5maWxlKG5hbWUsIGAke2FwcFBhdGh9LyR7ZmlsZU5hbWV9YCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgRXJyb3IgbG9hZGluZyAke2FwcFBhdGh9LyR7ZmlsZU5hbWV9IHRvIGNvbmZpZ2ApO1xuICAgIH1cbn0iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFLL0IsU0FBUyxzQkFBc0I7SUFDM0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFHeEI7UUFDSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUk7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUFBLENBQUM7Q0FDTDtBQXJDRCwwQ0FxQ0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFlO0lBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDcEU7U0FDSTtRQUNELE1B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QUFHLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixPQUFPLElBQUksUUFBUSxZQUFZLENBQUMsQ0FBQztLQUNuRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBuY29uZiBmcm9tICduY29uZic7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICduY29uZic7XG5pbXBvcnQge0NvbmZpZywgQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXB9IGZyb20gJ0BoYXZlbnRlY2gvYW1vcnBoaWMtY29udHJhY3RzJztcblxuXG5mdW5jdGlvbiBjcmVhdGVOZXdOQ29uZlByb3ZpZGVyKCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IG5jb25mLlByb3ZpZGVyKCkuYXJndigpLmVudih7c2VwYXJhdG9yOiAnX18nfSk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRpbmcgbG9hZEZpbGUgZm9yIGp1c3QgJ2ZpbGUnXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGVDb25maWcgaW1wbGVtZW50cyBDb25maWcge1xuXG4gICAgaW50ZXJuYWxDb25maWdTdG9yZTogUHJvdmlkZXI7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZSA9IGNyZWF0ZU5ld05Db25mUHJvdmlkZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdmFsdWUgd2l0aCBhIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxDb25maWdTdG9yZS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdmFsdWUgd2l0aCBhIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsQ29uZmlnU3RvcmUuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgaW50byBzdG9yZVxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGVLZXlcbiAgICAgKiBAcGFyYW0gZmlsZVxuICAgICAqL1xuICAgIGxvYWRGaWxlKGZpbGVLZXksIGZpbGUpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ1N0b3JlLmZpbGUoZmlsZUtleSwgZmlsZSk7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBTYW1lIHR5cGUgYXMgdGhlIEFtb3JwaGljQ29uZmlnQnVpbGRlciBidWlsZCBmdW5jdGlvbiBhcyBzcGVjaWZpZWQgaW4gYW1vcnBoaWMtY29udHJhY3RzXG4gKiBAcGFyYW0gcm9vdERpclxuICovXG5leHBvcnQgZnVuY3Rpb24gQnVpbGRTdXBlcnR5cGVDb25maWcocm9vdERpcjogc3RyaW5nKTogQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXAge1xuICAgIGNvbnN0IHJvb3RDb25maWcgPSBuZXcgU3VwZXJ0eXBlQ29uZmlnKCk7XG4gICAgaWYgKCFyb290RGlyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsaWQgcm9vdCBwYXRoIGV4cGVjdGVkLiByb290RGlyWyR7cm9vdERpcn1dYCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjb25maWdTdG9yZTogQXBwbGljYXRpb25OYW1lVG9Db25maWdNYXAgPSB7fTtcbiAgICAgICAgbGV0IGVudk5hbWUgPSByb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUuZ2V0KCdBUFBfRU5WJyk7XG5cbiAgICAgICAgaWYgKGVudk5hbWUpIHtcbiAgICAgICAgICAgIGVudk5hbWUgPSBlbnZOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW52TmFtZSkge1xuICAgICAgICAgICAgbG9hZENvbmZpZ0ZpbGUocm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLCAncm9vdF9lbnYnLCByb290RGlyLCBgY29uZmlnXyR7ZW52TmFtZX0uanNvbmApO1xuICAgICAgICB9XG4gICAgICAgIGxvYWRDb25maWdGaWxlKHJvb3RDb25maWcuaW50ZXJuYWxDb25maWdTdG9yZSwgJ3Jvb3Rfc2VjdXJlJywgcm9vdERpciwgYGNvbmZpZ19zZWN1cmUuanNvbmApO1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShyb290Q29uZmlnLmludGVybmFsQ29uZmlnU3RvcmUsICdyb290Jywgcm9vdERpciwgYGNvbmZpZy5qc29uYCk7XG5cblxuICAgICAgICBjb25maWdTdG9yZVsncm9vdCddID0gcm9vdENvbmZpZztcblxuICAgICAgICBjb25zdCBhcHBMaXN0ID0gcm9vdENvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlLmdldCgnYXBwbGljYXRpb25zJykgfHwge307XG5cbiAgICAgICAgZm9yIChsZXQgYXBwS2V5IGluIGFwcExpc3QpIHtcbiAgICAgICAgICAgIGNvbmZpZ1N0b3JlW2FwcEtleV0gPSBidWlsZEFwcFNwZWNpZmljQ29uZmlnU3RvcmUoYXBwTGlzdFthcHBLZXldLCByb290RGlyLCBlbnZOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWdTdG9yZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXBwU3BlY2lmaWNDb25maWdTdG9yZShhcHA6IHN0cmluZywgcm9vdERpcjogc3RyaW5nLCBlbnZOYW1lPzogc3RyaW5nKTogU3VwZXJ0eXBlQ29uZmlnIHtcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7cm9vdERpcn0vJHthcHB9YDsgLy8gTG9jYXRpb24gb2YgdGhlIEFwcCByZWxhdGl2ZSB0byByb290XG4gICAgY29uc3QgYXBwQ29tbW9uUGF0aCA9IGAke3Jvb3REaXJ9L2FwcHMvY29tbW9uYDsgLy8gTG9jYXRpb24gb2YgdGhlIGNvbW1vbiBmb2xkZXIgcmVsYXRpdmUgdG8gcm9vdFxuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IFN1cGVydHlwZUNvbmZpZygpO1xuICAgIGNvbnN0IGFwcENmZ0FwaSA9IGNvbmZpZy5pbnRlcm5hbENvbmZpZ1N0b3JlO1xuXG4gICAgLy8gTG9hZCB0aGUgbmV3IGFwcCBlbnZpcm9ubWVudCB2YWx1ZXMgaW50byB0aGUgY29uZmlnXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdhcHBfZW52JywgYXBwUGF0aCwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICB9XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnYXBwX3NlY3VyZScsIGFwcFBhdGgsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdhcHAnLCBhcHBQYXRoLCBgY29uZmlnLmpzb25gKTtcblxuXG4gICAgLy8gTG9hZCB0aGUgY29tbW9uIGZvbGRlciBjb25maWdzIHRvIHRoaXMgY29uZmlnIHByb3ZpZGVyXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdjb21tb25fZW52JywgYXBwQ29tbW9uUGF0aCwgYGNvbmZpZ18ke2Vudk5hbWV9Lmpzb25gKTtcbiAgICB9XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAnY29tbW9uX3NlY3VyZScsIGFwcENvbW1vblBhdGgsIGBjb25maWdfc2VjdXJlLmpzb25gKTtcbiAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdjb21tb24nLCBhcHBDb21tb25QYXRoLCBgY29uZmlnLmpzb25gKTtcblxuICAgIC8vIExvYWQgdGhlIHJvb3QgdmFsdWVzIGhlcmUgdG9vXG4gICAgaWYoZW52TmFtZSkge1xuICAgICAgICBsb2FkQ29uZmlnRmlsZShhcHBDZmdBcGksICdyb290X2VudicsIHJvb3REaXIsIGBjb25maWdfJHtlbnZOYW1lfS5qc29uYCk7XG4gICAgfVxuXG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAncm9vdF9zZWN1cmUnLCByb290RGlyLCBgY29uZmlnX3NlY3VyZS5qc29uYCk7XG4gICAgbG9hZENvbmZpZ0ZpbGUoYXBwQ2ZnQXBpLCAncm9vdCcsIHJvb3REaXIsIGBjb25maWcuanNvbmApO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbn1cblxuXG5mdW5jdGlvbiBsb2FkQ29uZmlnRmlsZShjb25maWc6IG5jb25mLlByb3ZpZGVyLCBuYW1lOiBzdHJpbmcsIGFwcFBhdGg6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbmZpZy5maWxlKG5hbWUsIGAke2FwcFBhdGh9LyR7ZmlsZU5hbWV9YCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgRXJyb3IgbG9hZGluZyAke2FwcFBhdGh9LyR7ZmlsZU5hbWV9IHRvIGNvbmZpZ2ApO1xuICAgIH1cbn0iXX0= |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
var __spreadArrays = (this && this.__spreadArrays) || function () { | ||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; | ||
for (var r = Array(s), k = 0, i = 0; i < il; i++) | ||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) | ||
r[k] = a[j]; | ||
return r; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.SupertypeLogger = void 0; | ||
var levelToStr = { 60: 'fatal', 50: 'error', 40: 'warn', 30: 'info', 20: 'debug', 10: 'trace' }; | ||
var strToLevel = { 'fatal': 60, 'error': 50, 'warn': 40, 'info': 30, 'debug': 20, 'trace': 10 }; | ||
var SupertypeLogger = /** @class */ (function () { | ||
const levelToStr = { 60: 'fatal', 50: 'error', 40: 'warn', 30: 'info', 20: 'debug', 10: 'trace' }; | ||
const strToLevel = { 'fatal': 60, 'error': 50, 'warn': 40, 'info': 30, 'debug': 20, 'trace': 10 }; | ||
class SupertypeLogger { | ||
// for overriding | ||
// sendToLog: Function; | ||
// formatDateTime: Function; | ||
function SupertypeLogger() { | ||
constructor() { | ||
this._amorphicContext = '__amorphicContext'; | ||
@@ -34,51 +16,23 @@ this.context = {}; | ||
} | ||
SupertypeLogger.prototype.fatal = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([60], data)); | ||
}; | ||
SupertypeLogger.prototype.error = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([50], data)); | ||
}; | ||
SupertypeLogger.prototype.warn = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([40], data)); | ||
}; | ||
SupertypeLogger.prototype.info = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([30], data)); | ||
}; | ||
SupertypeLogger.prototype.debug = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([20], data)); | ||
}; | ||
SupertypeLogger.prototype.trace = function () { | ||
var data = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
data[_i] = arguments[_i]; | ||
} | ||
this.log.apply(this, __spreadArrays([10], data)); | ||
}; | ||
Object.defineProperty(SupertypeLogger.prototype, "clientLogger", { | ||
get: function () { | ||
return this._clientLogger; | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
fatal(...data) { | ||
this.log(60, ...data); | ||
} | ||
error(...data) { | ||
this.log(50, ...data); | ||
} | ||
warn(...data) { | ||
this.log(40, ...data); | ||
} | ||
info(...data) { | ||
this.log(30, ...data); | ||
} | ||
debug(...data) { | ||
this.log(20, ...data); | ||
} | ||
trace(...data) { | ||
this.log(10, ...data); | ||
} | ||
get clientLogger() { | ||
return this._clientLogger; | ||
} | ||
/** | ||
@@ -88,3 +42,3 @@ * assign a custom send to log functionality. | ||
*/ | ||
SupertypeLogger.prototype.setLogger = function (logger) { | ||
setLogger(logger) { | ||
if (typeof logger.info !== 'function' || | ||
@@ -105,12 +59,8 @@ typeof logger.error !== 'function' || | ||
this._clientLogger = logger; | ||
}; | ||
} | ||
// Log all arguments assuming the first one is level and the second one might be an object (similar to banyan) | ||
SupertypeLogger.prototype.log = function (level) { | ||
var args = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
args[_i - 1] = arguments[_i]; | ||
} | ||
var properties = args && Array.isArray(args) ? args.slice() : args; | ||
log(level, ...args) { | ||
const properties = args && Array.isArray(args) ? args.slice() : args; | ||
if (typeof properties[0] === 'object') { | ||
var logObj = properties[0]; | ||
let logObj = properties[0]; | ||
if (!logObj.data) { | ||
@@ -128,3 +78,3 @@ logObj.data = {}; | ||
if (this.isEnabled(levelToStr[logObj['level']], logObj)) { | ||
this.sendToLog.apply(this, __spreadArrays([levelToStr[logObj['level']], logObj], properties.slice(1))); | ||
this.sendToLog(levelToStr[logObj['level']], logObj, ...properties.slice(1)); | ||
} | ||
@@ -138,7 +88,7 @@ return; | ||
return; | ||
}; | ||
} | ||
//This method extracts sessionId from the each request's context | ||
// and places it in the context.sessionId. All other context properties are | ||
// placed in context.data object. | ||
SupertypeLogger.prototype.setLogsAmorphicContext = function (context, request) { | ||
setLogsAmorphicContext(context, request) { | ||
if (this.context && Object.keys(this.context).length > 0) { | ||
@@ -149,8 +99,8 @@ if (!context.data) { | ||
if (typeof context.data === 'object') { | ||
var sessionId = this.context.session; | ||
const sessionId = this.context.session; | ||
if (!context.sessionId && sessionId) { | ||
context.sessionId = sessionId; | ||
} | ||
context.data[this._amorphicContext] = __assign({}, this.context); | ||
var amorphicContextObjectExists = context.data[this._amorphicContext] && | ||
context.data[this._amorphicContext] = { ...this.context }; | ||
const amorphicContextObjectExists = context.data[this._amorphicContext] && | ||
Object.keys(context.data[this._amorphicContext]) && | ||
@@ -167,13 +117,13 @@ Object.keys(context.data[this._amorphicContext]).length > 0; | ||
} | ||
}; | ||
SupertypeLogger.prototype.getAmorphicContext = function () { | ||
return { __amorphicContext: __assign({}, this.context) }; | ||
}; | ||
SupertypeLogger.prototype.startContext = function (context) { | ||
} | ||
getAmorphicContext() { | ||
return { __amorphicContext: { ...this.context } }; | ||
} | ||
startContext(context) { | ||
this.context = context; | ||
}; | ||
} | ||
// Save the properties in the context and return a new object that has the properties only so they can be cleared | ||
SupertypeLogger.prototype.setContextProps = function (context) { | ||
var reverse = {}; | ||
for (var prop in context) { | ||
setContextProps(context) { | ||
const reverse = {}; | ||
for (const prop in context) { | ||
reverse[prop] = true; | ||
@@ -183,5 +133,5 @@ this.context[prop] = context[prop]; | ||
return reverse; | ||
}; | ||
} | ||
// Parse log levels such as warn.activity | ||
SupertypeLogger.prototype.setLevel = function (level) { | ||
setLevel(level) { | ||
var levels = level.split(';'); | ||
@@ -203,21 +153,18 @@ for (var ix = 0; ix < levels.length; ++ix) { | ||
} | ||
}; | ||
} | ||
// Remove any properties recorded by setContext | ||
SupertypeLogger.prototype.clearContextProps = function (contextToClear) { | ||
for (var prop in contextToClear) { | ||
clearContextProps(contextToClear) { | ||
for (const prop in contextToClear) { | ||
delete this.context[prop]; | ||
} | ||
}; | ||
} | ||
// Create a new logger and copy over it's context | ||
SupertypeLogger.prototype.createChildLogger = function (context, rootValues, dataValues) { | ||
var child = {}; | ||
for (var prop in this) { | ||
child[prop] = this[prop]; | ||
} | ||
createChildLogger(context, rootValues, dataValues) { | ||
let child = Object.assign(Object.create(Object.getPrototypeOf(this)), this); | ||
child.context = context || {}; | ||
for (var proper in this.context) { | ||
for (let proper in this.context) { | ||
child.context[proper] = this.context[proper]; | ||
} | ||
if (this._clientLogger) { | ||
var childLogger = void 0; | ||
let childLogger; | ||
if (this._clientLogger.childLogger === 'function') { | ||
@@ -228,3 +175,3 @@ childLogger = this._clientLogger.childLogger(rootValues, dataValues); | ||
else if (this._clientLogger.child === 'function') { | ||
childLogger = this._clientLogger.child(__assign(__assign({}, rootValues), { data: { dataValues: dataValues } })); | ||
childLogger = this._clientLogger.child({ ...rootValues, data: { dataValues } }); | ||
child = childLogger; | ||
@@ -234,4 +181,4 @@ } | ||
return child; // bad practice but should fix | ||
}; | ||
SupertypeLogger.prototype.formatDateTime = function (date) { | ||
} | ||
formatDateTime(date) { | ||
return f(2, (date.getMonth() + 1), '/') + f(2, date.getDate(), '/') + f(4, date.getFullYear(), ' ') + | ||
@@ -246,6 +193,6 @@ f(2, date.getHours(), ':') + f(2, date.getMinutes(), ':') + f(2, date.getSeconds(), ':') + | ||
} | ||
}; | ||
SupertypeLogger.prototype.deleteEmptyLogProperties = function (logObject) { | ||
var keys = ['context', 'data']; | ||
keys.forEach(function (key) { | ||
} | ||
deleteEmptyLogProperties(logObject) { | ||
const keys = ['context', 'data']; | ||
keys.forEach((key) => { | ||
if (logObject[key] && Object.keys(logObject[key]).length < 1) { | ||
@@ -255,3 +202,3 @@ delete logObject[key]; | ||
}); | ||
}; | ||
} | ||
/** | ||
@@ -264,26 +211,21 @@ * this function is designed to be replaced by the consumer of this class. | ||
*/ | ||
SupertypeLogger.prototype.sendToLog = function (logLevel, logObject) { | ||
var _a, _b, _c, _d; | ||
var rawLogData = []; | ||
for (var _i = 2; _i < arguments.length; _i++) { | ||
rawLogData[_i - 2] = arguments[_i]; | ||
} | ||
var functionName = this.sendToLog.name; | ||
sendToLog(logLevel, logObject, ...rawLogData) { | ||
const functionName = this.sendToLog.name; | ||
this.deleteEmptyLogProperties(logObject); | ||
if (this._clientLogger) { | ||
var levelForLog = typeof logLevel === 'string' ? strToLevel[logLevel] : logLevel; | ||
let levelForLog = typeof logLevel === 'string' ? strToLevel[logLevel] : logLevel; | ||
switch (levelForLog) { | ||
case 10: | ||
case 20: | ||
(_a = this._clientLogger).debug.apply(_a, __spreadArrays([logObject], rawLogData)); | ||
this._clientLogger.debug(logObject, ...rawLogData); | ||
return; | ||
case 30: | ||
(_b = this._clientLogger).info.apply(_b, __spreadArrays([logObject], rawLogData)); | ||
this._clientLogger.info(logObject, ...rawLogData); | ||
return; | ||
case 40: | ||
(_c = this._clientLogger).warn.apply(_c, __spreadArrays([logObject], rawLogData)); | ||
this._clientLogger.warn(logObject, ...rawLogData); | ||
return; | ||
case 60: | ||
case 50: | ||
(_d = this._clientLogger).error.apply(_d, __spreadArrays([logObject], rawLogData)); | ||
this._clientLogger.error(logObject, ...rawLogData); | ||
return; | ||
@@ -305,5 +247,5 @@ default: | ||
console.log(this.prettyPrint(logLevel, logObject)); // eslint-disable-line no-console | ||
}; | ||
SupertypeLogger.prototype.prettyPrint = function (level, json) { | ||
var split = this.split(json, { time: 1, msg: 1, level: 1, name: 1 }); | ||
} | ||
prettyPrint(level, json) { | ||
let split = this.split(json, { time: 1, msg: 1, level: 1, name: 1 }); | ||
return this.formatDateTime(json.time ? new Date(json.time) : new Date()) + ': ' + | ||
@@ -332,13 +274,13 @@ level.toUpperCase() + ': ' + | ||
} | ||
}; | ||
SupertypeLogger.prototype.split = function (json, props) { | ||
var a = {}; | ||
var b = {}; | ||
for (var prop in json) { | ||
} | ||
split(json, props) { | ||
const a = {}; | ||
const b = {}; | ||
for (const prop in json) { | ||
(props[prop] ? b : a)[prop] = json[prop]; | ||
} | ||
return [a, b]; | ||
}; | ||
} | ||
// Logging is enabled if either the level threshold is met or the granular level matches | ||
SupertypeLogger.prototype.isEnabled = function (level, obj) { | ||
isEnabled(level, obj) { | ||
level = strToLevel[level]; | ||
@@ -349,3 +291,3 @@ if (level >= strToLevel[this.level]) { | ||
if (this.granularLevels) { | ||
for (var levelr in this.granularLevels) { | ||
for (let levelr in this.granularLevels) { | ||
if (obj[levelr] && obj[levelr] == this.granularLevels[levelr]) { | ||
@@ -356,7 +298,6 @@ return true; | ||
} | ||
}; | ||
SupertypeLogger.moduleName = SupertypeLogger.name; | ||
return SupertypeLogger; | ||
}()); | ||
} | ||
} | ||
exports.SupertypeLogger = SupertypeLogger; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZUxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDbEcsSUFBTSxVQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRWxHO0lBUUksaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFFNUI7UUFWUSxxQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztRQVczQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBR0QsK0JBQUssR0FBTDtRQUFNLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQseUJBQWM7O1FBQ2hCLElBQUksQ0FBQyxHQUFHLE9BQVIsSUFBSSxrQkFBSyxFQUFFLEdBQUssSUFBSSxHQUFFO0lBQzFCLENBQUM7SUFFRCwrQkFBSyxHQUFMO1FBQU0sY0FBYzthQUFkLFVBQWMsRUFBZCxxQkFBYyxFQUFkLElBQWM7WUFBZCx5QkFBYzs7UUFDaEIsSUFBSSxDQUFDLEdBQUcsT0FBUixJQUFJLGtCQUFLLEVBQUUsR0FBSyxJQUFJLEdB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QUM7SUFDbEIsQ0FBQztJQUVELHdGQUF3RjtJQUNoRixtQ0FBUyxHQUFqQixVQUFrQixLQUFLLEVBQUUsR0FBRztRQUN4QixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksS0FBSyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixLQUFLLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUMzRCxPQUFPLElBQUksQ0FBQztpQkFDZjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBOVVNLDBCQUFVLEdBQVcsZUFBZSxDQUFDLElBQUksQ0FBQztJQStVckQsc0JBQUM7Q0FBQSxBQWhWRCxJQWdWQztBQWhWWSwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGxldmVsVG9TdHIgPSB7IDYwOiAnZmF0YWwnLCA1MDogJ2Vycm9yJywgNDA6ICd3YXJuJywgMzA6ICdpbmZvJywgMjA6ICdkZWJ1ZycsIDEwOiAndHJhY2UnIH07XG5jb25zdCBzdHJUb0xldmVsID0geyAnZmF0YWwnOiA2MCwgJ2Vycm9yJzogNTAsICd3YXJuJzogNDAsICdpbmZvJzogMzAsICdkZWJ1Zyc6IDIwLCAndHJhY2UnOiAxMCB9O1xuXG5leHBvcnQgY2xhc3MgU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICBzdGF0aWMgbW9kdWxlTmFtZTogc3RyaW5nID0gU3VwZXJ0eXBlTG9nZ2VyLm5hbWU7XG4gICAgcHJpdmF0ZSBfYW1vcnBoaWNDb250ZXh0ID0gJ19fYW1vcnBoaWNDb250ZXh0JztcbiAgICBjb250ZXh0OiBhbnk7XG4gICAgZ3JhbnVsYXJMZXZlbHM6IGFueTtcbiAgICBsZXZlbDogYW55O1xuICAgIHByaXZhdGUgX2NsaWVudExvZ2dlcjogYW55O1xuXG4gICAgLy8gZm9yIG92ZXJyaWRpbmdcbiAgICAvLyBzZW5kVG9Mb2c6IEZ1bmN0aW9uO1xuICAgIC8vIGZvcm1hdERhdGVUaW1lOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbnRleHQgPSB7fTtcbiAgICAgICAgdGhpcy5ncmFudWxhckxldmVscyA9IHt9O1xuICAgICAgICB0aGlzLmxldmVsID0gJ2luZm8nO1xuICAgIH1cblxuXG4gICAgZmF0YWwoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coNjAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGVycm9yKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDUwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICB3YXJuKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDQwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBpbmZvKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDMwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBkZWJ1ZyguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZygyMCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgdHJhY2UoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coMTAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGdldCBjbGllbnRMb2dnZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGllbnRMb2dnZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYXNzaWduIGEgY3VzdG9tIHNlbmQgdG8gbG9nIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQHBhcmFtIGxvZ2dlciAtIGxvZ2dlciBtdXN0IGZpdCB0aGUgZm9ybWF0IG9mIGluZm8vZXJyb3IvZGVidWcvd2FyblxuICAgICAqL1xuICAgIHNldExvZ2dlcihsb2dnZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuaW5mbyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5lcnJvciAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5kZWJ1ZyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci53YXJuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBzcGVjaWZ5IGEgbG9nZ2VyIHdpdGggdGhlIGluZm8sIGVycm9yLCBkZWJ1ZywgYW5kIHdhcm4gZnVuY3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGRMb2dnZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZExvZ2dlcih7ZXJyb3I6IHtpc0h1bWFuUmVsYXRlZDogZmFsc2V9fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlcjtcbiAgICB9XG5cbiAgICAvLyBMb2cgYWxsIGFyZ3VtZW50cyBhc3N1bWluZyB0aGUgZmlyc3Qgb25lIGlzIGxldmVsIGFuZCB0aGUgc2Vjb25kIG9uZSBtaWdodCBiZSBhbiBvYmplY3QgKHNpbWlsYXIgdG8gYmFueWFuKVxuICAgIHByaXZhdGUgbG9nKGxldmVsOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IGFueVtdID0gYXJncyAmJiBBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncy5zbGljZSgpIDogYXJncztcblxuICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXNbMF0gPT09ICdvYmplY3QnKSAge1xuICAgICAgICAgICAgbGV0IGxvZ09iaiA9IHByb3BlcnRpZXNbMF07XG4gICAgICAgICAgICBpZiAoIWxvZ09iai5kYXRhKSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLmRhdGEgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbG9nT2JqLmNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBsb2dPYmouY29udGV4dCA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWxvZ09iai5yZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLnJlcXVlc3QgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRMb2dzQW1vcnBoaWNDb250ZXh0KGxvZ09iai5jb250ZXh0LCBsb2dPYmoucmVxdWVzdCk7XG5cbiAgICAgICAgICAgIGxvZ09ialsnbGV2ZWwnXSA9IGxldmVsO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZFRvTG9nKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqLCAuLi5wcm9wZXJ0aWVzLnNsaWNlKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BlcnRpZXNbJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbcHJvcGVydGllc1snbGV2ZWwnXV0sIHByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRUb0xvZyhsZXZlbFRvU3RyW3Byb3BlcnRpZXNbJ2xldmVsJ11dLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9UaGlzIG1ldGhvZCBleHRyYWN0cyBzZXNzaW9uSWQgZnJvbSB0aGUgZWFjaCByZXF1ZXN0J3MgY29udGV4dCBcbiAgICAvLyBhbmQgcGxhY2VzIGl0IGluIHRoZSBjb250ZXh0LnNlc3Npb25JZC4gQWxsIG90aGVyIGNvbnRleHQgcHJvcGVydGllcyBhcmUgXG4gICAgLy8gcGxhY2VkIGluIGNvbnRleHQuZGF0YSBvYmplY3QuXG4gICAgcHJpdmF0ZSBzZXRMb2dzQW1vcnBoaWNDb250ZXh0KGNvbnRleHQ6IGFueSwgcmVxdWVzdDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgT2JqZWN0LmtleXModGhpcy5jb250ZXh0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQuZGF0YSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0LmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5jb250ZXh0LnNlc3Npb247XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZXh0LnNlc3Npb25JZCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0gPSB7IC4uLnRoaXMuY29udGV4dCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyA9IGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdICYmXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdKSAmJlxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XSkubGVuZ3RoID4gMDtcblxuICAgICAgICAgICAgICAgIGlmIChhbW9ycGhpY0NvbnRleHRPYmplY3RFeGlzdHMgJiYgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyAmJiBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jbGllbnRJcEFkZHJlc3MgPSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QW1vcnBoaWNDb250ZXh0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7IF9fYW1vcnBoaWNDb250ZXh0OiB7IC4uLnRoaXMuY29udGV4dCB9IH07XG4gICAgfVxuXG4gICAgc3RhcnRDb250ZXh0KGNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG5cbiAgICAvLyBTYXZlIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBjb250ZXh0IGFuZCByZXR1cm4gYSBuZXcgb2JqZWN0IHRoYXQgaGFzIHRoZSBwcm9wZXJ0aWVzIG9ubHkgc28gdGhleSBjYW4gYmUgY2xlYXJlZFxuICAgIHNldENvbnRleHRQcm9wcyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJldmVyc2UgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dCkge1xuICAgICAgICAgICAgcmV2ZXJzZVtwcm9wXSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRbcHJvcF0gPSBjb250ZXh0W3Byb3BdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldmVyc2U7XG4gICAgfVxuICAgIC8vIFBhcnNlIGxvZyBsZXZlbHMgc3VjaCBhcyB3YXJuLmFjdGl2aXR5XG4gICAgc2V0TGV2ZWwobGV2ZWwpIHtcbiAgICAgICAgdmFyIGxldmVscyA9IGxldmVsLnNwbGl0KCc7Jyk7XG5cbiAgICAgICAgZm9yICh2YXIgaXggPSAwOyBpeCA8IGxldmVscy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgIHZhciBsZXZlbGEgPSBsZXZlbHNbaXhdO1xuXG4gICAgICAgICAgICBpZiAobGV2ZWxhLm1hdGNoKC86LykpIHtcbiAgICAgICAgICAgICAgICBpZiAobGV2ZWxzW2l4XS5tYXRjaCgvKC4qKTooLiopLykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdID0gdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW51bGFyTGV2ZWxzW1JlZ0V4cC4kMV0gPSBSZWdFeHAuJDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxzW2l4XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBwcm9wZXJ0aWVzIHJlY29yZGVkIGJ5IHNldENvbnRleHRcbiAgICBjbGVhckNvbnRleHRQcm9wcyhjb250ZXh0VG9DbGVhcikge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dFRvQ2xlYXIpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbnRleHRbcHJvcF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgbG9nZ2VyIGFuZCBjb3B5IG92ZXIgaXQncyBjb250ZXh0XG4gICAgY3JlYXRlQ2hpbGRMb2dnZXIoY29udGV4dCwgcm9vdFZhbHVlcz8sIGRhdGFWYWx1ZXM/KTogU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICAgICAgbGV0IGNoaWxkOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgICAgICAgZm9yIChsZXQgcHJvcCBpbiB0aGlzKSB7XG4gICAgICAgICAgICBjaGlsZFtwcm9wXSA9IHRoaXNbcHJvcF07XG4gICAgICAgIH1cblxuICAgICAgICBjaGlsZC5jb250ZXh0ID0gY29udGV4dCB8fCB7fTtcblxuICAgICAgICBmb3IgKGxldCBwcm9wZXIgaW4gdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICBjaGlsZC5jb250ZXh0W3Byb3Blcl0gPSB0aGlzLmNvbnRleHRbcHJvcGVyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRMb2dnZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkTG9nZ2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRMb2dnZXIgPSB0aGlzLl9jbGllbnRMb2dnZXIuY2hpbGRMb2dnZXIocm9vdFZhbHVlcywgZGF0YVZhbHVlcyk7XG4gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZExvZ2dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NsaWVudExvZ2dlci5jaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkTG9nZ2VyID0gdGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkKHsuLi5yb290VmFsdWVzLCBkYXRhOiB7ZGF0YVZhbHVlc319KTtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkTG9nZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkIGFzIFN1cGVydHlwZUxvZ2dlcjsgLy8gYmFkIHByYWN0aWNlIGJ1dCBzaG91bGQgZml4XG4gICAgfVxuXG4gICAgZm9ybWF0RGF0ZVRpbWUoZGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmKDIsIChkYXRlLmdldE1vbnRoKCkgKyAxKSwgJy8nKSArIGYoMiwgZGF0ZS5nZXREYXRlKCksICcvJykgKyBmKDQsIGRhdGUuZ2V0RnVsbFllYXIoKSwgJyAnKSArXG4gICAgICAgICAgICBmKDIsIGRhdGUuZ2V0SG91cnMoKSwgJzonKSArIGYoMiwgZGF0ZS5nZXRNaW51dGVzKCksICc6JykgKyBmKDIsIGRhdGUuZ2V0U2Vjb25kcygpLCAnOicpICtcbiAgICAgICAgICAgIGYoMywgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkgKyAnIEdNVCcgKyAoMCAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKTtcblxuICAgICAgICBmdW5jdGlvbiBmKHosIGQsIHM/KSB7XG4gICAgICAgICAgICB3aGlsZSAoU3RyaW5nKGQpLmxlbmd0aCA8IHopIHtcbiAgICAgICAgICAgICAgICBkID0gJzAnICsgZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGQgKyAocyB8fCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3Q6IGFueSkge1xuICAgICAgICBjb25zdCBrZXlzID0gWydjb250ZXh0JywgJ2RhdGEnXTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2dPYmplY3Rba2V5XSAmJiBPYmplY3Qua2V5cyhsb2dPYmplY3Rba2V5XSkubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2dPYmplY3Rba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIHJlcGxhY2VkIGJ5IHRoZSBjb25zdW1lciBvZiB0aGlzIGNsYXNzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvZ0xldmVsIC0gbG9nIGxldmVsXG4gICAgICogQHBhcmFtIGxvZ09iamVjdCAtIGZvcm1hdHRlZCBsb2cgb2JqZWN0LCBwYXNzZWQgaW4gZnJvbSBjb25zdW1lclxuICAgICAqIEBwYXJhbSByYXdMb2dEYXRhIC0gdW5mb3JtYXR0ZWQgYW5kIHVucHJvY2Vzc2VkIHZlcnNpb24gb2YgXCJsb2dPYmplY3RcIiBwYXJhbVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZW5kVG9Mb2cobG9nTGV2ZWwsIGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSkge1xuICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSB0aGlzLnNlbmRUb0xvZy5uYW1lO1xuICAgICAgICB0aGlzLmRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3QpO1xuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgbGV2ZWxGb3JMb2cgPSB0eXBlb2YgbG9nTGV2ZWwgPT09ICdzdHJpbmcnID8gc3RyVG9MZXZlbFtsb2dMZXZlbF0gOiBsb2dMZXZlbDtcbiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWxGb3JMb2cpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5kZWJ1Zyhsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xpZW50TG9nZ2VyLmluZm8obG9nT2JqZWN0LCAuLi5yYXdMb2dEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci53YXJuKGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcihsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGU6IFN1cGVydHlwZUxvZ2dlci5tb2R1bGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdpbnZhbGlkIGxldmVsIHVzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dPYmplY3Q6IGxvZ09iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucHJldHR5UHJpbnQobG9nTGV2ZWwsIGxvZ09iamVjdCkpOyAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuXG4gICAgcHJldHR5UHJpbnQobGV2ZWwsIGpzb24pIHtcbiAgICAgICAgbGV0IHNwbGl0ID0gdGhpcy5zcGxpdChqc29uLCB7dGltZTogMSwgbXNnOiAxLCBsZXZlbDogMSwgbmFtZTogMX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdERhdGVUaW1lKGpzb24udGltZSA/IG5ldyBEYXRlKGpzb24udGltZSkgOiBuZXcgRGF0ZSgpKSArICc6ICcgK1xuICAgICAgICAgICAgbGV2ZWwudG9VcHBlckNhc2UoKSArICc6ICcgK1xuICAgICAgICAgICAgYWRkQ29sb25JZlRva2VuKHNwbGl0WzFdLm5hbWUsICc6ICcpICtcbiAgICAgICAgICAgIGFkZENvbG9uSWZUb2tlbihzcGxpdFsxXS5tc2csICc6ICcpICtcbiAgICAgICAgICAgIHh5KHNwbGl0WzBdKTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRDb2xvbklmVG9rZW4gKHRva2VuLCBjb2xvbkFuZFNwYWNlKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gKyBjb2xvbkFuZFNwYWNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB4eShqKSB7XG4gICAgICAgICAgICB2YXIgc3RyID0gJyc7XG4gICAgICAgICAgICB2YXIgc2VwID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gaikge1xuICAgICAgICAgICAgICAgIHN0ciArPSBzZXAgKyBwcm9wICsgJz0nICsgSlNPTi5zdHJpbmdpZnkoaltwcm9wXSk7XG4gICAgICAgICAgICAgICAgc2VwID0gJyAnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJygnICsgc3RyICsgJyknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNwbGl0KGpzb24sIHByb3BzKTogYW55W10ge1xuICAgICAgICBjb25zdCBhID0ge307XG4gICAgICAgIGNvbnN0IGIgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4ganNvbikge1xuICAgICAgICAgICAgKHByb3BzW3Byb3BdID8gYiA6IGEpW3Byb3BdID0ganNvbltwcm9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbYSwgYl07XG4gICAgfVxuXG4gICAgLy8gTG9nZ2luZyBpcyBlbmFibGVkIGlmIGVpdGhlciB0aGUgbGV2ZWwgdGhyZXNob2xkIGlzIG1ldCBvciB0aGUgZ3JhbnVsYXIgbGV2ZWwgbWF0Y2hlc1xuICAgIHByaXZhdGUgaXNFbmFibGVkKGxldmVsLCBvYmopIHtcbiAgICAgICAgbGV2ZWwgPSBzdHJUb0xldmVsW2xldmVsXTtcblxuICAgICAgICBpZiAobGV2ZWwgPj0gc3RyVG9MZXZlbFt0aGlzLmxldmVsXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ncmFudWxhckxldmVscykge1xuICAgICAgICAgICAgZm9yIChsZXQgbGV2ZWxyIGluIHRoaXMuZ3JhbnVsYXJMZXZlbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqW2xldmVscl0gJiYgb2JqW2xldmVscl0gPT0gdGhpcy5ncmFudWxhckxldmVsc1tsZXZlbHJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0= | ||
SupertypeLogger.moduleName = SupertypeLogger.name; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZUxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDbEcsTUFBTSxVQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBRWxHLE1BQWEsZUFBZTtJQVF4QixpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUU1QjtRQVZRLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO1FBVzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLElBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsSUFBVztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFD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ZW50IjpbImNvbnN0IGxldmVsVG9TdHIgPSB7IDYwOiAnZmF0YWwnLCA1MDogJ2Vycm9yJywgNDA6ICd3YXJuJywgMzA6ICdpbmZvJywgMjA6ICdkZWJ1ZycsIDEwOiAndHJhY2UnIH07XG5jb25zdCBzdHJUb0xldmVsID0geyAnZmF0YWwnOiA2MCwgJ2Vycm9yJzogNTAsICd3YXJuJzogNDAsICdpbmZvJzogMzAsICdkZWJ1Zyc6IDIwLCAndHJhY2UnOiAxMCB9O1xuXG5leHBvcnQgY2xhc3MgU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICBzdGF0aWMgbW9kdWxlTmFtZTogc3RyaW5nID0gU3VwZXJ0eXBlTG9nZ2VyLm5hbWU7XG4gICAgcHJpdmF0ZSBfYW1vcnBoaWNDb250ZXh0ID0gJ19fYW1vcnBoaWNDb250ZXh0JztcbiAgICBjb250ZXh0OiBhbnk7XG4gICAgZ3JhbnVsYXJMZXZlbHM6IGFueTtcbiAgICBsZXZlbDogYW55O1xuICAgIHByaXZhdGUgX2NsaWVudExvZ2dlcjogYW55O1xuXG4gICAgLy8gZm9yIG92ZXJyaWRpbmdcbiAgICAvLyBzZW5kVG9Mb2c6IEZ1bmN0aW9uO1xuICAgIC8vIGZvcm1hdERhdGVUaW1lOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNvbnRleHQgPSB7fTtcbiAgICAgICAgdGhpcy5ncmFudWxhckxldmVscyA9IHt9O1xuICAgICAgICB0aGlzLmxldmVsID0gJ2luZm8nO1xuICAgIH1cblxuXG4gICAgZmF0YWwoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coNjAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGVycm9yKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDUwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICB3YXJuKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDQwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBpbmZvKC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9nKDMwLCAuLi5kYXRhKTtcbiAgICB9XG5cbiAgICBkZWJ1ZyguLi5kYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZygyMCwgLi4uZGF0YSk7XG4gICAgfVxuXG4gICAgdHJhY2UoLi4uZGF0YTogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2coMTAsIC4uLmRhdGEpO1xuICAgIH1cblxuICAgIGdldCBjbGllbnRMb2dnZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGllbnRMb2dnZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYXNzaWduIGEgY3VzdG9tIHNlbmQgdG8gbG9nIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQHBhcmFtIGxvZ2dlciAtIGxvZ2dlciBtdXN0IGZpdCB0aGUgZm9ybWF0IG9mIGluZm8vZXJyb3IvZGVidWcvd2FyblxuICAgICAqL1xuICAgIHNldExvZ2dlcihsb2dnZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuaW5mbyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5lcnJvciAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci5kZWJ1ZyAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGxvZ2dlci53YXJuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBzcGVjaWZ5IGEgbG9nZ2VyIHdpdGggdGhlIGluZm8sIGVycm9yLCBkZWJ1ZywgYW5kIHdhcm4gZnVuY3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGRMb2dnZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZExvZ2dlcih7ZXJyb3I6IHtpc0h1bWFuUmVsYXRlZDogZmFsc2V9fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsb2dnZXIuY2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlci5jaGlsZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NsaWVudExvZ2dlciA9IGxvZ2dlcjtcbiAgICB9XG5cbiAgICAvLyBMb2cgYWxsIGFyZ3VtZW50cyBhc3N1bWluZyB0aGUgZmlyc3Qgb25lIGlzIGxldmVsIGFuZCB0aGUgc2Vjb25kIG9uZSBtaWdodCBiZSBhbiBvYmplY3QgKHNpbWlsYXIgdG8gYmFueWFuKVxuICAgIHByaXZhdGUgbG9nKGxldmVsOiBudW1iZXIsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXM6IGFueVtdID0gYXJncyAmJiBBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncy5zbGljZSgpIDogYXJncztcblxuICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXNbMF0gPT09ICdvYmplY3QnKSAge1xuICAgICAgICAgICAgbGV0IGxvZ09iaiA9IHByb3BlcnRpZXNbMF07XG4gICAgICAgICAgICBpZiAoIWxvZ09iai5kYXRhKSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLmRhdGEgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbG9nT2JqLmNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBsb2dPYmouY29udGV4dCA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWxvZ09iai5yZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgbG9nT2JqLnJlcXVlc3QgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRMb2dzQW1vcnBoaWNDb250ZXh0KGxvZ09iai5jb250ZXh0LCBsb2dPYmoucmVxdWVzdCk7XG5cbiAgICAgICAgICAgIGxvZ09ialsnbGV2ZWwnXSA9IGxldmVsO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZFRvTG9nKGxldmVsVG9TdHJbbG9nT2JqWydsZXZlbCddXSwgbG9nT2JqLCAuLi5wcm9wZXJ0aWVzLnNsaWNlKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BlcnRpZXNbJ2xldmVsJ10gPSBsZXZlbDtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkKGxldmVsVG9TdHJbcHJvcGVydGllc1snbGV2ZWwnXV0sIHByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRUb0xvZyhsZXZlbFRvU3RyW3Byb3BlcnRpZXNbJ2xldmVsJ11dLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9UaGlzIG1ldGhvZCBleHRyYWN0cyBzZXNzaW9uSWQgZnJvbSB0aGUgZWFjaCByZXF1ZXN0J3MgY29udGV4dCBcbiAgICAvLyBhbmQgcGxhY2VzIGl0IGluIHRoZSBjb250ZXh0LnNlc3Npb25JZC4gQWxsIG90aGVyIGNvbnRleHQgcHJvcGVydGllcyBhcmUgXG4gICAgLy8gcGxhY2VkIGluIGNvbnRleHQuZGF0YSBvYmplY3QuXG4gICAgcHJpdmF0ZSBzZXRMb2dzQW1vcnBoaWNDb250ZXh0KGNvbnRleHQ6IGFueSwgcmVxdWVzdDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgT2JqZWN0LmtleXModGhpcy5jb250ZXh0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQuZGF0YSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0LmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5jb250ZXh0LnNlc3Npb247XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZXh0LnNlc3Npb25JZCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0gPSB7IC4uLnRoaXMuY29udGV4dCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyA9IGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdICYmXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbnRleHQuZGF0YVt0aGlzLl9hbW9ycGhpY0NvbnRleHRdKSAmJlxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XSkubGVuZ3RoID4gMDtcblxuICAgICAgICAgICAgICAgIGlmIChhbW9ycGhpY0NvbnRleHRPYmplY3RFeGlzdHMgJiYgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29udGV4dC5kYXRhW3RoaXMuX2Ftb3JwaGljQ29udGV4dF0uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFtb3JwaGljQ29udGV4dE9iamVjdEV4aXN0cyAmJiBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jbGllbnRJcEFkZHJlc3MgPSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjb250ZXh0LmRhdGFbdGhpcy5fYW1vcnBoaWNDb250ZXh0XS5pcGFkZHJlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QW1vcnBoaWNDb250ZXh0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7IF9fYW1vcnBoaWNDb250ZXh0OiB7IC4uLnRoaXMuY29udGV4dCB9IH07XG4gICAgfVxuXG4gICAgc3RhcnRDb250ZXh0KGNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG5cbiAgICAvLyBTYXZlIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBjb250ZXh0IGFuZCByZXR1cm4gYSBuZXcgb2JqZWN0IHRoYXQgaGFzIHRoZSBwcm9wZXJ0aWVzIG9ubHkgc28gdGhleSBjYW4gYmUgY2xlYXJlZFxuICAgIHNldENvbnRleHRQcm9wcyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJldmVyc2UgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dCkge1xuICAgICAgICAgICAgcmV2ZXJzZVtwcm9wXSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRbcHJvcF0gPSBjb250ZXh0W3Byb3BdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldmVyc2U7XG4gICAgfVxuICAgIC8vIFBhcnNlIGxvZyBsZXZlbHMgc3VjaCBhcyB3YXJuLmFjdGl2aXR5XG4gICAgc2V0TGV2ZWwobGV2ZWwpIHtcbiAgICAgICAgdmFyIGxldmVscyA9IGxldmVsLnNwbGl0KCc7Jyk7XG5cbiAgICAgICAgZm9yICh2YXIgaXggPSAwOyBpeCA8IGxldmVscy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgIHZhciBsZXZlbGEgPSBsZXZlbHNbaXhdO1xuXG4gICAgICAgICAgICBpZiAobGV2ZWxhLm1hdGNoKC86LykpIHtcbiAgICAgICAgICAgICAgICBpZiAobGV2ZWxzW2l4XS5tYXRjaCgvKC4qKTooLiopLykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdID0gdGhpcy5ncmFudWxhckxldmVsc1tSZWdFeHAuJDFdIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyYW51bGFyTGV2ZWxzW1JlZ0V4cC4kMV0gPSBSZWdFeHAuJDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxzW2l4XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWxhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBwcm9wZXJ0aWVzIHJlY29yZGVkIGJ5IHNldENvbnRleHRcbiAgICBjbGVhckNvbnRleHRQcm9wcyhjb250ZXh0VG9DbGVhcikge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gY29udGV4dFRvQ2xlYXIpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbnRleHRbcHJvcF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgbG9nZ2VyIGFuZCBjb3B5IG92ZXIgaXQncyBjb250ZXh0XG4gICAgY3JlYXRlQ2hpbGRMb2dnZXIoY29udGV4dCwgcm9vdFZhbHVlcz8sIGRhdGFWYWx1ZXM/KTogU3VwZXJ0eXBlTG9nZ2VyIHtcbiAgICAgICAgbGV0IGNoaWxkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSksIHRoaXMpO1xuICAgICAgICBjaGlsZC5jb250ZXh0ID0gY29udGV4dCB8fCB7fTtcblxuICAgICAgICBmb3IgKGxldCBwcm9wZXIgaW4gdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICBjaGlsZC5jb250ZXh0W3Byb3Blcl0gPSB0aGlzLmNvbnRleHRbcHJvcGVyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRMb2dnZXI7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkTG9nZ2VyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRMb2dnZXIgPSB0aGlzLl9jbGllbnRMb2dnZXIuY2hpbGRMb2dnZXIocm9vdFZhbHVlcywgZGF0YVZhbHVlcyk7XG4gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZExvZ2dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NsaWVudExvZ2dlci5jaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNoaWxkTG9nZ2VyID0gdGhpcy5fY2xpZW50TG9nZ2VyLmNoaWxkKHsuLi5yb290VmFsdWVzLCBkYXRhOiB7ZGF0YVZhbHVlc319KTtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkTG9nZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkIGFzIFN1cGVydHlwZUxvZ2dlcjsgLy8gYmFkIHByYWN0aWNlIGJ1dCBzaG91bGQgZml4XG4gICAgfVxuXG4gICAgZm9ybWF0RGF0ZVRpbWUoZGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmKDIsIChkYXRlLmdldE1vbnRoKCkgKyAxKSwgJy8nKSArIGYoMiwgZGF0ZS5nZXREYXRlKCksICcvJykgKyBmKDQsIGRhdGUuZ2V0RnVsbFllYXIoKSwgJyAnKSArXG4gICAgICAgICAgICBmKDIsIGRhdGUuZ2V0SG91cnMoKSwgJzonKSArIGYoMiwgZGF0ZS5nZXRNaW51dGVzKCksICc6JykgKyBmKDIsIGRhdGUuZ2V0U2Vjb25kcygpLCAnOicpICtcbiAgICAgICAgICAgIGYoMywgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkgKyAnIEdNVCcgKyAoMCAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKTtcblxuICAgICAgICBmdW5jdGlvbiBmKHosIGQsIHM/KSB7XG4gICAgICAgICAgICB3aGlsZSAoU3RyaW5nKGQpLmxlbmd0aCA8IHopIHtcbiAgICAgICAgICAgICAgICBkID0gJzAnICsgZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGQgKyAocyB8fCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3Q6IGFueSkge1xuICAgICAgICBjb25zdCBrZXlzID0gWydjb250ZXh0JywgJ2RhdGEnXTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2dPYmplY3Rba2V5XSAmJiBPYmplY3Qua2V5cyhsb2dPYmplY3Rba2V5XSkubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2dPYmplY3Rba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIHJlcGxhY2VkIGJ5IHRoZSBjb25zdW1lciBvZiB0aGlzIGNsYXNzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxvZ0xldmVsIC0gbG9nIGxldmVsXG4gICAgICogQHBhcmFtIGxvZ09iamVjdCAtIGZvcm1hdHRlZCBsb2cgb2JqZWN0LCBwYXNzZWQgaW4gZnJvbSBjb25zdW1lclxuICAgICAqIEBwYXJhbSByYXdMb2dEYXRhIC0gdW5mb3JtYXR0ZWQgYW5kIHVucHJvY2Vzc2VkIHZlcnNpb24gb2YgXCJsb2dPYmplY3RcIiBwYXJhbVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZW5kVG9Mb2cobG9nTGV2ZWwsIGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSkge1xuICAgICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSB0aGlzLnNlbmRUb0xvZy5uYW1lO1xuICAgICAgICB0aGlzLmRlbGV0ZUVtcHR5TG9nUHJvcGVydGllcyhsb2dPYmplY3QpO1xuICAgICAgICBpZiAodGhpcy5fY2xpZW50TG9nZ2VyKSB7XG4gICAgICAgICAgICBsZXQgbGV2ZWxGb3JMb2cgPSB0eXBlb2YgbG9nTGV2ZWwgPT09ICdzdHJpbmcnID8gc3RyVG9MZXZlbFtsb2dMZXZlbF0gOiBsb2dMZXZlbDtcbiAgICAgICAgICAgIHN3aXRjaCAobGV2ZWxGb3JMb2cpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgICAgIGNhc2UgMjA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5kZWJ1Zyhsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xpZW50TG9nZ2VyLmluZm8obG9nT2JqZWN0LCAuLi5yYXdMb2dEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci53YXJuKGxvZ09iamVjdCwgLi4ucmF3TG9nRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIDYwOlxuICAgICAgICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcihsb2dPYmplY3QsIC4uLnJhd0xvZ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NsaWVudExvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGU6IFN1cGVydHlwZUxvZ2dlci5tb2R1bGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdpbnZhbGlkIGxldmVsIHVzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dPYmplY3Q6IGxvZ09iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucHJldHR5UHJpbnQobG9nTGV2ZWwsIGxvZ09iamVjdCkpOyAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuXG4gICAgcHJldHR5UHJpbnQobGV2ZWwsIGpzb24pIHtcbiAgICAgICAgbGV0IHNwbGl0ID0gdGhpcy5zcGxpdChqc29uLCB7dGltZTogMSwgbXNnOiAxLCBsZXZlbDogMSwgbmFtZTogMX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdERhdGVUaW1lKGpzb24udGltZSA/IG5ldyBEYXRlKGpzb24udGltZSkgOiBuZXcgRGF0ZSgpKSArICc6ICcgK1xuICAgICAgICAgICAgbGV2ZWwudG9VcHBlckNhc2UoKSArICc6ICcgK1xuICAgICAgICAgICAgYWRkQ29sb25JZlRva2VuKHNwbGl0WzFdLm5hbWUsICc6ICcpICtcbiAgICAgICAgICAgIGFkZENvbG9uSWZUb2tlbihzcGxpdFsxXS5tc2csICc6ICcpICtcbiAgICAgICAgICAgIHh5KHNwbGl0WzBdKTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRDb2xvbklmVG9rZW4gKHRva2VuLCBjb2xvbkFuZFNwYWNlKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gKyBjb2xvbkFuZFNwYWNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB4eShqKSB7XG4gICAgICAgICAgICB2YXIgc3RyID0gJyc7XG4gICAgICAgICAgICB2YXIgc2VwID0gJyc7XG5cbiAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gaikge1xuICAgICAgICAgICAgICAgIHN0ciArPSBzZXAgKyBwcm9wICsgJz0nICsgSlNPTi5zdHJpbmdpZnkoaltwcm9wXSk7XG4gICAgICAgICAgICAgICAgc2VwID0gJyAnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJygnICsgc3RyICsgJyknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNwbGl0KGpzb24sIHByb3BzKTogYW55W10ge1xuICAgICAgICBjb25zdCBhID0ge307XG4gICAgICAgIGNvbnN0IGIgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4ganNvbikge1xuICAgICAgICAgICAgKHByb3BzW3Byb3BdID8gYiA6IGEpW3Byb3BdID0ganNvbltwcm9wXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbYSwgYl07XG4gICAgfVxuXG4gICAgLy8gTG9nZ2luZyBpcyBlbmFibGVkIGlmIGVpdGhlciB0aGUgbGV2ZWwgdGhyZXNob2xkIGlzIG1ldCBvciB0aGUgZ3JhbnVsYXIgbGV2ZWwgbWF0Y2hlc1xuICAgIHByaXZhdGUgaXNFbmFibGVkKGxldmVsLCBvYmopIHtcbiAgICAgICAgbGV2ZWwgPSBzdHJUb0xldmVsW2xldmVsXTtcblxuICAgICAgICBpZiAobGV2ZWwgPj0gc3RyVG9MZXZlbFt0aGlzLmxldmVsXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ncmFudWxhckxldmVscykge1xuICAgICAgICAgICAgZm9yIChsZXQgbGV2ZWxyIGluIHRoaXMuZ3JhbnVsYXJMZXZlbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqW2xldmVscl0gJiYgb2JqW2xldmVscl0gPT0gdGhpcy5ncmFudWxhckxldmVsc1tsZXZlbHJdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0= |
{ | ||
"name": "@haventech/supertype", | ||
"description": "A type system for classical inheritence, mix-ins and composition.", | ||
"version": "6.1.0", | ||
"version": "7.0.0-es2020.beta.0", | ||
"main": "dist/index.js", | ||
@@ -11,3 +11,3 @@ "types": "dist/index.d.ts", | ||
"nconf": "^0.12.0", | ||
"reflect-metadata": "^0.1.12" | ||
"reflect-metadata": "^0.1.13" | ||
}, | ||
@@ -18,3 +18,3 @@ "devDependencies": { | ||
"@types/nconf": "^0.10.0", | ||
"@types/node": "16.11.22", | ||
"@types/node": "18.11.18", | ||
"chai": "4.3.6", | ||
@@ -26,4 +26,4 @@ "eslint": "8.8.0", | ||
"sinon": "13.0.1", | ||
"ts-node": "10.5.0", | ||
"typescript": "3.9.10" | ||
"ts-node": "10.9.1", | ||
"typescript": "4.9.4" | ||
}, | ||
@@ -30,0 +30,0 @@ "scripts": { |
@@ -125,3 +125,4 @@ export { Supertype } from './Supertype'; | ||
function getName() { | ||
return target.toString().match(/function ([^(]*)/)[1]; | ||
//return target.toString().match(/function ([^(]*)/)[1]; | ||
return target.toString().match(/class ([^]\w+)/)[1]; | ||
} | ||
@@ -128,0 +129,0 @@ function getDictionary() { |
@@ -456,2 +456,3 @@ import * as serializer from './serializer'; | ||
static getClasses() { | ||
console.log('comping here', this.__templates__); | ||
if (this.__templates__) { | ||
@@ -465,2 +466,3 @@ for (let ix = 0; ix < this.__templates__.length; ++ix) { | ||
this.__templates__ = undefined; | ||
console.log('i am dictionary', this.__dictionary__); | ||
for (const templateName1 in this.__dictionary__) { | ||
@@ -508,3 +510,4 @@ var template = this.__dictionary__[templateName1]; | ||
function constructorName(constructor) { | ||
const namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
const namedFunction = constructor.toString().match(/class ([^]\w+)/); | ||
//const namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
return namedFunction ? namedFunction[1] : null; | ||
@@ -511,0 +514,0 @@ } |
@@ -5,3 +5,4 @@ import {ObjectTemplate} from './ObjectTemplate'; | ||
function constructorName(constructor) { | ||
var namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
var namedFunction = constructor.toString().match(/class ([^]\w+)/); | ||
//var namedFunction = constructor.toString().match(/function ([^(]*)/); | ||
return namedFunction ? namedFunction[1] : null; | ||
@@ -8,0 +9,0 @@ } |
@@ -186,8 +186,3 @@ const levelToStr = { 60: 'fatal', 50: 'error', 40: 'warn', 30: 'info', 20: 'debug', 10: 'trace' }; | ||
createChildLogger(context, rootValues?, dataValues?): SupertypeLogger { | ||
let child: { [key: string]: any } = {}; | ||
for (let prop in this) { | ||
child[prop] = this[prop]; | ||
} | ||
let child = Object.assign(Object.create(Object.getPrototypeOf(this)), this); | ||
child.context = context || {}; | ||
@@ -194,0 +189,0 @@ |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
387935
4680
1
Updatedreflect-metadata@^0.1.13