{"version":3,"file":"c_async-validator_924feb61.1695271849080.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","target","i","source","key","_inheritsLoose","subClass","superClass","_setPrototypeOf","_getPrototypeOf","o","p","_isNativeReflectConstruct","e","_construct","Parent","args","Class","a","Constructor","instance","_isNativeFunction","fn","_wrapNativeSuper","_cache","Wrapper","formatRegExp","warning","convertFieldsError","errors","fields","error","field","format","template","_len","_key","len","str","x","_","isNativeStringType","type","isEmptyValue","value","asyncParallelArray","arr","func","callback","results","total","arrLength","count","asyncSerialArray","index","next","original","flattenObjArr","objArr","ret","k","AsyncValidationError","_Error","_this","asyncMap","option","_pending","resolve","reject","flattenArr","firstFields","objArrKeys","objArrLength","pending","isErrorObj","obj","getValue","path","v","complementError","rule","oe","fieldValue","deepMerge","s","required$1","options","whitespace","urlReg","getUrlRegex","word","b","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","protocol","auth","ipv4","ipv6","host","domain","tld","port","regex","pattern$2","types","type$1","custom","ruleType","range","min","max","spRegexp","val","num","ENUM$1","enumerable$1","pattern$1","_pattern","rules","string","validate","method","number","_boolean","regexp","integer","floatFn","array","object","ENUM","enumerable","pattern","date","dateObject","required","any","validators","newMessages","cloned","messages","Schema","descriptor","_proto","name","item","_messages","source_","oc","_this2","complete","add","_errors","messages$1","series","keys","z","r","errorFields","data","doIt","deep","addFullField","schema","cb","errorList","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","res","messageIndex","validator"],"mappings":"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","x_google_ignoreList":[0]}