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

1 line
26 KiB
JSON

{"ast":null,"code":"'use strict';\n\nvar URI = require('uri-js'),\n equal = require('fast-deep-equal'),\n util = require('./util'),\n SchemaObject = require('./schema_obj'),\n traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\n\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs) ? refVal.schema : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\n\n\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref),\n refPath = _getFullPath(p),\n baseId = getFullPath(this._getId(root.schema));\n\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref)) return {\n schema: refVal,\n root: root,\n baseId: baseId\n };\n root = refVal;\n } else {\n return;\n }\n }\n\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n/* @this Ajv */\n\n\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n\n var id = this._getId(schema);\n\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\n\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0, 1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n\n if (schema !== undefined && schema !== root.schema) return {\n schema: schema,\n root: root,\n baseId: baseId\n };\n}\n\nvar SIMPLE_INLINED = util.toHash(['type', 'format', 'pattern', 'maxLength', 'minLength', 'maxProperties', 'minProperties', 'maxItems', 'minItems', 'maximum', 'minimum', 'uniqueItems', 'multipleOf', 'required', 'enum']);\n\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);else if (limit) return countKeys(schema) <= limit;\n}\n\nfunction checkNoRef(schema) {\n var item;\n\n if (Array.isArray(schema)) {\n for (var i = 0; i < schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n\n return true;\n}\n\nfunction countKeys(schema) {\n var count = 0,\n item;\n\n if (Array.isArray(schema)) {\n for (var i = 0; i < schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n\n return count;\n}\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\n\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n/* @this Ajv */\n\n\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {\n '': schemaId\n };\n var fullPaths = {\n '': getFullPath(schemaId, false)\n };\n var localRefs = {};\n var self = this;\n traverse(schema, {\n allKeys: true\n }, function (sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n\n var id = self._getId(sch);\n\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined) fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema)) throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id])) throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n return localRefs;\n}","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/ajv/lib/compile/resolve.js"],"names":["URI","require","equal","util","SchemaObject","traverse","module","exports","resolve","normalizeId","fullPath","getFullPath","url","resolveUrl","ids","resolveIds","inlineRef","schema","resolveSchema","compile","root","ref","refVal","_refs","call","_schemas","_opts","inlineRefs","validate","_compile","res","v","baseId","undefined","p","parse","refPath","_getFullPath","_getId","Object","keys","length","id","resolveRecursive","getJsonPointer","parsedRef","PREVENT_SCOPE_CHANGE","toHash","fragment","slice","parts","split","i","part","unescapeFragment","$ref","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","Array","isArray","key","count","Infinity","normalize","serialize","TRAILING_SLASH_HASH","replace","schemaId","baseIds","fullPaths","localRefs","self","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","escapeFragment","Error"],"mappings":"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","sourcesContent":["'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n"]},"metadata":{},"sourceType":"script"}