Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@haventech/supertype

Package Overview
Dependencies
Maintainers
5
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@haventech/supertype - npm Package Compare versions

Comparing version 7.0.0-es2020.beta.1 to 7.0.0-es2020.beta.2

6

dist/decorators.js

@@ -111,4 +111,4 @@ "use strict";

function getName() {
//return target.toString().match(/function ([^(]*)/)[1];
return target.toString().match(/class ([^]\w+)/)[1];
const targetName = target.toString().match(/class ([^]\w+)/) || target.toString().match(/function ([^(]*)/);
return targetName[1];
}

@@ -175,2 +175,2 @@ function getDictionary() {

exports.remote = remote;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUEvQixzR0FBQSxTQUFTLE9BQUE7QUFDbEIscURBQWtEO0FBRWxELDRCQUEwQjtBQUUxQjs7Ozs7Ozs7TUFRTTtBQUNOLFNBQWdCLGNBQWMsQ0FBQyxXQUFZLEVBQUUsY0FBZTtJQUV4RCxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUU5RixnQ0FBZ0M7SUFDaEMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsd0lBQXdJO1FBQ2pLLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQztJQUVqQixzQkFBc0I7SUFDdEIsU0FBUyxTQUFTLENBQUMsTUFBTTtRQUNyQixjQUFjLEdBQUcsY0FBYyxJQUFJLCtCQUFjLENBQUM7UUFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUN4QyxNQUFNLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLGNBQWMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQUMzQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVks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SUFBSTtnQkFDeEQsT0FBTyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUk7b0JBQzdCLGtGQUFrRjtvQkFDbEYsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRW5ELENBQUMsQ0FBQztTQUNMO1FBQ0QsSUFBSSxjQUFjLEtBQUssS0FBSyxFQUFFO1lBQzFCLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQ25CO2FBQ0k7WUFDRCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUNELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQXZDRCw0QkF1Q0M7QUFBQSxDQUFDO0FBRUYsU0FBZ0IsTUFBTSxDQUFDLGNBQWM7SUFDakMsT0FBTyxVQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVTtJQUNqRCxDQUFDLENBQUE7QUFDTCxDQUFDO0FBSEQsd0JBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTdXBlcnR5cGUgfSBmcm9tICcuL1N1cGVydHlwZSc7XG5pbXBvcnQgeyBPYmplY3RUZW1wbGF0ZSB9IGZyb20gJy4vT2JqZWN0VGVtcGxhdGUnO1xuXG5pbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG4vKipcbiAgICAqIFxuICAgICogQHBhcmFtIHsqfSBvYmplY3RQcm9wcy0gb3B0aW9uYWwgcHJvcGVydHkgZm9yIHBhc3NpbmcgcGFyYW1zIGludG8gc3VwZXJ0eXBlY2xhc3MsIGlmIG5vIHBhcmFtcywgaXMgdW5kZWZpbmVkLFxuICAgICogICAgICAgICAgICAgICAgICAgICAgZmlyc3QgcGFyYW0gb2YgdGhpcyBmdW5jdGlvbiBkZWZhdWx0cyB0byBvYmplY3RUZW1wbGF0ZSBpbnN0ZWFkXG4gICAgKiBAcGFyYW0geyp9IG9iamVjdFRlbXBsYXRlIFxuICAgICogXG4gICAgKiBAVE9ETzogZml4IHJldHVybiB0eXBlc1xuICAgICogaHR0cHM6Ly9naXRodWIuY29tL2hhdmVuLWxpZmUvc3VwZXJ0eXBlL2lzc3Vlcy82XG4gICAgKi9cbmV4cG9ydCBmdW5jdGlvbiBzdXBlcnR5cGVDbGFzcyhvYmplY3RQcm9wcz8sIG9iamVjdFRlbXBsYXRlPyk6IGFueSB7XG5cbiAgICAvLyBXaGVuIHVzZWQgYXMgQHN1cGVydHlwZUNsYXNzKHtibGEgYmxhIGJsYX0pLCB0aGUgZGVjb3JhdG9yIGlzIGZpcnN0IGNhbGxlZCBhcyBpdCBpc1xuICAgIC8vIGlzIGJlaW5nIHBhc3NlZCBpbnRvIHRoZSBkZWNvcmF0b3IgcHJvY2Vzc29yIGFuZCBzbyBpdCBuZWVkcyB0byByZXR1cm4gYSBmdW5jdGlvblxuICAgIC8vIHNvIHRoYXQgaXQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2hlbiB0aGUgZGVjb3JhdG9ycyBhcmUgYWN0dWFsbHkgcHJvY2Vzc2VkLiAgS2luZGEgc3BsaWZmeS5cblxuICAgIC8vIENhbGxlZCBieSBkZWNvcmF0b3IgcHJvY2Vzc29yXG4gICAgaWYgKG9iamVjdFByb3BzLnByb3RvdHlwZSkgeyAvLyBpZiBvYmplY3RQcm9wcyBpcyB0aGUgY2xhc3MgKHNlY29uZCBwYXNzIGlmIHBhc3NlZCB3aXRoIHt0b0NsaWVudCBzdHlsZSBwYXJhbXN9IG9yIGZpcnN0IHBhc3Mgd2hlbiBAc3VwZXJ0eXBlQ2xhc3Mgbm8gcGFyZW4gYW5kIGFyZ3MpXG4gICAgICAgIHJldHVybiBkZWNvcmF0b3Iob2JqZWN0UHJvcHMpO1xuICAgIH1cblxuICAgIC8vIENhbGxlZCBmaXJzdCB0aW1lIHdpdGggcGFyYW1ldGVyXG4gICAgdmFyIHByb3BzID0gb2JqZWN0UHJvcHM7XG4gICAgcmV0dXJuIGRlY29yYXRvcjtcblxuICAgIC8vIERlY29yYXRvciBXb3JrZXJiZWVcbiAgICBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0KSB7XG4gICAgICAgIG9iamVjdFRlbXBsYXRlID0gb2JqZWN0VGVtcGxhdGUgfHwgT2JqZWN0VGVtcGxhdGU7XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX3RlbXBsYXRlX18gPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuYW1vcnBoaWNDbGFzcyA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5hbW9ycGhpY0dldENsYXNzTmFtZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRhcmdldC5fX25hbWVfXyB9O1xuICAgICAgICB0YXJnZXQuaXNPYmplY3RUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIHRhcmdldC5fX2luamVjdGlvbnNfXyA9IFtdO1xuICAgICAgICB0YXJnZXQuX19vYmplY3RUZW1wbGF0ZV9fID0gb2JqZWN0VGVtcGxhdGU7XG4gICAgICAgIHZhciBjcmVhdGVQcm9wcyA9IG9iamVjdFRlbXBsYXRlLmdldFRlbXBsYXRlUHJvcGVydGllcyhwcm9wcyB8fCB7fSk7XG4gICAgICAgIHRhcmdldC5fX3RvQ2xpZW50X18gPSBjcmVhdGVQcm9wcy5fX3RvQ2xpZW50X187XG4gICAgICAgIHRhcmdldC5fX3RvU2VydmVyX18gPSBjcmVhdGVQcm9wcy5fX3RvU2VydmVyX187XG4gICAgICAgIHRhcmdldC5fX3NoYWRvd0NoaWxkcmVuX18gPSBbXTtcblxuICAgICAgICAvLyBQdXNoIGFuIGFycmF5IG9mIHRlbXBsYXRlIHJlZmVyZW5jZXMgKHdlIGNhbid0IGdldCBhdCB0aGVpciBuYW1lcyBub3cpLiAgTGF0ZXIgd2Ugd2lsbFxuICAgICAgICAvLyB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgX19kaWN0aW9uYXJ5X19cbiAgICAgICAgb2JqZWN0VGVtcGxhdGUuX190ZW1wbGF0ZXNfXyA9IG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18gfHwgW107XG4gICAgICAgIG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18ucHVzaCh0YXJnZXQpO1xuXG5cbiAgICAgICAgLy8gV2UgY2FuIG5ldmVyIHJlZmVyZW5jZSB0ZW1wbGF0ZSBmdW5jdGlvbnMgYXQgY29tcGlsZSB0aW1lIHdoaWNoIGlzIHdoZW4gdGhpcyBkZWNvcmF0b3IgaXMgZXhlY3V0ZWRcbiAgICAgICAgLy8gVGhlcmVmb3JlIHdlIGhhdmUgdG8gc2V0dXAgZ2V0dGVycyBmb3IgcHJvcGVydGllcyB0aGF0IG5lZWQgYWNjZXNzIHRvIHRoZSB0ZW1wbGF0ZSBmdW5jdGlvbnMgc29cbiAgICAgICAgLy8gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoZXkgYXJlIGZ1bGx5IHJlc29sdmVkIGJlZm9yZSBhY2Nlc3NpbmcgdGhlbVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnZGVmaW5lUHJvcGVydGllcycsIHsgZ2V0OiBkZWZpbmVQcm9wZXJ0aWVzIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNQcm9wZXJ0aWVzJywgeyBnZXQ6IGRlZmluZVByb3BlcnRpZXMgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX25hbWVfXycsIHsgZ2V0OiBnZXROYW1lIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNDbGFzc05hbWUnLCB7IGdldDogZ2V0TmFtZSB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ3BhcmVudFRlbXBsYXRlJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fcGFyZW50X18nLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19jaGlsZHJlbl9fJywgeyBnZXQ6IGdldENoaWxkcmVuIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNQYXJlbnRDbGFzcycsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY0NoaWxkQ2xhc3NlcycsIHsgZ2V0OiBnZXRDaGlsZHJlbiB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljU3RhdGljJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9iamVjdFRlbXBsYXRlIH0gfSk7XG5cbiAgICAgICAgdGFyZ2V0LmZyb21QT0pPID0gZnVuY3Rpb24gZnJvbVBPSk8ocG9qbykge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLmZyb21QT0pPKHBvam8sIHRhcmdldCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmZyb21KU09OID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNGcm9tSlNPTiA9IGZ1bmN0aW9uIGZyb21KU09OKHN0ciwgaWRQcmVmaXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0VGVtcGxhdGUuZnJvbUpTT04oc3RyLCB0YXJnZXQsIGlkUHJlZml4KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LmdldFByb3BlcnRpZXMgPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0dldFByb3BlcnRpZXMgPSBmdW5jdGlvbiBnZXRQcm9wZXJ0aWVzKGluY2x1ZGVWaXJ0dWFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgdW5kZWZpbmVkLCBpbmNsdWRlVmlydHVhbCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5jcmVhdGVQcm9wZXJ0eSA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljQ3JlYXRlUHJvcGVydHkgPSBmdW5jdGlvbiAocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGVbcHJvcGVydHlOYW1lXSA9IG9iamVjdFRlbXBsYXRlLl9zZXR1cEZ1bmN0aW9uKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkuYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5Lm9uLCBkZWZpbmVQcm9wZXJ0eS52YWxpZGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLl9fYW1vcnBoaWNwcm9wc19fW3Byb3BlcnR5TmFtZV0gPSBkZWZpbmVQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZpbmVQcm9wZXJ0eS52YWx1ZSBpbiBbJ3N0cmluZycsICdudW1iZXInXSB8fCBkZWZpbmVQcm9wZXJ0eS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LnByb3RvdHlwZSwgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBkZWZpbmVQcm9wZXJ0eS52YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQucHJvdG90eXBlLCBwcm9wZXJ0eU5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFRlbXBsYXRlLmNsb25lKGRlZmluZVByb3BlcnR5LnZhbHVlLCBkZWZpbmVQcm9wZXJ0eS5vZiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS50eXBlIHx8IG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1snX18nICsgcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICBpZiAodGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfXykge1xuICAgICAgICAgICAgb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18gPSBvYmplY3RUZW1wbGF0ZS5fX2V4Y2VwdGlvbnNfXyB8fCBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGV4Y2VwdGlvbktleSBpbiB0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fKSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmM6IHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX19bZXhjZXB0aW9uS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGdldE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3A6IGV4Y2VwdGlvbktleVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQucHJvdG90eXBlLl9fYW1vcnBoaWNwcm9wc19fO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldE5hbWUoKSB7XG4gICAgICAgICAgICAvL3JldHVybiB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pWzFdO1xuICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLylbMV07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0RGljdGlvbmFyeSgpIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLmdldENsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRQYXJlbnQoKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93UGFyZW50X187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkocHJvcHM/KTogYW55IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgICAgIHByb3BzLmVudW1lcmFibGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fYW1vcnBoaWNwcm9wc19fJykgPyB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gOiB7fTtcbiAgICAgICAgdmFyIHJlZmxlY3Rpb25UeXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIHRhcmdldEtleSk7XG4gICAgICAgIHZhciBkZWNsYXJlZFR5cGUgPSBwcm9wcy50eXBlO1xuICAgICAgICB2YXIgdHlwZSA9IHJlZmxlY3Rpb25UeXBlICE9PSBBcnJheSA/IGRlY2xhcmVkVHlwZSB8fCByZWZsZWN0aW9uVHlwZSA6IGRlY2xhcmVkVHlwZTtcbiAgICAvLyBUeXBlIG1pc21hdGNoZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICsgJyAtIGRlY29yYXRvciB0eXBlIGRvZXMgbm90IG1hdGNoIGFjdHVhbCB0eXBlJztcbiAgICAgICAgICAgIH07XG4gICAgLy8gRGVmZXJyZWQgdHlwZVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5nZXRUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfXyA9IHRhcmdldC5oYXNPd25Qcm9wZXJ0eSgnX19kZWZlcnJlZFR5cGVfXycpID8gdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gOiB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2RlZmVycmVkVHlwZV9fW3RhcmdldEtleV0gPSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICAgICAgZGVsZXRlIHByb3BzLmdldFR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICtcbiAgICAgICAgICAgICAgICAnIC0gdHlwZSBpcyB1bmRlZmluZWQuIENpcmN1bGFyIHJlZmVyZW5jZT8gVHJ5IEBwcm9wZXJ0eSh7Z2V0VHlwZTogKCkgPT4ge3JldHVybiAnICtcbiAgICAgICAgICAgICAgICBwcm9wWzBdLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnN1YnN0cigxKSArICd9fSknO1xuXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZsZWN0aW9uVHlwZSA9PT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSBBcnJheTtcbiAgICAgICAgICAgIHByb3BzLm9mID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5fX2Ftb3JwaGljcHJvcHNfX1t0YXJnZXRLZXldID0gcHJvcHM7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGUoZGVmaW5lUHJvcGVydHkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSB7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUEvQixzR0FBQSxTQUFTLE9BQUE7QUFDbEIscURBQWtEO0FBRWxELDRCQUEwQjtBQUUxQjs7Ozs7Ozs7TUFRTTtBQUNOLFNBQWdCLGNBQWMsQ0FBQyxXQUFZLEVBQUUsY0FBZTtJQUV4RCxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLDhGQUE4RjtJQUU5RixnQ0FBZ0M7SUFDaEMsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsd0lBQXdJO1FBQ2pLLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQztJQUVqQixzQkFBc0I7SUFDdEIsU0FBUyxTQUFTLENBQUMsTUFBTTtRQUNyQixjQUFjLEdBQUcsY0FBYyxJQUFJLCtCQUFjLENBQUM7UUFFbEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUN4QyxNQUFNLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLGNBQWMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQUMzQyxJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVks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QUFJLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsU0FBUyxFQUFFLElBQUk7Z0JBQ3hELE9BQU8sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJO29CQUM3QixrRkFBa0Y7b0JBQ2xGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUVuRCxDQUFDLENBQUM7U0FDTDtRQUNELElBQUksY0FBYyxLQUFLLEtBQUssRUFBRTtZQUMxQixLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNuQixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztTQUNuQjthQUNJO1lBQ0QsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDckI7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNOLENBQUM7QUF2Q0QsNEJBdUNDO0FBQUEsQ0FBQztBQUVGLFNBQWdCLE1BQU0sQ0FBQyxjQUFjO0lBQ2pDLE9BQU8sVUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVU7SUFDakQsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUhELHdCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU3VwZXJ0eXBlIH0gZnJvbSAnLi9TdXBlcnR5cGUnO1xuaW1wb3J0IHsgT2JqZWN0VGVtcGxhdGUgfSBmcm9tICcuL09iamVjdFRlbXBsYXRlJztcblxuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuLyoqXG4gICAgKiBcbiAgICAqIEBwYXJhbSB7Kn0gb2JqZWN0UHJvcHMtIG9wdGlvbmFsIHByb3BlcnR5IGZvciBwYXNzaW5nIHBhcmFtcyBpbnRvIHN1cGVydHlwZWNsYXNzLCBpZiBubyBwYXJhbXMsIGlzIHVuZGVmaW5lZCxcbiAgICAqICAgICAgICAgICAgICAgICAgICAgIGZpcnN0IHBhcmFtIG9mIHRoaXMgZnVuY3Rpb24gZGVmYXVsdHMgdG8gb2JqZWN0VGVtcGxhdGUgaW5zdGVhZFxuICAgICogQHBhcmFtIHsqfSBvYmplY3RUZW1wbGF0ZSBcbiAgICAqIFxuICAgICogQFRPRE86IGZpeCByZXR1cm4gdHlwZXNcbiAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXZlbi1saWZlL3N1cGVydHlwZS9pc3N1ZXMvNlxuICAgICovXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ0eXBlQ2xhc3Mob2JqZWN0UHJvcHM/LCBvYmplY3RUZW1wbGF0ZT8pOiBhbnkge1xuXG4gICAgLy8gV2hlbiB1c2VkIGFzIEBzdXBlcnR5cGVDbGFzcyh7YmxhIGJsYSBibGF9KSwgdGhlIGRlY29yYXRvciBpcyBmaXJzdCBjYWxsZWQgYXMgaXQgaXNcbiAgICAvLyBpcyBiZWluZyBwYXNzZWQgaW50byB0aGUgZGVjb3JhdG9yIHByb2Nlc3NvciBhbmQgc28gaXQgbmVlZHMgdG8gcmV0dXJuIGEgZnVuY3Rpb25cbiAgICAvLyBzbyB0aGF0IGl0IHdpbGwgYmUgY2FsbGVkIGFnYWluIHdoZW4gdGhlIGRlY29yYXRvcnMgYXJlIGFjdHVhbGx5IHByb2Nlc3NlZC4gIEtpbmRhIHNwbGlmZnkuXG5cbiAgICAvLyBDYWxsZWQgYnkgZGVjb3JhdG9yIHByb2Nlc3NvclxuICAgIGlmIChvYmplY3RQcm9wcy5wcm90b3R5cGUpIHsgLy8gaWYgb2JqZWN0UHJvcHMgaXMgdGhlIGNsYXNzIChzZWNvbmQgcGFzcyBpZiBwYXNzZWQgd2l0aCB7dG9DbGllbnQgc3R5bGUgcGFyYW1zfSBvciBmaXJzdCBwYXNzIHdoZW4gQHN1cGVydHlwZUNsYXNzIG5vIHBhcmVuIGFuZCBhcmdzKVxuICAgICAgICByZXR1cm4gZGVjb3JhdG9yKG9iamVjdFByb3BzKTtcbiAgICB9XG5cbiAgICAvLyBDYWxsZWQgZmlyc3QgdGltZSB3aXRoIHBhcmFtZXRlclxuICAgIHZhciBwcm9wcyA9IG9iamVjdFByb3BzO1xuICAgIHJldHVybiBkZWNvcmF0b3I7XG5cbiAgICAvLyBEZWNvcmF0b3IgV29ya2VyYmVlXG4gICAgZnVuY3Rpb24gZGVjb3JhdG9yKHRhcmdldCkge1xuICAgICAgICBvYmplY3RUZW1wbGF0ZSA9IG9iamVjdFRlbXBsYXRlIHx8IE9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuX190ZW1wbGF0ZV9fID0gdGFyZ2V0O1xuICAgICAgICB0YXJnZXQucHJvdG90eXBlLmFtb3JwaGljQ2xhc3MgPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldC5wcm90b3R5cGUuYW1vcnBoaWNHZXRDbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0YXJnZXQuX19uYW1lX18gfTtcbiAgICAgICAgdGFyZ2V0LmlzT2JqZWN0VGVtcGxhdGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19pbmplY3Rpb25zX18gPSBbXTtcbiAgICAgICAgdGFyZ2V0Ll9fb2JqZWN0VGVtcGxhdGVfXyA9IG9iamVjdFRlbXBsYXRlO1xuICAgICAgICB2YXIgY3JlYXRlUHJvcHMgPSBvYmplY3RUZW1wbGF0ZS5nZXRUZW1wbGF0ZVByb3BlcnRpZXMocHJvcHMgfHwge30pO1xuICAgICAgICB0YXJnZXQuX190b0NsaWVudF9fID0gY3JlYXRlUHJvcHMuX190b0NsaWVudF9fO1xuICAgICAgICB0YXJnZXQuX190b1NlcnZlcl9fID0gY3JlYXRlUHJvcHMuX190b1NlcnZlcl9fO1xuICAgICAgICB0YXJnZXQuX19zaGFkb3dDaGlsZHJlbl9fID0gW107XG5cbiAgICAgICAgLy8gUHVzaCBhbiBhcnJheSBvZiB0ZW1wbGF0ZSByZWZlcmVuY2VzICh3ZSBjYW4ndCBnZXQgYXQgdGhlaXIgbmFtZXMgbm93KS4gIExhdGVyIHdlIHdpbGxcbiAgICAgICAgLy8gdXNlIHRoaXMgdG8gY29uc3RydWN0IF9fZGljdGlvbmFyeV9fXG4gICAgICAgIG9iamVjdFRlbXBsYXRlLl9fdGVtcGxhdGVzX18gPSBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fIHx8IFtdO1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX3RlbXBsYXRlc19fLnB1c2godGFyZ2V0KTtcblxuXG4gICAgICAgIC8vIFdlIGNhbiBuZXZlciByZWZlcmVuY2UgdGVtcGxhdGUgZnVuY3Rpb25zIGF0IGNvbXBpbGUgdGltZSB3aGljaCBpcyB3aGVuIHRoaXMgZGVjb3JhdG9yIGlzIGV4ZWN1dGVkXG4gICAgICAgIC8vIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIHNldHVwIGdldHRlcnMgZm9yIHByb3BlcnRpZXMgdGhhdCBuZWVkIGFjY2VzcyB0byB0aGUgdGVtcGxhdGUgZnVuY3Rpb25zIHNvXG4gICAgICAgIC8vIHRoYXQgd2UgY2FuIGVuc3VyZSB0aGV5IGFyZSBmdWxseSByZXNvbHZlZCBiZWZvcmUgYWNjZXNzaW5nIHRoZW1cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2RlZmluZVByb3BlcnRpZXMnLCB7IGdldDogZGVmaW5lUHJvcGVydGllcyB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljUHJvcGVydGllcycsIHsgZ2V0OiBkZWZpbmVQcm9wZXJ0aWVzIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnX19uYW1lX18nLCB7IGdldDogZ2V0TmFtZSB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljQ2xhc3NOYW1lJywgeyBnZXQ6IGdldE5hbWUgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdwYXJlbnRUZW1wbGF0ZScsIHsgZ2V0OiBnZXRQYXJlbnQgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdfX3BhcmVudF9fJywgeyBnZXQ6IGdldFBhcmVudCB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ19fY2hpbGRyZW5fXycsIHsgZ2V0OiBnZXRDaGlsZHJlbiB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgJ2Ftb3JwaGljUGFyZW50Q2xhc3MnLCB7IGdldDogZ2V0UGFyZW50IH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnYW1vcnBoaWNDaGlsZENsYXNzZXMnLCB7IGdldDogZ2V0Q2hpbGRyZW4gfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsICdhbW9ycGhpY1N0YXRpYycsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBvYmplY3RUZW1wbGF0ZSB9IH0pO1xuXG4gICAgICAgIHRhcmdldC5mcm9tUE9KTyA9IGZ1bmN0aW9uIGZyb21QT0pPKHBvam8pIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5mcm9tUE9KTyhwb2pvLCB0YXJnZXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5mcm9tSlNPTiA9IC8vIExlZ2FjeVxuICAgICAgICAgICAgdGFyZ2V0LmFtb3JwaGljRnJvbUpTT04gPSBmdW5jdGlvbiBmcm9tSlNPTihzdHIsIGlkUHJlZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLmZyb21KU09OKHN0ciwgdGFyZ2V0LCBpZFByZWZpeCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5nZXRQcm9wZXJ0aWVzID0gLy8gTGVnYWN5XG4gICAgICAgICAgICB0YXJnZXQuYW1vcnBoaWNHZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gZ2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS5fZ2V0RGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHVuZGVmaW5lZCwgaW5jbHVkZVZpcnR1YWwpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQuY3JlYXRlUHJvcGVydHkgPSAvLyBMZWdhY3lcbiAgICAgICAgICAgIHRhcmdldC5hbW9ycGhpY0NyZWF0ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkuYm9keSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlW3Byb3BlcnR5TmFtZV0gPSBvYmplY3RUZW1wbGF0ZS5fc2V0dXBGdW5jdGlvbihwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LmJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5vbiwgZGVmaW5lUHJvcGVydHkudmFsaWRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfX1twcm9wZXJ0eU5hbWVdID0gZGVmaW5lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVmaW5lUHJvcGVydHkudmFsdWUgaW4gWydzdHJpbmcnLCAnbnVtYmVyJ10gfHwgZGVmaW5lUHJvcGVydHkudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogZGVmaW5lUHJvcGVydHkudmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LnByb3RvdHlwZSwgcHJvcGVydHlOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzWydfXycgKyBwcm9wZXJ0eU5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RUZW1wbGF0ZS5jbG9uZShkZWZpbmVQcm9wZXJ0eS52YWx1ZSwgZGVmaW5lUHJvcGVydHkub2YgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkudHlwZSB8fCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1snX18nICsgcHJvcGVydHlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbJ19fJyArIHByb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRhcmdldC5wcm90b3R5cGUuX19leGNlcHRpb25zX18pIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fID0gb2JqZWN0VGVtcGxhdGUuX19leGNlcHRpb25zX18gfHwgW107XG4gICAgICAgICAgICBmb3IgKHZhciBleGNlcHRpb25LZXkgaW4gdGFyZ2V0LnByb3RvdHlwZS5fX2V4Y2VwdGlvbnNfXykge1xuICAgICAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9fZXhjZXB0aW9uc19fLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBmdW5jOiB0YXJnZXQucHJvdG90eXBlLl9fZXhjZXB0aW9uc19fW2V4Y2VwdGlvbktleV0sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBnZXROYW1lLFxuICAgICAgICAgICAgICAgICAgICBwcm9wOiBleGNlcHRpb25LZXlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfXztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXROYW1lKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0TmFtZSA9IHRhcmdldC50b1N0cmluZygpLm1hdGNoKC9jbGFzcyAoW15dXFx3KykvKSB8fCB0YXJnZXQudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pIFxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldE5hbWVbMV07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0RGljdGlvbmFyeSgpIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLmdldENsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRQYXJlbnQoKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93UGFyZW50X187XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgICAgICBnZXREaWN0aW9uYXJ5KCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Ll9fc2hhZG93Q2hpbGRyZW5fXztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkocHJvcHM/KTogYW55IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5KSB7XG4gICAgICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgICAgIHByb3BzLmVudW1lcmFibGUgPSB0cnVlO1xuICAgICAgICB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ19fYW1vcnBoaWNwcm9wc19fJykgPyB0YXJnZXQuX19hbW9ycGhpY3Byb3BzX18gOiB7fTtcbiAgICAgICAgdmFyIHJlZmxlY3Rpb25UeXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIHRhcmdldEtleSk7XG4gICAgICAgIHZhciBkZWNsYXJlZFR5cGUgPSBwcm9wcy50eXBlO1xuICAgICAgICB2YXIgdHlwZSA9IHJlZmxlY3Rpb25UeXBlICE9PSBBcnJheSA/IGRlY2xhcmVkVHlwZSB8fCByZWZsZWN0aW9uVHlwZSA6IGRlY2xhcmVkVHlwZTtcbiAgICAvLyBUeXBlIG1pc21hdGNoZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAmJiByZWZsZWN0aW9uVHlwZSAhPT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICsgJyAtIGRlY29yYXRvciB0eXBlIGRvZXMgbm90IG1hdGNoIGFjdHVhbCB0eXBlJztcbiAgICAgICAgICAgIH07XG4gICAgLy8gRGVmZXJyZWQgdHlwZVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5nZXRUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0YXJnZXQuX19kZWZlcnJlZFR5cGVfXyA9IHRhcmdldC5oYXNPd25Qcm9wZXJ0eSgnX19kZWZlcnJlZFR5cGVfXycpID8gdGFyZ2V0Ll9fZGVmZXJyZWRUeXBlX18gOiB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2RlZmVycmVkVHlwZV9fW3RhcmdldEtleV0gPSBwcm9wcy5nZXRUeXBlO1xuICAgICAgICAgICAgZGVsZXRlIHByb3BzLmdldFR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfXyA9IHRhcmdldC5fX2V4Y2VwdGlvbnNfXyB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldC5fX2V4Y2VwdGlvbnNfX1t0YXJnZXRLZXldID0gZnVuY3Rpb24gKGNsYXNzTmFtZSwgcHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUgKyAnLicgKyBwcm9wICtcbiAgICAgICAgICAgICAgICAnIC0gdHlwZSBpcyB1bmRlZmluZWQuIENpcmN1bGFyIHJlZmVyZW5jZT8gVHJ5IEBwcm9wZXJ0eSh7Z2V0VHlwZTogKCkgPT4ge3JldHVybiAnICtcbiAgICAgICAgICAgICAgICBwcm9wWzBdLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnN1YnN0cigxKSArICd9fSknO1xuXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZsZWN0aW9uVHlwZSA9PT0gQXJyYXkpIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSBBcnJheTtcbiAgICAgICAgICAgIHByb3BzLm9mID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzLnR5cGUgPSB0eXBlO1xuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5fX2Ftb3JwaGljcHJvcHNfX1t0YXJnZXRLZXldID0gcHJvcHM7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGUoZGVmaW5lUHJvcGVydHkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSB7XG4gICAgfVxufSJdfQ==

@@ -7,4 +7,3 @@ "use strict";

function constructorName(constructor) {
var namedFunction = constructor.toString().match(/class ([^]\w+)/);
//var namedFunction = constructor.toString().match(/function ([^(]*)/);
var namedFunction = constructor.toString().match(/class ([^]\w+)/) || constructor.toString().match(/function ([^(]*)/);
return namedFunction ? namedFunction[1] : null;

@@ -114,2 +113,2 @@ }

exports.Supertype = Supertype;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBZ0Q7QUFDaEQsMkNBQTJDO0FBRTNDLFNBQVMsZUFBZSxDQUFDLFdBQVc7SUFDaEMsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25FLHVFQUF1RTtJQUN2RSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQUtEOzs7OztHQUtHO0FBRUgsTUFBYSxTQUFTO0lBSWxCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDOUQsK0NBQStDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsd0JBQWtDO1FBQzNELCtDQUErQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDaEMsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVksRUFBRSxjQUFzQjtRQUN0RCwrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxhQUFhO1FBQ2hCLCtDQUErQztJQUNuRCxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLCtDQUErQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUFFLElBQVksRUFBRSxRQUFpQjtRQUM1QywrQ0FBK0M7SUFFbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBYTtRQUN4QiwyRUFBMkU7SUFDL0UsQ0FBQztJQWlCRCxZQUFZLGNBQWMsR0FBRywrQkFBYztRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FB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LGNBQWMsQ0FBQyxHQUFHO1FBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxZQUFZLENBQUMsRUFBRztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0o7QUFoSUQsOEJBZ0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RUZW1wbGF0ZX0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5pbXBvcnQgKiBhcyBzZXJpYWxpemVyIGZyb20gJy4vc2VyaWFsaXplcic7XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdG9yTmFtZShjb25zdHJ1Y3Rvcikge1xuICAgIHZhciBuYW1lZEZ1bmN0aW9uID0gY29uc3RydWN0b3IudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLyk7XG4gICAgLy92YXIgbmFtZWRGdW5jdGlvbiA9IGNvbnN0cnVjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2Z1bmN0aW9uIChbXihdKikvKTtcbiAgICByZXR1cm4gbmFtZWRGdW5jdGlvbiA/IG5hbWVkRnVuY3Rpb25bMV0gOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RhYmxlID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4ge307XG5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0eXBlc2NyaXB0IGNsYXNzZXMuIFxuICogSXQgd2lsbCBpbmplY3QgbWVtYmVycyBpbnRvIHRoZSBvYmplY3QgZnJvbSBib3RoIHRoZSB0ZW1wbGF0ZSBhbmQgb2JqZWN0VGVtcGxhdGVcbiAqIEBwYXJhbSB7T2JqZWN0VGVtcGxhdGV9IC0gb3RoZXIgbGF5ZXJzIGNhbiBwYXNzIGluIHRoZWlyIG93biBvYmplY3QgdGVtcGxhdGUgKHRoaXMgaXMgdGhlIG9iamVjdCBub3QgT2JqZWN0VGVtcGxhdGUpXG4gKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgb2JqZWN0IGl0c2VsZlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdXBlcnR5cGUge1xuICAgIF9fdGVtcGxhdGVfXzogYW55O1xuICAgIGFtb3JwaGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGFtb3JwaGljQ3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljR2V0UHJvcGVydGllcyhpbmNsdWRlVmlydHVhbFByb3BlcnRpZXM/OiBib29sZWFuKTphbnkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgYW1vcnBoaWNGcm9tSlNPTihqc29uOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZVByb3BlcnR5KHByb3A6IFN0cmluZywgZGVmaW5lUHJvcGVydHk6IE9iamVjdCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcygpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRDbGFzc05hbWUgKCkgOiBzdHJpbmcge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tSlNPTiAoanNvbjogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBpbmplY3QgKGluamVjdG9yOiBhbnkpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gTGluZSAxMjgsIG9mIE9iamVjdFRlbXBsYXRlLnRzIChzdGF0aWMgcGVyZm9ybUluamVjdGlvbnMpXG4gICAgfVxuXG4gICAgc3RhdGljIGFtb3JwaGljUHJvcGVydGllczogYW55O1xuICAgIHN0YXRpYyBhbW9ycGhpY0NoaWxkQ2xhc3NlczogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIGFtb3JwaGljUGFyZW50Q2xhc3M6IENvbnN0cnVjdGFibGU7XG4gICAgc3RhdGljIGFtb3JwaGljQ2xhc3NOYW1lIDogc3RyaW5nO1xuICAgIHN0YXRpYyBhbW9ycGhpY1N0YXRpYyA6IHR5cGVvZiBPYmplY3RUZW1wbGF0ZTtcblxuICAgIC8vIE9iamVjdCBtZW1iZXJzXG4gICAgX19pZF9fOiBTdHJpbmc7XG4gICAgYW1vcnBoaWNMZWF2ZUVtcHR5OiBib29sZWFuO1xuXG4gICAgLy8gRGVwcmVjYXRlZCBsZWdhY3kgbmFtaW5nXG4gICAgc3RhdGljIF9fY2hpbGRyZW5fXzogQXJyYXk8Q29uc3RydWN0YWJsZT47XG4gICAgc3RhdGljIF9fcGFyZW50X186IENvbnN0cnVjdGFibGU7XG4gICAgYW1vcnBoaWNDbGFzcyA6IGFueVxuXG4gICAgY29uc3RydWN0b3Iob2JqZWN0VGVtcGxhdGUgPSBPYmplY3RUZW1wbGF0ZSkge1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSB0aGlzLl9fdGVtcGxhdGVfXztcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGNvbnN0cnVjdG9yTmFtZShPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpICsgJyBtaXNzaW5nIEBzdXBlcnR5cGVDbGFzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVsbCBjb25zdHJ1Y3RvciBub3QgdG8gZXhlY3V0ZSBhcyB0aGlzIGlzIGFuIGVtcHR5IG9iamVjdFxuICAgICAgICB0aGlzLmFtb3JwaGljTGVhdmVFbXB0eSA9IG9iamVjdFRlbXBsYXRlLl9zdGFzaE9iamVjdCh0aGlzLCB0ZW1wbGF0ZSk7XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGV2ZWwgaW5qZWN0aW9ucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgdXNlXG4gICAgICAgIHZhciB0YXJnZXRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICB3aGlsZSAodGFyZ2V0VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfXy5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tpeF0uY2FsbCh0aGlzLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlID0gdGFyZ2V0VGVtcGxhdGUuX19wYXJlbnRfXztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdsb2JhbCBpbmplY3Rpb25zIHVzZWQgYnkgdGhlIGZyYW1ld29ya1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fX2luamVjdGlvbnNfX1tqXS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbW9ycGhpYyA9IG9iamVjdFRlbXBsYXRlO1xuXG4gICAgICAgIC8vQFRPRE86IGZpbGwgdGhlIHByb3BlcnRpZXMgb2YgJ3RoaXMnIGluPyBkbyBJIG5lZWQgdGhpcyBhZnRlciBkZWxldGluZyB0aGUgY2FsbGVyQ29udGV4dCBhcHByb2FjaFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGF2ZW4tbGlmZS9zdXBlcnR5cGUvaXNzdWVzLzdcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGFtb3JwaGljVG9KU09OKGNiPyl7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVyLnRvSlNPTlN0cmluZyh0aGlzLCBjYik7XG4gICAgfSBcblxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFRlbXBsYXRlLl9nZXREZWZpbmVQcm9wZXJ0eShwcm9wLCB0aGlzLl9fdGVtcGxhdGVfXyk7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlWYWx1ZXMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkudmFsdWVzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS52YWx1ZXM7XG4gICAgfVxuICAgIGFtb3JwaGljR2V0UHJvcGVydHlEZXNjcmlwdGlvbnMocHJvcCkge1xuICAgICAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSB0aGlzLl9fcHJvcF9fKHByb3ApIHx8IHRoaXMuX19wcm9wX18oJ18nICsgcHJvcCk7XG4gICAgXG4gICAgICAgIGlmICh0eXBlb2YoZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucy5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnM7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29weShjcmVhdG9yKSB7XG4gICAgICAgIHZhciBvYmogPSB0aGlzO1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuZnJvbVBPSk8ob2JqLCBvYmouX190ZW1wbGF0ZV9fLCBudWxsLCBudWxsLCB1bmRlZmluZWQsIG51bGwsIG51bGwsIGNyZWF0b3IpO1xuICAgIH1cblxuICAgIGluamVjdChpbmplY3Rvcikge1xuICAgICAgICBPYmplY3RUZW1wbGF0ZS5pbmplY3QodGhpcywgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIGNvcHlQcm9wZXJ0aWVzKG9iaikge1xuICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgICAgICAgdGhpc1twcm9wXSA9IG9ialtwcm9wXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfX3Byb3BfXyhwcm9wKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljR2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3ApO1xuICAgIH1cbiAgICBfX3ZhbHVlc19fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKTtcbiAgICB9XG4gICAgX19kZXNjcmlwdGlvbnNfXyhwcm9wKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKTtcbiAgICB9XG4gICAgdG9KU09OU3RyaW5nKGNiPykge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY1RvSlNPTihjYilcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJ0eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1N1cGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBZ0Q7QUFDaEQsMkNBQTJDO0FBRTNDLFNBQVMsZUFBZSxDQUFDLFdBQVc7SUFDaEMsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2SCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQUtEOzs7OztHQUtHO0FBRUgsTUFBYSxTQUFTO0lBSWxCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDOUQsK0NBQStDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsd0JBQWtDO1FBQzNELCtDQUErQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDaEMsK0NBQStDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVksRUFBRSxjQUFzQjtRQUN0RCwrQ0FBK0M7SUFDbkQsQ0FBQztJQUNELE1BQU0sQ0FBQyxhQUFhO1FBQ2hCLCtDQUErQztJQUNuRCxDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2hCLCtDQUErQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUFFLElBQVksRUFBRSxRQUFpQjtRQUM1QywrQ0FBK0M7SUFFbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBYTtRQUN4QiwyRUFBMkU7SUFDL0UsQ0FBQztJQWlCRCxZQUFZLGNBQWMsR0FBRywrQkFBYztRQUN2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QUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFHO1FBQ2QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxZQUFZLENBQUMsRUFBRztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0o7QUFoSUQsOEJBZ0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RUZW1wbGF0ZX0gZnJvbSAnLi9PYmplY3RUZW1wbGF0ZSc7XG5pbXBvcnQgKiBhcyBzZXJpYWxpemVyIGZyb20gJy4vc2VyaWFsaXplcic7XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdG9yTmFtZShjb25zdHJ1Y3Rvcikge1xuICAgIHZhciBuYW1lZEZ1bmN0aW9uID0gY29uc3RydWN0b3IudG9TdHJpbmcoKS5tYXRjaCgvY2xhc3MgKFteXVxcdyspLykgfHwgY29uc3RydWN0b3IudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb24gKFteKF0qKS8pO1xuICAgIHJldHVybiBuYW1lZEZ1bmN0aW9uID8gbmFtZWRGdW5jdGlvblsxXSA6IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIENvbnN0cnVjdGFibGUgPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiB7fTtcblxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIHR5cGVzY3JpcHQgY2xhc3Nlcy4gXG4gKiBJdCB3aWxsIGluamVjdCBtZW1iZXJzIGludG8gdGhlIG9iamVjdCBmcm9tIGJvdGggdGhlIHRlbXBsYXRlIGFuZCBvYmplY3RUZW1wbGF0ZVxuICogQHBhcmFtIHtPYmplY3RUZW1wbGF0ZX0gLSBvdGhlciBsYXllcnMgY2FuIHBhc3MgaW4gdGhlaXIgb3duIG9iamVjdCB0ZW1wbGF0ZSAodGhpcyBpcyB0aGUgb2JqZWN0IG5vdCBPYmplY3RUZW1wbGF0ZSlcbiAqIEByZXR1cm5zIHtPYmplY3R9IHRoZSBvYmplY3QgaXRzZWxmXG4gKi9cblxuZXhwb3J0IGNsYXNzIFN1cGVydHlwZSB7XG4gICAgX190ZW1wbGF0ZV9fOiBhbnk7XG4gICAgYW1vcnBoaWMgOiB0eXBlb2YgT2JqZWN0VGVtcGxhdGU7XG5cbiAgICBzdGF0aWMgYW1vcnBoaWNDcmVhdGVQcm9wZXJ0eShwcm9wOiBTdHJpbmcsIGRlZmluZVByb3BlcnR5OiBPYmplY3QpIHtcbiAgICAgICAgLy8gSW1wbGVtZW50ZWQgaW4gdGhlIGRlY29yYXRvciBAc3VwZXJ0eXBlQ2xhc3NcbiAgICB9XG5cbiAgICBzdGF0aWMgYW1vcnBoaWNHZXRQcm9wZXJ0aWVzKGluY2x1ZGVWaXJ0dWFsUHJvcGVydGllcz86IGJvb2xlYW4pOmFueSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuICAgIHN0YXRpYyBhbW9ycGhpY0Zyb21KU09OKGpzb246IHN0cmluZykge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBzdGF0aWMgY3JlYXRlUHJvcGVydHkocHJvcDogU3RyaW5nLCBkZWZpbmVQcm9wZXJ0eTogT2JqZWN0KSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgfVxuICAgIHN0YXRpYyBnZXRQcm9wZXJ0aWVzKCkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiB0aGUgZGVjb3JhdG9yIEBzdXBlcnR5cGVDbGFzc1xuICAgIH1cbiAgICBhbW9ycGhpY0dldENsYXNzTmFtZSAoKSA6IHN0cmluZyB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgc3RhdGljIGZyb21KU09OIChqc29uOiBzdHJpbmcsIGlkUHJlZml4Pzogc3RyaW5nKSB7XG4gICAgICAgIC8vIEltcGxlbWVudGVkIGluIHRoZSBkZWNvcmF0b3IgQHN1cGVydHlwZUNsYXNzXG4gICAgXG4gICAgfVxuXG4gICAgc3RhdGljIGluamVjdCAoaW5qZWN0b3I6IGFueSkge1xuICAgICAgICAvLyBJbXBsZW1lbnRlZCBpbiBMaW5lIDEyOCwgb2YgT2JqZWN0VGVtcGxhdGUudHMgKHN0YXRpYyBwZXJmb3JtSW5qZWN0aW9ucylcbiAgICB9XG5cbiAgICBzdGF0aWMgYW1vcnBoaWNQcm9wZXJ0aWVzOiBhbnk7XG4gICAgc3RhdGljIGFtb3JwaGljQ2hpbGRDbGFzc2VzOiBBcnJheTxDb25zdHJ1Y3RhYmxlPjtcbiAgICBzdGF0aWMgYW1vcnBoaWNQYXJlbnRDbGFzczogQ29uc3RydWN0YWJsZTtcbiAgICBzdGF0aWMgYW1vcnBoaWNDbGFzc05hbWUgOiBzdHJpbmc7XG4gICAgc3RhdGljIGFtb3JwaGljU3RhdGljIDogdHlwZW9mIE9iamVjdFRlbXBsYXRlO1xuXG4gICAgLy8gT2JqZWN0IG1lbWJlcnNcbiAgICBfX2lkX186IFN0cmluZztcbiAgICBhbW9ycGhpY0xlYXZlRW1wdHk6IGJvb2xlYW47XG5cbiAgICAvLyBEZXByZWNhdGVkIGxlZ2FjeSBuYW1pbmdcbiAgICBzdGF0aWMgX19jaGlsZHJlbl9fOiBBcnJheTxDb25zdHJ1Y3RhYmxlPjtcbiAgICBzdGF0aWMgX19wYXJlbnRfXzogQ29uc3RydWN0YWJsZTtcbiAgICBhbW9ycGhpY0NsYXNzIDogYW55XG5cbiAgICBjb25zdHJ1Y3RvcihvYmplY3RUZW1wbGF0ZSA9IE9iamVjdFRlbXBsYXRlKSB7XG4gICAgICAgIHZhciB0ZW1wbGF0ZSA9IHRoaXMuX190ZW1wbGF0ZV9fO1xuICAgICAgICBpZiAoIXRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoY29uc3RydWN0b3JOYW1lKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcikgKyAnIG1pc3NpbmcgQHN1cGVydHlwZUNsYXNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUZWxsIGNvbnN0cnVjdG9yIG5vdCB0byBleGVjdXRlIGFzIHRoaXMgaXMgYW4gZW1wdHkgb2JqZWN0XG4gICAgICAgIHRoaXMuYW1vcnBoaWNMZWF2ZUVtcHR5ID0gb2JqZWN0VGVtcGxhdGUuX3N0YXNoT2JqZWN0KHRoaXMsIHRlbXBsYXRlKTtcblxuICAgICAgICAvLyBUZW1wbGF0ZSBsZXZlbCBpbmplY3Rpb25zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG1heSB1c2VcbiAgICAgICAgdmFyIHRhcmdldFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgICAgIHdoaWxlICh0YXJnZXRUZW1wbGF0ZSkge1xuICAgICAgICAgICAgZm9yICh2YXIgaXggPSAwOyBpeCA8IHRhcmdldFRlbXBsYXRlLl9faW5qZWN0aW9uc19fLmxlbmd0aDsgKytpeCkge1xuICAgICAgICAgICAgICAgIHRhcmdldFRlbXBsYXRlLl9faW5qZWN0aW9uc19fW2l4XS5jYWxsKHRoaXMsIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0VGVtcGxhdGUgPSB0YXJnZXRUZW1wbGF0ZS5fX3BhcmVudF9fO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2xvYmFsIGluamVjdGlvbnMgdXNlZCBieSB0aGUgZnJhbWV3b3JrXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb2JqZWN0VGVtcGxhdGUuX19pbmplY3Rpb25zX18ubGVuZ3RoOyArK2opIHtcbiAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9faW5qZWN0aW9uc19fW2pdLmNhbGwodGhpcywgdGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFtb3JwaGljID0gb2JqZWN0VGVtcGxhdGU7XG5cbiAgICAgICAgLy9AVE9ETzogZmlsbCB0aGUgcHJvcGVydGllcyBvZiAndGhpcycgaW4/IGRvIEkgbmVlZCB0aGlzIGFmdGVyIGRlbGV0aW5nIHRoZSBjYWxsZXJDb250ZXh0IGFwcHJvYWNoXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXZlbi1saWZlL3N1cGVydHlwZS9pc3N1ZXMvN1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYW1vcnBoaWNUb0pTT04oY2I/KXtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXIudG9KU09OU3RyaW5nKHRoaXMsIGNiKTtcbiAgICB9IFxuXG4gICAgYW1vcnBoaWNHZXRQcm9wZXJ0eURlZmluaXRpb24ocHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0VGVtcGxhdGUuX2dldERlZmluZVByb3BlcnR5KHByb3AsIHRoaXMuX190ZW1wbGF0ZV9fKTtcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRQcm9wZXJ0eVZhbHVlcyhwcm9wKSB7XG4gICAgICAgIHZhciBkZWZpbmVQcm9wZXJ0eSA9IHRoaXMuX19wcm9wX18ocHJvcCkgfHwgdGhpcy5fX3Byb3BfXygnXycgKyBwcm9wKTtcbiAgICBcbiAgICAgICAgaWYgKHR5cGVvZihkZWZpbmVQcm9wZXJ0eS52YWx1ZXMpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkudmFsdWVzLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LnZhbHVlcztcbiAgICB9XG4gICAgYW1vcnBoaWNHZXRQcm9wZXJ0eURlc2NyaXB0aW9ucyhwcm9wKSB7XG4gICAgICAgIHZhciBkZWZpbmVQcm9wZXJ0eSA9IHRoaXMuX19wcm9wX18ocHJvcCkgfHwgdGhpcy5fX3Byb3BfXygnXycgKyBwcm9wKTtcbiAgICBcbiAgICAgICAgaWYgKHR5cGVvZihkZWZpbmVQcm9wZXJ0eS5kZXNjcmlwdGlvbnMpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkuZGVzY3JpcHRpb25zLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmRlc2NyaXB0aW9ucztcbiAgICB9XG5cbiAgICBjcmVhdGVDb3B5KGNyZWF0b3IpIHtcbiAgICAgICAgdmFyIG9iaiA9IHRoaXM7XG4gICAgICAgIHJldHVybiBPYmplY3RUZW1wbGF0ZS5mcm9tUE9KTyhvYmosIG9iai5fX3RlbXBsYXRlX18sIG51bGwsIG51bGwsIHVuZGVmaW5lZCwgbnVsbCwgbnVsbCwgY3JlYXRvcik7XG4gICAgfVxuXG4gICAgaW5qZWN0KGluamVjdG9yKSB7XG4gICAgICAgIE9iamVjdFRlbXBsYXRlLmluamVjdCh0aGlzLCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgY29weVByb3BlcnRpZXMob2JqKSB7XG4gICAgICAgIGZvciAodmFyIHByb3AgaW4gb2JqKSB7XG4gICAgICAgICAgICB0aGlzW3Byb3BdID0gb2JqW3Byb3BdO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9fcHJvcF9fKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vcnBoaWNHZXRQcm9wZXJ0eURlZmluaXRpb24ocHJvcCk7XG4gICAgfVxuICAgIF9fdmFsdWVzX18ocHJvcCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY0dldFByb3BlcnR5VmFsdWVzKHByb3ApO1xuICAgIH1cbiAgICBfX2Rlc2NyaXB0aW9uc19fKHByb3Ape1xuICAgICAgICByZXR1cm4gdGhpcy5hbW9ycGhpY0dldFByb3BlcnR5RGVzY3JpcHRpb25zKHByb3ApO1xuICAgIH1cbiAgICB0b0pTT05TdHJpbmcoY2I/KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3JwaGljVG9KU09OKGNiKVxuICAgIH1cbn0iXX0=
{
"name": "@haventech/supertype",
"description": "A type system for classical inheritence, mix-ins and composition.",
"version": "7.0.0-es2020.beta.1",
"version": "7.0.0-es2020.beta.2",
"main": "dist/index.js",

@@ -25,3 +25,3 @@ "types": "dist/index.d.ts",

"ts-node": "10.9.1",
"typescript": "4.9.4"
"typescript": "^4.9.5"
},

@@ -28,0 +28,0 @@ "scripts": {

@@ -125,4 +125,4 @@ export { Supertype } from './Supertype';

function getName() {
//return target.toString().match(/function ([^(]*)/)[1];
return target.toString().match(/class ([^]\w+)/)[1];
const targetName = target.toString().match(/class ([^]\w+)/) || target.toString().match(/function ([^(]*)/)
return targetName[1];
}

@@ -129,0 +129,0 @@ function getDictionary() {

@@ -506,4 +506,3 @@ import * as serializer from './serializer';

function constructorName(constructor) {
const namedFunction = constructor.toString().match(/class ([^]\w+)/);
//const namedFunction = constructor.toString().match(/function ([^(]*)/);
const namedFunction = constructor.toString().match(/class ([^]\w+)/) || constructor.toString().match(/function ([^(]*)/);
return namedFunction ? namedFunction[1] : null;

@@ -510,0 +509,0 @@ }

@@ -5,4 +5,3 @@ import {ObjectTemplate} from './ObjectTemplate';

function constructorName(constructor) {
var namedFunction = constructor.toString().match(/class ([^]\w+)/);
//var namedFunction = constructor.toString().match(/function ([^(]*)/);
var namedFunction = constructor.toString().match(/class ([^]\w+)/) || constructor.toString().match(/function ([^(]*)/);
return namedFunction ? namedFunction[1] : null;

@@ -9,0 +8,0 @@ }

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc