{"version":3,"sources":["webpack:///./node_modules/ajv/lib/dotjs/format.js","webpack:///./node_modules/ajv/lib/dotjs/not.js","webpack:///./node_modules/ajv/lib/dotjs/const.js","webpack:///./node_modules/any-promise/register-shim.js","webpack:///./node_modules/ajv/lib/dotjs/oneOf.js","webpack:///./node_modules/ajv/lib/dotjs/comment.js","webpack:///./node_modules/ajv/lib/dotjs/contains.js","webpack:///./node_modules/ajv/lib/dotjs/anyOf.js","webpack:///./node_modules/ajv/lib/dotjs/index.js","webpack:///./node_modules/ajv/lib/data.js","webpack:///./node_modules/ajv/lib/dotjs/propertyNames.js","webpack:///./node_modules/ajv/lib/dotjs/ref.js","webpack:///./node_modules/ajv/lib/dotjs/pattern.js","webpack:///./node_modules/ajv/lib/dotjs/custom.js","webpack:///./node_modules/ajv/lib/compile/ucs2length.js","webpack:///./node_modules/ajv/lib/dotjs/_limitProperties.js","webpack:///./node_modules/ajv/lib/ajv.js","webpack:///./node_modules/any-promise/loader.js","webpack:///./node_modules/ajv/lib/definition_schema.js","webpack:///./node_modules/ajv/lib/dotjs/items.js","webpack:///./node_modules/ajv/lib/compile/error_classes.js","webpack:///./node_modules/ajv/lib/compile/index.js","webpack:///./node_modules/ajv/lib/dotjs/_limitLength.js","webpack:///./node_modules/any-promise/index.js","webpack:///./node_modules/ajv/lib/compile/formats.js","webpack:///./node_modules/ajv/lib/dotjs/multipleOf.js","webpack:///./node_modules/ajv/lib/compile/resolve.js","webpack:///./node_modules/ajv/lib/compile/async.js","webpack:///./node_modules/ajv/lib/dotjs/required.js","webpack:///./node_modules/ajv/lib/dotjs/dependencies.js","webpack:///./node_modules/ajv/lib/compile/schema_obj.js","webpack:///./node_modules/ajv/lib/dotjs/properties.js","webpack:///./node_modules/ajv/lib/dotjs/_limit.js","webpack:///./node_modules/ajv/lib/compile/rules.js","webpack:///./node_modules/ajv/lib/dotjs/uniqueItems.js","webpack:///./node_modules/ajv/lib/dotjs/validate.js","webpack:///./node_modules/ajv/lib/dotjs/_limitItems.js","webpack:///./node_modules/ajv/lib/dotjs/if.js","webpack:///./node_modules/ajv/lib/dotjs/enum.js","webpack:///./node_modules/ajv/lib/dotjs/allOf.js","webpack:///./node_modules/ajv/lib/cache.js","webpack:///./node_modules/ajv/lib/compile/util.js","webpack:///./node_modules/ajv/lib/keyword.js"],"names":["module","exports","it","$keyword","$ruleType","out","$lvl","level","$dataLvl","dataLevel","$schema","schema","$schemaPath","schemaPath","util","getProperty","$errSchemaPath","errSchemaPath","$breakOnError","opts","allErrors","$data","format","$schemaValue","$isData","getData","dataPathArr","$unknownFormats","unknownFormats","$allowUnknown","Array","isArray","$format","$isObject","$formatType","async","formats","logger","warn","indexOf","Error","RegExp","validate","type","$async","$formatRef","$$outStack","push","createErrors","toQuotedString","messages","escapeQuotes","verbose","__err","pop","compositeRule","$errs","$it","copy","$nextValid","strictKeywords","Object","keys","length","schemaHasRules","RULES","all","$allErrorsOption","$wasComposite","$valid","loadImplementation","window","Promise","implementation","$closingBraces","$currentBaseId","baseId","$prevValid","$passingSchemas","arr1","$sch","$i","l1","$comment","$idx","$dataNxt","$nextData","$nonEmptySchema","errorPath","getPathExpr","jsonPointers","$passData","$code","varOccurences","varReplace","$noEmptySchema","every","allOf","anyOf","const","contains","dependencies","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","propertyNames","required","uniqueItems","KEYWORDS","metaSchema","keywordsJsonPointers","i","JSON","parse","stringify","j","segments","split","keywords","key","$ref","$key","$invalidName","$dataProperties","$ownProperties","ownProperties","$refCode","isRoot","root","$refVal","resolveRef","undefined","$message","MissingRefError","message","missingRefs","error","inline","replace","code","passContext","$parentData","$parentDataProperty","__callValidate","$regexp","usePattern","$errorKeyword","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","this","$definition","$rDef","definition","$validateSchema","validateSchema","useCustomRule","compile","macro","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","errors","modifying","valid","keyword","def_customError","str","value","len","pos","charCodeAt","$op","compileSchema","resolve","Cache","SchemaObject","stableStringify","rules","$dataMetaSchema","Ajv","prototype","addSchema","addMetaSchema","getSchema","removeSchema","addFormat","errorsText","_addSchema","_compile","compileAsync","customKeyword","addKeyword","add","getKeyword","get","removeKeyword","remove","validateKeyword","errorClasses","ValidationError","Validation","MissingRef","META_SCHEMA_ID","META_IGNORE_OPTIONS","META_SUPPORT_DATA","_opts","setLogger","_schemas","_refs","_fragments","_formats","_cache","cache","_loadingSchemas","_compilations","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","serialize","_metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addDefaultMetaSchema","meta","nullable","addInitialSchemas","schemaKeyRef","data","v","schemaObj","_meta","_skipValidation","id","normalizeId","checkUnique","skipValidation","throwOrLogError","defaultMeta","self","keyRef","_getSchemaObj","_getSchemaFragment","ref","res","call","fragment","_removeAllSchemas","clear","del","cacheKey","schemas","regex","test","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","compiling","callValidate","currentOpts","e","refs","refVal","_validate","result","apply","arguments","schemaId","_get$IdOrId","_get$Id","$id","options","separator","dataVar","text","dataPath","slice","name","$dataSchema","optsSchemas","metaOpts","log","noop","console","REGISTRATION_KEY","registered","registerGlobal","global","definitions","simpleTypes","$additionalItems","additionalItems","$currErrSchemaPath","ajv","validation","missingRef","url","missingSchema","fullPath","errorSubclass","Subclass","create","constructor","validateGenerator","ucs2length","equal","patterns","patternsHash","defaults","defaultsHash","customRules","c","checkCompiling","compilation","index","localCompile","cv","sourceCode","source","endCompiling","_schema","_root","isTop","useDefault","vars","refValCode","patternCode","defaultCode","customRuleCode","processCode","makeValidate","Function","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","regexStr","valueStr","rule","parentSchema","deps","hasOwnProperty","join","compIndex","splice","arr","statement","unicode","DATE","DAYS","TIME","HOSTNAME","URI","URIREF","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","mode","isLeapYear","year","date","matches","match","month","day","time","full","hour","minute","second","timeZone","fast","uri","email","hostname","ipv4","ipv6","uuid","date_time","DATE_TIME_SEPARATOR","dateTime","NOT_URI_FRAGMENT","Z_ANCHOR","multipleOfPrecision","traverse","resolveSchema","p","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","resolveIds","PREVENT_SCOPE_CHANGE","toHash","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","normalize","TRAILING_SLASH_HASH","baseIds","fullPaths","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","callback","loadSchema","loadMetaSchemaOf","then","_compileAsync","loadMissingSchema","added","schemaPromise","removePromise","$vSchema","$required","$property","i1","$propertySch","$currentErrorPath","$loopRequired","$propertyPath","$missingProperty","arr2","l2","$propertyKey","$prop","$useData","arr3","i3","l3","getPath","$schemaDeps","$propertyDeps","$deps","i2","obj","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$requiredHash","$pProperty","$additionalProperty","$useDefaults","useDefaults","$hasDefault","default","arr4","i4","l4","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","Math","ruleModules","ALL","TYPES","types","forEach","group","map","implKeywords","k","implements","concat","custom","$itemType","$typeIsArray","$method","strictNumbers","$refKeywords","schemaHasRulesExcept","$unknownKwd","schemaUnknownRules","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","extendRefs","coerceTypes","$coerceToTypes","coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","checkDataType","$type","arr5","i5","l5","$shouldUseRule","$ruleImplementsSomeKeyword","impl","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$allSchemasEmpty","o","to","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","t","array","object","null","number","integer","unescapeJsonPointer","escapeJsonPointer","COERCE_TO_TYPES","optionCoerceTypes","hash","IDENTIFIER","SINGLE_QUOTE","expr","exceptKeyword","currentPath","isNumber","path","joinPaths","prop","lvl","paths","up","jsonPointer","segment","a","b","decodeURIComponent","encodeURIComponent","definitionSchema","_addRule","ruleGroup","rg","throwError","_validateKeyword"],"mappings":"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","file":"js/account~748942c6.c9729733.js","sourcesContent":["'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","\"use strict\";\nmodule.exports = require('./loader')(window, loadImplementation)\n\n/**\n * Browser specific loadImplementation. Always uses `window.Promise`\n *\n * To register a custom implementation, must register with `Promise` option.\n */\nfunction loadImplementation(){\n if(typeof window.Promise === 'undefined'){\n throw new Error(\"any-promise browser requires a polyfill or explicit registration\"+\n \" e.g: require('any-promise/register/bluebird')\")\n }\n return {\n Promise: window.Promise,\n implementation: 'window.Promise'\n }\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i= 0.12\n * 3. Auto detected promise based on first sucessful require of\n * known promise libraries. Note this is a last resort, as the\n * loaded library is non-deterministic. node.js >= 0.12 will\n * always use global.Promise over this priority list.\n * 4. Throws error.\n *\n * For Browser:\n *\n * 1. Previous registration\n * 2. window.Promise\n * 3. Throws error.\n *\n * Options:\n *\n * Promise: Desired Promise constructor\n * global: Boolean - Should the registration be cached in a global variable to\n * allow cross dependency/bundle registration? (default true)\n */\nmodule.exports = function(root, loadImplementation){\n return function register(implementation, opts){\n implementation = implementation || null\n opts = opts || {}\n // global registration unless explicitly {global: false} in options (default true)\n var registerGlobal = opts.global !== false;\n\n // load any previous global registration\n if(registered === null && registerGlobal){\n registered = root[REGISTRATION_KEY] || null\n }\n\n if(registered !== null\n && implementation !== null\n && registered.implementation !== implementation){\n // Throw error if attempting to redefine implementation\n throw new Error('any-promise already defined as \"'+registered.implementation+\n '\". You can only register an implementation before the first '+\n ' call to require(\"any-promise\") and an implementation cannot be changed')\n }\n\n if(registered === null){\n // use provided implementation\n if(implementation !== null && typeof opts.Promise !== 'undefined'){\n registered = {\n Promise: opts.Promise,\n implementation: implementation\n }\n } else {\n // require implementation if implementation is specified but not provided\n registered = loadImplementation(implementation)\n }\n\n if(registerGlobal){\n // register preference globally in case multiple installations\n root[REGISTRATION_KEY] = registered\n }\n }\n\n return registered\n }\n}\n","'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","module.exports = require('./register')().Promise\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i