{"version":3,"sources":["webpack:///./node_modules/_async-validator@3.5.2@async-validator/dist-web/index.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_construct","Parent","args","Class","a","push","instance","Function","bind","_wrapNativeSuper","_cache","Map","undefined","fn","toString","indexOf","TypeError","has","get","set","Wrapper","constructor","create","value","enumerable","writable","configurable","formatRegExp","warning","convertFieldsError","errors","fields","forEach","error","field","format","_len","Array","_key","f","len","slice","str","String","replace","x","Number","JSON","stringify","_","isEmptyValue","type","isArray","isNativeStringType","asyncSerialArray","arr","func","callback","index","arrLength","next","original","process","AsyncValidationError","_Error","subClass","superClass","_this","Error","asyncMap","objArr","option","first","_pending","Promise","resolve","reject","ret","keys","k","flattenObjArr","firstFields","objArrKeys","objArrLength","total","results","pending","count","asyncParallelArray","complementError","rule","oe","message","fullField","deepMerge","s","required","options","messages","pattern","email","url","RegExp","hex","types","integer","number","parseInt","array","regexp","date","getTime","getMonth","getYear","isNaN","object","method","match","rules","whitespace","test","ruleType","range","min","max","val","num","join","lastIndex","mismatch","type$1","validators","string","dateObject","Date","any","newMessages","parse","invalid","clone","cloned","Schema","descriptor","_messages","define","z","item","validate","source_","oc","messages$1","series","r","transform","validator","getValidationMethod","getType","errorFields","data","doIt","res","deep","defaultField","addFullfield","schema","cb","suppressWarning","concat","map","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","then","_errors","complete","messageIndex","splice","register"],"mappings":"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","file":"js/npm._async-validator3.5.2@async-validator.f70b2e74.js","sourcesContent":["function _extends() {\n _extends = Object.assign || 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\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 : 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 || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\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;\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) {\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() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n\n if (typeof f === 'string') {\n var str = String(f).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 f;\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) {\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();\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 || [];\n\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n\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();\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve();\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}\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\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\n/**\n * Rule for validating required fields.\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\nfunction 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\nfunction 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/* eslint max-len:0 */\n\nvar pattern = {\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]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\"^(?!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]*)?$\", 'i'),\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.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n/**\n * Rule for validating the type of a value.\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\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(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\n/**\n * Rule for validating minimum and maximum allowed values.\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\nfunction 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 = 'enum';\n/**\n * Rule for validating a value exists in an enumerable list.\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\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\n/**\n * Rule for validating a regular expression pattern.\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\nfunction pattern$1(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,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\n};\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction _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\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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$1 = 'enum';\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction enumerable$1(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$1](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction pattern$2(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\nfunction 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\nfunction required$1(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\nfunction type$1(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\n/**\n * Performs validation for any type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction 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$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\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\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n },\n define: function define(rules) {\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 var z;\n var item;\n\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_, o, oc) {\n var _this = 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();\n }\n\n return Promise.resolve();\n }\n\n function complete(results) {\n var i;\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 (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n\n callback(errors, fields);\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 arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n 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 }\n\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n\n if (!rule.validator) {\n return;\n }\n\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 });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errors = e;\n\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n\n if (errors.length && rule.message !== undefined) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n\n if (!deep) {\n doIt(errors);\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 errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n\n var schema = new Schema(fieldsSchema);\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 (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\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 res = rule.validator(rule, data.value, cb, data.source, options);\n\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || 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 });\n },\n 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 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)] || false;\n }\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 default Schema;\n//# sourceMappingURL=index.js.map\n"],"sourceRoot":""}