{"version":3,"file":"linkify-plus-plus-core.js","sources":["../lib/url-matcher.js","../node_modules/event-lite/event-lite.mjs","../lib/linkifier.js"],"sourcesContent":["var tlds = require(\"./tlds.json\"),\n\tRE = {\n\t\tPROTOCOL: \"([a-z][-a-z*]+://)?\",\n\t\tUSER: \"(?:([\\\\w:.+-]+)@)?\",\n\t\tDOMAIN_UNI: `([a-z0-9-.\\\\u00A0-\\\\uFFFF]+\\\\.[a-z0-9-${tlds.chars}]{1,${tlds.maxLength}})`,\n\t\tDOMAIN: `([a-z0-9-.]+\\\\.[a-z0-9-]{1,${tlds.maxLength}})`,\n\t\tPORT: \"(:\\\\d+\\\\b)?\",\n\t\tPATH_UNI: \"([/?#]\\\\S*)?\",\n\t\tPATH: \"([/?#][\\\\w-.~!$&*+;=:@%/?#(),'\\\\[\\\\]]*)?\"\n\t},\n\tTLD_TABLE = tlds.table;\n\nfunction regexEscape(text) {\n\treturn text.replace(/[[\\]\\\\^-]/g, \"\\\\$&\");\n}\n\nfunction buildRegex({\n\tunicode = false, customRules = [], standalone = false,\n\tboundaryLeft, boundaryRight\n}) {\n\tvar pattern = RE.PROTOCOL + RE.USER;\n\t\n\tif (unicode) {\n\t\tpattern += RE.DOMAIN_UNI + RE.PORT + RE.PATH_UNI;\n\t} else {\n\t\tpattern += RE.DOMAIN + RE.PORT + RE.PATH;\n\t}\n\t\n\tif (customRules.length) {\n\t\tpattern = \"(?:(\" + customRules.join(\"|\") + \")|\" + pattern + \")\";\n\t} else {\n\t\tpattern = \"()\" + pattern;\n\t}\n\t\n\tvar prefix, suffix, invalidSuffix;\n\tif (standalone) {\n\t\tif (boundaryLeft) {\n\t\t\tprefix = \"((?:^|\\\\s)[\" + regexEscape(boundaryLeft) + \"]*?)\";\n\t\t} else {\n\t\t\tprefix = \"(^|\\\\s)\";\n\t\t}\n\t\tif (boundaryRight) {\n\t\t\tsuffix = \"([\" + regexEscape(boundaryRight) + \"]*(?:$|\\\\s))\";\n\t\t} else {\n\t\t\tsuffix = \"($|\\\\s)\";\n\t\t}\n\t\tinvalidSuffix = \"[^\\\\s\" + regexEscape(boundaryRight) + \"]\";\n\t} else {\n\t\tprefix = \"(^|\\\\b|_)\";\n\t\tsuffix = \"()\";\n\t}\n\t\n\tpattern = prefix + pattern + suffix;\n\t\n\treturn {\n\t\turl: new RegExp(pattern, \"igm\"),\n\t\tinvalidSuffix: invalidSuffix && new RegExp(invalidSuffix),\n\t\tmustache: /\\{\\{[\\s\\S]+?\\}\\}/g\n\t};\n}\n\nfunction pathStrip(m, re, repl) {\n\tvar s = m.path.replace(re, repl);\n\n\tif (s == m.path) return;\n\t\n\tm.end -= m.path.length - s.length;\n\tm.suffix = m.path.slice(s.length) + m.suffix;\n\tm.path = s;\n}\n\nfunction pathStripQuote(m, c) {\n\tvar i = 0, s = m.path, end, pos = 0;\n\t\n\tif (!s.endsWith(c)) return;\n\t\n\twhile ((pos = s.indexOf(c, pos)) >= 0) {\n\t\tif (i % 2) {\n\t\t\tend = null;\n\t\t} else {\n\t\t\tend = pos;\n\t\t}\n\t\tpos++;\n\t\ti++;\n\t}\n\t\n\tif (!end) return;\n\t\n\tm.end -= s.length - end;\n\tm.path = s.slice(0, end);\n\tm.suffix = s.slice(end) + m.suffix;\n}\n\nfunction pathStripBrace(m, left, right) {\n\tvar str = m.path,\n\t\tre = new RegExp(\"[\\\\\" + left + \"\\\\\" + right + \"]\", \"g\"),\n\t\tmatch, count = 0, end;\n\n\t// Match loop\n\twhile ((match = re.exec(str))) {\n\t\tif (count % 2 == 0) {\n\t\t\tend = match.index;\n\t\t\tif (match[0] == right) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else {\n\t\t\tif (match[0] == left) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcount++;\n\t}\n\n\tif (!match && count % 2 == 0) {\n\t\treturn;\n\t}\n\t\n\tm.end -= m.path.length - end;\n\tm.path = str.slice(0, end);\n\tm.suffix = str.slice(end) + m.suffix;\n}\n\nfunction isIP(s) {\n\tvar m, i;\n\tif (!(m = s.match(/^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/))) {\n\t\treturn false;\n\t}\n\tfor (i = 1; i < m.length; i++) {\n\t\tif (+m[i] > 255 || (m[i].length > 1 && m[i][0] == \"0\")) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction inTLDS(domain) {\n\tvar match = domain.match(/\\.([^.]+)$/);\n\tif (!match) {\n\t\treturn false;\n\t}\n\tvar key = match[1].toLowerCase();\n // eslint-disable-next-line no-prototype-builtins\n\treturn TLD_TABLE.hasOwnProperty(key);\n}\n\nclass UrlMatcher {\n\tconstructor(options = {}) {\n\t\tthis.options = options;\n\t\tthis.regex = buildRegex(options);\n\t}\n\t\n\t*match(text) {\n\t\tvar {\n\t\t\t\tfuzzyIp = true,\n\t\t\t\tignoreMustache = false,\n mail = true\n\t\t\t} = this.options,\n\t\t\t{\n\t\t\t\turl,\n\t\t\t\tinvalidSuffix,\n\t\t\t\tmustache\n\t\t\t} = this.regex,\n\t\t\turlLastIndex, mustacheLastIndex;\n\t\t\t\n\t\tmustache.lastIndex = 0;\n\t\turl.lastIndex = 0;\n\t\t\n\t\tvar mustacheMatch, mustacheRange;\n\t\tif (ignoreMustache) {\n\t\t\tmustacheMatch = mustache.exec(text);\n\t\t\tif (mustacheMatch) {\n\t\t\t\tmustacheRange = {\n\t\t\t\t\tstart: mustacheMatch.index,\n\t\t\t\t\tend: mustache.lastIndex\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar urlMatch;\n\t\twhile ((urlMatch = url.exec(text))) {\n const result = {\n start: 0,\n end: 0,\n \n text: \"\",\n url: \"\",\n \n prefix: urlMatch[1],\n custom: urlMatch[2],\n protocol: urlMatch[3],\n auth: urlMatch[4] || \"\",\n domain: urlMatch[5],\n port: urlMatch[6] || \"\",\n path: urlMatch[7] || \"\",\n suffix: urlMatch[8]\n };\n \n if (result.custom) {\n result.start = urlMatch.index;\n result.end = url.lastIndex;\n result.text = result.url = urlMatch[0];\n\t\t\t} else {\n \n result.start = urlMatch.index + result.prefix.length;\n result.end = url.lastIndex - result.suffix.length;\n\t\t\t}\n\t\t\t\n\t\t\tif (mustacheRange && mustacheRange.end <= result.start) {\n\t\t\t\tmustacheMatch = mustache.exec(text);\n\t\t\t\tif (mustacheMatch) {\n\t\t\t\t\tmustacheRange.start = mustacheMatch.index;\n\t\t\t\t\tmustacheRange.end = mustache.lastIndex;\n\t\t\t\t} else {\n\t\t\t\t\tmustacheRange = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// ignore urls inside mustache pair\n\t\t\tif (mustacheRange && result.start < mustacheRange.end && result.end >= mustacheRange.start) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tif (!result.custom) {\n\t\t\t\t// adjust path and suffix\n\t\t\t\tif (result.path) {\n\t\t\t\t\t// Strip BBCode\n\t\t\t\t\tpathStrip(result, /\\[\\/?(b|i|u|url|img|quote|code|size|color)\\].*/i, \"\");\n\t\t\t\t\t\n\t\t\t\t\t// Strip braces\n\t\t\t\t\tpathStripBrace(result, \"(\", \")\");\n\t\t\t\t\tpathStripBrace(result, \"[\", \"]\");\n\t\t\t\t\tpathStripBrace(result, \"{\", \"}\");\n\t\t\t\t\t\n\t\t\t\t\t// Strip quotes\n\t\t\t\t\tpathStripQuote(result, \"'\");\n\t\t\t\t\tpathStripQuote(result, '\"');\n\t\t\t\t\t\n\t\t\t\t\t// Remove trailing \".,?\"\n\t\t\t\t\tpathStrip(result, /(^|[^-_])[.,?]+$/, \"$1\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// check suffix\n\t\t\t\tif (invalidSuffix && invalidSuffix.test(result.suffix)) {\n\t\t\t\t\tif (/\\s$/.test(result.suffix)) {\n\t\t\t\t\t\turl.lastIndex--;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n \n // ignore fuzzy ip\n\t\t\t\tif (!fuzzyIp && isIP(result.domain) &&\n !result.protocol && !result.auth && !result.path) {\n continue;\n }\n \n\t\t\t\t// mailto protocol\n\t\t\t\tif (!result.protocol && result.auth) {\n\t\t\t\t\tvar matchMail = result.auth.match(/^mailto:(.+)/);\n\t\t\t\t\tif (matchMail) {\n\t\t\t\t\t\tresult.protocol = \"mailto:\";\n\t\t\t\t\t\tresult.auth = matchMail[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// http alias\n\t\t\t\tif (result.protocol && result.protocol.match(/^(hxxp|h\\*\\*p|ttp)/)) {\n\t\t\t\t\tresult.protocol = \"http://\";\n\t\t\t\t}\n\n\t\t\t\t// guess protocol\n\t\t\t\tif (!result.protocol) {\n\t\t\t\t\tvar domainMatch;\n\t\t\t\t\tif ((domainMatch = result.domain.match(/^(ftp|irc)/))) {\n\t\t\t\t\t\tresult.protocol = domainMatch[0] + \"://\";\n\t\t\t\t\t} else if (result.domain.match(/^(www|web)/)) {\n\t\t\t\t\t\tresult.protocol = \"http://\";\n\t\t\t\t\t} else if (result.auth && result.auth.indexOf(\":\") < 0 && !result.path) {\n\t\t\t\t\t\tresult.protocol = \"mailto:\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.protocol = \"http://\";\n\t\t\t\t\t}\n\t\t\t\t}\n \n // ignore mail\n if (!mail && result.protocol === \"mailto:\") {\n continue;\n }\n \n\t\t\t\t// verify domain\n if (!isIP(result.domain)) {\n if (/^(http|https|mailto)/.test(result.protocol) && !inTLDS(result.domain)) {\n continue;\n }\n \n const invalidLabel = getInvalidLabel(result.domain);\n if (invalidLabel) {\n url.lastIndex = urlMatch.index + invalidLabel.index + 1;\n continue;\n }\n }\n\n\t\t\t\t// Create URL\n\t\t\t\tresult.url = result.protocol + (result.auth && result.auth + \"@\") + result.domain + result.port + result.path;\n\t\t\t\tresult.text = text.slice(result.start, result.end);\n\t\t\t}\n\t\t\t\n\t\t\t// since regex is shared with other parse generators, cache lastIndex position and restore later\n\t\t\tmustacheLastIndex = mustache.lastIndex;\n\t\t\turlLastIndex = url.lastIndex;\n\t\t\t\n\t\t\tyield result;\n\t\t\t\n\t\t\turl.lastIndex = urlLastIndex;\n\t\t\tmustache.lastIndex = mustacheLastIndex;\n\t\t}\n\t}\n}\n\nfunction getInvalidLabel(domain) {\n // https://tools.ietf.org/html/rfc1035\n // https://serverfault.com/questions/638260/is-it-valid-for-a-hostname-to-start-with-a-digit\n let index = 0;\n const parts = domain.split(\".\");\n for (const part of parts) {\n if (\n !part ||\n part.startsWith(\"-\") ||\n part.endsWith(\"-\")\n ) {\n return {\n index,\n value: part\n };\n }\n index += part.length + 1;\n }\n}\n\nmodule.exports = {\n\tUrlMatcher\n};\n","/**\n * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped)\n *\n * @copyright Yusuke Kawasaki\n * @license MIT\n * @constructor\n * @see https://github.com/kawanet/event-lite\n * @see http://kawanet.github.io/event-lite/EventLite.html\n * @example\n * var EventLite = require(\"event-lite\");\n *\n * function MyClass() {...} // your class\n *\n * EventLite.mixin(MyClass.prototype); // import event methods\n *\n * var obj = new MyClass();\n * obj.on(\"foo\", function() {...}); // add event listener\n * obj.once(\"bar\", function() {...}); // add one-time event listener\n * obj.emit(\"foo\"); // dispatch event\n * obj.emit(\"bar\"); // dispatch another event\n * obj.off(\"foo\"); // remove event listener\n */\n\nexport default function EventLite() {\n if (!(this instanceof EventLite)) return new EventLite();\n}\n\n// (function(EventLite) {\n // export the class for node.js\n // if (\"undefined\" !== typeof module) module.exports = EventLite;\n\n // property name to hold listeners\n var LISTENERS = \"listeners\";\n\n // methods to export\n var methods = {\n on: on,\n once: once,\n off: off,\n emit: emit\n };\n\n // mixin to self\n mixin(EventLite.prototype);\n\n // export mixin function\n EventLite.mixin = mixin;\n\n /**\n * Import on(), once(), off() and emit() methods into target object.\n *\n * @function EventLite.mixin\n * @param target {Prototype}\n */\n\n function mixin(target) {\n for (var key in methods) {\n target[key] = methods[key];\n }\n return target;\n }\n\n /**\n * Add an event listener.\n *\n * @function EventLite.prototype.on\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function on(type, func) {\n getListeners(this, type).push(func);\n return this;\n }\n\n /**\n * Add one-time event listener.\n *\n * @function EventLite.prototype.once\n * @param type {string}\n * @param func {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function once(type, func) {\n var that = this;\n wrap.originalListener = func;\n getListeners(that, type).push(wrap);\n return that;\n\n function wrap() {\n off.call(that, type, wrap);\n func.apply(this, arguments);\n }\n }\n\n /**\n * Remove an event listener.\n *\n * @function EventLite.prototype.off\n * @param [type] {string}\n * @param [func] {Function}\n * @returns {EventLite} Self for method chaining\n */\n\n function off(type, func) {\n var that = this;\n var listners;\n if (!arguments.length) {\n delete that[LISTENERS];\n } else if (!func) {\n listners = that[LISTENERS];\n if (listners) {\n delete listners[type];\n if (!Object.keys(listners).length) return off.call(that);\n }\n } else {\n listners = getListeners(that, type, true);\n if (listners) {\n listners = listners.filter(ne);\n if (!listners.length) return off.call(that, type);\n that[LISTENERS][type] = listners;\n }\n }\n return that;\n\n function ne(test) {\n return test !== func && test.originalListener !== func;\n }\n }\n\n /**\n * Dispatch (trigger) an event.\n *\n * @function EventLite.prototype.emit\n * @param type {string}\n * @param [value] {*}\n * @returns {boolean} True when a listener received the event\n */\n\n function emit(type, value) {\n var that = this;\n var listeners = getListeners(that, type, true);\n if (!listeners) return false;\n var arglen = arguments.length;\n if (arglen === 1) {\n listeners.forEach(zeroarg);\n } else if (arglen === 2) {\n listeners.forEach(onearg);\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n listeners.forEach(moreargs);\n }\n return !!listeners.length;\n\n function zeroarg(func) {\n func.call(that);\n }\n\n function onearg(func) {\n func.call(that, value);\n }\n\n function moreargs(func) {\n func.apply(that, args);\n }\n }\n\n /**\n * @ignore\n */\n\n function getListeners(that, type, readonly) {\n if (readonly && !that[LISTENERS]) return;\n var listeners = that[LISTENERS] || (that[LISTENERS] = {});\n return listeners[type] || (listeners[type] = []);\n }\n\n// })(EventLite);\n","/* eslint-env browser */\n\nvar Events = require(\"event-lite\");\n\nvar INVALID_TAGS = {\n\ta: true,\n\tnoscript: true,\n\toption: true,\n\tscript: true,\n\tstyle: true,\n\ttextarea: true,\n\tsvg: true,\n\tcanvas: true,\n\tbutton: true,\n\tselect: true,\n\ttemplate: true,\n\tmeter: true,\n\tprogress: true,\n\tmath: true,\n\ttime: true\n};\n\nclass Pos {\n\tconstructor(container, offset, i = 0) {\n\t\tthis.container = container;\n\t\tthis.offset = offset;\n\t\tthis.i = i;\n\t}\n\t\n\tadd(change) {\n\t\tvar cont = this.container,\n\t\t\toffset = this.offset;\n\n\t\tthis.i += change;\n\t\t\n\t\t// If the container is #text.parentNode\n\t\tif (cont.childNodes.length) {\n\t\t\tcont = cont.childNodes[offset];\n\t\t\toffset = 0;\n\t\t}\n\n\t\t// If the container is #text\n\t\twhile (cont) {\n\t\t\tif (cont.nodeType == 3) {\n\t\t\t\tif (!cont.LEN) {\n\t\t\t\t\tcont.LEN = cont.nodeValue.length;\n\t\t\t\t}\n\t\t\t\tif (offset + change <= cont.LEN) {\n\t\t\t\t\tthis.container = cont;\n\t\t\t\t\tthis.offset = offset + change;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tchange = offset + change - cont.LEN;\n\t\t\t\toffset = 0;\n\t\t\t}\n\t\t\tcont = cont.nextSibling;\n\t\t}\n\t}\n\t\n\tmoveTo(offset) {\n\t\tthis.add(offset - this.i);\n\t}\n}\n\nfunction cloneContents(range) {\n\tif (range.startContainer == range.endContainer) {\n\t\treturn document.createTextNode(range.toString());\n\t}\n\treturn range.cloneContents();\n}\n\nvar DEFAULT_OPTIONS = {\n\tmaxRunTime: 100,\n\ttimeout: 10000,\n\tnewTab: true,\n\tnoOpener: true,\n\tembedImage: true,\n recursive: true,\n};\n\nclass Linkifier extends Events {\n\tconstructor(root, options = {}) {\n\t\tsuper();\n\t\tif (!(root instanceof Node)) {\n\t\t\toptions = root;\n\t\t\troot = options.root;\n\t\t}\n\t\tthis.root = root;\n\t\tthis.options = Object.assign({}, DEFAULT_OPTIONS, options);\n\t\tthis.aborted = false;\n\t}\n\tstart() {\n\t\tvar time = Date.now,\n\t\t\tstartTime = time(),\n\t\t\tchunks = this.generateChunks();\n\t\t\t\n\t\tvar next = () => {\n\t\t\tif (this.aborted) {\n\t\t\t\tthis.emit(\"error\", new Error(\"Aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar chunkStart = time(),\n\t\t\t\tnow;\n\t\t\t\t\n\t\t\tdo {\n\t\t\t\tif (chunks.next().done) {\n\t\t\t\t\tthis.emit(\"complete\", time() - startTime);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while ((now = time()) - chunkStart < this.options.maxRunTime);\n\t\t\t\n\t\t\tif (now - startTime > this.options.timeout) {\n\t\t\t\tthis.emit(\"error\", new Error(`max execution time exceeded: ${now - startTime}, on ${this.root}`));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tsetTimeout(next);\n\t\t};\n\t\t\t\n\t\tsetTimeout(next);\n\t}\n\tabort() {\n\t\tthis.aborted = true;\n\t}\n\t*generateRanges() {\n\t\tvar {validator, recursive} = this.options;\n\t\tvar filter = {\n\t\t\tacceptNode: function(node) {\n\t\t\t\tif (validator && !validator(node)) {\n\t\t\t\t\treturn NodeFilter.FILTER_REJECT;\n\t\t\t\t}\n\t\t\t\tif (INVALID_TAGS[node.localName]) {\n\t\t\t\t\treturn NodeFilter.FILTER_REJECT;\n\t\t\t\t}\n\t\t\t\tif (node.localName == \"wbr\") {\n\t\t\t\t\treturn NodeFilter.FILTER_ACCEPT;\n\t\t\t\t}\n\t\t\t\tif (node.nodeType == 3) {\n\t\t\t\t\treturn NodeFilter.FILTER_ACCEPT;\n\t\t\t\t}\n\t\t\t\treturn recursive ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_REJECT;\n\t\t\t}\n\t\t};\n\t\t// Generate linkified ranges.\n\t\tvar walker = document.createTreeWalker(\n\t\t\tthis.root,\n\t\t\tNodeFilter.SHOW_TEXT + NodeFilter.SHOW_ELEMENT,\n\t\t\tfilter\n\t\t), start, end, current, range;\n\n\t\tend = start = walker.nextNode();\n\t\tif (!start) {\n\t\t\treturn;\n\t\t}\n\t\trange = document.createRange();\n\t\trange.setStartBefore(start);\n\t\twhile ((current = walker.nextNode())) {\n\t\t\tif (end.nextSibling == current) {\n\t\t\t\tend = current;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trange.setEndAfter(end);\n\t\t\tyield range;\n\n\t\t\tend = start = current;\n\t\t\trange.setStartBefore(start);\n\t\t}\n\t\trange.setEndAfter(end);\n\t\tyield range;\n\t}\n\t*generateChunks() {\n\t\tvar {matcher} = this.options;\n\t\tfor (var range of this.generateRanges()) {\n\t\t\tvar frag = null,\n\t\t\t\tpos = null,\n\t\t\t\ttext = range.toString(),\n\t\t\t\ttextRange = null;\n\t\t\tfor (var result of matcher.match(text)) {\n\t\t\t\tif (!frag) {\n\t\t\t\t\tfrag = document.createDocumentFragment();\n\t\t\t\t\tpos = new Pos(range.startContainer, range.startOffset);\n\t\t\t\t\ttextRange = range.cloneRange();\n\t\t\t\t}\n\t\t\t\t// clone text\n\t\t\t\tpos.moveTo(result.start);\n\t\t\t\ttextRange.setEnd(pos.container, pos.offset);\n\t\t\t\tfrag.appendChild(cloneContents(textRange));\n\t\t\t\t\n\t\t\t\t// clone link\n\t\t\t\ttextRange.collapse();\n\t\t\t\tpos.moveTo(result.end);\n\t\t\t\ttextRange.setEnd(pos.container, pos.offset);\n\t\t\t\t\n\t\t\t\tvar content = cloneContents(textRange),\n\t\t\t\t\tlink = this.buildLink(result, content);\n\n\t\t\t\ttextRange.collapse();\n\n\t\t\t\tfrag.appendChild(link);\n\t\t\t\tthis.emit(\"link\", {link, range, result, content});\n\t\t\t}\n\t\t\tif (pos) {\n\t\t\t\tpos.moveTo(text.length);\n\t\t\t\ttextRange.setEnd(pos.container, pos.offset);\n\t\t\t\tfrag.appendChild(cloneContents(textRange));\n\t\t\t\t\n\t\t\t\trange.deleteContents();\n\t\t\t\trange.insertNode(frag);\n\t\t\t}\n\t\t\tyield;\n\t\t}\n\t}\n\tbuildLink(result, content) {\n\t\tvar {newTab, embedImage, noOpener} = this.options;\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.href = result.url;\n\t\tlink.title = \"Linkify Plus Plus\";\n\t\tlink.className = \"linkifyplus\";\n\t\tif (newTab) {\n\t\t\tlink.target = \"_blank\";\n\t\t}\n\t\tif (noOpener) {\n\t\t\tlink.rel = \"noopener\";\n\t\t}\n\t\tvar child;\n\t\tif (embedImage && /^[^?#]+\\.(?:jpg|jpeg|png|apng|gif|svg|webp)(?:$|[?#])/i.test(result.url)) {\n\t\t\tchild = new Image;\n\t\t\tchild.src = result.url;\n\t\t\tchild.alt = result.text;\n\t\t} else {\n\t\t\tchild = content;\n\t\t}\n\t\tlink.appendChild(child);\n\t\treturn link;\n\t}\n}\n\nfunction linkify(...args) {\n\treturn new Promise((resolve, reject) => {\n\t\tvar linkifier = new Linkifier(...args);\n\t\tlinkifier.on(\"error\", reject);\n\t\tlinkifier.on(\"complete\", resolve);\n\t\tfor (var key of Object.keys(linkifier.options)) {\n\t\t\tif (key.startsWith(\"on\")) {\n\t\t\t\tlinkifier.on(key.slice(2), linkifier.options[key]);\n\t\t\t}\n\t\t}\n\t\tlinkifier.start();\n\t});\n}\n\nmodule.exports = {\n\tINVALID_TAGS,\n\tLinkifier,\n\tlinkify\n};\n"],"names":["tlds.chars","tlds.maxLength","tlds.table","Events"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[1]}