UNPKG

json-schema-faker

Version:
8 lines (7 loc) 20.6 kB
/*! * json-schema-faker v0.5.0-rc17 * (c) Alvaro Cabrera <pateketrueke@gmail.com> (https://soypache.co) * Released under the MIT License. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("json-schema-ref-parser"),require("randexp"),require("jsonpath")):"function"==typeof define&&define.amd?define(["json-schema-ref-parser","randexp","jsonpath"],t):(e=e||self).JSONSchemaFaker=t(e.$RefParser,e.RandExp,e.jsonpath)}(this,function(e,t,r){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e,t=t&&t.hasOwnProperty("default")?t.default:t,r=r&&r.hasOwnProperty("default")?r.default:r;var n=function(){this.data={}};n.prototype.unregister=function(e){e?delete this.data[e]:this.data={}},n.prototype.register=function(e,t){this.data[e]=t},n.prototype.registerMany=function(e){var t=this;Object.keys(e).forEach(function(r){t.data[r]=e[r]})},n.prototype.get=function(e){return this.data[e]},n.prototype.list=function(){return this.data};var i={defaultInvalidTypeProduct:null,defaultRandExpMax:10,ignoreProperties:[],ignoreMissingRefs:!1,failOnInvalidTypes:!0,failOnInvalidFormat:!0,alwaysFakeOptionals:!1,optionalsProbability:!1,fixedProbabilities:!1,useExamplesValue:!1,useDefaultValue:!1,requiredOnly:!1,minItems:0,maxItems:null,minLength:0,maxLength:null,resolveJsonPath:!1,reuseProperties:!1,fillProperties:!0};i.random=Math.random;var a=new(function(e){function t(){e.call(this),this.data=Object.assign({},i),this._defaults=i}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={defaults:{configurable:!0}};return r.defaults.get=function(){return Object.assign({},this._defaults)},Object.defineProperties(t.prototype,r),t}(n));function o(e,t){return"string"==typeof e?void 0!==t?a.register(e,t):a.get(e):a.registerMany(e)}o.getDefaults=function(){return a.defaults};var u={ALL_TYPES:["array","object","integer","number","string","boolean","null"],MIN_NUMBER:-100,MAX_NUMBER:100,MIN_INTEGER:-1e8,MAX_INTEGER:1e8,MOST_NEAR_DATETIME:2524608e6};function s(e,t,r,n,i){return void 0===i&&(i=!1),r=void 0===r?u.MIN_NUMBER:r,n=void 0===n?u.MAX_NUMBER:n,(t=void 0===t?n:t)<(e=void 0===e?r:e)&&(t+=e),i?function(e,t){return o("random")()*(t-e)+e}(e,t):function(e,t){return e=void 0===e?u.MIN_INTEGER:e,t=void 0===t?u.MAX_INTEGER:t,Math.floor(o("random")()*(t-e+1))+e}(e,t)}var f={pick:function(e){return e[Math.floor(o("random")()*e.length)]},date:function(e){if(e)return function(e){switch(e){case"seconds":return 60*s(0,60);case"minutes":return 612*s(15,50);case"hours":return 36123*s(12,72);case"days":return 86412345*s(7,30);case"weeks":return 604812345*s(4,52);case"months":return 2592012345*s(2,13);case"years":return 31104012345*s(1,20)}}(e);var t=new Date,r=s(-1e3,u.MOST_NEAR_DATETIME);return t.setTime(t.getTime()-r),t},shuffle:function(e){for(var t,r,n=e.length,i=e.slice();n>0;)r=Math.floor(o("random")()*n),t=i[n-=1],i[n]=i[r],i[r]=t;return i},number:s,randexp:function(e){return t.prototype.max=o("defaultRandExpMax"),t.prototype.randInt=function(e,t){return e+Math.floor(o("random")()*(t-e+1))},new t(e).gen()}};function c(e,t){return Object.keys(t).forEach(function(r){"object"!=typeof t[r]||null===t[r]?e[r]=t[r]:Array.isArray(t[r])?(e[r]=e[r]||[],t[r].forEach(function(t){-1===e[r].indexOf(t)&&e[r].push(t)})):"object"!=typeof e[r]||null===e[r]||Array.isArray(e[r])?e[r]=c({},t[r]):e[r]=c(e[r],t[r])}),e}function m(){return f.pick([!1,!0,null,-1,NaN,Math.PI,1/0,void 0,[],{},Math.random(),Math.random().toString(36).substr(2)])}var l={getSubAttribute:function(e,t){for(var r=t.split(".");r.length;){var n=r.shift();if(!e[n])break;e=e[n]}return e},hasProperties:function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];return t.filter(function(t){return void 0!==e[t]}).length>0},omitProps:function(e,t){var r={};return Object.keys(e).forEach(function(n){-1===t.indexOf(n)&&(Array.isArray(e[n])?r[n]=e[n].slice():r[n]=e[n]instanceof Object?c({},e[n]):e[n])}),r},typecast:function(e,t,r){var n={};switch(e||t.type){case"integer":case"number":if(void 0!==t.minimum&&(n.minimum=t.minimum),void 0!==t.maximum&&(n.maximum=t.maximum),t.enum){var i=Math.max(n.minimum||0,0),a=Math.min(n.maximum||1/0,1/0);t.exclusiveMinimum&&i===t.minimum&&(i+=t.multipleOf||1),t.exclusiveMaximum&&a===t.maximum&&(a-=t.multipleOf||1),(i||a!==1/0)&&(t.enum=t.enum.filter(function(e){return e>=i&&e<=a}))}break;case"string":void 0!==t.minLength&&(n.minLength=t.minLength),void 0!==t.maxLength&&(n.maxLength=t.maxLength);var u=o("maxLength"),s=o("minLength");u&&n.maxLength>u&&(n.maxLength=u),s&&n.minLength<s&&(n.minLength=s)}var c=r(n);switch(e||t.type){case"number":c=parseFloat(c);break;case"integer":c=parseInt(c,10);break;case"boolean":c=!!c;break;case"string":c=String(c);for(var m=Math.max(n.minLength||0,0),l=Math.min(n.maxLength||1/0,1/0);c.length<m;)t.pattern?c+=f.randexp(t.pattern):c+=""+f.pick([" ","/","_","-","+","=","@","^"])+c;switch(c.length>l&&(c=c.substr(0,l)),t.format){case"date-time":case"datetime":c=new Date(c).toISOString().replace(/([0-9])0+Z$/,"$1Z");break;case"date":c=new Date(c).toISOString().substr(0,10);break;case"time":c=new Date("1969-01-01 "+c).toISOString().substr(11)}}return c},merge:c,clone:function e(t){return t&&"object"==typeof t?Array.isArray(t)?t.map(function(t){return e(t)}):Object.keys(t).reduce(function(r,n){return r[n]=e(t[n]),r},{}):t},short:function(e){var t=JSON.stringify(e),r=JSON.stringify(e,null,2);return t.length>400?r.substr(0,400)+"...":r},notValue:function(e,t){var r=c({},t);if(void 0!==e.minimum&&(r.maximum=e.minimum,r.exclusiveMaximum=!0),void 0!==e.maximum&&(r.minimum=e.maximum>r.maximum?0:e.maximum,r.exclusiveMinimum=!0),void 0!==e.minLength&&(r.maxLength=e.minLength),void 0!==e.maxLength&&(r.minLength=e.maxLength>r.maxLength?0:e.maxLength),e.type)r.type=f.pick(u.ALL_TYPES.filter(function(t){return(Array.isArray(e.type)?e.type:[e.type]).every(function(e){return"number"===t||"integer"===t?"number"!==e&&"integer"!==e:t!==e})}));else if(e.enum){var n;do{n=m()}while(-1!==e.enum.indexOf(n));r.enum=[n]}return e.required&&r.properties&&e.required.forEach(function(e){delete r.properties[e]}),r},anyValue:m,validate:function(e,t){return!t.every(function(t){return void 0!==t.minimum&&e>=t.minimum||void 0!==t.maximum&&e<=t.maximum})},isKey:function(e){return-1!==["enum","const","default","examples","required","definitions"].indexOf(e)},template:function e(t,r){return Array.isArray(t)?t.map(function(t){return e(t,r)}):("string"==typeof t&&(t=t.replace(/#\{([\w.-]+)\}/g,function(e,t){return r[t]})),t)}};var p=function(){this.registry={},this.support={}};p.prototype.reset=function(e){e?(delete this.registry[e],delete this.support[e]):(this.registry={},this.support={})},p.prototype.extend=function(e,t){var r,n=this;this.registry[e]=t(this.registry[e]),this.support[e]||(this.support[e]=(r=function(){return n.registry[e]},function(e,t,n,i){var a=e,o=[];"object"==typeof e&&(a=Object.keys(e)[0],Array.isArray(e[a])?o=e[a]:o.push(e[a]));for(var u=a.split("."),s=r();u.length>1;)s=s[u.shift()];return"function"==typeof(e="object"==typeof s?s[u[0]]:s)&&(e=e.apply(s,o.map(function(e){return l.template(e,i)}))),"[object Object]"===Object.prototype.toString.call(e)&&Object.keys(e).forEach(function(t){if("function"==typeof e[t])throw new Error("Cannot resolve value for '"+n+": "+a+"', given: "+e)}),e}))},p.prototype.define=function(e,t){this.support[e]=t},p.prototype.get=function(e){if(void 0===this.registry[e])throw new ReferenceError("'"+e+"' dependency doesn't exist.");return this.registry[e]},p.prototype.wrap=function(e){for(var t=this,r=Object.keys(e),n={},i=r.length,a=function(){var a=r[i].replace(/^x-/,""),o=t.support[a];if("function"==typeof o)return Object.defineProperty(e,"generate",{configurable:!1,enumerable:!1,writable:!1,value:function(t){return o.call(n,e[r[i]],e,r[i],t)}}),"break"};i--;){if("break"===a())break}return e};var d=new n;function h(e,t){if(void 0===e)return d.list();if("string"==typeof e)if("function"==typeof t)d.register(e,t);else{if(null!==t&&!1!==t)return d.get(e);d.unregister(e)}else d.registerMany(e)}var y=function(e){function t(t,r){e.call(this),e.captureStackTrace&&e.captureStackTrace(this,this.constructor),this.name="ParseError",this.message=t,this.path=r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Error),g={array:["additionalItems","items","maxItems","minItems","uniqueItems"],integer:["exclusiveMaximum","exclusiveMinimum","maximum","minimum","multipleOf"],object:["additionalProperties","dependencies","maxProperties","minProperties","patternProperties","properties","required"],string:["maxLength","minLength","pattern","format"]};g.number=g.integer;var v=["additionalItems","items","additionalProperties","dependencies","patternProperties","properties"];function x(e,t,r){return Object.keys(e).filter(function(e){var n=v.indexOf(t)>-1;return!(!(r.indexOf(e)>-1)||n)}).length>0}var b=function(){return o("random")()>.5};var O=function(){return null};function w(e){var t=void 0===e.minimum?u.MIN_INTEGER:e.minimum,r=void 0===e.maximum?u.MAX_INTEGER:e.maximum,n=e.multipleOf;if(n&&(r=Math.floor(r/n)*n,t=Math.ceil(t/n)*n),e.exclusiveMinimum&&t===e.minimum&&(t+=n||1),e.exclusiveMaximum&&r===e.maximum&&(r-=n||1),t>r)return NaN;if(n){if(-1===String(n).indexOf(".")){for(var i=f.number(Math.floor(t/n),Math.floor(r/n))*n;i<t;)i+=e.multipleOf;return i}var a,o,s=(r-t)/n;do{o=(a=f.number(0,s)*n)/n%1}while(0!==o);return a}return f.number(t,r,void 0,void 0,!0)}var A="Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore\net dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\ncommodo consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\npariatur Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est\nlaborum".split(/\W/);function E(e){return f.shuffle(A).slice(0,e)}var k={type:["string","number","integer","boolean"]};function j(){return E(f.number(1,5)).join(" ")}function M(e,t){void 0===e&&(e=0),void 0===t&&(t=140);for(var r=Math.max(0,e),n=f.number(r,t),i=j();i.length<r;)i+=j();return i.length>n&&(i=i.substr(0,n)),i}function I(){return f.date().toISOString()}var P="https?://{hostname}(?:[a-zA-Z][a-zA-Z0-9+-.]*)+",L={email:"[a-zA-Z\\d][a-zA-Z\\d-]{1,13}[a-zA-Z\\d]@{hostname}",hostname:"[a-zA-Z]{1,33}\\.[a-z]{2,4}",ipv6:"[a-f\\d]{4}(:[a-f\\d]{4}){7}",uri:P,slug:"[a-zA-Z\\d_-]+","uri-reference":P+"(?:\\?([a-z]{1,7}(=\\w{1,5})?&){0,3})?","uri-template":P.replace("(?:","(?:/\\{[a-z][:a-zA-Z0-9-]*\\}|"),"json-pointer":"(/(?:"+"[a-zA-Z][a-zA-Z0-9+-.]*".replace("]*","/]*")+"|~[01]))+",uuid:"^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$"};L.iri=L["uri-reference"],L["iri-reference"]=L["uri-reference"],L["idn-email"]=L.email,L["idn-hostname"]=L.hostname;var _=new RegExp("\\{("+Object.keys(L).join("|")+")\\}");function S(e,t){var r,n=h(e.format);if("function"==typeof n)return n(e);switch(e.format){case"date-time":case"datetime":return I();case"date":return I().slice(0,10);case"time":return I().slice(11);case"ipv4":return[0,0,0,0].map(function(){return f.number(0,255)}).join(".");case"regex":return".+?";case"email":case"hostname":case"ipv6":case"uri":case"uri-reference":case"iri":case"iri-reference":case"idn-email":case"idn-hostname":case"json-pointer":case"slug":case"uri-template":case"uuid":return r=e.format,f.randexp(L[r]).replace(_,function(e,t){return f.randexp(L[t])});default:if(void 0===n){if(o("failOnInvalidFormat"))throw new Error("unknown registry key "+l.short(e.format));return t()}throw new Error("unsupported format '"+e.format+"'")}}var N={boolean:b,null:O,array:function(e,t,r,n){var i=[];if(!e.items&&!e.additionalItems){if(l.hasProperties(e,"minItems","maxItems","uniqueItems"))throw new y("missing items for "+l.short(e),t);return i}if(Array.isArray(e.items))return e.items.map(function(e,i){var a=t.concat(["items",i]);return n(e,a,r)});var a=e.minItems,u=e.maxItems;o("minItems")&&(a=u?Math.min(o("minItems"),u):o("minItems")),o("maxItems")&&(u&&u>o("maxItems")&&(u=o("maxItems")),a&&a>o("maxItems")&&(a=u));var s=!0===o("alwaysFakeOptionals")?1:o("optionalsProbability"),c=o("alwaysFakeOptionals")||o("fixedProbabilities")||!1,m=f.number(a,u,1,5);!1!==s&&(m=Math.max(c?Math.round((u||m)*s):Math.abs(f.number(a,u)*s),a||0));for(var p="object"==typeof e.additionalItems?e.additionalItems:{},d=i.length;d<m;d+=1){var h=t.concat(["items",d]),g=n(e.items||p,h,r);i.push(g)}return e.uniqueItems?function(e,t,r,n,i,a){var o=[],u=[];function s(e){var t=JSON.stringify(e);return-1===u.indexOf(t)&&(u.push(t),o.push(e),!0)}t.forEach(s);for(var f=100;o.length!==t.length&&(s(a(r.items||n,e,i))||(f-=1),f););return o}(t.concat(["items"]),i,e,p,r,n):i},integer:function(e){return w(Object.assign({multipleOf:1},e))},number:w,object:function(e,t,r,n){var i={},a=e.properties||{},u=e.patternProperties||{},s="boolean"==typeof e.required?[]:(e.required||[]).slice(),c=!1!==e.additionalProperties,m=Object.keys(a),p=Object.keys(u),d=m.concat(p).reduce(function(e,t){return-1===s.indexOf(t)&&e.push(t),e},[]),h=s.concat(d),y=c&&!0===e.additionalProperties?k:e.additionalProperties;if(!c&&0===m.length&&0===p.length&&l.hasProperties(e,"minProperties","maxProperties","dependencies","required"))return{};if(!0===o("requiredOnly"))return s.forEach(function(e){a[e]&&(i[e]=a[e])}),n(i,t.concat(["properties"]),r);var g=!0===o("alwaysFakeOptionals")?1:o("optionalsProbability"),v=o("alwaysFakeOptionals")||o("fixedProbabilities")||!1,x=o("ignoreProperties")||[],b=Math.max(e.minProperties||0,s.length),O=e.maxProperties||h.length+f.number(1,5),w=Math.max(0,b-s.length);1!==h.length||s.length||(w=f.number(w,h.length+(h.length-b))),!1!==g&&(w=!0===v?Math.round(b-s.length+g*(h.length-b)):f.number(b-s.length,g*(h.length-b)));var A=f.shuffle(d).slice(0,w),j=d.filter(function(e){return-1!==A.indexOf(e)}),M=s.concat(j).slice(0,O),I=[];if(e.dependencies&&(Object.keys(e.dependencies).forEach(function(t){var r=e.dependencies[t];-1!==M.indexOf(t)&&(Array.isArray(r)?r.forEach(function(e){-1===M.indexOf(e)&&M.push(e)}):I.push(r))}),I.length))return delete e.dependencies,n({allOf:I.concat(e)},t.concat(["properties"]),r);var P=[];M.forEach(function(e){for(var t=0;t<x.length;t+=1)if(x[t]instanceof RegExp&&x[t].test(e)||"string"==typeof x[t]&&x[t]===e||"function"==typeof x[t]&&x[t](a[e],e))return void P.push(e);var r;if(!1===y?-1!==s.indexOf(e)&&(i[e]=a[e]):a[e]&&(i[e]=a[e]),p.forEach(function(t){e.match(new RegExp(t))&&(r=!0,i[e]?l.merge(i[e],u[t]):i[f.randexp(e)]=u[t])}),!r){var n=u[e]||y;n&&!1!==y&&(i[u[e]?f.randexp(e):e]=a[e]||n)}});var L=o("fillProperties"),_=o("reuseProperties"),S=Object.keys(i).length+(L?0:P.length),N=function(e){return f.randexp("_?[_a-f\\d]{1,3}"+(e?"\\$?":""))};function R(){var e;do{e=s.shift()}while(i[e]);return e}for(;L&&(p.length||c)&&!(S>=b);){if(c)if(_&&m.length-S>b){var q=0,T=void 0;do{if((q+=1)>1e3)break;T=R()||f.pick(m)}while(void 0!==i[T]);void 0===i[T]&&(i[T]=a[T],S+=1)}else if(p.length&&!y){var $=f.pick(p),z=f.randexp($);i[z]||(i[z]=u[$],S+=1)}else{var Z=R()||E(1)+N();i[Z]||(i[Z]=y||k,S+=1)}for(var D=0;S<b&&D<p.length;D+=1){var F=p[D],J=f.randexp(F);i[J]||(i[J]=u[F],S+=1)}}for(var U=f.number(b,O);S<U&&y;){var V=E(1)+N(!0);i[V]||(i[V]=y,S+=1)}return n(i,t.concat(["properties"]),r)},string:function(e){return l.typecast("string",e,function(t){return e.format?S(e,function(){return M(t.minLength,t.maxLength)}):e.pattern?f.randexp(e.pattern):M(t.minLength,t.maxLength)})}};function R(e,t,r,n){if(e=r(e,void 0,t)){if("properties"!==t[t.length-1]){if(o("useExamplesValue")&&Array.isArray(e.examples)){var i=e.examples.concat("default"in e?[e.default]:[]);return l.typecast(null,e,function(){return f.pick(i)})}if(o("useDefaultValue")&&"default"in e)return e.default;if("template"in e)return l.template(e.template,n)}if(e.not&&"object"==typeof e.not&&(e=l.notValue(e.not,l.omitProps(e,["not"]))),"const"in e)return e.const;if(Array.isArray(e.enum))return l.typecast(null,e,function(){return f.pick(e.enum)});if("function"==typeof e.thunk)return R(e.thunk(),t,r);if("function"==typeof e.generate)return l.typecast(null,e,function(){return e.generate(n)});var a=e.type;if(Array.isArray(a)?a=f.pick(a):void 0===a&&(a=function(e,t){for(var r=Object.keys(g),n=0;n<r.length;n+=1){var i=r[n];if(x(e,t[t.length-1],g[i]))return i}}(e,t)||a)&&(e.type=a),"string"==typeof a){if(!N[a]){if(o("failOnInvalidTypes"))throw new y("unknown primitive "+l.short(a),t.concat(["type"]));return o("defaultInvalidTypeProduct")}try{return N[a](e,t,r,R)}catch(e){if(void 0===e.path)throw new y(e.stack,t);throw e}}var u={};return Array.isArray(e)&&(u=[]),Object.keys(e).forEach(function(n){"object"==typeof e[n]&&"definitions"!==n?u[n]=R(e[n],t.concat([n]),r,u):u[n]=e[n]}),u}}function q(e,t,n,i){if(!e||"object"!=typeof e)return e;if(n||(n={}),t||(t=e),Array.isArray(e))return e.map(function(e){return q(e,t,n,i)});if(e.jsonPath){var a="object"!=typeof e.jsonPath?{path:e.jsonPath}:e.jsonPath;a.group=e.group||a.group||i,a.cycle=e.cycle||a.cycle||!1,a.reverse=e.reverse||a.reverse||!1,a.count=e.count||a.count||1;var o=a.group+"__"+a.path;return n[o]||(a.count>1?n[o]=r.query(t,a.path,a.count):n[o]=r.query(t,a.path)),a.cycle||a.reverse?function(e,t){if(!Array.isArray(e))return e;var r=t?e.pop():e.shift();return t?e.unshift(r):e.push(r),r}(n[o],a.reverse):function(e){return Array.isArray(e)?f.pick(e):e}(n[o])}return Object.keys(e).forEach(function(r){e[r]=q(e[r],t,n,r)}),e}function T(e,t,r){try{var n=R(l.clone(t),[],function n(i,a,u){if(void 0===a&&(a=f.number(1,3)),!i)return null;if("function"==typeof i.generate)return i;if("string"==typeof(i.$id||i.id)&&(delete i.id,delete i.$id,delete i.$schema),"string"==typeof i.$ref){if("#"===i.$ref)return delete i.$ref,i;var s;if(-1===i.$ref.indexOf("#/")&&(s=e[i.$ref]||null),0===i.$ref.indexOf("#/definitions/")&&(s=t.definitions[i.$ref.split("#/definitions/")[1]]||null),void 0!==s){if(!s&&!0!==o("ignoreMissingRefs"))throw new Error("Reference not found: "+i.$ref);l.merge(i,s||{})}return delete i.$ref,i}if(Array.isArray(i.allOf)){var c=i.allOf;delete i.allOf,c.forEach(function(e){var t=n(e,a+1,u);l.merge(i,"function"==typeof t.thunk?t.thunk():t)})}if(Array.isArray(i.oneOf||i.anyOf)){var m=i.oneOf||i.anyOf;return i.enum&&i.oneOf&&(i.enum=i.enum.filter(function(e){return l.validate(e,m)})),{thunk:function(){var e=l.omitProps(i,["anyOf","oneOf"]),t=f.pick(m);return l.merge(e,t),i.oneOf&&m.forEach(function(r){r!==t&&r.required&&r.required.forEach(function(t){delete e.properties[t]})}),e}}}if(Object.keys(i).forEach(function(e){!Array.isArray(i[e])&&"object"!=typeof i[e]||l.isKey(e)||(i[e]=n(i[e],a,u.concat(e)))}),u){var p=u[u.length-1];if("properties"===p||"items"===p)return i}return r.wrap(i)});return o("resolveJsonPath")?q(n):n}catch(e){throw e.path?new Error(e.message+" in /"+e.path.join("/")):e}}var $=new p;function z(){$.define("pattern",f.randexp),$.define("autoIncrement",function(e,t){if(!this.offset){var r=t.minimum||1,n=r+u.MAX_NUMBER,i=e.initialOffset||t.initialOffset;this.offset=i||f.number(r,n)}return!0===e?this.offset++:t}),$.define("sequentialDate",function(e,t){if(this.now||(this.now=f.date()),e){if(t=this.now.toISOString(),-1===["seconds","minutes","hours","days","weeks","months","years"].indexOf(e=!0===e?"days":e))throw new Error("Unsupported increment by "+l.short(e));this.now.setTime(this.now.getTime()+f.date(e))}return t})}function Z(e){var t={};return Array.isArray(e)?e.forEach(function(e){t[e.$id||e.id]=e}):t=e||{},t}var D=function(e,t,r){return console.log("[json-schema-faker] calling JsonSchemaFaker() is deprecated, call either .generate() or .resolve()"),r&&console.log("[json-schema-faker] references are only supported by calling .resolve()"),D.generate(e,t)};return D.generate=function(e,t){return T(Z(t),e,$)},D.resolve=function(t,r,n){"string"==typeof r&&(n=r,r={}),n=(n=n||("undefined"!=typeof process?process.cwd():"")).replace(/\/+$/,"")+"/";var i=Z(r),a={order:300,canRead:!0,read:function(e,t){try{t(null,i[e.url]||i[e.url.split("/").pop()])}catch(e){t(e)}}};return e.dereference(n,t,{resolve:{file:{order:100},http:{order:200},fixedRefs:a},dereference:{circular:"ignore"}}).then(function(e){return T(i,e,$)})},z(),D.format=h,D.option=o,D.random=f,D.extend=function(e,t){return $.extend(e,t),D},D.define=function(e,t){return $.define(e,t),D},D.reset=function(e){return $.reset(e),z(),D},D.locate=function(e){return $.get(e)},D.version="0.5.0-rc16",D}); //# sourceMappingURL=index.umd.min.js.map