diff --git a/dist/smartstring.domain.js b/dist/smartstring.domain.js index bcd9692..a331f9a 100644 --- a/dist/smartstring.domain.js +++ b/dist/smartstring.domain.js @@ -4,12 +4,17 @@ var Domain = (function () { function Domain(domainStringArg) { this.fullName = domainStringArg; var regexMatches = domainRegex(domainStringArg); - this.level1 = regexMatches[0]; - this.level2 = regexMatches[1]; - this.level3 = regexMatches[2]; - this.level4 = regexMatches[3]; - this.level5 = regexMatches[4]; - this.protocol = protocolRegex(domainStringArg)[1]; + for (var i = 1; i <= 5; i++) { + if (regexMatches[i - 1]) { + this["level" + i.toString()] = regexMatches[i - 1]; + } + else { + this["level" + i.toString()] = undefined; + } + ; + } + ; + this.protocol = protocolRegex(domainStringArg); this.zoneName = this.level2 + "." + this.level1; // aliases this.topLevel = this.level1; @@ -22,7 +27,8 @@ exports.Domain = Domain; var domainRegex = function (stringArg) { var regexString = /([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}$/; var regexMatches = regexString.exec(stringArg); - regexMatches.reverse(); + regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order) + regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements var regexMatchesFiltered = regexMatches.filter(function (stringArg) { return (stringArg != ""); }); @@ -31,8 +37,12 @@ var domainRegex = function (stringArg) { var protocolRegex = function (stringArg) { var regexString = /^([a-zA-Z0-9]*):\/\//; var regexMatches = regexString.exec(stringArg); - console.log(regexMatches); - return regexMatches; + if (regexMatches) { + return regexMatches[1]; + } + else { + return undefined; + } }; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCO0lBYUksZ0JBQVksZUFBc0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQTdCQSxBQTZCQyxJQUFBO0FBN0JZLGNBQU0sU0E2QmxCLENBQUE7QUFHRCxJQUFJLFdBQVcsR0FBRyxVQUFTLFNBQWdCO0lBQ3ZDLElBQUksV0FBVyxHQUFHLDRHQUE0RyxDQUFDO0lBQy9ILElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLElBQUksb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFTLFNBQWdCO1FBQ3BFLE1BQU0sQ0FBQSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixJQUFJLGFBQWEsR0FBRyxVQUFTLFNBQWdCO0lBQ3pDLElBQUksV0FBVyxHQUFHLHNCQUFzQixDQUFDO0lBQ3pDLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixNQUFNLENBQUMsWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsImZpbGUiOiJzbWFydHN0cmluZy5kb21haW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4ge1xuICAgIGZ1bGxOYW1lOnN0cmluZztcbiAgICBsZXZlbDE6c3RyaW5nO1xuICAgIGxldmVsMjpzdHJpbmc7XG4gICAgbGV2ZWwzOnN0cmluZztcbiAgICBsZXZlbDQ6c3RyaW5nO1xuICAgIGxldmVsNTpzdHJpbmc7XG4gICAgcHJvdG9jb2w6c3RyaW5nO1xuICAgIHpvbmVOYW1lOnN0cmluZztcbiAgICAvL2FsaWFzZXNcbiAgICB0b3BMZXZlbDpzdHJpbmc7XG4gICAgZG9tYWluTmFtZTtcbiAgICBzdWJEb21haW47XG4gICAgY29uc3RydWN0b3IoZG9tYWluU3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBkb21haW5TdHJpbmdBcmc7XG4gICAgICAgIGxldCByZWdleE1hdGNoZXMgPSBkb21haW5SZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICB0aGlzLmxldmVsMSA9IHJlZ2V4TWF0Y2hlc1swXTtcbiAgICAgICAgdGhpcy5sZXZlbDIgPSByZWdleE1hdGNoZXNbMV07XG4gICAgICAgIHRoaXMubGV2ZWwzID0gcmVnZXhNYXRjaGVzWzJdO1xuICAgICAgICB0aGlzLmxldmVsNCA9IHJlZ2V4TWF0Y2hlc1szXTtcbiAgICAgICAgdGhpcy5sZXZlbDUgPSByZWdleE1hdGNoZXNbNF07XG4gICAgICAgIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbFJlZ2V4KGRvbWFpblN0cmluZ0FyZylbMV07XG4gICAgICAgIHRoaXMuem9uZU5hbWUgPSB0aGlzLmxldmVsMiArIFwiLlwiICsgdGhpcy5sZXZlbDE7IFxuICAgICAgICBcbiAgICAgICAgLy8gYWxpYXNlc1xuICAgICAgICB0aGlzLnRvcExldmVsID0gdGhpcy5sZXZlbDE7XG4gICAgICAgIHRoaXMuZG9tYWluTmFtZSA9IHRoaXMubGV2ZWwyO1xuICAgICAgICB0aGlzLnN1YkRvbWFpbiA9IHRoaXMubGV2ZWwzO1xuICAgIH1cbn1cblxuXG5sZXQgZG9tYWluUmVnZXggPSBmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICBsZXQgcmVnZXhTdHJpbmcgPSAvKFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9KFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0kLztcbiAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICAgIHJlZ2V4TWF0Y2hlcy5yZXZlcnNlKCk7XG4gICAgbGV0IHJlZ2V4TWF0Y2hlc0ZpbHRlcmVkID0gcmVnZXhNYXRjaGVzLmZpbHRlcihmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICAgICAgcmV0dXJuKHN0cmluZ0FyZyAhPSBcIlwiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVnZXhNYXRjaGVzRmlsdGVyZWQ7XG59O1xuXG5sZXQgcHJvdG9jb2xSZWdleCA9IGZ1bmN0aW9uKHN0cmluZ0FyZzpzdHJpbmcpe1xuICAgIGxldCByZWdleFN0cmluZyA9IC9eKFthLXpBLVowLTldKik6XFwvXFwvLztcbiAgICBsZXQgcmVnZXhNYXRjaGVzID0gcmVnZXhTdHJpbmcuZXhlYyhzdHJpbmdBcmcpO1xuICAgIGNvbnNvbGUubG9nKHJlZ2V4TWF0Y2hlcyk7XG4gICAgcmV0dXJuIHJlZ2V4TWF0Y2hlcztcbn0iXX0= +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0c3RyaW5nLmRvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFDUCxDQUFDLENBRHNCO0FBR3ZCO0lBYUksZ0JBQVksZUFBc0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELEdBQUcsQ0FBQSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFDLENBQUM7WUFDeEIsRUFBRSxDQUFBLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUN0RCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDN0MsQ0FBQztZQUFBLENBQUM7UUFDTixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNMLGFBQUM7QUFBRCxDQS9CQSxBQStCQyxJQUFBO0FBL0JZLGNBQU0sU0ErQmxCLENBQUE7QUFHRCxJQUFJLFdBQVcsR0FBRyxVQUFTLFNBQWdCO0lBQ3ZDLElBQUksV0FBVyxHQUFHLDRHQUE0RyxDQUFDO0lBQy9ILElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsMkVBQTJFO0lBQ25HLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLG1HQUFtRztJQUN2SCxJQUFJLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBUyxTQUFnQjtRQUNwRSxNQUFNLENBQUEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsSUFBSSxhQUFhLEdBQUcsVUFBUyxTQUFnQjtJQUN6QyxJQUFJLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztJQUN6QyxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLEVBQUUsQ0FBQSxDQUFDLFlBQVksQ0FBQyxDQUFBLENBQUM7UUFDYixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNMLENBQUMsQ0FBQSIsImZpbGUiOiJzbWFydHN0cmluZy5kb21haW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0c3RyaW5nLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4ge1xuICAgIGZ1bGxOYW1lOnN0cmluZztcbiAgICBsZXZlbDE6c3RyaW5nO1xuICAgIGxldmVsMjpzdHJpbmc7XG4gICAgbGV2ZWwzOnN0cmluZztcbiAgICBsZXZlbDQ6c3RyaW5nO1xuICAgIGxldmVsNTpzdHJpbmc7XG4gICAgcHJvdG9jb2w6c3RyaW5nO1xuICAgIHpvbmVOYW1lOnN0cmluZztcbiAgICAvL2FsaWFzZXNcbiAgICB0b3BMZXZlbDpzdHJpbmc7XG4gICAgZG9tYWluTmFtZTtcbiAgICBzdWJEb21haW47XG4gICAgY29uc3RydWN0b3IoZG9tYWluU3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBkb21haW5TdHJpbmdBcmc7XG4gICAgICAgIGxldCByZWdleE1hdGNoZXMgPSBkb21haW5SZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICBmb3IobGV0IGkgPSAxOyBpIDw9IDU7IGkrKyl7XG4gICAgICAgICAgICBpZihyZWdleE1hdGNoZXNbaSAtIDFdKSB7XG4gICAgICAgICAgICAgICAgdGhpc1tcImxldmVsXCIgKyBpLnRvU3RyaW5nKCldID0gcmVnZXhNYXRjaGVzW2kgLSAxXVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzW1wibGV2ZWxcIiArIGkudG9TdHJpbmcoKV0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb3RvY29sID0gcHJvdG9jb2xSZWdleChkb21haW5TdHJpbmdBcmcpO1xuICAgICAgICB0aGlzLnpvbmVOYW1lID0gdGhpcy5sZXZlbDIgKyBcIi5cIiArIHRoaXMubGV2ZWwxOyBcbiAgICAgICAgXG4gICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgdGhpcy50b3BMZXZlbCA9IHRoaXMubGV2ZWwxO1xuICAgICAgICB0aGlzLmRvbWFpbk5hbWUgPSB0aGlzLmxldmVsMjtcbiAgICAgICAgdGhpcy5zdWJEb21haW4gPSB0aGlzLmxldmVsMztcbiAgICB9XG59XG5cblxubGV0IGRvbWFpblJlZ2V4ID0gZnVuY3Rpb24oc3RyaW5nQXJnOnN0cmluZyl7XG4gICAgbGV0IHJlZ2V4U3RyaW5nID0gLyhbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9KFthLXpBLVowLTldKilcXC57MCwxfShbYS16QS1aMC05XSopXFwuezAsMX0oW2EtekEtWjAtOV0qKVxcLnswLDF9JC87XG4gICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICByZWdleE1hdGNoZXMucmV2ZXJzZSgpOyAvL21ha2Ugc3VyZSB3ZSBidWlsZCB0aGUgZG9tYWluIGZyb20gdG9wbGV2ZWwgdG8gc3ViZG9tYWluIChyZXZlcnNlZCBvcmRlcilcbiAgICByZWdleE1hdGNoZXMucG9wKCk7IC8vIHBvcCB0aGUgbGFzdCBlbGVtZW50LCB3aGljaCBpcywgc2luY2Ugd2UgcmV2ZXJzZWQgdGhlIEFycmF5LCB0aGUgZnVsbCBTdHJpbmcgb2YgbWF0Y2hlZCBlbGVtZW50c1xuICAgIGxldCByZWdleE1hdGNoZXNGaWx0ZXJlZCA9IHJlZ2V4TWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24oc3RyaW5nQXJnOnN0cmluZyl7XG4gICAgICAgIHJldHVybihzdHJpbmdBcmcgIT0gXCJcIik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlZ2V4TWF0Y2hlc0ZpbHRlcmVkO1xufTtcblxubGV0IHByb3RvY29sUmVnZXggPSBmdW5jdGlvbihzdHJpbmdBcmc6c3RyaW5nKXtcbiAgICBsZXQgcmVnZXhTdHJpbmcgPSAvXihbYS16QS1aMC05XSopOlxcL1xcLy87XG4gICAgbGV0IHJlZ2V4TWF0Y2hlcyA9IHJlZ2V4U3RyaW5nLmV4ZWMoc3RyaW5nQXJnKTtcbiAgICBpZihyZWdleE1hdGNoZXMpe1xuICAgICAgICByZXR1cm4gcmVnZXhNYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufSJdfQ== diff --git a/package.json b/package.json index d1adfde..1529c9a 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,12 @@ }, "homepage": "https://gitlab.com/pushrocks/smartstring#readme", "devDependencies": { - "npmts": "^5.2.1", - "should": "^9.0.0", + "npmts-g": "^5.2.6", + "should": "^9.0.2", "typings-test": "^1.0.1" }, "dependencies": { - "beautylog": "^5.0.8", + "beautylog": "^5.0.12", "typings-global": "^1.0.3" } } diff --git a/test/test.js b/test/test.js index aa68324..68adb09 100644 --- a/test/test.js +++ b/test/test.js @@ -5,9 +5,11 @@ var should = require("should"); describe("smartstring", function () { describe(".Domain class", function () { var testDomain; + var testDomain2; it("should create a new Domain object", function () { testDomain = new smartstring.Domain("https://level3D.level2D.level1D"); testDomain.should.be.instanceof(smartstring.Domain); + console.log(testDomain); }); it("should have a .topLevel", function () { testDomain.topLevel.should.equal("level1D"); @@ -24,6 +26,10 @@ describe("smartstring", function () { it("should have the correct protocol", function () { testDomain.protocol.should.equal("https"); }); + it("testDomain2 should be a basic domain", function () { + testDomain2 = new smartstring.Domain("bleu.de"); + console.log(testDomain2); + }); }); describe(".Git class", function () { var testGit; @@ -76,4 +82,4 @@ describe("smartstring", function () { }); }); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FDUCxDQUFDLENBRG9CO0FBQ3JCLElBQVksV0FBVyxXQUFNLGVBQWUsQ0FBQyxDQUFBO0FBQzdDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUvQixRQUFRLENBQUMsYUFBYSxFQUFDO0lBQ25CLFFBQVEsQ0FBQyxlQUFlLEVBQUM7UUFDckIsSUFBSSxVQUE2QixDQUFDO1FBQ2xDLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBQztZQUNuQyxVQUFVLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDdkUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyx5QkFBeUIsRUFBQztZQUN6QixVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHVCQUF1QixFQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBQztZQUN2QyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBRSxrQ0FBa0MsRUFBQztZQUNuQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxZQUFZLEVBQUM7UUFDbEIsSUFBSSxPQUEyQixDQUFDO1FBQ2hDLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBQztZQUN2QyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDdEYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyx1QkFBdUIsRUFBQztZQUN2QixPQUFPLENBQUMsSUFBSTtpQkFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLHVCQUF1QixFQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxJQUFJO2lCQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdkIsT0FBTyxDQUFDLElBQUk7aUJBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQywyQkFBMkIsRUFBQztZQUMzQixPQUFPLENBQUMsUUFBUTtpQkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMseUJBQXlCLEVBQUM7WUFDekIsT0FBTyxDQUFDLE1BQU07aUJBQ1QsTUFBTSxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsU0FBUyxFQUFDO1FBQ2YsUUFBUSxDQUFDLGdCQUFnQixFQUFDO1lBQ3RCLEVBQUUsQ0FBQyw0QkFBNEIsRUFBQztnQkFDNUIsSUFBSSxjQUFjLEdBQUcsQ0FBQyw2QkFBNkIsRUFBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDakUsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ3RELFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsUUFBUSxDQUFDLGlCQUFpQixFQUFDO1lBQ3ZCLEVBQUUsQ0FBQyw4QkFBOEIsRUFBQztnQkFDOUIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7cUJBQ3hFLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFdBQVcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDO3FCQUN0RSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixXQUFXLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztxQkFDdkUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCJcbmltcG9ydCAqIGFzIHNtYXJ0c3RyaW5nIGZyb20gXCIuLi9kaXN0L2luZGV4XCI7XG5sZXQgc2hvdWxkID0gcmVxdWlyZShcInNob3VsZFwiKTtcblxuZGVzY3JpYmUoXCJzbWFydHN0cmluZ1wiLGZ1bmN0aW9uKCl7XG4gICAgZGVzY3JpYmUoXCIuRG9tYWluIGNsYXNzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgbGV0IHRlc3REb21haW46c21hcnRzdHJpbmcuRG9tYWluO1xuICAgICAgICBpdChcInNob3VsZCBjcmVhdGUgYSBuZXcgRG9tYWluIG9iamVjdFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluID0gbmV3IHNtYXJ0c3RyaW5nLkRvbWFpbihcImh0dHBzOi8vbGV2ZWwzRC5sZXZlbDJELmxldmVsMURcIik7XG4gICAgICAgICAgICB0ZXN0RG9tYWluLnNob3VsZC5iZS5pbnN0YW5jZW9mKHNtYXJ0c3RyaW5nLkRvbWFpbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCBoYXZlIGEgLnRvcExldmVsXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4udG9wTGV2ZWwuc2hvdWxkLmVxdWFsKFwibGV2ZWwxRFwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIGhhdmUgYSAubGV2ZWwyXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4ubGV2ZWwyLnNob3VsZC5lcXVhbChcImxldmVsMkRcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCBoYXZlIGEgLmxldmVsM1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluLmxldmVsMy5zaG91bGQuZXF1YWwoXCJsZXZlbDNEXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCJzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBkbnMgem9uZSBuYW1lXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4uem9uZU5hbWUuc2hvdWxkLmVxdWFsKFwibGV2ZWwyRC5sZXZlbDFEXCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdCAoXCJzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBwcm90b2NvbFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluLnByb3RvY29sLnNob3VsZC5lcXVhbChcImh0dHBzXCIpO1xuICAgICAgICB9KVxuICAgIH0pXG4gICAgZGVzY3JpYmUoXCIuR2l0IGNsYXNzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgbGV0IHRlc3RHaXQ6c21hcnRzdHJpbmcuR2l0UmVwbztcbiAgICAgICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgbmV3IEdpdCBjbGFzcyBHaXRSZXBvXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RHaXQgPSBuZXcgc21hcnRzdHJpbmcuR2l0UmVwbyhcImdpdCtodHRwczovL2dpdGh1Yi5jb20vcHVzaHJvY2tzL3NtYXJ0c3RyaW5nLmdpdFwiKTtcbiAgICAgICAgICAgIHRlc3RHaXQuc2hvdWxkLmJlLmluc3RhbmNlb2Yoc21hcnRzdHJpbmcuR2l0UmVwbyk7XG4gICAgICAgIH0pXG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiBhIC5ob3N0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RHaXQuaG9zdFxuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJnaXRodWIuY29tXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCJzaG91bGQgcmV0dXJuIGEgLnVzZXJcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdEdpdC51c2VyXG4gICAgICAgICAgICAgICAgLnNob3VsZC5lcXVhbChcInB1c2hyb2Nrc1wiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiBhIC5yZXBvXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RHaXQucmVwb1xuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJzbWFydHN0cmluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiBhIC5odHRwc1VybFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0R2l0Lmh0dHBzVXJsXG4gICAgICAgICAgICAgICAgLnNob3VsZC5lcXVhbChcImh0dHBzOi8vZ2l0aHViLmNvbS9wdXNocm9ja3Mvc21hcnRzdHJpbmcuZ2l0XCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCJzaG91bGQgcmV0dXJuIGEgLnNzaFVybFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0R2l0LnNzaFVybFxuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJnaXRAZ2l0aHViLmNvbTpwdXNocm9ja3Mvc21hcnRzdHJpbmcuZ2l0XCIpO1xuICAgICAgICB9KTtcbiAgICB9KVxuICAgIGRlc2NyaWJlKFwiLmRvY2tlclwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGRlc2NyaWJlKFwiLm1ha2VFbnZPYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgRW52IE9iamVjdFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgbGV0IGVudlN0cmluZ0FycmF5ID0gW1wiVklSVFVBTF9IT1NUPXN1Yi5kb21haW4udGxkXCIsXCJERUZBVUxUX0hPU1Q9c29tZS5kb21haW4uY29tXCJdO1xuICAgICAgICAgICAgICAgIGxldCBlbnZPYmplY3QgPSBzbWFydHN0cmluZy5kb2NrZXIubWFrZUVudk9iamVjdChlbnZTdHJpbmdBcnJheSk7XG4gICAgICAgICAgICAgICAgZW52T2JqZWN0LlZJUlRVQUxfSE9TVC5zaG91bGQuZXF1YWwoXCJzdWIuZG9tYWluLnRsZFwiKTtcbiAgICAgICAgICAgICAgICBlbnZPYmplY3QuREVGQVVMVF9IT1NULnNob3VsZC5lcXVhbChcInNvbWUuZG9tYWluLmNvbVwiKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfSlcbiAgICBkZXNjcmliZShcIi50eXBlc2NyaXB0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgZGVzY3JpYmUoXCIucmVmZXJlbmNlUmVnZXhcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgaXQoXCJzaG91bGQgbWF0Y2ggcmVmZXJlbmNlIHBhdGhzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBzbWFydHN0cmluZy50eXBlc2NyaXB0LnJlZ2V4UmVmZXJlbmNlUGF0aC50ZXN0KFwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cXFwiXFxcIiAvPlwiKVxuICAgICAgICAgICAgICAgICAgICAuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgICAgICAgICBzbWFydHN0cmluZy50eXBlc2NyaXB0LnJlZ2V4UmVmZXJlbmNlUGF0aC50ZXN0KFwiLy8vIDxyZWZlcmVuY2UgcGF0aD0nJyAvPlwiKVxuICAgICAgICAgICAgICAgICAgICAuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgICAgICAgICBzbWFydHN0cmluZy50eXBlc2NyaXB0LnJlZ2V4UmVmZXJlbmNlUGF0aC50ZXN0KFwiLy8vIDxyZWZlcmVuY2VwYXRoPVxcXCJcXFwiIC8+XCIpXG4gICAgICAgICAgICAgICAgICAgIC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfSlcbn0pOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf8;base64,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QkFBa0IsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUM7cUJBQ3ZFLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtdGVzdFwiXG5pbXBvcnQgKiBhcyBzbWFydHN0cmluZyBmcm9tIFwiLi4vZGlzdC9pbmRleFwiO1xubGV0IHNob3VsZCA9IHJlcXVpcmUoXCJzaG91bGRcIik7XG5cbmRlc2NyaWJlKFwic21hcnRzdHJpbmdcIixmdW5jdGlvbigpe1xuICAgIGRlc2NyaWJlKFwiLkRvbWFpbiBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGxldCB0ZXN0RG9tYWluOnNtYXJ0c3RyaW5nLkRvbWFpbjtcbiAgICAgICAgbGV0IHRlc3REb21haW4yOnNtYXJ0c3RyaW5nLkRvbWFpbjtcbiAgICAgICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgbmV3IERvbWFpbiBvYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdERvbWFpbiA9IG5ldyBzbWFydHN0cmluZy5Eb21haW4oXCJodHRwczovL2xldmVsM0QubGV2ZWwyRC5sZXZlbDFEXCIpO1xuICAgICAgICAgICAgdGVzdERvbWFpbi5zaG91bGQuYmUuaW5zdGFuY2VvZihzbWFydHN0cmluZy5Eb21haW4pO1xuICAgICAgICAgICAgY29uc29sZS5sb2codGVzdERvbWFpbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCBoYXZlIGEgLnRvcExldmVsXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4udG9wTGV2ZWwuc2hvdWxkLmVxdWFsKFwibGV2ZWwxRFwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIGhhdmUgYSAubGV2ZWwyXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4ubGV2ZWwyLnNob3VsZC5lcXVhbChcImxldmVsMkRcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCBoYXZlIGEgLmxldmVsM1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluLmxldmVsMy5zaG91bGQuZXF1YWwoXCJsZXZlbDNEXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoXCJzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBkbnMgem9uZSBuYW1lXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3REb21haW4uem9uZU5hbWUuc2hvdWxkLmVxdWFsKFwibGV2ZWwyRC5sZXZlbDFEXCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdCAoXCJzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCBwcm90b2NvbFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluLnByb3RvY29sLnNob3VsZC5lcXVhbChcImh0dHBzXCIpO1xuICAgICAgICB9KVxuICAgICAgICBpdChcInRlc3REb21haW4yIHNob3VsZCBiZSBhIGJhc2ljIGRvbWFpblwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0RG9tYWluMiA9IG5ldyBzbWFydHN0cmluZy5Eb21haW4oXCJibGV1LmRlXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2codGVzdERvbWFpbjIpO1xuICAgICAgICB9KTtcbiAgICB9KVxuICAgIGRlc2NyaWJlKFwiLkdpdCBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGxldCB0ZXN0R2l0OnNtYXJ0c3RyaW5nLkdpdFJlcG87XG4gICAgICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBhIG5ldyBHaXQgY2xhc3MgR2l0UmVwb1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0R2l0ID0gbmV3IHNtYXJ0c3RyaW5nLkdpdFJlcG8oXCJnaXQraHR0cHM6Ly9naXRodWIuY29tL3B1c2hyb2Nrcy9zbWFydHN0cmluZy5naXRcIik7XG4gICAgICAgICAgICB0ZXN0R2l0LnNob3VsZC5iZS5pbnN0YW5jZW9mKHNtYXJ0c3RyaW5nLkdpdFJlcG8pO1xuICAgICAgICB9KVxuICAgICAgICBpdChcInNob3VsZCByZXR1cm4gYSAuaG9zdFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0R2l0Lmhvc3RcbiAgICAgICAgICAgICAgICAuc2hvdWxkLmVxdWFsKFwiZ2l0aHViLmNvbVwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiBhIC51c2VyXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RHaXQudXNlclxuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJwdXNocm9ja3NcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCByZXR1cm4gYSAucmVwb1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0ZXN0R2l0LnJlcG9cbiAgICAgICAgICAgICAgICAuc2hvdWxkLmVxdWFsKFwic21hcnRzdHJpbmdcIik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdChcInNob3VsZCByZXR1cm4gYSAuaHR0cHNVcmxcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdEdpdC5odHRwc1VybFxuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJodHRwczovL2dpdGh1Yi5jb20vcHVzaHJvY2tzL3NtYXJ0c3RyaW5nLmdpdFwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KFwic2hvdWxkIHJldHVybiBhIC5zc2hVcmxcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdEdpdC5zc2hVcmxcbiAgICAgICAgICAgICAgICAuc2hvdWxkLmVxdWFsKFwiZ2l0QGdpdGh1Yi5jb206cHVzaHJvY2tzL3NtYXJ0c3RyaW5nLmdpdFwiKTtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICBkZXNjcmliZShcIi5kb2NrZXJcIixmdW5jdGlvbigpe1xuICAgICAgICBkZXNjcmliZShcIi5tYWtlRW52T2JqZWN0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBhIEVudiBPYmplY3RcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIGxldCBlbnZTdHJpbmdBcnJheSA9IFtcIlZJUlRVQUxfSE9TVD1zdWIuZG9tYWluLnRsZFwiLFwiREVGQVVMVF9IT1NUPXNvbWUuZG9tYWluLmNvbVwiXTtcbiAgICAgICAgICAgICAgICBsZXQgZW52T2JqZWN0OmFueSA9IHNtYXJ0c3RyaW5nLmRvY2tlci5tYWtlRW52T2JqZWN0KGVudlN0cmluZ0FycmF5KTtcbiAgICAgICAgICAgICAgICBlbnZPYmplY3QuVklSVFVBTF9IT1NULnNob3VsZC5lcXVhbChcInN1Yi5kb21haW4udGxkXCIpO1xuICAgICAgICAgICAgICAgIGVudk9iamVjdC5ERUZBVUxUX0hPU1Quc2hvdWxkLmVxdWFsKFwic29tZS5kb21haW4uY29tXCIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9KVxuICAgIGRlc2NyaWJlKFwiLnR5cGVzY3JpcHRcIixmdW5jdGlvbigpe1xuICAgICAgICBkZXNjcmliZShcIi5yZWZlcmVuY2VSZWdleFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpdChcInNob3VsZCBtYXRjaCByZWZlcmVuY2UgcGF0aHNcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQucmVnZXhSZWZlcmVuY2VQYXRoLnRlc3QoXCIvLy8gPHJlZmVyZW5jZSBwYXRoPVxcXCJcXFwiIC8+XCIpXG4gICAgICAgICAgICAgICAgICAgIC5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICAgICAgICAgIHNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQucmVnZXhSZWZlcmVuY2VQYXRoLnRlc3QoXCIvLy8gPHJlZmVyZW5jZSBwYXRoPScnIC8+XCIpXG4gICAgICAgICAgICAgICAgICAgIC5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICAgICAgICAgIHNtYXJ0c3RyaW5nLnR5cGVzY3JpcHQucmVnZXhSZWZlcmVuY2VQYXRoLnRlc3QoXCIvLy8gPHJlZmVyZW5jZXBhdGg9XFxcIlxcXCIgLz5cIilcbiAgICAgICAgICAgICAgICAgICAgLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9KVxufSk7Il19 diff --git a/test/test.ts b/test/test.ts index c8880b2..fe5bcd1 100644 --- a/test/test.ts +++ b/test/test.ts @@ -5,9 +5,11 @@ let should = require("should"); describe("smartstring",function(){ describe(".Domain class",function(){ let testDomain:smartstring.Domain; + let testDomain2:smartstring.Domain; it("should create a new Domain object",function(){ testDomain = new smartstring.Domain("https://level3D.level2D.level1D"); testDomain.should.be.instanceof(smartstring.Domain); + console.log(testDomain); }); it("should have a .topLevel",function(){ testDomain.topLevel.should.equal("level1D"); @@ -24,6 +26,10 @@ describe("smartstring",function(){ it ("should have the correct protocol",function(){ testDomain.protocol.should.equal("https"); }) + it("testDomain2 should be a basic domain",function(){ + testDomain2 = new smartstring.Domain("bleu.de"); + console.log(testDomain2); + }); }) describe(".Git class",function(){ let testGit:smartstring.GitRepo; @@ -56,7 +62,7 @@ describe("smartstring",function(){ describe(".makeEnvObject",function(){ it("should create a Env Object",function(){ let envStringArray = ["VIRTUAL_HOST=sub.domain.tld","DEFAULT_HOST=some.domain.com"]; - let envObject = smartstring.docker.makeEnvObject(envStringArray); + let envObject:any = smartstring.docker.makeEnvObject(envStringArray); envObject.VIRTUAL_HOST.should.equal("sub.domain.tld"); envObject.DEFAULT_HOST.should.equal("some.domain.com"); }) diff --git a/ts/smartstring.domain.ts b/ts/smartstring.domain.ts index 6c2d13c..3638091 100644 --- a/ts/smartstring.domain.ts +++ b/ts/smartstring.domain.ts @@ -17,12 +17,14 @@ export class Domain { constructor(domainStringArg:string){ this.fullName = domainStringArg; let regexMatches = domainRegex(domainStringArg); - this.level1 = regexMatches[0]; - this.level2 = regexMatches[1]; - this.level3 = regexMatches[2]; - this.level4 = regexMatches[3]; - this.level5 = regexMatches[4]; - this.protocol = protocolRegex(domainStringArg)[1]; + for(let i = 1; i <= 5; i++){ + if(regexMatches[i - 1]) { + this["level" + i.toString()] = regexMatches[i - 1] + } else { + this["level" + i.toString()] = undefined; + }; + }; + this.protocol = protocolRegex(domainStringArg); this.zoneName = this.level2 + "." + this.level1; // aliases @@ -36,7 +38,8 @@ export class Domain { let domainRegex = function(stringArg:string){ let regexString = /([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}([a-zA-Z0-9]*)\.{0,1}$/; let regexMatches = regexString.exec(stringArg); - regexMatches.reverse(); + regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order) + regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements let regexMatchesFiltered = regexMatches.filter(function(stringArg:string){ return(stringArg != ""); }); @@ -46,6 +49,9 @@ let domainRegex = function(stringArg:string){ let protocolRegex = function(stringArg:string){ let regexString = /^([a-zA-Z0-9]*):\/\//; let regexMatches = regexString.exec(stringArg); - console.log(regexMatches); - return regexMatches; + if(regexMatches){ + return regexMatches[1]; + } else { + return undefined; + } } \ No newline at end of file