{"version":3,"file":"isURL.mjs","names":[],"sources":["../../../../node_modules/validator/es/lib/isURL.js","../../src/exports/isURL.ts"],"sourcesContent":["function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport assertString from './util/assertString';\nimport isFQDN from './isFQDN';\nimport isIP from './isIP';\nimport merge from './util/merge';\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n  protocols: ['http', 'https', 'ftp'],\n  require_tld: true,\n  require_protocol: false,\n  require_host: true,\n  require_port: false,\n  require_valid_protocol: true,\n  allow_underscores: false,\n  allow_trailing_dot: false,\n  allow_protocol_relative_urls: false,\n  allow_fragments: true,\n  allow_query_components: true,\n  validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n  return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n  for (var i = 0; i < matches.length; i++) {\n    var match = matches[i];\n\n    if (host === match || isRegExp(match) && match.test(host)) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nexport default function isURL(url, options) {\n  assertString(url);\n\n  if (!url || /[\\s<>]/.test(url)) {\n    return false;\n  }\n\n  if (url.indexOf('mailto:') === 0) {\n    return false;\n  }\n\n  options = merge(options, default_url_options);\n\n  if (options.validate_length && url.length >= 2083) {\n    return false;\n  }\n\n  if (!options.allow_fragments && url.includes('#')) {\n    return false;\n  }\n\n  if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n    return false;\n  }\n\n  var protocol, auth, host, hostname, port, port_str, split, ipv6;\n  split = url.split('#');\n  url = split.shift();\n  split = url.split('?');\n  url = split.shift();\n  split = url.split('://');\n\n  if (split.length > 1) {\n    protocol = split.shift().toLowerCase();\n\n    if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n      return false;\n    }\n  } else if (options.require_protocol) {\n    return false;\n  } else if (url.slice(0, 2) === '//') {\n    if (!options.allow_protocol_relative_urls) {\n      return false;\n    }\n\n    split[0] = url.slice(2);\n  }\n\n  url = split.join('://');\n\n  if (url === '') {\n    return false;\n  }\n\n  split = url.split('/');\n  url = split.shift();\n\n  if (url === '' && !options.require_host) {\n    return true;\n  }\n\n  split = url.split('@');\n\n  if (split.length > 1) {\n    if (options.disallow_auth) {\n      return false;\n    }\n\n    if (split[0] === '') {\n      return false;\n    }\n\n    auth = split.shift();\n\n    if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n      return false;\n    }\n\n    var _auth$split = auth.split(':'),\n        _auth$split2 = _slicedToArray(_auth$split, 2),\n        user = _auth$split2[0],\n        password = _auth$split2[1];\n\n    if (user === '' && password === '') {\n      return false;\n    }\n  }\n\n  hostname = split.join('@');\n  port_str = null;\n  ipv6 = null;\n  var ipv6_match = hostname.match(wrapped_ipv6);\n\n  if (ipv6_match) {\n    host = '';\n    ipv6 = ipv6_match[1];\n    port_str = ipv6_match[2] || null;\n  } else {\n    split = hostname.split(':');\n    host = split.shift();\n\n    if (split.length) {\n      port_str = split.join(':');\n    }\n  }\n\n  if (port_str !== null && port_str.length > 0) {\n    port = parseInt(port_str, 10);\n\n    if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n      return false;\n    }\n  } else if (options.require_port) {\n    return false;\n  }\n\n  if (options.host_whitelist) {\n    return checkHost(host, options.host_whitelist);\n  }\n\n  if (host === '' && !options.require_host) {\n    return true;\n  }\n\n  if (!isIP(host) && !isFQDN(host, options) && (!ipv6 || !isIP(ipv6, 6))) {\n    return false;\n  }\n\n  host = host || ipv6;\n\n  if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n    return false;\n  }\n\n  return true;\n}","import isURL from 'validator/es/lib/isURL';\n\nimport { enforce } from '../n4s';\n\nenforce.extend({ isURL });\n\ndeclare global {\n  namespace n4s {\n    interface EnforceMatchers {\n      isURL: typeof isURL;\n    }\n  }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}