{"version":3,"file":"c_linkify-it_2d8f061b.1695271849080.js","sources":["../../node_modules/linkify-it/lib/re.js","../../node_modules/linkify-it/index.js"],"sourcesContent":["'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n opts = opts || {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n ',(?!' + re.src_ZCc + '|$)|' + // allow `,,,` in paths\n ';(?!' + re.src_ZCc + '|$)|' + // allow `;` if not followed by space-like char\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) return null;\n\n var m = this.re.schema_at_start.exec(text);\n if (!m) return null;\n\n var len = this.testSchemaAt(text, m[2], m[0].length);\n if (!len) return null;\n\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n\n return createMatch(this, 0);\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n"],"names":["re","opts","require$$0","require$$1","require$$2","require$$3","text_separators","assign","obj","sources","source","key","_class","isString","isObject","isRegExp","isFunction","escapeRE","str","defaultOptions","isOptionsObj","acc","k","defaultSchemas","text","pos","self","tail","tlds_2ch_src_re","tlds_default","resetScanCache","createValidator","createNormalizer","match","compile","tlds","untpl","tpl","aliases","schemaError","name","val","compiled","alias","slist","Match","shift","start","end","createMatch","LinkifyIt","schemas","options","schema","definition","m","ml","me","len","next","tld_pos","at_pos","result","list","keepOld","el","idx","arr","linkifyIt"],"mappings":"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","x_google_ignoreList":[0,1]}