{"version":3,"sources":["webpack://crmWeb/../code-generation/platform/dependencies/node_modules/async-validator/dist-web/index.js"],"names":[],"mappings":"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","file":"nm.async-validator.b31d634ad6d6856cf59a.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"],"sourceRoot":""}