{"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/isByteLength.js","../../node_modules/validator/lib/isFQDN.js","../../node_modules/validator/lib/isIP.js","../../node_modules/validator/lib/isEmail.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;\n\nfunction merge() {\n  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n  for (var key in defaults) {\n    if (typeof obj[key] === 'undefined') {\n      obj[key] = defaults[key];\n    }\n  }\n\n  return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isDate;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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 _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\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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\nvar default_date_options = {\n  format: 'YYYY/MM/DD',\n  delimiters: ['/', '-'],\n  strictMode: false\n};\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}\n\nfunction zip(date, format) {\n  var zippedArr = [],\n      len = Math.min(date.length, format.length);\n\n  for (var i = 0; i < len; i++) {\n    zippedArr.push([date[i], format[i]]);\n  }\n\n  return zippedArr;\n}\n\nfunction isDate(input, options) {\n  if (typeof options === 'string') {\n    // Allow backward compatbility 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\n  if (typeof input === 'string' && isValidFormat(options.format)) {\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\n    var _iterator = _createForOfIteratorHelper(dateAndFormat),\n        _step;\n\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\n        if (dateWord.length !== formatWord.length) {\n          return false;\n        }\n\n        dateObj[formatWord.charAt(0)] = dateWord;\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    var fullYear = dateObj.y;\n\n    if (dateObj.y.length === 2) {\n      var parsedYear = parseInt(dateObj.y, 10);\n\n      if (isNaN(parsedYear)) {\n        return false;\n      }\n\n      var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n\n      if (parsedYear < currentYearLastTwoDigits) {\n        fullYear = \"20\".concat(dateObj.y);\n      } else {\n        fullYear = \"19\".concat(dateObj.y);\n      }\n    }\n\n    return new Date(\"\".concat(fullYear, \"-\").concat(dateObj.m, \"-\").concat(dateObj.d)).getDate() === +dateObj.d;\n  }\n\n  if (!options.strictMode) {\n    return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n  }\n\n  return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n  var isString = typeof input === 'string' || input instanceof String;\n\n  if (!isString) {\n    var invalidType = _typeof(input);\n\n    if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n    throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n  }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n  (0, _assertString.default)(str);\n  var min;\n  var max;\n\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\n  var len = encodeURI(str).split(/%..|./).length - 1;\n  return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\n\nfunction isFQDN(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_fqdn_options);\n  /* Remove the optional trailing dot before checking validity */\n\n  if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n    str = str.substring(0, str.length - 1);\n  }\n  /* Remove the optional wildcard before checking validity */\n\n\n  if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n    str = str.substring(2);\n  }\n\n  var parts = str.split('.');\n  var tld = parts[parts.length - 1];\n\n  if (options.require_tld) {\n    // disallow fqdns without tld\n    if (parts.length < 2) {\n      return false;\n    }\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    } // disallow spaces\n\n\n    if (/\\s/.test(tld)) {\n      return false;\n    }\n  } // reject numeric TLDs\n\n\n  if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n    return false;\n  }\n\n  return parts.every(function (part) {\n    if (part.length > 63 && !options.ignore_max_length) {\n      return false;\n    }\n\n    if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n      return false;\n    } // disallow full-width chars\n\n\n    if (/[\\uff01-\\uff5e]/.test(part)) {\n      return false;\n    } // disallow parts starting or ending with hyphen\n\n\n    if (/^-|-$/.test(part)) {\n      return false;\n    }\n\n    if (!options.allow_underscores && /_/.test(part)) {\n      return false;\n    }\n\n    return true;\n  });\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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,})?$');\n\nfunction isIP(str) {\n  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  (0, _assertString.default)(str);\n  version = String(version);\n\n  if (!version) {\n    return isIP(str, 4) || isIP(str, 6);\n  }\n\n  if (version === '4') {\n    return IPv4AddressRegExp.test(str);\n  }\n\n  if (version === '6') {\n    return IPv6AddressRegExp.test(str);\n  }\n\n  return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\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\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 */\n\nfunction validateDisplayName(display_name) {\n  var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1'); // display name with only spaces is not valid\n\n  if (!display_name_without_quotes.trim()) {\n    return false;\n  } // check whether display name contains illegal character\n\n\n  var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\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    } // the quotes in display name must start with character symbol \\\n\n\n    var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n    if (!all_start_with_back_slash) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isEmail(str, options) {\n  (0, _assertString.default)(str);\n  options = (0, _merge.default)(options, default_email_options);\n\n  if (options.require_display_name || options.allow_display_name) {\n    var display_email = str.match(splitNameAddress);\n\n    if (display_email) {\n      var display_name = display_email[1]; // 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\n      str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // 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\n      if (display_name.endsWith(' ')) {\n        display_name = display_name.slice(0, -1);\n      }\n\n      if (!validateDisplayName(display_name)) {\n        return false;\n      }\n    } else if (options.require_display_name) {\n      return false;\n    }\n  }\n\n  if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n    return false;\n  }\n\n  var parts = str.split('@');\n  var domain = parts.pop();\n  var lower_domain = domain.toLowerCase();\n\n  if (options.host_blacklist.includes(lower_domain)) {\n    return false;\n  }\n\n  if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n    return false;\n  }\n\n  var user = parts.join('@');\n\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(); // Removing sub-address from username before gmail validation\n\n    var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n    if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n      min: 6,\n      max: 30\n    })) {\n      return false;\n    }\n\n    var _user_parts = username.split('.');\n\n    for (var i = 0; i < _user_parts.length; i++) {\n      if (!gmailUserPart.test(_user_parts[i])) {\n        return false;\n      }\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\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\n    if (!(0, _isIP.default)(domain)) {\n      if (!domain.startsWith('[') || !domain.endsWith(']')) {\n        return false;\n      }\n\n      var noBracketdomain = domain.slice(1, -1);\n\n      if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n        return false;\n      }\n    }\n  }\n\n  if (user[0] === '\"') {\n    user = user.slice(1, user.length - 1);\n    return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n  }\n\n  var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n  var user_parts = user.split('.');\n\n  for (var _i = 0; _i < user_parts.length; _i++) {\n    if (!pattern.test(user_parts[_i])) {\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\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 = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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\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*/\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\nfunction isURL(url, options) {\n  (0, _assertString.default)(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 = (0, _merge.default)(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 (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import isBoolean from 'lodash/isBoolean';\nimport isObject from 'lodash/isObject';\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport isEmpty from 'lodash/isEmpty';\nimport isURL from 'validator/lib/isURL';\nimport isNumber from 'lodash/isNumber';\nimport { getCharacterLength } from '../utils/helper';\nimport {\n  CustomValidator,\n  FormRule,\n  ValueType,\n  AllValidateResult,\n  ValidateResultType,\n  CustomValidateResolveType,\n} from './type';\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 => (isNumber(val) ? val <= num : getCharacterLength(val) <= num),\n  min: (val: ValueType, num: number): boolean => (isNumber(val) ? val >= num : getCharacterLength(val) >= 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): boolean => regexp.test(val),\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];\n    // 找到一个校验规则，则无需再找，因为参数只允许对一个规则进行校验\n    if (validateRule && (rule[key] || rule[key] === 0)) {\n      // rule 值为 true 则表示没有校验参数，只是对值进行默认规则校验\n      vOptions = rule[key] === true ? undefined : rule[key];\n      vValidateFun = validateRule;\n      break;\n    }\n  }\n  if (vValidateFun) {\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","merge","obj","arguments","length","undefined","defaults","key","module","isDate","_merge","_interopRequireDefault","require$$0","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","Symbol","iterator","_arr","_n","_d","_e","_i","_s","next","done","push","err","Array","isArray","_createForOfIteratorHelper","o","allowArrayLike","it","F","s","n","e","_e2","f","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","prototype","toString","call","slice","constructor","name","from","test","len","arr2","default_date_options","format","delimiters","strictMode","isValidFormat","zip","date","zippedArr","Math","min","input","options","formatDelimiter","find","delimiter","indexOf","dateDelimiter","dateAndFormat","split","toLowerCase","dateObj","_iterator","_step","_step$value","dateWord","formatWord","charAt","fullYear","y","parsedYear","parseInt","isNaN","currentYearLastTwoDigits","Date","getFullYear","concat","m","d","getDate","isFinite","assertString","_typeof","isString","String","invalidType","isByteLength","_assertString","str","max","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","version","isEmail","_isByteLength","_isFQDN","require$$2","_isIP","require$$3","require$$4","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","match","endsWith","domain","pop","lower_domain","includes","user","join","domain_specific_validation","username","_user_parts","allow_ip_domain","startsWith","noBracketdomain","pattern","user_parts","search","isURL","default_url_options","protocols","require_protocol","require_host","require_port","require_valid_protocol","allow_protocol_relative_urls","allow_fragments","allow_query_components","validate_length","wrapped_ipv6","isRegExp","checkHost","host","matches","url","protocol","auth","hostname","port","port_str","ipv6","shift","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","email","isNumber","validator","_regeneratorRuntime","validateResult","result","keys","_context","validateRule","vOptions","vValidateFun","all","_context2"],"mappings":"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"}