{"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/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/dotjs/_limitProperties.js","webpack:///./node_modules/ajv/lib/definition_schema.js","webpack:///./node_modules/ajv/lib/dotjs/items.js","webpack:///./node_modules/ajv/lib/dotjs/_limitLength.js","webpack:///./node_modules/ajv/lib/dotjs/multipleOf.js","webpack:///./node_modules/ajv/lib/dotjs/required.js","webpack:///./node_modules/ajv/lib/dotjs/dependencies.js","webpack:///./node_modules/ajv/lib/dotjs/properties.js","webpack:///./node_modules/ajv/lib/dotjs/_limit.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/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","$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","$op","$id","definitions","simpleTypes","$additionalItems","additionalItems","$currErrSchemaPath","unicode","multipleOfPrecision","$vSchema","loopRequired","$required","$property","i1","$propertySch","$currentErrorPath","$loopRequired","$propertyPath","$missingProperty","_errorDataPathProperty","arr2","l2","$propertyKey","$prop","$useData","arr3","i3","l3","getPath","$schemaDeps","$propertyDeps","$deps","join","i2","escapeFragment","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$requiredHash","toHash","p","$pProperty","$additionalProperty","$useDefaults","useDefaults","$hasDefault","default","arr4","i4","l4","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","Math","$itemType","$typeIsArray","$method","strictNumbers","$refKeywords","schemaHasRulesExcept","self","_getId","$unknownKwd","schemaUnknownRules","$keywordsMsg","isTop","sourceCode","processCode","$top","rootId","resolve","fullPath","strictDefaults","$defaultMsg","url","$closingBraces1","$closingBraces2","$typeSchema","nullable","concat","extendRefs","coerceTypes","$coerceToTypes","coerceToTypes","$rulesGroup","types","$shouldUseGroup","$dataType","$coerced","checkDataType","$type","useDefault","arr5","rules","i5","l5","$shouldUseRule","implements","$ruleImplementsSomeKeyword","impl","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$allSchemasEmpty","slice","IDENTIFIER","customRuleCode","definitionSchema","addKeyword","test","validateKeyword","dataType","_addRule","_opts","ruleGroup","rg","rule","custom","getKeyword","removeKeyword","splice","throwError","v","_validateKeyword","errorsText","add","get","remove"],"mappings":"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","file":"js/chunk-vendors~d17f2aa1.99ae9f52.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 = 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) + '' : '<';\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 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';\nmodule.exports = function generate__limitLength(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 == 'maxLength' ? '>' : '<';\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","'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';\nmodule.exports = function generate_required(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 $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 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';\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';\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\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i