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

@universe/name-parser

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@universe/name-parser - npm Package Compare versions

Comparing version 0.3.0 to 0.4.0

3

dist/src/index.js

@@ -328,3 +328,2 @@ "use strict";

exports.parseFullName = parseFullName;
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBTzBCO0FBRTFCLE1BQU0sUUFBUSxHQUFHLDRFQUE0RSxDQUFDO0FBRTlGLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDekQsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHO0lBQ2YsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTTtJQUNuRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTztJQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQzNFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQzlFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUs7SUFDNUUsTUFBTSxF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QUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QyxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFqUEQsc0NBaVBDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5hbWVTdWZmaXgsXG4gIFBvc3ROb21pbmFsLFxuICBQcmVOb21pbmFsLFxuICBpc05hbWVTdWZmaXgsXG4gIGlzUHJlTm9taW5hbCxcbiAgaXNQb3N0Tm9taW5hbCxcbn0gZnJvbSAnQHVuaXZlcnNlL21vZGVscyc7XG5cbmNvbnN0IE5JQ0tOQU1FID0gL1xccyg/OlvigJjigJknXShbXuKAmOKAmSddKylb4oCY4oCZJ118W+KAnOKAnVwiXShbXuKAnOKAnVwiXSspW+KAnOKAnVwiXXxcXFsoW15cXF1dKylcXF18XFwoKFteKV0rKVxcKSksP1xccy87XG5cbmNvbnN0IENPTkpVTkNUSU9OUyA9IHtcbiAgJyYnOiAxLCBhbmQ6IDEsIGV0OiAxLCBlOiAxLCBvZjogMSwgdGhlOiAxLCB1bmQ6IDEsIHk6IDEsXG59O1xuXG5jb25zdCBQUkVGSVhFUyA9IFtcbiAgJ2EnLCAnYWInLCAnYW50dW5lJywgJ2FwJywgJ2FidScsICdhbCcsICdhbG0nLCAnYWx0JywgJ2JhYicsICdiw6RjaycsXG4gICdiYXInLCAnYmF0aCcsICdiYXQnLCAnYmVhdScsICdiZWNrJywgJ2JlbicsICdiZXJnJywgJ2JldCcsICdiaW4nLCAnYmludCcsICdiaXJjaCcsXG4gICdiasO2cmsnLCAnYmrDtnJuJywgJ2JqdXInLCAnZGEnLCAnZGFobCcsICdkYWwnLCAnZGUnLCAnZGVnbGknLCAnZGVsZScsICdkZWwnLFxuICAnZGVsbGEnLCAnZGVyJywgJ2RpJywgJ2RvcycsICdkdScsICdlJywgJ2VrJywgJ2VsJywgJ2VzY29iJywgJ2VzY2gnLCAnZmxlaXNjaCcsXG4gICdmaXR6JywgJ2ZvcnMnLCAnZ290dCcsICdncmlmZicsICdoYWonLCAnaGF1ZycsICdob2xtJywgJ2libicsICdrYXVmJywgJ2tpbCcsXG4gICdrb29wJywgJ2t2YXJuJywgJ2xhJywgJ2xlJywgJ2xpbmQnLCAnbMO2bm4nLCAnbHVuZCcsICdtYWMnLCAnbWhpYycsICdtaWMnLCAnbWlyJyxcbiAgJ25hJywgJ25ha2EnLCAnbmVkZXInLCAnbmljJywgJ25pJywgJ25pbicsICdub3JkJywgJ25vcnInLCAnbnknLCAnbycsICd1YScsICd1aVxcJycsXG4gICfDtmZ2ZXInLCAnb3N0JywgJ8O2dmVyJywgJ8O2eicsICdwYXBhJywgJ3BvdXInLCAncXVhcm4nLCAnc2tvZycsICdza29vZycsICdzdGVuJyxcbiAgJ3N0b3InLCAnc3Ryw7ZtJywgJ3PDtmRlcicsICd0ZXInLCAndGVyJywgJ3RyZScsICd0w7xyaycsICd2YW4nLCAndsOkc3QnLCAndsOkc3RlcicsXG4gICd2ZXN0JywgJ3ZvbicsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZE5hbWUge1xuICBwcmVOb21pbmFsOiBQcmVOb21pbmFsIHwgbnVsbDtcbiAgZmlyc3Q6IHN0cmluZyB8IG51bGw7XG4gIG1pZGRsZTogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdDogc3RyaW5nIHwgbnVsbDtcbiAgbmljazogc3RyaW5nIHwgbnVsbDtcbiAgc3VmZml4OiBOYW1lU3VmZml4IHwgbnVsbDtcbiAgcG9zdE5vbWluYWw6IFBvc3ROb21pbmFsW10gfCBudWxsO1xuICBlcnJvcjogc3RyaW5nW107XG4gfVxuXG5jb25zdCBmb3JjZUNhc2UgPSB7XG4gIGU6ICdlJyxcbiAgeTogJ3knLFxuICBhdjogJ2F2JyxcbiAgYWY6ICdhZicsXG4gIGRhOiAnZGEnLFxuICBkYWw6ICdkYWwnLFxuICBkZTogJ2RlJyxcbiAgZGVsOiAnZGVsJyxcbiAgZGVyOiAnZGVyJyxcbiAgZGk6ICdkaScsXG4gIGxhOiAnbGEnLFxuICBsZTogJ2xlJyxcbiAgdmFuOiAndmFuJyxcbiAgZGVuOiAnZGVuJyxcbiAgdmVsOiAndmVsJyxcbiAgdm9uOiAndm9uJyxcbiAgaWk6ICdJSScsXG4gIGlpaTogJ0lJSScsXG4gIGl2OiAnSVYnLFxuICAnai5kJzogJ0ouRC4nLFxuICAnbGwubSc6ICdMTC5NLicsXG4gICdtLmQuJzogJ00uRC4nLFxuICAnZC5vLic6ICdELk8uJyxcbiAgJ2QuYy4nOiAnRC5DLicsXG4gICdwaC5kLic6ICdQaC5ELicsXG59O1xuXG5mdW5jdGlvbiBjYXBpdGFsaXplKHdvcmQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghd29yZCkge1xuICAgIHJldHVybiB3b3JkO1xuICB9XG4gIHJldHVybiB3b3JkWzBdLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpO1xufVxuXG5mdW5jdGlvbiB0aXRsZUNhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgn4oCTJywgJy0nKSAvLyBlbS1kYXNoIHRvIGRhc2hcbiAgICAuc3BsaXQoJyAnKS5tYXAoY2FwaXRhbGl6ZSkuam9pbignICcpXG4gICAgLnNwbGl0KCcuJykubWFwKGNhcGl0YWxpemUpLmpvaW4oJy4nKVxuICAgIC5zcGxpdCgnXFwnJykubWFwKGNhcGl0YWxpemUpLmpvaW4oJ1xcJycpXG4gICAgLnNwbGl0KCctJykubWFwKGNhcGl0YWxpemUpLmpvaW4oJy0nKTtcbn1cblxuLy8gSWYgZml4Q2FzZSA9IDEsIGZpeCBjYXNlIG9mIHBhcnNlZE5hbWUgcGFydHMgYmVmb3JlIHJldHVybmluZ1xuZnVuY3Rpb24gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZTogUGFyc2VkTmFtZSk6IFBhcnNlZE5hbWUge1xuICBjb25zdCBub29wID0geyBlcnJvcjogMSwgc3VmZml4OiAxLCBwb3N0Tm9taW5hbDogMSwgcHJlTm9taW5hbDogMSB9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJzZWROYW1lKSkge1xuICAgIC8vIE5vLW9wIG9uIHN0YW5kYXJkaXplZCBkYXRhIGZpZWxkcy5cbiAgICBpZiAobm9vcFtrZXldIHx8ICFwYXJzZWROYW1lW2tleV0pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBuZXdXb3JkID0gW107XG4gICAgZm9yIChsZXQgd29yZCBvZiBwYXJzZWROYW1lW2tleV0uc3BsaXQoJyAnKSkge1xuICAgICAgbGV0IGNvbW1hID0gJyc7XG4gICAgICBpZiAod29yZC5zbGljZSgtMSkgPT09ICcsJykge1xuICAgICAgICBjb21tYSA9ICcsJztcbiAgICAgICAgd29yZCA9IHdvcmQuc2xpY2UoMCwgLTEpO1xuICAgICAgfVxuICAgICAgLy8gU2V0IGNhc2Ugb2Ygd29yZHMgaW4gZm9yY2VDYXNlTGlzdFxuICAgICAgaWYgKGZvcmNlQ2FzZVt3b3JkLnRvTG93ZXJDYXNlKCldKSB7XG4gICAgICAgIHdvcmQgPSBmb3JjZUNhc2Vbd29yZC50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIH1cblxuICAgICAgLy8gVXBwZXJjYXNlIGluaXRpYWxzXG4gICAgICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB3b3JkID0gd29yZC50b1VwcGVyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBEZXRlY3QgTVthXWNDQVNFIHwgbVthXWNjYXNlIHwgTVtBXUNDQVNFLCBhbmQgY29udmVydCB0byBNY0Nhc2VcbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICBrZXkgPT09ICdsYXN0JyAmJlxuICAgICAgICB3b3JkLmxlbmd0aCA+IDIgJiZcbiAgICAgICAgKHdvcmQuc2xpY2UoMCwgMikudG9Mb3dlckNhc2UoKSA9PT0gJ21jJyB8fCB3b3JkLnNsaWNlKDAsIDMpLnRvTG93ZXJDYXNlKCkgPT09ICdtYWMnKVxuICAgICAgKSB7XG4gICAgICAgIGlmICh3b3JkLnNsaWNlKDAsIDIpLnRvTG93ZXJDYXNlKCkgPT09ICdtYycpIHtcbiAgICAgICAgICB3b3JkID0gJ01jJyArIHdvcmQuc2xpY2UoMiwgMykudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB3b3JkID0gJ01hYycgKyB3b3JkLnNsaWNlKDMsIDQpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVydCBhbGwgb3RoZXIgdGhpbmdzIHRvIFRpdGxlIENhc2VcbiAgICAgIGVsc2Uge1xuICAgICAgICB3b3JkID0gdGl0bGVDYXNlKHdvcmQpO1xuICAgICAgfVxuXG4gICAgICBuZXdXb3JkLnB1c2god29yZCArIGNvbW1hKTtcbiAgICB9XG5cbiAgICBwYXJzZWROYW1lW2tleV0gPSBuZXdXb3JkLmpvaW4oJyAnKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkTmFtZTtcbn1cblxuLy8gSWYgc3RvcE9uRXJyb3IgPSAxLCB0aHJvdyBlcnJvciwgb3RoZXJ3aXNlIHJldHVybiBlcnJvciBtZXNzYWdlcyBpbiBhcnJheVxuZnVuY3Rpb24gaGFuZGxlRXJyb3IobWVzc2FnZTogc3RyaW5nLCBwYXJzZWROYW1lOiBQYXJzZWROYW1lKSB7XG4gIHBhcnNlZE5hbWUuZXJyb3IucHVzaChtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnVsbE5hbWUobmFtZVRvUGFyc2U6IHN0cmluZykge1xuICBsZXQgcGFydHNGb3VuZENvdW50LCByZW1haW5pbmdDb21tYXM7XG5cbiAgY29uc3QgbmFtZVBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBuYW1lQ29tbWFzOiAoc3RyaW5nIHwgbnVsbClbXSA9IFtudWxsXTtcbiAgbGV0IHBhcnRzRm91bmQ6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgcGFyc2VkTmFtZTogUGFyc2VkTmFtZSA9IHtcbiAgICBwcmVOb21pbmFsOiBudWxsLFxuICAgIGZpcnN0OiBudWxsLFxuICAgIG1pZGRsZTogbnVsbCxcbiAgICBsYXN0OiBudWxsLFxuICAgIG5pY2s6IG51bGwsXG4gICAgc3VmZml4OiBudWxsLFxuICAgIHBvc3ROb21pbmFsOiBudWxsLFxuICAgIGVycm9yOiBbXSxcbiAgfTtcblxuICAvLyBJZiBubyBpbnB1dCBuYW1lLCBvciBpbnB1dCBuYW1lIGlzIG5vdCBhIHN0cmluZywgYWJvcnRcbiAgaWYgKCFuYW1lVG9QYXJzZSB8fCB0eXBlb2YgbmFtZVRvUGFyc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgaGFuZGxlRXJyb3IoJ05vIGlucHV0JywgcGFyc2VkTmFtZSk7XG4gICAgcmV0dXJuIHBhcnNlZE5hbWU7XG4gIH1cblxuICAvLyBOaWNrbmFtZTogcmVtb3ZlIGFuZCBzdG9yZSBwYXJ0cyB3aXRoIHN1cnJvdW5kaW5nIHB1bmN0dWF0aW9uIGFzIG5pY2tuYW1lc1xuICBjb25zdCBuaWNrbmFtZXMgPSBbXTtcbiAgbGV0IG5pY2tuYW1lID0gKE5JQ0tOQU1FLmV4ZWMoYCAke25hbWVUb1BhcnNlfSBgKSB8fCBbXSlbMF07XG4gIHdoaWxlIChuaWNrbmFtZSkge1xuICAgIG5hbWVUb1BhcnNlID0gbmFtZVRvUGFyc2UucmVwbGFjZShuaWNrbmFtZS50cmltKCksICcgJykudHJpbSgpO1xuICAgIG5pY2tuYW1lcy5wdXNoKG5pY2tuYW1lKTtcbiAgICBuaWNrbmFtZSA9IChOSUNLTkFNRS5leGVjKGAgJHtuYW1lVG9QYXJzZX0gYCkgfHwgW10pWzBdO1xuICB9XG5cbiAgcGFyc2VkTmFtZS5uaWNrID0gbmlja25hbWVzLm1hcChuID0+IG4udHJpbSgpLnNsaWNlKDEsIC0xKS5yZXBsYWNlKCcsJywgJycpKS5qb2luKCcsICcpIHx8IG51bGw7XG5cbiAgaWYgKG5pY2tuYW1lcy5sZW5ndGggPiAxKSB7XG4gICAgaGFuZGxlRXJyb3IoYCR7bmlja25hbWVzLmxlbmd0aH0gbmlja25hbWVzIGZvdW5kYCwgcGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBJZiBub3RoaW5nIGxlZnQsIHJldHVybi5cbiAgaWYgKCFuYW1lVG9QYXJzZS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBTcGxpdCByZW1haW5pbmcgbmFtZVRvUGFyc2UgaW50byBwYXJ0cywgcmVtb3ZlIGFuZCBzdG9yZSBwcmVjZWRpbmcgY29tbWFzXG4gIGZvciAobGV0IHBhcnQgb2YgbmFtZVRvUGFyc2Uuc3BsaXQoJyAnKSkge1xuICAgIGxldCBjb21tYSA9IG51bGw7XG4gICAgaWYgKCFwYXJ0KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9IC8vIERvbid0IHRyZWF0IGVtcHR5IHN0cmluZ3MgZnJvbSBiYWNrIHRvIGJhY2sgc3BhY2VzIGFzIGEgdG9rZW4uXG4gICAgaWYgKHBhcnQuZW5kc1dpdGgoJywnKSkge1xuICAgICAgY29tbWEgPSAnLCc7XG4gICAgICBwYXJ0ID0gcGFydC5zbGljZSgwLCAtMSk7XG4gICAgfVxuICAgIG5hbWVQYXJ0cy5wdXNoKHBhcnQpO1xuICAgIG5hbWVDb21tYXMucHVzaChjb21tYSk7XG4gIH1cblxuICAvLyBKb2luIGNvbmp1bmN0aW9ucyB0byByaWdodCBzaWRlIHN1cnJvdW5kaW5nIG5hbWVcbiAgLy8gQWxsb3dzIHVzIHRvIHBhcnNlIHByZWZpeGVkIG5vbWluYWxzIGFuZCBzdWZmaXhlcyAoZXg6IFRoZSBIb25vcmFibGUsIHRoZSBUaGlyZClcbiAgaWYgKG5hbWVQYXJ0cy5sZW5ndGggPiAyKSB7XG4gICAgZm9yIChsZXQgaSA9IG5hbWVQYXJ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKENPTkpVTkNUSU9OU1tuYW1lUGFydHNbaV0udG9Mb3dlckNhc2UoKV0gPiAtMSkge1xuICAgICAgICBuYW1lUGFydHNbaV0gPSBuYW1lUGFydHNbaV0gKyAnICcgKyBuYW1lUGFydHNbaSArIDFdO1xuICAgICAgICBuYW1lUGFydHMuc3BsaWNlKGkgKyAxLCAxKTtcbiAgICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSArIDEsIDEpO1xuICAgICAgICBpLS07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGl0bGU6IHJlbW92ZSBhbmQgc3RvcmUgbWF0Y2hpbmcgcGFydHMgYXMgcHJlIG5vbWluYWxzXG4gIGNvbnN0IHByZU5vbXNGb3VuZDogUHJlTm9taW5hbFtdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZVBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcGFydFRvQ2hlY2sgPSBuYW1lUGFydHNbaV07XG4gICAgY29uc3QgcHJlbm9tID0gaXNQcmVOb21pbmFsKHBhcnRUb0NoZWNrKTtcbiAgICBpZiAoIXByZW5vbSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIG5hbWVQYXJ0cy5zcGxpY2UoaSwgMSk7XG4gICAgcHJlTm9tc0ZvdW5kLnB1c2gocHJlbm9tKTtcbiAgICBpZiAobmFtZUNvbW1hc1tpXSA9PT0gJywnKSB7IC8vIEtlZXAgY29tbWEsIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXJcbiAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGkgKyAxLCAxKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBuYW1lQ29tbWFzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cbiAgcGFydHNGb3VuZENvdW50ID0gcHJlTm9tc0ZvdW5kLmxlbmd0aDtcbiAgaWYgKHBhcnRzRm91bmRDb3VudCA9PT0gMSkge1xuICAgIHBhcnNlZE5hbWUucHJlTm9taW5hbCA9IHByZU5vbXNGb3VuZFswXTtcbiAgICBwYXJ0c0ZvdW5kID0gW107XG4gIH1cbiAgZWxzZSBpZiAocGFydHNGb3VuZENvdW50ID4gMSkge1xuICAgIGhhbmRsZUVycm9yKGAke3BhcnRzRm91bmRDb3VudH0gdGl0bGVzIGZvdW5kYCwgcGFyc2VkTmFtZSk7XG4gICAgLy8gcGFyc2VkTmFtZS5wcmVOb21pbmFsID0gcHJlTm9tc0ZvdW5kLmpvaW4oJywgJyk7XG4gIH1cblxuICBpZiAoIW5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBTdWZmaXg6IHJlbW92ZSBhbmQgc3RvcmUgbWF0Y2hpbmcgcGFydHMgYXMgc3VmZml4ZXNcbiAgY29uc3Qgc3VmZml4ZXNGb3VuZDogTmFtZVN1ZmZpeFtdID0gW107XG4gIGZvciAobGV0IGwgPSBuYW1lUGFydHMubGVuZ3RoLCBpID0gbCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICBjb25zdCBwYXJ0VG9DaGVjayA9IG5hbWVQYXJ0c1tpXTtcbiAgICBjb25zdCBzdWZmaXggPSBpc05hbWVTdWZmaXgocGFydFRvQ2hlY2spO1xuICAgIGlmICghc3VmZml4KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgc3VmZml4ZXNGb3VuZC5wdXNoKHN1ZmZpeCk7XG4gICAgbmFtZVBhcnRzLnNwbGljZShpLCAxKTtcbiAgICBpZiAobmFtZUNvbW1hc1tpXSA9PT0gJywnKSB7IC8vIEtlZXAgY29tbWEsIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXJcbiAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGkgKyAxLCAxKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBuYW1lQ29tbWFzLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cblxuICBwYXJ0c0ZvdW5kQ291bnQgPSBzdWZmaXhlc0ZvdW5kLmxlbmd0aDtcbiAgaWYgKHBhcnRzRm91bmRDb3VudCA9PT0gMSkge1xuICAgIHBhcnNlZE5hbWUuc3VmZml4ID0gc3VmZml4ZXNGb3VuZFswXTtcbiAgfVxuICBlbHNlIGlmIChwYXJ0c0ZvdW5kQ291bnQgPiAxKSB7XG4gICAgaGFuZGxlRXJyb3IoYCR7cGFydHNGb3VuZENvdW50fSBzdWZmaXhlcyBmb3VuZGAsIHBhcnNlZE5hbWUpO1xuICAgIC8vIHBhcnNlZE5hbWUuc3VmZml4ID0gcGFydHNGb3VuZC5qb2luKCcsICcpO1xuICB9XG5cbiAgaWYgKCFuYW1lUGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZpeFBhcnNlZE5hbWVDYXNlKHBhcnNlZE5hbWUpO1xuICB9XG5cbiAgLy8gVGl0bGU6IHJlbW92ZSBhbmQgc3RvcmUgbWF0Y2hpbmcgcGFydHMgYXMgcHJlIG5vbWluYWxzXG4gIGNvbnN0IHBvc3ROb21zRm91bmQ6IFBvc3ROb21pbmFsW10gPSBbXTtcbiAgZm9yIChsZXQgbCA9IG5hbWVQYXJ0cy5sZW5ndGgsIGkgPSBsIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBjb25zdCBwYXJ0VG9DaGVjayA9IG5hbWVQYXJ0c1tpXTtcbiAgICBjb25zdCBwb3N0bm9tID0gaXNQb3N0Tm9taW5hbChwYXJ0VG9DaGVjayk7XG4gICAgaWYgKHBvc3Rub20pIHtcbiAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoaSwgMSk7XG4gICAgICBwb3N0Tm9tc0ZvdW5kLnVuc2hpZnQocG9zdG5vbSk7XG4gICAgICBpZiAobmFtZUNvbW1hc1tpXSA9PT0gJywnKSB7IC8vIEtlZXAgY29tbWEsIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXJcbiAgICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSArIDEsIDEpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwYXJzZWROYW1lLnBvc3ROb21pbmFsID0gcG9zdE5vbXNGb3VuZC5sZW5ndGggPyBwb3N0Tm9tc0ZvdW5kIDogbnVsbDtcblxuICBpZiAoIW5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBKb2luIG5hbWUgcHJlZml4ZXMgdG8gZm9sbG93aW5nIG5hbWVzXG4gIGlmIChuYW1lUGFydHMubGVuZ3RoID4gMSkge1xuICAgIGZvciAobGV0IGkgPSBuYW1lUGFydHMubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmIChQUkVGSVhFUy5pbmRleE9mKG5hbWVQYXJ0c1tpXS50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG4gICAgICAgIG5hbWVQYXJ0c1tpXSA9IG5hbWVQYXJ0c1tpXSArICcgJyArIG5hbWVQYXJ0c1tpICsgMV07XG4gICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoaSArIDEsIDEpO1xuICAgICAgICBuYW1lQ29tbWFzLnNwbGljZShpICsgMSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSm9pbiBjb25qdW5jdGlvbnMgdG8gbGVmdCBzaWRlIHN1cnJvdW5kaW5nIG5hbWVcbiAgLy8gVGhlc2UgYXJlIGFjdHVhbCBuYW1lIGNvbmp1bmN0aW9ucyBpZiB0aGV5IHdlcmVuJ3Qgc2Nvb3BlZCBieSBieSBQcmVOb21pbmFsLCBQb3N0Tm9taW5hbCBvciBTdWZmaXggcGFyc2luZy5cbiAgLy8gRXg6IGRlIExvcmVuem8geSBHdXRpZXJlelxuICBpZiAobmFtZVBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICBmb3IgKGxldCBpID0gbmFtZVBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoIX5uYW1lUGFydHNbaV0uaW5kZXhPZignICcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFydHMgPSBuYW1lUGFydHNbaV0uc3BsaXQoJyAnKTtcbiAgICAgIGlmIChDT05KVU5DVElPTlNbcGFydHNbMF0udG9Mb3dlckNhc2UoKV0gJiYgbmFtZVBhcnRzW2kgLSAxXSkge1xuICAgICAgICBuYW1lUGFydHNbaV0gPSBuYW1lUGFydHNbaSAtIDFdICsgJyAnICsgbmFtZVBhcnRzW2ldO1xuICAgICAgICBuYW1lUGFydHMuc3BsaWNlKGkgLSAxLCAxKTtcbiAgICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSAtIDEsIDEpO1xuICAgICAgICBpLS07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3VmZml4OiByZW1vdmUgYW5kIHN0b3JlIGl0ZW1zIGFmdGVyIGV4dHJhIGNvbW1hcyBhcyBzdWZmaXhlc1xuICBuYW1lQ29tbWFzLnBvcCgpO1xuICBjb25zdCBmaXJzdENvbW1hID0gbmFtZUNvbW1hcy5pbmRleE9mKCcsJyk7XG4gIHJlbWFpbmluZ0NvbW1hcyA9IG5hbWVDb21tYXMuZmlsdGVyKGZ1bmN0aW9uKHYpIHtcbiAgICByZXR1cm4gdiAhPT0gbnVsbDtcbiAgfSkubGVuZ3RoO1xuICBpZiAoZmlyc3RDb21tYSA+IDEgfHwgcmVtYWluaW5nQ29tbWFzID4gMSkge1xuICAgIGZvciAobGV0IGkgPSBuYW1lUGFydHMubGVuZ3RoIC0gMTsgaSA+PSAyOyBpLS0pIHtcbiAgICAgIGlmIChuYW1lQ29tbWFzW2ldID09PSAnLCcpIHtcbiAgICAgICAgcGFydHNGb3VuZCA9IG5hbWVQYXJ0cy5zcGxpY2UoaSwgMSkuY29uY2F0KHBhcnRzRm91bmQpO1xuICAgICAgICBuYW1lQ29tbWFzLnNwbGljZShpLCAxKTtcbiAgICAgICAgcmVtYWluaW5nQ29tbWFzLS07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChwYXJ0c0ZvdW5kLmxlbmd0aCkge1xuICAgIHBhcnNlZE5hbWUuZXJyb3IucHVzaChgdW5rbm93biBzZWdtZW50OiAke3BhcnRzRm91bmQuam9pbignLCcpfWApO1xuICAgIHBhcnRzRm91bmQgPSBbXTtcbiAgfVxuXG4gIC8vIExhc3QgbmFtZTogcmVtb3ZlIGFuZCBzdG9yZSBsYXN0IG5hbWVcbiAgaWYgKHJlbWFpbmluZ0NvbW1hcyA+IDApIHtcbiAgICBpZiAocmVtYWluaW5nQ29tbWFzID4gMSkge1xuICAgICAgaGFuZGxlRXJyb3IoYCR7KHJlbWFpbmluZ0NvbW1hcyAtIDEpfSBleHRyYSBjb21tYXMgZm91bmRgLCBwYXJzZWROYW1lKTtcbiAgICB9XG4gICAgLy8gUmVtb3ZlIGFuZCBzdG9yZSBhbGwgcGFydHMgYmVmb3JlIGZpcnN0IGNvbW1hIGFzIGxhc3QgbmFtZVxuICAgIGlmIChuYW1lQ29tbWFzLmluZGV4T2YoJywnKSkge1xuICAgICAgcGFyc2VkTmFtZS5sYXN0ID0gbmFtZVBhcnRzLnNwbGljZSgwLCBuYW1lQ29tbWFzLmluZGV4T2YoJywnKSkuam9pbignICcpO1xuICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoMCwgbmFtZUNvbW1hcy5pbmRleE9mKCcsJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBhbmQgc3RvcmUgbGFzdCBwYXJ0IGFzIGxhc3QgbmFtZVxuICBlbHNlIHtcbiAgICBwYXJzZWROYW1lLmxhc3QgPSBuYW1lUGFydHMucG9wKCkgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICghbmFtZVBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIEZpcnN0IG5hbWU6IHJlbW92ZSBhbmQgc3RvcmUgZmlyc3QgcGFydCBhcyBmaXJzdCBuYW1lXG4gIHBhcnNlZE5hbWUuZmlyc3QgPSBuYW1lUGFydHMuc2hpZnQoKSB8fCBudWxsO1xuICBpZiAoIW5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBNaWRkbGUgbmFtZTogc3RvcmUgYWxsIHJlbWFpbmluZyBwYXJ0cyBhcyBtaWRkbGUgbmFtZVxuICBpZiAobmFtZVBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICBoYW5kbGVFcnJvcihgJHtuYW1lUGFydHMubGVuZ3RofSBtaWRkbGUgbmFtZXNgLCBwYXJzZWROYW1lKTtcbiAgfVxuICBwYXJzZWROYW1lLm1pZGRsZSA9IG5hbWVQYXJ0cy5qb2luKCcgJyk7XG5cbiAgcmV0dXJuIGZpeFBhcnNlZE5hbWVDYXNlKHBhcnNlZE5hbWUpO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBTzBCO0FBRTFCLE1BQU0sUUFBUSxHQUFHLDRFQUE0RSxDQUFDO0FBRTlGLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDekQsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHO0lBQ2YsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTTtJQUNuRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTztJQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQzNFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQzlFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUs7SUFDNUUsTUFBTSxF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QUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QyxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFqUEQsc0NBaVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmFtZVN1ZmZpeCxcbiAgUG9zdE5vbWluYWwsXG4gIFByZU5vbWluYWwsXG4gIGlzTmFtZVN1ZmZpeCxcbiAgaXNQcmVOb21pbmFsLFxuICBpc1Bvc3ROb21pbmFsLFxufSBmcm9tICdAdW5pdmVyc2UvbW9kZWxzJztcblxuY29uc3QgTklDS05BTUUgPSAvXFxzKD86W+KAmOKAmSddKFte4oCY4oCZJ10rKVvigJjigJknXXxb4oCc4oCdXCJdKFte4oCc4oCdXCJdKylb4oCc4oCdXCJdfFxcWyhbXlxcXV0rKVxcXXxcXCgoW14pXSspXFwpKSw/XFxzLztcblxuY29uc3QgQ09OSlVOQ1RJT05TID0ge1xuICAnJic6IDEsIGFuZDogMSwgZXQ6IDEsIGU6IDEsIG9mOiAxLCB0aGU6IDEsIHVuZDogMSwgeTogMSxcbn07XG5cbmNvbnN0IFBSRUZJWEVTID0gW1xuICAnYScsICdhYicsICdhbnR1bmUnLCAnYXAnLCAnYWJ1JywgJ2FsJywgJ2FsbScsICdhbHQnLCAnYmFiJywgJ2LDpGNrJyxcbiAgJ2JhcicsICdiYXRoJywgJ2JhdCcsICdiZWF1JywgJ2JlY2snLCAnYmVuJywgJ2JlcmcnLCAnYmV0JywgJ2JpbicsICdiaW50JywgJ2JpcmNoJyxcbiAgJ2Jqw7ZyaycsICdiasO2cm4nLCAnYmp1cicsICdkYScsICdkYWhsJywgJ2RhbCcsICdkZScsICdkZWdsaScsICdkZWxlJywgJ2RlbCcsXG4gICdkZWxsYScsICdkZXInLCAnZGknLCAnZG9zJywgJ2R1JywgJ2UnLCAnZWsnLCAnZWwnLCAnZXNjb2InLCAnZXNjaCcsICdmbGVpc2NoJyxcbiAgJ2ZpdHonLCAnZm9ycycsICdnb3R0JywgJ2dyaWZmJywgJ2hhaicsICdoYXVnJywgJ2hvbG0nLCAnaWJuJywgJ2thdWYnLCAna2lsJyxcbiAgJ2tvb3AnLCAna3Zhcm4nLCAnbGEnLCAnbGUnLCAnbGluZCcsICdsw7ZubicsICdsdW5kJywgJ21hYycsICdtaGljJywgJ21pYycsICdtaXInLFxuICAnbmEnLCAnbmFrYScsICduZWRlcicsICduaWMnLCAnbmknLCAnbmluJywgJ25vcmQnLCAnbm9ycicsICdueScsICdvJywgJ3VhJywgJ3VpXFwnJyxcbiAgJ8O2ZnZlcicsICdvc3QnLCAnw7Z2ZXInLCAnw7Z6JywgJ3BhcGEnLCAncG91cicsICdxdWFybicsICdza29nJywgJ3Nrb29nJywgJ3N0ZW4nLFxuICAnc3RvcicsICdzdHLDtm0nLCAnc8O2ZGVyJywgJ3RlcicsICd0ZXInLCAndHJlJywgJ3TDvHJrJywgJ3ZhbicsICd2w6RzdCcsICd2w6RzdGVyJyxcbiAgJ3Zlc3QnLCAndm9uJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkTmFtZSB7XG4gIHByZU5vbWluYWw6IFByZU5vbWluYWwgfCBudWxsO1xuICBmaXJzdDogc3RyaW5nIHwgbnVsbDtcbiAgbWlkZGxlOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0OiBzdHJpbmcgfCBudWxsO1xuICBuaWNrOiBzdHJpbmcgfCBudWxsO1xuICBzdWZmaXg6IE5hbWVTdWZmaXggfCBudWxsO1xuICBwb3N0Tm9taW5hbDogUG9zdE5vbWluYWxbXSB8IG51bGw7XG4gIGVycm9yOiBzdHJpbmdbXTtcbiB9XG5cbmNvbnN0IGZvcmNlQ2FzZSA9IHtcbiAgZTogJ2UnLFxuICB5OiAneScsXG4gIGF2OiAnYXYnLFxuICBhZjogJ2FmJyxcbiAgZGE6ICdkYScsXG4gIGRhbDogJ2RhbCcsXG4gIGRlOiAnZGUnLFxuICBkZWw6ICdkZWwnLFxuICBkZXI6ICdkZXInLFxuICBkaTogJ2RpJyxcbiAgbGE6ICdsYScsXG4gIGxlOiAnbGUnLFxuICB2YW46ICd2YW4nLFxuICBkZW46ICdkZW4nLFxuICB2ZWw6ICd2ZWwnLFxuICB2b246ICd2b24nLFxuICBpaTogJ0lJJyxcbiAgaWlpOiAnSUlJJyxcbiAgaXY6ICdJVicsXG4gICdqLmQnOiAnSi5ELicsXG4gICdsbC5tJzogJ0xMLk0uJyxcbiAgJ20uZC4nOiAnTS5ELicsXG4gICdkLm8uJzogJ0QuTy4nLFxuICAnZC5jLic6ICdELkMuJyxcbiAgJ3BoLmQuJzogJ1BoLkQuJyxcbn07XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUod29yZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF3b3JkKSB7XG4gICAgcmV0dXJuIHdvcmQ7XG4gIH1cbiAgcmV0dXJuIHdvcmRbMF0udG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSk7XG59XG5cbmZ1bmN0aW9uIHRpdGxlQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKCfigJMnLCAnLScpIC8vIGVtLWRhc2ggdG8gZGFzaFxuICAgIC5zcGxpdCgnICcpLm1hcChjYXBpdGFsaXplKS5qb2luKCcgJylcbiAgICAuc3BsaXQoJy4nKS5tYXAoY2FwaXRhbGl6ZSkuam9pbignLicpXG4gICAgLnNwbGl0KCdcXCcnKS5tYXAoY2FwaXRhbGl6ZSkuam9pbignXFwnJylcbiAgICAuc3BsaXQoJy0nKS5tYXAoY2FwaXRhbGl6ZSkuam9pbignLScpO1xufVxuXG4vLyBJZiBmaXhDYXNlID0gMSwgZml4IGNhc2Ugb2YgcGFyc2VkTmFtZSBwYXJ0cyBiZWZvcmUgcmV0dXJuaW5nXG5mdW5jdGlvbiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lOiBQYXJzZWROYW1lKTogUGFyc2VkTmFtZSB7XG4gIGNvbnN0IG5vb3AgPSB7IGVycm9yOiAxLCBzdWZmaXg6IDEsIHBvc3ROb21pbmFsOiAxLCBwcmVOb21pbmFsOiAxIH07XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcnNlZE5hbWUpKSB7XG4gICAgLy8gTm8tb3Agb24gc3RhbmRhcmRpemVkIGRhdGEgZmllbGRzLlxuICAgIGlmIChub29wW2tleV0gfHwgIXBhcnNlZE5hbWVba2V5XSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IG5ld1dvcmQgPSBbXTtcbiAgICBmb3IgKGxldCB3b3JkIG9mIHBhcnNlZE5hbWVba2V5XS5zcGxpdCgnICcpKSB7XG4gICAgICBsZXQgY29tbWEgPSAnJztcbiAgICAgIGlmICh3b3JkLnNsaWNlKC0xKSA9PT0gJywnKSB7XG4gICAgICAgIGNvbW1hID0gJywnO1xuICAgICAgICB3b3JkID0gd29yZC5zbGljZSgwLCAtMSk7XG4gICAgICB9XG4gICAgICAvLyBTZXQgY2FzZSBvZiB3b3JkcyBpbiBmb3JjZUNhc2VMaXN0XG4gICAgICBpZiAoZm9yY2VDYXNlW3dvcmQudG9Mb3dlckNhc2UoKV0pIHtcbiAgICAgICAgd29yZCA9IGZvcmNlQ2FzZVt3b3JkLnRvTG93ZXJDYXNlKCldO1xuICAgICAgfVxuXG4gICAgICAvLyBVcHBlcmNhc2UgaW5pdGlhbHNcbiAgICAgIGVsc2UgaWYgKHdvcmQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHdvcmQgPSB3b3JkLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERldGVjdCBNW2FdY0NBU0UgfCBtW2FdY2Nhc2UgfCBNW0FdQ0NBU0UsIGFuZCBjb252ZXJ0IHRvIE1jQ2FzZVxuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIGtleSA9PT0gJ2xhc3QnICYmXG4gICAgICAgIHdvcmQubGVuZ3RoID4gMiAmJlxuICAgICAgICAod29yZC5zbGljZSgwLCAyKS50b0xvd2VyQ2FzZSgpID09PSAnbWMnIHx8IHdvcmQuc2xpY2UoMCwgMykudG9Mb3dlckNhc2UoKSA9PT0gJ21hYycpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHdvcmQuc2xpY2UoMCwgMikudG9Mb3dlckNhc2UoKSA9PT0gJ21jJykge1xuICAgICAgICAgIHdvcmQgPSAnTWMnICsgd29yZC5zbGljZSgyLCAzKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHdvcmQgPSAnTWFjJyArIHdvcmQuc2xpY2UoMywgNCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoNCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDb252ZXJ0IGFsbCBvdGhlciB0aGluZ3MgdG8gVGl0bGUgQ2FzZVxuICAgICAgZWxzZSB7XG4gICAgICAgIHdvcmQgPSB0aXRsZUNhc2Uod29yZCk7XG4gICAgICB9XG5cbiAgICAgIG5ld1dvcmQucHVzaCh3b3JkICsgY29tbWEpO1xuICAgIH1cblxuICAgIHBhcnNlZE5hbWVba2V5XSA9IG5ld1dvcmQuam9pbignICcpO1xuICB9XG4gIHJldHVybiBwYXJzZWROYW1lO1xufVxuXG4vLyBJZiBzdG9wT25FcnJvciA9IDEsIHRocm93IGVycm9yLCBvdGhlcndpc2UgcmV0dXJuIGVycm9yIG1lc3NhZ2VzIGluIGFycmF5XG5mdW5jdGlvbiBoYW5kbGVFcnJvcihtZXNzYWdlOiBzdHJpbmcsIHBhcnNlZE5hbWU6IFBhcnNlZE5hbWUpIHtcbiAgcGFyc2VkTmFtZS5lcnJvci5wdXNoKG1lc3NhZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGdWxsTmFtZShuYW1lVG9QYXJzZTogc3RyaW5nKTogUGFyc2VkTmFtZSB7XG4gIGxldCBwYXJ0c0ZvdW5kQ291bnQsIHJlbWFpbmluZ0NvbW1hcztcblxuICBjb25zdCBuYW1lUGFydHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IG5hbWVDb21tYXM6IChzdHJpbmcgfCBudWxsKVtdID0gW251bGxdO1xuICBsZXQgcGFydHNGb3VuZDogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBwYXJzZWROYW1lOiBQYXJzZWROYW1lID0ge1xuICAgIHByZU5vbWluYWw6IG51bGwsXG4gICAgZmlyc3Q6IG51bGwsXG4gICAgbWlkZGxlOiBudWxsLFxuICAgIGxhc3Q6IG51bGwsXG4gICAgbmljazogbnVsbCxcbiAgICBzdWZmaXg6IG51bGwsXG4gICAgcG9zdE5vbWluYWw6IG51bGwsXG4gICAgZXJyb3I6IFtdLFxuICB9O1xuXG4gIC8vIElmIG5vIGlucHV0IG5hbWUsIG9yIGlucHV0IG5hbWUgaXMgbm90IGEgc3RyaW5nLCBhYm9ydFxuICBpZiAoIW5hbWVUb1BhcnNlIHx8IHR5cGVvZiBuYW1lVG9QYXJzZSAhPT0gJ3N0cmluZycpIHtcbiAgICBoYW5kbGVFcnJvcignTm8gaW5wdXQnLCBwYXJzZWROYW1lKTtcbiAgICByZXR1cm4gcGFyc2VkTmFtZTtcbiAgfVxuXG4gIC8vIE5pY2tuYW1lOiByZW1vdmUgYW5kIHN0b3JlIHBhcnRzIHdpdGggc3Vycm91bmRpbmcgcHVuY3R1YXRpb24gYXMgbmlja25hbWVzXG4gIGNvbnN0IG5pY2tuYW1lcyA9IFtdO1xuICBsZXQgbmlja25hbWUgPSAoTklDS05BTUUuZXhlYyhgICR7bmFtZVRvUGFyc2V9IGApIHx8IFtdKVswXTtcbiAgd2hpbGUgKG5pY2tuYW1lKSB7XG4gICAgbmFtZVRvUGFyc2UgPSBuYW1lVG9QYXJzZS5yZXBsYWNlKG5pY2tuYW1lLnRyaW0oKSwgJyAnKS50cmltKCk7XG4gICAgbmlja25hbWVzLnB1c2gobmlja25hbWUpO1xuICAgIG5pY2tuYW1lID0gKE5JQ0tOQU1FLmV4ZWMoYCAke25hbWVUb1BhcnNlfSBgKSB8fCBbXSlbMF07XG4gIH1cblxuICBwYXJzZWROYW1lLm5pY2sgPSBuaWNrbmFtZXMubWFwKG4gPT4gbi50cmltKCkuc2xpY2UoMSwgLTEpLnJlcGxhY2UoJywnLCAnJykpLmpvaW4oJywgJykgfHwgbnVsbDtcblxuICBpZiAobmlja25hbWVzLmxlbmd0aCA+IDEpIHtcbiAgICBoYW5kbGVFcnJvcihgJHtuaWNrbmFtZXMubGVuZ3RofSBuaWNrbmFtZXMgZm91bmRgLCBwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIElmIG5vdGhpbmcgbGVmdCwgcmV0dXJuLlxuICBpZiAoIW5hbWVUb1BhcnNlLmxlbmd0aCkge1xuICAgIHJldHVybiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIFNwbGl0IHJlbWFpbmluZyBuYW1lVG9QYXJzZSBpbnRvIHBhcnRzLCByZW1vdmUgYW5kIHN0b3JlIHByZWNlZGluZyBjb21tYXNcbiAgZm9yIChsZXQgcGFydCBvZiBuYW1lVG9QYXJzZS5zcGxpdCgnICcpKSB7XG4gICAgbGV0IGNvbW1hID0gbnVsbDtcbiAgICBpZiAoIXBhcnQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH0gLy8gRG9uJ3QgdHJlYXQgZW1wdHkgc3RyaW5ncyBmcm9tIGJhY2sgdG8gYmFjayBzcGFjZXMgYXMgYSB0b2tlbi5cbiAgICBpZiAocGFydC5lbmRzV2l0aCgnLCcpKSB7XG4gICAgICBjb21tYSA9ICcsJztcbiAgICAgIHBhcnQgPSBwYXJ0LnNsaWNlKDAsIC0xKTtcbiAgICB9XG4gICAgbmFtZVBhcnRzLnB1c2gocGFydCk7XG4gICAgbmFtZUNvbW1hcy5wdXNoKGNvbW1hKTtcbiAgfVxuXG4gIC8vIEpvaW4gY29uanVuY3Rpb25zIHRvIHJpZ2h0IHNpZGUgc3Vycm91bmRpbmcgbmFtZVxuICAvLyBBbGxvd3MgdXMgdG8gcGFyc2UgcHJlZml4ZWQgbm9taW5hbHMgYW5kIHN1ZmZpeGVzIChleDogVGhlIEhvbm9yYWJsZSwgdGhlIFRoaXJkKVxuICBpZiAobmFtZVBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICBmb3IgKGxldCBpID0gbmFtZVBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoQ09OSlVOQ1RJT05TW25hbWVQYXJ0c1tpXS50b0xvd2VyQ2FzZSgpXSA+IC0xKSB7XG4gICAgICAgIG5hbWVQYXJ0c1tpXSA9IG5hbWVQYXJ0c1tpXSArICcgJyArIG5hbWVQYXJ0c1tpICsgMV07XG4gICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoaSArIDEsIDEpO1xuICAgICAgICBuYW1lQ29tbWFzLnNwbGljZShpICsgMSwgMSk7XG4gICAgICAgIGktLTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaXRsZTogcmVtb3ZlIGFuZCBzdG9yZSBtYXRjaGluZyBwYXJ0cyBhcyBwcmUgbm9taW5hbHNcbiAgY29uc3QgcHJlTm9tc0ZvdW5kOiBQcmVOb21pbmFsW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXJ0VG9DaGVjayA9IG5hbWVQYXJ0c1tpXTtcbiAgICBjb25zdCBwcmVub20gPSBpc1ByZU5vbWluYWwocGFydFRvQ2hlY2spO1xuICAgIGlmICghcHJlbm9tKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgbmFtZVBhcnRzLnNwbGljZShpLCAxKTtcbiAgICBwcmVOb21zRm91bmQucHVzaChwcmVub20pO1xuICAgIGlmIChuYW1lQ29tbWFzW2ldID09PSAnLCcpIHsgLy8gS2VlcCBjb21tYSwgZWl0aGVyIGJlZm9yZSBvciBhZnRlclxuICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSArIDEsIDEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgfVxuICBwYXJ0c0ZvdW5kQ291bnQgPSBwcmVOb21zRm91bmQubGVuZ3RoO1xuICBpZiAocGFydHNGb3VuZENvdW50ID09PSAxKSB7XG4gICAgcGFyc2VkTmFtZS5wcmVOb21pbmFsID0gcHJlTm9tc0ZvdW5kWzBdO1xuICAgIHBhcnRzRm91bmQgPSBbXTtcbiAgfVxuICBlbHNlIGlmIChwYXJ0c0ZvdW5kQ291bnQgPiAxKSB7XG4gICAgaGFuZGxlRXJyb3IoYCR7cGFydHNGb3VuZENvdW50fSB0aXRsZXMgZm91bmRgLCBwYXJzZWROYW1lKTtcbiAgICAvLyBwYXJzZWROYW1lLnByZU5vbWluYWwgPSBwcmVOb21zRm91bmQuam9pbignLCAnKTtcbiAgfVxuXG4gIGlmICghbmFtZVBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIFN1ZmZpeDogcmVtb3ZlIGFuZCBzdG9yZSBtYXRjaGluZyBwYXJ0cyBhcyBzdWZmaXhlc1xuICBjb25zdCBzdWZmaXhlc0ZvdW5kOiBOYW1lU3VmZml4W10gPSBbXTtcbiAgZm9yIChsZXQgbCA9IG5hbWVQYXJ0cy5sZW5ndGgsIGkgPSBsIC0gMTsgaSA+IDA7IGktLSkge1xuICAgIGNvbnN0IHBhcnRUb0NoZWNrID0gbmFtZVBhcnRzW2ldO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGlzTmFtZVN1ZmZpeChwYXJ0VG9DaGVjayk7XG4gICAgaWYgKCFzdWZmaXgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzdWZmaXhlc0ZvdW5kLnB1c2goc3VmZml4KTtcbiAgICBuYW1lUGFydHMuc3BsaWNlKGksIDEpO1xuICAgIGlmIChuYW1lQ29tbWFzW2ldID09PSAnLCcpIHsgLy8gS2VlcCBjb21tYSwgZWl0aGVyIGJlZm9yZSBvciBhZnRlclxuICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSArIDEsIDEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgfVxuXG4gIHBhcnRzRm91bmRDb3VudCA9IHN1ZmZpeGVzRm91bmQubGVuZ3RoO1xuICBpZiAocGFydHNGb3VuZENvdW50ID09PSAxKSB7XG4gICAgcGFyc2VkTmFtZS5zdWZmaXggPSBzdWZmaXhlc0ZvdW5kWzBdO1xuICB9XG4gIGVsc2UgaWYgKHBhcnRzRm91bmRDb3VudCA+IDEpIHtcbiAgICBoYW5kbGVFcnJvcihgJHtwYXJ0c0ZvdW5kQ291bnR9IHN1ZmZpeGVzIGZvdW5kYCwgcGFyc2VkTmFtZSk7XG4gICAgLy8gcGFyc2VkTmFtZS5zdWZmaXggPSBwYXJ0c0ZvdW5kLmpvaW4oJywgJyk7XG4gIH1cblxuICBpZiAoIW5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG4gIH1cblxuICAvLyBUaXRsZTogcmVtb3ZlIGFuZCBzdG9yZSBtYXRjaGluZyBwYXJ0cyBhcyBwcmUgbm9taW5hbHNcbiAgY29uc3QgcG9zdE5vbXNGb3VuZDogUG9zdE5vbWluYWxbXSA9IFtdO1xuICBmb3IgKGxldCBsID0gbmFtZVBhcnRzLmxlbmd0aCwgaSA9IGwgLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IHBhcnRUb0NoZWNrID0gbmFtZVBhcnRzW2ldO1xuICAgIGNvbnN0IHBvc3Rub20gPSBpc1Bvc3ROb21pbmFsKHBhcnRUb0NoZWNrKTtcbiAgICBpZiAocG9zdG5vbSkge1xuICAgICAgbmFtZVBhcnRzLnNwbGljZShpLCAxKTtcbiAgICAgIHBvc3ROb21zRm91bmQudW5zaGlmdChwb3N0bm9tKTtcbiAgICAgIGlmIChuYW1lQ29tbWFzW2ldID09PSAnLCcpIHsgLy8gS2VlcCBjb21tYSwgZWl0aGVyIGJlZm9yZSBvciBhZnRlclxuICAgICAgICBuYW1lQ29tbWFzLnNwbGljZShpICsgMSwgMSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgbmFtZUNvbW1hcy5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhcnNlZE5hbWUucG9zdE5vbWluYWwgPSBwb3N0Tm9tc0ZvdW5kLmxlbmd0aCA/IHBvc3ROb21zRm91bmQgOiBudWxsO1xuXG4gIGlmICghbmFtZVBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIEpvaW4gbmFtZSBwcmVmaXhlcyB0byBmb2xsb3dpbmcgbmFtZXNcbiAgaWYgKG5hbWVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgZm9yIChsZXQgaSA9IG5hbWVQYXJ0cy5sZW5ndGggLSAyOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKFBSRUZJWEVTLmluZGV4T2YobmFtZVBhcnRzW2ldLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgICAgbmFtZVBhcnRzW2ldID0gbmFtZVBhcnRzW2ldICsgJyAnICsgbmFtZVBhcnRzW2kgKyAxXTtcbiAgICAgICAgbmFtZVBhcnRzLnNwbGljZShpICsgMSwgMSk7XG4gICAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGkgKyAxLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBKb2luIGNvbmp1bmN0aW9ucyB0byBsZWZ0IHNpZGUgc3Vycm91bmRpbmcgbmFtZVxuICAvLyBUaGVzZSBhcmUgYWN0dWFsIG5hbWUgY29uanVuY3Rpb25zIGlmIHRoZXkgd2VyZW4ndCBzY29vcGVkIGJ5IGJ5IFByZU5vbWluYWwsIFBvc3ROb21pbmFsIG9yIFN1ZmZpeCBwYXJzaW5nLlxuICAvLyBFeDogZGUgTG9yZW56byB5IEd1dGllcmV6XG4gIGlmIChuYW1lUGFydHMubGVuZ3RoID4gMikge1xuICAgIGZvciAobGV0IGkgPSBuYW1lUGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmICghfm5hbWVQYXJ0c1tpXS5pbmRleE9mKCcgJykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJ0cyA9IG5hbWVQYXJ0c1tpXS5zcGxpdCgnICcpO1xuICAgICAgaWYgKENPTkpVTkNUSU9OU1twYXJ0c1swXS50b0xvd2VyQ2FzZSgpXSAmJiBuYW1lUGFydHNbaSAtIDFdKSB7XG4gICAgICAgIG5hbWVQYXJ0c1tpXSA9IG5hbWVQYXJ0c1tpIC0gMV0gKyAnICcgKyBuYW1lUGFydHNbaV07XG4gICAgICAgIG5hbWVQYXJ0cy5zcGxpY2UoaSAtIDEsIDEpO1xuICAgICAgICBuYW1lQ29tbWFzLnNwbGljZShpIC0gMSwgMSk7XG4gICAgICAgIGktLTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWZmaXg6IHJlbW92ZSBhbmQgc3RvcmUgaXRlbXMgYWZ0ZXIgZXh0cmEgY29tbWFzIGFzIHN1ZmZpeGVzXG4gIG5hbWVDb21tYXMucG9wKCk7XG4gIGNvbnN0IGZpcnN0Q29tbWEgPSBuYW1lQ29tbWFzLmluZGV4T2YoJywnKTtcbiAgcmVtYWluaW5nQ29tbWFzID0gbmFtZUNvbW1hcy5maWx0ZXIoZnVuY3Rpb24odikge1xuICAgIHJldHVybiB2ICE9PSBudWxsO1xuICB9KS5sZW5ndGg7XG4gIGlmIChmaXJzdENvbW1hID4gMSB8fCByZW1haW5pbmdDb21tYXMgPiAxKSB7XG4gICAgZm9yIChsZXQgaSA9IG5hbWVQYXJ0cy5sZW5ndGggLSAxOyBpID49IDI7IGktLSkge1xuICAgICAgaWYgKG5hbWVDb21tYXNbaV0gPT09ICcsJykge1xuICAgICAgICBwYXJ0c0ZvdW5kID0gbmFtZVBhcnRzLnNwbGljZShpLCAxKS5jb25jYXQocGFydHNGb3VuZCk7XG4gICAgICAgIG5hbWVDb21tYXMuc3BsaWNlKGksIDEpO1xuICAgICAgICByZW1haW5pbmdDb21tYXMtLTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHBhcnRzRm91bmQubGVuZ3RoKSB7XG4gICAgcGFyc2VkTmFtZS5lcnJvci5wdXNoKGB1bmtub3duIHNlZ21lbnQ6ICR7cGFydHNGb3VuZC5qb2luKCcsJyl9YCk7XG4gICAgcGFydHNGb3VuZCA9IFtdO1xuICB9XG5cbiAgLy8gTGFzdCBuYW1lOiByZW1vdmUgYW5kIHN0b3JlIGxhc3QgbmFtZVxuICBpZiAocmVtYWluaW5nQ29tbWFzID4gMCkge1xuICAgIGlmIChyZW1haW5pbmdDb21tYXMgPiAxKSB7XG4gICAgICBoYW5kbGVFcnJvcihgJHsocmVtYWluaW5nQ29tbWFzIC0gMSl9IGV4dHJhIGNvbW1hcyBmb3VuZGAsIHBhcnNlZE5hbWUpO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgYW5kIHN0b3JlIGFsbCBwYXJ0cyBiZWZvcmUgZmlyc3QgY29tbWEgYXMgbGFzdCBuYW1lXG4gICAgaWYgKG5hbWVDb21tYXMuaW5kZXhPZignLCcpKSB7XG4gICAgICBwYXJzZWROYW1lLmxhc3QgPSBuYW1lUGFydHMuc3BsaWNlKDAsIG5hbWVDb21tYXMuaW5kZXhPZignLCcpKS5qb2luKCcgJyk7XG4gICAgICBuYW1lQ29tbWFzLnNwbGljZSgwLCBuYW1lQ29tbWFzLmluZGV4T2YoJywnKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGFuZCBzdG9yZSBsYXN0IHBhcnQgYXMgbGFzdCBuYW1lXG4gIGVsc2Uge1xuICAgIHBhcnNlZE5hbWUubGFzdCA9IG5hbWVQYXJ0cy5wb3AoKSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKCFuYW1lUGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZpeFBhcnNlZE5hbWVDYXNlKHBhcnNlZE5hbWUpO1xuICB9XG5cbiAgLy8gRmlyc3QgbmFtZTogcmVtb3ZlIGFuZCBzdG9yZSBmaXJzdCBwYXJ0IGFzIGZpcnN0IG5hbWVcbiAgcGFyc2VkTmFtZS5maXJzdCA9IG5hbWVQYXJ0cy5zaGlmdCgpIHx8IG51bGw7XG4gIGlmICghbmFtZVBhcnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBmaXhQYXJzZWROYW1lQ2FzZShwYXJzZWROYW1lKTtcbiAgfVxuXG4gIC8vIE1pZGRsZSBuYW1lOiBzdG9yZSBhbGwgcmVtYWluaW5nIHBhcnRzIGFzIG1pZGRsZSBuYW1lXG4gIGlmIChuYW1lUGFydHMubGVuZ3RoID4gMikge1xuICAgIGhhbmRsZUVycm9yKGAke25hbWVQYXJ0cy5sZW5ndGh9IG1pZGRsZSBuYW1lc2AsIHBhcnNlZE5hbWUpO1xuICB9XG4gIHBhcnNlZE5hbWUubWlkZGxlID0gbmFtZVBhcnRzLmpvaW4oJyAnKTtcblxuICByZXR1cm4gZml4UGFyc2VkTmFtZUNhc2UocGFyc2VkTmFtZSk7XG59XG4iXX0=
{
"name": "@universe/name-parser",
"version": "0.3.0",
"version": "0.4.0",
"main": "dist/src/index.js",

@@ -9,2 +9,3 @@ "description": "Universe name parser.",

"private": false,
"repository":"https://github.com/universe/big-blue",
"scripts": {

@@ -17,5 +18,5 @@ "build": "rm -rf dist && tsc --build tsconfig.json",

"dependencies": {
"@universe/models": "^0.3.0"
"@universe/models": "^0.4.0"
},
"devDependencies": {}
}

@@ -141,3 +141,3 @@ import {

export function parseFullName(nameToParse: string) {
export function parseFullName(nameToParse: string): ParsedName {
let partsFoundCount, remainingCommas;

@@ -383,2 +383,2 @@

return fixParsedNameCase(parsedName);
};
}

Sorry, the diff of this file is not supported yet

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