Files
portfolio/node_modules/.cache/babel-loader/b01cf652bc0e6ddac93fd126abcf9f77.json
2021-09-20 16:54:47 -04:00

1 line
34 KiB
JSON

{"ast":null,"code":"'use strict';\n\nvar resolve = require('./resolve'),\n util = require('./util'),\n errorClasses = require('./error_classes'),\n stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n/**\n * Functions below are used inside compiled validations function\n */\n\n\nvar ucs2length = util.ucs2length;\n\nvar equal = require('fast-deep-equal'); // this error is thrown by async schemas to return validation errors via exception\n\n\nvar ValidationError = errorClasses.Validation;\nmodule.exports = compile;\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\n\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n\n /* eslint no-shadow: 0 */\n var self = this,\n opts = this._opts,\n refVal = [undefined],\n refs = {},\n patterns = [],\n patternsHash = {},\n defaults = [],\n defaultsHash = {},\n customRules = [];\n root = root || {\n schema: schema,\n refVal: refVal,\n refs: refs\n };\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return compilation.callValidate = callValidate;\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n /* @this {*} - custom context, see passContext option */\n\n\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || _root && _root.schema == _schema;\n if (_root.schema != root.schema) return compile.call(self, _schema, _root, localRefs, baseId);\n var $async = _schema.$async === true;\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode;\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n\n var validate;\n\n try {\n var makeValidate = new Function('self', 'RULES', 'formats', 'root', 'refVal', 'defaults', 'customRules', 'equal', 'ucs2length', 'ValidationError', sourceCode);\n validate = makeValidate(self, RULES, formats, root, refVal, defaults, customRules, equal, ucs2length, ValidationError);\n refVal[0] = validate;\n } catch (e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n\n var _refVal, refCode;\n\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean' ? {\n code: code,\n schema: refVal,\n inline: true\n } : {\n code: code,\n $async: refVal && !!refVal.$async\n };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n\n case 'string':\n return util.toQuotedString(value);\n\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function (keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n })) throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n var validateSchema = rule.definition.validateSchema;\n\n if (validateSchema) {\n var valid = validateSchema(schema);\n\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile,\n inline = rule.definition.inline,\n macro = rule.definition.macro;\n var validate;\n\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined) throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n var index = customRules.length;\n customRules[index] = validate;\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\n\n\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return {\n index: index,\n compiling: true\n };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return {\n index: index,\n compiling: false\n };\n}\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\n\n\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\n\n\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i = 0; i < this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n\n return -1;\n}\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n\n for (var i = 0; i < arr.length; i++) code += statement(i, arr);\n\n return code;\n}","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/ajv/lib/compile/index.js"],"names":["resolve","require","util","errorClasses","stableStringify","validateGenerator","ucs2length","equal","ValidationError","Validation","module","exports","compile","schema","root","localRefs","baseId","self","opts","_opts","refVal","undefined","refs","patterns","patternsHash","defaults","defaultsHash","customRules","c","checkCompiling","call","compilation","_compilations","index","compiling","callValidate","formats","_formats","RULES","v","localCompile","validate","cv","errors","$async","sourceCode","source","endCompiling","result","apply","arguments","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","MissingRefError","MissingRef","resolveRef","usePattern","useDefault","useCustomRule","logger","vars","refValCode","patternCode","defaultCode","customRuleCode","processCode","makeValidate","Function","e","error","code","ref","url","refIndex","_refVal","refCode","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","removeLocalRef","replaceLocalRef","refId","length","inline","regexStr","value","toQuotedString","valueStr","rule","parentSchema","it","validateSchema","deps","definition","dependencies","every","keyword","Object","prototype","hasOwnProperty","Error","join","valid","message","errorsText","macro","compIndex","i","splice","arr","statement"],"mappings":"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","sourcesContent":["'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n"]},"metadata":{},"sourceType":"script"}