diff --git a/.circleci/config.yml b/.circleci/config.yml index bd733271..5b68e50f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,7 +41,7 @@ jobs: # This is based on your 1.0 configuration file or project settings - run: working_directory: ~/orbitdb/ipfs-log - command: nvm install 8.2.0 && nvm alias default 8.2.0 + command: nvm install 10.14.0 && nvm alias default 10.14.0 # Dependencies # This would typically go in either a build or a build-and-test job when using workflows # Restore the dependency cache diff --git a/circle.yml b/circle.yml index 39a11139..59c85cd7 100644 --- a/circle.yml +++ b/circle.yml @@ -1,3 +1,3 @@ machine: node: - version: 8.2.0 + version: 10.14.0 diff --git a/dist/ipfslog.min.js b/dist/ipfslog.min.js index 48e0d92d..c895e2ce 100644 --- a/dist/ipfslog.min.js +++ b/dist/ipfslog.min.js @@ -1,8 +1,8 @@ -var Log=function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=7)}([function(t,r,e){"use strict";class n{constructor(t,r){this.id=t,this.time=r||0}tick(){return new n(this.id,++this.time)}merge(t){return this.time=Math.max(this.time,t.time),new n(this.id,this.time)}clone(){return new n(this.id,this.time)}static compare(t,r){var e=t.time-r.time;return 0===e&&t.id!==r.id?t.idnew Error("Ipfs instance not defined");class s{static async create(t,r,e,a,h=[],u){if(!i(t))throw o();if(!i(r))throw new Error("Identity is required, cannot create entry");if(!i(e))throw new Error("Entry requires an id");if(!i(a))throw new Error("Entry requires data");if(!i(h)||!Array.isArray(h))throw new Error("'next' argument is not an array");const c={hash:null,id:e,payload:a,next:h.filter(i).map(t=>t.hash?t.hash:t),v:0,clock:u||new n(r.publicKey)},f=await r.provider.sign(r,s.toBuffer(c));return c.key=r.publicKey,c.identity=r.toJSON(),c.sig=f,c.hash=await s.toMultihash(t,c),c}static async verify(t,r){if(!t)throw new Error("Identity-provider is required, cannot verify entry");if(!s.isEntry(r))throw new Error("Invalid Log entry");if(!r.key)throw new Error("Entry doesn't have a key");if(!r.sig)throw new Error("Entry doesn't have a signature");const e=Object.assign({},{hash:null,id:r.id,payload:r.payload,next:r.next,v:r.v,clock:new n(r.clock.id,r.clock.time)});return t.verify(r.sig,r.key,s.toBuffer(e))}static toBuffer(t){return r.from(JSON.stringify(t))}static async toMultihash(t,r){if(!t)throw o();if(!(t=>t.id&&t.clock&&t.next&&t.payload&&t.v>=0)(r))throw new Error("Invalid object format, cannot generate entry multihash");const e={hash:null,id:r.id,payload:r.payload,next:r.next,v:r.v,clock:r.clock};r.key&&Object.assign(e,{key:r.key}),r.identity&&Object.assign(e,{identity:r.identity}),r.sig&&Object.assign(e,{sig:r.sig});const n=s.toBuffer(e);return(await t.object.put(n)).toJSON().multihash}static async fromMultihash(t,r){if(!t)throw o();if(!r)throw new Error(`Invalid hash: ${r}`);const e=await t.object.get(r,{enc:"base58"}),i=JSON.parse(e.toJSON().data);let s={hash:r,id:i.id,payload:i.payload,next:i.next,v:i.v,clock:new n(i.clock.id,i.clock.time)};return i.key&&Object.assign(s,{key:i.key}),i.identity&&Object.assign(s,{identity:i.identity}),i.sig&&Object.assign(s,{sig:i.sig}),s}static isEntry(t){return t&&void 0!==t.id&&void 0!==t.next&&void 0!==t.hash&&void 0!==t.payload&&void 0!==t.v&&void 0!==t.clock}static compare(t,r){var e=n.compare(t.clock,r.clock);return 0===e?t.clock.id-1}static findChildren(t,r){for(var e=[],n=r.find(r=>s.isParent(t,r)),i=t;n;)e.push(n),i=n,n=r.find(t=>s.isParent(i,t));return e=e.sort((t,r)=>t.clock.time>r.clock.time)}}t.exports=s}).call(r,e(3).Buffer)},function(t,r,e){"use strict";const n=e(13),i=e(14),o=e(15),s=e(16);t.exports={difference:n,findUniques:i,intersection:o,isDefined:s}},function(t,r,e){"use strict";(function(t){ +var Log=function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=6)}([function(t,r,e){"use strict";class n{constructor(t,r){this.id=t,this.time=r||0}tick(){return new n(this.id,++this.time)}merge(t){return this.time=Math.max(this.time,t.time),new n(this.id,this.time)}clone(){return new n(this.id,this.time)}static compare(t,r){var e=t.time-r.time;return 0===e&&t.id!==r.id?t.idnew Error("Ipfs instance not defined");class s{static async create(t,r,e,a,h=[],u){if(!i(t))throw o();if(!i(r))throw new Error("Identity is required, cannot create entry");if(!i(e))throw new Error("Entry requires an id");if(!i(a))throw new Error("Entry requires data");if(!i(h)||!Array.isArray(h))throw new Error("'next' argument is not an array");const f={hash:null,id:e,payload:a,next:h.filter(i).map(t=>t.hash?t.hash:t),v:0,clock:u||new n(r.publicKey)},c=await r.provider.sign(r,s.toBuffer(f));return f.key=r.publicKey,f.identity=r.toJSON(),f.sig=c,f.hash=await s.toMultihash(t,f),f}static async verify(t,r){if(!t)throw new Error("Identity-provider is required, cannot verify entry");if(!s.isEntry(r))throw new Error("Invalid Log entry");if(!r.key)throw new Error("Entry doesn't have a key");if(!r.sig)throw new Error("Entry doesn't have a signature");const e=Object.assign({},{hash:null,id:r.id,payload:r.payload,next:r.next,v:r.v,clock:new n(r.clock.id,r.clock.time)});return t.verify(r.sig,r.key,s.toBuffer(e))}static toBuffer(t){return r.from(JSON.stringify(t))}static async toMultihash(t,r){if(!t)throw o();if(!(t=>t.id&&t.clock&&t.next&&t.payload&&t.v>=0)(r))throw new Error("Invalid object format, cannot generate entry multihash");const e={hash:null,id:r.id,payload:r.payload,next:r.next,v:r.v,clock:r.clock};r.key&&Object.assign(e,{key:r.key}),r.identity&&Object.assign(e,{identity:r.identity}),r.sig&&Object.assign(e,{sig:r.sig});const n=s.toBuffer(e);return(await t.dag.put(n)).toBaseEncodedString()}static async fromMultihash(t,r){if(!t)throw o();if(!r)throw new Error(`Invalid hash: ${r}`);const e=await t.dag.get(r),i=JSON.parse(e.value);let s={hash:r,id:i.id,payload:i.payload,next:i.next,v:i.v,clock:new n(i.clock.id,i.clock.time)};return i.key&&Object.assign(s,{key:i.key}),i.identity&&Object.assign(s,{identity:i.identity}),i.sig&&Object.assign(s,{sig:i.sig}),s}static isEntry(t){return t&&void 0!==t.id&&void 0!==t.next&&void 0!==t.hash&&void 0!==t.payload&&void 0!==t.v&&void 0!==t.clock}static compare(t,r){var e=n.compare(t.clock,r.clock);return 0===e?t.clock.id-1}static findChildren(t,r){for(var e=[],n=r.find(r=>s.isParent(t,r)),i=t;n;)e.push(n),i=n,n=r.find(t=>s.isParent(i,t));return e=e.sort((t,r)=>t.clock.time>r.clock.time)}}t.exports=s}).call(r,e(3).Buffer)},function(t,r,e){"use strict";const n=e(12),i=e(13),o=e(14);t.exports={difference:n,findUniques:i,isDefined:o}},function(t,r,e){"use strict";(function(t){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var n=e(9),i=e(10),o=e(11);function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,r){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function p(t,r){if(h.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var e=t.length;if(0===e)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return j(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return q(t).length;default:if(n)return j(t).length;r=(""+r).toLowerCase(),n=!0}}function y(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function g(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=h.from(r,n)),h.isBuffer(r))return 0===r.length?-1:w(t,r,e,n,i);if("number"==typeof r)return r&=255,h.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):w(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function w(t,r,e,n,i){var o,s=1,a=t.length,h=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;s=2,a/=2,h/=2,e/=2}function u(t,r){return 1===s?t[r]:t.readUInt16BE(r*s)}if(i){var c=-1;for(o=e;oa&&(e=a-h),o=e;o>=0;o--){for(var f=!0,l=0;li&&(n=i):n=i;var o=r.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=e%256,o.push(i),o.push(n);return o}(r,t.length-e),t,e,n)}function x(t,r,e){return 0===r&&e===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(r,e))}function I(t,r,e){e=Math.min(t.length,e);for(var n=[],i=r;i239?4:u>223?3:u>191?2:1;if(i+f<=e)switch(f){case 1:u<128&&(c=u);break;case 2:128==(192&(o=t[i+1]))&&(h=(31&u)<<6|63&o)>127&&(c=h);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(h=(15&u)<<12|(63&o)<<6|63&s)>2047&&(h<55296||h>57343)&&(c=h);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(h=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&h<1114112&&(c=h)}null===c?(c=65533,f=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=f}return function(t){var r=t.length;if(r<=P)return String.fromCharCode.apply(String,t);var e="",n=0;for(;nthis.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,r,e);case"utf8":case"utf-8":return I(this,r,e);case"ascii":return S(this,r,e);case"latin1":case"binary":return R(this,r,e);case"base64":return x(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},h.prototype.equals=function(t){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===h.compare(this,t)},h.prototype.inspect=function(){var t="",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},h.prototype.compare=function(t,r,e,n,i){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return-1;if(r>=e)return 1;if(r>>>=0,e>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=e-r,a=Math.min(o,s),u=this.slice(n,i),c=t.slice(r,e),f=0;fi)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return v(this,t,r,e);case"utf8":case"utf-8":return E(this,t,r,e);case"ascii":return m(this,t,r,e);case"latin1":case"binary":return _(this,t,r,e);case"base64":return b(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var P=4096;function S(t,r,e){var n="";e=Math.min(t.length,e);for(var i=r;in)&&(e=n);for(var i="",o=r;oe)throw new RangeError("Trying to access beyond buffer length")}function T(t,r,e,n,i,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw new RangeError("Index out of range")}function U(t,r,e,n){r<0&&(r=65535+r+1);for(var i=0,o=Math.min(t.length-e,2);i>>8*(n?i:1-i)}function M(t,r,e,n){r<0&&(r=4294967295+r+1);for(var i=0,o=Math.min(t.length-e,4);i>>8*(n?i:3-i)&255}function N(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function Y(t,r,e,n,o){return o||N(t,0,e,4),i.write(t,r,e,n,23,4),e+4}function D(t,r,e,n,o){return o||N(t,0,e,8),i.write(t,r,e,n,52,8),e+8}h.prototype.slice=function(t,r){var e,n=this.length;if(t=~~t,r=void 0===r?n:~~r,t<0?(t+=n)<0&&(t=0):t>n&&(t=n),r<0?(r+=n)<0&&(r=0):r>n&&(r=n),r0&&(i*=256);)n+=this[t+--r]*i;return n},h.prototype.readUInt8=function(t,r){return r||O(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,r){return r||O(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,r){return r||O(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,r){return r||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,r){return r||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,r,e){t|=0,r|=0,e||O(t,r,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*r)),n},h.prototype.readIntBE=function(t,r,e){t|=0,r|=0,e||O(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},h.prototype.readInt8=function(t,r){return r||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,r){r||O(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},h.prototype.readInt16BE=function(t,r){r||O(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},h.prototype.readInt32LE=function(t,r){return r||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,r){return r||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,r){return r||O(t,4,this.length),i.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,r){return r||O(t,4,this.length),i.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,r){return r||O(t,8,this.length),i.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,r){return r||O(t,8,this.length),i.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r|=0,e|=0,n)||T(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o=0&&(o*=256);)this[r+i]=t/o&255;return r+e},h.prototype.writeUInt8=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=255&t,r+1},h.prototype.writeUInt16LE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):U(this,t,r,!0),r+2},h.prototype.writeUInt16BE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):U(this,t,r,!1),r+2},h.prototype.writeUInt32LE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t):M(this,t,r,!0),r+4},h.prototype.writeUInt32BE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):M(this,t,r,!1),r+4},h.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);T(this,t,r,e,i-1,-i)}var o=0,s=1,a=0;for(this[r]=255&t;++o>0)-a&255;return r+e},h.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);T(this,t,r,e,i-1,-i)}var o=e-1,s=1,a=0;for(this[r+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[r+o+1]&&(a=1),this[r+o]=(t/s>>0)-a&255;return r+e},h.prototype.writeInt8=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=255&t,r+1},h.prototype.writeInt16LE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):U(this,t,r,!0),r+2},h.prototype.writeInt16BE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):U(this,t,r,!1),r+2},h.prototype.writeInt32LE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):M(this,t,r,!0),r+4},h.prototype.writeInt32BE=function(t,r,e){return t=+t,r|=0,e||T(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):M(this,t,r,!1),r+4},h.prototype.writeFloatLE=function(t,r,e){return Y(this,t,r,!0,e)},h.prototype.writeFloatBE=function(t,r,e){return Y(this,t,r,!1,e)},h.prototype.writeDoubleLE=function(t,r,e){return D(this,t,r,!0,e)},h.prototype.writeDoubleBE=function(t,r,e){return D(this,t,r,!1,e)},h.prototype.copy=function(t,r,e,n){if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r=0;--i)t[i+r]=this[i+e];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(o=r;o55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function q(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,r,e,n){for(var i=0;i=r.length||i>=t.length);++i)r[i+e]=t[i];return i}}).call(r,e(8))},function(t,r,e){"use strict";t.exports=((t,r,e)=>new Promise((n,i)=>{if(e=Object.assign({concurrency:1/0},e),"function"!=typeof r)throw new TypeError("Mapper function is required");const o=e.concurrency;if(!("number"==typeof o&&o>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${o}\` (${typeof o})`);const s=[],a=t[Symbol.iterator]();let h=!1,u=!1,c=0,f=0;const l=()=>{if(h)return;const t=a.next(),e=f;if(f++,t.done)return u=!0,void(0===c&&n(s));c++,Promise.resolve(t.value).then(t=>r(t,e)).then(t=>{s[e]=t,c--,l()},t=>{h=!0,i(t)})};for(let t=0;tnew Error("IPFS instance not defined"),LogNotDefinedError:()=>new Error("Log instance not defined"),NotALogError:()=>new Error("Given argument is not an instance of Log")}},function(t,r,e){"use strict";t.exports=(t=>void 0!==t&&null!==t)},function(t,r,e){"use strict";(function(r){const n=e(4),i=e(12),o=e(1),s=e(17),a=e(5),h=e(0),{LastWriteWins:u}=e(20),c=e(21),f=e(22),{isDefined:l,findUniques:d}=e(2),p=()=>(new Date).getTime().toString(),y=t=>t.hash,g=(t,r)=>t.concat(r),w=t=>t.next,v=(t,r)=>Math.max(t,r.clock.time),E=(t,r)=>(t[r.hash]=r,t);class m extends i{constructor(t,r,e,n,i,o,s){if(!l(t))throw a.IPFSNotDefinedError();if(!l(r))throw new Error("Access controller is required");if(!l(e))throw new Error("Identity is required");if(l(i)&&!Array.isArray(i))throw new Error("'entries' argument must be an array of Entry instances");if(l(o)&&!Array.isArray(o))throw new Error("'heads' argument must be an array");super(),this._storage=t,this._id=n||p(),this._access=r,this._identity=e,i=i||[],this._entryIndex=i.reduce(E,{}),o=o||m.findHeads(i),this._headsIndex=o.reduce(E,{}),this._nextsIndex={};i.forEach(t=>t.next.forEach(r=>this._nextsIndex[r]=t.hash)),this._length=i?i.length:0;const u=Math.max(s?s.time:0,this.heads.reduce(v,0));this._clock=new h(this._identity.publicKey,u)}get id(){return this._id}get clock(){return this._clock}get length(){return this._length}get values(){return Object.values(this._entryIndex).sort(u)}get heads(){return Object.values(this._headsIndex)||[]}get tails(){return m.findTails(this.values)}get tailHashes(){return m.findTailHashes(this.values)}get(t){return this._entryIndex[t]}has(t){return void 0!==this._entryIndex[t.hash||t]}traverse(t,r){let e=t.map(w).reduce(g,[]),n={},i={},o=0;const s=t=>{i[t]||n[t]||(e.push(t),n[t]=!0)};for(t.forEach(t=>{i[t.hash]=t.hash,n[t.hash]=!0,o++});e.length>0&&othis._nextsIndex[t]=i.hash),this._headsIndex={},this._headsIndex[i.hash]=i,this._length++,i}async join(t,r=-1){if(!l(t))throw a.LogNotDefinedError();if(!m.isLog(t))throw a.NotALogError();const e=m.difference(t,this),i=this._identity.provider,s=Object.values(e);await n(s,async t=>{if(!await this._access.canAppend(t,i))throw new Error("Append not permitted")},{concurrency:1}),await n(s,async t=>{const r=await o.verify(i,t),e=t.identity?t.identity.publicKey:t.key;if(!r)throw new Error(`Could not validate signature "${t.sig}" for entry "${t.hash}" and key "${e}"`)},{concurrency:1}),this._entryIndex=Object.assign(this._entryIndex,e);if(Object.values(e).forEach(t=>t.next.forEach(r=>this._nextsIndex[r]=t.hash)),this._length+=Object.values(e).length,r>-1){let t=this.values;t=t.slice(-r),this._entryIndex=t.reduce(E,{}),this._length=Object.values(this._entryIndex).length}const u=Object.values(e).map(w).reduce(g,[]),c=m.findHeads(Object.values(Object.assign({},this._headsIndex,t._headsIndex))).filter(t=>!u.find(r=>r===t.hash)).filter(t=>!this._nextsIndex[t.hash]).reduce(E,{});this._headsIndex=c;const f=Object.values(this._headsIndex).reduce(v,0);return this._clock=new h(this.clock.id,Math.max(this.clock.time,f)),this}toJSON(){return{id:this.id,heads:this.heads.map(y)}}toSnapshot(){return{id:this.id,heads:this.heads,values:this.values}}toBuffer(){return r.from(JSON.stringify(this.toJSON()))}toString(t){return this.values.slice().reverse().map((r,e)=>{const n=o.findChildren(r,this.values).length;let i=new Array(Math.max(n-1,0));return i=n>1?i.fill(" "):i,(i=n>0?i.concat(["└─"]):i).join("")+(t?t(r.payload):r.payload)}).join("\n")}static isLog(t){return void 0!==t.id&&void 0!==t.heads&&void 0!==t._entryIndex}toMultihash(){return s.toMultihash(this._storage,this)}static async fromMultihash(t,r,e,n,i=-1,o,h){if(!l(t))throw a.IPFSNotDefinedError();if(!l(n))throw new Error(`Invalid hash: ${n}`);const u=await s.fromMultihash(t,n,i,o,h);return new m(t,r,e,u.id,u.values,u.heads,u.clock)}static async fromEntryHash(t,r,e,n,i,o=-1,h,u){if(!l(t))throw a.IPFSNotDefinedError();if(!l(n))throw new Error("'hash' must be defined");const c=await s.fromEntryHash(t,n,i,o,h,u);return new m(t,r,e,i,c.values)}static async fromJSON(t,r,e,n,i=-1,o,h){if(!l(t))throw a.IPFSNotDefinedError();const u=await s.fromJSON(t,n,i,o,h);return new m(t,r,e,u.id,u.values)}static async fromEntry(t,r,e,n,i=-1,o,h){if(!l(t))throw a.IPFSNotDefinedError();if(!l(n))throw new Error("'sourceEntries' must be defined");const u=await s.fromEntry(t,n,i,o,h);return new m(t,r,e,u.id,u.values)}static findHeads(t){var r=t.reduce((t,r,e,n)=>{return r.next.forEach(e=>t[e]=r.hash),t},{});return t.filter(t=>void 0===r[t.hash]).sort((t,r)=>t.clock.id>r.clock.id)}static findTails(t){var r={},e=[],n={},i=[];t.forEach(t=>{0===t.next.length&&e.push(t);t.next.forEach(e=>{r[e]||(r[e]=[]),r[e].push(t)}),i=i.concat(t.next),n[t.hash]=!0});const s=i.filter(t=>void 0===n[t]).map(t=>r[t]).reduce((t,r,e,n)=>t.concat(d(r,"hash")),[]).concat(e);return d(s,"hash").sort(o.compare)}static findTailHashes(t){var r={};return t.forEach(t=>r[t.hash]=!0),t.reduce((t,e,n,i)=>{return e.next.reverse().forEach(e=>{void 0===r[e]&&t.splice(0,0,e)}),t},[])}static difference(t,r){let e=Object.keys(t._headsIndex),n={},i={};const o=t=>{n[t]||r.get(t)||(e.push(t),n[t]=!0)};for(;e.length>0;){const s=e.shift(),a=t.get(s);a&&!r.get(s)&&a.id===r.id&&(i[a.hash]=a,n[a.hash]=!0,a.next.forEach(o))}return i}}t.exports=m,t.exports.AccessController=c,t.exports.IdentityProvider=f}).call(r,e(3).Buffer)},function(t,r){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(e=window)}t.exports=e},function(t,r,e){"use strict";r.byteLength=function(t){var r=u(t),e=r[0],n=r[1];return 3*(e+n)/4-n},r.toByteArray=function(t){for(var r,e=u(t),n=e[0],s=e[1],a=new o(function(t,r,e){return 3*(r+e)/4-e}(0,n,s)),h=0,c=s>0?n-4:n,f=0;f>16&255,a[h++]=r>>8&255,a[h++]=255&r;2===s&&(r=i[t.charCodeAt(f)]<<2|i[t.charCodeAt(f+1)]>>4,a[h++]=255&r);1===s&&(r=i[t.charCodeAt(f)]<<10|i[t.charCodeAt(f+1)]<<4|i[t.charCodeAt(f+2)]>>2,a[h++]=r>>8&255,a[h++]=255&r);return a},r.fromByteArray=function(t){for(var r,e=t.length,i=e%3,o=[],s=0,a=e-i;sa?a:s+16383));1===i?(r=t[e-1],o.push(n[r>>2]+n[r<<4&63]+"==")):2===i&&(r=(t[e-2]<<8)+t[e-1],o.push(n[r>>10]+n[r>>4&63]+n[r<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,h=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var e=t.indexOf("=");return-1===e&&(e=r),[e,e===r?0:4-e%4]}function c(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function f(t,r,e){for(var n,i=[],o=r;o>1,c=-7,f=e?i-1:0,l=e?-1:1,d=t[r+f];for(f+=l,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+t[r+f],f+=l,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[r+f],f+=l,c-=8);if(0===o)o=1-u;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=u}return(d?-1:1)*s*Math.pow(2,o-n)},r.write=function(t,r,e,n,i,o){var s,a,h,u=8*o-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,y=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(a=isNaN(r)?1:0,s=c):(s=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-s))<1&&(s--,h*=2),(r+=s+f>=1?l/h:l*Math.pow(2,1-f))*h>=2&&(s++,h/=2),s+f>=c?(a=0,s=c):s+f>=1?(a=(r*h-1)*Math.pow(2,i),s+=f):(a=r*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[e+d]=255&s,d+=p,s/=256,u-=8);t[e+d-p]|=128*y}},function(t,r){var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},function(t,r,e){"use strict";t.exports=class{constuctor(t){}append(t){}merge(t){}get(t){}has(t){}get values(){}get length(){}}},function(t,r,e){"use strict";t.exports=function(t,r,e){var n={},i={};return t.forEach(t=>i[e?t[e]:t]=!0),r.reduce((t,r)=>{var o=void 0!==i[e?r[e]:r],s=void 0!==n[e?r[e]:r];return o||s||(t.push(r),n[e?r[e]:r]=!0),t},[])}},function(t,r,e){"use strict";t.exports=function(t,r){let e={};return t.forEach(t=>e[r?t[r]:t]=t),Object.keys(e).map(t=>e[t])}},function(t,r,e){"use strict";t.exports=function(t,r,e){var n={},i={};return t.forEach(t=>i[e?t[e]:t]=!0),r.reduce((t,r)=>{var o=void 0!==i[e?r[e]:r],s=void 0!==n[e?r[e]:r];return o&&!s&&(t.push(r),n[e?r[e]:r]=!0),t},[])}},function(t,r,e){"use strict";t.exports=(t=>void 0!==t&&null!==t)},function(t,r,e){"use strict";const n=e(1),i=e(18),o=e(0),s=e(5),{isDefined:a,findUniques:h,difference:u}=e(2),c=(t,r)=>t.slice(t.length-r,t.length);t.exports=class{static async toMultihash(t,r){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw s.LogNotDefinedError();if(r.values.length<1)throw new Error("Can't serialize an empty log");return(await t.object.put(r.toBuffer())).toJSON().multihash}static async fromMultihash(t,r,e=-1,h,u){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw new Error(`Invalid hash: ${r}`);const c=await t.object.get(r,{enc:"base58"}),f=JSON.parse(c.toJSON().data);if(!f.heads||!f.id)throw s.NotALogError();const l=await i.fetchAll(t,f.heads,e,h,null,u),d=l.reduce((t,r)=>r.clock.time>t.time?new o(r.clock.id,r.clock.time):t,new o(f.id)),p=l.slice().sort(n.compare),y=p.filter(t=>f.heads.includes(t.hash));return{id:f.id,values:p,heads:y,clock:d}}static async fromEntryHash(t,r,e,n=-1,o,h){if(!a(t))throw s.IpfsNotDefinedError();if(!a(r))throw new Error("'entryHash' must be defined");n=n>-1?Math.max(n,1):n;const u=o,f=await i.fetchParallel(t,[r],n,u,null,null,h);return{values:n>-1?c(f,n):f}}static async fromJSON(t,r,e=-1,o,h){if(!a(t))throw s.IPFSNotDefinedError();const u=r.heads.map(t=>t.hash),c=(await i.fetchParallel(t,u,e,[],16,o,h)).slice().sort(n.compare);return{id:r.id,values:c,heads:r.heads}}static async fromEntry(t,r,e=-1,o,c){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw new Error("'sourceEntries' must be defined");if(!Array.isArray(r)&&!n.isEntry(r))throw new Error("'sourceEntries' argument must be an array of Entry instances or a single Entry");Array.isArray(r)||(r=[r]),e=e>-1?Math.max(e,r.length):e;const f=o?o.map(t=>t.hash?t.hash:t):o,l=r.map(t=>t.hash),d=await i.fetchParallel(t,l,e,f,null,null,c),p=r.concat(d),y=h(p,"hash").sort(n.compare),g=y.slice(e>-1?-e:-y.length),w=((t,r)=>{var e=t.slice(r.length,t.length);return r.concat(e)})(g,u(g,r,"hash"));return{id:w[w.length-1].id,values:w}}}},function(t,r,e){"use strict";const n=e(19),i=e(4),o=e(1);class s{static async fetchParallel(t,r,e,n=[],o,a,h){const u=(t,r)=>t.concat(r);return o=Math.max(o||r.length,1),(t=>t.reduce(u,[]))(await i(r,r=>s.fetchAll(t,r,e,n,a,h),{concurrency:o}))}static async fetchAll(t,r,e,i=[],s=null,a){let h=[],u={},c=Array.isArray(r)?r.slice():[r];const f=t=>c.push(t);(i=i&&Array.isArray(i)?i:[]).forEach(t=>u[t.hash]=t);return await n(()=>c.length>0&&(h.length{const r=c.shift();return u[r]?Promise.resolve():new Promise(async(e,n)=>{const i=s?setTimeout(()=>{console.warn(`Warning: Couldn't fetch entry '${r}', request timed out (${s}ms)`),e()},s):null;try{(t=>{clearTimeout(i),o.isEntry(t)&&(t.next.forEach(f),h.push(t),u[r]=t,a&&a(r,t,h.length))})(await o.fromMultihash(t,r)),e()}catch(t){n(t)}})}),h}}t.exports=s},function(t,r,e){"use strict";const n=t=>new Promise(r=>{r(t())});t.exports=((t,r)=>n(function e(){if(t())return n(r).then(e)}))},function(t,r,e){"use strict";const n=e(0);function i(t,r,e){const i=n.compare(t.clock,r.clock);return 0===i?e(t,r):i}function o(t,r,e){return t.clock.id===r.clock.id?e(t,r):t.clock.idt,n=(t,r)=>o(t,r,e);return((t,r)=>i(t,r,n))(t,r)}},function(t,r,e){"use strict";t.exports=class{async canAppend(t,r){return!0}}},function(t,r,e){"use strict";const n=e(23);t.exports=n},function(t,r,e){"use strict";const n=e(6),i=e(24),o="orbitdb";class s{constructor(t){if(!n(t))throw new Error("Keystore is required");this._keystore=t}async createIdentity(t,r,e){const s=await this._keystore.getKey(t)||await this._keystore.createKey(t);r=n(r)?r:o,e=n(e)?e:async(t,r)=>await this._keystore.sign(s,r);const a=await this._keystore.sign(s,t),h=s.getPublic("hex"),u=await e(t,h+a);return new i(t,h,a,u,r,this)}static async createIdentity(t,r,e,n){const i=new s(t);return await i.createIdentity(r,e,n)}static async verifyIdentity(t,r){return r(t)}async sign(t,r){const e=await this._keystore.getKey(t.id);if(!e)throw new Error("Private signing key not found from Keystore");return await this._keystore.sign(e,r)}async verify(t,r,e){return this._keystore.verify(t,r,e)}}t.exports=s},function(t,r,e){"use strict";const n=e(6);t.exports=class{constructor(t,r,e,i,o,s){if(!n(t))throw new Error("Identity id is required");if(!n(r))throw new Error("Invalid public key");if(!n(e))throw new Error("Signature of the id (idSignature) is required");if(!n(i))throw new Error("Signature of (publicKey + idSignature) is required");if(!n(o))throw new Error("Identity type is required");if(!n(s))throw new Error("Identity provider is required");this._id=t,this._publicKey=r,this._signatures=Object.assign({},{id:e},{publicKey:i}),this._type=o,this._provider=s}get id(){return this._id}get publicKey(){return this._publicKey}get signatures(){return this._signatures}get type(){return this._type}get provider(){return this._provider}toJSON(){return{id:this._id,publicKey:this._publicKey,signatures:this._signatures,type:this._type}}}}]); \ No newline at end of file +var n=e(8),i=e(9),o=e(10);function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,r){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function p(t,r){if(h.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var e=t.length;if(0===e)return 0;for(var n=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return j(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return F(t).length;default:if(n)return j(t).length;r=(""+r).toLowerCase(),n=!0}}function y(t,r,e){var n=t[r];t[r]=t[e],t[e]=n}function g(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}else if(e<0){if(!i)return-1;e=0}if("string"==typeof r&&(r=h.from(r,n)),h.isBuffer(r))return 0===r.length?-1:w(t,r,e,n,i);if("number"==typeof r)return r&=255,h.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):w(t,[r],e,n,i);throw new TypeError("val must be string, number or Buffer")}function w(t,r,e,n,i){var o,s=1,a=t.length,h=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return-1;s=2,a/=2,h/=2,e/=2}function u(t,r){return 1===s?t[r]:t.readUInt16BE(r*s)}if(i){var f=-1;for(o=e;oa&&(e=a-h),o=e;o>=0;o--){for(var c=!0,l=0;li&&(n=i):n=i;var o=r.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=e%256,o.push(i),o.push(n);return o}(r,t.length-e),t,e,n)}function x(t,r,e){return 0===r&&e===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(r,e))}function P(t,r,e){e=Math.min(t.length,e);for(var n=[],i=r;i239?4:u>223?3:u>191?2:1;if(i+c<=e)switch(c){case 1:u<128&&(f=u);break;case 2:128==(192&(o=t[i+1]))&&(h=(31&u)<<6|63&o)>127&&(f=h);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(h=(15&u)<<12|(63&o)<<6|63&s)>2047&&(h<55296||h>57343)&&(f=h);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(h=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&h<1114112&&(f=h)}null===f?(f=65533,c=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=c}return function(t){var r=t.length;if(r<=I)return String.fromCharCode.apply(String,t);var e="",n=0;for(;nthis.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,r,e);case"utf8":case"utf-8":return P(this,r,e);case"ascii":return R(this,r,e);case"latin1":case"binary":return S(this,r,e);case"base64":return x(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,r,e);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},h.prototype.equals=function(t){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===h.compare(this,t)},h.prototype.inspect=function(){var t="",e=r.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,e).match(/.{2}/g).join(" "),this.length>e&&(t+=" ... ")),""},h.prototype.compare=function(t,r,e,n,i){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return-1;if(r>=e)return 1;if(r>>>=0,e>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=e-r,a=Math.min(o,s),u=this.slice(n,i),f=t.slice(r,e),c=0;ci)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return v(this,t,r,e);case"utf8":case"utf-8":return E(this,t,r,e);case"ascii":return m(this,t,r,e);case"latin1":case"binary":return _(this,t,r,e);case"base64":return b(this,t,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,r,e);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function R(t,r,e){var n="";e=Math.min(t.length,e);for(var i=r;in)&&(e=n);for(var i="",o=r;oe)throw new RangeError("Trying to access beyond buffer length")}function O(t,r,e,n,i,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw new RangeError("Index out of range")}function U(t,r,e,n){r<0&&(r=65535+r+1);for(var i=0,o=Math.min(t.length-e,2);i>>8*(n?i:1-i)}function M(t,r,e,n){r<0&&(r=4294967295+r+1);for(var i=0,o=Math.min(t.length-e,4);i>>8*(n?i:3-i)&255}function D(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function Y(t,r,e,n,o){return o||D(t,0,e,4),i.write(t,r,e,n,23,4),e+4}function C(t,r,e,n,o){return o||D(t,0,e,8),i.write(t,r,e,n,52,8),e+8}h.prototype.slice=function(t,r){var e,n=this.length;if(t=~~t,r=void 0===r?n:~~r,t<0?(t+=n)<0&&(t=0):t>n&&(t=n),r<0?(r+=n)<0&&(r=0):r>n&&(r=n),r0&&(i*=256);)n+=this[t+--r]*i;return n},h.prototype.readUInt8=function(t,r){return r||T(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,r){return r||T(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,r){return r||T(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,r){return r||T(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,r){return r||T(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,r,e){t|=0,r|=0,e||T(t,r,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*r)),n},h.prototype.readIntBE=function(t,r,e){t|=0,r|=0,e||T(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},h.prototype.readInt8=function(t,r){return r||T(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,r){r||T(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},h.prototype.readInt16BE=function(t,r){r||T(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},h.prototype.readInt32LE=function(t,r){return r||T(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,r){return r||T(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,r){return r||T(t,4,this.length),i.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,r){return r||T(t,4,this.length),i.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,r){return r||T(t,8,this.length),i.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,r){return r||T(t,8,this.length),i.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r|=0,e|=0,n)||O(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o=0&&(o*=256);)this[r+i]=t/o&255;return r+e},h.prototype.writeUInt8=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=255&t,r+1},h.prototype.writeUInt16LE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):U(this,t,r,!0),r+2},h.prototype.writeUInt16BE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):U(this,t,r,!1),r+2},h.prototype.writeUInt32LE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t):M(this,t,r,!0),r+4},h.prototype.writeUInt32BE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):M(this,t,r,!1),r+4},h.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);O(this,t,r,e,i-1,-i)}var o=0,s=1,a=0;for(this[r]=255&t;++o>0)-a&255;return r+e},h.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r|=0,!n){var i=Math.pow(2,8*e-1);O(this,t,r,e,i-1,-i)}var o=e-1,s=1,a=0;for(this[r+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[r+o+1]&&(a=1),this[r+o]=(t/s>>0)-a&255;return r+e},h.prototype.writeInt8=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=255&t,r+1},h.prototype.writeInt16LE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8):U(this,t,r,!0),r+2},h.prototype.writeInt16BE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=255&t):U(this,t,r,!1),r+2},h.prototype.writeInt32LE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):M(this,t,r,!0),r+4},h.prototype.writeInt32BE=function(t,r,e){return t=+t,r|=0,e||O(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t):M(this,t,r,!1),r+4},h.prototype.writeFloatLE=function(t,r,e){return Y(this,t,r,!0,e)},h.prototype.writeFloatBE=function(t,r,e){return Y(this,t,r,!1,e)},h.prototype.writeDoubleLE=function(t,r,e){return C(this,t,r,!0,e)},h.prototype.writeDoubleBE=function(t,r,e){return C(this,t,r,!1,e)},h.prototype.copy=function(t,r,e,n){if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r=0;--i)t[i+r]=this[i+e];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(o=r;o55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320)}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return o}function F(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function q(t,r,e,n){for(var i=0;i=r.length||i>=t.length);++i)r[i+e]=t[i];return i}}).call(r,e(7))},function(t,r,e){"use strict";t.exports=((t,r,e)=>new Promise((n,i)=>{if(e=Object.assign({concurrency:1/0},e),"function"!=typeof r)throw new TypeError("Mapper function is required");const o=e.concurrency;if(!("number"==typeof o&&o>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${o}\` (${typeof o})`);const s=[],a=t[Symbol.iterator]();let h=!1,u=!1,f=0,c=0;const l=()=>{if(h)return;const t=a.next(),e=c;if(c++,t.done)return u=!0,void(0===f&&n(s));f++,Promise.resolve(t.value).then(t=>r(t,e)).then(t=>{s[e]=t,f--,l()},t=>{h=!0,i(t)})};for(let t=0;tnew Error("IPFS instance not defined"),LogNotDefinedError:()=>new Error("Log instance not defined"),NotALogError:()=>new Error("Given argument is not an instance of Log"),CannotJoinWithDifferentId:()=>new Error("Can't join logs with different IDs")}},function(t,r,e){"use strict";(function(r){const n=e(4),i=e(11),o=e(1),s=e(15),a=e(5),h=e(0),{LastWriteWins:u}=e(18),f=e(19),{isDefined:c,findUniques:l}=e(2),d=()=>(new Date).getTime().toString(),p=t=>t.hash,y=(t,r)=>t.concat(r),g=t=>t.next,w=(t,r)=>Math.max(t,r.clock.time),v=(t,r)=>(t[r.hash]=r,t);class E extends i{constructor(t,r,e,n,i,o,s){if(!c(t))throw a.IPFSNotDefinedError();if(!c(r))throw new Error("Access controller is required");if(!c(e))throw new Error("Identity is required");if(c(i)&&!Array.isArray(i))throw new Error("'entries' argument must be an array of Entry instances");if(c(o)&&!Array.isArray(o))throw new Error("'heads' argument must be an array");super(),this._storage=t,this._id=n||d(),this._access=r,this._identity=e,i=i||[],this._entryIndex=i.reduce(v,{}),o=o||E.findHeads(i),this._headsIndex=o.reduce(v,{}),this._nextsIndex={};i.forEach(t=>t.next.forEach(r=>this._nextsIndex[r]=t.hash)),this._length=i.length;const u=Math.max(s?s.time:0,this.heads.reduce(w,0));this._clock=new h(this._identity.publicKey,u)}get id(){return this._id}get clock(){return this._clock}get length(){return this._length}get values(){return Object.values(this.traverse(this.heads)).reverse()}get heads(){return Object.values(this._headsIndex).sort(u).reverse()}get tails(){return E.findTails(this.values)}get tailHashes(){return E.findTailHashes(this.values)}get(t){return this._entryIndex[t]}has(t){return void 0!==this._entryIndex[t.hash||t]}traverse(t,r=-1){let e=t.sort(u).reverse(),n={},i={},o=0;const s=t=>this.get(t),a=t=>{t&&!n[t.hash]&&(e=[t,...e].sort(u).reverse(),n[t.hash]=!0)};for(;e.length>0&&(-1===r||othis._nextsIndex[t]=s.hash),this._headsIndex={},this._headsIndex[s.hash]=s,this._length++,s}async join(t,r=-1){if(!c(t))throw a.LogNotDefinedError();if(!E.isLog(t))throw a.NotALogError();if(this.id!==t.id)return;const e=E.difference(t,this),i=this._identity.provider,s=Object.values(e);await n(s,async t=>{if(!await this._access.canAppend(t,i))throw new Error(`Could not append entry, key "${t.identity.id}" is not allowed to write to the log`)},{concurrency:1}),await n(s,async t=>{const r=await o.verify(i,t),e=t.identity?t.identity.publicKey:t.key;if(!r)throw new Error(`Could not validate signature "${t.sig}" for entry "${t.hash}" and key "${e}"`)},{concurrency:1});Object.values(e).forEach(t=>{this.get(t.hash)||this._length++,t.next.forEach(r=>this._nextsIndex[r]=t.hash)}),this._entryIndex=Object.assign(this._entryIndex,e);const u=Object.values(e).map(g).reduce(y,[]),f=E.findHeads(Object.values(Object.assign({},this._headsIndex,t._headsIndex))).filter(t=>!u.find(r=>r===t.hash)).filter(t=>!this._nextsIndex[t.hash]).reduce(v,{});if(this._headsIndex=f,r>-1){let t=this.values;t=t.slice(-r),this._entryIndex=t.reduce(v,{}),this._headsIndex=E.findHeads(t),this._length=Object.values(this._entryIndex).length}const l=Object.values(this._headsIndex).reduce(w,0);return this._clock=new h(this.clock.id,Math.max(this.clock.time,l)),this}toJSON(){return{id:this.id,heads:this.heads.sort(u).reverse().map(p)}}toSnapshot(){return{id:this.id,heads:this.heads,values:this.values}}toBuffer(){return r.from(JSON.stringify(this.toJSON()))}toString(t){return this.values.slice().reverse().map((r,e)=>{const n=o.findChildren(r,this.values).length;let i=new Array(Math.max(n-1,0));return i=n>1?i.fill(" "):i,(i=n>0?i.concat(["└─"]):i).join("")+(t?t(r.payload):r.payload)}).join("\n")}static isLog(t){return void 0!==t.id&&void 0!==t.heads&&void 0!==t._entryIndex}toMultihash(){return s.toMultihash(this._storage,this)}static async fromMultihash(t,r,e,n,i=-1,o,h){if(!c(t))throw a.IPFSNotDefinedError();if(!c(n))throw new Error(`Invalid hash: ${n}`);const u=await s.fromMultihash(t,n,i,o,h);return new E(t,r,e,u.id,u.values,u.heads,u.clock)}static async fromEntryHash(t,r,e,n,i,o=-1,h,u){if(!c(t))throw a.IPFSNotDefinedError();if(!c(n))throw new Error("'hash' must be defined");const f=await s.fromEntryHash(t,n,i,o,h,u);return new E(t,r,e,i,f.values)}static async fromJSON(t,r,e,n,i=-1,o,h){if(!c(t))throw a.IPFSNotDefinedError();const u=await s.fromJSON(t,n,i,o,h);return new E(t,r,e,u.id,u.values)}static async fromEntry(t,r,e,n,i=-1,o,h){if(!c(t))throw a.IPFSNotDefinedError();if(!c(n))throw new Error("'sourceEntries' must be defined");const u=await s.fromEntry(t,n,i,o,h);return new E(t,r,e,u.id,u.values)}static findHeads(t){var r=t.reduce((t,r,e,n)=>{return r.next.forEach(e=>t[e]=r.hash),t},{});return t.filter(t=>void 0===r[t.hash]).sort((t,r)=>t.clock.id>r.clock.id)}static findTails(t){var r={},e=[],n={},i=[];t.forEach(t=>{0===t.next.length&&e.push(t);t.next.forEach(e=>{r[e]||(r[e]=[]),r[e].push(t)}),i=i.concat(t.next),n[t.hash]=!0});const s=i.filter(t=>void 0===n[t]).map(t=>r[t]).reduce((t,r,e,n)=>t.concat(l(r,"hash")),[]).concat(e);return l(s,"hash").sort(o.compare)}static findTailHashes(t){var r={};return t.forEach(t=>r[t.hash]=!0),t.reduce((t,e,n,i)=>{return e.next.reverse().forEach(e=>{void 0===r[e]&&t.splice(0,0,e)}),t},[])}static difference(t,r){let e=Object.keys(t._headsIndex),n={},i={};const o=t=>{n[t]||r.get(t)||(e.push(t),n[t]=!0)};for(;e.length>0;){const s=e.shift(),a=t.get(s);a&&!r.get(s)&&a.id===r.id&&(i[a.hash]=a,n[a.hash]=!0,a.next.forEach(o))}return i}}t.exports=E,t.exports.AccessController=f}).call(r,e(3).Buffer)},function(t,r){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(e=window)}t.exports=e},function(t,r,e){"use strict";r.byteLength=function(t){var r=u(t),e=r[0],n=r[1];return 3*(e+n)/4-n},r.toByteArray=function(t){for(var r,e=u(t),n=e[0],s=e[1],a=new o(function(t,r,e){return 3*(r+e)/4-e}(0,n,s)),h=0,f=s>0?n-4:n,c=0;c>16&255,a[h++]=r>>8&255,a[h++]=255&r;2===s&&(r=i[t.charCodeAt(c)]<<2|i[t.charCodeAt(c+1)]>>4,a[h++]=255&r);1===s&&(r=i[t.charCodeAt(c)]<<10|i[t.charCodeAt(c+1)]<<4|i[t.charCodeAt(c+2)]>>2,a[h++]=r>>8&255,a[h++]=255&r);return a},r.fromByteArray=function(t){for(var r,e=t.length,i=e%3,o=[],s=0,a=e-i;sa?a:s+16383));1===i?(r=t[e-1],o.push(n[r>>2]+n[r<<4&63]+"==")):2===i&&(r=(t[e-2]<<8)+t[e-1],o.push(n[r>>10]+n[r>>4&63]+n[r<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,h=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var e=t.indexOf("=");return-1===e&&(e=r),[e,e===r?0:4-e%4]}function f(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function c(t,r,e){for(var n,i=[],o=r;o>1,f=-7,c=e?i-1:0,l=e?-1:1,d=t[r+c];for(c+=l,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=256*o+t[r+c],c+=l,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=n;f>0;s=256*s+t[r+c],c+=l,f-=8);if(0===o)o=1-u;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=u}return(d?-1:1)*s*Math.pow(2,o-n)},r.write=function(t,r,e,n,i,o){var s,a,h,u=8*o-i-1,f=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,y=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(a=isNaN(r)?1:0,s=f):(s=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-s))<1&&(s--,h*=2),(r+=s+c>=1?l/h:l*Math.pow(2,1-c))*h>=2&&(s++,h/=2),s+c>=f?(a=0,s=f):s+c>=1?(a=(r*h-1)*Math.pow(2,i),s+=c):(a=r*Math.pow(2,c-1)*Math.pow(2,i),s=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[e+d]=255&s,d+=p,s/=256,u-=8);t[e+d-p]|=128*y}},function(t,r){var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},function(t,r,e){"use strict";t.exports=class{constructor(t){}append(t){}merge(t){}get(t){}has(t){}get values(){}get length(){}}},function(t,r,e){"use strict";t.exports=function(t,r,e){var n={},i={};return t.forEach(t=>i[e?t[e]:t]=!0),r.reduce((t,r)=>{var o=void 0!==i[e?r[e]:r],s=void 0!==n[e?r[e]:r];return o||s||(t.push(r),n[e?r[e]:r]=!0),t},[])}},function(t,r,e){"use strict";t.exports=function(t,r){let e={};return t.forEach(t=>e[r?t[r]:t]=t),Object.keys(e).map(t=>e[t])}},function(t,r,e){"use strict";t.exports=(t=>void 0!==t&&null!==t)},function(t,r,e){"use strict";const n=e(1),i=e(16),o=e(0),s=e(5),{isDefined:a,findUniques:h,difference:u}=e(2),f=(t,r)=>t.slice(t.length-r,t.length);t.exports=class{static async toMultihash(t,r){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw s.LogNotDefinedError();if(r.values.length<1)throw new Error("Can't serialize an empty log");return(await t.dag.put(r.toBuffer())).toBaseEncodedString()}static async fromMultihash(t,r,e=-1,h,u){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw new Error(`Invalid hash: ${r}`);const f=await t.dag.get(r),c=JSON.parse(f.value);if(!c.heads||!c.id)throw s.NotALogError();const l=await i.fetchAll(t,c.heads,e,h,null,u),d=l.reduce((t,r)=>r.clock.time>t.time?new o(r.clock.id,r.clock.time):t,new o(c.id)),p=l.slice().sort(n.compare),y=p.filter(t=>c.heads.includes(t.hash));return{id:c.id,values:p,heads:y,clock:d}}static async fromEntryHash(t,r,e,n=-1,o,h){if(!a(t))throw s.IpfsNotDefinedError();if(!a(r))throw new Error("'entryHash' must be defined");const u=Array.isArray(r)?r:[r];n=n>-1?Math.max(n,1):n;const c=o,l=await i.fetchParallel(t,u,n,c,null,null,h);return{values:n>-1?f(l,n):l}}static async fromJSON(t,r,e=-1,o,h){if(!a(t))throw s.IPFSNotDefinedError();const u=r.heads.map(t=>t.hash),f=(await i.fetchParallel(t,u,e,[],16,o,h)).slice().sort(n.compare);return{id:r.id,values:f,heads:r.heads}}static async fromEntry(t,r,e=-1,o,f){if(!a(t))throw s.IPFSNotDefinedError();if(!a(r))throw new Error("'sourceEntries' must be defined");if(!Array.isArray(r)&&!n.isEntry(r))throw new Error("'sourceEntries' argument must be an array of Entry instances or a single Entry");Array.isArray(r)||(r=[r]),e=e>-1?Math.max(e,r.length):e;const c=o?o.map(t=>t.hash?t.hash:t):o,l=r.map(t=>t.hash),d=await i.fetchParallel(t,l,e,c,null,null,f),p=r.concat(d),y=h(p,"hash").sort(n.compare),g=y.slice(e>-1?-e:-y.length),w=((t,r)=>{var e=t.slice(r.length,t.length);return r.concat(e)})(g,u(g,r,"hash"));return{id:w[w.length-1].id,values:w}}}},function(t,r,e){"use strict";const n=e(17),i=e(4),o=e(1);class s{static async fetchParallel(t,r,e,n=[],o,a,h){const u=(t,r)=>t.concat(r);return o=Math.max(o||r.length,1),(t=>t.reduce(u,[]))(await i(r,r=>s.fetchAll(t,r,e,n,a,h),{concurrency:o}))}static async fetchAll(t,r,e,i=[],s=null,a){let h=[],u={},f=Array.isArray(r)?r.slice():[r];const c=t=>f.push(t);(i=i&&Array.isArray(i)?i:[]).forEach(t=>u[t.hash]=t);return await n(()=>f.length>0&&(h.length{const r=f.shift();return u[r]?Promise.resolve():new Promise(async(e,n)=>{const i=s?setTimeout(()=>{console.warn(`Warning: Couldn't fetch entry '${r}', request timed out (${s}ms)`),e()},s):null;try{(t=>{clearTimeout(i),o.isEntry(t)&&(t.next.forEach(c),h.push(t),u[r]=t,a&&a(r,t,h.length))})(await o.fromMultihash(t,r)),e()}catch(t){n(t)}})}),h}}t.exports=s},function(t,r,e){"use strict";const n=t=>new Promise(r=>{r(t())});t.exports=((t,r)=>n(function e(){if(t())return n(r).then(e)}))},function(t,r,e){"use strict";const n=e(0);function i(t,r,e){const i=n.compare(t.clock,r.clock);return 0===i?e(t,r):i}function o(t,r,e){return t.clock.id===r.clock.id?e(t,r):t.clock.idt,n=(t,r)=>o(t,r,e);return((t,r)=>i(t,r,n))(t,r)}},function(t,r,e){"use strict";t.exports=class{async canAppend(t,r){return!0}}}]); \ No newline at end of file diff --git a/lib/es5/default-access-controller.js b/lib/es5/default-access-controller.js index addb35a3..dc6f4676 100644 --- a/lib/es5/default-access-controller.js +++ b/lib/es5/default-access-controller.js @@ -1,40 +1,36 @@ 'use strict'; -var _regenerator = require('babel-runtime/regenerator'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator2 = _interopRequireDefault(_regenerator); +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = require('babel-runtime/helpers/createClass'); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var AccessController = function () { +var AccessController = +/*#__PURE__*/ +function () { function AccessController() { - (0, _classCallCheck3.default)(this, AccessController); + (0, _classCallCheck2.default)(this, AccessController); } - (0, _createClass3.default)(AccessController, [{ - key: 'canAppend', + (0, _createClass2.default)(AccessController, [{ + key: "canAppend", value: function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(entry, identityProvider) { - return _regenerator2.default.wrap(function _callee$(_context) { + var _canAppend = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(entry, identityProvider) { + return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: - return _context.abrupt('return', true); + return _context.abrupt("return", true); case 1: - case 'end': + case "end": return _context.stop(); } } @@ -42,7 +38,7 @@ var AccessController = function () { })); function canAppend(_x, _x2) { - return _ref.apply(this, arguments); + return _canAppend.apply(this, arguments); } return canAppend; diff --git a/lib/es5/entry-io.js b/lib/es5/entry-io.js index ce652a6d..11de43a3 100644 --- a/lib/es5/entry-io.js +++ b/lib/es5/entry-io.js @@ -1,51 +1,53 @@ 'use strict'; -var _promise = require('babel-runtime/core-js/promise'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _promise2 = _interopRequireDefault(_promise); +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _regenerator = require('babel-runtime/regenerator'); +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _regenerator2 = _interopRequireDefault(_regenerator); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = require('babel-runtime/helpers/createClass'); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var pWhilst = require('p-whilst'); + var pMap = require('p-map'); + var Entry = require('./entry'); -var EntryIO = function () { +var EntryIO = +/*#__PURE__*/ +function () { function EntryIO() { - (0, _classCallCheck3.default)(this, EntryIO); + (0, _classCallCheck2.default)(this, EntryIO); } - (0, _createClass3.default)(EntryIO, null, [{ - key: 'fetchParallel', - + (0, _createClass2.default)(EntryIO, null, [{ + key: "fetchParallel", // Fetch log graphs in parallel value: function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(ipfs, hashes, length) { - var exclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; - var concurrency = arguments[4]; - var timeout = arguments[5]; - var onProgressCallback = arguments[6]; - var fetchOne, concatArrays, flatten, entries; - return _regenerator2.default.wrap(function _callee$(_context) { + var _fetchParallel = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(ipfs, hashes, length) { + var exclude, + concurrency, + timeout, + onProgressCallback, + fetchOne, + concatArrays, + flatten, + entries, + _args = arguments; + return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: + exclude = _args.length > 3 && _args[3] !== undefined ? _args[3] : []; + concurrency = _args.length > 4 ? _args[4] : undefined; + timeout = _args.length > 5 ? _args[5] : undefined; + onProgressCallback = _args.length > 6 ? _args[6] : undefined; + fetchOne = function fetchOne(hash) { return EntryIO.fetchAll(ipfs, hash, length, exclude, timeout, onProgressCallback); }; @@ -59,28 +61,29 @@ var EntryIO = function () { }; concurrency = Math.max(concurrency || hashes.length, 1); - _context.next = 6; - return pMap(hashes, fetchOne, { concurrency: concurrency }); + _context.next = 10; + return pMap(hashes, fetchOne, { + concurrency: concurrency + }); - case 6: + case 10: entries = _context.sent; - return _context.abrupt('return', flatten(entries)); + return _context.abrupt("return", flatten(entries)); - case 8: - case 'end': + case 12: + case "end": return _context.stop(); } } }, _callee, this); })); - function fetchParallel(_x2, _x3, _x4) { - return _ref.apply(this, arguments); + function fetchParallel(_x, _x2, _x3) { + return _fetchParallel.apply(this, arguments); } return fetchParallel; }() - /** * Fetch log entries sequentially * @@ -95,31 +98,36 @@ var EntryIO = function () { */ }, { - key: 'fetchAll', + key: "fetchAll", value: function () { - var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(ipfs, hashes, amount) { - var exclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; - - var _this = this; - - var timeout = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; - var onProgressCallback = arguments[5]; - var result, cache, loadingQueue, addToLoadingQueue, addToExcludeCache, shouldFetchMore, fetchEntry; - return _regenerator2.default.wrap(function _callee3$(_context3) { + var _fetchAll = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee3(ipfs, hashes, amount) { + var exclude, + timeout, + onProgressCallback, + result, + cache, + loadingQueue, + addToLoadingQueue, + addToExcludeCache, + shouldFetchMore, + fetchEntry, + _args3 = arguments; + return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: + exclude = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : []; + timeout = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : null; + onProgressCallback = _args3.length > 5 ? _args3[5] : undefined; result = []; cache = {}; - loadingQueue = Array.isArray(hashes) ? hashes.slice() : [hashes]; - - // Add a multihash to the loading queue + loadingQueue = Array.isArray(hashes) ? hashes.slice() : [hashes]; // Add a multihash to the loading queue addToLoadingQueue = function addToLoadingQueue(e) { return loadingQueue.push(e); - }; - - // Add entries that we don't need to fetch to the "cache" + }; // Add entries that we don't need to fetch to the "cache" exclude = exclude && Array.isArray(exclude) ? exclude : []; @@ -138,36 +146,40 @@ var EntryIO = function () { var hash = loadingQueue.shift(); if (cache[hash]) { - return _promise2.default.resolve(); + return Promise.resolve(); } - return new _promise2.default(function () { - var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(resolve, reject) { + return new Promise( + /*#__PURE__*/ + function () { + var _ref = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(resolve, reject) { var timer, addToResults, entry; - return _regenerator2.default.wrap(function _callee2$(_context2) { + return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: // Resolve the promise after a timeout (if given) in order to // not get stuck loading a block that is unreachable timer = timeout ? setTimeout(function () { - console.warn('Warning: Couldn\'t fetch entry \'' + hash + '\', request timed out (' + timeout + 'ms)'); + console.warn("Warning: Couldn't fetch entry '".concat(hash, "', request timed out (").concat(timeout, "ms)")); resolve(); }, timeout) : null; addToResults = function addToResults(entry) { clearTimeout(timer); + if (Entry.isEntry(entry)) { entry.next.forEach(addToLoadingQueue); result.push(entry); cache[hash] = entry; + if (onProgressCallback) { onProgressCallback(hash, entry, result.length); } } - }; - - // Load the entry + }; // Load the entry _context2.prev = 2; @@ -176,7 +188,6 @@ var EntryIO = function () { case 5: entry = _context2.sent; - addToResults(entry); resolve(); _context2.next = 13; @@ -184,40 +195,39 @@ var EntryIO = function () { case 10: _context2.prev = 10; - _context2.t0 = _context2['catch'](2); - + _context2.t0 = _context2["catch"](2); reject(_context2.t0); case 13: - case 'end': + case "end": return _context2.stop(); } } - }, _callee2, _this, [[2, 10]]); + }, _callee2, this, [[2, 10]]); })); - return function (_x10, _x11) { - return _ref3.apply(this, arguments); + return function (_x7, _x8) { + return _ref.apply(this, arguments); }; }()); }; - _context3.next = 11; + _context3.next = 14; return pWhilst(shouldFetchMore, fetchEntry); - case 11: - return _context3.abrupt('return', result); + case 14: + return _context3.abrupt("return", result); - case 12: - case 'end': + case 15: + case "end": return _context3.stop(); } } }, _callee3, this); })); - function fetchAll(_x7, _x8, _x9) { - return _ref2.apply(this, arguments); + function fetchAll(_x4, _x5, _x6) { + return _fetchAll.apply(this, arguments); } return fetchAll; diff --git a/lib/es5/entry.js b/lib/es5/entry.js index 04167576..7b13885c 100644 --- a/lib/es5/entry.js +++ b/lib/es5/entry.js @@ -1,30 +1,14 @@ 'use strict'; -var _stringify = require('babel-runtime/core-js/json/stringify'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _stringify2 = _interopRequireDefault(_stringify); +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _assign = require('babel-runtime/core-js/object/assign'); +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _assign2 = _interopRequireDefault(_assign); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _regenerator = require('babel-runtime/regenerator'); - -var _regenerator2 = _interopRequireDefault(_regenerator); - -var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = require('babel-runtime/helpers/createClass'); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var Clock = require('./lamport-clock'); @@ -35,13 +19,15 @@ var IpfsNotDefinedError = function IpfsNotDefinedError() { return new Error('Ipfs instance not defined'); }; -var Entry = function () { +var Entry = +/*#__PURE__*/ +function () { function Entry() { - (0, _classCallCheck3.default)(this, Entry); + (0, _classCallCheck2.default)(this, Entry); } - (0, _createClass3.default)(Entry, null, [{ - key: 'create', + (0, _createClass2.default)(Entry, null, [{ + key: "create", /** * Create an Entry @@ -54,55 +40,63 @@ var Entry = function () { * @returns {Promise} */ value: function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(ipfs, identity, logId, data) { - var next = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : []; - var clock = arguments[5]; - var toEntry, nexts, entry, signature; - return _regenerator2.default.wrap(function _callee$(_context) { + var _create = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(ipfs, identity, logId, data) { + var next, + clock, + toEntry, + nexts, + entry, + signature, + _args = arguments; + return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: + next = _args.length > 4 && _args[4] !== undefined ? _args[4] : []; + clock = _args.length > 5 ? _args[5] : undefined; + if (isDefined(ipfs)) { - _context.next = 2; + _context.next = 4; break; } throw IpfsNotDefinedError(); - case 2: + case 4: if (isDefined(identity)) { - _context.next = 4; + _context.next = 6; break; } throw new Error('Identity is required, cannot create entry'); - case 4: + case 6: if (isDefined(logId)) { - _context.next = 6; + _context.next = 8; break; } throw new Error('Entry requires an id'); - case 6: + case 8: if (isDefined(data)) { - _context.next = 8; + _context.next = 10; break; } throw new Error('Entry requires data'); - case 8: + case 10: if (!(!isDefined(next) || !Array.isArray(next))) { - _context.next = 10; + _context.next = 12; break; } throw new Error("'next' argument is not an array"); - case 10: - + case 12: // Clean the next objects and convert to hashes toEntry = function toEntry(e) { return e.hash ? e.hash : e; @@ -110,44 +104,47 @@ var Entry = function () { nexts = next.filter(isDefined).map(toEntry); entry = { - hash: null, // "Qm...Foo", we'll set the hash after persisting the entry - id: logId, // For determining a unique chain - payload: data, // Can be any JSON.stringifyable data - next: nexts, // Array of Multihashes - v: 0, // For future data structure updates, should currently always be 0 + hash: null, + // "Qm...Foo", we'll set the hash after persisting the entry + id: logId, + // For determining a unique chain + payload: data, + // Can be any JSON.stringifyable data + next: nexts, + // Array of Multihashes + v: 0, + // For future data structure updates, should currently always be 0 clock: clock || new Clock(identity.publicKey) }; - _context.next = 15; + _context.next = 17; return identity.provider.sign(identity, Entry.toBuffer(entry)); - case 15: + case 17: signature = _context.sent; - entry.key = identity.publicKey; entry.identity = identity.toJSON(); entry.sig = signature; - _context.next = 21; + _context.next = 23; return Entry.toMultihash(ipfs, entry); - case 21: + case 23: entry.hash = _context.sent; - return _context.abrupt('return', entry); + return _context.abrupt("return", entry); - case 23: - case 'end': + case 25: + case "end": return _context.stop(); } } }, _callee, this); })); - function create(_x2, _x3, _x4, _x5) { - return _ref.apply(this, arguments); + function create(_x, _x2, _x3, _x4) { + return _create.apply(this, arguments); } return create; }() - /** * Verifies an entry signature for a given key and sig * @param {Entry} entry Entry to verify @@ -156,11 +153,13 @@ var Entry = function () { */ }, { - key: 'verify', + key: "verify", value: function () { - var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(identityProvider, entry) { + var _verify = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(identityProvider, entry) { var e; - return _regenerator2.default.wrap(function _callee2$(_context2) { + return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: @@ -196,7 +195,7 @@ var Entry = function () { throw new Error("Entry doesn't have a signature"); case 8: - e = (0, _assign2.default)({}, { + e = Object.assign({}, { hash: null, id: entry.id, payload: entry.payload, @@ -204,28 +203,27 @@ var Entry = function () { v: entry.v, clock: new Clock(entry.clock.id, entry.clock.time) }); - return _context2.abrupt('return', identityProvider.verify(entry.sig, entry.key, Entry.toBuffer(e))); + return _context2.abrupt("return", identityProvider.verify(entry.sig, entry.key, Entry.toBuffer(e))); case 10: - case 'end': + case "end": return _context2.stop(); } } }, _callee2, this); })); - function verify(_x6, _x7) { - return _ref2.apply(this, arguments); + function verify(_x5, _x6) { + return _verify.apply(this, arguments); } return verify; }() }, { - key: 'toBuffer', + key: "toBuffer", value: function toBuffer(entry) { - return Buffer.from((0, _stringify2.default)(entry)); + return Buffer.from(JSON.stringify(entry)); } - /** * Get the multihash of an Entry * @param {IPFS} [ipfs] An IPFS instance @@ -238,11 +236,13 @@ var Entry = function () { */ }, { - key: 'toMultihash', + key: "toMultihash", value: function () { - var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(ipfs, entry) { + var _toMultihash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee3(ipfs, entry) { var isValidEntryObject, e, data, object; - return _regenerator2.default.wrap(function _callee3$(_context3) { + return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: @@ -266,7 +266,6 @@ var Entry = function () { throw new Error('Invalid object format, cannot generate entry multihash'); case 5: - // Ensure `entry` follows the correct format e = { hash: null, @@ -276,35 +275,37 @@ var Entry = function () { v: entry.v, clock: entry.clock }; - - - if (entry.key) (0, _assign2.default)(e, { key: entry.key }); - if (entry.identity) (0, _assign2.default)(e, { identity: entry.identity }); - if (entry.sig) (0, _assign2.default)(e, { sig: entry.sig }); - + if (entry.key) Object.assign(e, { + key: entry.key + }); + if (entry.identity) Object.assign(e, { + identity: entry.identity + }); + if (entry.sig) Object.assign(e, { + sig: entry.sig + }); data = Entry.toBuffer(e); _context3.next = 12; - return ipfs.object.put(data); + return ipfs.dag.put(data); case 12: object = _context3.sent; - return _context3.abrupt('return', object.toJSON().multihash); + return _context3.abrupt("return", object.toBaseEncodedString()); case 14: - case 'end': + case "end": return _context3.stop(); } } }, _callee3, this); })); - function toMultihash(_x8, _x9) { - return _ref3.apply(this, arguments); + function toMultihash(_x7, _x8) { + return _toMultihash.apply(this, arguments); } return toMultihash; }() - /** * Create an Entry from a multihash * @param {IPFS} [ipfs] An IPFS instance @@ -317,11 +318,13 @@ var Entry = function () { */ }, { - key: 'fromMultihash', + key: "fromMultihash", value: function () { - var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(ipfs, hash) { + var _fromMultihash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee4(ipfs, hash) { var obj, data, entry; - return _regenerator2.default.wrap(function _callee4$(_context4) { + return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: @@ -338,15 +341,15 @@ var Entry = function () { break; } - throw new Error('Invalid hash: ' + hash); + throw new Error("Invalid hash: ".concat(hash)); case 4: _context4.next = 6; - return ipfs.object.get(hash, { enc: 'base58' }); + return ipfs.dag.get(hash); case 6: obj = _context4.sent; - data = JSON.parse(obj.toJSON().data); + data = JSON.parse(obj.value); entry = { hash: hash, id: data.id, @@ -355,29 +358,31 @@ var Entry = function () { v: data.v, clock: new Clock(data.clock.id, data.clock.time) }; - - - if (data.key) (0, _assign2.default)(entry, { key: data.key }); - if (data.identity) (0, _assign2.default)(entry, { identity: data.identity }); - if (data.sig) (0, _assign2.default)(entry, { sig: data.sig }); - - return _context4.abrupt('return', entry); + if (data.key) Object.assign(entry, { + key: data.key + }); + if (data.identity) Object.assign(entry, { + identity: data.identity + }); + if (data.sig) Object.assign(entry, { + sig: data.sig + }); + return _context4.abrupt("return", entry); case 13: - case 'end': + case "end": return _context4.stop(); } } }, _callee4, this); })); - function fromMultihash(_x10, _x11) { - return _ref4.apply(this, arguments); + function fromMultihash(_x9, _x10) { + return _fromMultihash.apply(this, arguments); } return fromMultihash; }() - /** * Check if an object is an Entry * @param {Entry} obj @@ -385,18 +390,17 @@ var Entry = function () { */ }, { - key: 'isEntry', + key: "isEntry", value: function isEntry(obj) { return obj && obj.id !== undefined && obj.next !== undefined && obj.hash !== undefined && obj.payload !== undefined && obj.v !== undefined && obj.clock !== undefined; } }, { - key: 'compare', + key: "compare", value: function compare(a, b) { var distance = Clock.compare(a.clock, b.clock); if (distance === 0) return a.clock.id < b.clock.id ? -1 : 1; return distance; } - /** * Check if an entry equals another entry * @param {Entry} a @@ -405,11 +409,10 @@ var Entry = function () { */ }, { - key: 'isEqual', + key: "isEqual", value: function isEqual(a, b) { return a.hash === b.hash; } - /** * Check if an entry is a parent to another entry. * @param {Entry} [entry1] Entry to check @@ -418,11 +421,10 @@ var Entry = function () { */ }, { - key: 'isParent', + key: "isParent", value: function isParent(entry1, entry2) { return entry2.next.indexOf(entry1.hash) > -1; } - /** * Find entry's children from an Array of entries * @@ -435,13 +437,14 @@ var Entry = function () { */ }, { - key: 'findChildren', + key: "findChildren", value: function findChildren(entry, values) { var stack = []; var parent = values.find(function (e) { return Entry.isParent(entry, e); }); var prev = entry; + while (parent) { stack.push(parent); prev = parent; @@ -449,6 +452,7 @@ var Entry = function () { return Entry.isParent(prev, e); }); } + stack = stack.sort(function (a, b) { return a.clock.time > b.clock.time; }); diff --git a/lib/es5/g-set.js b/lib/es5/g-set.js index 43be37cd..de15cb63 100644 --- a/lib/es5/g-set.js +++ b/lib/es5/g-set.js @@ -1,5 +1,4 @@ 'use strict'; - /** * Interface for G-Set CRDT * @@ -8,38 +7,37 @@ * https://hal.inria.fr/inria-00555588 */ -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _createClass2 = require('babel-runtime/helpers/createClass'); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _createClass3 = _interopRequireDefault(_createClass2); +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var GSet = function () { +var GSet = +/*#__PURE__*/ +function () { function GSet(values) { - (0, _classCallCheck3.default)(this, GSet); - } + (0, _classCallCheck2.default)(this, GSet); + } // eslint-disable-line + - (0, _createClass3.default)(GSet, [{ - key: 'append', + (0, _createClass2.default)(GSet, [{ + key: "append", value: function append(value) {} }, { - key: 'merge', + key: "merge", value: function merge(set) {} }, { - key: 'get', + key: "get", value: function get(value) {} }, { - key: 'has', + key: "has", value: function has(value) {} }, { - key: 'values', + key: "values", get: function get() {} }, { - key: 'length', + key: "length", get: function get() {} }]); return GSet; diff --git a/lib/es5/lamport-clock.js b/lib/es5/lamport-clock.js index ed1d81c1..f64116ed 100644 --- a/lib/es5/lamport-clock.js +++ b/lib/es5/lamport-clock.js @@ -1,49 +1,44 @@ 'use strict'; -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _createClass2 = require('babel-runtime/helpers/createClass'); +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var LamportClock = function () { +var LamportClock = +/*#__PURE__*/ +function () { function LamportClock(id, time) { - (0, _classCallCheck3.default)(this, LamportClock); - + (0, _classCallCheck2.default)(this, LamportClock); this.id = id; this.time = time || 0; } - (0, _createClass3.default)(LamportClock, [{ - key: 'tick', + (0, _createClass2.default)(LamportClock, [{ + key: "tick", value: function tick() { return new LamportClock(this.id, ++this.time); } }, { - key: 'merge', + key: "merge", value: function merge(clock) { this.time = Math.max(this.time, clock.time); return new LamportClock(this.id, this.time); } }, { - key: 'clone', + key: "clone", value: function clone() { return new LamportClock(this.id, this.time); } }], [{ - key: 'compare', + key: "compare", value: function compare(a, b) { // Calculate the "distance" based on the clock, ie. lower or greater - var dist = a.time - b.time; - - // If the sequence number is the same (concurrent events), + var dist = a.time - b.time; // If the sequence number is the same (concurrent events), // and the IDs are different, take the one with a "lower" id - if (dist === 0 && a.id !== b.id) return a.id < b.id ? -1 : 1; + if (dist === 0 && a.id !== b.id) return a.id < b.id ? -1 : 1; return dist; } }]); diff --git a/lib/es5/log-errors.js b/lib/es5/log-errors.js index 5500a054..76653c1c 100644 --- a/lib/es5/log-errors.js +++ b/lib/es5/log-errors.js @@ -3,12 +3,15 @@ var IPFSNotDefinedError = function IPFSNotDefinedError() { return new Error('IPFS instance not defined'); }; + var LogNotDefinedError = function LogNotDefinedError() { return new Error('Log instance not defined'); }; + var NotALogError = function NotALogError() { return new Error('Given argument is not an instance of Log'); }; + var CannotJoinWithDifferentId = function CannotJoinWithDifferentId() { return new Error('Can\'t join logs with different IDs'); }; diff --git a/lib/es5/log-io.js b/lib/es5/log-io.js index 177fb3d8..8c18b320 100644 --- a/lib/es5/log-io.js +++ b/lib/es5/log-io.js @@ -1,26 +1,21 @@ 'use strict'; -var _regenerator = require('babel-runtime/regenerator'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator2 = _interopRequireDefault(_regenerator); +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = require('babel-runtime/helpers/createClass'); - -var _createClass3 = _interopRequireDefault(_createClass2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var Entry = require('./entry'); + var EntryIO = require('./entry-io'); + var Clock = require('./lamport-clock'); + var LogError = require('./log-errors'); var _require = require('./utils'), @@ -32,17 +27,21 @@ var last = function last(arr, n) { return arr.slice(arr.length - n, arr.length); }; -var LogIO = function () { +var LogIO = +/*#__PURE__*/ +function () { function LogIO() { - (0, _classCallCheck3.default)(this, LogIO); + (0, _classCallCheck2.default)(this, LogIO); } - (0, _createClass3.default)(LogIO, null, [{ - key: 'toMultihash', + (0, _createClass2.default)(LogIO, null, [{ + key: "toMultihash", value: function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(ipfs, log) { + var _toMultihash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(ipfs, log) { var dagNode; - return _regenerator2.default.wrap(function _callee$(_context) { + return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: @@ -67,18 +66,18 @@ var LogIO = function () { break; } - throw new Error('Can\'t serialize an empty log'); + throw new Error("Can't serialize an empty log"); case 6: _context.next = 8; - return ipfs.object.put(log.toBuffer()); + return ipfs.dag.put(log.toBuffer()); case 8: dagNode = _context.sent; - return _context.abrupt('return', dagNode.toJSON().multihash); + return _context.abrupt("return", dagNode.toBaseEncodedString()); case 10: - case 'end': + case "end": return _context.stop(); } } @@ -86,12 +85,11 @@ var LogIO = function () { })); function toMultihash(_x, _x2) { - return _ref.apply(this, arguments); + return _toMultihash.apply(this, arguments); } return toMultihash; }() - /** * Create a log from multihash * @param {IPFS} ipfs - An IPFS instance @@ -102,203 +100,227 @@ var LogIO = function () { */ }, { - key: 'fromMultihash', + key: "fromMultihash", value: function () { - var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(ipfs, hash) { - var length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; - var exclude = arguments[3]; - var onProgressCallback = arguments[4]; - var dagNode, logData, entries, clock, finalEntries, heads; - return _regenerator2.default.wrap(function _callee2$(_context2) { + var _fromMultihash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(ipfs, hash) { + var length, + exclude, + onProgressCallback, + dagNode, + logData, + entries, + clock, + finalEntries, + heads, + _args2 = arguments; + return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: + length = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : -1; + exclude = _args2.length > 3 ? _args2[3] : undefined; + onProgressCallback = _args2.length > 4 ? _args2[4] : undefined; + if (isDefined(ipfs)) { - _context2.next = 2; + _context2.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: if (isDefined(hash)) { - _context2.next = 4; + _context2.next = 7; break; } - throw new Error('Invalid hash: ' + hash); + throw new Error("Invalid hash: ".concat(hash)); - case 4: - _context2.next = 6; - return ipfs.object.get(hash, { enc: 'base58' }); + case 7: + _context2.next = 9; + return ipfs.dag.get(hash); - case 6: + case 9: dagNode = _context2.sent; - logData = JSON.parse(dagNode.toJSON().data); + logData = JSON.parse(dagNode.value); if (!(!logData.heads || !logData.id)) { - _context2.next = 10; + _context2.next = 13; break; } throw LogError.NotALogError(); - case 10: - _context2.next = 12; + case 13: + _context2.next = 15; return EntryIO.fetchAll(ipfs, logData.heads, length, exclude, null, onProgressCallback); - case 12: + case 15: entries = _context2.sent; - - // Find latest clock clock = entries.reduce(function (clock, entry) { if (entry.clock.time > clock.time) { return new Clock(entry.clock.id, entry.clock.time); } + return clock; }, new Clock(logData.id)); finalEntries = entries.slice().sort(Entry.compare); heads = finalEntries.filter(function (e) { return logData.heads.includes(e.hash); }); - return _context2.abrupt('return', { + return _context2.abrupt("return", { id: logData.id, values: finalEntries, heads: heads, clock: clock }); - case 17: - case 'end': + case 20: + case "end": return _context2.stop(); } } }, _callee2, this); })); - function fromMultihash(_x4, _x5) { - return _ref2.apply(this, arguments); + function fromMultihash(_x3, _x4) { + return _fromMultihash.apply(this, arguments); } return fromMultihash; }() }, { - key: 'fromEntryHash', + key: "fromEntryHash", value: function () { - var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(ipfs, entryHash, id) { - var length = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; - var exclude = arguments[4]; - var onProgressCallback = arguments[5]; - var entryHashes, excludeHashes, entries, sliced; - return _regenerator2.default.wrap(function _callee3$(_context3) { + var _fromEntryHash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee3(ipfs, entryHash, id) { + var length, + exclude, + onProgressCallback, + entryHashes, + excludeHashes, + entries, + sliced, + _args3 = arguments; + return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: + length = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : -1; + exclude = _args3.length > 4 ? _args3[4] : undefined; + onProgressCallback = _args3.length > 5 ? _args3[5] : undefined; + if (isDefined(ipfs)) { - _context3.next = 2; + _context3.next = 5; break; } throw LogError.IpfsNotDefinedError(); - case 2: + case 5: if (isDefined(entryHash)) { - _context3.next = 4; + _context3.next = 7; break; } throw new Error("'entryHash' must be defined"); - case 4: - + case 7: // Convert input hash(es) to an array - entryHashes = Array.isArray(entryHash) ? entryHash : [entryHash]; + entryHashes = Array.isArray(entryHash) ? entryHash : [entryHash]; // Fetch given length, return size at least the given input entries - // Fetch given length, return size at least the given input entries + length = length > -1 ? Math.max(length, 1) : length; // Make sure we pass hashes instead of objects to the fetcher function - length = length > -1 ? Math.max(length, 1) : length; - - // Make sure we pass hashes instead of objects to the fetcher function excludeHashes = exclude; // ? exclude.map(e => e.hash ? e.hash : e) : exclude - _context3.next = 9; + _context3.next = 12; return EntryIO.fetchParallel(ipfs, entryHashes, length, excludeHashes, null, null, onProgressCallback); - case 9: + case 12: entries = _context3.sent; - // Cap the result at the right size by taking the last n entries, // or if given length is -1, then take all sliced = length > -1 ? last(entries, length) : entries; - return _context3.abrupt('return', { + return _context3.abrupt("return", { values: sliced }); - case 12: - case 'end': + case 15: + case "end": return _context3.stop(); } } }, _callee3, this); })); - function fromEntryHash(_x7, _x8, _x9) { - return _ref3.apply(this, arguments); + function fromEntryHash(_x5, _x6, _x7) { + return _fromEntryHash.apply(this, arguments); } return fromEntryHash; }() }, { - key: 'fromJSON', + key: "fromJSON", value: function () { - var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(ipfs, json) { - var length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; - var timeout = arguments[3]; - var onProgressCallback = arguments[4]; - var headHashes, entries, finalEntries; - return _regenerator2.default.wrap(function _callee4$(_context4) { + var _fromJSON = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee4(ipfs, json) { + var length, + timeout, + onProgressCallback, + headHashes, + entries, + finalEntries, + _args4 = arguments; + return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: + length = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : -1; + timeout = _args4.length > 3 ? _args4[3] : undefined; + onProgressCallback = _args4.length > 4 ? _args4[4] : undefined; + if (isDefined(ipfs)) { - _context4.next = 2; + _context4.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: headHashes = json.heads.map(function (e) { return e.hash; }); - _context4.next = 5; + _context4.next = 8; return EntryIO.fetchParallel(ipfs, headHashes, length, [], 16, timeout, onProgressCallback); - case 5: + case 8: entries = _context4.sent; finalEntries = entries.slice().sort(Entry.compare); - return _context4.abrupt('return', { + return _context4.abrupt("return", { id: json.id, values: finalEntries, heads: json.heads }); - case 8: - case 'end': + case 11: + case "end": return _context4.stop(); } } }, _callee4, this); })); - function fromJSON(_x11, _x12) { - return _ref4.apply(this, arguments); + function fromJSON(_x8, _x9) { + return _fromJSON.apply(this, arguments); } return fromJSON; }() - /** * Create a new log starting from an entry * @param {IPFS} ipfs An IPFS instance @@ -310,75 +332,80 @@ var LogIO = function () { */ }, { - key: 'fromEntry', + key: "fromEntry", value: function () { - var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(ipfs, sourceEntries) { - var length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; - var exclude = arguments[3]; - var onProgressCallback = arguments[4]; - var excludeHashes, hashes, entries, combined, uniques, sliced, missingSourceEntries, replaceInFront, result; - return _regenerator2.default.wrap(function _callee5$(_context5) { + var _fromEntry = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee5(ipfs, sourceEntries) { + var length, + exclude, + onProgressCallback, + excludeHashes, + hashes, + entries, + combined, + uniques, + sliced, + missingSourceEntries, + replaceInFront, + result, + _args5 = arguments; + return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: + length = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : -1; + exclude = _args5.length > 3 ? _args5[3] : undefined; + onProgressCallback = _args5.length > 4 ? _args5[4] : undefined; + if (isDefined(ipfs)) { - _context5.next = 2; + _context5.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: if (isDefined(sourceEntries)) { - _context5.next = 4; + _context5.next = 7; break; } throw new Error("'sourceEntries' must be defined"); - case 4: + case 7: if (!(!Array.isArray(sourceEntries) && !Entry.isEntry(sourceEntries))) { - _context5.next = 6; + _context5.next = 9; break; } - throw new Error('\'sourceEntries\' argument must be an array of Entry instances or a single Entry'); - - case 6: + throw new Error("'sourceEntries' argument must be an array of Entry instances or a single Entry"); + case 9: if (!Array.isArray(sourceEntries)) { sourceEntries = [sourceEntries]; - } + } // Fetch given length, return size at least the given input entries + - // Fetch given length, return size at least the given input entries - length = length > -1 ? Math.max(length, sourceEntries.length) : length; + length = length > -1 ? Math.max(length, sourceEntries.length) : length; // Make sure we pass hashes instead of objects to the fetcher function - // Make sure we pass hashes instead of objects to the fetcher function excludeHashes = exclude ? exclude.map(function (e) { return e.hash ? e.hash : e; }) : exclude; hashes = sourceEntries.map(function (e) { return e.hash; - }); - - // Fetch the entries + }); // Fetch the entries - _context5.next = 12; + _context5.next = 15; return EntryIO.fetchParallel(ipfs, hashes, length, excludeHashes, null, null, onProgressCallback); - case 12: + case 15: entries = _context5.sent; - - // Combine the fetches with the source entries and take only uniques combined = sourceEntries.concat(entries); - uniques = findUniques(combined, 'hash').sort(Entry.compare); - - // Cap the result at the right size by taking the last n entries + uniques = findUniques(combined, 'hash').sort(Entry.compare); // Cap the result at the right size by taking the last n entries - sliced = uniques.slice(length > -1 ? -length : -uniques.length); - - // Make sure that the given input entries are present in the result + sliced = uniques.slice(length > -1 ? -length : -uniques.length); // Make sure that the given input entries are present in the result // in order to not lose references missingSourceEntries = difference(sliced, sourceEntries, 'hash'); @@ -386,28 +413,26 @@ var LogIO = function () { replaceInFront = function replaceInFront(a, withEntries) { var sliced = a.slice(withEntries.length, a.length); return withEntries.concat(sliced); - }; - - // Add the input entries at the beginning of the array and remove + }; // Add the input entries at the beginning of the array and remove // as many elements from the array before inserting the original entries result = replaceInFront(sliced, missingSourceEntries); - return _context5.abrupt('return', { + return _context5.abrupt("return", { id: result[result.length - 1].id, values: result }); - case 20: - case 'end': + case 23: + case "end": return _context5.stop(); } } }, _callee5, this); })); - function fromEntry(_x14, _x15) { - return _ref5.apply(this, arguments); + function fromEntry(_x10, _x11) { + return _fromEntry.apply(this, arguments); } return fromEntry; diff --git a/lib/es5/log-sorting.js b/lib/es5/log-sorting.js index 11777ad1..6097a32f 100644 --- a/lib/es5/log-sorting.js +++ b/lib/es5/log-sorting.js @@ -1,7 +1,6 @@ 'use strict'; var Clock = require('./lamport-clock'); - /** * Sort two entries as Last-Write-Wins (LWW) * @description Last Write Wins is a conflict resolution strategy for sorting elements @@ -10,24 +9,28 @@ var Clock = require('./lamport-clock'); * @param {Entry} [b] Second entry * @returns {int} 1 if a is latest, -1 if b is latest */ + + function LastWriteWins(a, b) { // Ultimate conflict resolution (take the first/left arg) var First = function First(a, b) { return a; - }; - // Sort two entries by their clock id, if the same always take the first + }; // Sort two entries by their clock id, if the same always take the first + + var sortById = function sortById(a, b) { return SortByClockId(a, b, First); - }; - // Sort two entries by their clock time, if concurrent, + }; // Sort two entries by their clock time, if concurrent, // determine sorting using provided conflict resolution function + + var sortByEntryClocks = function sortByEntryClocks(a, b) { return SortByClocks(a, b, sortById); - }; - // Sort entries by clock time as the primary sort criteria + }; // Sort entries by clock time as the primary sort criteria + + return sortByEntryClocks(a, b); } - /** * Sort two entries by their clock time * @param {Entry} [a] First entry to compare @@ -35,14 +38,15 @@ function LastWriteWins(a, b) { * @param {function(a, b)} [resolveConflict] A function to call if entries are concurrent (happened at the same time). The function should take in two entries and return 1 if the first entry should be chosen and -1 if the second entry should be chosen. * @returns {int} 1 if a is greater, -1 if b is greater */ + + function SortByClocks(a, b, resolveConflict) { // Compare the clocks - var diff = Clock.compare(a.clock, b.clock); - // If the clocks are concurrent, use the provided + var diff = Clock.compare(a.clock, b.clock); // If the clocks are concurrent, use the provided // conflict resolution function to determine which comes first + return diff === 0 ? resolveConflict(a, b) : diff; } - /** * Sort two entries by their clock id * @param {Entry} [a] First entry to compare @@ -50,6 +54,8 @@ function SortByClocks(a, b, resolveConflict) { * @param {function(a, b)} [resolveConflict] A function to call if the clocks ids are the same. The function should take in two entries and return 1 if the first entry should be chosen and -1 if the second entry should be chosen. * @returns {int} 1 if a is greater, -1 if b is greater */ + + function SortByClockId(a, b, resolveConflict) { // Sort by ID if clocks are concurrent, // take the entry with a "greater" clock id diff --git a/lib/es5/log.js b/lib/es5/log.js index 323583dd..f2e48d5e 100644 --- a/lib/es5/log.js +++ b/lib/es5/log.js @@ -1,67 +1,39 @@ 'use strict'; -var _stringify = require('babel-runtime/core-js/json/stringify'); +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _stringify2 = _interopRequireDefault(_stringify); +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _values = require('babel-runtime/core-js/object/values'); +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _values2 = _interopRequireDefault(_values); +var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); -var _regenerator = require('babel-runtime/regenerator'); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _regenerator2 = _interopRequireDefault(_regenerator); +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -var _assign = require('babel-runtime/core-js/object/assign'); +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); -var _assign2 = _interopRequireDefault(_assign); +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); -var _keys = require('babel-runtime/core-js/object/keys'); - -var _keys2 = _interopRequireDefault(_keys); - -var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); - -var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); - -var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = require('babel-runtime/helpers/createClass'); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = require('babel-runtime/helpers/inherits'); - -var _inherits3 = _interopRequireDefault(_inherits2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var pMap = require('p-map'); + var GSet = require('./g-set'); + var Entry = require('./entry'); + var LogIO = require('./log-io'); + var LogError = require('./log-errors'); + var Clock = require('./lamport-clock'); var _require = require('./log-sorting'), LastWriteWins = _require.LastWriteWins; var AccessController = require('./default-access-controller'); -var IdentityProvider = require('orbit-db-identity-provider'); var _require2 = require('./utils'), isDefined = _require2.isDefined, @@ -70,23 +42,27 @@ var _require2 = require('./utils'), var randomId = function randomId() { return new Date().getTime().toString(); }; + var getHash = function getHash(e) { return e.hash; }; + var flatMap = function flatMap(res, acc) { return res.concat(acc); }; + var getNextPointers = function getNextPointers(entry) { return entry.next; }; + var maxClockTimeReducer = function maxClockTimeReducer(res, acc) { return Math.max(res, acc.clock.time); }; + var uniqueEntriesReducer = function uniqueEntriesReducer(res, acc) { res[acc.hash] = acc; return res; }; - /** * Log * @@ -98,8 +74,11 @@ var uniqueEntriesReducer = function uniqueEntriesReducer(res, acc) { * https://hal.inria.fr/inria-00555588 */ -var Log = function (_GSet) { - (0, _inherits3.default)(Log, _GSet); + +var Log = +/*#__PURE__*/ +function (_GSet) { + (0, _inherits2.default)(Log, _GSet); /** * Create a new Log instance @@ -113,7 +92,9 @@ var Log = function (_GSet) { * @return {Log} Log */ function Log(ipfs, access, identity, logId, entries, heads, clock) { - (0, _classCallCheck3.default)(this, Log); + var _this; + + (0, _classCallCheck2.default)(this, Log); if (!isDefined(ipfs)) { throw LogError.IPFSNotDefinedError(); @@ -128,61 +109,54 @@ var Log = function (_GSet) { } if (isDefined(entries) && !Array.isArray(entries)) { - throw new Error('\'entries\' argument must be an array of Entry instances'); + throw new Error("'entries' argument must be an array of Entry instances"); } if (isDefined(heads) && !Array.isArray(heads)) { - throw new Error('\'heads\' argument must be an array'); + throw new Error("'heads' argument must be an array"); } - var _this = (0, _possibleConstructorReturn3.default)(this, (Log.__proto__ || (0, _getPrototypeOf2.default)(Log)).call(this)); - + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Log).call(this)); _this._storage = ipfs; - _this._id = logId || randomId(); + _this._id = logId || randomId(); // Access Controller - // Access Controller - _this._access = access; - // Identity - _this._identity = identity; + _this._access = access; // Identity + + _this._identity = identity; // Add entries to the internal cache - // Add entries to the internal cache entries = entries || []; - _this._entryIndex = entries.reduce(uniqueEntriesReducer, {}); + _this._entryIndex = entries.reduce(uniqueEntriesReducer, {}); // Set heads if not passed as an argument - // Set heads if not passed as an argument heads = heads || Log.findHeads(entries); - _this._headsIndex = heads.reduce(uniqueEntriesReducer, {}); + _this._headsIndex = heads.reduce(uniqueEntriesReducer, {}); // Index of all next pointers in this log - // Index of all next pointers in this log _this._nextsIndex = {}; + var addToNextsIndex = function addToNextsIndex(e) { return e.next.forEach(function (a) { return _this._nextsIndex[a] = e.hash; }); }; - entries.forEach(addToNextsIndex); - // Set the length, we calculate the length manually internally - _this._length = entries ? entries.length : 0; + entries.forEach(addToNextsIndex); // Set the length, we calculate the length manually internally - // Set the clock - var maxTime = Math.max(clock ? clock.time : 0, _this.heads.reduce(maxClockTimeReducer, 0)); - // Take the given key as the clock id is it's a Key instance, + _this._length = entries.length; // Set the clock + + var maxTime = Math.max(clock ? clock.time : 0, _this.heads.reduce(maxClockTimeReducer, 0)); // Take the given key as the clock id is it's a Key instance, // otherwise if key was given, take whatever it is, // and if it was null, take the given id as the clock id + _this._clock = new Clock(_this._identity.publicKey, maxTime); return _this; } - /** * Returns the ID of the log * @returns {string} */ - (0, _createClass3.default)(Log, [{ - key: 'get', - + (0, _createClass2.default)(Log, [{ + key: "get", /** * Find an entry @@ -193,70 +167,59 @@ var Log = function (_GSet) { return this._entryIndex[hash]; } }, { - key: 'has', + key: "has", value: function has(entry) { return this._entryIndex[entry.hash || entry] !== undefined; } }, { - key: 'traverse', + key: "traverse", value: function traverse(rootEntries) { var _this2 = this; var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1; - // Sort the given given root entries and use as the starting stack - var stack = rootEntries.sort(LastWriteWins).reverse(); - // Cache for checking if we've processed an entry already - var traversed = {}; - // End result - var result = {}; - // We keep a counter to check if we have traversed requested amount of entries - var count = 0; + var stack = rootEntries.sort(LastWriteWins).reverse(); // Cache for checking if we've processed an entry already + + var traversed = {}; // End result + + var result = {}; // We keep a counter to check if we have traversed requested amount of entries + + var count = 0; // Named function for getting an entry from the log - // Named function for getting an entry from the log var getEntry = function getEntry(e) { return _this2.get(e); - }; + }; // Add an entry to the stack and traversed nodes index + - // Add an entry to the stack and traversed nodes index var addToStack = function addToStack(entry) { // If we've already processed the entry, don't add it to the stack - if (traversed[entry.hash]) { + if (!entry || traversed[entry.hash]) { return; - } + } // Add the entry in front of the stack and sort - // Add the entry in front of the stack and sort - stack = [entry].concat((0, _toConsumableArray3.default)(stack)).sort(LastWriteWins).reverse(); - // Add to the cache of processed entries - traversed[entry.hash] = true; - }; + stack = [entry].concat((0, _toConsumableArray2.default)(stack)).sort(LastWriteWins).reverse(); // Add to the cache of processed entries - // Start traversal + traversed[entry.hash] = true; + }; // Start traversal // Process stack until it's empty (traversed the full log) // or when we have the requested amount of entries // If requested entry amount is -1, traverse all + + while (stack.length > 0 && (amount === -1 || count < amount)) { // eslint-disable-line no-unmodified-loop-condition // Get the next element from the stack - var entry = stack.shift(); - - // Is the stack empty? - if (!entry) { - return; - } + var entry = stack.shift(); // Add to the result - // Add to the result count++; - result[entry.hash] = entry; + result[entry.hash] = entry; // Add entry's next references to the stack - // Add entry's next references to the stack entry.next.map(getEntry).filter(isDefined).forEach(addToStack); } return result; } - /** * Append an entry to the log * @param {Entry} entry Entry to add @@ -264,74 +227,76 @@ var Log = function (_GSet) { */ }, { - key: 'append', + key: "append", value: function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(data) { + var _append = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(data) { var _this3 = this; - var pointerCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var newTime, references, nexts, entry, canAppend; - return _regenerator2.default.wrap(function _callee$(_context) { + var pointerCount, + newTime, + references, + nexts, + entry, + canAppend, + _args = arguments; + return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: + pointerCount = _args.length > 1 && _args[1] !== undefined ? _args[1] : 1; // Update the clock (find the latest clock) newTime = Math.max(this.clock.time, this.heads.reduce(maxClockTimeReducer, 0)) + 1; + this._clock = new Clock(this.clock.id, newTime); // Get the required amount of hashes to next entries (as per current state of the log) - this._clock = new Clock(this.clock.id, newTime); - - // Get the required amount of hashes to next entries (as per current state of the log) references = this.traverse(this.heads, Math.max(pointerCount, this.heads.length)); - nexts = (0, _keys2.default)((0, _assign2.default)({}, this._headsIndex, references)); - - // @TODO: Split Entry.create into creating object, checking permission, signing and then posting to IPFS + nexts = Object.keys(Object.assign({}, this._headsIndex, references)); // @TODO: Split Entry.create into creating object, checking permission, signing and then posting to IPFS // Create the entry and add it to the internal cache - _context.next = 6; + _context.next = 7; return Entry.create(this._storage, this._identity, this.id, data, nexts, this.clock); - case 6: + case 7: entry = _context.sent; - _context.next = 9; + _context.next = 10; return this._access.canAppend(entry, this._identity.provider); - case 9: + case 10: canAppend = _context.sent; if (canAppend) { - _context.next = 12; + _context.next = 13; break; } - throw new Error('Could not append entry, key "' + this._identity.id + '" is not allowed to write to the log'); - - case 12: + throw new Error("Could not append entry, key \"".concat(this._identity.id, "\" is not allowed to write to the log")); + case 13: this._entryIndex[entry.hash] = entry; nexts.forEach(function (e) { return _this3._nextsIndex[e] = entry.hash; }); this._headsIndex = {}; - this._headsIndex[entry.hash] = entry; - // Update the length + this._headsIndex[entry.hash] = entry; // Update the length + this._length++; - return _context.abrupt('return', entry); + return _context.abrupt("return", entry); - case 18: - case 'end': + case 19: + case "end": return _context.stop(); } } }, _callee, this); })); - function append(_x3) { - return _ref.apply(this, arguments); + function append(_x) { + return _append.apply(this, arguments); } return append; }() - /** * Join two logs * @@ -349,52 +314,70 @@ var Log = function (_GSet) { */ }, { - key: 'join', + key: "join", value: function () { - var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(log) { + var _join = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee4(log) { var _this4 = this; - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1; - var newItems, identityProvider, permitted, verify, entriesToJoin, addToNextsIndex, notReferencedByNewItems, notInCurrentNexts, nextsFromNewItems, mergedHeads, tmp, maxClock; - return _regenerator2.default.wrap(function _callee4$(_context4) { + var size, + newItems, + identityProvider, + permitted, + verify, + entriesToJoin, + addToNextsIndex, + notReferencedByNewItems, + notInCurrentNexts, + nextsFromNewItems, + mergedHeads, + tmp, + maxClock, + _args4 = arguments; + return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: + size = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : -1; + if (isDefined(log)) { - _context4.next = 2; + _context4.next = 3; break; } throw LogError.LogNotDefinedError(); - case 2: + case 3: if (Log.isLog(log)) { - _context4.next = 4; + _context4.next = 5; break; } throw LogError.NotALogError(); - case 4: + case 5: if (!(this.id !== log.id)) { - _context4.next = 6; + _context4.next = 7; break; } - return _context4.abrupt('return'); - - case 6: + return _context4.abrupt("return"); + case 7: // Get the difference of the logs newItems = Log.difference(log, this); - identityProvider = this._identity.provider; - // Verify if entries are allowed to be added to the log and throws if + identityProvider = this._identity.provider; // Verify if entries are allowed to be added to the log and throws if // there's an invalid entry - permitted = function () { - var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(entry) { + permitted = + /*#__PURE__*/ + function () { + var _ref = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(entry) { var canAppend; - return _regenerator2.default.wrap(function _callee2$(_context2) { + return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: @@ -409,28 +392,30 @@ var Log = function (_GSet) { break; } - throw new Error('Append not permitted'); + throw new Error("Could not append entry, key \"".concat(entry.identity.id, "\" is not allowed to write to the log")); case 5: - case 'end': + case "end": return _context2.stop(); } } - }, _callee2, _this4); + }, _callee2, this); })); - return function permitted(_x6) { - return _ref3.apply(this, arguments); + return function permitted(_x3) { + return _ref.apply(this, arguments); }; - }(); + }(); // Verify signature for each entry and throws if there's an invalid signature - // Verify signature for each entry and throws if there's an invalid signature - - verify = function () { - var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(entry) { + verify = + /*#__PURE__*/ + function () { + var _ref2 = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee3(entry) { var isValid, publicKey; - return _regenerator2.default.wrap(function _callee3$(_context3) { + return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: @@ -446,46 +431,49 @@ var Log = function (_GSet) { break; } - throw new Error('Could not validate signature "' + entry.sig + '" for entry "' + entry.hash + '" and key "' + publicKey + '"'); + throw new Error("Could not validate signature \"".concat(entry.sig, "\" for entry \"").concat(entry.hash, "\" and key \"").concat(publicKey, "\"")); case 6: - case 'end': + case "end": return _context3.stop(); } } - }, _callee3, _this4); + }, _callee3, this); })); - return function verify(_x7) { - return _ref4.apply(this, arguments); + return function verify(_x4) { + return _ref2.apply(this, arguments); }; }(); - entriesToJoin = (0, _values2.default)(newItems); - _context4.next = 13; - return pMap(entriesToJoin, permitted, { concurrency: 1 }); - - case 13: - _context4.next = 15; - return pMap(entriesToJoin, verify, { concurrency: 1 }); + entriesToJoin = Object.values(newItems); + _context4.next = 14; + return pMap(entriesToJoin, permitted, { + concurrency: 1 + }); - case 15: + case 14: + _context4.next = 16; + return pMap(entriesToJoin, verify, { + concurrency: 1 + }); + case 16: // Update the internal next pointers index addToNextsIndex = function addToNextsIndex(e) { var entry = _this4.get(e.hash); + if (!entry) _this4._length++; + /* istanbul ignore else */ + e.next.forEach(function (a) { return _this4._nextsIndex[a] = e.hash; }); }; - (0, _values2.default)(newItems).forEach(addToNextsIndex); - - // Update the internal entry index - this._entryIndex = (0, _assign2.default)(this._entryIndex, newItems); + Object.values(newItems).forEach(addToNextsIndex); // Update the internal entry index - // Merge the heads + this._entryIndex = Object.assign(this._entryIndex, newItems); // Merge the heads notReferencedByNewItems = function notReferencedByNewItems(e) { return !nextsFromNewItems.find(function (a) { @@ -497,60 +485,55 @@ var Log = function (_GSet) { return !_this4._nextsIndex[e.hash]; }; - nextsFromNewItems = (0, _values2.default)(newItems).map(getNextPointers).reduce(flatMap, []); - mergedHeads = Log.findHeads((0, _values2.default)((0, _assign2.default)({}, this._headsIndex, log._headsIndex))).filter(notReferencedByNewItems).filter(notInCurrentNexts).reduce(uniqueEntriesReducer, {}); + nextsFromNewItems = Object.values(newItems).map(getNextPointers).reduce(flatMap, []); + mergedHeads = Log.findHeads(Object.values(Object.assign({}, this._headsIndex, log._headsIndex))).filter(notReferencedByNewItems).filter(notInCurrentNexts).reduce(uniqueEntriesReducer, {}); + this._headsIndex = mergedHeads; // Slice to the requested size - - this._headsIndex = mergedHeads; - - // Slice to the requested size if (size > -1) { tmp = this.values; - tmp = tmp.slice(-size); this._entryIndex = tmp.reduce(uniqueEntriesReducer, {}); this._headsIndex = Log.findHeads(tmp); - this._length = (0, _values2.default)(this._entryIndex).length; - } + this._length = Object.values(this._entryIndex).length; + } // Find the latest clock from the heads - // Find the latest clock from the heads - maxClock = (0, _values2.default)(this._headsIndex).reduce(maxClockTimeReducer, 0); + maxClock = Object.values(this._headsIndex).reduce(maxClockTimeReducer, 0); this._clock = new Clock(this.clock.id, Math.max(this.clock.time, maxClock)); - return _context4.abrupt('return', this); + return _context4.abrupt("return", this); - case 27: - case 'end': + case 28: + case "end": return _context4.stop(); } } }, _callee4, this); })); - function join(_x5) { - return _ref2.apply(this, arguments); + function join(_x2) { + return _join.apply(this, arguments); } return join; }() - /** * Get the log in JSON format * @returns {Object<{heads}>} */ }, { - key: 'toJSON', + key: "toJSON", value: function toJSON() { return { id: this.id, heads: this.heads.sort(LastWriteWins) // default sorting .reverse() // we want the latest as the first element .map(getHash) // return only the head hashes + }; } }, { - key: 'toSnapshot', + key: "toSnapshot", value: function toSnapshot() { return { id: this.id, @@ -564,11 +547,10 @@ var Log = function (_GSet) { */ }, { - key: 'toBuffer', + key: "toBuffer", value: function toBuffer() { - return Buffer.from((0, _stringify2.default)(this.toJSON())); + return Buffer.from(JSON.stringify(this.toJSON())); } - /** * Returns the log entries as a formatted string * @example @@ -579,7 +561,7 @@ var Log = function (_GSet) { */ }, { - key: 'toString', + key: "toString", value: function toString(payloadMapper) { var _this5 = this; @@ -589,10 +571,11 @@ var Log = function (_GSet) { var padding = new Array(Math.max(len - 1, 0)); padding = len > 1 ? padding.fill(' ') : padding; padding = len > 0 ? padding.concat(['└─']) : padding; + /* istanbul ignore next */ + return padding.join('') + (payloadMapper ? payloadMapper(e.payload) : e.payload); }).join('\n'); } - /** * Check whether an object is a Log instance * @param {Object} log An object to check @@ -600,8 +583,7 @@ var Log = function (_GSet) { */ }, { - key: 'toMultihash', - + key: "toMultihash", /** * Get the log's multihash @@ -610,7 +592,6 @@ var Log = function (_GSet) { value: function toMultihash() { return LogIO.toMultihash(this._storage, this); } - /** * Create a log from multihash * @param {IPFS} ipfs An IPFS instance @@ -621,55 +602,50 @@ var Log = function (_GSet) { */ }, { - key: 'id', + key: "id", get: function get() { return this._id; } - /** * Returns the clock of the log * @returns {string} */ }, { - key: 'clock', + key: "clock", get: function get() { return this._clock; } - /** * Returns the length of the log * @return {Number} Length */ }, { - key: 'length', + key: "length", get: function get() { return this._length; } - /** * Returns the values in the log * @returns {Array} */ }, { - key: 'values', + key: "values", get: function get() { - return (0, _values2.default)(this.traverse(this.heads)).reverse(); + return Object.values(this.traverse(this.heads)).reverse(); } - /** * Returns an array of heads as multihashes * @returns {Array} */ }, { - key: 'heads', + key: "heads", get: function get() { - return (0, _values2.default)(this._headsIndex).sort(LastWriteWins).reverse() || []; + return Object.values(this._headsIndex).sort(LastWriteWins).reverse(); } - /** * Returns an array of Entry objects that reference entries which * are not in the log currently @@ -677,11 +653,10 @@ var Log = function (_GSet) { */ }, { - key: 'tails', + key: "tails", get: function get() { return Log.findTails(this.values); } - /** * Returns an array of multihashes that are referenced by entries which * are not in the log currently @@ -689,65 +664,71 @@ var Log = function (_GSet) { */ }, { - key: 'tailHashes', + key: "tailHashes", get: function get() { return Log.findTailHashes(this.values); } }], [{ - key: 'isLog', + key: "isLog", value: function isLog(log) { return log.id !== undefined && log.heads !== undefined && log._entryIndex !== undefined; } }, { - key: 'fromMultihash', + key: "fromMultihash", value: function () { - var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(ipfs, access, identity, hash) { - var length = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; - var exclude = arguments[5]; - var onProgressCallback = arguments[6]; - var data; - return _regenerator2.default.wrap(function _callee5$(_context5) { + var _fromMultihash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee5(ipfs, access, identity, hash) { + var length, + exclude, + onProgressCallback, + data, + _args5 = arguments; + return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: + length = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : -1; + exclude = _args5.length > 5 ? _args5[5] : undefined; + onProgressCallback = _args5.length > 6 ? _args5[6] : undefined; + if (isDefined(ipfs)) { - _context5.next = 2; + _context5.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: if (isDefined(hash)) { - _context5.next = 4; + _context5.next = 7; break; } - throw new Error('Invalid hash: ' + hash); + throw new Error("Invalid hash: ".concat(hash)); - case 4: - _context5.next = 6; + case 7: + _context5.next = 9; return LogIO.fromMultihash(ipfs, hash, length, exclude, onProgressCallback); - case 6: + case 9: data = _context5.sent; - return _context5.abrupt('return', new Log(ipfs, access, identity, data.id, data.values, data.heads, data.clock)); + return _context5.abrupt("return", new Log(ipfs, access, identity, data.id, data.values, data.heads, data.clock)); - case 8: - case 'end': + case 11: + case "end": return _context5.stop(); } } }, _callee5, this); })); - function fromMultihash(_x9, _x10, _x11, _x12) { - return _ref5.apply(this, arguments); + function fromMultihash(_x5, _x6, _x7, _x8) { + return _fromMultihash.apply(this, arguments); } return fromMultihash; }() - /** * Create a log from a single entry's multihash * @param {IPFS} ipfs An IPFS instance @@ -758,55 +739,61 @@ var Log = function (_GSet) { */ }, { - key: 'fromEntryHash', + key: "fromEntryHash", value: function () { - var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(ipfs, access, identity, hash, id) { - var length = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1; - var exclude = arguments[6]; - var onProgressCallback = arguments[7]; - var data; - return _regenerator2.default.wrap(function _callee6$(_context6) { + var _fromEntryHash = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee6(ipfs, access, identity, hash, id) { + var length, + exclude, + onProgressCallback, + data, + _args6 = arguments; + return _regenerator.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: + length = _args6.length > 5 && _args6[5] !== undefined ? _args6[5] : -1; + exclude = _args6.length > 6 ? _args6[6] : undefined; + onProgressCallback = _args6.length > 7 ? _args6[7] : undefined; + if (isDefined(ipfs)) { - _context6.next = 2; + _context6.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: if (isDefined(hash)) { - _context6.next = 4; + _context6.next = 7; break; } throw new Error("'hash' must be defined"); - case 4: - _context6.next = 6; + case 7: + _context6.next = 9; return LogIO.fromEntryHash(ipfs, hash, id, length, exclude, onProgressCallback); - case 6: + case 9: data = _context6.sent; - return _context6.abrupt('return', new Log(ipfs, access, identity, id, data.values)); + return _context6.abrupt("return", new Log(ipfs, access, identity, id, data.values)); - case 8: - case 'end': + case 11: + case "end": return _context6.stop(); } } }, _callee6, this); })); - function fromEntryHash(_x14, _x15, _x16, _x17, _x18) { - return _ref6.apply(this, arguments); + function fromEntryHash(_x9, _x10, _x11, _x12, _x13) { + return _fromEntryHash.apply(this, arguments); } return fromEntryHash; }() - /** * Create a log from a Log Snapshot JSON * @param {IPFS} ipfs An IPFS instance @@ -817,47 +804,53 @@ var Log = function (_GSet) { */ }, { - key: 'fromJSON', + key: "fromJSON", value: function () { - var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(ipfs, access, identity, json) { - var length = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; - var timeout = arguments[5]; - var onProgressCallback = arguments[6]; - var data; - return _regenerator2.default.wrap(function _callee7$(_context7) { + var _fromJSON = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee7(ipfs, access, identity, json) { + var length, + timeout, + onProgressCallback, + data, + _args7 = arguments; + return _regenerator.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: + length = _args7.length > 4 && _args7[4] !== undefined ? _args7[4] : -1; + timeout = _args7.length > 5 ? _args7[5] : undefined; + onProgressCallback = _args7.length > 6 ? _args7[6] : undefined; + if (isDefined(ipfs)) { - _context7.next = 2; + _context7.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: - _context7.next = 4; + case 5: + _context7.next = 7; return LogIO.fromJSON(ipfs, json, length, timeout, onProgressCallback); - case 4: + case 7: data = _context7.sent; - return _context7.abrupt('return', new Log(ipfs, access, identity, data.id, data.values)); + return _context7.abrupt("return", new Log(ipfs, access, identity, data.id, data.values)); - case 6: - case 'end': + case 9: + case "end": return _context7.stop(); } } }, _callee7, this); })); - function fromJSON(_x20, _x21, _x22, _x23) { - return _ref7.apply(this, arguments); + function fromJSON(_x14, _x15, _x16, _x17) { + return _fromJSON.apply(this, arguments); } return fromJSON; }() - /** * Create a new log from an Entry instance * @param {IPFS} ipfs An IPFS instance @@ -869,55 +862,61 @@ var Log = function (_GSet) { */ }, { - key: 'fromEntry', + key: "fromEntry", value: function () { - var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(ipfs, access, identity, sourceEntries) { - var length = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; - var exclude = arguments[5]; - var onProgressCallback = arguments[6]; - var data; - return _regenerator2.default.wrap(function _callee8$(_context8) { + var _fromEntry = (0, _asyncToGenerator2.default)( + /*#__PURE__*/ + _regenerator.default.mark(function _callee8(ipfs, access, identity, sourceEntries) { + var length, + exclude, + onProgressCallback, + data, + _args8 = arguments; + return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: + length = _args8.length > 4 && _args8[4] !== undefined ? _args8[4] : -1; + exclude = _args8.length > 5 ? _args8[5] : undefined; + onProgressCallback = _args8.length > 6 ? _args8[6] : undefined; + if (isDefined(ipfs)) { - _context8.next = 2; + _context8.next = 5; break; } throw LogError.IPFSNotDefinedError(); - case 2: + case 5: if (isDefined(sourceEntries)) { - _context8.next = 4; + _context8.next = 7; break; } throw new Error("'sourceEntries' must be defined"); - case 4: - _context8.next = 6; + case 7: + _context8.next = 9; return LogIO.fromEntry(ipfs, sourceEntries, length, exclude, onProgressCallback); - case 6: + case 9: data = _context8.sent; - return _context8.abrupt('return', new Log(ipfs, access, identity, data.id, data.values)); + return _context8.abrupt("return", new Log(ipfs, access, identity, data.id, data.values)); - case 8: - case 'end': + case 11: + case "end": return _context8.stop(); } } }, _callee8, this); })); - function fromEntry(_x25, _x26, _x27, _x28) { - return _ref8.apply(this, arguments); + function fromEntry(_x18, _x19, _x20, _x21) { + return _fromEntry.apply(this, arguments); } return fromEntry; }() - /** * Find heads from a collection of entries * @@ -930,12 +929,13 @@ var Log = function (_GSet) { */ }, { - key: 'findHeads', + key: "findHeads", value: function findHeads(entries) { var indexReducer = function indexReducer(res, entry, idx, arr) { var addToResult = function addToResult(e) { return res[e] = entry.hash; }; + entry.next.forEach(addToResult); return res; }; @@ -945,60 +945,62 @@ var Log = function (_GSet) { var exists = function exists(e) { return items[e.hash] === undefined; }; + var compareIds = function compareIds(a, b) { return a.clock.id > b.clock.id; }; return entries.filter(exists).sort(compareIds); - } - - // Find entries that point to another entry that is not in the + } // Find entries that point to another entry that is not in the // input array }, { - key: 'findTails', + key: "findTails", value: function findTails(entries) { // Reverse index { next -> entry } - var reverseIndex = {}; - // Null index containing entries that have no parents (nexts) - var nullIndex = []; - // Hashes for all entries for quick lookups - var hashes = {}; - // Hashes of all next entries + var reverseIndex = {}; // Null index containing entries that have no parents (nexts) + + var nullIndex = []; // Hashes for all entries for quick lookups + + var hashes = {}; // Hashes of all next entries + var nexts = []; var addToIndex = function addToIndex(e) { if (e.next.length === 0) { nullIndex.push(e); } + var addToReverseIndex = function addToReverseIndex(a) { /* istanbul ignore else */ if (!reverseIndex[a]) reverseIndex[a] = []; reverseIndex[a].push(e); - }; + }; // Add all entries and their parents to the reverse index + + + e.next.forEach(addToReverseIndex); // Get all next references + + nexts = nexts.concat(e.next); // Get the hashes of input entries - // Add all entries and their parents to the reverse index - e.next.forEach(addToReverseIndex); - // Get all next references - nexts = nexts.concat(e.next); - // Get the hashes of input entries hashes[e.hash] = true; - }; + }; // Create our indices + - // Create our indices entries.forEach(addToIndex); var addUniques = function addUniques(res, entries, idx, arr) { return res.concat(findUniques(entries, 'hash')); }; + var exists = function exists(e) { return hashes[e] === undefined; }; + var findFromReverseIndex = function findFromReverseIndex(e) { return reverseIndex[e]; - }; + }; // Drop hashes that are not in the input entries + - // Drop hashes that are not in the input entries var tails = nexts // For every multihash in nexts: .filter(exists) // Remove undefineds and nulls .map(findFromReverseIndex) // Get the Entry from the reverse index @@ -1006,18 +1008,18 @@ var Log = function (_GSet) { .concat(nullIndex); // Combine with tails the have no next refs (ie. first-in-their-chain) return findUniques(tails, 'hash').sort(Entry.compare); - } - - // Find the hashes to entries that are not in a collection + } // Find the hashes to entries that are not in a collection // but referenced by other entries }, { - key: 'findTailHashes', + key: "findTailHashes", value: function findTailHashes(entries) { var hashes = {}; + var addToIndex = function addToIndex(e) { return hashes[e.hash] = true; }; + var reduceTailHashes = function reduceTailHashes(res, entry, idx, arr) { var addToResult = function addToResult(e) { /* istanbul ignore else */ @@ -1025,6 +1027,7 @@ var Log = function (_GSet) { res.splice(0, 0, e); } }; + entry.next.reverse().forEach(addToResult); return res; }; @@ -1033,9 +1036,9 @@ var Log = function (_GSet) { return entries.reduce(reduceTailHashes, []); } }, { - key: 'difference', + key: "difference", value: function difference(a, b) { - var stack = (0, _keys2.default)(a._headsIndex); + var stack = Object.keys(a._headsIndex); var traversed = {}; var res = {}; @@ -1049,12 +1052,14 @@ var Log = function (_GSet) { while (stack.length > 0) { var hash = stack.shift(); var entry = a.get(hash); + if (entry && !b.get(hash) && entry.id === b.id) { res[entry.hash] = entry; traversed[entry.hash] = true; entry.next.forEach(pushToStack); } } + return res; } }]); @@ -1062,5 +1067,4 @@ var Log = function (_GSet) { }(GSet); module.exports = Log; -module.exports.AccessController = AccessController; -module.exports.IdentityProvider = IdentityProvider; \ No newline at end of file +module.exports.AccessController = AccessController; \ No newline at end of file diff --git a/lib/es5/utils/difference.js b/lib/es5/utils/difference.js index a47b1152..150dd815 100644 --- a/lib/es5/utils/difference.js +++ b/lib/es5/utils/difference.js @@ -3,22 +3,23 @@ function difference(a, b, key) { // Indices for quick lookups var processed = {}; - var existing = {}; + var existing = {}; // Create an index of the first collection - // Create an index of the first collection var addToIndex = function addToIndex(e) { return existing[key ? e[key] : e] = true; }; - a.forEach(addToIndex); - // Reduce to entries that are not in the first collection + a.forEach(addToIndex); // Reduce to entries that are not in the first collection + var reducer = function reducer(res, entry) { var isInFirst = existing[key ? entry[key] : entry] !== undefined; var hasBeenProcessed = processed[key ? entry[key] : entry] !== undefined; + if (!isInFirst && !hasBeenProcessed) { res.push(entry); processed[key ? entry[key] : entry] = true; } + return res; }; diff --git a/lib/es5/utils/find-uniques.js b/lib/es5/utils/find-uniques.js index 917e3004..9b0ae35f 100644 --- a/lib/es5/utils/find-uniques.js +++ b/lib/es5/utils/find-uniques.js @@ -1,22 +1,19 @@ 'use strict'; -var _keys = require('babel-runtime/core-js/object/keys'); - -var _keys2 = _interopRequireDefault(_keys); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function findUniques(value, key) { // Create an index of the collection var uniques = {}; + var get = function get(e) { return uniques[e]; }; + var addToIndex = function addToIndex(e) { return uniques[key ? e[key] : e] = e; }; + value.forEach(addToIndex); - return (0, _keys2.default)(uniques).map(get); + return Object.keys(uniques).map(get); } module.exports = findUniques; \ No newline at end of file diff --git a/lib/es5/utils/index.js b/lib/es5/utils/index.js index 742f33b1..e524fbc3 100644 --- a/lib/es5/utils/index.js +++ b/lib/es5/utils/index.js @@ -1,13 +1,13 @@ 'use strict'; var difference = require('./difference'); + var findUniques = require('./find-uniques'); -var intersection = require('./intersection'); + var isDefined = require('./is-defined'); module.exports = { difference: difference, findUniques: findUniques, - intersection: intersection, isDefined: isDefined }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ad0a9b1e..738142f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,1178 +4,1445 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@nodeutils/defaults-deep": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz", - "integrity": "sha1-uxEk3I184LxdodZorOWBSSWO8gs=", + "@babel/cli": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.2.3.tgz", + "integrity": "sha512-bfna97nmJV6nDJhXNPeEfxyMjWnt6+IjUAaDPiYRTBlm8L41n8nvw6UAqUCbvpFfU246gHPxW7sfWwqtF4FcYA==", "dev": true, "requires": { - "lodash": "^4.15.0" + "chokidar": "^2.0.3", + "commander": "^2.8.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.10", + "mkdirp": "^0.5.1", + "output-file-sync": "^2.0.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" } }, - "@orbitdb/eslint-config-orbitdb": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@orbitdb/eslint-config-orbitdb/-/eslint-config-orbitdb-0.0.2.tgz", - "integrity": "sha512-D1wSyvxSX6Ksw1j6FtO1/7x0XZ9NIkBIGzG8wCxkI/t2xS+eX9S8V9x3HKV764fETTCBOmccg8dZfz4fBKT5Fw==", - "dev": true - }, - "File": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/File/-/File-0.10.2.tgz", - "integrity": "sha1-6Jn3dtJz4iQ7qGEFuzsFbQ+5VgQ=", + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "mime": ">= 0.0.0" + "@babel/highlight": "^7.0.0" } }, - "FileList": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/FileList/-/FileList-0.10.2.tgz", - "integrity": "sha1-YAOxqXFZNBZLZ8Q0rWqHQaHNFHo=", - "dev": true - }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "abstract-leveldown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", - "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", + "@babel/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", "dev": true, "requires": { - "xtend": "~4.0.0" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" } }, - "accept": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/accept/-/accept-2.1.4.tgz", - "integrity": "sha1-iHr1TO7lx/RDBGGXHsQAxh0JrLs=", + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", "dev": true, "requires": { - "boom": "5.x.x", - "hoek": "4.x.x" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.x.x" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true - } + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "dev": true, "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "@babel/types": "^7.0.0" } }, - "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", - "dev": true + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", "dev": true, "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/types": "^7.0.0" } }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "@babel/types": "^7.0.0" } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "dev": true, - "optional": true + "requires": { + "@babel/types": "^7.0.0" + } }, - "ammo": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-2.0.4.tgz", - "integrity": "sha1-v4CqshFpjqePY+9efxE91dnokX8=", + "@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", "dev": true, "requires": { - "boom": "5.x.x", - "hoek": "4.x.x" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.x.x" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true - } + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" } }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "dev": true, "requires": { - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "@babel/types": "^7.0.0" } }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", "dev": true }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "@babel/helper-replace-supers": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", + "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", "dev": true, - "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.2.3", + "@babel/types": "^7.0.0" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "@babel/types": "^7.0.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" } }, - "args": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.0.tgz", - "integrity": "sha512-eCZo33yLdQ3DiG/Ko5n11uPonyYofYd9F2cqWID8TKGZwK/Z2ZcUj/oZ1HNMeNL2lgraPnv3JBZumfbUMqmZtg==", + "@babel/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==", "dev": true, "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.1", - "leven": "2.1.0", - "mri": "1.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.2.0" } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, - "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==", "dev": true }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==", "dev": true, - "optional": true + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" } }, - "asn1.js": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.0.1.tgz", - "integrity": "sha512-aO8EaEgbgqq77IEw+1jfx5c9zTbzvkfuRBuZsSsPnTHMkmd5AI4J6OtITLZFa381jReeaQL67J0GBTUu0+ZTVw==", + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "dev": true, "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "@babel/helper-plugin-utils": "^7.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "dev": true, "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", "lodash": "^4.17.10" } }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true + "@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + } }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "@babel/plugin-transform-destructuring": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz", + "integrity": "sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "b64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/b64/-/b64-3.0.3.tgz", - "integrity": "sha512-Pbeh0i6OLubPJdIdCepn8ZQHwN2MWznZHbHABSTEfQ706ie+yuxNSaPdqX1xRatT6WanaS1EazMiSg0NUW2XxQ==", - "dev": true + "@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.13.3" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", + "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "@babel/preset-env": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.3.tgz", + "integrity": "sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "@babel/runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", + "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "regenerator-runtime": "^0.12.0" } }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" } }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" } }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" } }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "@nodeutils/defaults-deep": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz", + "integrity": "sha1-uxEk3I184LxdodZorOWBSSWO8gs=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "lodash": "^4.15.0" } }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "@orbitdb/eslint-config-orbitdb": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@orbitdb/eslint-config-orbitdb/-/eslint-config-orbitdb-0.0.2.tgz", + "integrity": "sha512-D1wSyvxSX6Ksw1j6FtO1/7x0XZ9NIkBIGzG8wCxkI/t2xS+eX9S8V9x3HKV764fETTCBOmccg8dZfz4fBKT5Fw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@webassemblyjs/wast-printer": "1.7.11" } }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@xtuc/ieee754": "^1.2.0" } }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "@xtuc/long": "4.2.1" } }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, - "babel-loader": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", - "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "util.promisify": "^1.0.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", "dev": true }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "File": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/File/-/File-0.10.2.tgz", + "integrity": "sha1-6Jn3dtJz4iQ7qGEFuzsFbQ+5VgQ=", + "dev": true, + "requires": { + "mime": ">= 0.0.0" + } + }, + "FileList": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/FileList/-/FileList-0.10.2.tgz", + "integrity": "sha1-YAOxqXFZNBZLZ8Q0rWqHQaHNFHo=", "dev": true }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", "dev": true }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "abstract-leveldown": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz", + "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "xtend": "~4.0.0" } }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "accept": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/accept/-/accept-2.1.4.tgz", + "integrity": "sha1-iHr1TO7lx/RDBGGXHsQAxh0JrLs=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "boom": "5.x.x", + "hoek": "4.x.x" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.x.x" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + } } }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "mime-types": "~2.1.18", + "negotiator": "0.6.1" } }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "acorn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "acorn": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" } }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "ajv": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, + "ammo": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/ammo/-/ammo-2.0.4.tgz", + "integrity": "sha1-v4CqshFpjqePY+9efxE91dnokX8=", "dev": true, "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "boom": "5.x.x", + "hoek": "4.x.x" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.x.x" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + } } }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "ansi-escapes": { + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "color-convert": "^1.9.0" } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } } }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "args": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.0.tgz", + "integrity": "sha512-eCZo33yLdQ3DiG/Ko5n11uPonyYofYd9F2cqWID8TKGZwK/Z2ZcUj/oZ1HNMeNL2lgraPnv3JBZumfbUMqmZtg==", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "camelcase": "5.0.0", + "chalk": "2.4.1", + "leven": "2.1.0", + "mri": "1.1.1" } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "safer-buffer": "~2.1.0" } }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "asn1.js": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.0.1.tgz", + "integrity": "sha512-aO8EaEgbgqq77IEw+1jfx5c9zTbzvkfuRBuZsSsPnTHMkmd5AI4J6OtITLZFa381jReeaQL67J0GBTUu0+ZTVw==", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "lodash": "^4.17.10" } }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - } + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } + "b64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/b64/-/b64-3.0.3.tgz", + "integrity": "sha512-Pbeh0i6OLubPJdIdCepn8ZQHwN2MWznZHbHABSTEfQ706ie+yuxNSaPdqX1xRatT6WanaS1EazMiSg0NUW2XxQ==", + "dev": true }, - "babel-traverse": { + "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "babel-loader": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", + "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -1236,22 +1503,10 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1264,6 +1519,12 @@ "safe-buffer": "^5.0.1" } }, + "base32-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-1.1.0.tgz", + "integrity": "sha512-fQWhpkWtaOPr+wvXWYDu1AfRbtIIzWDt3yDDNXLENWPwFyyxDJfVaJoOc1ks1TQckogPiHmb+0iZLQFPkZw8kg==", + "dev": true + }, "base32.js": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", @@ -1494,25 +1755,11 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -1538,15 +1785,6 @@ "requires": { "ansi-regex": "^3.0.0" } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -1561,15 +1799,32 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "brorand": { @@ -1656,13 +1911,14 @@ } }, "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", + "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "^1.0.30000921", + "electron-to-chromium": "^1.3.92", + "node-releases": "^1.1.1" } }, "bs58": { @@ -1776,22 +2032,23 @@ "dev": true }, "cacache": { - "version": "10.0.4", - "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz", + "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==", "dev": true, "requires": { "bluebird": "^3.5.1", "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", "glob": "^7.1.2", "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", "rimraf": "^2.6.2", - "ssri": "^5.2.4", + "ssri": "^6.0.0", "unique-filename": "^1.1.0", "y18n": "^4.0.0" } @@ -1811,14 +2068,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "call": { @@ -1870,15 +2119,15 @@ "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "dev": true }, "caniuse-lite": { - "version": "1.0.30000921", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz", - "integrity": "sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw==", + "version": "1.0.30000923", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", + "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==", "dev": true }, "capture-stack-trace": { @@ -1950,24 +2199,6 @@ } } }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "dependencies": { - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - } - } - }, "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -1978,16 +2209,14 @@ } }, "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -1997,21 +2226,24 @@ "dev": true }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, - "optional": true, "requires": { - "anymatch": "^1.3.0", + "anymatch": "^2.0.0", "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, "chownr": { @@ -2020,6 +2252,15 @@ "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "chunky": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/chunky/-/chunky-0.0.0.tgz", @@ -2032,6 +2273,19 @@ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, + "cid-tool": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cid-tool/-/cid-tool-0.1.0.tgz", + "integrity": "sha512-lss0IzW2uiLm+W8St00N23+ySnCoFTD7qPZB1WqqOSvT5mzDG8Di9e5LmcaEkNfFXh7xAmlPZmJnvWxAjVPErg==", + "dev": true, + "requires": { + "cids": "~0.5.3", + "explain-error": "^1.0.4", + "multibase": "~0.5.0", + "multihashes": "~0.4.14", + "yargs": "^12.0.2" + } + }, "cids": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/cids/-/cids-0.5.7.tgz", @@ -2106,12 +2360,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, @@ -2376,10 +2624,10 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "core-js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz", - "integrity": "sha512-kLRC6ncVpuEW/1kwrOXYX6KQASCVtrh1gQr/UiaVgFlf9WE5Vp+lNe5+h3LuMr5PAucWnnEXwH0nQHRH/gpGtw==", + "core-decorators": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/core-decorators/-/core-decorators-0.20.0.tgz", + "integrity": "sha1-YFiWYkBTr4wo775zXCWjAaYcZcU=", "dev": true }, "core-util-is": { @@ -2435,12 +2683,14 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -2502,15 +2752,6 @@ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, - "d": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2527,47 +2768,47 @@ "dev": true }, "datastore-core": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-0.4.0.tgz", - "integrity": "sha512-BQC3f2jSUgVL1DUjt/ZJr9yWzNYyx3ApNh4NhMYFZBap0c+iTKJqyHRlO4bRT+CZG0mqqOUTNXU3qYvTJlN6OA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-0.6.0.tgz", + "integrity": "sha512-xWMnzq4G3BQ12Nt5YYyYNGOO07pFUzPlphHJxkuwDD4NGR0pSwT4pHnTx+OndXDVsIHijTGGM8flKFE3196mvw==", "dev": true, "requires": { - "async": "^2.5.0", - "interface-datastore": "~0.4.0", - "left-pad": "^1.1.3", + "async": "^2.6.1", + "interface-datastore": "~0.6.0", + "left-pad": "^1.3.0", "pull-many": "^1.0.8", - "pull-stream": "^3.6.1" + "pull-stream": "^3.6.9" } }, "datastore-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-0.5.0.tgz", - "integrity": "sha512-l2WF+/TFzzCY3L0b4GYYa196X25PqR2jZnLvqXtz2WODkTXZTcZJ+s4+KAnUAc6TMxWejN8NkEnkcPL05lKSSA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-0.7.0.tgz", + "integrity": "sha512-U8amTi/aWW391JYeFbIzjKtEqECXuMvDafD0XphsiaRKp0If4SwxgmlMn+y7BHlCRrf4/AYAwemVZBMBrSwIxA==", "dev": true, "requires": { "async": "^2.6.1", - "datastore-core": "~0.4.0", - "glob": "^7.1.2", + "datastore-core": "~0.6.0", + "glob": "^7.1.3", "graceful-fs": "^4.1.11", - "interface-datastore": "^0.4.2", + "interface-datastore": "~0.6.0", "mkdirp": "~0.5.1", - "pull-stream": "^3.6.8", + "pull-stream": "^3.6.9", "write-file-atomic": "^2.3.0" } }, "datastore-level": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.8.0.tgz", - "integrity": "sha512-RSklSUhf4CBNXm8akR+Q7LvDE4J6NA8XfZ3h5pGPempdXcExFui5CoyHJscOlu0culvZzuJLU4k5PxcLPGzuMw==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.10.0.tgz", + "integrity": "sha512-2ZkfI3xwtRK50N7DKCu4TmohUev0gs2KIR27QaE12Zo32wNJMIHY1OV5AES/VCdC1N8raAr/JIgPAInnPb1yLQ==", "dev": true, "requires": { - "datastore-core": "~0.4.0", - "encoding-down": "^5.0.2", - "interface-datastore": "~0.4.1", + "datastore-core": "~0.6.0", + "encoding-down": "^5.0.4", + "interface-datastore": "~0.6.0", "level-js": "github:timkuijsten/level.js#18e03adab34c49523be7d3d58fafb0c632f61303", "leveldown": "^3.0.2", "levelup": "^2.0.2", - "pull-stream": "^3.6.1" + "pull-stream": "^3.6.9" } }, "date-now": { @@ -2577,12 +2818,12 @@ "dev": true }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "debug-log": { @@ -2702,18 +2943,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -2767,15 +2996,6 @@ "minimalistic-assert": "^1.0.0" } }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -2921,9 +3141,9 @@ } }, "electron-to-chromium": { - "version": "1.3.92", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.92.tgz", - "integrity": "sha512-En051LMzMl3/asMWGZEtU808HOoVWIpmmZx1Ep8N+TT9e7z/X8RcLeBU2kLSNLGQ+5SuKELzMx+MVuTBXk6Q9w==", + "version": "1.3.95", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.95.tgz", + "integrity": "sha512-0JZEDKOQAE05EO/4rk3vLAE+PYFI9OLCVLAS4QAq1y+Bb2y1N6MyQJz62ynzHN/y0Ka/nO5jVJcahbCEdfiXLQ==", "dev": true }, "elliptic": { @@ -2992,6 +3212,12 @@ "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "ws": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", @@ -3031,6 +3257,12 @@ "ms": "2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "ws": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", @@ -3056,15 +3288,14 @@ } }, "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" + "tapable": "^1.0.0" } }, "epimetheus": { @@ -3135,42 +3366,6 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, "es6-promise": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", @@ -3186,41 +3381,6 @@ "es6-promise": "^4.0.3" } }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3252,26 +3412,6 @@ } } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } - }, "eslint": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.4.0.tgz", @@ -3324,39 +3464,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -3366,18 +3473,6 @@ "ms": "^2.1.1" } }, - "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -3386,15 +3481,6 @@ "requires": { "ansi-regex": "^3.0.0" } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -3420,14 +3506,20 @@ "resolve": "^1.5.0" }, "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -3441,6 +3533,15 @@ "pkg-dir": "^1.0.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -3451,6 +3552,12 @@ "pinkie-promise": "^2.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -3499,6 +3606,15 @@ "resolve": "^1.6.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "doctrine": { "version": "1.5.0", "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", @@ -3521,6 +3637,12 @@ "strip-bom": "^3.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -3565,15 +3687,6 @@ "find-up": "^2.0.0", "read-pkg": "^2.0.0" } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } } } }, @@ -3589,17 +3702,6 @@ "minimatch": "^3.0.4", "resolve": "^1.8.1", "semver": "^5.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } } }, "eslint-plugin-promise": { @@ -3791,16 +3893,6 @@ "strip-hex-prefix": "1.0.0" } }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "events": { "version": "1.1.1", "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", @@ -3818,12 +3910,12 @@ } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "^5.0.1", + "cross-spawn": "^6.0.0", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", @@ -3833,23 +3925,53 @@ } }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, - "optional": true, "requires": { - "fill-range": "^2.1.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "expand-template": { @@ -3858,6 +3980,12 @@ "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", "dev": true }, + "explain-error": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz", + "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk=", + "dev": true + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3897,13 +4025,68 @@ } }, "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "optional": true, "requires": { - "is-extglob": "^1.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "extract-zip": { @@ -3916,6 +4099,23 @@ "debug": "2.6.9", "mkdirp": "0.5.1", "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "extsprintf": { @@ -3957,6 +4157,12 @@ "pend": "~1.2.0" } }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -3999,18 +4205,11 @@ "dev": true }, "file-type": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", - "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.7.0.tgz", + "integrity": "sha512-AbaGtdWYYRaVrv2MwL/65myuRJ9j3e79e7etJ79US18QHuVlzJBcQHUH+HxDUoLtbyWRTUfLzLkGXX3pP9kfZg==", "dev": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true, - "optional": true - }, "filereader": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/filereader/-/filereader-0.10.3.tgz", @@ -4034,17 +4233,26 @@ "dev": true }, "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "optional": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-cache-dir": { @@ -4058,49 +4266,6 @@ "pkg-dir": "^2.0.0" } }, - "find-process": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.2.1.tgz", - "integrity": "sha512-z4RXYStNAcoi4+smpKbzJXbMT8DdvwqTE7wL7DWZMD0SkTRfQ49z9S7YaK24kuRseKr23YSZlnyL/TaJZtgM1g==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "commander": "^2.11.0", - "debug": "^2.6.8", - "lodash": "^4.17.11" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -4241,15 +4406,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-ext": { - "version": "github:baudehlo/node-fs-ext#2ba366d9fc67ef3ab165e239068924b276ecf249", - "from": "github:baudehlo/node-fs-ext#master", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.10.0" - } - }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -5455,24 +5611,25 @@ "path-is-absolute": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "global-dirs": { @@ -5484,10 +5641,16 @@ "ini": "^1.3.4" } }, + "global-modules-path": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.1.tgz", + "integrity": "sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==", + "dev": true + }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", "dev": true }, "go-ipfs-dep": { @@ -5566,6 +5729,12 @@ "uglify-js": "^3.1.4" }, "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -5738,14 +5907,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "has-values": { @@ -5758,26 +5919,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -5890,16 +6031,6 @@ "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", "dev": true }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", @@ -5941,12 +6072,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -6007,6 +6132,70 @@ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6117,26 +6306,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -6161,15 +6330,6 @@ "requires": { "ansi-regex": "^3.0.0" } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -6183,15 +6343,17 @@ } }, "interface-datastore": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.4.2.tgz", - "integrity": "sha512-Vztsb1SXZANtwwGkpDoxOTMELhhuCklkQKbjma6PY4XLwIyrhQ1xEKaG1sOHavMXoghThw8IZEysiCDrofOQKQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.6.0.tgz", + "integrity": "sha512-aDbjWsEdTHd2Yc2A8QOeAEWMwlWDwumVX24bE0/AE7XxfDveWuDUKP7HQito0u1c80FZmR+y/Op14um+cG0CSw==", "dev": true, "requires": { - "async": "^2.6.0", - "pull-defer": "^0.2.2", - "pull-stream": "^3.6.1", - "uuid": "^3.1.0" + "async": "^2.6.1", + "class-is": "^1.1.0", + "err-code": "^1.1.2", + "pull-defer": "~0.2.3", + "pull-stream": "^3.6.9", + "uuid": "^3.2.2" } }, "interpret": { @@ -6245,101 +6407,106 @@ } }, "ipfs": { - "version": "0.31.7", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.31.7.tgz", - "integrity": "sha512-HuA0Y6K7Y6f2Yu+ehUlGhv5VF2PtdZuME1AWYu/8zkfZ+HRpIYANjoK9GqZh6CQjOTJnIrEdqkHpOivUrZnIIg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.33.1.tgz", + "integrity": "sha512-He22aMi/qJYcao4zkh9fS1cZZWKPWIyO964j/Bt+DhEUVO79DBBGW+PuF3I8IfVE8ihDxImxNboal3pbZT9EdA==", "dev": true, "requires": { "@nodeutils/defaults-deep": "^1.1.0", "async": "^2.6.1", - "big.js": "^5.1.2", + "big.js": "^5.2.2", "binary-querystring": "~0.1.2", - "bl": "^2.0.1", + "bl": "^2.1.2", "boom": "^7.2.0", "bs58": "^4.0.1", "byteman": "^1.3.5", - "cids": "~0.5.3", - "debug": "^3.1.0", + "cid-tool": "~0.1.0", + "cids": "~0.5.5", + "debug": "^4.1.0", "err-code": "^1.1.2", - "file-type": "^8.1.0", - "filesize": "^3.6.1", + "file-type": "^10.2.0", "fnv1a": "^1.0.1", "fsm-event": "^2.1.0", "get-folder-size": "^2.0.0", - "glob": "^7.1.2", + "glob": "^7.1.3", "hapi": "^16.6.2", "hapi-set-header": "^1.0.2", - "hoek": "^5.0.3", + "hoek": "^5.0.4", "human-to-milliseconds": "^1.0.0", - "interface-datastore": "~0.4.2", - "ipfs-api": "^24.0.0", - "ipfs-bitswap": "~0.20.3", - "ipfs-block": "~0.7.1", - "ipfs-block-service": "~0.14.0", - "ipfs-http-response": "~0.1.2", - "ipfs-mfs": "~0.3.0", + "interface-datastore": "~0.6.0", + "ipfs-api": "^26.1.0", + "ipfs-bitswap": "~0.21.0", + "ipfs-block": "~0.8.0", + "ipfs-block-service": "~0.15.1", + "ipfs-http-response": "~0.2.0", + "ipfs-mfs": "~0.4.2", "ipfs-multipart": "~0.1.0", - "ipfs-repo": "~0.23.1", - "ipfs-unixfs": "~0.1.15", - "ipfs-unixfs-engine": "~0.32.1", - "ipld": "~0.17.3", - "ipld-dag-cbor": "~0.12.1", - "ipld-dag-pb": "~0.14.6", - "is-ipfs": "~0.4.2", + "ipfs-repo": "~0.25.0", + "ipfs-unixfs": "~0.1.16", + "ipfs-unixfs-engine": "~0.33.0", + "ipld": "~0.19.1", + "ipld-bitcoin": "~0.1.8", + "ipld-dag-pb": "~0.14.11", + "ipld-ethereum": "^2.0.1", + "ipld-git": "~0.2.2", + "ipld-raw": "^2.0.1", + "ipld-zcash": "~0.1.6", + "ipns": "~0.3.0", + "is-ipfs": "~0.4.7", "is-pull-stream": "~0.0.0", "is-stream": "^1.1.0", "joi": "^13.4.0", "joi-browser": "^13.4.0", "joi-multiaddr": "^2.0.0", - "libp2p": "~0.23.0", + "libp2p": "~0.23.1", "libp2p-bootstrap": "~0.9.3", - "libp2p-circuit": "~0.2.0", - "libp2p-floodsub": "~0.15.0", - "libp2p-kad-dht": "~0.10.1", - "libp2p-keychain": "~0.3.1", + "libp2p-crypto": "~0.14.0", + "libp2p-kad-dht": "~0.10.6", + "libp2p-keychain": "~0.3.3", "libp2p-mdns": "~0.12.0", - "libp2p-mplex": "~0.8.0", + "libp2p-mplex": "~0.8.2", + "libp2p-record": "~0.6.0", "libp2p-secio": "~0.10.0", - "libp2p-tcp": "~0.12.0", - "libp2p-webrtc-star": "~0.15.3", - "libp2p-websocket-star": "~0.8.1", + "libp2p-tcp": "~0.13.0", + "libp2p-webrtc-star": "~0.15.5", + "libp2p-websocket-star": "~0.9.0", "libp2p-websockets": "~0.12.0", - "lodash": "^4.17.10", - "mafmt": "^6.0.0", - "mime-types": "^2.1.19", + "lodash": "^4.17.11", + "mafmt": "^6.0.2", + "mime-types": "^2.1.21", "mkdirp": "~0.5.1", "multiaddr": "^5.0.0", "multiaddr-to-uri": "^4.0.0", - "multibase": "~0.4.0", - "multihashes": "~0.4.13", + "multibase": "~0.5.0", + "multihashes": "~0.4.14", "once": "^1.4.0", - "path-exists": "^3.0.0", "peer-book": "~0.8.0", - "peer-id": "~0.11.0", + "peer-id": "~0.12.0", "peer-info": "~0.14.1", - "progress": "^2.0.0", - "prom-client": "^11.1.1", - "prometheus-gc-stats": "~0.5.1", + "progress": "^2.0.1", + "prom-client": "^11.1.3", + "prometheus-gc-stats": "~0.6.0", "promisify-es6": "^1.0.3", "pull-abortable": "^4.1.1", - "pull-defer": "~0.2.2", + "pull-catch": "^1.0.0", + "pull-defer": "~0.2.3", "pull-file": "^1.1.0", "pull-ndjson": "~0.1.1", "pull-paramap": "^1.2.2", "pull-pushable": "^2.2.0", "pull-sort": "^1.0.1", - "pull-stream": "^3.6.8", + "pull-stream": "^3.6.9", "pull-stream-to-stream": "^1.3.4", "pull-zip": "^2.0.1", + "pump": "^3.0.0", "read-pkg-up": "^4.0.0", - "readable-stream": "2.3.6", + "readable-stream": "3.0.6", + "receptacle": "^1.3.2", "stream-to-pull-stream": "^1.7.2", - "tar-stream": "^1.6.1", + "tar-stream": "^1.6.2", "temp": "~0.8.3", - "through2": "^2.0.3", "update-notifier": "^2.5.0", - "yargs": "^12.0.1", - "yargs-parser": "^10.1.0", + "yargs": "^12.0.2", "yargs-promise": "^1.1.0" }, "dependencies": { @@ -6357,89 +6524,363 @@ "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "ipfs-repo": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.25.2.tgz", + "integrity": "sha512-TuhUdturwwG/hKdK2m1fv6Hz1hvHsdXQqAsDr0uEXK8WOfz7CZ9IHLU3feDTDhh8nr4fB0nOO5xaTz3cCZ+/9Q==", "dev": true, "requires": { - "ms": "^2.1.1" + "async": "^2.6.1", + "base32.js": "~0.1.0", + "big.js": "^5.2.2", + "cids": "~0.5.5", + "datastore-core": "~0.6.0", + "datastore-fs": "~0.7.0", + "datastore-level": "~0.10.0", + "debug": "^4.1.0", + "interface-datastore": "~0.6.0", + "ipfs-block": "~0.7.1", + "lodash.get": "^4.4.2", + "lodash.has": "^4.5.2", + "lodash.set": "^4.3.2", + "multiaddr": "^5.0.0", + "proper-lockfile": "^3.2.0", + "pull-stream": "^3.6.9", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "ipfs-block": { + "version": "0.7.1", + "resolved": "http://registry.npmjs.org/ipfs-block/-/ipfs-block-0.7.1.tgz", + "integrity": "sha512-ABZS9J/+OaDwc10zu6pIVdxWnOD/rkPEravk7FRVuRep7/zKSjffNhO/WuHN7Ex+MOBMz7mty0e+i6xjGnRsRQ==", + "dev": true, + "requires": { + "cids": "^0.5.3", + "class-is": "^1.1.0" + } + } } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "readable-stream": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", + "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, "ipfs-api": { - "version": "24.0.2", - "resolved": "https://registry.npmjs.org/ipfs-api/-/ipfs-api-24.0.2.tgz", - "integrity": "sha512-3uxSZ+KNlQql3HO//gfR2Q+MTrfcmkLPlGP9Ewv28Ri+IEUZ3oawo9JahWCEGvXrnJmpRpD9Ko8dYHQZTq+3bA==", + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/ipfs-api/-/ipfs-api-26.1.2.tgz", + "integrity": "sha512-HkM6vQOHL9z9ZCXIrbDXvAOsIzfWPaAac9kY+SjUuVqMydWHzP8qTxfv5jaXResGbmLcbwcROhuqgJU+HrclSg==", "dev": true, "requires": { "async": "^2.6.1", - "big.js": "^5.1.2", + "big.js": "^5.2.2", + "bl": "^2.1.2", "bs58": "^4.0.1", - "cids": "~0.5.3", + "cids": "~0.5.5", + "concat-stream": "^1.6.2", + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "end-of-stream": "^1.4.1", + "flatmap": "0.0.3", + "glob": "^7.1.3", + "ipfs-block": "~0.8.0", + "ipfs-unixfs": "~0.1.16", + "ipld-dag-cbor": "~0.13.0", + "ipld-dag-pb": "~0.14.11", + "is-ipfs": "~0.4.7", + "is-pull-stream": "0.0.0", + "is-stream": "^1.1.0", + "libp2p-crypto": "~0.14.0", + "lodash": "^4.17.11", + "lru-cache": "^4.1.3", + "multiaddr": "^5.0.0", + "multibase": "~0.5.0", + "multihashes": "~0.4.14", + "ndjson": "^1.5.0", + "once": "^1.4.0", + "peer-id": "~0.12.0", + "peer-info": "~0.14.1", + "promisify-es6": "^1.0.3", + "pull-defer": "~0.2.3", + "pull-pushable": "^2.2.0", + "pull-stream-to-stream": "^1.3.4", + "pump": "^3.0.0", + "qs": "^6.5.2", + "readable-stream": "^3.0.6", + "stream-http": "^3.0.0", + "stream-to-pull-stream": "^1.7.2", + "streamifier": "~0.1.1", + "tar-stream": "^1.6.2", + "through2": "^2.0.3" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "bl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.1.2.tgz", + "integrity": "sha512-DvC0x+PxmSJNx8wXoFV15pC2+GOJ3ohb4F1REq3X32a2Z3nEBpR1Guu740M7ouYAImFj4BXDNilLNZbygtG9lQ==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "readable-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", + "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "ipfs-bitswap": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-0.21.1.tgz", + "integrity": "sha512-uuT0evC8Kv39NwHUf/wa21DplFEMCV9A2pdIRI7BJi0R4i2rDTEXoLXu5/ivWvVrNU22JDUyvROOpp6Dh0Gd4Q==", + "dev": true, + "requires": { + "async": "^2.6.1", + "big.js": "^5.2.2", + "cids": "~0.5.5", + "debug": "^4.1.0", + "ipfs-block": "~0.8.0", + "lodash.debounce": "^4.0.8", + "lodash.find": "^4.6.0", + "lodash.groupby": "^4.6.0", + "lodash.isequalwith": "^4.4.0", + "lodash.isundefined": "^3.0.1", + "lodash.pullallwith": "^4.7.0", + "lodash.sortby": "^4.7.0", + "lodash.uniqwith": "^4.5.0", + "lodash.values": "^4.3.0", + "moving-average": "^1.0.0", + "multicodec": "~0.2.7", + "multihashing-async": "~0.5.1", + "protons": "^1.0.1", + "pull-defer": "~0.2.3", + "pull-length-prefixed": "^1.3.1", + "pull-pushable": "^2.2.0", + "pull-stream": "^3.6.9", + "varint-decoder": "~0.1.1" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + } + } + }, + "ipfs-block": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ipfs-block/-/ipfs-block-0.8.0.tgz", + "integrity": "sha512-znNtFRxXlJYP1/Q4u0tGFJUceH9pNww8WA+zair6T3y7d28m+vtUDJGn96M7ZlFFSkByQyQsAiq2ssNhKtMzxw==", + "dev": true, + "requires": { + "cids": "~0.5.5", + "class-is": "^1.1.0" + } + }, + "ipfs-block-service": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.15.2.tgz", + "integrity": "sha512-iudmJO7UJZHonWoXyakuzy+bpV/7QVDm/g8eCqKN2BvhSjnLepaxdTyaXxJ76F2EOav1hdBP+U3Z9Mg/aCFPgg==", + "dev": true, + "requires": { + "async": "^2.6.1" + } + }, + "ipfs-http-client": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-27.1.0.tgz", + "integrity": "sha512-Id9C0V8Bxnr8xBjXdVf7qUBAnslkvgHSFJw+csx4t5dqqeaI/aOLnNZG/6RBgmvI0//3ixKgwzgSt2vBHxeikw==", + "dev": true, + "requires": { + "async": "^2.6.1", + "big.js": "^5.2.2", + "bl": "^2.1.2", + "bs58": "^4.0.1", + "cids": "~0.5.5", "concat-stream": "^1.6.2", - "debug": "^3.1.0", - "detect-node": "^2.0.3", + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "end-of-stream": "^1.4.1", "flatmap": "0.0.3", - "glob": "^7.1.2", - "ipfs-block": "~0.7.1", - "ipfs-unixfs": "~0.1.15", - "ipld-dag-cbor": "~0.12.1", - "ipld-dag-pb": "~0.14.6", - "is-ipfs": "~0.4.2", + "glob": "^7.1.3", + "ipfs-block": "~0.8.0", + "ipfs-unixfs": "~0.1.16", + "ipld-dag-cbor": "~0.13.0", + "ipld-dag-pb": "~0.15.0", + "is-ipfs": "~0.4.7", "is-pull-stream": "0.0.0", "is-stream": "^1.1.0", - "libp2p-crypto": "~0.13.0", + "libp2p-crypto": "~0.14.0", + "lodash": "^4.17.11", "lru-cache": "^4.1.3", - "multiaddr": "^5.0.0", - "multibase": "~0.4.0", - "multihashes": "~0.4.13", + "multiaddr": "^5.0.2", + "multibase": "~0.6.0", + "multihashes": "~0.4.14", "ndjson": "^1.5.0", "once": "^1.4.0", - "peer-id": "~0.11.0", + "peer-id": "~0.12.0", "peer-info": "~0.14.1", "promisify-es6": "^1.0.3", - "pull-defer": "~0.2.2", + "pull-defer": "~0.2.3", "pull-pushable": "^2.2.0", "pull-stream-to-stream": "^1.3.4", "pump": "^3.0.0", "qs": "^6.5.2", - "readable-stream": "^2.3.6", - "stream-http": "^2.8.3", + "readable-stream": "^3.0.6", + "stream-http": "^3.0.0", "stream-to-pull-stream": "^1.7.2", "streamifier": "~0.1.1", - "tar-stream": "^1.6.1" + "tar-stream": "^1.6.2", + "through2": "^2.0.3" }, "dependencies": { + "base-x": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", + "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "bl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.1.2.tgz", + "integrity": "sha512-DvC0x+PxmSJNx8wXoFV15pC2+GOJ3ohb4F1REq3X32a2Z3nEBpR1Guu740M7ouYAImFj4BXDNilLNZbygtG9lQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "ipld-dag-pb": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.15.2.tgz", + "integrity": "sha512-9mzeYW4FneGROH+/PXMbXsfy3cUsMYHaI6vUu8nNpSTyQdGF+fa1ViA+jvqWzM8zXYwG4OOSCAAADssJeELAvw==", + "dev": true, + "requires": { + "async": "^2.6.1", + "bs58": "^4.0.1", + "cids": "~0.5.4", + "class-is": "^1.1.0", + "is-ipfs": "~0.4.2", + "multihashing-async": "~0.5.1", + "protons": "^1.0.1", + "pull-stream": "^3.6.9", + "pull-traverse": "^1.0.3", + "stable": "~0.1.8" + } + }, + "multibase": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.0.tgz", + "integrity": "sha512-R9bNLQhbD7MsitPm1NeY7w9sDgu6d7cuj25snAWH7k5PSNPSwIQQBpcpj8jx1W96dLbdigZqmUWOdQRMnAmgjA==", + "dev": true, + "requires": { + "base-x": "3.0.4" + } }, "pump": { "version": "3.0.0", @@ -6450,94 +6891,35 @@ "end-of-stream": "^1.1.0", "once": "^1.3.1" } - } - } - }, - "ipfs-bitswap": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-0.20.3.tgz", - "integrity": "sha512-qXg/QhevKBU/tKdWgW6yhcSKQDQx+4Mvv9HEeoVjkqZ9Pagmojk6yGk8X4J9H2G2PagvHXkWsqwqyKho7RcPWA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "big.js": "^5.1.2", - "cids": "~0.5.3", - "debug": "^3.1.0", - "ipfs-block": "~0.7.1", - "lodash.debounce": "^4.0.8", - "lodash.find": "^4.6.0", - "lodash.groupby": "^4.6.0", - "lodash.isequalwith": "^4.4.0", - "lodash.isundefined": "^3.0.1", - "lodash.pullallwith": "^4.7.0", - "lodash.sortby": "^4.7.0", - "lodash.uniqwith": "^4.5.0", - "lodash.values": "^4.3.0", - "moving-average": "^1.0.0", - "multicodec": "~0.2.7", - "multihashing-async": "~0.5.1", - "protons": "^1.0.1", - "pull-defer": "~0.2.2", - "pull-length-prefixed": "^1.3.0", - "pull-pushable": "^2.2.0", - "pull-stream": "^3.6.8", - "varint-decoder": "~0.1.1" - }, - "dependencies": { - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "readable-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", + "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", "dev": true, "requires": { - "ms": "^2.1.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, - "ipfs-block": { - "version": "0.7.1", - "resolved": "http://registry.npmjs.org/ipfs-block/-/ipfs-block-0.7.1.tgz", - "integrity": "sha512-ABZS9J/+OaDwc10zu6pIVdxWnOD/rkPEravk7FRVuRep7/zKSjffNhO/WuHN7Ex+MOBMz7mty0e+i6xjGnRsRQ==", - "dev": true, - "requires": { - "cids": "^0.5.3", - "class-is": "^1.1.0" - } - }, - "ipfs-block-service": { - "version": "0.14.0", - "resolved": "http://registry.npmjs.org/ipfs-block-service/-/ipfs-block-service-0.14.0.tgz", - "integrity": "sha512-qu5VdBSAh/44wtqVgyoyWebjIY6mLbiEZObwYZHEZ5VFuU4oOlfZ+s2oz2I5lTw1eeL7SGccQeshQ0OePxIPnw==", - "dev": true - }, "ipfs-http-response": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.1.4.tgz", - "integrity": "sha512-qVi0AK3evZBbHljePgmeFy6o8RBVTOmPXUgRNHrwFr99DmJHPhbgJ/Wse0vpQsKwo3dd1m7RP33GHE9Xd1vmPA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-0.2.1.tgz", + "integrity": "sha512-A3FPRa/IqiGE0dNRDDYRdDnPsq5eBuJWpASWGuEzTeGAh7Ad5dvIaU9JyIcLlcLLF3tAhueUnaFxjgAhot7xog==", "dev": true, "requires": { "async": "^2.6.0", - "cids": "^0.5.3", + "cids": "~0.5.5", "debug": "^3.1.0", "file-type": "^8.0.0", "filesize": "^3.6.1", "get-stream": "^3.0.0", - "ipfs-unixfs": "^0.1.14", + "ipfs-unixfs": "~0.1.14", "mime-types": "^2.1.18", - "multihashes": "^0.4.13", + "multihashes": "~0.4.13", "promisify-es6": "^1.0.3", "stream-to-blob": "^1.0.1" }, @@ -6551,27 +6933,27 @@ "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", "dev": true } } }, "ipfs-mfs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/ipfs-mfs/-/ipfs-mfs-0.3.3.tgz", - "integrity": "sha512-gi9kIlTqDjNzSN3hvz4/Npheg1xfPMrSZl8NAie+QgvQjr7bpHgBAvv/N7GSOOgP40d0HbJqN61AqrSj2BVHWg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ipfs-mfs/-/ipfs-mfs-0.4.2.tgz", + "integrity": "sha512-6xcexwgnyXXbi3PeXfmCtKa8nMijm8lvRPvfm27/Jwv/gLU1sJkpI6KF0m/EBeM7mwl1pQYu4E03qVoz8hDxtA==", "dev": true, "requires": { "async": "^2.6.1", "blob": "~0.0.4", - "cids": "~0.5.3", - "debug": "^3.1.0", + "cids": "~0.5.4", + "debug": "^4.0.1", "file-api": "~0.10.4", "filereader-stream": "^2.0.0", - "interface-datastore": "~0.4.2", + "interface-datastore": "~0.6.0", "ipfs-unixfs": "~0.1.15", "ipfs-unixfs-engine": "~0.32.1", "is-pull-stream": "~0.0.0", @@ -6585,26 +6967,40 @@ "pull-defer": "~0.2.2", "pull-paramap": "^1.2.2", "pull-pushable": "^2.2.0", - "pull-stream": "^3.6.8", + "pull-stream": "^3.6.9", "pull-stream-to-stream": "^1.3.4", "pull-traverse": "^1.0.3", "stream-to-pull-stream": "^1.7.2" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "ipfs-unixfs-engine": { + "version": "0.32.8", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-engine/-/ipfs-unixfs-engine-0.32.8.tgz", + "integrity": "sha512-YqLppNmG5M0rFj7QOTdRjny8xNKxmqKJE5DCOtc2ZMaXd4Semq+rEH23N2Mr1jYpimboDnadcv6jszi5cWRexw==", "dev": true, "requires": { - "ms": "^2.1.1" + "async": "^2.6.1", + "cids": "~0.5.5", + "deep-extend": "~0.6.0", + "ipfs-unixfs": "~0.1.15", + "ipld-dag-pb": "~0.14.6", + "left-pad": "^1.3.0", + "multihashing-async": "~0.5.1", + "pull-batch": "^1.0.0", + "pull-block": "^1.4.0", + "pull-cat": "^1.1.11", + "pull-pair": "^1.1.0", + "pull-paramap": "^1.2.2", + "pull-pause": "0.0.2", + "pull-pushable": "^2.2.0", + "pull-stream": "^3.6.9", + "pull-through": "^1.0.18", + "pull-traverse": "^1.0.3", + "pull-write": "^1.1.4", + "rabin": "^1.6.0", + "sparse-array": "^1.3.1", + "stream-to-pull-stream": "^1.7.2" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -6619,27 +7015,27 @@ } }, "ipfs-repo": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.23.1.tgz", - "integrity": "sha512-QjcAGkZXQyV5CsxKFdMHVKZuUWCy7wMroYBuy2G2N2Yu/lnwAg9Zuxsqv/3ULF+005bC1gWsld7UmYtbpHLKrQ==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.26.0.tgz", + "integrity": "sha512-fmA/bUcmTQ8Odn4mmCxemOfe8Rq+MdqbE0a/NLpAE2ljxaVeOutKuD5ztKAzkAvQN6uj/hoy+HRToRHsFO3QNw==", "dev": true, "requires": { - "async": "^2.6.0", + "async": "^2.6.1", "base32.js": "~0.1.0", - "big.js": "^5.0.3", - "cids": "~0.5.3", - "datastore-core": "~0.4.0", - "datastore-fs": "~0.5.0", - "datastore-level": "~0.8.0", - "debug": "^3.1.0", - "interface-datastore": "~0.4.2", - "ipfs-block": "~0.7.1", - "lock-me": "^1.0.4", + "big.js": "^5.2.2", + "cids": "~0.5.7", + "datastore-core": "~0.6.0", + "datastore-fs": "~0.7.0", + "datastore-level": "~0.10.0", + "debug": "^4.1.0", + "interface-datastore": "~0.6.0", + "ipfs-block": "~0.8.0", "lodash.get": "^4.4.2", "lodash.has": "^4.5.2", "lodash.set": "^4.3.2", - "multiaddr": "^4.0.0", - "pull-stream": "^3.6.7", + "multiaddr": "^6.0.0", + "proper-lockfile": "^3.2.0", + "pull-stream": "^3.6.9", "sort-keys": "^2.0.0" }, "dependencies": { @@ -6649,25 +7045,10 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "multiaddr": { - "version": "4.0.0", - "resolved": "http://registry.npmjs.org/multiaddr/-/multiaddr-4.0.0.tgz", - "integrity": "sha512-zUatrOCfBd/tJNOSoJ10d2EI2FDXB9PyPZhqUMdXE9mOyR3C+HLuOjga2Ga/eChwvEHIpTYRMoIKF2Nv7af2qQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-6.0.2.tgz", + "integrity": "sha512-yqnJt5BgO5tOutXgWHqwxchbUMjnQSVFxJMiRQa4itQInrq8ZM2ncM274tpDqA/JILleTTNKZGztu+WnW7ssMg==", "dev": true, "requires": { "bs58": "^4.0.1", @@ -6692,16 +7073,16 @@ } }, "ipfs-unixfs-engine": { - "version": "0.32.8", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-engine/-/ipfs-unixfs-engine-0.32.8.tgz", - "integrity": "sha512-YqLppNmG5M0rFj7QOTdRjny8xNKxmqKJE5DCOtc2ZMaXd4Semq+rEH23N2Mr1jYpimboDnadcv6jszi5cWRexw==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-engine/-/ipfs-unixfs-engine-0.33.0.tgz", + "integrity": "sha512-NF4e9PB4I22Ca1qaGeCG0pBQOaYTpBWwgC+EKlAomwj6FD6BeFD4OpoaEAs9kp8dOdjY8yKrHe+tRg9AGgOoIw==", "dev": true, "requires": { "async": "^2.6.1", "cids": "~0.5.5", "deep-extend": "~0.6.0", - "ipfs-unixfs": "~0.1.15", - "ipld-dag-pb": "~0.14.6", + "ipfs-unixfs": "~0.1.16", + "ipld-dag-pb": "~0.14.11", "left-pad": "^1.3.0", "multihashing-async": "~0.5.1", "pull-batch": "^1.0.0", @@ -6721,22 +7102,22 @@ } }, "ipfsd-ctl": { - "version": "0.39.5", - "resolved": "https://registry.npmjs.org/ipfsd-ctl/-/ipfsd-ctl-0.39.5.tgz", - "integrity": "sha512-QFkhlensPol2VPWkURAB5neMsvZ3VVV6nYXa1muaSqrjeu+Hf1h8vpHoF19EuEvKm68BVFtshPtREeIb5wRfaw==", + "version": "0.40.2", + "resolved": "https://registry.npmjs.org/ipfsd-ctl/-/ipfsd-ctl-0.40.2.tgz", + "integrity": "sha512-HCU8DT59u/AWYd7IhDMM8WlN7VXlVbGxwypCnbPAW54H4xPM4w8mFyWPYLvj2YLEoYxR6pFyt7i+1iXrCnpuaA==", "dev": true, "requires": { "async": "^2.6.1", - "base-x": "^3.0.4", - "boom": "^7.2.0", + "base-x": "^3.0.5", + "boom": "^7.2.2", "debug": "^4.1.0", "detect-node": "^2.0.4", "dexie": "^2.0.4", "execa": "^1.0.0", "hapi": "^16.6.2", "hat": "~0.0.3", - "ipfs-api": "^25.0.0", - "joi": "^13.1.2", + "ipfs-http-client": "^27.0.0", + "joi": "^14.0.4", "libp2p-crypto": "~0.14.0", "lodash.clone": "^4.5.0", "lodash.defaults": "^4.2.0", @@ -6746,48 +7127,10 @@ "protons": "^1.0.1", "rimraf": "^2.6.2", "safe-json-parse": "^4.0.0", - "safe-json-stringify": "^1.1.0", - "superagent": "^3.8.2" + "safe-json-stringify": "^1.2.0", + "superagent": "^4.0.0-beta.5" }, "dependencies": { - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "bl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.1.2.tgz", - "integrity": "sha512-DvC0x+PxmSJNx8wXoFV15pC2+GOJ3ohb4F1REq3X32a2Z3nEBpR1Guu740M7ouYAImFj4BXDNilLNZbygtG9lQ==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -6812,140 +7155,30 @@ "pump": "^3.0.0" } }, - "ipfs-api": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/ipfs-api/-/ipfs-api-25.0.0.tgz", - "integrity": "sha512-s+UYe+ZOkxSxU/J0O731HhuzXlmrpGoe1apj97p0yM8oLo0w1EzgWYe+0gV6A0+15cLsgREBD130gJFDGDw6dg==", - "dev": true, - "requires": { - "async": "^2.6.1", - "big.js": "^5.1.2", - "bl": "^2.0.1", - "bs58": "^4.0.1", - "cids": "~0.5.3", - "concat-stream": "^1.6.2", - "debug": "^3.1.0", - "detect-node": "^2.0.3", - "flatmap": "0.0.3", - "glob": "^7.1.2", - "ipfs-block": "~0.7.1", - "ipfs-unixfs": "~0.1.15", - "ipld-dag-cbor": "~0.12.1", - "ipld-dag-pb": "~0.14.6", - "is-ipfs": "~0.4.2", - "is-pull-stream": "0.0.0", - "is-stream": "^1.1.0", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.11", - "lru-cache": "^4.1.3", - "multiaddr": "^5.0.0", - "multibase": "~0.4.0", - "multihashes": "~0.4.13", - "ndjson": "^1.5.0", - "once": "^1.4.0", - "peer-id": "~0.11.0", - "peer-info": "~0.14.1", - "promisify-es6": "^1.0.3", - "pull-defer": "~0.2.2", - "pull-pushable": "^2.2.0", - "pull-stream-to-stream": "^1.3.4", - "pump": "^3.0.0", - "qs": "^6.5.2", - "readable-stream": "^2.3.6", - "stream-http": "^3.0.0", - "stream-to-pull-stream": "^1.7.2", - "streamifier": "~0.1.1", - "tar-stream": "^1.6.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "libp2p-crypto": { - "version": "0.13.0", - "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", - "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", - "dev": true, - "requires": { - "asn1.js": "^5.0.0", - "async": "^2.6.0", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.4.8", - "node-forge": "^0.7.5", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - } - } - } + "hoek": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz", + "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==", + "dev": true }, - "libp2p-crypto": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.14.1.tgz", - "integrity": "sha512-JP3bfEzNik76fFIWOeU909+v76tjj5BMukbPCc61bgh1ixftcHkr4bH79duz+oSxRpGA+orCLxvkhgALV+pfwg==", + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", "dev": true, "requires": { - "asn1.js": "^5.0.1", - "async": "^2.6.1", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.5.1", - "node-forge": "~0.7.6", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "ursa-optional": "~0.9.9", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - }, - "dependencies": { - "multihashing-async": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.5.1.tgz", - "integrity": "sha512-Ft5lQNcJCfsns1QN1TDXqPZrrNwBYqIokprYJR2h2Jj01x0GFcYmJYAqHvme6vJoyI3XptEcmZpdr9g5Oy7q3Q==", - "dev": true, - "requires": { - "async": "^2.6.1", - "blakejs": "^1.1.0", - "js-sha3": "^0.7.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - } + "punycode": "2.x.x" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "multihashing-async": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", - "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "joi": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.0.tgz", + "integrity": "sha512-0HKd1z8MWogez4GaU0LkY1FgW30vR2Kwy414GISfCU41OYgUC2GWpNe5amsvBZtDqPtt7DohykfOOMIw1Z5hvQ==", "dev": true, "requires": { - "async": "^2.6.0", - "blakejs": "^1.1.0", - "js-sha3": "^0.7.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" + "hoek": "6.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "pump": { @@ -6958,65 +7191,34 @@ "once": "^1.3.1" } }, - "stream-http": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.0.0.tgz", - "integrity": "sha512-JELJfd+btL9GHtxU3+XXhg9NLYrKFnhybfvRuDghtyVkOFydz3PKNT1df07AMr88qW03WHF+FSV0PySpXignCA==", + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", "dev": true, "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", - "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "hoek": "6.x.x" } - }, - "tweetnacl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", - "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", - "dev": true } } }, "ipld": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.17.4.tgz", - "integrity": "sha512-V+qGqt3CWYb72GzjSUQiPnzv7wLKDazB3zEBuiJmbVAta8RaoCuqb8cbmYN1riIW0pERRHqinrkNPdP9pZgkNA==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/ipld/-/ipld-0.19.3.tgz", + "integrity": "sha512-MK7hKGT2bUFs82XjVgM+12RhrAALVAdS/2bXJX4zJR0hPSXe/jXIqv83DijLk98zEjMujoPxh/Er+VVXNSr4gw==", "dev": true, "requires": { "async": "^2.6.1", - "cids": "~0.5.4", - "interface-datastore": "~0.5.0", - "ipfs-block": "~0.7.1", - "ipfs-block-service": "~0.14.0", - "ipfs-repo": "~0.24.0", - "ipld-bitcoin": "~0.1.7", - "ipld-dag-cbor": "~0.12.1", - "ipld-dag-pb": "~0.14.10", - "ipld-ethereum": "^2.0.1", - "ipld-git": "~0.2.1", + "cids": "~0.5.5", + "interface-datastore": "~0.6.0", + "ipfs-block": "~0.8.0", + "ipfs-block-service": "~0.15.0", + "ipfs-repo": "~0.25.0", + "ipld-dag-cbor": "~0.13.0", + "ipld-dag-pb": "~0.14.11", "ipld-raw": "^2.0.1", - "ipld-zcash": "~0.1.6", - "is-ipfs": "~0.4.2", - "lodash.flatten": "^4.4.0", - "lodash.includes": "^4.3.0", - "memdown": "^3.0.0", - "multihashes": "~0.4.14", + "merge-options": "^1.0.1", "pull-defer": "~0.2.3", - "pull-sort": "^1.0.1", "pull-stream": "^3.6.9", "pull-traverse": "^1.0.3" }, @@ -7027,117 +7229,41 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "datastore-core": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-0.5.0.tgz", - "integrity": "sha512-H15EZOXLZXJRXTKQ2EQ6lms93fYXsFUgTWYjtJfsGyhs8MAEfjzoFM1HpP4l1/TiWSz2weslyl57M/q2U65sgw==", - "dev": true, - "requires": { - "async": "^2.6.1", - "interface-datastore": "~0.5.0", - "left-pad": "^1.3.0", - "pull-many": "^1.0.8", - "pull-stream": "^3.6.9" - } - }, - "datastore-fs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-0.6.0.tgz", - "integrity": "sha512-/e2R+jxyR1ACzy3nzW02A0spUrBC525eeq0lVC0VDqdIO2qva1wCN5XDWwpmL7vxngSFGhzpKh42q58fT2YIOw==", - "dev": true, - "requires": { - "async": "^2.6.1", - "datastore-core": "~0.5.0", - "glob": "^7.1.3", - "graceful-fs": "^4.1.11", - "interface-datastore": "~0.5.0", - "mkdirp": "~0.5.1", - "pull-stream": "^3.6.9", - "write-file-atomic": "^2.3.0" - } - }, - "datastore-level": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-0.9.0.tgz", - "integrity": "sha512-BL2KE1P5xgYWFRsOdwPEpTwW6Ebpxnp3Ir6aAC5Era+zMS3Vtf14vn2q8cUMvc4GCo68iqL3pknT4Ds9/xFKMw==", - "dev": true, - "requires": { - "datastore-core": "~0.5.0", - "encoding-down": "^5.0.4", - "interface-datastore": "~0.5.0", - "level-js": "github:timkuijsten/level.js#18e03adab34c49523be7d3d58fafb0c632f61303", - "leveldown": "^3.0.2", - "levelup": "^2.0.2", - "pull-stream": "^3.6.9" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "interface-datastore": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.5.0.tgz", - "integrity": "sha512-JBQG5zCsh71DdDD01PzRrhlFBI0FCj6zAlJVBcnsZlfK74BK7Yx8f3SPxk240/JplrA919mjfrpe1W7BaovtRg==", - "dev": true, - "requires": { - "async": "^2.6.1", - "err-code": "^1.1.2", - "pull-defer": "~0.2.3", - "pull-stream": "^3.6.9", - "uuid": "^3.3.2" - } - }, "ipfs-repo": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.24.0.tgz", - "integrity": "sha512-dbLuqHVK+RIsDHmbk7oxySMJNRz/PIROgIe5vjQKRqZyuNdh9gFTUsUEvEDsfMUgPhnS9cnf53YAR2B+EuMUrA==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-0.25.2.tgz", + "integrity": "sha512-TuhUdturwwG/hKdK2m1fv6Hz1hvHsdXQqAsDr0uEXK8WOfz7CZ9IHLU3feDTDhh8nr4fB0nOO5xaTz3cCZ+/9Q==", "dev": true, "requires": { - "async": "^2.6.0", + "async": "^2.6.1", "base32.js": "~0.1.0", - "big.js": "^5.0.3", - "cids": "~0.5.3", - "datastore-core": "~0.5.0", - "datastore-fs": "~0.6.0", - "datastore-level": "~0.9.0", - "debug": "^3.1.0", - "interface-datastore": "~0.5.0", + "big.js": "^5.2.2", + "cids": "~0.5.5", + "datastore-core": "~0.6.0", + "datastore-fs": "~0.7.0", + "datastore-level": "~0.10.0", + "debug": "^4.1.0", + "interface-datastore": "~0.6.0", "ipfs-block": "~0.7.1", - "lock-me": "^1.0.4", "lodash.get": "^4.4.2", "lodash.has": "^4.5.2", "lodash.set": "^4.3.2", - "multiaddr": "^4.0.0", - "pull-stream": "^3.6.7", + "multiaddr": "^5.0.0", + "proper-lockfile": "^3.2.0", + "pull-stream": "^3.6.9", "sort-keys": "^2.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "multiaddr": { - "version": "4.0.0", - "resolved": "http://registry.npmjs.org/multiaddr/-/multiaddr-4.0.0.tgz", - "integrity": "sha512-zUatrOCfBd/tJNOSoJ10d2EI2FDXB9PyPZhqUMdXE9mOyR3C+HLuOjga2Ga/eChwvEHIpTYRMoIKF2Nv7af2qQ==", - "dev": true, - "requires": { - "bs58": "^4.0.1", - "class-is": "^1.1.0", - "ip": "^1.1.5", - "ip-address": "^5.8.9", - "lodash.filter": "^4.6.0", - "lodash.map": "^4.6.0", - "varint": "^5.0.0", - "xtend": "^4.0.1" + }, + "dependencies": { + "ipfs-block": { + "version": "0.7.1", + "resolved": "http://registry.npmjs.org/ipfs-block/-/ipfs-block-0.7.1.tgz", + "integrity": "sha512-ABZS9J/+OaDwc10zu6pIVdxWnOD/rkPEravk7FRVuRep7/zKSjffNhO/WuHN7Ex+MOBMz7mty0e+i6xjGnRsRQ==", + "dev": true, + "requires": { + "cids": "^0.5.3", + "class-is": "^1.1.0" + } + } } } } @@ -7156,17 +7282,17 @@ } }, "ipld-dag-cbor": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.12.1.tgz", - "integrity": "sha512-m0BR/zR9sKIuY/PydppkpwO0S9w7+ob0as7RN3jQmMIpW9m8HW7hLznvtp1xpYZknH7efUhIaMHgaQP43E5IWQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.13.0.tgz", + "integrity": "sha512-74gtitUOWbLkGtqomhq7lDYwWzfFNwbwMXAj3jpti4ZtfM9VTJWVIQ+05u7NOCj8yaLwzFONHdcO0rJ+j/i0jA==", "dev": true, "requires": { - "async": "^2.6.0", - "borc": "^2.0.2", + "async": "^2.6.1", + "borc": "^2.0.3", "bs58": "^4.0.1", - "cids": "~0.5.2", - "is-circular": "^1.0.1", - "multihashes": "~0.4.12", + "cids": "~0.5.5", + "is-circular": "^1.0.2", + "multihashes": "~0.4.14", "multihashing-async": "~0.5.1", "traverse": "~0.6.6" }, @@ -7213,66 +7339,142 @@ "multihashes": "~0.4.12", "multihashing-async": "~0.5.1", "rlp": "^2.0.0" + } + }, + "ipld-git": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ipld-git/-/ipld-git-0.2.2.tgz", + "integrity": "sha512-YHS3X9nyyrPeKZZ8S8oui3OysFo3NGyJ9lb4sjXa+hwcuFUHqkfZnQN/NtYuiEixONSoXhZTr6ZAALOccKvShw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "cids": "~0.5.2", + "multicodec": "~0.2.5", + "multihashes": "~0.4.12", + "multihashing-async": "~0.5.1", + "smart-buffer": "^4.0.0", + "traverse": "~0.6.6" + }, + "dependencies": { + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + } + } + }, + "ipld-raw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-2.0.1.tgz", + "integrity": "sha512-wtP1I61YQoAPnRZqVeflrxjTi41+38ck2puEz9mnMlc0ChYRGc4ZSKcWDTk66EQuqEzDAdV71nOMKb3JzDfbsg==", + "dev": true, + "requires": { + "cids": "~0.5.2", + "multihashing-async": "~0.5.1" + } + }, + "ipld-zcash": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ipld-zcash/-/ipld-zcash-0.1.6.tgz", + "integrity": "sha512-y/mFm0AJDODcQG4Limv9LxEuJJBkbmVVDx9jbRRbxJLn2czb+TMZ+lBVLFU37DITwgix7RuuPPWVcZCBFs2TTQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "cids": "~0.5.2", + "multihashes": "~0.4.12", + "multihashing-async": "~0.5.1", + "zcash-bitcore-lib": "~0.13.20-rc3" + } + }, + "ipns": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-0.3.0.tgz", + "integrity": "sha512-3X8xS4AVgRbsqaTfpJ4OzqAJ2DOYXl9lh7AV/gq7qyF14A+YXk1zmCKc6xXS2GJSVkvsnoRsVGPRrQnDQoNksw==", + "dev": true, + "requires": { + "base32-encode": "^1.1.0", + "big.js": "^5.1.2", + "debug": "^3.1.0", + "interface-datastore": "~0.6.0", + "left-pad": "^1.3.0", + "libp2p-crypto": "~0.13.0", + "multihashes": "~0.4.14", + "nano-date": "^2.1.0", + "peer-id": "~0.11.0", + "protons": "^1.0.1" }, "dependencies": { - "ipfs-block": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/ipfs-block/-/ipfs-block-0.8.0.tgz", - "integrity": "sha512-znNtFRxXlJYP1/Q4u0tGFJUceH9pNww8WA+zair6T3y7d28m+vtUDJGn96M7ZlFFSkByQyQsAiq2ssNhKtMzxw==", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "dev": true, + "requires": { + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + } + }, + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } + }, + "peer-id": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", + "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", "dev": true, "requires": { - "cids": "~0.5.5", - "class-is": "^1.1.0" + "async": "^2.6.1", + "libp2p-crypto": "~0.13.0", + "lodash": "^4.17.10", + "multihashes": "~0.4.13" } - } - } - }, - "ipld-git": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ipld-git/-/ipld-git-0.2.2.tgz", - "integrity": "sha512-YHS3X9nyyrPeKZZ8S8oui3OysFo3NGyJ9lb4sjXa+hwcuFUHqkfZnQN/NtYuiEixONSoXhZTr6ZAALOccKvShw==", - "dev": true, - "requires": { - "async": "^2.6.0", - "cids": "~0.5.2", - "multicodec": "~0.2.5", - "multihashes": "~0.4.12", - "multihashing-async": "~0.5.1", - "smart-buffer": "^4.0.0", - "traverse": "~0.6.6" - }, - "dependencies": { - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", "dev": true } } }, - "ipld-raw": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-2.0.1.tgz", - "integrity": "sha512-wtP1I61YQoAPnRZqVeflrxjTi41+38ck2puEz9mnMlc0ChYRGc4ZSKcWDTk66EQuqEzDAdV71nOMKb3JzDfbsg==", - "dev": true, - "requires": { - "cids": "~0.5.2", - "multihashing-async": "~0.5.1" - } - }, - "ipld-zcash": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ipld-zcash/-/ipld-zcash-0.1.6.tgz", - "integrity": "sha512-y/mFm0AJDODcQG4Limv9LxEuJJBkbmVVDx9jbRRbxJLn2czb+TMZ+lBVLFU37DITwgix7RuuPPWVcZCBFs2TTQ==", - "dev": true, - "requires": { - "async": "^2.6.1", - "cids": "~0.5.2", - "multihashes": "~0.4.12", - "multihashing-async": "~0.5.1", - "zcash-bitcore-lib": "~0.13.20-rc3" - } - }, "iron": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/iron/-/iron-4.0.5.tgz", @@ -7308,6 +7510,17 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -7368,6 +7581,17 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-date-object": { @@ -7401,23 +7625,6 @@ } } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true, - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "optional": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -7425,20 +7632,11 @@ "dev": true }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -7449,12 +7647,12 @@ } }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "^2.1.1" } }, "is-gzip": { @@ -7524,13 +7722,23 @@ "dev": true }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-obj": { @@ -7561,30 +7769,8 @@ "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true, - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true, - "optional": true - }, "is-promise": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", @@ -7670,14 +7856,10 @@ "dev": true }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "optional": true, - "requires": { - "isarray": "1.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "isstream": { "version": "0.1.2", @@ -7732,6 +7914,12 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, + "resolve": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -7828,6 +8016,12 @@ } } }, + "js-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", + "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "dev": true + }, "js-sha3": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz", @@ -7835,9 +8029,9 @@ "dev": true }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { @@ -7865,9 +8059,9 @@ "dev": true }, "jsesc": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-loader": { @@ -7916,10 +8110,13 @@ } }, "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } }, "jsprim": { "version": "1.4.1", @@ -7971,13 +8168,10 @@ "dev": true }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "latency-monitor": { "version": "0.2.1", @@ -7987,6 +8181,23 @@ "requires": { "debug": "^2.6.0", "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "latest-version": { @@ -8150,12 +8361,6 @@ "requires": { "xtend": "~4.0.0" } - }, - "nan": { - "version": "2.10.0", - "resolved": "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true } } }, @@ -8217,52 +8422,77 @@ "peer-book": "~0.8.0", "peer-id": "~0.11.0", "peer-info": "~0.14.1" - } - }, - "libp2p-bootstrap": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.9.4.tgz", - "integrity": "sha512-P+UZIwg02Y7ZJQ5ZGAFjXB1ShhxLxGqbwmk2Oke3L8f6h2bywKIY4UQYcqP5+8QvLmD3tX2hXA83kjEh1mNl7g==", - "dev": true, - "requires": { - "async": "^2.6.1", - "debug": "^4.1.0", - "mafmt": "^6.0.2", - "multiaddr": "^5.0.2", - "peer-id": "~0.12.0", - "peer-info": "~0.14.1" }, "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", "dev": true, "requires": { - "ms": "^2.1.1" + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } }, "peer-id": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", - "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", + "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", "dev": true, "requires": { "async": "^2.6.1", - "class-is": "^1.1.0", "libp2p-crypto": "~0.13.0", "lodash": "^4.17.10", "multihashes": "~0.4.13" } + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", + "dev": true } } }, + "libp2p-bootstrap": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.9.4.tgz", + "integrity": "sha512-P+UZIwg02Y7ZJQ5ZGAFjXB1ShhxLxGqbwmk2Oke3L8f6h2bywKIY4UQYcqP5+8QvLmD3tX2hXA83kjEh1mNl7g==", + "dev": true, + "requires": { + "async": "^2.6.1", + "debug": "^4.1.0", + "mafmt": "^6.0.2", + "multiaddr": "^5.0.2", + "peer-id": "~0.12.0", + "peer-info": "~0.14.1" + } + }, "libp2p-circuit": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/libp2p-circuit/-/libp2p-circuit-0.2.1.tgz", @@ -8290,13 +8520,60 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "^2.1.1" + } + }, + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "dev": true, + "requires": { + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + } + }, + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } + }, + "peer-id": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", + "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", + "dev": true, + "requires": { + "async": "^2.6.1", + "libp2p-crypto": "~0.13.0", + "lodash": "^4.17.10", + "multihashes": "~0.4.13" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", "dev": true } } @@ -8319,50 +8596,31 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "libp2p-crypto": { - "version": "0.13.0", - "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", - "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.14.1.tgz", + "integrity": "sha512-JP3bfEzNik76fFIWOeU909+v76tjj5BMukbPCc61bgh1ixftcHkr4bH79duz+oSxRpGA+orCLxvkhgALV+pfwg==", "dev": true, "requires": { - "asn1.js": "^5.0.0", - "async": "^2.6.0", + "asn1.js": "^5.0.1", + "async": "^2.6.1", "browserify-aes": "^1.2.0", "bs58": "^4.0.1", "keypair": "^1.0.1", "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.4.8", - "node-forge": "^0.7.5", + "multihashing-async": "~0.5.1", + "node-forge": "~0.7.6", "pem-jwk": "^1.5.1", "protons": "^1.0.1", "rsa-pem-to-jwk": "^1.1.3", "tweetnacl": "^1.0.0", + "ursa-optional": "~0.9.9", "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" }, "dependencies": { - "multihashing-async": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", - "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", - "dev": true, - "requires": { - "async": "^2.6.0", - "blakejs": "^1.1.0", - "js-sha3": "^0.7.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - }, "tweetnacl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", @@ -8415,51 +8673,6 @@ "protons": "^1.0.1", "pull-pushable": "^2.2.0", "time-cache": "~0.3.0" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "libp2p-crypto": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.14.1.tgz", - "integrity": "sha512-JP3bfEzNik76fFIWOeU909+v76tjj5BMukbPCc61bgh1ixftcHkr4bH79duz+oSxRpGA+orCLxvkhgALV+pfwg==", - "dev": true, - "requires": { - "asn1.js": "^5.0.1", - "async": "^2.6.1", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.5.1", - "node-forge": "~0.7.6", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "ursa-optional": "~0.9.9", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "tweetnacl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", - "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", - "dev": true - } } }, "libp2p-identify": { @@ -8474,21 +8687,6 @@ "protons": "^1.0.1", "pull-length-prefixed": "^1.3.0", "pull-stream": "^3.6.9" - }, - "dependencies": { - "peer-id": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", - "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "class-is": "^1.1.0", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.10", - "multihashes": "~0.4.13" - } - } } }, "libp2p-kad-dht": { @@ -8528,24 +8726,59 @@ "ms": "^2.1.1" } }, - "interface-datastore": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.6.0.tgz", - "integrity": "sha512-aDbjWsEdTHd2Yc2A8QOeAEWMwlWDwumVX24bE0/AE7XxfDveWuDUKP7HQito0u1c80FZmR+y/Op14um+cG0CSw==", + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "dev": true, + "requires": { + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + }, + "dependencies": { + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } + } + } + }, + "peer-id": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", + "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", "dev": true, "requires": { "async": "^2.6.1", - "class-is": "^1.1.0", - "err-code": "^1.1.2", - "pull-defer": "~0.2.3", - "pull-stream": "^3.6.9", - "uuid": "^3.2.2" + "libp2p-crypto": "~0.13.0", + "lodash": "^4.17.10", + "multihashes": "~0.4.13" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", "dev": true } } @@ -8564,19 +8797,46 @@ "sanitize-filename": "^1.6.1" }, "dependencies": { - "interface-datastore": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-0.6.0.tgz", - "integrity": "sha512-aDbjWsEdTHd2Yc2A8QOeAEWMwlWDwumVX24bE0/AE7XxfDveWuDUKP7HQito0u1c80FZmR+y/Op14um+cG0CSw==", + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", "dev": true, "requires": { - "async": "^2.6.1", - "class-is": "^1.1.0", - "err-code": "^1.1.2", - "pull-defer": "~0.2.3", - "pull-stream": "^3.6.9", - "uuid": "^3.2.2" + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + } + }, + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" } + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", + "dev": true } } }, @@ -8591,54 +8851,6 @@ "multicast-dns": "^7.2.0", "peer-id": "~0.12.0", "peer-info": "~0.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "libp2p-tcp": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.13.0.tgz", - "integrity": "sha512-bsmfxi+uVegK61x9UxBEgWtvujPl+zwzuVEyaVRs2IxHu6OE5MGKnj7AflzlK4e3w2HZn8nm4qwMV5m+fhqK1g==", - "dev": true, - "requires": { - "class-is": "^1.1.0", - "debug": "^3.1.0", - "interface-connection": "~0.3.2", - "ip-address": "^5.8.9", - "lodash.includes": "^4.3.0", - "lodash.isfunction": "^3.0.9", - "mafmt": "^6.0.2", - "multiaddr": "^5.0.0", - "once": "^1.4.0", - "stream-to-pull-stream": "^1.7.2" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "peer-id": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", - "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "class-is": "^1.1.0", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.10", - "multihashes": "~0.4.13" - } - } } }, "libp2p-mplex": { @@ -8662,21 +8874,6 @@ "varint": "^5.0.0" }, "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -8690,57 +8887,27 @@ "readable-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", - "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "libp2p-ping": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/libp2p-ping/-/libp2p-ping-0.8.3.tgz", - "integrity": "sha512-8AiUH1FxscWmfZY5EpbEBHp5C2VLmfB4kdBD7pjiMhiv+DkYJkMBAMOD88703wSbldiuEys9shw8BxeDljr7wQ==", - "dev": true, - "requires": { - "libp2p-crypto": "~0.14.1", - "pull-handshake": "^1.1.4", - "pull-stream": "^3.6.9" - }, - "dependencies": { - "libp2p-crypto": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.14.1.tgz", - "integrity": "sha512-JP3bfEzNik76fFIWOeU909+v76tjj5BMukbPCc61bgh1ixftcHkr4bH79duz+oSxRpGA+orCLxvkhgALV+pfwg==", - "dev": true, - "requires": { - "asn1.js": "^5.0.1", - "async": "^2.6.1", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.5.1", - "node-forge": "~0.7.6", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "ursa-optional": "~0.9.9", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "tweetnacl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", - "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", - "dev": true } } }, + "libp2p-ping": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/libp2p-ping/-/libp2p-ping-0.8.3.tgz", + "integrity": "sha512-8AiUH1FxscWmfZY5EpbEBHp5C2VLmfB4kdBD7pjiMhiv+DkYJkMBAMOD88703wSbldiuEys9shw8BxeDljr7wQ==", + "dev": true, + "requires": { + "libp2p-crypto": "~0.14.1", + "pull-handshake": "^1.1.4", + "pull-stream": "^3.6.9" + } + }, "libp2p-record": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.6.1.tgz", @@ -8790,101 +8957,6 @@ "pull-handshake": "^1.1.4", "pull-length-prefixed": "^1.3.1", "pull-stream": "^3.6.9" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "libp2p-crypto": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.14.1.tgz", - "integrity": "sha512-JP3bfEzNik76fFIWOeU909+v76tjj5BMukbPCc61bgh1ixftcHkr4bH79duz+oSxRpGA+orCLxvkhgALV+pfwg==", - "dev": true, - "requires": { - "asn1.js": "^5.0.1", - "async": "^2.6.1", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.5.1", - "node-forge": "~0.7.6", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "ursa-optional": "~0.9.9", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "peer-id": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", - "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "class-is": "^1.1.0", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.10", - "multihashes": "~0.4.13" - }, - "dependencies": { - "libp2p-crypto": { - "version": "0.13.0", - "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", - "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", - "dev": true, - "requires": { - "asn1.js": "^5.0.0", - "async": "^2.6.0", - "browserify-aes": "^1.2.0", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.4.8", - "node-forge": "^0.7.5", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - } - }, - "multihashing-async": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", - "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", - "dev": true, - "requires": { - "async": "^2.6.0", - "blakejs": "^1.1.0", - "js-sha3": "^0.7.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - } - } - }, - "tweetnacl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", - "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", - "dev": true - } } }, "libp2p-switch": { @@ -8926,18 +8998,65 @@ "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "dev": true, + "requires": { + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + } + }, + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } + }, + "peer-id": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", + "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", + "dev": true, + "requires": { + "async": "^2.6.1", + "libp2p-crypto": "~0.13.0", + "lodash": "^4.17.10", + "multihashes": "~0.4.13" + } + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", "dev": true } } }, "libp2p-tcp": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.12.1.tgz", - "integrity": "sha512-Vt1gLoOKAPAsgQ9IDwrwL4F5zA3gINsstwKKGgZaN5Boj/EeGghdug6vOL0TP2UKWudCuC2rCQUCPVOKZ5gYow==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.13.0.tgz", + "integrity": "sha512-bsmfxi+uVegK61x9UxBEgWtvujPl+zwzuVEyaVRs2IxHu6OE5MGKnj7AflzlK4e3w2HZn8nm4qwMV5m+fhqK1g==", "dev": true, "requires": { "class-is": "^1.1.0", @@ -8946,8 +9065,8 @@ "ip-address": "^5.8.9", "lodash.includes": "^4.3.0", "lodash.isfunction": "^3.0.9", - "mafmt": "^6.0.0", - "multiaddr": "^4.0.0", + "mafmt": "^6.0.2", + "multiaddr": "^5.0.0", "once": "^1.4.0", "stream-to-pull-stream": "^1.7.2" }, @@ -8960,28 +9079,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "multiaddr": { - "version": "4.0.0", - "resolved": "http://registry.npmjs.org/multiaddr/-/multiaddr-4.0.0.tgz", - "integrity": "sha512-zUatrOCfBd/tJNOSoJ10d2EI2FDXB9PyPZhqUMdXE9mOyR3C+HLuOjga2Ga/eChwvEHIpTYRMoIKF2Nv7af2qQ==", - "dev": true, - "requires": { - "bs58": "^4.0.1", - "class-is": "^1.1.0", - "ip": "^1.1.5", - "ip-address": "^5.8.9", - "lodash.filter": "^4.6.0", - "lodash.map": "^4.6.0", - "varint": "^5.0.0", - "xtend": "^4.0.1" - } } } }, @@ -9011,138 +9108,30 @@ "socket.io-client": "^2.1.1", "stream-to-pull-stream": "^1.7.2", "webrtcsupport": "github:ipfs/webrtcsupport#0669f576582c53a3a42aa5ac014fcc5966809615" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "peer-id": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", - "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "class-is": "^1.1.0", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.10", - "multihashes": "~0.4.13" - } - } } }, "libp2p-websocket-star": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/libp2p-websocket-star/-/libp2p-websocket-star-0.8.1.tgz", - "integrity": "sha512-lDzL9fGWXveu6HEc6xuIEi036Bg1IQ+PliJJHxgSS9ozTkUwMT5dfvyugSWsZ7Gh4q7BYzr5cDZCNkR42GcRZw==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/libp2p-websocket-star/-/libp2p-websocket-star-0.9.1.tgz", + "integrity": "sha512-OdQ31meWB5uisi69xNS+ePfrY+ebwNNnm2mgCynZhBvgUvglZscb5HpOQ4Syg4AwyUrZUlCPblW6jmIBPtUFBQ==", "dev": true, "requires": { "async": "^2.6.1", "class-is": "^1.1.0", "data-queue": "0.0.3", - "debug": "^3.1.0", + "debug": "^4.1.0", "interface-connection": "~0.3.2", - "libp2p-crypto": "~0.13.0", - "mafmt": "^6.0.0", + "libp2p-crypto": "~0.14.1", + "mafmt": "^6.0.2", "merge-recursive": "0.0.3", - "multiaddr": "^5.0.0", + "multiaddr": "^5.0.2", "once": "^1.4.0", - "peer-id": "~0.10.7", - "peer-info": "~0.14.1", - "pull-stream": "^3.6.8", - "socket.io-client": "^2.1.1", - "socket.io-pull-stream": "~0.1.5", - "uuid": "^3.2.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "multihashing-async": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", - "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", - "dev": true, - "requires": { - "async": "^2.6.0", - "blakejs": "^1.1.0", - "js-sha3": "^0.7.0", - "multihashes": "~0.4.13", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" - } - }, - "peer-id": { - "version": "0.10.7", - "resolved": "http://registry.npmjs.org/peer-id/-/peer-id-0.10.7.tgz", - "integrity": "sha512-VEpMFcL9q0NQijmR0jsj38OGbY4yzaWMEareVkDahopmlNT+Cpsot8btPgsgBBApP9NiZj2Enwvh8rZN30ocQw==", - "dev": true, - "requires": { - "async": "^2.6.0", - "libp2p-crypto": "~0.12.1", - "lodash": "^4.17.5", - "multihashes": "~0.4.13" - }, - "dependencies": { - "libp2p-crypto": { - "version": "0.12.1", - "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.12.1.tgz", - "integrity": "sha512-1/z8rxZ0DcQNreZhEsl7PnLr7DWOioSvYbKBLGkRwNRiNh1JJLgh0PdTySBb44wkrOGT+TxcGRd7iq3/X6Wxwg==", - "dev": true, - "requires": { - "asn1.js": "^5.0.0", - "async": "^2.6.0", - "browserify-aes": "^1.1.1", - "bs58": "^4.0.1", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.4.7", - "node-forge": "^0.7.1", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", - "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" - } - } - } - }, - "tweetnacl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", - "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", - "dev": true - } + "peer-id": "~0.12.0", + "peer-info": "~0.14.1", + "pull-stream": "^3.6.9", + "socket.io-client": "^2.1.1", + "socket.io-pull-stream": "~0.1.5", + "uuid": "^3.3.2" } }, "libp2p-websockets": { @@ -9185,6 +9174,14 @@ "big.js": "^3.1.3", "emojis-list": "^2.0.0", "json5": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } } }, "locate-path": { @@ -9197,19 +9194,6 @@ "path-exists": "^3.0.0" } }, - "lock-me": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lock-me/-/lock-me-1.0.4.tgz", - "integrity": "sha512-PH/uZMCtlTfiPcKnNVc8cF57Jrc9uTcil4qL6f1faTWV71J3ym8LIlaO385BtoC3MQb+jt3t2R8SnHxcQ5pafw==", - "dev": true, - "requires": { - "async": "^2.1.5", - "find-process": "^1.0.5", - "fs-ext": "github:baudehlo/node-fs-ext#2ba366d9fc67ef3ab165e239068924b276ecf249", - "nodeify": "^1.0.1", - "once": "^1.4.0" - } - }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", @@ -9252,12 +9236,6 @@ "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=", "dev": true }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -9378,12 +9356,6 @@ "integrity": "sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, "looper": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", @@ -9440,9 +9412,9 @@ }, "dependencies": { "multiaddr": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-6.0.0.tgz", - "integrity": "sha512-2jZgvRFd2C7cNV6l0O5232/ZEnKN6PO+7xDw0haJ/Uh92Zgna6K98JvLykBodMXwXcbTY8j9kxu8Zi6NYGpuMQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-6.0.2.tgz", + "integrity": "sha512-yqnJt5BgO5tOutXgWHqwxchbUMjnQSVFxJMiRQa4itQInrq8ZM2ncM274tpDqA/JILleTTNKZGztu+WnW7ssMg==", "dev": true, "requires": { "bs58": "^4.0.1", @@ -9481,6 +9453,12 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, + "map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -9490,13 +9468,6 @@ "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true, - "optional": true - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9520,17 +9491,37 @@ } }, "memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", "dev": true, "requires": { - "abstract-leveldown": "~5.0.0", - "functional-red-black-tree": "~1.0.1", - "immediate": "~3.2.3", + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", "inherits": "~2.0.1", "ltgt": "~2.2.0", "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + } + } + }, + "memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", + "dev": true, + "requires": { + "map-or-similar": "^1.5.0" } }, "memory-fs": { @@ -9543,6 +9534,15 @@ "readable-stream": "^2.0.1" } }, + "merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.1" + } + }, "merge-recursive": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/merge-recursive/-/merge-recursive-0.0.3.tgz", @@ -9657,31 +9657,6 @@ "xtend": "~4.0.0" } }, - "memdown": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", - "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", - "dev": true, - "requires": { - "abstract-leveldown": "~2.7.1", - "functional-red-black-tree": "^1.0.1", - "immediate": "^3.2.3", - "inherits": "~2.0.1", - "ltgt": "~2.2.0", - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", - "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", - "dev": true, - "requires": { - "xtend": "~4.0.0" - } - } - } - }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", @@ -9703,25 +9678,24 @@ "dev": true }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "optional": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "miller-rabin": { @@ -9807,15 +9781,15 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -9824,10 +9798,22 @@ "flush-write-stream": "^1.0.0", "from2": "^2.1.0", "parallel-transform": "^1.1.0", - "pump": "^2.0.1", + "pump": "^3.0.0", "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, "mixin-deep": { @@ -9858,6 +9844,14 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } } }, "mocha": { @@ -9908,6 +9902,12 @@ "path-is-absolute": "^1.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -9969,9 +9969,9 @@ "dev": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "multiaddr": { @@ -10000,9 +10000,9 @@ } }, "multibase": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.4.0.tgz", - "integrity": "sha512-fnYvZJWDn3eSJ7EeWvS8zbOpRwuyPHpDggSnqGXkQMvYED5NdO9nyqnZboGvAT+r/60J8KZ09tW8YJHkS22sFw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.5.0.tgz", + "integrity": "sha512-7epKiK8/UBzraYZvOuZa8FH/00hMfTnzTy1OQol1YBU2csAYA7rwWh+iue9plXRmVFBGvmVKMuo0oq5sD47kvw==", "dev": true, "requires": { "base-x": "3.0.4" @@ -10089,12 +10089,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -10111,11 +10105,30 @@ "dev": true }, "nan": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.0.tgz", - "integrity": "sha512-zT5nC0JhbljmyEf+Z456nvm7iO7XgRV2hYxoBtPpnyp+0Q4aCoP6uWNn76v/I6k2kCYNLWqWbwBWQcjsNI/bjw==", + "version": "2.10.0", + "resolved": "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "dev": true }, + "nano-date": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nano-date/-/nano-date-2.1.0.tgz", + "integrity": "sha1-veghPYoPKtGjoW6PRV7uJHX/2/k=", + "dev": true, + "requires": { + "bignumber.js": "^4.0.4", + "core-decorators": "^0.20.0", + "memoizerific": "^1.11.2" + }, + "dependencies": { + "bignumber.js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==", + "dev": true + } + } + }, "nanoid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.0.tgz", @@ -10139,26 +10152,6 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } } }, "natural-compare": { @@ -10177,14 +10170,6 @@ "minimist": "^1.2.0", "split2": "^2.1.0", "through2": "^2.0.3" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "negotiator": { @@ -10199,12 +10184,6 @@ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", "dev": true }, - "next-tick": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -10295,6 +10274,19 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } } } }, @@ -10320,6 +10312,15 @@ } } }, + "node-releases": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.2.tgz", + "integrity": "sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, "nodeify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", @@ -10430,6 +10431,15 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, @@ -10446,14 +10456,6 @@ "dev": true, "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "object.getownpropertydescriptors": { @@ -10466,17 +10468,6 @@ "es-abstract": "^1.5.1" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "optional": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -10484,14 +10475,6 @@ "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "observable-webworkers": { @@ -10563,7 +10546,7 @@ "dev": true }, "orbit-db-identity-provider": { - "version": "github:orbitdb/orbit-db-identity-provider#fe9fc88334472ed080a89baa9ae375ced33e08dc", + "version": "github:orbitdb/orbit-db-identity-provider#147b6ee1024a497d9ea34c6abe53e067ee4919a1", "from": "github:orbitdb/orbit-db-identity-provider" }, "orbit-db-keystore": { @@ -10598,36 +10581,6 @@ "execa": "^0.10.0", "lcid": "^2.0.0", "mem": "^4.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } } }, "os-tmpdir": { @@ -10637,14 +10590,14 @@ "dev": true }, "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", + "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "^4.1.11", + "is-plain-obj": "^1.1.0", + "mkdirp": "^0.5.1" } }, "p-defer": { @@ -10760,19 +10713,6 @@ } } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -10948,18 +10888,62 @@ } } }, - "peer-id": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.11.0.tgz", - "integrity": "sha512-C/lRJk4CWIgOdKvfO572NvHbPcUwe49I6G0toIhDB5tCohqv/qzy0uBcAK9Ww8TvYI6U4J3C8ACShV9fWjNU4w==", - "dev": true, - "requires": { - "async": "^2.6.1", - "libp2p-crypto": "~0.13.0", - "lodash": "^4.17.10", - "multihashes": "~0.4.13" - } - }, + "peer-id": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.12.0.tgz", + "integrity": "sha512-pPKk4IDBWGGzcjXe6zzngIwKmyadYNsIOUH1PKb7GYTVVTKHpHn78ljZNZdAXAWZ2V1TmlU2OS6d9MfW2E5DNA==", + "dev": true, + "requires": { + "async": "^2.6.1", + "class-is": "^1.1.0", + "libp2p-crypto": "~0.13.0", + "lodash": "^4.17.10", + "multihashes": "~0.4.13" + }, + "dependencies": { + "libp2p-crypto": { + "version": "0.13.0", + "resolved": "http://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.13.0.tgz", + "integrity": "sha512-i3r1TBec/xYmC5bcpPiIs3OyUAU3iy53OdRdxqawKoWTQPjYB+TyQ4w+otT66Y0sMcw70O0wH3GFAfPmQgFn+g==", + "dev": true, + "requires": { + "asn1.js": "^5.0.0", + "async": "^2.6.0", + "browserify-aes": "^1.2.0", + "bs58": "^4.0.1", + "keypair": "^1.0.1", + "libp2p-crypto-secp256k1": "~0.2.2", + "multihashing-async": "~0.4.8", + "node-forge": "^0.7.5", + "pem-jwk": "^1.5.1", + "protons": "^1.0.1", + "rsa-pem-to-jwk": "^1.1.3", + "tweetnacl": "^1.0.0", + "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + } + }, + "multihashing-async": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.8.tgz", + "integrity": "sha512-LCc4lfxmTJOHKIjZjFNgvmfB6nXS/ErLInT9uwU8udFrRm2PH+aTPk3mfCREKmCiSHOlCWiv2O8rlnBx+OjlMw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "blakejs": "^1.1.0", + "js-sha3": "^0.7.0", + "multihashes": "~0.4.13", + "murmurhash3js": "^3.0.1", + "nodeify": "^1.0.1" + } + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=", + "dev": true + } + } + }, "peer-info": { "version": "0.14.1", "resolved": "http://registry.npmjs.org/peer-info/-/peer-info-0.14.1.tgz", @@ -11045,7 +11029,7 @@ }, "pem-jwk": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-1.5.1.tgz", + "resolved": "http://registry.npmjs.org/pem-jwk/-/pem-jwk-1.5.1.tgz", "integrity": "sha1-eoY3/S9nqCflfAxC4cI8P9Us+wE=", "dev": true, "requires": { @@ -11229,14 +11213,6 @@ "tar-fs": "^1.13.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "prelude-ls": { @@ -11251,13 +11227,6 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true, - "optional": true - }, "priorityqueue": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/priorityqueue/-/priorityqueue-0.2.1.tgz", @@ -11299,13 +11268,13 @@ } }, "prometheus-gc-stats": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/prometheus-gc-stats/-/prometheus-gc-stats-0.5.1.tgz", - "integrity": "sha1-RxO8Xp9znuCahslkAU37zk/VAAM=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/prometheus-gc-stats/-/prometheus-gc-stats-0.6.1.tgz", + "integrity": "sha512-DUo/cDs+1XcVuqoFU6+DjmWjkjIRIVeswtZAIfslIPrYfli2NK0/g/BPoO/kqOgLvzbKRx4m9+MDeNsNIIJGkg==", "dev": true, "optional": true, "requires": { - "gc-stats": "^1.0.0", + "gc-stats": "^1.2.1", "optional": "^0.1.3" } }, @@ -11346,6 +11315,17 @@ "object-assign": "^4.1.1" } }, + "proper-lockfile": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-3.2.0.tgz", + "integrity": "sha512-iMghHHXv2bsxl6NchhEaFck8tvX3F9cknEEh1SUpguUOBjN7PAAW9BLzmbc1g/mCD1gY3EE2EABBHPJfFdHFmA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, "protocol-buffers-schema": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz", @@ -11684,12 +11664,6 @@ "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "ws": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", @@ -11744,11 +11718,22 @@ "readable-stream": "^2.0.4" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true }, "prebuild-install": { "version": "2.5.3", @@ -11776,34 +11761,6 @@ } } }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true, - "optional": true - } - } - }, "randombytes": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", @@ -11822,428 +11779,150 @@ "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "locate-path": "^3.0.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "p-try": "^2.0.0" } }, - "is-number": { + "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "p-limit": "^2.0.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } } } }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, + "regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", "dev": true }, "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", "dev": true, "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", "private": "^0.1.6" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -12261,14 +11940,17 @@ "dev": true }, "regexpu-core": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" } }, "registry-auth-token": { @@ -12291,15 +11973,15 @@ } }, "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", "dev": true }, "regjsparser": { - "version": "0.1.5", - "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -12343,15 +12025,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -12403,10 +12076,30 @@ } }, "resolve": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", + "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } }, "resolve-from": { "version": "1.0.1", @@ -12436,14 +12129,11 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true }, "rimraf": { "version": "2.6.2", @@ -12465,9 +12155,9 @@ } }, "rlp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.1.0.tgz", - "integrity": "sha512-93U7IKH5j7nmXFVg19MeNBGzQW5uXW1pmCuKY8veeKIhYTE32C2d0mOegfiIAfXcHOKJjjPlJisn8iHDF5AezA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.0.tgz", + "integrity": "sha512-rGDIOeKPYj82rgml9Fpi28dU9n2JYyqTXaBeCLTT9rk9+Ry+/l7oDgVuHcKYDSJ6WZfa2mD16fRWPpNzk0kTHw==", "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -12790,29 +12480,12 @@ "inherits": "^2.0.1", "randombytes": "^2.0.3", "readable-stream": "^2.3.4" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } } }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, "slice-ansi": { @@ -12860,6 +12533,15 @@ "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -12877,6 +12559,12 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -12928,18 +12616,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -12950,6 +12626,17 @@ "dev": true, "requires": { "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "socket.io": { @@ -12964,23 +12651,6 @@ "socket.io-adapter": "~1.1.0", "socket.io-client": "2.2.0", "socket.io-parser": "~3.3.0" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } } }, "socket.io-adapter": { @@ -13019,6 +12689,12 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -13047,6 +12723,12 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -13070,12 +12752,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -13131,12 +12807,21 @@ } }, "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "source-map-url": { @@ -13234,12 +12919,12 @@ } }, "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "figgy-pudding": "^3.5.1" } }, "stable": { @@ -13275,14 +12960,6 @@ "get-stdin": "^6.0.0", "minimist": "^1.1.0", "pkg-conf": "^2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "statehood": { @@ -13370,16 +13047,28 @@ } }, "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.0.0.tgz", + "integrity": "sha512-JELJfd+btL9GHtxU3+XXhg9NLYrKFnhybfvRuDghtyVkOFydz3PKNT1df07AMr88qW03WHF+FSV0PySpXignCA==", "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", + "readable-stream": "^3.0.6", "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", + "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "stream-shift": { @@ -13506,51 +13195,43 @@ } }, "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-4.0.0.tgz", + "integrity": "sha512-qaGDf+QUYxgMYdJBWCezHnc3UjrCUwxm5bCfxBhTXI5BbCluVzmVNYzxvCw1jP9PXmwUZeOW2yPpGm9fLbhtFg==", "dev": true, "requires": { "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", + "cookiejar": "^2.1.2", + "debug": "^4.0.0", + "form-data": "^2.3.2", "formidable": "^1.2.0", "methods": "^1.1.1", - "mime": "^1.4.1", + "mime": "^2.0.3", "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "readable-stream": "^3.0.3" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "readable-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.0.tgz", + "integrity": "sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==", "dev": true, "requires": { - "ms": "^2.1.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, "symbol-observable": { "version": "1.0.1", @@ -13578,26 +13259,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -13622,22 +13283,13 @@ "requires": { "ansi-regex": "^3.0.0" } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, "tapable": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", - "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", "dev": true }, "tar-fs": { @@ -13713,6 +13365,157 @@ "dev": true, "requires": { "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "terser": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.13.1.tgz", + "integrity": "sha512-ogyZye4DFqOtMzT92Y3Nxxw8OvXmL39HOALro4fc+EUYFFF9G/kk0znkvwMz6PPYgBtdKAodh3FPR70eugdaQA==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.6" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "text-table": { @@ -13814,9 +13617,9 @@ "dev": true }, "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { @@ -13826,6 +13629,17 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "to-regex": { @@ -13848,17 +13662,6 @@ "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } } }, "topo": { @@ -13917,6 +13720,12 @@ "utf8-byte-length": "^1.0.1" } }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tty-browserify": { "version": "0.0.0", "resolved": "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -13995,57 +13804,38 @@ } } }, - "uglify-to-browserify": { + "ultron": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - } + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, - "ultron": { + "unicode-match-property-value-ecmascript": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", "dev": true }, "union-value": { @@ -14153,12 +13943,6 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, @@ -14191,46 +13975,15 @@ "dev": true, "requires": { "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -14283,6 +14036,14 @@ "requires": { "bindings": "^1.3.0", "nan": "^2.11.1" + }, + "dependencies": { + "nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", + "dev": true + } } }, "use": { @@ -14291,12 +14052,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", @@ -14331,476 +14086,132 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=", - "dev": true - }, - "varint-decoder": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-0.1.1.tgz", - "integrity": "sha1-YT1i8HHX51dqIO/RbvTB4zWg3f0=", - "dev": true, - "requires": { - "varint": "^5.0.0" - } - }, - "varuint-bitcoin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", - "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vise": { - "version": "2.0.2", - "resolved": "http://registry.npmjs.org/vise/-/vise-2.0.2.tgz", - "integrity": "sha1-awjo+0y3bjpQzW3Q7DczjoEaDTk=", - "dev": true, - "requires": { - "hoek": "4.x.x" - }, - "dependencies": { - "hoek": { - "version": "4.2.1", - "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "varint": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", + "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=", + "dev": true + }, + "varint-decoder": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-0.1.1.tgz", + "integrity": "sha1-YT1i8HHX51dqIO/RbvTB4zWg3f0=", + "dev": true, + "requires": { + "varint": "^5.0.0" + } + }, + "varuint-bitcoin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", + "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vise": { + "version": "2.0.2", + "resolved": "http://registry.npmjs.org/vise/-/vise-2.0.2.tgz", + "integrity": "sha1-awjo+0y3bjpQzW3Q7DczjoEaDTk=", + "dev": true, + "requires": { + "hoek": "4.x.x" + }, + "dependencies": { + "hoek": { + "version": "4.2.1", + "resolved": "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } } } }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, "webcrypto-shim": { "version": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8", "from": "github:dignifiedquire/webcrypto-shim#master", "dev": true }, "webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.0.tgz", + "integrity": "sha512-gPNTMGR5ZlBucXmEQ34TRxRqXnGYq9P3t8LeP9rvhkNnr+Cn+HvZMxGuJ4Hl7zdmoRUZP+GosniqJiadXW/RqQ==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.3.0", "loader-utils": "^1.1.0", "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" }, "dependencies": { "acorn": { @@ -14808,284 +14219,27 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - } - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } } } }, + "webpack-cli": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", + "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.0", + "global-modules-path": "^2.3.0", + "import-local": "^2.0.0", + "interpret": "^1.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.2" + } + }, "webpack-sources": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", @@ -15190,12 +14344,6 @@ "bs58check": "<3.0.0" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -15346,12 +14494,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -15419,26 +14561,17 @@ "requires": { "ansi-regex": "^3.0.0" } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yargs-promise": { diff --git a/package.json b/package.json index e37d27f1..ef91e3b1 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/orbitdb/ipfs-log" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" }, "dependencies": { "orbit-db-identity-provider": "github:orbitdb/orbit-db-identity-provider", @@ -18,26 +18,30 @@ "p-whilst": "^1.0.0" }, "devDependencies": { + "@babel/cli": "^7.2.3", + "@babel/core": "^7.2.2", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.2.0", + "@babel/preset-env": "^7.2.0", + "@babel/runtime": "^7.2.0", "@orbitdb/eslint-config-orbitdb": "0.0.2", - "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", - "babel-loader": "^8.0.2", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.1", - "datastore-level": "~0.8.0", - "go-ipfs-dep": "~0.4.17", - "ipfs": "~0.31.4", - "ipfs-repo": "~0.23.1", - "ipfsd-ctl": "~0.39.1", + "babel-loader": "^8.0.4", + "datastore-level": "^0.10.0", + "go-ipfs-dep": "^0.4.18", + "ipfs": "^0.33.1", + "ipfs-repo": "^0.26.0", + "ipfsd-ctl": "^0.40.2", "is-node": "^1.0.2", "istanbul": "^0.4.5", + "json-loader": "^0.5.7", "mocha": "^5.2.0", - "mocha-headless-chrome": "~2.0.1", + "mocha-headless-chrome": "^2.0.1", "orbit-db-keystore": "github:orbitdb/orbit-db-keystore", "rimraf": "^2.6.1", "standard": "^12.0.1", - "uglifyjs-webpack-plugin": "~1.3.0", - "webpack": "^3.10.0" + "webpack": "^4.28.0", + "webpack-cli": "^3.1.2" }, "standard": { "env": "mocha", @@ -48,10 +52,10 @@ "test:coverage": "istanbul cover -x src/g-set.js _mocha", "test:browser": "npm run build:tests && mocha-headless-chrome -f ./test/browser/index.html", "build": "npm run build:es5 && npm run build:examples && npm run build:dist", - "build:tests": "webpack --config webpack.tests.config.js", - "build:examples": "webpack --config webpack.example.config.js --sort-modules-by size --define process.env.NODE_ENV=production", - "build:dist": "webpack --config webpack.config.js --display-modules --sort-modules-by size --define process.env.NODE_ENV=production", - "build:es5": "babel src --out-dir ./lib/es5/ --presets babel-preset-env --plugins babel-plugin-transform-runtime", + "build:tests": "webpack --config webpack.tests.config.js --mode production", + "build:examples": "webpack --config webpack.example.config.js --sort-modules-by size --mode production", + "build:dist": "webpack --config webpack.config.js --display-modules --sort-modules-by size --mode production", + "build:es5": "babel src --out-dir ./lib/es5/ --presets @babel/preset-env --plugins @babel/plugin-transform-runtime", "lint": "standard" } } diff --git a/src/entry.js b/src/entry.js index 0e7a34aa..536d8cda 100644 --- a/src/entry.js +++ b/src/entry.js @@ -2,7 +2,6 @@ const Clock = require('./lamport-clock') const { isDefined } = require('./utils') - const IpfsNotDefinedError = () => new Error('Ipfs instance not defined') class Entry { @@ -104,8 +103,8 @@ class Entry { if (entry.sig) Object.assign(e, { sig: entry.sig }) const data = Entry.toBuffer(e) - const object = await ipfs.object.put(data) - return object.toJSON().multihash + const object = await ipfs.dag.put(data) + return object.toBaseEncodedString() } /** @@ -122,9 +121,8 @@ class Entry { if (!ipfs) throw IpfsNotDefinedError() if (!hash) throw new Error(`Invalid hash: ${hash}`) - const obj = await ipfs.object.get(hash, { enc: 'base58' }) - - const data = JSON.parse(obj.toJSON().data) + const obj = await ipfs.dag.get(hash) + const data = JSON.parse(obj.value) let entry = { hash: hash, id: data.id, diff --git a/src/log-io.js b/src/log-io.js index 26292554..86986727 100644 --- a/src/log-io.js +++ b/src/log-io.js @@ -13,8 +13,8 @@ class LogIO { if (!isDefined(ipfs)) throw LogError.IPFSNotDefinedError() if (!isDefined(log)) throw LogError.LogNotDefinedError() if (log.values.length < 1) throw new Error(`Can't serialize an empty log`) - const dagNode = await ipfs.object.put(log.toBuffer()) - return dagNode.toJSON().multihash + const dagNode = await ipfs.dag.put(log.toBuffer()) + return dagNode.toBaseEncodedString() } /** @@ -29,8 +29,8 @@ class LogIO { if (!isDefined(ipfs)) throw LogError.IPFSNotDefinedError() if (!isDefined(hash)) throw new Error(`Invalid hash: ${hash}`) - const dagNode = await ipfs.object.get(hash, { enc: 'base58' }) - const logData = JSON.parse(dagNode.toJSON().data) + const dagNode = await ipfs.dag.get(hash) + const logData = JSON.parse(dagNode.value) if (!logData.heads || !logData.id) throw LogError.NotALogError() const entries = await EntryIO.fetchAll(ipfs, logData.heads, length, exclude, null, onProgressCallback) diff --git a/test/entry.spec.js b/test/entry.spec.js index 7193c42c..9f69a34e 100644 --- a/test/entry.spec.js +++ b/test/entry.spec.js @@ -40,7 +40,7 @@ Object.keys(testAPIs).forEach((IPFS) => { describe('create', () => { it('creates a an empty entry', async () => { - const expectedHash = 'QmV5NpvViHHouBfo7CSnfX2iB4t5PVWNJG8doKt5cwwnxY' + const expectedHash = 'zdpuAnaYBmydja6Suh9AeB8uo79YVocEpYE18Jex1erhZo9GY' const entry = await Entry.create(ipfs, testIdentity, 'A', 'hello') assert.strictEqual(entry.hash, expectedHash) assert.strictEqual(entry.id, 'A') @@ -52,7 +52,7 @@ Object.keys(testAPIs).forEach((IPFS) => { }) it('creates a entry with payload', async () => { - const expectedHash = 'QmderYccue9XqB7V4EYf71ZygWELdzdbVqo1oxR4nMRrCh' + const expectedHash = 'zdpuAr5xeRwB9GTe8HF9anWrHs3DixhNa6eMm9h769REozoKe' const payload = 'hello world' const entry = await Entry.create(ipfs, testIdentity, 'A', payload, []) assert.strictEqual(entry.payload, payload) @@ -65,7 +65,7 @@ Object.keys(testAPIs).forEach((IPFS) => { }) it('creates a entry with payload and next', async () => { - const expectedHash = 'QmQDYaVgVpR7uMG1ao9D1sioYHvAHeuLgUxKBuX1tQtKTY' + const expectedHash = 'zdpuAyb1YydfzunrxK9SDA5KZASuETubhBdWKHYCpcZMcpKai' const payload1 = 'hello world' const payload2 = 'hello again' const entry1 = await Entry.create(ipfs, testIdentity, 'A', payload1, []) @@ -149,7 +149,7 @@ Object.keys(testAPIs).forEach((IPFS) => { describe('toMultihash', () => { it('returns an ipfs hash', async () => { - const expectedHash = 'QmV5NpvViHHouBfo7CSnfX2iB4t5PVWNJG8doKt5cwwnxY' + const expectedHash = 'zdpuAnaYBmydja6Suh9AeB8uo79YVocEpYE18Jex1erhZo9GY' const entry = await Entry.create(ipfs, testIdentity, 'A', 'hello', []) const hash = await Entry.toMultihash(ipfs, entry) assert.strictEqual(entry.hash, expectedHash) @@ -189,7 +189,7 @@ Object.keys(testAPIs).forEach((IPFS) => { describe('fromMultihash', () => { it('creates a entry from ipfs hash', async () => { - const expectedHash = 'QmTLLKuNVXC95rGcnrL1M3xKf4dWYuu3MeAM3LUh3YNDJ7' + const expectedHash = 'zdpuAkSjJjsto7uvePWTHv9J9PkChzpnXP1Xeurjd7W6y2BiP' const payload1 = 'hello world' const payload2 = 'hello again' const entry1 = await Entry.create(ipfs, testIdentity, 'A', payload1, []) diff --git a/test/log.spec.js b/test/log.spec.js index 76c096ae..4acf2461 100644 --- a/test/log.spec.js +++ b/test/log.spec.js @@ -188,7 +188,7 @@ Object.keys(testAPIs).forEach((IPFS) => { it('returns an Entry', () => { const entry = log.get(log.values[0].hash) - assert.deepStrictEqual(entry.hash, 'QmXmmR8f9zYbAQouvLJYhvoffb7c31FC7DV6nSfkv5iJKG') + assert.deepStrictEqual(entry.hash, 'zdpuB1TxcmqeDRcka6vAuKBGGDoL5Lt8YHfr6JXnvvXFfXvAa') }) it('returns undefined when Entry is not in the log', () => { @@ -202,7 +202,7 @@ Object.keys(testAPIs).forEach((IPFS) => { before(async () => { expectedData = { - hash: 'QmXmmR8f9zYbAQouvLJYhvoffb7c31FC7DV6nSfkv5iJKG', + hash: 'zdpuB1TxcmqeDRcka6vAuKBGGDoL5Lt8YHfr6JXnvvXFfXvAa', id: 'AAA', payload: 'one', next: [], @@ -236,7 +236,7 @@ Object.keys(testAPIs).forEach((IPFS) => { let log//, testIdentity2, testIdentity3, testIdentity4 const expectedData = { id: 'AAA', - heads: ['QmRk7Cborp5kyvAr6ty8Qhxs9PtvdBojG9uWUopqUN3c4z'] + heads: ['zdpuB1Zk2eJHmw1ENgFvq9jp7oTRtAEnkRMzxcFgp9XSYkAHr'] } beforeEach(async () => { @@ -255,11 +255,11 @@ Object.keys(testAPIs).forEach((IPFS) => { describe('toSnapshot', () => { const expectedData = { id: 'AAA', - heads: ['QmRk7Cborp5kyvAr6ty8Qhxs9PtvdBojG9uWUopqUN3c4z'], + heads: ['zdpuB1Zk2eJHmw1ENgFvq9jp7oTRtAEnkRMzxcFgp9XSYkAHr'], values: [ - 'QmXmmR8f9zYbAQouvLJYhvoffb7c31FC7DV6nSfkv5iJKG', - 'QmbxyqTACVkkGkkBryEsUP7ff2trezXy4eK67izyxjmu4X', - 'QmRk7Cborp5kyvAr6ty8Qhxs9PtvdBojG9uWUopqUN3c4z' + 'zdpuB1TxcmqeDRcka6vAuKBGGDoL5Lt8YHfr6JXnvvXFfXvAa', + 'zdpuAuftJ9deM3FompFexiRMU5UoBTMd7G4ivmwgWyc8RoAvF', + 'zdpuB1Zk2eJHmw1ENgFvq9jp7oTRtAEnkRMzxcFgp9XSYkAHr' ] } @@ -283,7 +283,7 @@ Object.keys(testAPIs).forEach((IPFS) => { describe('toMultihash', async () => { it('returns the log as ipfs hash', async () => { - const expectedHash = 'QmbxZPQsFdj3qA3gvtHV7fJvb48ZoScNWb2zJpKyR3A5BF' + const expectedHash = 'zdpuArWGgoYSkBasQqmMnWgobYpVpbwHajkTthdXrDo4s4gvT' let log = new Log(ipfs, testACL, testIdentity, 'A') await log.append('one') const hash = await log.toMultihash() @@ -293,15 +293,15 @@ Object.keys(testAPIs).forEach((IPFS) => { it('log serialized to ipfs contains the correct data', async () => { const expectedData = { id: 'A', - heads: ['QmNPsBXD1ieznbsMEgPZdSgxB25vCC6vRge9XfynaFtgxs'] + heads: ['zdpuAmQnqT6iSbGiLv2jsuNkvRKJhydvfdJFvAgMfv9FN6w1R'] } - const expectedHash = 'QmbxZPQsFdj3qA3gvtHV7fJvb48ZoScNWb2zJpKyR3A5BF' + const expectedHash = 'zdpuArWGgoYSkBasQqmMnWgobYpVpbwHajkTthdXrDo4s4gvT' let log = new Log(ipfs, testACL, testIdentity, 'A') await log.append('one') const hash = await log.toMultihash() assert.strictEqual(hash, expectedHash) - const result = await ipfs.object.get(hash) - const res = JSON.parse(result.toJSON().data.toString()) + const result = await ipfs.dag.get(hash) + const res = JSON.parse(result.value) assert.deepStrictEqual(res.heads, expectedData.heads) }) @@ -322,7 +322,7 @@ Object.keys(testAPIs).forEach((IPFS) => { it('creates a log from ipfs hash - one entry', async () => { const expectedData = { id: 'X', - heads: ['QmRRGWJ8PzhHTp3zgdx2fS4adXF1q4HVGZ9MtbLgZ8QFfL'] + heads: ['zdpuAywKpTghf1VL7itki8XuNdK416cCqMxDrzWYikFdM7f9j'] } let log = new Log(ipfs, testACL, testIdentity, 'X') await log.append('one') @@ -421,10 +421,10 @@ Object.keys(testAPIs).forEach((IPFS) => { }) it('throws an error when data from hash is not instance of Log', async () => { - const res = await ipfs.object.put(Buffer.from('{}')) + const res = await ipfs.dag.put(Buffer.from('{}')) let err try { - await Log.fromMultihash(ipfs, testACL, testIdentity, res.toJSON().multihash) + await Log.fromMultihash(ipfs, testACL, testIdentity, res.toBaseEncodedString()) } catch (e) { err = e } @@ -432,10 +432,10 @@ Object.keys(testAPIs).forEach((IPFS) => { }) it('throws an error if data from hash is not valid JSON', async () => { - const res = await ipfs.object.put(Buffer.from('hello')) + const res = await ipfs.dag.put(Buffer.from('hello')) let err try { - await Log.fromMultihash(ipfs, testACL, testIdentity, res.toJSON().multihash) + await Log.fromMultihash(ipfs, testACL, testIdentity, res.toBaseEncodedString()) } catch (e) { err = e } diff --git a/test/replicate.spec.js b/test/replicate.spec.js index b6131579..1f20c172 100644 --- a/test/replicate.spec.js +++ b/test/replicate.spec.js @@ -46,10 +46,10 @@ Object.keys(testAPIs).forEach((IPFS) => { // Use mem-store for faster testing (no disk IO) const memstore = new MemStore() - ipfs1.object.put = memstore.put.bind(memstore) - ipfs1.object.get = memstore.get.bind(memstore) - ipfs2.object.put = memstore.put.bind(memstore) - ipfs2.object.get = memstore.get.bind(memstore) + ipfs1.dag.put = memstore.put.bind(memstore) + ipfs1.dag.get = memstore.get.bind(memstore) + ipfs2.dag.put = memstore.put.bind(memstore) + ipfs2.dag.get = memstore.get.bind(memstore) // Create an identity for each peers testIdentity = await IdentityProvider.createIdentity({ id: 'userA', identityKeysPath, signingKeysPath }) diff --git a/test/utils/mem-store.js b/test/utils/mem-store.js index 81488307..6d20f150 100644 --- a/test/utils/mem-store.js +++ b/test/utils/mem-store.js @@ -1,8 +1,6 @@ 'use strict' - const multihashing = require('multihashing-async') const mh = require('multihashes') - const defaultHashAlg = 'sha2-256' const createMultihash = (data, hashAlg) => { @@ -11,50 +9,33 @@ const createMultihash = (data, hashAlg) => { if (err) { return reject(err) } - resolve(mh.toB58String(multihash)) }) }) } -// const LRU = require('lru') -// const ImmutableDB = require('./immutabledb-interface') -// const createMultihash = require('./create-multihash') - /* Memory store using an LRU cache */ class MemStore { - constructor () { + constructor (ipfs) { this._store = {}// new LRU(1000) + this._ipfs = ipfs } async put (value) { const data = value// new Buffer(JSON.stringify(value)) const hash = await createMultihash(data) - // console.log(this._store) - // this._store.set(hash, data) + if (!this._store) this._store = {} - // console.log(this._store) - // console.log(hash, data) this._store[hash] = data - // return hash + return { - toJSON: () => { - return { - data: value, - multihash: hash - } - } + toBaseEncodedString: () => hash } } async get (key) { return { - toJSON: () => { - return { - data: this._store[key], - multihash: key - } - } + value: this._store[key] } } } diff --git a/webpack.config.js b/webpack.config.js index ce3e9442..af1efd34 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,14 +1,13 @@ 'use strict' const path = require('path') -const Uglify = require('uglifyjs-webpack-plugin') module.exports = { entry: './src/log.js', output: { libraryTarget: 'var', library: 'Log', - filename: './dist/ipfslog.min.js' + filename: 'ipfslog.min.js' }, target: 'web', devtool: 'sourcemap', @@ -17,7 +16,6 @@ module.exports = { Buffer: true }, plugins: [ - new Uglify() ], resolve: { modules: [ diff --git a/webpack.example.config.js b/webpack.example.config.js index d5121610..16f3958c 100644 --- a/webpack.example.config.js +++ b/webpack.example.config.js @@ -1,19 +1,11 @@ 'use strict' -const Uglify = require('uglifyjs-webpack-plugin') const path = require('path') -const uglifyOptions = { - uglifyOptions: { - mangle: false, - compress: false - } -} - module.exports = { entry: './examples/browser/index.js', output: { - filename: './examples/browser/bundle.js' + filename: '../examples/browser/bundle.js' }, target: 'web', devtool: 'none', @@ -23,7 +15,6 @@ module.exports = { Buffer: true }, plugins: [ - new Uglify(uglifyOptions) ], externals: { fs: '{}' @@ -40,11 +31,5 @@ module.exports = { path.resolve(__dirname, '../node_modules') ], moduleExtensions: ['-loader'] - }, - module: { - rules: [{ - test: /\.json$/, - loader: 'json-loader' - }] } } diff --git a/webpack.tests.config.js b/webpack.tests.config.js index 5852263b..daaf8229 100644 --- a/webpack.tests.config.js +++ b/webpack.tests.config.js @@ -8,7 +8,7 @@ module.exports = { // TODO: put all tests in a .js file that webpack can use as entry point entry: glob.sync('./test/*.spec.js', { 'ignore': ['./test/replicate.spec.js'] }), output: { - filename: './test/browser/bundle.js' + filename: '../test/browser/bundle.js' }, target: 'web', devtool: 'source-map', @@ -45,8 +45,17 @@ module.exports = { module: { rules: [ { - test: /\.json$/, - loader: 'json-loader' + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: [ + ['@babel/preset-env', { modules: false }] + ], + plugins: ['@babel/syntax-object-rest-spread', '@babel/transform-runtime', '@babel/plugin-transform-modules-commonjs'] + } + } }, // For inlining the fixture keys in browsers tests {