{"version":3,"file":"form-model.mjs","sources":["../../node_modules/validator/lib/util/merge.js","../../node_modules/validator/lib/isDate.js","../../node_modules/validator/lib/util/assertString.js","../../node_modules/validator/lib/util/checkHost.js","../../node_modules/validator/lib/isByteLength.js","../../node_modules/validator/lib/isFQDN.js","../../node_modules/validator/lib/isIP.js","../../node_modules/validator/lib/isEmail.js","../../node_modules/validator/lib/util/includesString.js","../../node_modules/validator/lib/isURL.js","../../src/form/form-model.ts"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = merge;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction merge() {\n  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var defaults = arguments.length > 1 ? arguments[1] : undefined;\n  if (_typeof(obj) !== 'object' || obj === null) {\n    obj = {};\n  }\n  for (var key in defaults) {\n    if (typeof obj[key] === 'undefined') {\n      obj[key] = defaults[key];\n    }\n  }\n  return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar default_date_options = {\n  format: 'YYYY/MM/DD',\n  delimiters: ['/', '-'],\n  strictMode: false\n};\nfunction isValidFormat(format) {\n  return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n  var zippedArr = [],\n    len = Math.max(date.length, format.length);\n  for (var i = 0; i < len; i++) {\n    zippedArr.push([date[i], format[i]]);\n  }\n  return zippedArr;\n}\nfunction isDate(input, options) {\n  if (typeof options === 'string') {\n    // Allow backward compatibility for old format isDate(input [, format])\n    options = (0, _merge.default)({\n      format: options\n    }, default_date_options);\n  } else {\n    options = (0, _merge.default)(options, default_date_options);\n  }\n  if (typeof input === 'string' && isValidFormat(options.format)) {\n    if (options.strictMode && input.length !== options.format.length) return false;\n    var formatDelimiter = options.delimiters.find(function (delimiter) {\n      return options.format.indexOf(delimiter) !== -1;\n    });\n    var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n      return input.indexOf(delimiter) !== -1;\n    });\n    var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n    var dateObj = {};\n    var _iterator = _createForOfIteratorHelper(dateAndFormat),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _slicedToArray(_step.value, 2),\n          dateWord = _step$value[0],\n          formatWord = _step$value[1];\n        if (!dateWord || !formatWord || dateWord.length !== formatWord.length) {\n          return false;\n        }\n        dateObj[formatWord.charAt(0)] = dateWord;\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    var fullYear = dateObj.y;\n\n    // Check if the year starts with a hyphen\n    if (fullYear.startsWith('-')) {\n      return false; // Hyphen before year is not allowed\n    }\n    if (dateObj.y.length === 2) {\n      var parsedYear = parseInt(dateObj.y, 10);\n      if (isNaN(parsedYear)) {\n        return false;\n      }\n      var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n      if (parsedYear < currentYearLastTwoDigits) {\n        fullYear = \"20\".concat(dateObj.y);\n      } else {\n        fullYear = \"19\".concat(dateObj.y);\n      }\n    }\n    var month = dateObj.m;\n    if (dateObj.m.length === 1) {\n      month = \"0\".concat(dateObj.m);\n    }\n    var day = dateObj.d;\n    if (dateObj.d.length === 1) {\n      day = \"0\".concat(dateObj.d);\n    }\n    return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n  }\n  if (!options.strictMode) {\n    return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n  }\n  return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = assertString;\nfunction assertString(input) {\n  if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n  if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = checkHost;\nfunction isRegExp(obj) {\n  return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n  for (var i = 0; i < matches.length; i++) {\n    var match = matches[i];\n    if (host === match || isRegExp(match) && match.test(host)) {\n      return true;\n    }\n  }\n  return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n  (0, _assertString.default)(str);\n  var min;\n  var max;\n  if (_typeof(options) === 'object') {\n    min = options.min || 0;\n    max = options.max;\n  } else {\n    // backwards compatibility: isByteLength(str, min [, max])\n    min = arguments[1];\n    max = arguments[2];\n  }\n  var len = encodeURI(str).split(/%..|./).length - 1;\n  return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_fqdn_options = {\n  require_tld: true,\n  allow_underscores: false,\n  allow_trailing_dot: false,\n  allow_numeric_tld: false,\n  allow_wildcard: false,\n  ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_fqdn_options);\n\n  /* Remove the optional trailing dot before checking validity */\n  if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n    str = str.substring(0, str.length - 1);\n  }\n\n  /* Remove the optional wildcard before checking validity */\n  if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n    str = str.substring(2);\n  }\n  var parts = str.split('.');\n  var tld = parts[parts.length - 1];\n  if (options.require_tld) {\n    // disallow fqdns without tld\n    if (parts.length < 2) {\n      return false;\n    }\n    if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n      return false;\n    }\n\n    // disallow spaces\n    if (/\\s/.test(tld)) {\n      return false;\n    }\n  }\n\n  // reject numeric TLDs\n  if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n    return false;\n  }\n  return parts.every(function (part) {\n    if (part.length > 63 && !options.ignore_max_length) {\n      return false;\n    }\n    if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n      return false;\n    }\n\n    // disallow full-width chars\n    if (/[\\uff01-\\uff5e]/.test(part)) {\n      return false;\n    }\n\n    // disallow parts starting or ending with hyphen\n    if (/^-|-$/.test(part)) {\n      return false;\n    }\n    if (!options.allow_underscores && /_/.test(part)) {\n      return false;\n    }\n    return true;\n  });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n11.3.  Examples\n\n   The following addresses\n\n             fe80::1234 (on the 1st link of the node)\n             ff02::5678 (on the 5th link of the node)\n             ff08::9abc (on the 10th organization of the node)\n\n   would be represented as follows:\n\n             fe80::1234%1\n             ff02::5678%5\n             ff08::9abc%10\n\n   (Here we assume a natural translation from a zone index to the\n   <zone_id> part, where the Nth zone of any scope is translated into\n   \"N\".)\n\n   If we use interface names as <zone_id>, those addresses could also be\n   represented as follows:\n\n            fe80::1234%ne0\n            ff02::5678%pvc1.3\n            ff08::9abc%interface10\n\n   where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n   to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nfunction isIP(ipAddress) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  (0, _assertString.default)(ipAddress);\n\n  // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n  // eslint-disable-next-line prefer-rest-params\n  var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n  if (!version) {\n    return isIP(ipAddress, {\n      version: 4\n    }) || isIP(ipAddress, {\n      version: 6\n    });\n  }\n  if (version.toString() === '4') {\n    return IPv4AddressRegExp.test(ipAddress);\n  }\n  if (version.toString() === '6') {\n    return IPv6AddressRegExp.test(ipAddress);\n  }\n  return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar default_email_options = {\n  allow_display_name: false,\n  allow_underscores: false,\n  require_display_name: false,\n  allow_utf8_local_part: true,\n  require_tld: true,\n  blacklisted_chars: '',\n  ignore_max_length: false,\n  host_blacklist: [],\n  host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n  var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n  // display name with only spaces is not valid\n  if (!display_name_without_quotes.trim()) {\n    return false;\n  }\n\n  // check whether display name contains illegal character\n  var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n  if (contains_illegal) {\n    // if contains illegal characters,\n    // must to be enclosed in double-quotes, otherwise it's not a valid display name\n    if (display_name_without_quotes === display_name) {\n      return false;\n    }\n\n    // the quotes in display name must start with character symbol \\\n    var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n    if (!all_start_with_back_slash) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction isEmail(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_email_options);\n  if (options.require_display_name || options.allow_display_name) {\n    var display_email = str.match(splitNameAddress);\n    if (display_email) {\n      var display_name = display_email[1];\n\n      // Remove display name and angle brackets to get email address\n      // Can be done in the regex but will introduce a ReDOS (See  #1597 for more info)\n      str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n      // sometimes need to trim the last space to get the display name\n      // because there may be a space between display name and email address\n      // eg. myname <address@gmail.com>\n      // the display name is `myname` instead of `myname `, so need to trim the last space\n      if (display_name.endsWith(' ')) {\n        display_name = display_name.slice(0, -1);\n      }\n      if (!validateDisplayName(display_name)) {\n        return false;\n      }\n    } else if (options.require_display_name) {\n      return false;\n    }\n  }\n  if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n    return false;\n  }\n  var parts = str.split('@');\n  var domain = parts.pop();\n  var lower_domain = domain.toLowerCase();\n  if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {\n    return false;\n  }\n  if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {\n    return false;\n  }\n  var user = parts.join('@');\n  if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n    /*\n    Previously we removed dots for gmail addresses before validating.\n    This was removed because it allows `multiple..dots@gmail.com`\n    to be reported as valid, but it is not.\n    Gmail only normalizes single dots, removing them from here is pointless,\n    should be done in normalizeEmail\n    */\n    user = user.toLowerCase();\n\n    // Removing sub-address from username before gmail validation\n    var username = user.split('+')[0];\n\n    // Dots are not included in gmail length restriction\n    if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n      min: 6,\n      max: 30\n    })) {\n      return false;\n    }\n    var _user_parts = username.split('.');\n    for (var i = 0; i < _user_parts.length; i++) {\n      if (!gmailUserPart.test(_user_parts[i])) {\n        return false;\n      }\n    }\n  }\n  if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n    max: 64\n  }) || !(0, _isByteLength.default)(domain, {\n    max: 254\n  }))) {\n    return false;\n  }\n  if (!(0, _isFQDN.default)(domain, {\n    require_tld: options.require_tld,\n    ignore_max_length: options.ignore_max_length,\n    allow_underscores: options.allow_underscores\n  })) {\n    if (!options.allow_ip_domain) {\n      return false;\n    }\n    if (!(0, _isIP.default)(domain)) {\n      if (!domain.startsWith('[') || !domain.endsWith(']')) {\n        return false;\n      }\n      var noBracketdomain = domain.slice(1, -1);\n      if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n        return false;\n      }\n    }\n  }\n  if (options.blacklisted_chars) {\n    if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n  }\n  if (user[0] === '\"' && user[user.length - 1] === '\"') {\n    user = user.slice(1, user.length - 1);\n    return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n  }\n  var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n  var user_parts = user.split('.');\n  for (var _i = 0; _i < user_parts.length; _i++) {\n    if (!pattern.test(user_parts[_i])) {\n      return false;\n    }\n  }\n  return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar includes = function includes(str, val) {\n  return str.indexOf(val) !== -1;\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _checkHost = _interopRequireDefault(require(\"./util/checkHost\"));\nvar _includesString = _interopRequireDefault(require(\"./util/includesString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n/*\noptions for isURL method\n\nprotocols - valid protocols can be modified with this option.\nrequire_tld - If set to false isURL will not check if the URL's host includes a top-level domain.\nrequire_protocol - if set to true isURL will return false if protocol is not present in the URL.\nrequire_host - if set to false isURL will not check if host is present in the URL.\nrequire_port - if set to true isURL will check if port is present in the URL.\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option.\nallow_underscores - if set to true, the validator will allow underscores in the URL.\nhost_whitelist - if set to an array of strings or regexp, and the domain matches none of the strings\n                 defined in it, the validation fails.\nhost_blacklist - if set to an array of strings or regexp, and the domain matches any of the strings\n                 defined in it, the validation fails.\nallow_trailing_dot - if set to true, the validator will allow the domain to end with\n                     a `.` character.\nallow_protocol_relative_urls - if set to true protocol relative URLs will be allowed.\nallow_fragments - if set to false isURL will return false if fragments are present.\nallow_query_components - if set to false isURL will return false if query components are present.\ndisallow_auth - if set to true, the validator will fail if the URL contains an authentication\n                component, e.g. `http://username:password@example.com`\nvalidate_length - if set to false isURL will skip string length validation. `max_allowed_length`\n                  will be ignored if this is set as `false`.\nmax_allowed_length - if set, isURL will not allow URLs longer than the specified value (default is\n                     2084 that IE maximum URL length).\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  max_allowed_length: 2084\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isURL(url, options) {\n  (0, _assertString.default)(url);\n  if (!url || /[\\s<>]/.test(url)) {\n    return false;\n  }\n  if (url.indexOf('mailto:') === 0) {\n    return false;\n  }\n  options = (0, _merge.default)(options, default_url_options);\n  if (options.validate_length && url.length > options.max_allowed_length) {\n    return false;\n  }\n  if (!options.allow_fragments && (0, _includesString.default)(url, '#')) {\n    return false;\n  }\n  if (!options.allow_query_components && ((0, _includesString.default)(url, '?') || (0, _includesString.default)(url, '&'))) {\n    return false;\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\n  // Replaced the 'split(\"://\")' logic with a regex to match the protocol.\n  // This correctly identifies schemes like `javascript:` which don't use `//`.\n  // However, we need to be careful not to confuse authentication credentials (user:password@host)\n  // with protocols. A colon before an @ symbol might be part of auth, not a protocol separator.\n  var protocol_match = url.match(/^([a-z][a-z0-9+\\-.]*):/i);\n  var had_explicit_protocol = false;\n  var cleanUpProtocol = function cleanUpProtocol(potential_protocol) {\n    had_explicit_protocol = true;\n    protocol = potential_protocol.toLowerCase();\n    if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n      // The identified protocol is not in the allowed list.\n      return false;\n    }\n\n    // Remove the protocol from the URL string.\n    return url.substring(protocol_match[0].length);\n  };\n  if (protocol_match) {\n    var potential_protocol = protocol_match[1];\n    var after_colon = url.substring(protocol_match[0].length);\n\n    // Check if what follows looks like authentication credentials (user:password@host)\n    // rather than a protocol. This happens when:\n    // 1. There's no `//` after the colon (protocols like `http://` have this)\n    // 2. There's an `@` symbol before any `/`\n    // 3. The part before `@` contains only valid auth characters (alphanumeric, -, _, ., %, :)\n    var starts_with_slashes = after_colon.slice(0, 2) === '//';\n    if (!starts_with_slashes) {\n      var first_slash_position = after_colon.indexOf('/');\n      var before_slash = first_slash_position === -1 ? after_colon : after_colon.substring(0, first_slash_position);\n      var at_position = before_slash.indexOf('@');\n      if (at_position !== -1) {\n        var before_at = before_slash.substring(0, at_position);\n        var valid_auth_regex = /^[a-zA-Z0-9\\-_.%:]*$/;\n        var is_valid_auth = valid_auth_regex.test(before_at);\n\n        // Check if this contains URL-encoded content that could be malicious\n        // For example: javascript:%61%6c%65%72%74%28%31%29@example.com\n        // The encoded part decodes to: alert(1)\n        var has_encoded_content = /%[0-9a-fA-F]{2}/.test(before_at);\n        if (is_valid_auth && !has_encoded_content) {\n          // This looks like authentication (e.g., user:password@host), not a protocol\n          if (options.require_protocol) {\n            return false;\n          }\n\n          // Don't consume the colon; let the auth parsing handle it later\n        } else {\n          // This looks like a malicious protocol (e.g., javascript:alert();@host)\n          // or URL-encoded protocol handler (e.g., javascript:%61%6c%65%72%74%28%31%29@host)\n          url = cleanUpProtocol(potential_protocol);\n          if (url === false) {\n            return false;\n          }\n        }\n      } else {\n        // No @ symbol found. Check if this could be a port number instead of a protocol.\n        // If what's after the colon is numeric (or starts with a digit and contains only\n        // valid port characters until a path separator), it's likely hostname:port, not a protocol.\n        var looks_like_port = /^[0-9]/.test(after_colon);\n        if (looks_like_port) {\n          // This looks like hostname:port, not a protocol\n          if (options.require_protocol) {\n            return false;\n          }\n          // Don't consume anything; let it be parsed as hostname:port\n        } else {\n          // This is definitely a protocol\n          url = cleanUpProtocol(potential_protocol);\n          if (url === false) {\n            return false;\n          }\n        }\n      }\n    } else {\n      // Starts with '//', this is definitely a protocol like http://\n      url = cleanUpProtocol(potential_protocol);\n      if (url === false) {\n        return false;\n      }\n    }\n  } else if (options.require_protocol) {\n    return false;\n  }\n\n  // Handle leading '//' only as protocol-relative when there was NO explicit protocol.\n  // If there was an explicit protocol, '//' is the normal separator\n  // and should be stripped unconditionally.\n  if (url.slice(0, 2) === '//') {\n    if (!had_explicit_protocol && !options.allow_protocol_relative_urls) {\n      return false;\n    }\n    url = url.slice(2);\n  }\n  if (url === '') {\n    return false;\n  }\n  split = url.split('/');\n  url = split.shift();\n  if (url === '' && !options.require_host) {\n    return true;\n  }\n  split = url.split('@');\n  if (split.length > 1) {\n    if (options.disallow_auth) {\n      return false;\n    }\n    if (split[0] === '') {\n      return false;\n    }\n    auth = split.shift();\n    if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n      return false;\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    if (user === '' && password === '') {\n      return false;\n    }\n  }\n  hostname = split.join('@');\n  port_str = null;\n  ipv6 = null;\n  var ipv6_match = hostname.match(wrapped_ipv6);\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    if (split.length) {\n      port_str = split.join(':');\n    }\n  }\n  if (port_str !== null && port_str.length > 0) {\n    port = parseInt(port_str, 10);\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  if (options.host_whitelist) {\n    return (0, _checkHost.default)(host, options.host_whitelist);\n  }\n  if (host === '' && !options.require_host) {\n    return true;\n  }\n  if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n    return false;\n  }\n  host = host || ipv6;\n  if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) {\n    return false;\n  }\n  return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isBoolean, isEmpty, isNumber, isObject } from 'lodash-es';\n\n// https://github.com/validatorjs/validator.js\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport isURL from 'validator/lib/isURL';\n\nimport {\n  CustomValidator,\n  FormRule,\n  ValueType,\n  AllValidateResult,\n  ValidateResultType,\n  CustomValidateResolveType,\n} from './type';\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度，当传入maxCharacter时返回截取之后的字符串和长度。\n */\nfunction getCharacterLength(str: string, maxCharacter?: number) {\n  const hasMaxCharacter = isNumber(maxCharacter);\n  if (!str || str.length === 0) {\n    if (hasMaxCharacter) {\n      return {\n        length: 0,\n        characters: str,\n      };\n    }\n    return 0;\n  }\n  let len = 0;\n  for (let i = 0; i < str.length; i++) {\n    let currentStringLength = 0;\n    if (str.charCodeAt(i) > 127 || str.charCodeAt(i) === 94) {\n      currentStringLength = 2;\n    } else {\n      currentStringLength = 1;\n    }\n    if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n      return {\n        length: len,\n        characters: str.slice(0, i),\n      };\n    }\n    len += currentStringLength;\n  }\n  if (hasMaxCharacter) {\n    return {\n      length: len,\n      characters: str,\n    };\n  }\n  return len;\n}\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空； 0 和 false 被认为是正常数据，部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n  const type: string = Object.prototype.toString.call(val);\n  const typeMap: Record<string, any> = {\n    Date: '[object Date]',\n  };\n  if (type === typeMap.Date) {\n    return false;\n  }\n  return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n  date: isDate,\n  url: isURL,\n  email: isEmail,\n  required: (val: ValueType): boolean => !isValueEmpty(val),\n  whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n  boolean: (val: ValueType): boolean => isBoolean(val),\n  max: (val: ValueType, num: number): boolean =>\n    isNumber(val) ? val <= num : (getCharacterLength(val) as number) <= num,\n  min: (val: ValueType, num: number): boolean =>\n    isNumber(val) ? val >= num : (getCharacterLength(val) as number) >= num,\n  len: (val: ValueType, num: number): boolean => getCharacterLength(val) === num,\n  number: (val: ValueType): boolean => isNumber(val),\n  enum: (val: ValueType, strs: Array<string>): boolean => strs.includes(val),\n  idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n  telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n  pattern: (val: ValueType, regexp: RegExp | string): boolean => {\n    const reg = typeof regexp === 'string' ? new RegExp(regexp) : regexp;\n    return reg.test(val);\n  },\n  // 自定义校验规则，可能是异步校验\n  validator: (val: ValueType, validate: CustomValidator): ReturnType<CustomValidator> => validate(val),\n};\n\nexport type ValidateFuncType = (typeof VALIDATE_MAP)[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则，一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果，一种是内置校验规则的校验结果哦，二种是自定义校验规则（validator）的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise<AllValidateResult> {\n  let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n  const keys = Object.keys(rule);\n  let vOptions;\n  let vValidateFun: ValidateFuncType;\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    // 非必填选项，值为空，非自定义规则：无需校验，直接返回 true\n    if (!rule.required && isValueEmpty(value) && !rule.validator) {\n      return validateResult;\n    }\n    const validateRule: ValidateFuncType = VALIDATE_MAP[key as keyof typeof VALIDATE_MAP];\n    const ruleItem = rule[key as keyof FormRule];\n    // 找到一个校验规则，则无需再找，因为参数只允许对一个规则进行校验\n    if (validateRule && (ruleItem || ruleItem === 0)) {\n      // rule 值为 true 则表示没有校验参数，只是对值进行默认规则校验\n      vOptions = ruleItem === true ? undefined : ruleItem;\n      vValidateFun = validateRule;\n      break;\n    }\n  }\n  if (vValidateFun) {\n    // @ts-ignore\n    validateResult = await vValidateFun(value, vOptions);\n    // 如果校验不通过，则返回校验不通过的规则\n    if (isBoolean(validateResult)) {\n      return { ...rule, result: validateResult };\n    }\n    // 校验结果为 CustomValidateObj，只有自定义校验规则会存在这种情况\n    if (isObject(validateResult)) {\n      return validateResult;\n    }\n  }\n  return validateResult;\n}\n\n// 单个数据进行全规则校验，校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array<FormRule>): Promise<AllValidateResult[]> {\n  const all = rules.map((rule) => validateOneRule(value, rule));\n  const r = await Promise.all(all);\n  return r;\n}\n"],"names":["Object","defineProperty","exports","value","default","merge","_typeof","o","Symbol","iterator","constructor","prototype","obj","arguments","length","undefined","defaults","key","module","isDate","_merge","_interopRequireDefault","require$$0","e","__esModule","_slicedToArray","r","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","l","t","n","i","u","a","f","call","next","done","push","return","Array","isArray","_createForOfIteratorHelper","_n","F","s","_arrayLikeToArray","toString","slice","name","from","test","default_date_options","format","delimiters","strictMode","isValidFormat","zip","date","zippedArr","len","Math","max","input","options","formatDelimiter","find","delimiter","indexOf","dateDelimiter","dateAndFormat","split","toLowerCase","dateObj","_iterator","_step","_step$value","dateWord","formatWord","charAt","err","fullYear","y","startsWith","parsedYear","parseInt","isNaN","currentYearLastTwoDigits","Date","getFullYear","concat","month","m","day","d","getUTCDate","isFinite","assertString","checkHost","isRegExp","host","matches","match","isByteLength","_assertString","str","min","encodeURI","isFQDN","require$$1","default_fqdn_options","require_tld","allow_underscores","allow_trailing_dot","allow_numeric_tld","allow_wildcard","ignore_max_length","substring","parts","tld","every","part","isIP","IPv4SegmentFormat","IPv4AddressFormat","IPv4AddressRegExp","RegExp","IPv6SegmentFormat","IPv6AddressRegExp","ipAddress","version","isEmail","_checkHost","_isByteLength","require$$2","_isFQDN","require$$3","_isIP","require$$4","require$$5","default_email_options","allow_display_name","require_display_name","allow_utf8_local_part","blacklisted_chars","host_blacklist","host_whitelist","splitNameAddress","emailUserPart","gmailUserPart","quotedEmailUser","emailUserUtf8Part","quotedEmailUserUtf8","defaultMaxEmailLength","validateDisplayName","display_name","display_name_without_quotes","replace","trim","contains_illegal","all_start_with_back_slash","display_email","endsWith","domain","pop","lower_domain","user","join","domain_specific_validation","username","_user_parts","allow_ip_domain","noBracketdomain","search","pattern","user_parts","_i","includes","val","_default","isURL","_includesString","default_url_options","protocols","require_protocol","require_host","require_port","require_valid_protocol","allow_protocol_relative_urls","allow_fragments","allow_query_components","validate_length","max_allowed_length","wrapped_ipv6","url","protocol","auth","hostname","port","port_str","ipv6","shift","protocol_match","had_explicit_protocol","cleanUpProtocol","potential_protocol","after_colon","starts_with_slashes","first_slash_position","before_slash","at_position","before_at","valid_auth_regex","is_valid_auth","has_encoded_content","looks_like_port","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","getCharacterLength","maxCharacter","hasMaxCharacter","isNumber","characters","currentStringLength","charCodeAt","isValueEmpty","type","typeMap","isObject","isEmpty","VALIDATE_MAP","email","required","whitespace","boolean","isBoolean","num","number","enum","strs","idcard","telnumber","regexp","reg","validator","validate","validateOneRule","_x","_x2","_validateOneRule","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rule","validateResult","keys","vOptions","vValidateFun","validateRule","ruleItem","wrap","_context","prev","result","abrupt","sent","_objectSpread","stop","_x3","_x4","_validate","_callee2","rules","all","_context2","map","Promise"],"mappings":"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"}