{"version":3,"file":"async-validator-8d480e59.js","sources":["../../../node_modules/async-validator/dist-web/index.js"],"sourcesContent":["function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format(template) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var i = 0;\n var len = args.length;\n\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n\n if (typeof template === 'string') {\n var str = template.replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n\n if (i >= len) {\n return x;\n }\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n break;\n\n default:\n return x;\n }\n });\n return str;\n }\n\n return template;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n\n return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors || []);\n total++;\n\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n\n var original = index;\n index = index + 1;\n\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k] || []);\n });\n return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(AsyncValidationError, _Error);\n\n function AsyncValidationError(errors, fields) {\n var _this;\n\n _this = _Error.call(this, 'Async Validation Error') || this;\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n\n return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nfunction asyncMap(objArr, option, func, callback, source) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n };\n\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n\n _pending[\"catch\"](function (e) {\n return e;\n });\n\n return _pending;\n }\n\n var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\n\nfunction isErrorObj(obj) {\n return !!(obj && obj.message !== undefined);\n}\n\nfunction getValue(value, path) {\n var v = value;\n\n for (var i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n\n v = v[path[i]];\n }\n\n return v;\n}\n\nfunction complementError(rule, source) {\n return function (oe) {\n var fieldValue;\n\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[oe.field || rule.fullField];\n }\n\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue: fieldValue,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n\n return target;\n}\n\nvar required$1 = function required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\n// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nvar getUrlRegex = (function () {\n if (urlReg) {\n return urlReg;\n }\n\n var word = '[a-fA-F\\\\d:]';\n\n var b = function b(options) {\n return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\" + word + \")|(?<=\" + word + \")(?=\\\\s|$))\" : '';\n };\n\n var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n var v6seg = '[a-fA-F\\\\d]{1,4}';\n var v6 = (\"\\n(?:\\n(?:\" + v6seg + \":){7}(?:\" + v6seg + \"|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\\n(?:\" + v6seg + \":){6}(?:\" + v4 + \"|:\" + v6seg + \"|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\\n(?:\" + v6seg + \":){5}(?::\" + v4 + \"|(?::\" + v6seg + \"){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\\n(?:\" + v6seg + \":){4}(?:(?::\" + v6seg + \"){0,1}:\" + v4 + \"|(?::\" + v6seg + \"){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\\n(?:\" + v6seg + \":){3}(?:(?::\" + v6seg + \"){0,2}:\" + v4 + \"|(?::\" + v6seg + \"){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){2}(?:(?::\" + v6seg + \"){0,3}:\" + v4 + \"|(?::\" + v6seg + \"){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\\n(?:\" + v6seg + \":){1}(?:(?::\" + v6seg + \"){0,4}:\" + v4 + \"|(?::\" + v6seg + \"){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\\n(?::(?:(?::\" + v6seg + \"){0,5}:\" + v4 + \"|(?::\" + v6seg + \"){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\\n\").replace(/\\s*\\/\\/.*$/gm, '').replace(/\\n/g, '').trim(); // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n\n var v46Exact = new RegExp(\"(?:^\" + v4 + \"$)|(?:^\" + v6 + \"$)\");\n var v4exact = new RegExp(\"^\" + v4 + \"$\");\n var v6exact = new RegExp(\"^\" + v6 + \"$\");\n\n var ip = function ip(options) {\n return options && options.exact ? v46Exact : new RegExp(\"(?:\" + b(options) + v4 + b(options) + \")|(?:\" + b(options) + v6 + b(options) + \")\", 'g');\n };\n\n ip.v4 = function (options) {\n return options && options.exact ? v4exact : new RegExp(\"\" + b(options) + v4 + b(options), 'g');\n };\n\n ip.v6 = function (options) {\n return options && options.exact ? v6exact : new RegExp(\"\" + b(options) + v6 + b(options), 'g');\n };\n\n var protocol = \"(?:(?:[a-z]+:)?//)\";\n var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n var ipv4 = ip.v4().source;\n var ipv6 = ip.v6().source;\n var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n var port = '(?::\\\\d{2,5})?';\n var path = '(?:[/?#][^\\\\s\"]*)?';\n var regex = \"(?:\" + protocol + \"|www\\\\.)\" + auth + \"(?:localhost|\" + ipv4 + \"|\" + ipv6 + \"|\" + host + domain + tld + \")\" + port + path;\n urlReg = new RegExp(\"(?:^\" + regex + \"$)\", 'i');\n return urlReg;\n});\n\n/* eslint max-len:0 */\n\nvar pattern$2 = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n return typeof value === 'number';\n },\n object: function object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && value.length <= 320 && !!value.match(pattern$2.email);\n },\n url: function url(value) {\n return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern$2.hex);\n }\n};\n\nvar type$1 = function type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required$1(rule, value, source, errors, options);\n return;\n }\n\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n};\n\nvar range = function range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n\n if (!key) {\n return false;\n }\n\n if (arr) {\n val = value.length;\n }\n\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n};\n\nvar ENUM$1 = 'enum';\n\nvar enumerable$1 = function enumerable(rule, value, source, errors, options) {\n rule[ENUM$1] = Array.isArray(rule[ENUM$1]) ? rule[ENUM$1] : [];\n\n if (rule[ENUM$1].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM$1], rule.fullField, rule[ENUM$1].join(', ')));\n }\n};\n\nvar pattern$1 = function pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n};\n\nvar rules = {\n required: required$1,\n whitespace: whitespace,\n type: type$1,\n range: range,\n \"enum\": enumerable$1,\n pattern: pattern$1\n};\n\nvar string = function string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'string');\n\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n\n callback(errors);\n};\n\nvar method = function method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar number = function number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar _boolean = function _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar regexp = function regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar integer = function integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar array = function array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'array');\n\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar object = function object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar ENUM = 'enum';\n\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar pattern = function pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar date = function date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n\n callback(errors);\n};\n\nvar required = function required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nvar type = function type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, ruleType);\n\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n};\n\nvar any = function any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n }\n\n callback(errors);\n};\n\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable,\n pattern: pattern,\n date: date,\n url: type,\n hex: type,\n email: type,\n required: required,\n any: any\n};\n\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\n\nvar Schema = /*#__PURE__*/function () {\n // ========================= Static =========================\n // ======================== Instance ========================\n function Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n }\n\n var _proto = Schema.prototype;\n\n _proto.define = function define(rules) {\n var _this = this;\n\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n\n this.rules = {};\n Object.keys(rules).forEach(function (name) {\n var item = rules[name];\n _this.rules[name] = Array.isArray(item) ? item : [item];\n });\n };\n\n _proto.messages = function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n };\n\n _proto.validate = function validate(source_, o, oc) {\n var _this2 = this;\n\n if (o === void 0) {\n o = {};\n }\n\n if (oc === void 0) {\n oc = function oc() {};\n }\n\n var source = source_;\n var options = o;\n var callback = oc;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n\n return Promise.resolve(source);\n }\n\n function complete(results) {\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (var i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n callback(errors, fields);\n }\n }\n\n if (options.messages) {\n var messages$1 = this.messages();\n\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n var arr = _this2.rules[z];\n var value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n\n value = source[z] = rule.transform(value);\n }\n\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n } // Fill validator. Skip if nothing need to validate\n\n\n rule.validator = _this2.getValidationMethod(rule);\n\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this2.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n\n function addFullField(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key,\n fullFields: rule.fullFields ? [].concat(rule.fullFields, [key]) : [key]\n });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errorList = Array.isArray(e) ? e : [e];\n\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n } // Fill error info\n\n\n var filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = [].concat(rule.message).map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(filledErrors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n Object.keys(data.value).map(function (key) {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n var paredFieldsSchema = {};\n Object.keys(fieldsSchema).forEach(function (field) {\n var fieldSchema = fieldsSchema[field];\n var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n });\n var schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n\n if (filledErrors && filledErrors.length) {\n finalErrors.push.apply(finalErrors, filledErrors);\n }\n\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res;\n\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error == null ? void 0 : console.error(error); // rethrow to report error\n\n if (!options.suppressValidatorError) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n\n cb(error.message);\n }\n\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || (rule.fullField || rule.field) + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n }, source);\n };\n\n _proto.getType = function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n\n return rule.type || 'string';\n };\n\n _proto.getValidationMethod = function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n\n return validators[this.getType(rule)] || undefined;\n };\n\n return Schema;\n}();\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n\n validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\n\nexport { Schema as default };\n//# sourceMappingURL=index.js.map\n"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","a","push","instance","Function","_wrapNativeSuper","_cache","Map","fn","toString","indexOf","TypeError","has","get","set","Wrapper","constructor","create","value","enumerable","writable","configurable","formatRegExp","warning","convertFieldsError","errors","fields","forEach","error","field","format","template","_len","Array","_key","len","replace","x","String","Number","JSON","stringify","_","isEmptyValue","type","isArray","isNativeStringType","asyncSerialArray","arr","func","callback","index","arrLength","next","original","process","env","AsyncValidationError","_Error","subClass","superClass","_this","Error","asyncMap","objArr","option","first","_pending","Promise","resolve","reject","flattenArr","ret","keys","k","flattenObjArr","firstFields","objArrKeys","objArrLength","total","results","pending","count","asyncParallelArray","complementError","rule","oe","fieldValue","obj","fullFields","path","v","getValue","fullField","message","deepMerge","s","urlReg","required$1","options","required","messages","pattern$2","types","integer","number","parseInt","float","array","regexp","RegExp","date","getTime","getMonth","getYear","isNaN","object","method","email","match","url","word","b","includeBoundaries","v4","v6seg","v6","trim","v46Exact","v4exact","v6exact","ip","exact","ipv4","ipv6","getUrlRegex","hex","ENUM$1","rules","whitespace","test","ruleType","range","min","max","val","num","str","enum","join","pattern","lastIndex","mismatch","validators","string","boolean","dateObject","Date","any","newMessages","default","parse","invalid","clone","cloned","Schema","descriptor","_messages","define","_proto","name","item","validate","source_","oc","_this2","messages$1","series","z","r","transform","validator","getValidationMethod","getType","errorFields","data","doIt","res","deep","defaultField","addFullField","schema","concat","cb","errorList","suppressWarning","filledErrors","map","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","console","suppressValidatorError","setTimeout","then","_errors","complete","messageIndex","splice","register"],"mappings":"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","x_google_ignoreList":[0]}