1 line
47 KiB
JSON
1 line
47 KiB
JSON
{"ast":null,"code":"'use strict';\n\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\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\n out += 'var ' + $errs + ' = errors;var ' + $nextValid + ' = true;';\n\n if ($ownProperties) {\n out += ' var ' + $dataProperties + ' = undefined;';\n }\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\n if ($someProperties) {\n out += ' var isAdditional' + $lvl + ' = !(false ';\n\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + $schemaPath + '.hasOwnProperty(' + $key + ') ';\n } else {\n var arr1 = $schemaKeys;\n\n if (arr1) {\n var $propertyKey,\n i1 = -1,\n l1 = arr1.length - 1;\n\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + $key + ' == ' + it.util.toQuotedString($propertyKey) + ' ';\n }\n }\n }\n }\n\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n\n if (arr2) {\n var $pProperty,\n $i = -1,\n l2 = arr2.length - 1;\n\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + it.usePattern($pProperty) + '.test(' + $key + ') ';\n }\n }\n }\n\n out += ' ); if (isAdditional' + $lvl + ') { ';\n }\n\n if ($removeAdditional == 'all') {\n out += ' delete ' + $data + '[' + $key + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\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 = '';\n /* istanbul ignore else */\n\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + 'additionalProperties' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { additionalProperty: \\'' + $additionalProperty + '\\' } ';\n\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n\n out += '\\' ';\n }\n\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n }\n\n out += ' } ';\n } else {\n out += ' {} ';\n }\n\n var __err = out;\n out = $$outStack.pop();\n\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 $errSchemaPath = $currErrSchemaPath;\n\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\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\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\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\n if ($breakOnError) {\n out += ' if (!' + $nextValid + ') break; ';\n }\n }\n }\n\n it.errorPath = $currentErrorPath;\n }\n\n if ($someProperties) {\n out += ' } ';\n }\n\n out += ' } ';\n\n if ($breakOnError) {\n out += ' if (' + $nextValid + ') { ';\n $closingBraces += '}';\n }\n }\n\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n\n if (arr3) {\n var $propertyKey,\n i3 = -1,\n l3 = arr3.length - 1;\n\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n\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\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\n if ($hasDefault) {\n out += ' ' + $code + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + $useData + ' === undefined ';\n\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n }\n\n out += ') { ' + $nextValid + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n /* istanbul ignore else */\n\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n }\n\n out += '\\' ';\n }\n\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n }\n\n out += ' } ';\n } else {\n out += ' {} ';\n }\n\n var __err = out;\n out = $$outStack.pop();\n\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 $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + $useData + ' === undefined ';\n\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n }\n\n out += ') { ' + $nextValid + ' = true; } else { ';\n } else {\n out += ' if (' + $useData + ' !== undefined ';\n\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n }\n\n out += ' ) { ';\n }\n }\n\n out += ' ' + $code + ' } ';\n }\n }\n\n if ($breakOnError) {\n out += ' if (' + $nextValid + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n\n if (arr4) {\n var $pProperty,\n i4 = -1,\n l4 = arr4.length - 1;\n\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n\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\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\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\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\n if ($breakOnError) {\n out += ' if (!' + $nextValid + ') break; ';\n }\n\n out += ' } ';\n\n if ($breakOnError) {\n out += ' else ' + $nextValid + ' = true; ';\n }\n\n out += ' } ';\n\n if ($breakOnError) {\n out += ' if (' + $nextValid + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n\n if ($breakOnError) {\n out += ' ' + $closingBraces + ' if (' + $errs + ' == errors) {';\n }\n\n return out;\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/ajv/lib/dotjs/properties.js"],"names":["module","exports","generate_properties","it","$keyword","$ruleType","out","$lvl","level","$dataLvl","dataLevel","$schema","schema","$schemaPath","schemaPath","util","getProperty","$errSchemaPath","errSchemaPath","$breakOnError","opts","allErrors","$data","$errs","$it","copy","$closingBraces","$nextValid","$key","$idx","$dataNxt","$nextData","$dataProperties","$schemaKeys","Object","keys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","length","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$ownProperties","ownProperties","$currentBaseId","baseId","$required","required","loopRequired","$requiredHash","toHash","p","arr1","$propertyKey","i1","l1","toQuotedString","arr2","$pProperty","$i","l2","usePattern","$currentErrorPath","errorPath","$additionalProperty","_errorDataPathProperty","getPathExpr","jsonPointers","$currErrSchemaPath","$$outStack","push","createErrors","messages","verbose","__err","pop","compositeRule","async","$wasComposite","$passData","dataPathArr","$code","validate","varOccurences","varReplace","$useDefaults","useDefaults","arr3","i3","l3","$sch","strictKeywords","schemaHasRules","RULES","all","$prop","$hasDefault","default","undefined","escapeFragment","getPath","$useData","escapeQuotes","$missingProperty","arr4","i4","l4"],"mappings":"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","sourcesContent":["'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"]},"metadata":{},"sourceType":"script"} |