UNPKG

@nodecg/json-schema-lib

Version:

Extensible JSON Schema library with support for multi-file schemas using $ref

15 lines 28.2 kB
/*! * Json Schema Lib v0.0.6 (August 16th 2017) * * https://github.com/BigstickCarpet/json-schema-lib * * @author James Messinger (http://jamesmessinger.com) * @license MIT */ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsonSchemaLib=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function Config(e,i){validateConfig(e),deepAssign(this,i||Config.defaults),e&&deepAssign(this,e)}function validateConfig(e){var i=typeOf(e);if(i.hasValue&&!i.isPOJO)throw ono("Invalid arguments. Expected a configuration object.")}var ono=require("ono"),typeOf=require("../util/typeOf"),deepAssign=require("../util/deepAssign");module.exports=Config,Config.defaults={Promise:require("../util/Promise"),http:{headers:{},timeout:5e3,maxRedirects:5,withCredentials:!1}}},{"../util/Promise":23,"../util/deepAssign":26,"../util/typeOf":34,ono:37}],2:[function(require,module,exports){"use strict";function File(t){this.schema=t,this.url="",this.data=void 0,this.mimeType=void 0,this.encoding=void 0,this[__internal]={state:0}}var omit=require("../util/omit"),__internal=require("../util/internal");module.exports=File,File.prototype.toString=function(){return this.path},File.prototype.toJSON=function(){return omit(this,"schema",__internal)}},{"../util/internal":27,"../util/omit":30}],3:[function(require,module,exports){"use strict";function FileArray(e){var r=[];return r[__internal]={schema:e},assign(r,FileArray.prototype)}function resolveURL(e,r){return e instanceof File?e.url:r.plugins.resolveURL({from:r.rootURL,to:e})}var ono=require("ono"),File=require("./File"),assign=require("../util/assign"),__internal=require("../util/internal");module.exports=FileArray,FileArray.prototype.exists=function(e){if(0===this.length)return!1;for(var r=resolveURL(e,this[__internal].schema),t=0;t<this.length;t++){if(this[t].url===r)return!0}return!1},FileArray.prototype.get=function(e){if(0===this.length)throw ono("Unable to get %s. \nThe schema is empty.",e);for(var r=resolveURL(e,this[__internal].schema),t=0;t<this.length;t++){var i=this[t];if(i.url===r)return i}throw ono("Unable to get %s. \nThe schema does not include this file.",r)}},{"../util/assign":25,"../util/internal":27,"./File":2,ono:37}],4:[function(require,module,exports){"use strict";function JsonSchemaLib(n,r){void 0===r&&Array.isArray(n)&&(r=n,n=void 0),this.config=new Config(n),this.plugins=new PluginManager(r)}function callAsync(n,r,i){setTimeout(function(){n(r,i)},0)}var Config=require("../Config"),PluginManager=require("../PluginManager"),read=require("./read"),normalizeArgs=require("./normalizeArgs");module.exports=JsonSchemaLib,JsonSchemaLib.prototype.use=function(n,r){this.plugins.use(n,r)},JsonSchemaLib.prototype.toJSON=function(){return{config:this.config,plugins:this.plugins}},JsonSchemaLib.prototype.readSync=function(n,r,i){var e=normalizeArgs(arguments),o=e.error;if(n=e.url,r=e.data,i=e.config,i.sync=!0,o)throw o;var t,a;if(read.call(this,n,r,i,function(n,r){t=n,a=r}),t)throw t;return a},JsonSchemaLib.prototype.read=JsonSchemaLib.prototype.readAsync=function(n,r,i,e){var o=normalizeArgs(arguments),t=o.error,a=this;if(n=o.url,r=o.data,i=o.config,e=o.callback,i.sync=!1,t){if(!e)return i.Promise.reject(t);callAsync(e,t)}else{if(!e)return new i.Promise(function(e,o){read.call(a,n,r,i,function(n,r){n?o(n):e(r)})});try{read.call(this,n,r,i,function(n,r){callAsync(e,n,r)})}catch(n){callAsync(e,n)}}}},{"../Config":1,"../PluginManager":14,"./normalizeArgs":5,"./read":6}],5:[function(require,module,exports){"use strict";function normalizeArgs(o){var t,e,n,r,a;try{if(o=Array.prototype.slice.call(o),"function"==typeof o[o.length-1]&&(a=o.pop()),"string"==typeof o[0]&&"{"!==o[0].trim()[0]&&-1===o[0].indexOf("\n")?(e=o[0],o.shift()):e="","string"!=typeof o[0]&&2!==o.length||(n=o[0],o.shift()),r=new Config(o[0]),o.shift(),o.length>0)throw ono("Too many arguments. Expected a URL, schema, config, and optional callback.");if(!e&&!n)throw ono("Invalid arguments. Expected at least a URL or schema.")}catch(o){t=o}return{error:t,url:e,data:n,config:r,callback:a}}var ono=require("ono"),Config=require("../Config");module.exports=normalizeArgs},{"../Config":1,ono:37}],6:[function(require,module,exports){"use strict";function read(e,l,i,s){var a=new Schema(i,this.plugins),n=new File(a);a.files.push(n),e&&(e=a.plugins.resolveURL({to:e}),n.url=stripHash(e)),l?(n.data=l,n[__internal].state=STATE_READ,safeCall(parseFile,n,s)):safeCall(readFile,n,s)}function readFile(e,l){function i(i){i?l(i):(e[__internal].state=STATE_READ,safeCall(decodeFile,e,l))}var s=e.schema;e[__internal].state=STATE_READING,s.config.sync?(s.plugins.readFileSync({file:e}),i(null)):s.plugins.readFileAsync({file:e},i)}function decodeFile(e,l){e.schema.plugins.decodeFile({file:e}),safeCall(parseFile,e,l)}function parseFile(e,l){e.schema.plugins.parseFile({file:e}),resolveFileReferences(e),safeCall(readReferencedFiles,e.schema,l)}function readReferencedFiles(e,l){var i,s,a=[],n=[];for(s=0;s<e.files.length;s++)i=e.files[s],i[__internal].state<STATE_READING?n.push(i):i[__internal].state<STATE_READ&&a.push(i);if(0===n.length&&0===a.length)return safeCall(finished,e,l);var r=e.config.sync?1:n.length;for(s=0;s<r;s++)i=n[s],safeCall(readFile,i,l)}function finished(e,l){e.plugins.finished(),delete e.config.sync,l(null,e)}var Schema=require("../Schema"),File=require("../File"),safeCall=require("../../util/safeCall"),stripHash=require("../../util/stripHash"),__internal=require("../../util/internal"),resolveFileReferences=require("./resolveFileReferences"),STATE_READING=1,STATE_READ=2;module.exports=read},{"../../util/internal":27,"../../util/safeCall":31,"../../util/stripHash":33,"../File":2,"../Schema":15,"./resolveFileReferences":7}],7:[function(require,module,exports){"use strict";function resolveFileReferences(e){crawl(e.data,e)}function crawl(e,r){var i=typeOf(e);if(i.isPOJO||i.isArray){i.isPOJO&&isFileReference(e)&&resolveFileReference(e.$ref,r);for(var s=Object.keys(e),l=0;l<s.length;l++){crawl(e[s[l]],r)}}}function isFileReference(e){return"string"==typeof e.$ref&&"#"!==e.$ref[0]}function resolveFileReference(e,r){var i=r.schema,s=new File(i);e=stripHash(e),s.url=i.plugins.resolveURL({from:r.url,to:e}),i.files.exists(s)||i.files.push(s)}var File=require("../File"),typeOf=require("../../util/typeOf"),stripHash=require("../../util/stripHash");module.exports=resolveFileReferences},{"../../util/stripHash":33,"../../util/typeOf":34,"../File":2}],8:[function(require,module,exports){"use strict";function PluginHelper(e,r){validatePlugins(e),e=e||[];var l=e.slice().sort(sortByPriority);return l[__internal]={schema:r},assign(l,PluginHelper.prototype)}function sortByPriority(e,r){return(r.priority||0)-(e.priority||0)}var ono=require("ono"),assign=require("../../util/assign"),__internal=require("../../util/internal"),validatePlugins=require("./validatePlugins"),callSyncPlugin=require("./callSyncPlugin"),callAsyncPlugin=require("./callAsyncPlugin");module.exports=PluginHelper,PluginHelper.prototype.resolveURL=function(e){try{var r=callSyncPlugin(this,"resolveURL",e),l=r.result,n=r.plugin||{name:""};if(void 0===l||null===l)throw ono("Error in %s.resolveURL: No value was returned",n.name);if("string"!=typeof l)throw ono("Error in %s.resolveURL: The return value was not a string (%s)",n.name,typeof l);return l}catch(r){throw ono(r,"Unable to resolve %s",e.to)}},PluginHelper.prototype.readFileSync=function(e){try{var r=callSyncPlugin(this,"readFileSync",e);if(!r.plugin)throw ono("Error in readFileSync: No plugin was able to read the file");e.file.data=r.result}catch(r){throw ono(r,"Unable to read %s",e.file.url)}},PluginHelper.prototype.readFileAsync=function(e,r){callAsyncPlugin(this,"readFileAsync",e,function(l,n){l||n.plugin||(l=ono("Error in readFileAsync: No plugin was able to read the file")),l?(l=ono(l,"Unable to read %s",e.file.url),r(l)):(n.plugin&&(e.file.data=n.result),r(null))})},PluginHelper.prototype.decodeFile=function(e){try{var r=callSyncPlugin(this,"decodeFile",e);r.plugin&&(e.file.data=r.result)}catch(r){throw ono(r,"Unable to parse %s",e.file.url)}},PluginHelper.prototype.parseFile=function(e){try{var r=callSyncPlugin(this,"parseFile",e);r.plugin&&(e.file.data=r.result)}catch(r){throw ono(r,"Unable to parse %s",e.file.url)}},PluginHelper.prototype.finished=function(){try{callSyncPlugin(this,"finished",{})}catch(e){throw ono(e,"Error finalizing schema")}}},{"../../util/assign":25,"../../util/internal":27,"./callAsyncPlugin":9,"./callSyncPlugin":10,"./validatePlugins":13,ono:37}],9:[function(require,module,exports){"use strict";function callAsyncPlugin(l,n,e,i){var r=l.filter(filterByMethod(n));e.schema=l[__internal].schema,e.config=e.schema.config,safeCall(callNextPlugin,r,n,e,i)}function callNextPlugin(l,n,e,i){function r(l,e){t&&(l=ono("Error in %s.%s: next() was called multiple times",o.name,n)),t=!0,a(l,e)}function a(r,a){r?i(ono(r,"Error in %s.%s:",o.name,n)):t&&void 0===a?safeCall(callNextPlugin,l,n,e,i):i(null,{plugin:o,result:a})}var t,o=l.shift(),u=e.config.Promise;o||i(null,{plugin:null,result:void 0}),e.next=r;var s=o[n].call(null,e);void 0!==s&&u.resolve(s).then(function(l){var e;t&&(e=ono("Error in %s.%s: Cannot return a value and call next()",o.name,n)),a(e,l)})}var ono=require("ono"),__internal=require("../../util/internal"),safeCall=require("../../util/safeCall"),filterByMethod=require("./filterByMethod");module.exports=callAsyncPlugin},{"../../util/internal":27,"../../util/safeCall":31,"./filterByMethod":11,ono:37}],10:[function(require,module,exports){"use strict";function callSyncPlugin(n,e,l){var r=n.filter(filterByMethod(e));return l.schema=n[__internal].schema,l.config=l.schema.config,callNextPlugin(r,e,l)}function callNextPlugin(n,e,l){function r(n,l){o&&(t=ono("Error in %s.%s: next() was called multiple times",u.name,e)),o=!0,t=n,i=l}var i,t,o,u=n.shift();if(!u)return{plugin:null,result:void 0};if(l.next=r,void 0!==(i=u[e].call(null,l))&&o)throw ono("Error in %s.%s: Cannot return a value and call next()",u.name,e);if(t)throw ono(t,"Error in %s.%s:",u.name,e);return o&&void 0===i?callNextPlugin(n,e,l):{plugin:u,result:i}}var ono=require("ono"),__internal=require("../../util/internal"),filterByMethod=require("./filterByMethod");module.exports=callSyncPlugin},{"../../util/internal":27,"./filterByMethod":11,ono:37}],11:[function(require,module,exports){"use strict";function filterByMethod(t){return function(e){return"function"==typeof e[t]}}module.exports=filterByMethod},{}],12:[function(require,module,exports){"use strict";function validatePlugin(e){if(!typeOf(e).isPOJO)throw ono("Invalid arguments. Expected a plugin object.")}var ono=require("ono"),typeOf=require("../../util/typeOf");module.exports=validatePlugin},{"../../util/typeOf":34,ono:37}],13:[function(require,module,exports){"use strict";function validatePlugins(a){var e=typeOf(a);if(e.hasValue){if(!e.isArray)throw ono("Invalid arguments. Expected an array of plugins.");a.forEach(validatePlugin)}}var ono=require("ono"),typeOf=require("../../util/typeOf"),validatePlugin=require("./validatePlugin");module.exports=validatePlugins},{"../../util/typeOf":34,"./validatePlugin":12,ono:37}],14:[function(require,module,exports){"use strict";function PluginManager(i){validatePlugins(i),i=i||PluginManager.defaults;var e=i.map(clonePlugin);return assign(e,PluginManager.prototype)}function validatePriority(i){var e=typeOf(i);if(e.hasValue&&!e.isNumber)throw ono("Invalid arguments. Expected a priority number.")}function clonePlugin(i){return deepAssign({},i)}var ono=require("ono"),typeOf=require("../util/typeOf"),assign=require("../util/assign"),deepAssign=require("../util/deepAssign"),validatePlugin=require("./PluginHelper/validatePlugin"),validatePlugins=require("./PluginHelper/validatePlugins");module.exports=PluginManager,PluginManager.defaults=[],PluginManager.prototype.use=function(i,e){validatePlugin(i),validatePriority(e),i=clonePlugin(i),i.priority=e||i.priority,this.push(i)}},{"../util/assign":25,"../util/deepAssign":26,"../util/typeOf":34,"./PluginHelper/validatePlugin":12,"./PluginHelper/validatePlugins":13,ono:37}],15:[function(require,module,exports){"use strict";function Schema(e,t){this.config=new Config(e),this.plugins=new PluginHelper(t,this),this.files=new FileArray(this)}var Config=require("./Config"),PluginHelper=require("./PluginHelper/PluginHelper"),FileArray=require("./FileArray");module.exports=Schema,Object.defineProperties(Schema.prototype,{root:{configurable:!0,enumerable:!0,get:function(){return 0===this.files.length?null:this.files[0].data}},rootURL:{configurable:!0,enumerable:!0,get:function(){return 0===this.files.length?null:this.files[0].url}},rootFile:{configurable:!0,enumerable:!0,get:function(){return this.files[0]||null}}}),Schema.prototype.toString=function(){var e=this.rootFile;return e?e.toString():"(empty JSON schema)"},Schema.prototype.exists=function(e){},Schema.prototype.get=function(e){},Schema.prototype.set=function(e,t){}},{"./Config":1,"./FileArray":3,"./PluginHelper/PluginHelper":8}],16:[function(require,module,exports){"use strict";var PluginManager=require("./api/PluginManager");PluginManager.defaults.push(require("./plugins/BrowserUrlPlugin"),require("./plugins/XMLHttpRequestPlugin"),require("./plugins/TextDecoderPlugin"),require("./plugins/ArrayDecoderPlugin"),require("./plugins/JsonPlugin")),module.exports=require("./exports")},{"./api/PluginManager":14,"./exports":17,"./plugins/ArrayDecoderPlugin":18,"./plugins/BrowserUrlPlugin":19,"./plugins/JsonPlugin":20,"./plugins/TextDecoderPlugin":21,"./plugins/XMLHttpRequestPlugin":22}],17:[function(require,module,exports){"use strict";function createJsonSchemaLib(e,o){return new JsonSchemaLib(e,o)}var JsonSchemaLib=require("./api/JsonSchemaLib/JsonSchemaLib"),Schema=require("./api/Schema"),File=require("./api/File");module.exports=createJsonSchemaLib(),module.exports.read=JsonSchemaLib.prototype.read.bind(module.exports),module.exports.readAsync=JsonSchemaLib.prototype.readAsync.bind(module.exports),module.exports.readSync=JsonSchemaLib.prototype.readSync.bind(module.exports),module.exports.default=module.exports,module.exports.create=createJsonSchemaLib,module.exports.util={isSchema:function(e){return e instanceof Schema},isFile:function(e){return e instanceof File}}},{"./api/File":2,"./api/JsonSchemaLib/JsonSchemaLib":4,"./api/Schema":15}],18:[function(require,module,exports){"use strict";function stripBOM(r){var e=r.charCodeAt(0);return 65279===e||65534===e?r.slice(1):r}var isTypedArray=require("../util/isTypedArray");module.exports={name:"ArrayDecoderPlugin",priority:5,decodeFile:function(r){var e=r.file,a=r.next;if(e.encoding&&(isTypedArray(e.data)||Array.isArray(e.data)))try{var i=new Uint16Array(e.data);return stripBOM(String.fromCharCode.apply(null,i))}catch(r){a()}else a()}}},{"../util/isTypedArray":28}],19:[function(require,module,exports){"use strict";function resolveProtocolRelativeURL(o,r){return(o?protocolPattern.exec(o)[0]:location.protocol)+r}function resolveOriginRelativeURL(o,r){return(o?o.split("/").splice(0,3).join("/"):location.origin||location.protocol+location.host)+r}function resolvePathRelativeURL(o,r){o||(o=stripHash(stripQuery(location.href)));var t=o.split("/"),e=r.split("/"),i=t.splice(0,3).join("/");t.pop();for(var l=0;l<e.length;l++){var n=e[l];switch(n){case".":break;case"..":t.pop();break;default:t.push(n)}}return i+"/"+t.join("/")}function stripQuery(o){var r=o.indexOf("?");return r>=0&&(o=o.substr(0,r)),o}var stripHash=require("../util/stripHash"),protocolPattern=/^[a-z][a-z\d\+\-\.]*:\/\//i;module.exports={name:"BrowserUrlPlugin",priority:20,resolveURL:function(o){var r=o.from,t=o.to;return"function"==typeof URL?new URL(t,r||location.href).href:protocolPattern.test(t)?t:"//"===t.substr(0,2)?resolveProtocolRelativeURL(r,t):"/"===t[0]?resolveOriginRelativeURL(r,t):resolvePathRelativeURL(r,t)}}},{"../util/stripHash":33}],20:[function(require,module,exports){"use strict";function isJsonFile(t){return t.data&&"string"==typeof t.data&&(mimeTypePattern.test(t.mimeType)||extensionPattern.test(t.url))}var mimeTypePattern=/[\/+]json$/,extensionPattern=/^[^\?\#]+\.json(\?.*)?$/;module.exports={name:"JsonPlugin",priority:20,parseFile:function(t){var e=t.file,n=t.next;try{return JSON.parse(e.data)}catch(t){if(isJsonFile(e))throw t;n()}}}},{}],21:[function(require,module,exports){"use strict";var isTypedArray=require("../util/isTypedArray"),textDecoderIsSupported="function"==typeof TextDecoder;module.exports={name:"TextDecoderPlugin",priority:10,decodeFile:function(e){var r,t=e.file,d=e.next;if(textDecoderIsSupported&&t.encoding&&isTypedArray(t.data)){try{r=new TextDecoder(t.encoding,{ignoreBOM:!1,fatal:!0})}catch(e){d()}return r.decode(t.data)}d()}}},{"../util/isTypedArray":28}],22:[function(require,module,exports){"use strict";function sendRequest(t,e,s,a){function n(){var t={status:getResponseStatus(o.status,e),headers:parseResponseHeaders(o.getAllResponseHeaders()),data:o.response||o.responseText};t.status>=200&&t.status<300?a(null,t):a(t.status<200||t.status<400?ono("Invalid/unsupported HTTP %d response",t.status):ono("HTTP %d error occurred (%s)",t.status,o.statusText))}function r(t){a(t)}var o=new XMLHttpRequest;o.open("GET",e,t),o.onerror=r,o.ontimeout=r,o.onload=n,setXHRConfig(o,s),o.send()}function setXHRConfig(t,e){try{t.withCredentials=e.http.withCredentials}catch(t){}try{t.timeout=e.http.timeout}catch(t){}Object.keys(e.http.headers).forEach(function(s){var a=e.http.headers[s];void 0!==a&&t.setRequestHeader(s,a)})}function getResponseStatus(t,e){return 1223===t?204:t||("file:"===e.substr(0,5)?200:0)}function parseResponseHeaders(t){var e={};return t&&t.split("\n").forEach(function(t){var s=t.indexOf(":"),a=t.substr(0,s).trim().toLowerCase(),n=t.substr(s+1).trim().toLowerCase();a&&(e[a]=n)}),e}var ono=require("ono"),setHttpMetadata=require("../util/setHttpMetadata"),safeCall=require("../util/safeCall");module.exports={name:"XMLHttpRequestPlugin",priority:5,readFileSync:function(t){var e,s,a=t.file,n=t.config;if(safeCall(sendRequest,!1,a.url,n,function(t,a){e=t,s=a}),e)throw e;return setHttpMetadata(a,s),s.data},readFileAsync:function(t){var e=t.file,s=t.config,a=t.next;safeCall(sendRequest,!1,e.url,s,function(t,s){t?a(t):(setHttpMetadata(e,s),a(null,s.data))})}}},{"../util/safeCall":31,"../util/setHttpMetadata":32,ono:37}],23:[function(require,module,exports){"use strict";var ono=require("ono");"function"==typeof Promise?module.exports=Promise:module.exports=function(){throw ono("This browser does not support Promises. Please use a callback instead.")}},{ono:37}],24:[function(require,module,exports){"use strict";"function"==typeof Symbol?module.exports=Symbol:module.exports=function(o){return o}},{}],25:[function(require,module,exports){"use strict";function assign(s,e){for(var t=Object.keys(e),n=0;n<t.length;n++){var r=t[n];s[r]=e[r]}return s}module.exports=Object.assign||assign},{}],26:[function(require,module,exports){"use strict";function deepAssign(e,s){for(var r=Object.keys(s),n=0;n<r.length;n++){var i=r[n],t=e[i],p=s[i];e[i]=deepClone(p,t)}return e}function deepClone(e,s){var r,n=typeOf(e);if(n.isPOJO){return typeOf(s).isPOJO?(r=deepAssign({},s),deepAssign(r,e)):deepAssign({},e)}if(n.isArray){r=[];for(var i=0;i<e.length;i++)r.push(deepClone(e[i]))}else if(n.hasValue)return e}var typeOf=require("./typeOf");module.exports=deepAssign},{"./typeOf":34}],27:[function(require,module,exports){"use strict";var Symbol=require("./Symbol");module.exports=Symbol("__internal")},{"./Symbol":24}],28:[function(require,module,exports){"use strict";function isTypedArray(t){if("object"==typeof t)for(var r=0;r<supportedDataTypes.length;r++)if(t instanceof supportedDataTypes[r])return!0}function getSupportedDataTypes(){var t=[];return"function"==typeof Uint8Array&&t.push(Uint8Array),"function"==typeof Uint16Array&&t.push(Uint16Array),"function"==typeof ArrayBuffer&&t.push(ArrayBuffer),"function"==typeof Uint32Array&&t.push(Uint32Array),"function"==typeof Int8Array&&t.push(Int8Array),"function"==typeof Int16Array&&t.push(Int16Array),"function"==typeof Int32Array&&t.push(Int32Array),"function"==typeof Uint8ClampedArray&&t.push(Uint8ClampedArray),"function"==typeof Float32Array&&t.push(Float32Array),"function"==typeof Float64Array&&t.push(Float64Array),"function"==typeof DataView&&t.push(DataView),t}var supportedDataTypes=getSupportedDataTypes();module.exports=isTypedArray},{}],29:[function(require,module,exports){"use strict";function lowercase(e){return e&&"string"==typeof e?e.toLowerCase():null}module.exports=lowercase},{}],30:[function(require,module,exports){"use strict";function omit(t,e){e=Array.prototype.slice.call(arguments,1);for(var r=Object.keys(t),o={},i=0;i<r.length;i++){var c=r[i];-1===e.indexOf(c)&&(o[c]=t[c])}return o}module.exports=omit},{}],31:[function(require,module,exports){"use strict";function safeCall(l,a,o){function r(a,r){e&&(a=ono("Error in %s: callback was called multiple times",l.name)),e=!0,o(a,r)}a=Array.prototype.slice.call(arguments,1),o=a.pop();var e;try{a.push(r),l.apply(null,a)}catch(l){if(e)throw l;r(l)}}module.exports=safeCall;var ono=require("ono")},{ono:37}],32:[function(require,module,exports){"use strict";function setHttpMetadata(e,t){var r=t.headers["content-type"];if(r&&"string"==typeof r){var a=contentType.parse(r);e.mimeType=lowercase(a.type),e.encoding=lowercase(a.parameters.charset||null)}}var contentType=require("content-type"),lowercase=require("../util/lowercase");module.exports=setHttpMetadata},{"../util/lowercase":29,"content-type":35}],33:[function(require,module,exports){"use strict";function stripHash(s){var r=s.indexOf("#");return r>=0&&(s=s.substr(0,r)),s}module.exports=stripHash},{}],34:[function(require,module,exports){"use strict";function typeOf(e){var r={hasValue:!1,isArray:!1,isPOJO:!1,isNumber:!1};if(void 0!==e&&null!==e){r.hasValue=!0;var s=typeof e;"number"===s?r.isNumber=!isNaN(e):Array.isArray(e)?r.isArray=!0:r.isPOJO=!("object"!==s||e instanceof RegExp||e instanceof Date)}return r}module.exports=typeOf},{}],35:[function(require,module,exports){/*! * content-type * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */ "use strict";function format(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!typeRegExp.test(r))throw new TypeError("invalid type");var n=r;if(t&&"object"==typeof t)for(var o,a=Object.keys(t).sort(),p=0;p<a.length;p++){if(o=a[p],!tokenRegExp.test(o))throw new TypeError("invalid parameter name");n+="; "+o+"="+qstring(t[o])}return n}function parse(e){if(!e)throw new TypeError("argument string is required");if("object"==typeof e&&"string"!=typeof(e=getcontenttype(e)))throw new TypeError("content-type header is missing from object");if("string"!=typeof e)throw new TypeError("argument string is required to be a string");var t=e.indexOf(";"),r=-1!==t?e.substr(0,t).trim():e.trim();if(!typeRegExp.test(r))throw new TypeError("invalid media type");var n,o,a,p=new ContentType(r.toLowerCase());for(paramRegExp.lastIndex=t;o=paramRegExp.exec(e);){if(o.index!==t)throw new TypeError("invalid parameter format");t+=o[0].length,n=o[1].toLowerCase(),a=o[2],'"'===a[0]&&(a=a.substr(1,a.length-2).replace(qescRegExp,"$1")),p.parameters[n]=a}if(-1!==t&&t!==e.length)throw new TypeError("invalid parameter format");return p}function getcontenttype(e){return"function"==typeof e.getHeader?e.getHeader("content-type"):"object"==typeof e.headers?e.headers&&e.headers["content-type"]:void 0}function qstring(e){var t=String(e);if(tokenRegExp.test(t))return t;if(t.length>0&&!textRegExp.test(t))throw new TypeError("invalid parameter value");return'"'+t.replace(quoteRegExp,"\\$1")+'"'}function ContentType(e){this.parameters=Object.create(null),this.type=e}var paramRegExp=/; *([!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+) */g,textRegExp=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,tokenRegExp=/^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/,qescRegExp=/\\([\u000b\u0020-\u00ff])/g,quoteRegExp=/([\\"])/g,typeRegExp=/^[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+\/[!#$%&'\*\+\-\.\^_`\|~0-9A-Za-z]+$/;exports.format=format,exports.parse=parse},{}],36:[function(require,module,exports){function format(e){var r=/(%?)(%([jds]))/g,t=Array.prototype.slice.call(arguments,1);return t.length&&(e=e.replace(r,function(e,r,a,n){var s=t.shift();switch(n){case"s":s=""+s;break;case"d":s=Number(s);break;case"j":s=JSON.stringify(s)}return r?(t.unshift(s),e):s})),t.length&&(e+=" "+t.join(" ")),""+(e=e.replace(/%{2,2}/g,"%"))}module.exports=format},{}],37:[function(require,module,exports){"use strict";function create(e){return function(r,t,o,n){var a=[],c="";"string"==typeof r?(a=slice.call(arguments),r=t=void 0):"string"==typeof t?(a=slice.call(arguments,1),t=void 0):"string"==typeof o&&(a=slice.call(arguments,2)),a.length>0&&(c=module.exports.formatter.apply(null,a)),r&&r.message&&(c+=(c?" \n":"")+r.message);var i=new e(c);return extendError(i,r),extendToJSON(i),extend(i,t),i}}function extendError(e,r){extendStack(e,r),extend(e,r)}function extendToJSON(e){e.toJSON=errorToJSON,e.inspect=errorToString}function extend(e,r){if(r&&"object"==typeof r)for(var t=Object.keys(r),o=0;o<t.length;o++){var n=t[o];if(!(protectedProperties.indexOf(n)>=0))try{e[n]=r[n]}catch(e){}}}function errorToJSON(){var e={},r=Object.keys(this);r=r.concat(errorPrototypeProperties);for(var t=0;t<r.length;t++){var o=r[t],n=this[o],a=typeof n;"undefined"!==a&&"function"!==a&&(e[o]=n)}return e}function errorToString(){return JSON.stringify(this,null,2).replace(/\\n/g,"\n")}function extendStack(e,r){hasLazyStack(e)?r?lazyJoinStacks(e,r):lazyPopStack(e):e.stack=r?joinStacks(e.stack,r.stack):popStack(e.stack)}function joinStacks(e,r){return e=popStack(e),e&&r?e+"\n\n"+r:e||r}function popStack(e){if(e){var r=e.split("\n");if(r.length<2)return e;for(var t=0;t<r.length;t++){if(r[t].indexOf("onoFactory")>=0)return r.splice(t,1),r.join("\n")}return e}}function hasLazyStack(e){if(!supportsLazyStack)return!1;var r=Object.getOwnPropertyDescriptor(e,"stack");return!!r&&"function"==typeof r.get}function lazyJoinStacks(e,r){var t=Object.getOwnPropertyDescriptor(e,"stack");Object.defineProperty(e,"stack",{get:function(){return joinStacks(t.get.apply(e),r.stack)},enumerable:!1,configurable:!0})}function lazyPopStack(e){var r=Object.getOwnPropertyDescriptor(e,"stack");Object.defineProperty(e,"stack",{get:function(){return popStack(r.get.apply(e))},enumerable:!1,configurable:!0})}var format=require("format-util"),slice=Array.prototype.slice,protectedProperties=["name","message","stack"],errorPrototypeProperties=["name","message","description","number","code","fileName","lineNumber","columnNumber","sourceURL","line","column","stack"];module.exports=create(Error),module.exports.error=create(Error),module.exports.eval=create(EvalError),module.exports.range=create(RangeError),module.exports.reference=create(ReferenceError),module.exports.syntax=create(SyntaxError),module.exports.type=create(TypeError),module.exports.uri=create(URIError),module.exports.formatter=format;var supportsLazyStack=function(){return!(!Object.getOwnPropertyDescriptor||!Object.defineProperty||"undefined"!=typeof navigator&&/Android/.test(navigator.userAgent))}()},{"format-util":36}]},{},[16])(16)}); //# sourceMappingURL=json-schema-lib.min.js.map