diff --git a/dist/web3data.min.js b/dist/web3data.min.js index cf304e7..a8ae602 100644 --- a/dist/web3data.min.js +++ b/dist/web3data.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).web3data=t()}(this,(function(){"use strict";var e=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r1)for(var n=1;n=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}(o.getAllResponseHeaders()):null,s={data:e.responseType&&"text"!==e.responseType?o.response:o.responseText,status:o.status,statusText:o.statusText,headers:r,config:e,request:o};!function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(K("Request failed with status code "+n.status,n.config,null,n.request,n))}(t,n,s),o=null}},o.onabort=function(){o&&(n(K("Request aborted",e,"ECONNABORTED",o)),o=null)},o.onerror=function(){n(K("Network Error",e,null,o)),o=null},o.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(K(t,e,"ECONNABORTED",o)),o=null},a.isStandardBrowserEnv()){var p=G,f=(e.withCredentials||j(l))&&e.xsrfCookieName?p.read(e.xsrfCookieName):void 0;f&&(s[e.xsrfHeaderName]=f)}if("setRequestHeader"in o&&a.forEach(s,(function(e,t){void 0===r&&"content-type"===t.toLowerCase()?delete s[t]:o.setRequestHeader(t,e)})),a.isUndefined(e.withCredentials)||(o.withCredentials=!!e.withCredentials),e.responseType)try{o.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&o.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&o.upload&&o.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){o&&(o.abort(),n(e),o=null)})),void 0===r&&(r=null),o.send(r)}))},q={"Content-Type":"application/x-www-form-urlencoded"};function W(e,t){!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var z,V={adapter:("undefined"!=typeof XMLHttpRequest?z=$:void 0!==x&&"[object process]"===Object.prototype.toString.call(x)&&(z=$),z),transformRequest:[function(e,t){return U(t,"Accept"),U(t,"Content-Type"),a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)?e:a.isArrayBufferView(e)?e.buffer:a.isURLSearchParams(e)?(W(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):a.isObject(e)?(W(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};V.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],(function(e){V.headers[e]={}})),a.forEach(["post","put","patch"],(function(e){V.headers[e]=a.merge(q)}));var J=V;function X(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var Y=function(e){return X(e),e.headers=e.headers||{},e.data=l(e.data,e.headers,e.transformRequest),e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),a.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||J.adapter)(e).then((function(t){return X(e),t.data=l(t.data,t.headers,e.transformResponse),t}),(function(t){return p(t)||(X(e),t&&t.response&&(t.response.data=l(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))},Z=function(e,t){t=t||{};var n={},r=["url","method","params","data"],s=["headers","auth","proxy"],o=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];a.forEach(r,(function(e){void 0!==t[e]&&(n[e]=t[e])})),a.forEach(s,(function(r){a.isObject(t[r])?n[r]=a.deepMerge(e[r],t[r]):void 0!==t[r]?n[r]=t[r]:a.isObject(e[r])?n[r]=a.deepMerge(e[r]):void 0!==e[r]&&(n[r]=e[r])})),a.forEach(o,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var i=r.concat(s).concat(o),c=Object.keys(t).filter((function(e){return-1===i.indexOf(e)}));return a.forEach(c,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n};function Q(e){this.defaults=e,this.interceptors={request:new h,response:new h}}Q.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=Z(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[Y,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},Q.prototype.getUri=function(e){return e=Z(this.defaults,e),d(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],(function(e){Q.prototype[e]=function(t,n){return this.request(a.merge(n||{},{method:e,url:t}))}})),a.forEach(["post","put","patch"],(function(e){Q.prototype[e]=function(t,n,r){return this.request(a.merge(r||{},{method:e,url:t,data:n}))}}));var ee=Q;function te(e){this.message=e}te.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},te.prototype.__CANCEL__=!0;var ne=te;function re(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new ne(e),t(n.reason))}))}re.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},re.source=function(){var e;return{token:new re((function(t){e=t})),cancel:e}};var se=re;function oe(t){var n=new ee(t),r=e(ee.prototype.request,n);return a.extend(r,ee.prototype,n),a.extend(r,n),r}var ie=oe(J);ie.Axios=ee,ie.create=function(e){return oe(Z(ie.defaults,e))},ie.Cancel=ne,ie.CancelToken=se,ie.isCancel=p,ie.all=function(e){return Promise.all(e)},ie.spread=function(e){return function(t){return e.apply(null,t)}};var ae=ie,ce=ie;ae.default=ce;var de=ae,ue="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};for(var he=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){e.exports.DEFAULT_WEBSOCKET_URL="wss://ws.web3api.io",e.exports.DEFAULT_BASE_URL="https://web3api.io/api/v2",e.exports.DEFAULT_RPC_URL="https://rpc.web3api.io",e.exports.API_KEY_HEADER="x-api-key",e.exports.BLOCKCHAIN_ID_HEADER="x-amberdata-blockchain-id",e.exports.BLOCKCHAIN_ID_ETHEREUM_MAINNET="1c9c969065fcd1cf",e.exports.BLOCKCHAIN_ID_ETHEREUM_RINKEBY="1b3f7a72b3e99c13",e.exports.BLOCKCHAIN_ID_BITCOIN="408fa195a34b533de9ad9889f076045e",e.exports.BLOCKCHAIN_ID_BITCOIN_CASH="43b45e71cc0615b491cb699e7071fc06",e.exports.BLOCKCHAIN_ID_BITCOIN_SV="a818635d36dbe125e26167c4438e2217",e.exports.BLOCKCHAIN_ID_LITECOIN="f94be61fd9f4fa684f992ddfd4e92272",e.exports.BLOCKCHAIN_ID_RIPPLE="2b8a5d8975e8c2a2ed92450450979a3c",e.exports.BLOCKCHAIN_ID_ZCASH="b7d4f994f33c709be4ce6cbae31d7b8e",e.exports.BLOCKCHAIN_ID_STELLAR="822e2ebe02f74df8",e.exports.ADDRESSES_ENDPOINT="/addresses",e.exports.TOKENS_ENDPOINT="/tokens",e.exports.TRANSACTIONS_ENDPOINT="/transactions",e.exports.BLOCKS_ENDPOINT="/blocks",e.exports.BLOCKCHAINS_ENDPOINT="/blockchains",e.exports.CONTRACTS_ENDPOINT="/contracts",e.exports.SIGNATURES_ENDPOINT="/signatures",e.exports.MARKET_ENDPOINT="/market",e.exports.MARKET_FEATURES=["pairs","exchanges","ohlcv","prices","tickers","trades"],e.exports.ERROR_MESSAGE_TOKEN_NO_ADDRESS="No token address supplied",e.exports.ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS="No token holder address supplied",e.exports.ERROR_MESSAGE_TRANSACTION_NO_HASH="No transaction hash supplied",e.exports.ERROR_MESSAGE_ADDRESS_NO_ADDRESS="No address supplied",e.exports.ERROR_MESSAGE_CONTRACT_NO_ADDRESS="No contract address supplied",e.exports.ERROR_MESSAGE_BLOCK_NO_ID="No block number or hash supplied",e.exports.ERROR_MESSAGE_MARKET_NO_PAIR="No market pair supplied",e.exports.ERROR_MESSAGE_MARKET_NO_FEATURE=`Missing or unknown. Features: '${e.exports.MARKET_FEATURES.join("', '")}'`,e.exports.ERROR_MESSAGE_SIGNATURE_NO_HASH="No signature hash supplied",e.exports.ERROR_RPC_NO_METHOD="No RPC method provided",e.exports.ETH_METHODS={getBlockNumber:"block",getBlock:"block",getBlockTransactionCount:"block",getUncle:"block",getCode:"contract",getGasPrice:"transaction",getTransactionFromBlock:"block",getTransactions:"block",getTransaction:"transaction",getPendingTransactions:"transaction",getEtherPrice:"market",getBalance:"address",getMetrics:"block"},e.exports.BTC_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getPendingTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getPendingTransactions","getMetrics"]},e.exports.LTC_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getPendingTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getPendingTransactions","getMetrics"]},e.exports.XLM_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getMetrics"]},e.exports.HTTP_CODE_NOT_FOUND=404})),le=(he.DEFAULT_WEBSOCKET_URL,he.DEFAULT_BASE_URL,he.DEFAULT_RPC_URL,he.API_KEY_HEADER,he.BLOCKCHAIN_ID_HEADER,he.BLOCKCHAIN_ID_ETHEREUM_MAINNET,he.BLOCKCHAIN_ID_ETHEREUM_RINKEBY,he.BLOCKCHAIN_ID_BITCOIN,he.BLOCKCHAIN_ID_BITCOIN_CASH,he.BLOCKCHAIN_ID_BITCOIN_SV,he.BLOCKCHAIN_ID_LITECOIN,he.BLOCKCHAIN_ID_RIPPLE,he.BLOCKCHAIN_ID_ZCASH,he.BLOCKCHAIN_ID_STELLAR,he.ADDRESSES_ENDPOINT,he.TOKENS_ENDPOINT,he.TRANSACTIONS_ENDPOINT,he.BLOCKS_ENDPOINT,he.BLOCKCHAINS_ENDPOINT,he.CONTRACTS_ENDPOINT,he.SIGNATURES_ENDPOINT,he.MARKET_ENDPOINT,he.MARKET_FEATURES,he.ERROR_MESSAGE_TOKEN_NO_ADDRESS,he.ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS,he.ERROR_MESSAGE_TRANSACTION_NO_HASH,he.ERROR_MESSAGE_ADDRESS_NO_ADDRESS,he.ERROR_MESSAGE_CONTRACT_NO_ADDRESS,he.ERROR_MESSAGE_BLOCK_NO_ID,he.ERROR_MESSAGE_MARKET_NO_PAIR,he.ERROR_MESSAGE_MARKET_NO_FEATURE,he.ERROR_MESSAGE_SIGNATURE_NO_HASH,he.ERROR_RPC_NO_METHOD,he.ETH_METHODS,he.BTC_METHODS,he.LTC_METHODS,he.XLM_METHODS,he.HTTP_CODE_NOT_FOUND,[]),pe=0;pe<256;++pe)le[pe]=(pe+256).toString(16).substr(1);var fe=function(e,t){var n=t||0,r=le;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")};function be(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:return t^n^r;case 2:return t&n^t&r^n&r;case 3:return t^n^r}}function ge(e,t){return e<>>32-t}var Ee=function(e,t,n){var r=function(e,r,s,o){var i=s&&o||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=new Array(e.length),n=0;n>>0;b=f,f=p,p=ge(l,30)>>>0,l=h,h=E}n[0]=n[0]+h>>>0,n[1]=n[1]+l>>>0,n[2]=n[2]+p>>>0,n[3]=n[3]+f>>>0,n[4]=n[4]+b>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}));const{ETH_METHODS:me}=he,_e=e=>{let t="";for(const n in e)({}).hasOwnProperty.call(e,n)&&(t+=`${n}=${e[n]}&`);return t},Oe=(e,t)=>{if(e)throw new Error(t)},we=e=>Oe(!0,e),Te=()=>{};Te.string=e=>"string"==typeof e,Te.bool=e=>"boolean"==typeof e,Te.emptyString=e=>Te.string(e)&&0===e.length,Te.emptyObject=e=>0===Object.keys(e).length,Te.inObject=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Te.undefined=e=>void 0===e,Te.null=e=>null===e,Te.notHash=e=>Te.undefined(e)||Te.emptyString(e),Te.notUndefined=e=>!Te.undefined(e),Te.nonEmptyObject=e=>!Te.emptyObject(e),Te.nonEmptyString=e=>!Te.emptyString(e),Te.notInObject=(e,t)=>!Te.inObject(e,t);const Ne=e=>Object.getOwnPropertyNames(e).filter(t=>"function"==typeof e[t]&&"constructor"!==t);var Se={buildFilterUrl:_e,is:Te,throwIf:Oe,get:(e,{endpoint:t="",subendpoint:n="",hash:r="",pathParam:s="",filterOptions:o={}})=>{const i=Te.nonEmptyObject(o)?"?"+_e(o):"";return r=r?"/"+r:"",s=s?"/"+s:"",n=n?"/"+n:"",e.rawQuery(`${t}${r||s}${n}${i}`)},rejectPromiseIf:(e,t)=>{if(e)return Promise.reject(new Error(t))},uuid:e=>Ee(JSON.stringify(e),"ccfeca02-f0e9-4433-a740-b830cceb3d2d"),ethFactory:function(e){const t={};for(const n in me)({}).hasOwnProperty.call(me,n)&&(t[n]=e[me[n]][n].bind(e[me[n]]));return t},methodFactory:(e,t)=>(Object.keys(t).forEach(n=>{Ne(Object.getPrototypeOf(e.web3data[n])).forEach(r=>{t[n].includes(r)&&(e[n]=e[n]?e[n]:{},e[n][r]=e.web3data[n][r].bind(e))})}),e),throwNow:we,onFulfilled:function(e){return Oe(e.error,e.message),this&&this.formatter?this.formatter(e.payload):e.payload},onError:({response:{data:e}})=>we(e.message||e.description),formatJsonRpc:e=>e?(e.params&&(e.params=Array.isArray(e.params)?e.params:[e.params]),JSON.stringify({jsonrpc:e.version||"2.0",method:e.method||"subscribe",id:e.id||0,params:e.params||[]})):"",getMethods:Ne,recordsFormatter:e=>((e,t)=>e&&e[t]?e[t]:e)(e,"records")};const{ERROR_MESSAGE_ADDRESS_NO_ADDRESS:Ae,ADDRESSES_ENDPOINT:Re}=he,{is:ye,get:ve,throwIf:ke,onFulfilled:Ie,onError:Ce,recordsFormatter:De}=Se;var He=class{constructor(e){this.web3data=e}getAllAddresses(e={}){return this.getAll(e)}getAll(e={}){return ve(this.web3data,{endpoint:Re,filterOptions:e}).then(Ie.bind({formatter:De}),Ce)}getInformation(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"information",filterOptions:t}).then(Ie,Ce)}getMetadata(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"metadata",filterOptions:t}).then(Ie,Ce)}getAdoption(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"adoption",filterOptions:t}).then(Ie,Ce)}getInternalMessages(e,t={}){return this.web3data.address.getFunctions(e,t)}getFunctions(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"functions",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getLogs(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"logs",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getTransactions(e,t={}){return ke(!e,Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"transactions",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getPendingTransactions(e,t={}){return ke(!e,Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"pending-transactions",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getBalance(e,t={}){ke(ye.notHash(e),Ae);let n="information";return Array.isArray(e)?(n="balances",t.addresses=e):t.includeTokens?n="balances":(t.startDate||t.endDate)&&(n="account-balances/historical"),ve(this.web3data,{...t.addresses?{}:{hash:e},endpoint:Re,subendpoint:n,filterOptions:t}).then(Ie,Ce)}getTokens(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"tokens",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getTokenTransfers(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"token-transfers",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getTokenBalances(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"token-balances",filterOptions:t}).then(Ie.bind({formatter:De}),Ce)}getUsage(e,t={}){return ke(ye.notHash(e),Ae),ve(this.web3data,{hash:e,endpoint:Re,subendpoint:"usage",filterOptions:t}).then(Ie,Ce)}getMetrics(){return ve(this.web3data,{endpoint:Re,subendpoint:"metrics/latest"}).then(Ie,Ce)}};const{is:Be,get:Me,onFulfilled:Pe,onError:Le,throwIf:xe,recordsFormatter:Ue}=Se,{ERROR_MESSAGE_TOKEN_NO_ADDRESS:Ke,ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS:Fe,TOKENS_ENDPOINT:je}=he;var Ge=class{constructor(e){this.web3data=e}getRankings(e={}){return Me(this.web3data,{endpoint:je,subendpoint:"rankings",filterOptions:e}).then(Pe,Le)}getVolume(e,t={}){return xe(Be.notHash(e),Ke),Me(this.web3data,{hash:e,endpoint:je,subendpoint:"volume",filterOptions:t}).then(Pe,Le)}getVelocity(e,t={}){return xe(Be.notHash(e),Ke),Me(this.web3data,{hash:e,endpoint:je,subendpoint:"velocity",filterOptions:t}).then(Pe,Le)}getHolders(e,t={}){xe(Be.notHash(e),Ke);let n="holders/latest",r={formatter:Ue};return t.holderAddresses&&(n="holders/historical",r={}),Me(this.web3data,{hash:e,endpoint:je,subendpoint:n,filterOptions:t}).then(Pe.bind(r),Le)}getHoldersHistorical(e,t){return xe(Be.notInObject(t,"holderAddresses"),Fe),this.getHolders(e,t)}getSupplies(e,t={}){xe(Be.notHash(e),Ke);const n=t.startDate||t.endDate?"supplies/historical":"supplies/latest";return Me(this.web3data,{hash:e,endpoint:je,subendpoint:n,filterOptions:t}).then(Pe,Le)}getTransfers(e,t={}){return xe(Be.notHash(e),Ke),Me(this.web3data,{hash:e,endpoint:je,subendpoint:"transfers",filterOptions:t}).then(Pe.bind({formatter:Ue}),Le)}};const{ERROR_MESSAGE_CONTRACT_NO_ADDRESS:$e,CONTRACTS_ENDPOINT:qe}=he,{is:We,get:ze,throwIf:Ve,onFulfilled:Je,onError:Xe}=Se;var Ye=class{constructor(e){this.web3data=e}getDetails(e){return Ve(We.notHash(e),$e),ze(this.web3data,{pathParam:e,endpoint:qe}).then(Je,Xe)}getFunctions(e){return We.notHash(e)?Promise.reject(new Error($e)):ze(this.web3data,{pathParam:e,endpoint:qe,subendpoint:"functions"}).then(Je,Xe)}getAbi(e){return Ve(We.notHash(e),$e),this.getDetails(e).then(({abi:e})=>e)}getSourceCode(e){return Ve(We.notHash(e),$e),ze(this.web3data,{pathParam:e,endpoint:qe,subendpoint:"source-code"}).then(Je,Xe)}getCode(e){return this.getDetails(e).then(e=>e.bytecode||"0x")}};const{TRANSACTIONS_ENDPOINT:Ze,ERROR_MESSAGE_TRANSACTION_NO_HASH:Qe}=he,{is:et,get:tt,onFulfilled:nt,onError:rt,throwIf:st,recordsFormatter:ot}=Se;var it=class{constructor(e){this.web3data=e}getTransactions(e={}){return tt(this.web3data,{endpoint:Ze,filterOptions:e}).then(nt.bind({formatter:ot}),rt)}getAll(e){return this.getTransactions(e)}getTransaction(e,t={}){return st(et.notHash(e),Qe),tt(this.web3data,{pathParam:e,endpoint:Ze,filterOptions:t}).then(nt,rt)}getPendingTransactions(){return this.getTransactions({status:"pending"}).then(e=>(st(et.undefined(e)||et.null(e),"Failed to retrieve pending transactions."),e),console.error)}getGasPrediction(){return tt(this.web3data,{endpoint:Ze,subendpoint:"gas/predictions"}).then(nt,rt)}getGasPercentiles(e={}){return tt(this.web3data,{endpoint:Ze,subendpoint:"gas/percentiles",filterOptions:e}).then(nt,rt)}getGasPrice(){return this.getGasPrediction().then(e=>(st(!e.average||!e.average.gasPrice,"Failed to retrieve gas price."),`${e.average.gasPrice}`))}getVolume(e={}){return tt(this.web3data,{endpoint:Ze,subendpoint:"volume",filterOptions:e}).then(nt,rt)}getMetrics(e){const t=e&&(e.startDate||e.endDate)?"historical":"latest";return tt(this.web3data,{endpoint:`${Ze}/metrics`,subendpoint:t,filterOptions:e}).then(nt.bind({formatter:ot}),rt)}};const{BLOCKS_ENDPOINT:at,ERROR_MESSAGE_BLOCK_NO_ID:ct}=he,{is:dt,get:ut,throwIf:ht,onFulfilled:lt,onError:pt,recordsFormatter:ft}=Se;var bt=class{constructor(e){this.web3data=e}getBlocks(e){return ut(this.web3data,{endpoint:at,filterOptions:e}).then(lt.bind({formatter:ft}),pt)}getBlock(e,t){return ht(dt.undefined(e),ct),ut(this.web3data,{pathParam:e,endpoint:at,filterOptions:t}).then(lt,pt)}getBlockNumber(){return this.web3data.block.getBlock("latest").then(e=>(ht(e|!e.number,"Failed to retrieve block number."),parseInt(e.number,10)))}getBlockTransactionCount(e){return this.web3data.block.getBlock(e).then(e=>(ht(!e||!e.predictions&&!e.numTransactions,"Failed to retrieve block transaction count."),e.predictions?null:parseInt(e.numTransactions,10)))}getTransactions(e,t){return ht(dt.undefined(e),ct),ut(this.web3data,{pathParam:e,endpoint:at,subendpoint:"transactions",filterOptions:t}).then(lt.bind({formatter:ft}),pt)}getTransactionFromBlock(e,t){return ht(dt.undefined(e),ct),this.web3data.block.getTransactions(e).then(e=>(ht(!e,"Failed to retrieve transaction."),t-1?e[t]:null))}getUncle(e,t){return ht(dt.undefined(e),ct),ht(dt.undefined(t),"Missing required param 'index'"),this.web3data.block.getBlock(e,{validationMethod:"full"}).then(e=>(ht(!e||!e.predictions&&!e.numTransactions&&!e.validation,"Failed to retrieve uncle."),!e.predictions&&e.validation.uncles&&t-1?e.validation.uncles[t]:null))}getTokenTransfers(e,t){return ht(dt.undefined(e),ct),ut(this.web3data,{pathParam:e,endpoint:at,subendpoint:"token-transfers",filterOptions:t}).then(lt,pt)}getLogs(e,t){return ht(dt.undefined(e),ct),ut(this.web3data,{pathParam:e,endpoint:at,subendpoint:"logs",filterOptions:t}).then(lt.bind({formatter:ft}),pt)}getFunctions(e,t){return ht(dt.undefined(e),ct),ut(this.web3data,{pathParam:e,endpoint:at,subendpoint:"functions",filterOptions:t}).then(lt.bind({formatter:ft}),pt)}getMetrics(e){const t=e&&(e.startDate||e.endDate)?"historical":"latest";return ut(this.web3data,{endpoint:`${at}/metrics`,subendpoint:t,filterOptions:e}).then(lt.bind({formatter:ft}),pt)}};const{BLOCKCHAINS_ENDPOINT:gt}=he,{get:Et,onFulfilled:mt,onError:_t}=Se;var Ot=class{constructor(e){this.web3data=e}getMetrics(e){const t=e&&(e.startDate||e.endDate)?"historical":"latest";return Et(this.web3data,{endpoint:`${gt}/metrics`,subendpoint:t,filterOptions:e}).then(mt,_t)}};const{get:wt,is:Tt,throwIf:Nt,onError:St,onFulfilled:At}=Se,{SIGNATURES_ENDPOINT:Rt,ERROR_MESSAGE_SIGNATURE_NO_HASH:yt}=he;var vt=class{constructor(e){this.web3data=e}getSignature(e){return Nt(Tt.notHash(e),yt),wt(this.web3data,{hash:e,endpoint:Rt}).then(At,St)}};const{is:kt,get:It,throwIf:Ct,onFulfilled:Dt,onError:Ht}=Se,{MARKET_FEATURES:Bt,MARKET_ENDPOINT:Mt,ERROR_MESSAGE_MARKET_NO_PAIR:Pt,ERROR_MESSAGE_MARKET_NO_FEATURE:Lt}=he;var xt=class{constructor(e){this.web3data=e}async getEtherPrice(){return It(this.web3data,{endpoint:Mt+"/prices/eth/latest"}).then(e=>e.payload.eth_usd.price,Ht)}getRankings(e){return It(this.web3data,{endpoint:Mt,subendpoint:"rankings",filterOptions:e}).then(Dt,Ht)}getFeatures(e=Bt,t={}){return e=(e=Array.isArray(e)?e:[e]).map(e=>{switch(Ct(kt.undefined(e)||!Bt.includes(e),Lt),e){case"prices":e+="/pairs";break;case"ohlcv":case"tickers":case"trades":e+="/information"}return It(this.web3data,{endpoint:Mt,subendpoint:e,filterOptions:t}).then(Dt,Ht).then(t=>({[e.split("/")[0]]:t}))}),Promise.all([...e]).then(e=>e.reduce((e,t)=>({...e,...t})))}getOhlcv(e,t={}){Ct(kt.undefined(e),Pt);const n=t.startDate||t.endDate?"historical":"latest";return It(this.web3data,{pathParam:e,endpoint:`${Mt}/ohlcv`,subendpoint:n,filterOptions:t}).then(Dt,Ht)}getOrders(e,t,n={}){return Ct(kt.undefined(e),Pt),(t=Array.isArray(t)?t:[t]).forEach(e=>Ct(kt.undefined(e),"No exchange specified")),n.exchange=t,It(this.web3data,{pathParam:e,endpoint:`${Mt}/orders`,filterOptions:n}).then(Dt,Ht)}getOrderBooks(e,t={}){return Ct(kt.undefined(e),Pt),It(this.web3data,{pathParam:e,endpoint:`${Mt}/orders`,subendpoint:"update",filterOptions:t}).then(Dt,Ht)}getBbos(e,t={}){Ct(kt.undefined(e),Pt);const n=t.startDate||t.endDate?"bbo/historical":"bbo";return It(this.web3data,{pathParam:e,endpoint:`${Mt}/orders`,subendpoint:n,filterOptions:t}).then(Dt,Ht)}getPrices(e,t={}){Ct(kt.undefined(e),Pt);const n=t.startDate||t.endDate?"historical":"latest";return It(this.web3data,{pathParam:e,endpoint:`${Mt}/prices`,subendpoint:n,filterOptions:t}).then(Dt,Ht)}getTokenPrices(e,t={}){Ct(kt.notHash(e),Pt);const n=t.startDate||t.endDate?"historical":"latest";return It(this.web3data,{hash:e,endpoint:`${Mt}/tokens/prices`,subendpoint:n,filterOptions:t}).then(Dt,Ht)}getVwap(e,t={}){return Ct(kt.undefined(e),Pt),It(this.web3data,{pathParam:e,endpoint:`${Mt}/prices`,subendpoint:"wap/latest",filterOptions:t}).then(Dt,Ht)}getTickers(e,t={}){Ct(kt.undefined(e),Pt);const n=t.startDate||t.endDate?"historical":"latest";return It(this.web3data,{pathParam:e,endpoint:`${Mt}/tickers`,subendpoint:n,filterOptions:t}).then(Dt,Ht)}getTrades(e,t={}){return Ct(kt.undefined(e),Pt),It(this.web3data,{pathParam:e,endpoint:`${Mt}/trades`,subendpoint:"historical",filterOptions:t}).then(Dt,Ht)}getAssetAddresses(e="all"){return It(this.web3data,{endpoint:`${Mt}/pairs/addresses`,filterOptions:{symbols:e}}).then(Dt,Ht)}};const{ethFactory:Ut}=Se,{BLOCKCHAIN_ID_ETHEREUM_MAINNET:Kt}=he;var Ft=class{constructor(e,t,n){n.blockchainId=Kt,this.web3data=new e(t,n);const r=Ut(this.web3data);for(const e in r)({}).hasOwnProperty.call(r,e)&&(this[e]=r[e])}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_BITCOIN:jt,BTC_METHODS:Gt}=he,{methodFactory:$t}=Se;var qt=class{constructor(e,t,n){n.blockchainId=jt,this.web3data=new e(t,n),$t(this,Gt)}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_BITCOIN_CASH:Wt,BTC_METHODS:zt}=he,{methodFactory:Vt}=Se;var Jt=class{constructor(e,t,n){n.blockchainId=Wt,this.web3data=new e(t,n),Vt(this,zt)}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_BITCOIN_SV:Xt,BTC_METHODS:Yt}=he,{methodFactory:Zt}=Se;var Qt=class{constructor(e,t,n){n.blockchainId=Xt,this.web3data=new e(t,n),Zt(this,Yt)}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_LITECOIN:en,LTC_METHODS:tn}=he,{methodFactory:nn}=Se;var rn=class{constructor(e,t,n){n.blockchainId=en,this.web3data=new e(t,n),nn(this,tn)}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_STELLAR:sn,BTC_METHODS:on}=he,{methodFactory:an}=Se;var cn=class{constructor(e,t,n){n.blockchainId=sn,this.web3data=new e(t,n),an(this,on)}rpc(e,t){return this.web3data.rpc(e,t)}};const{BLOCKCHAIN_ID_ZCASH:dn,BTC_METHODS:un}=he,{methodFactory:hn}=Se;var ln=class{constructor(e,t,n){n.blockchainId=dn,this.web3data=new e(t,n),hn(this,un)}rpc(e,t){return this.web3data.rpc(e,t)}},pn=null;"undefined"!=typeof WebSocket?pn=WebSocket:"undefined"!=typeof MozWebSocket?pn=MozWebSocket:void 0!==ue?pn=ue.WebSocket||ue.MozWebSocket:"undefined"!=typeof window?pn=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(pn=self.WebSocket||self.MozWebSocket);var fn=pn;const{DEFAULT_WEBSOCKET_URL:bn}=he,{is:gn,uuid:En}=Se,mn=e=>e?(e.params&&(e.params=Array.isArray(e.params)?e.params:[e.params]),JSON.stringify({jsonrpc:e.version||"2.0",method:e.method||"subscribe",id:e.id||0,params:e.params||[]})):"",_n=0,On=1,wn=2;var Tn=class{constructor(e,t){return this.socket=null,this.baseWsUrl=t&&t.websocketUrl?t.websocketUrl:bn,this.apiKey=e,this.blockchainId=null,this.connected=!1,this.reconnects=0,this.responseReceived=!1,this.dataReceived=!1,t.blockchainId&&(this.blockchainId=t.blockchainId),this.registry={},this.registrySubIds={},this.latestState={},this}connect(e){if(this.socket&&1===this.socket.readyState)return;const t=this.apiKey?`?x-api-key=${this.apiKey}`:"",n=this.blockchainId?`&x-amberdata-blockchain-id=${this.blockchainId}`:"";this.socket=new fn(`${this.baseWsUrl}${t}${n}`),this.socket.addEventListener("open",t=>{console.info("websocket client connection opened"),this.connected=!0,this._refreshSubscriptions(),this._listen(),e&&e(t),setTimeout(()=>{!this.responseReceived&&gn.nonEmptyObject(this.registry)&&this.socket&&this.socket.close()},5e3),setTimeout(()=>{!this.dataReceived&&gn.nonEmptyObject(this.registry)&&this.socket.close()},18e5)}),this.socket.addEventListener("error",t=>{e&&t?e("connection error occurred",t):console.error("connection error occurred"),this._reconnect()}),this.socket.addEventListener("close",e=>{console.info("Websocket client connection closed - code",e.code),this._reconnect()})}disconnect(e=null){this.socket&&1===this.socket.readyState?(this.socket.onclose=e?()=>e("Websocket client connection closed"):()=>console.info("Websocket client connection closed"),this.socket.close(),this.socket=null):console.error("socket is not yet connected")}on({eventName:e,filters:t},n){if(n||console.warn("no callback provided"),!e)return void console.error("no event specified");const r=En({eventName:e,filters:t});this.connected&&this._subscribe(e,t),this.registry[r]={},this.registry[r].callback=n,this.registry[r].args={eventName:e,filters:t}}once({eventName:e,filters:t},n){this.on({eventName:e,filters:t},r=>{this.off({eventName:e,filters:t},()=>{}),n&&n(r),this.registry[En({eventName:e,filters:t})].callback=null})}off({eventName:e,filters:t},n){if(n||console.warn("no callback provided"),!e)return void console.error("no event specified");const r=En({eventName:e,filters:t});this.registry[r]&&this.registry[r].subId?(this.registry[r].isSubscribed=!1,this.registry[r].unsubCallback=n||(()=>{}),this._unsubscribe(e,t,r)):console.error(`Not subscribed to: '${e}'`)}_reconnect(){1===this.socket.readyState&&this.disconnect(),++this.reconnects<=3&&(console.warn(`attempting to reconnect...${this.reconnects}/3`),this.connect())}_refreshSubscriptions(){if(this.registry)for(const{args:{eventName:e,filters:t}}of Object.values(this.registry))this._subscribe(e,t)}_listen(){this.socket.addEventListener("message",e=>{let t;try{t=JSON.parse(e.data)}catch(e){return void console.error("error parsing json request -",e)}switch(this.responseReceived=!0,(e=>e.params?On:gn.string(e.result)?_n:gn.bool(e.result)?wn:void 0)(t)){case _n:this._subHandler(t);break;case On:this._dataHandler(t);break;case wn:this._unsubHandler(t)}})}_subHandler(e){const t=e&&e.id?e.id:"";this.registrySubIds[e.result]=t,this.registry[t].subId=e.result,this.registry[t].isSubscribed=!0}_dataHandler(e){this.dataReceived=!0;const t=e&&e.params&&e.params.result?e.params.result:{},n=e&&e.params&&e.params.subscription?e.params.subscription:"",r=this.registrySubIds[n];this.registry[r].isSubscribed&&(this.registry[r]&&this.registry[r].callback&&this.registry[r].callback(t),gn.notUndefined(this.latestState[r])&&(this.latestState[r]=t))}_unsubHandler(e){const t=e&&e.id?e.id:"",{eventName:n}=this.registry[t].args;e.result?(this.registry[t].unsubCallback(`successfully unsubscribed from - ${n}`),delete this.registry[t]):this.registry[t].unsubCallback(`Error: Not unsubscribed from - ${n}`)}_subscribe(e,t){const n=gn.notUndefined(t)?[t]:[],r=En({eventName:e,filters:t}),s=mn({id:r,params:[e,...n]});this.socket.send(s)}_unsubscribe(e,t,n){const r=mn({id:n,method:"unsubscribe",params:[this.registry[n].subId]});this.socket.readyState===this.socket.OPEN&&this.socket.send(r)}};const{API_KEY_HEADER:Nn,BLOCKCHAIN_ID_HEADER:Sn,DEFAULT_BASE_URL:An,DEFAULT_RPC_URL:Rn,ERROR_RPC_NO_METHOD:yn}=he,{is:vn,throwIf:kn,formatJsonRpc:In}=Se;class Cn{constructor(e,t={}){kn(vn.undefined(e)||vn.emptyString(e),"No api key supplied"),this.apiKey=e,this.blockchainId=null,this.headers={},this.headers[Nn]=this.apiKey,t.blockchainId&&(this.blockchainId=t.blockchainId,this.headers[Sn]=t.blockchainId),this.wsConfig={...t,websocketUrl:t.websocketUrl?t.websocketUrl:null},this.baseUrl=t.baseUrl?t.baseUrl:An,this.address=new He(this),this.token=new Ge(this),this.contract=new Ye(this),this.transaction=new it(this),this.block=new bt(this),this.blockchain=new Ot(this),this.signature=new vt(this),this.market=new xt(this)}rawQuery(e){return de.get(this.baseUrl+e,{headers:this.headers}).then(e=>e.data)}rpc(e,t=[]){return kn(!e,yn),de.post(`${Rn}?${Nn}=${this.apiKey}&${Sn}=${this.blockchainId}`,In({method:e,params:t}),{headers:this.headers}).then(e=>e.data,e=>e.response.data)}}var Dn=class extends Cn{constructor(e,t={}){super(e,t),this.eth=new Ft(Cn,e,t),this.btc=new qt(Cn,e,t),this.bch=new Jt(Cn,e,t),this.bsv=new Qt(Cn,e,t),this.ltc=new rn(Cn,e,t),this.xlm=new cn(Cn,e,t),this.zec=new ln(Cn,e,t),this.websocket=null}connect(e){return this.websocket=this.websocket?this.websocket:new Tn(this.apiKey,this.wsConfig),this.websocket.connect(e)}disconnect(e){this.websocket?this.websocket.disconnect(e):console.error("socket is not yet connected")}on({eventName:e,filters:t},n){n||console.warn("no callback provided"),e?this.websocket.on({eventName:e,filters:t},n):console.error("no event specified")}once({eventName:e,filters:t},n){this.websocket.once({eventName:e,filters:t},n)}off({eventName:e,filters:t},n){n||console.warn("no callback provided"),e?this.websocket.off({eventName:e,filters:t},n):console.error("no event specified")}};return"undefined"!=typeof window&&void 0===window.Web3Data&&(window.Web3Data=Dn),Dn})); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).web3data=e()}(this,(function(){"use strict";var t=function(t,e){return function(){for(var r=new Array(arguments.length),n=0;n1)for(var r=1;r=0)return;u[o]="set-cookie"===o?(u[o]?u[o]:[]).concat([s]):u[o]?u[o]+", "+s:s}})),u):u):null,h={data:t.responseType&&"text"!==t.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:f,config:t,request:i};!function(t,e,r){var n=r.config.validateStatus;!n||n(r.status)?t(r):e(j("Request failed with status code "+r.status,r.config,null,r.request,r))}(e,r,h),i=null}},i.onabort=function(){i&&(r(j("Request aborted",t,"ECONNABORTED",i)),i=null)},i.onerror=function(){r(j("Network Error",t,null,i)),i=null},i.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(j(e,t,"ECONNABORTED",i)),i=null},a.isStandardBrowserEnv()){var d=Y,p=(t.withCredentials||K(l))&&t.xsrfCookieName?d.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}if("setRequestHeader"in i&&a.forEach(o,(function(t,e){void 0===n&&"content-type"===e.toLowerCase()?delete o[e]:i.setRequestHeader(e,t)})),a.isUndefined(t.withCredentials)||(i.withCredentials=!!t.withCredentials),t.responseType)try{i.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&i.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&i.upload&&i.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){i&&(i.abort(),r(t),i=null)})),void 0===n&&(n=null),i.send(n)}))},G={"Content-Type":"application/x-www-form-urlencoded"};function q(t,e){!a.isUndefined(t)&&a.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var $,W={adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==H&&"[object process]"===Object.prototype.toString.call(H))&&($=z),$),transformRequest:[function(t,e){return x(e,"Accept"),x(e,"Content-Type"),a.isFormData(t)||a.isArrayBuffer(t)||a.isBuffer(t)||a.isStream(t)||a.isFile(t)||a.isBlob(t)?t:a.isArrayBufferView(t)?t.buffer:a.isURLSearchParams(t)?(q(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):a.isObject(t)?(q(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};W.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],(function(t){W.headers[t]={}})),a.forEach(["post","put","patch"],(function(t){W.headers[t]=a.merge(G)}));var J=W;function V(t){t.cancelToken&&t.cancelToken.throwIfRequested()}var X=function(t){return V(t),t.headers=t.headers||{},t.data=l(t.data,t.headers,t.transformRequest),t.headers=a.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),a.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||J.adapter)(t).then((function(e){return V(t),e.data=l(e.data,e.headers,t.transformResponse),e}),(function(e){return d(e)||(V(t),e&&e.response&&(e.response.data=l(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))},Z=function(t,e){e=e||{};var r={},n=["url","method","params","data"],o=["headers","auth","proxy"],i=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];a.forEach(n,(function(t){void 0!==e[t]&&(r[t]=e[t])})),a.forEach(o,(function(n){a.isObject(e[n])?r[n]=a.deepMerge(t[n],e[n]):void 0!==e[n]?r[n]=e[n]:a.isObject(t[n])?r[n]=a.deepMerge(t[n]):void 0!==t[n]&&(r[n]=t[n])})),a.forEach(i,(function(n){void 0!==e[n]?r[n]=e[n]:void 0!==t[n]&&(r[n]=t[n])}));var s=n.concat(o).concat(i),c=Object.keys(e).filter((function(t){return-1===s.indexOf(t)}));return a.forEach(c,(function(n){void 0!==e[n]?r[n]=e[n]:void 0!==t[n]&&(r[n]=t[n])})),r};function Q(t){this.defaults=t,this.interceptors={request:new h,response:new h}}Q.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=Z(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=[X,void 0],r=Promise.resolve(t);for(this.interceptors.request.forEach((function(t){e.unshift(t.fulfilled,t.rejected)})),this.interceptors.response.forEach((function(t){e.push(t.fulfilled,t.rejected)}));e.length;)r=r.then(e.shift(),e.shift());return r},Q.prototype.getUri=function(t){return t=Z(this.defaults,t),u(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],(function(t){Q.prototype[t]=function(e,r){return this.request(a.merge(r||{},{method:t,url:e}))}})),a.forEach(["post","put","patch"],(function(t){Q.prototype[t]=function(e,r,n){return this.request(a.merge(n||{},{method:t,url:e,data:r}))}}));var tt=Q;function et(t){this.message=t}et.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},et.prototype.__CANCEL__=!0;var rt=et;function nt(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var r=this;t((function(t){r.reason||(r.reason=new rt(t),e(r.reason))}))}nt.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},nt.source=function(){var t;return{token:new nt((function(e){t=e})),cancel:t}};var ot=nt;function it(e){var r=new tt(e),n=t(tt.prototype.request,r);return a.extend(n,tt.prototype,r),a.extend(n,r),n}var st=it(J);st.Axios=tt,st.create=function(t){return it(Z(st.defaults,t))},st.Cancel=rt,st.CancelToken=ot,st.isCancel=d,st.all=function(t){return Promise.all(t)},st.spread=function(t){return function(e){return t.apply(null,e)}};var at=st,ct=st;at.default=ct;var ut=at,ft="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ht(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function lt(t,e){return t(e={exports:{}},e.exports),e.exports}var dt=lt((function(t){t.exports.DEFAULT_WEBSOCKET_URL="wss://ws.web3api.io",t.exports.DEFAULT_BASE_URL="https://web3api.io/api/v2",t.exports.DEFAULT_RPC_URL="https://rpc.web3api.io",t.exports.API_KEY_HEADER="x-api-key",t.exports.BLOCKCHAIN_ID_HEADER="x-amberdata-blockchain-id",t.exports.BLOCKCHAIN_ID_ETHEREUM_MAINNET="1c9c969065fcd1cf",t.exports.BLOCKCHAIN_ID_ETHEREUM_RINKEBY="1b3f7a72b3e99c13",t.exports.BLOCKCHAIN_ID_BITCOIN="408fa195a34b533de9ad9889f076045e",t.exports.BLOCKCHAIN_ID_BITCOIN_CASH="43b45e71cc0615b491cb699e7071fc06",t.exports.BLOCKCHAIN_ID_BITCOIN_SV="a818635d36dbe125e26167c4438e2217",t.exports.BLOCKCHAIN_ID_LITECOIN="f94be61fd9f4fa684f992ddfd4e92272",t.exports.BLOCKCHAIN_ID_RIPPLE="2b8a5d8975e8c2a2ed92450450979a3c",t.exports.BLOCKCHAIN_ID_ZCASH="b7d4f994f33c709be4ce6cbae31d7b8e",t.exports.BLOCKCHAIN_ID_STELLAR="822e2ebe02f74df8",t.exports.ADDRESSES_ENDPOINT="/addresses",t.exports.TOKENS_ENDPOINT="/tokens",t.exports.TRANSACTIONS_ENDPOINT="/transactions",t.exports.BLOCKS_ENDPOINT="/blocks",t.exports.BLOCKCHAINS_ENDPOINT="/blockchains",t.exports.CONTRACTS_ENDPOINT="/contracts",t.exports.SIGNATURES_ENDPOINT="/signatures",t.exports.MARKET_ENDPOINT="/market",t.exports.MARKET_FEATURES=["pairs","exchanges","ohlcv","prices","tickers","trades"],t.exports.ERROR_MESSAGE_TOKEN_NO_ADDRESS="No token address supplied",t.exports.ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS="No token holder address supplied",t.exports.ERROR_MESSAGE_TRANSACTION_NO_HASH="No transaction hash supplied",t.exports.ERROR_MESSAGE_ADDRESS_NO_ADDRESS="No address supplied",t.exports.ERROR_MESSAGE_CONTRACT_NO_ADDRESS="No contract address supplied",t.exports.ERROR_MESSAGE_BLOCK_NO_ID="No block number or hash supplied",t.exports.ERROR_MESSAGE_MARKET_NO_PAIR="No market pair supplied",t.exports.ERROR_MESSAGE_MARKET_NO_FEATURE=`Missing or unknown. Features: '${t.exports.MARKET_FEATURES.join("', '")}'`,t.exports.ERROR_MESSAGE_SIGNATURE_NO_HASH="No signature hash supplied",t.exports.ERROR_RPC_NO_METHOD="No RPC method provided",t.exports.ETH_METHODS={getBlockNumber:"block",getBlock:"block",getBlockTransactionCount:"block",getUncle:"block",getCode:"contract",getGasPrice:"transaction",getTransactionFromBlock:"block",getTransactions:"block",getTransaction:"transaction",getPendingTransactions:"transaction",getEtherPrice:"market",getBalance:"address",getMetrics:"block"},t.exports.BTC_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getPendingTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getPendingTransactions","getMetrics"]},t.exports.LTC_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getPendingTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getPendingTransactions","getMetrics"]},t.exports.XLM_METHODS={address:["getAllAddresses","getInformation","getMetadata","getTransactions","getBalance","getMetrics"],block:["getBlocks","getBlock","getBlockNumber","getTransactions","getTransactionFromBlock","getMetrics"],blockchain:["getMetrics"],transaction:["getTransactions","getTransaction","getMetrics"]},t.exports.HTTP_CODE_NOT_FOUND=404})),pt=(dt.DEFAULT_WEBSOCKET_URL,dt.DEFAULT_BASE_URL,dt.DEFAULT_RPC_URL,dt.API_KEY_HEADER,dt.BLOCKCHAIN_ID_HEADER,dt.BLOCKCHAIN_ID_ETHEREUM_MAINNET,dt.BLOCKCHAIN_ID_ETHEREUM_RINKEBY,dt.BLOCKCHAIN_ID_BITCOIN,dt.BLOCKCHAIN_ID_BITCOIN_CASH,dt.BLOCKCHAIN_ID_BITCOIN_SV,dt.BLOCKCHAIN_ID_LITECOIN,dt.BLOCKCHAIN_ID_RIPPLE,dt.BLOCKCHAIN_ID_ZCASH,dt.BLOCKCHAIN_ID_STELLAR,dt.ADDRESSES_ENDPOINT,dt.TOKENS_ENDPOINT,dt.TRANSACTIONS_ENDPOINT,dt.BLOCKS_ENDPOINT,dt.BLOCKCHAINS_ENDPOINT,dt.CONTRACTS_ENDPOINT,dt.SIGNATURES_ENDPOINT,dt.MARKET_ENDPOINT,dt.MARKET_FEATURES,dt.ERROR_MESSAGE_TOKEN_NO_ADDRESS,dt.ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS,dt.ERROR_MESSAGE_TRANSACTION_NO_HASH,dt.ERROR_MESSAGE_ADDRESS_NO_ADDRESS,dt.ERROR_MESSAGE_CONTRACT_NO_ADDRESS,dt.ERROR_MESSAGE_BLOCK_NO_ID,dt.ERROR_MESSAGE_MARKET_NO_PAIR,dt.ERROR_MESSAGE_MARKET_NO_FEATURE,dt.ERROR_MESSAGE_SIGNATURE_NO_HASH,dt.ERROR_RPC_NO_METHOD,dt.ETH_METHODS,dt.BTC_METHODS,dt.LTC_METHODS,dt.XLM_METHODS,dt.HTTP_CODE_NOT_FOUND,[]),gt=[],bt="undefined"!=typeof Uint8Array?Uint8Array:Array,yt=!1;function Et(){yt=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,r=t.length;e>18&63]+pt[o>>12&63]+pt[o>>6&63]+pt[63&o]);return i.join("")}function wt(t){var e;yt||Et();for(var r=t.length,n=r%3,o="",i=[],s=0,a=r-n;sa?a:s+16383));return 1===n?(e=t[r-1],o+=pt[e>>2],o+=pt[e<<4&63],o+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],o+=pt[e>>10],o+=pt[e>>4&63],o+=pt[e<<2&63],o+="="),i.push(o),i.join("")}function _t(t,e,r,n,o){var i,s,a=8*o-n-1,c=(1<>1,f=-7,h=r?o-1:0,l=r?-1:1,d=t[e+h];for(h+=l,i=d&(1<<-f)-1,d>>=-f,f+=a;f>0;i=256*i+t[e+h],h+=l,f-=8);for(s=i&(1<<-f)-1,i>>=-f,f+=n;f>0;s=256*s+t[e+h],h+=l,f-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),i-=u}return(d?-1:1)*s*Math.pow(2,i-n)}function vt(t,e,r,n,o,i){var s,a,c,u=8*i-o-1,f=(1<>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=f):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),(e+=s+h>=1?l/c:l*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(e*c-1)*Math.pow(2,o),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;t[r+d]=255&a,d+=p,a/=256,o-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,u-=8);t[r+d-p]|=128*g}var Ot={}.toString,At=Array.isArray||function(t){return"[object Array]"==Ot.call(t)};function Rt(){return St.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Tt(t,e){if(Rt()=Rt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Rt().toString(16)+" bytes");return 0|t}function Pt(t){return!(null==t||!t._isBuffer)}function Bt(t,e){if(Pt(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 r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return se(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ae(t).length;default:if(n)return se(t).length;e=(""+e).toLowerCase(),n=!0}}function Mt(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return Jt(this,e,r);case"utf8":case"utf-8":return qt(this,e,r);case"ascii":return $t(this,e,r);case"latin1":case"binary":return Wt(this,e,r);case"base64":return Gt(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Vt(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function Ut(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Lt(t,e,r,n,o){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(o)return-1;r=t.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof e&&(e=St.from(e,n)),Pt(e))return 0===e.length?-1:Ht(t,e,r,n,o);if("number"==typeof e)return e&=255,St.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Ht(t,[e],r,n,o);throw new TypeError("val must be string, number or Buffer")}function Ht(t,e,r,n,o){var i,s=1,a=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(o){var f=-1;for(i=r;ia&&(r=a-c),i=r;i>=0;i--){for(var h=!0,l=0;lo&&(n=o):n=o;var i=e.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var s=0;s>8,o=r%256,i.push(o),i.push(n);return i}(e,t.length-r),t,r,n)}function Gt(t,e,r){return 0===e&&r===t.length?wt(t):wt(t.slice(e,r))}function qt(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:u>223?3:u>191?2:1;if(o+h<=r)switch(h){case 1:u<128&&(f=u);break;case 2:128==(192&(i=t[o+1]))&&(c=(31&u)<<6|63&i)>127&&(f=c);break;case 3:i=t[o+1],s=t[o+2],128==(192&i)&&128==(192&s)&&(c=(15&u)<<12|(63&i)<<6|63&s)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:i=t[o+1],s=t[o+2],a=t[o+3],128==(192&i)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(f=c)}null===f?(f=65533,h=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),o+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),""},St.prototype.compare=function(t,e,r,n,o){if(!Pt(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),e<0||r>t.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&e>=r)return 0;if(n>=o)return-1;if(e>=r)return 1;if(this===t)return 0;for(var i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(i,s),c=this.slice(n,o),u=t.slice(e,r),f=0;fo)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return xt(this,t,e,r);case"utf8":case"utf-8":return jt(this,t,e,r);case"ascii":return Ft(this,t,e,r);case"latin1":case"binary":return Kt(this,t,e,r);case"base64":return Yt(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return zt(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},St.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $t(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;on)&&(r=n);for(var o="",i=e;ir)throw new RangeError("Trying to access beyond buffer length")}function Zt(t,e,r,n,o,i){if(!Pt(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function Qt(t,e,r,n){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-r,2);o>>8*(n?o:1-o)}function te(t,e,r,n){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-r,4);o>>8*(n?o:3-o)&255}function ee(t,e,r,n,o,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function re(t,e,r,n,o){return o||ee(t,0,r,4),vt(t,e,r,n,23,4),r+4}function ne(t,e,r,n,o){return o||ee(t,0,r,8),vt(t,e,r,n,52,8),r+8}St.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(o*=256);)n+=this[t+--e]*o;return n},St.prototype.readUInt8=function(t,e){return e||Xt(t,1,this.length),this[t]},St.prototype.readUInt16LE=function(t,e){return e||Xt(t,2,this.length),this[t]|this[t+1]<<8},St.prototype.readUInt16BE=function(t,e){return e||Xt(t,2,this.length),this[t]<<8|this[t+1]},St.prototype.readUInt32LE=function(t,e){return e||Xt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},St.prototype.readUInt32BE=function(t,e){return e||Xt(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},St.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||Xt(t,e,this.length);for(var n=this[t],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},St.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||Xt(t,e,this.length);for(var n=e,o=1,i=this[t+--n];n>0&&(o*=256);)i+=this[t+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},St.prototype.readInt8=function(t,e){return e||Xt(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},St.prototype.readInt16LE=function(t,e){e||Xt(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},St.prototype.readInt16BE=function(t,e){e||Xt(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},St.prototype.readInt32LE=function(t,e){return e||Xt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},St.prototype.readInt32BE=function(t,e){return e||Xt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},St.prototype.readFloatLE=function(t,e){return e||Xt(t,4,this.length),_t(this,t,!0,23,4)},St.prototype.readFloatBE=function(t,e){return e||Xt(t,4,this.length),_t(this,t,!1,23,4)},St.prototype.readDoubleLE=function(t,e){return e||Xt(t,8,this.length),_t(this,t,!0,52,8)},St.prototype.readDoubleBE=function(t,e){return e||Xt(t,8,this.length),_t(this,t,!1,52,8)},St.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||Zt(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[e]=255&t;++i=0&&(i*=256);)this[e+o]=t/i&255;return e+r},St.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,1,255,0),St.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},St.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,2,65535,0),St.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Qt(this,t,e,!0),e+2},St.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,2,65535,0),St.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Qt(this,t,e,!1),e+2},St.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,4,4294967295,0),St.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):te(this,t,e,!0),e+4},St.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,4,4294967295,0),St.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):te(this,t,e,!1),e+4},St.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);Zt(this,t,e,r,o-1,-o)}var i=0,s=1,a=0;for(this[e]=255&t;++i>0)-a&255;return e+r},St.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);Zt(this,t,e,r,o-1,-o)}var i=r-1,s=1,a=0;for(this[e+i]=255&t;--i>=0&&(s*=256);)t<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(t/s>>0)-a&255;return e+r},St.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,1,127,-128),St.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},St.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,2,32767,-32768),St.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Qt(this,t,e,!0),e+2},St.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,2,32767,-32768),St.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Qt(this,t,e,!1),e+2},St.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,4,2147483647,-2147483648),St.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):te(this,t,e,!0),e+4},St.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||Zt(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),St.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):te(this,t,e,!1),e+4},St.prototype.writeFloatLE=function(t,e,r){return re(this,t,e,!0,r)},St.prototype.writeFloatBE=function(t,e,r){return re(this,t,e,!1,r)},St.prototype.writeDoubleLE=function(t,e,r){return ne(this,t,e,!0,r)},St.prototype.writeDoubleBE=function(t,e,r){return ne(this,t,e,!1,r)},St.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=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-e=0;--o)t[o+e]=this[o+r];else if(i<1e3||!St.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function ae(t){return function(t){var e,r,n,o,i,s;yt||Et();var a=t.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===t[a-2]?2:"="===t[a-1]?1:0,s=new bt(3*a/4-i),n=i>0?a-4:a;var c=0;for(e=0,r=0;e>16&255,s[c++]=o>>8&255,s[c++]=255&o;return 2===i?(o=gt[t.charCodeAt(e)]<<2|gt[t.charCodeAt(e+1)]>>4,s[c++]=255&o):1===i&&(o=gt[t.charCodeAt(e)]<<10|gt[t.charCodeAt(e+1)]<<4|gt[t.charCodeAt(e+2)]>>2,s[c++]=o>>8&255,s[c++]=255&o),s}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(oe,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function ce(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function ue(t){return null!=t&&(!!t._isBuffer||fe(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&fe(t.slice(0,0))}(t))}function fe(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var he="function"==typeof Object.create?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t},le=/%[sdj%]/g;function de(t){if(!Te(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),s=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Oe(e)?r.showHidden=e:e&&Le(r,e),Se(r.showHidden)&&(r.showHidden=!1),Se(r.depth)&&(r.depth=2),Se(r.colors)&&(r.colors=!1),Se(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ye),me(r,t,r.depth)}function ye(t,e){var r=be.styles[e];return r?"["+be.colors[r][0]+"m"+t+"["+be.colors[r][1]+"m":t}function Ee(t,e){return t}function me(t,e,r){if(t.customInspect&&e&&ke(e.inspect)&&e.inspect!==be&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return Te(n)||(n=me(t,n,r)),n}var o=function(t,e){if(Se(e))return t.stylize("undefined","undefined");if(Te(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(Re(e))return t.stylize(""+e,"number");if(Oe(e))return t.stylize(""+e,"boolean");if(Ae(e))return t.stylize("null","null")}(t,e);if(o)return o;var i=Object.keys(e),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(i);if(t.showHidden&&(i=Object.getOwnPropertyNames(e)),Ce(e)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return we(e);if(0===i.length){if(ke(e)){var a=e.name?": "+e.name:"";return t.stylize("[Function"+a+"]","special")}if(Ne(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(De(e))return t.stylize(Date.prototype.toString.call(e),"date");if(Ce(e))return we(e)}var c,u="",f=!1,h=["{","}"];(ve(e)&&(f=!0,h=["[","]"]),ke(e))&&(u=" [Function"+(e.name?": "+e.name:"")+"]");return Ne(e)&&(u=" "+RegExp.prototype.toString.call(e)),De(e)&&(u=" "+Date.prototype.toUTCString.call(e)),Ce(e)&&(u=" "+we(e)),0!==i.length||f&&0!=e.length?r<0?Ne(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),c=f?function(t,e,r,n,o){for(var i=[],s=0,a=e.length;s60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(c,u,h)):h[0]+u+h[1]}function we(t){return"["+Error.prototype.toString.call(t)+"]"}function _e(t,e,r,n,o,i){var s,a,c;if((c=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?a=c.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):c.set&&(a=t.stylize("[Setter]","special")),He(n,o)||(s="["+o+"]"),a||(t.seen.indexOf(c.value)<0?(a=Ae(r)?me(t,c.value,null):me(t,c.value,r-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),Se(s)){if(i&&o.match(/^\d+$/))return a;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function ve(t){return Array.isArray(t)}function Oe(t){return"boolean"==typeof t}function Ae(t){return null===t}function Re(t){return"number"==typeof t}function Te(t){return"string"==typeof t}function Se(t){return void 0===t}function Ne(t){return Ie(t)&&"[object RegExp]"===Pe(t)}function Ie(t){return"object"==typeof t&&null!==t}function De(t){return Ie(t)&&"[object Date]"===Pe(t)}function Ce(t){return Ie(t)&&("[object Error]"===Pe(t)||t instanceof Error)}function ke(t){return"function"==typeof t}function Pe(t){return Object.prototype.toString.call(t)}function Be(t){return t<10?"0"+t.toString(10):t.toString(10)}be.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},be.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Me=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ue(){var t=new Date,e=[Be(t.getHours()),Be(t.getMinutes()),Be(t.getSeconds())].join(":");return[t.getDate(),Me[t.getMonth()],e].join(" ")}function Le(t,e){if(!e||!Ie(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}function He(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var xe={inherits:he,_extend:Le,log:function(){console.log("%s - %s",Ue(),de.apply(null,arguments))},isBuffer:function(t){return ue(t)},isPrimitive:function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},isFunction:ke,isError:Ce,isDate:De,isObject:Ie,isRegExp:Ne,isUndefined:Se,isSymbol:function(t){return"symbol"==typeof t},isString:Te,isNumber:Re,isNullOrUndefined:function(t){return null==t},isNull:Ae,isBoolean:Oe,isArray:ve,inspect:be,deprecate:function t(e,r){if(Se(p.process))return function(){return t(e,r).apply(this,arguments)};if(!0===H.noDeprecation)return e;var n=!1;return function(){if(!n){if(H.throwDeprecation)throw new Error(r);H.traceDeprecation?console.trace(r):console.error(r),n=!0}return e.apply(this,arguments)}},format:de,debuglog:function(t){if(Se(pe)&&(pe=H.env.NODE_DEBUG||""),t=t.toUpperCase(),!ge[t])if(new RegExp("\\b"+t+"\\b","i").test(pe)){ge[t]=function(){var e=de.apply(null,arguments);console.error("%s %d: %s",t,0,e)}}else ge[t]=function(){};return ge[t]}};let je;try{je=xe.deprecate}catch(t){je=function(t,e){var r=!1;return function(){return r||(console.warn(e),r=!0),t.apply(this,arguments)}}}var Fe=je,Ke=lt((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;for(var r=[],n=0;n<256;++n)r[n]=(n+256).toString(16).substr(1);var o=function(t,e){var n=e||0,o=r;return[o[t[n++]],o[t[n++]],o[t[n++]],o[t[n++]],"-",o[t[n++]],o[t[n++]],"-",o[t[n++]],o[t[n++]],"-",o[t[n++]],o[t[n++]],"-",o[t[n++]],o[t[n++]],o[t[n++]],o[t[n++]],o[t[n++]],o[t[n++]]].join("")};e.default=o,t.exports=e.default}));ht(Ke);var Ye=lt((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,r){var s=function(t,o,i,s){var a=i&&s||0;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));for(var e=new Array(t.length),r=0;r>>32-e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=function(t){var e=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){var i=unescape(encodeURIComponent(t));t=new Array(i.length);for(var s=0;s>>0;y=b,b=g,g=n(p,30)>>>0,p=d,d=m}o[0]=o[0]+d>>>0,o[1]=o[1]+p>>>0,o[2]=o[2]+g>>>0,o[3]=o[3]+b>>>0,o[4]=o[4]+y>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]};e.default=o,t.exports=e.default}));ht(ze);var Ge=lt((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=o(Ye),n=o(ze);function o(t){return t&&t.__esModule?t:{default:t}}var i=(0,r.default)("v5",80,n.default);e.default=i,t.exports=e.default}));ht(Ge);var qe=Fe(Ge,"Deep requiring like `const uuidv5 = require('uuid/v5');` is deprecated as of uuid@7.x. Please require the top-level module when using the Node.js CommonJS module or use ECMAScript Modules when bundling for the browser. See https://github.com/uuidjs/uuid#deep-requires-now-deprecated for more information.");const{ETH_METHODS:$e}=dt,We=t=>{let e="";for(const r in t)({}).hasOwnProperty.call(t,r)&&(e+=`${r}=${t[r]}&`);return e},Je=(t,e)=>{if(t)throw new Error(e)},Ve=t=>Je(!0,t),Xe=()=>{};Xe.string=t=>"string"==typeof t,Xe.bool=t=>"boolean"==typeof t,Xe.emptyString=t=>Xe.string(t)&&0===t.length,Xe.emptyObject=t=>0===Object.keys(t).length,Xe.inObject=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Xe.undefined=t=>void 0===t,Xe.null=t=>null===t,Xe.notHash=t=>Xe.undefined(t)||Xe.emptyString(t),Xe.notUndefined=t=>!Xe.undefined(t),Xe.nonEmptyObject=t=>!Xe.emptyObject(t),Xe.nonEmptyString=t=>!Xe.emptyString(t),Xe.notInObject=(t,e)=>!Xe.inObject(t,e);const Ze=t=>Object.getOwnPropertyNames(t).filter(e=>"function"==typeof t[e]&&"constructor"!==e);var Qe={buildFilterUrl:We,is:Xe,throwIf:Je,get:(t,{endpoint:e="",subendpoint:r="",hash:n="",pathParam:o="",filterOptions:i={}})=>{const s=Xe.nonEmptyObject(i)?"?"+We(i):"";return n=n?"/"+n:"",o=o?"/"+o:"",r=r?"/"+r:"",t.rawQuery(`${e}${n||o}${r}${s}`)},rejectPromiseIf:(t,e)=>{if(t)return Promise.reject(new Error(e))},uuid:t=>qe(JSON.stringify(t),"ccfeca02-f0e9-4433-a740-b830cceb3d2d"),ethFactory:function(t){const e={};for(const r in $e)({}).hasOwnProperty.call($e,r)&&(e[r]=t[$e[r]][r].bind(t[$e[r]]));return e},methodFactory:(t,e)=>(Object.keys(e).forEach(r=>{Ze(Object.getPrototypeOf(t.web3data[r])).forEach(n=>{e[r].includes(n)&&(t[r]=t[r]?t[r]:{},t[r][n]=t.web3data[r][n].bind(t))})}),t),throwNow:Ve,onFulfilled:function(t){return Je(t.error,t.message),this&&this.formatter?this.formatter(t.payload):t.payload},onError:({response:{data:t}})=>Ve(t.message||t.description),formatJsonRpc:t=>t?(t.params&&(t.params=Array.isArray(t.params)?t.params:[t.params]),JSON.stringify({jsonrpc:t.version||"2.0",method:t.method||"subscribe",id:t.id||0,params:t.params||[]})):"",getMethods:Ze,recordsFormatter:t=>((t,e)=>t&&t[e]?t[e]:t)(t,"records")};const{ERROR_MESSAGE_ADDRESS_NO_ADDRESS:tr,ADDRESSES_ENDPOINT:er}=dt,{is:rr,get:nr,throwIf:or,onFulfilled:ir,onError:sr,recordsFormatter:ar}=Qe;var cr=class{constructor(t){this.web3data=t}getAllAddresses(t={}){return this.getAll(t)}getAll(t={}){return nr(this.web3data,{endpoint:er,filterOptions:t}).then(ir.bind({formatter:ar}),sr)}getInformation(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"information",filterOptions:e}).then(ir,sr)}getMetadata(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"metadata",filterOptions:e}).then(ir,sr)}getAdoption(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"adoption",filterOptions:e}).then(ir,sr)}getInternalMessages(t,e={}){return this.web3data.address.getFunctions(t,e)}getFunctions(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"functions",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getLogs(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"logs",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getTransactions(t,e={}){return or(!t,tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"transactions",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getPendingTransactions(t,e={}){return or(!t,tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"pending-transactions",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getBalance(t,e={}){or(rr.notHash(t),tr);let r="information";return Array.isArray(t)?(r="balances",e.addresses=t):e.includeTokens?r="balances":(e.startDate||e.endDate)&&(r="account-balances/historical"),nr(this.web3data,{...e.addresses?{}:{hash:t},endpoint:er,subendpoint:r,filterOptions:e}).then(ir,sr)}getTokens(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"tokens",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getTokenTransfers(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"token-transfers",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getTokenBalances(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"token-balances",filterOptions:e}).then(ir.bind({formatter:ar}),sr)}getUsage(t,e={}){return or(rr.notHash(t),tr),nr(this.web3data,{hash:t,endpoint:er,subendpoint:"usage",filterOptions:e}).then(ir,sr)}getMetrics(){return nr(this.web3data,{endpoint:er,subendpoint:"metrics/latest"}).then(ir,sr)}};const{is:ur,get:fr,onFulfilled:hr,onError:lr,throwIf:dr,recordsFormatter:pr}=Qe,{ERROR_MESSAGE_TOKEN_NO_ADDRESS:gr,ERROR_MESSAGE_TOKEN_NO_HOLDER_ADDRESS:br,TOKENS_ENDPOINT:yr}=dt;var Er=class{constructor(t){this.web3data=t}getRankings(t={}){return fr(this.web3data,{endpoint:yr,subendpoint:"rankings",filterOptions:t}).then(hr,lr)}getVolume(t,e={}){return dr(ur.notHash(t),gr),fr(this.web3data,{hash:t,endpoint:yr,subendpoint:"volume",filterOptions:e}).then(hr,lr)}getVelocity(t,e={}){return dr(ur.notHash(t),gr),fr(this.web3data,{hash:t,endpoint:yr,subendpoint:"velocity",filterOptions:e}).then(hr,lr)}getHolders(t,e={}){dr(ur.notHash(t),gr);let r="holders/latest",n={formatter:pr};return e.holderAddresses&&(r="holders/historical",n={}),fr(this.web3data,{hash:t,endpoint:yr,subendpoint:r,filterOptions:e}).then(hr.bind(n),lr)}getHoldersHistorical(t,e){return dr(ur.notInObject(e,"holderAddresses"),br),this.getHolders(t,e)}getSupplies(t,e={}){dr(ur.notHash(t),gr);const r=e.startDate||e.endDate?"supplies/historical":"supplies/latest";return fr(this.web3data,{hash:t,endpoint:yr,subendpoint:r,filterOptions:e}).then(hr,lr)}getTransfers(t,e={}){return dr(ur.notHash(t),gr),fr(this.web3data,{hash:t,endpoint:yr,subendpoint:"transfers",filterOptions:e}).then(hr.bind({formatter:pr}),lr)}};const{ERROR_MESSAGE_CONTRACT_NO_ADDRESS:mr,CONTRACTS_ENDPOINT:wr}=dt,{is:_r,get:vr,throwIf:Or,onFulfilled:Ar,onError:Rr}=Qe;var Tr=class{constructor(t){this.web3data=t}getDetails(t){return Or(_r.notHash(t),mr),vr(this.web3data,{pathParam:t,endpoint:wr}).then(Ar,Rr)}getFunctions(t){return _r.notHash(t)?Promise.reject(new Error(mr)):vr(this.web3data,{pathParam:t,endpoint:wr,subendpoint:"functions"}).then(Ar,Rr)}getAbi(t){return Or(_r.notHash(t),mr),this.getDetails(t).then(({abi:t})=>t)}getSourceCode(t){return Or(_r.notHash(t),mr),vr(this.web3data,{pathParam:t,endpoint:wr,subendpoint:"source-code"}).then(Ar,Rr)}getCode(t){return this.getDetails(t).then(t=>t.bytecode||"0x")}};const{TRANSACTIONS_ENDPOINT:Sr,ERROR_MESSAGE_TRANSACTION_NO_HASH:Nr}=dt,{is:Ir,get:Dr,onFulfilled:Cr,onError:kr,throwIf:Pr,recordsFormatter:Br}=Qe;var Mr=class{constructor(t){this.web3data=t}getTransactions(t={}){return Dr(this.web3data,{endpoint:Sr,filterOptions:t}).then(Cr.bind({formatter:Br}),kr)}getAll(t){return this.getTransactions(t)}getTransaction(t,e={}){return Pr(Ir.notHash(t),Nr),Dr(this.web3data,{pathParam:t,endpoint:Sr,filterOptions:e}).then(Cr,kr)}getPendingTransactions(){return this.getTransactions({status:"pending"}).then(t=>(Pr(Ir.undefined(t)||Ir.null(t),"Failed to retrieve pending transactions."),t),console.error)}getGasPrediction(){return Dr(this.web3data,{endpoint:Sr,subendpoint:"gas/predictions"}).then(Cr,kr)}getGasPercentiles(t={}){return Dr(this.web3data,{endpoint:Sr,subendpoint:"gas/percentiles",filterOptions:t}).then(Cr,kr)}getGasPrice(){return this.getGasPrediction().then(t=>(Pr(!t.average||!t.average.gasPrice,"Failed to retrieve gas price."),""+t.average.gasPrice))}getVolume(t={}){return Dr(this.web3data,{endpoint:Sr,subendpoint:"volume",filterOptions:t}).then(Cr,kr)}getMetrics(t){const e=t&&(t.startDate||t.endDate)?"historical":"latest";return Dr(this.web3data,{endpoint:Sr+"/metrics",subendpoint:e,filterOptions:t}).then(Cr.bind({formatter:Br}),kr)}};const{BLOCKS_ENDPOINT:Ur,ERROR_MESSAGE_BLOCK_NO_ID:Lr}=dt,{is:Hr,get:xr,throwIf:jr,onFulfilled:Fr,onError:Kr,recordsFormatter:Yr}=Qe;var zr=class{constructor(t){this.web3data=t}getBlocks(t){return xr(this.web3data,{endpoint:Ur,filterOptions:t}).then(Fr.bind({formatter:Yr}),Kr)}getBlock(t,e){return jr(Hr.undefined(t),Lr),xr(this.web3data,{pathParam:t,endpoint:Ur,filterOptions:e}).then(Fr,Kr)}getBlockNumber(){return this.web3data.block.getBlock("latest").then(t=>(jr(t|!t.number,"Failed to retrieve block number."),Number.parseInt(t.number,10)))}getBlockTransactionCount(t){return this.web3data.block.getBlock(t).then(t=>(jr(!t||!t.predictions&&!t.numTransactions,"Failed to retrieve block transaction count."),t.predictions?null:Number.parseInt(t.numTransactions,10)))}getTransactions(t,e){return jr(Hr.undefined(t),Lr),xr(this.web3data,{pathParam:t,endpoint:Ur,subendpoint:"transactions",filterOptions:e}).then(Fr.bind({formatter:Yr}),Kr)}getTransactionFromBlock(t,e){return jr(Hr.undefined(t),Lr),this.web3data.block.getTransactions(t).then(t=>(jr(!t,"Failed to retrieve transaction."),e-1?t[e]:null))}getUncle(t,e){return jr(Hr.undefined(t),Lr),jr(Hr.undefined(e),"Missing required param 'index'"),this.web3data.block.getBlock(t,{validationMethod:"full"}).then(t=>(jr(!t||!t.predictions&&!t.numTransactions&&!t.validation,"Failed to retrieve uncle."),!t.predictions&&t.validation.uncles&&e-1?t.validation.uncles[e]:null))}getTokenTransfers(t,e){return jr(Hr.undefined(t),Lr),xr(this.web3data,{pathParam:t,endpoint:Ur,subendpoint:"token-transfers",filterOptions:e}).then(Fr,Kr)}getLogs(t,e){return jr(Hr.undefined(t),Lr),xr(this.web3data,{pathParam:t,endpoint:Ur,subendpoint:"logs",filterOptions:e}).then(Fr.bind({formatter:Yr}),Kr)}getFunctions(t,e){return jr(Hr.undefined(t),Lr),xr(this.web3data,{pathParam:t,endpoint:Ur,subendpoint:"functions",filterOptions:e}).then(Fr.bind({formatter:Yr}),Kr)}getMetrics(t){const e=t&&(t.startDate||t.endDate)?"historical":"latest";return xr(this.web3data,{endpoint:Ur+"/metrics",subendpoint:e,filterOptions:t}).then(Fr.bind({formatter:Yr}),Kr)}};const{BLOCKCHAINS_ENDPOINT:Gr}=dt,{get:qr,onFulfilled:$r,onError:Wr}=Qe;var Jr=class{constructor(t){this.web3data=t}getMetrics(t){const e=t&&(t.startDate||t.endDate)?"historical":"latest";return qr(this.web3data,{endpoint:Gr+"/metrics",subendpoint:e,filterOptions:t}).then($r,Wr)}};const{get:Vr,is:Xr,throwIf:Zr,onError:Qr,onFulfilled:tn}=Qe,{SIGNATURES_ENDPOINT:en,ERROR_MESSAGE_SIGNATURE_NO_HASH:rn}=dt;var nn=class{constructor(t){this.web3data=t}getSignature(t){return Zr(Xr.notHash(t),rn),Vr(this.web3data,{hash:t,endpoint:en}).then(tn,Qr)}};const{is:on,get:sn,throwIf:an,onFulfilled:cn,onError:un}=Qe,{MARKET_FEATURES:fn,MARKET_ENDPOINT:hn,ERROR_MESSAGE_MARKET_NO_PAIR:ln,ERROR_MESSAGE_MARKET_NO_FEATURE:dn}=dt;var pn=class{constructor(t){this.web3data=t}async getEtherPrice(){return sn(this.web3data,{endpoint:hn+"/prices/eth/latest"}).then(t=>t.payload.eth_usd.price,un)}getRankings(t){return sn(this.web3data,{endpoint:hn,subendpoint:"rankings",filterOptions:t}).then(cn,un)}getFeatures(t=fn,e={}){return t=(t=Array.isArray(t)?t:[t]).map(t=>{switch(an(on.undefined(t)||!fn.includes(t),dn),t){case"prices":t+="/pairs";break;case"ohlcv":case"tickers":case"trades":t+="/information"}return sn(this.web3data,{endpoint:hn,subendpoint:t,filterOptions:e}).then(cn,un).then(e=>({[t.split("/")[0]]:e}))}),Promise.all([...t]).then(t=>t.reduce((t,e)=>({...t,...e})))}getOhlcv(t,e={}){an(on.undefined(t),ln);const r=e.startDate||e.endDate?"historical":"latest";return sn(this.web3data,{pathParam:t,endpoint:hn+"/ohlcv",subendpoint:r,filterOptions:e}).then(cn,un)}getOrders(t,e,r={}){return an(on.undefined(t),ln),(e=Array.isArray(e)?e:[e]).forEach(t=>an(on.undefined(t),"No exchange specified")),r.exchange=e,sn(this.web3data,{pathParam:t,endpoint:hn+"/orders",filterOptions:r}).then(cn,un)}getOrderBooks(t,e={}){return an(on.undefined(t),ln),sn(this.web3data,{pathParam:t,endpoint:hn+"/orders",subendpoint:"update",filterOptions:e}).then(cn,un)}getBbos(t,e={}){an(on.undefined(t),ln);const r=e.startDate||e.endDate?"bbo/historical":"bbo";return sn(this.web3data,{pathParam:t,endpoint:hn+"/orders",subendpoint:r,filterOptions:e}).then(cn,un)}getPrices(t,e={}){an(on.undefined(t),ln);const r=e.startDate||e.endDate?"historical":"latest";return sn(this.web3data,{pathParam:t,endpoint:hn+"/prices",subendpoint:r,filterOptions:e}).then(cn,un)}getTokenPrices(t,e={}){an(on.notHash(t),ln);const r=e.startDate||e.endDate?"historical":"latest";return sn(this.web3data,{hash:t,endpoint:hn+"/tokens/prices",subendpoint:r,filterOptions:e}).then(cn,un)}getVwap(t,e={}){return an(on.undefined(t),ln),sn(this.web3data,{pathParam:t,endpoint:hn+"/prices",subendpoint:"wap/latest",filterOptions:e}).then(cn,un)}getTickers(t,e={}){an(on.undefined(t),ln);const r=e.startDate||e.endDate?"historical":"latest";return sn(this.web3data,{pathParam:t,endpoint:hn+"/tickers",subendpoint:r,filterOptions:e}).then(cn,un)}getTrades(t,e={}){return an(on.undefined(t),ln),sn(this.web3data,{pathParam:t,endpoint:hn+"/trades",subendpoint:"historical",filterOptions:e}).then(cn,un)}getAssetAddresses(t="all"){return sn(this.web3data,{endpoint:hn+"/pairs/addresses",filterOptions:{symbols:t}}).then(cn,un)}};const{ethFactory:gn}=Qe,{BLOCKCHAIN_ID_ETHEREUM_MAINNET:bn}=dt;var yn=class{constructor(t,e,r){r.blockchainId=bn,this.web3data=new t(e,r);const n=gn(this.web3data);for(const t in n)({}).hasOwnProperty.call(n,t)&&(this[t]=n[t])}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_BITCOIN:En,BTC_METHODS:mn}=dt,{methodFactory:wn}=Qe;var _n=class{constructor(t,e,r){r.blockchainId=En,this.web3data=new t(e,r),wn(this,mn)}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_BITCOIN_CASH:vn,BTC_METHODS:On}=dt,{methodFactory:An}=Qe;var Rn=class{constructor(t,e,r){r.blockchainId=vn,this.web3data=new t(e,r),An(this,On)}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_BITCOIN_SV:Tn,BTC_METHODS:Sn}=dt,{methodFactory:Nn}=Qe;var In=class{constructor(t,e,r){r.blockchainId=Tn,this.web3data=new t(e,r),Nn(this,Sn)}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_LITECOIN:Dn,LTC_METHODS:Cn}=dt,{methodFactory:kn}=Qe;var Pn=class{constructor(t,e,r){r.blockchainId=Dn,this.web3data=new t(e,r),kn(this,Cn)}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_STELLAR:Bn,BTC_METHODS:Mn}=dt,{methodFactory:Un}=Qe;var Ln=class{constructor(t,e,r){r.blockchainId=Bn,this.web3data=new t(e,r),Un(this,Mn)}rpc(t,e){return this.web3data.rpc(t,e)}};const{BLOCKCHAIN_ID_ZCASH:Hn,BTC_METHODS:xn}=dt,{methodFactory:jn}=Qe;var Fn=class{constructor(t,e,r){r.blockchainId=Hn,this.web3data=new t(e,r),jn(this,xn)}rpc(t,e){return this.web3data.rpc(t,e)}},Kn=null;"undefined"!=typeof WebSocket?Kn=WebSocket:"undefined"!=typeof MozWebSocket?Kn=MozWebSocket:void 0!==ft?Kn=ft.WebSocket||ft.MozWebSocket:"undefined"!=typeof window?Kn=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(Kn=self.WebSocket||self.MozWebSocket);var Yn=Kn;const{DEFAULT_WEBSOCKET_URL:zn}=dt,{is:Gn,uuid:qn}=Qe,$n=t=>t?(t.params&&(t.params=Array.isArray(t.params)?t.params:[t.params]),JSON.stringify({jsonrpc:t.version||"2.0",method:t.method||"subscribe",id:t.id||0,params:t.params||[]})):"",Wn=0,Jn=1,Vn=2;var Xn=class{constructor(t,e){this.socket=null,this.baseWsUrl=e&&e.websocketUrl?e.websocketUrl:zn,this.apiKey=t,this.blockchainId=null,this.connected=!1,this.reconnects=0,this.responseReceived=!1,this.dataReceived=!1,e.blockchainId&&(this.blockchainId=e.blockchainId),this.registry={},this.registrySubIds={},this.latestState={}}connect(t){if(this.socket&&1===this.socket.readyState)return;const e=this.apiKey?"?x-api-key="+this.apiKey:"",r=this.blockchainId?"&x-amberdata-blockchain-id="+this.blockchainId:"";this.socket=new Yn(`${this.baseWsUrl}${e}${r}`),this.socket.addEventListener("open",e=>{console.info("websocket client connection opened"),this.connected=!0,this._refreshSubscriptions(),this._listen(),t&&t(e),setTimeout(()=>{!this.responseReceived&&Gn.nonEmptyObject(this.registry)&&this.socket&&this.socket.close()},5e3),setTimeout(()=>{!this.dataReceived&&Gn.nonEmptyObject(this.registry)&&this.socket.close()},18e5)}),this.socket.addEventListener("error",e=>{t&&e?t("connection error occurred",e):console.error("connection error occurred"),this._reconnect()}),this.socket.addEventListener("close",t=>{console.info("Websocket client connection closed - code",t.code),this._reconnect()})}disconnect(t=null){this.socket&&1===this.socket.readyState?(this.socket.onclose=t?()=>t("Websocket client connection closed"):()=>console.info("Websocket client connection closed"),this.socket.close(),this.socket=null):console.error("socket is not yet connected")}on({eventName:t,filters:e},r){if(r||console.warn("no callback provided"),!t)return void console.error("no event specified");const n=qn({eventName:t,filters:e});this.connected&&this._subscribe(t,e),this.registry[n]={},this.registry[n].callback=r,this.registry[n].args={eventName:t,filters:e}}once({eventName:t,filters:e},r){this.on({eventName:t,filters:e},n=>{this.off({eventName:t,filters:e},()=>{}),r&&r(n),this.registry[qn({eventName:t,filters:e})].callback=null})}off({eventName:t,filters:e},r){if(r||console.warn("no callback provided"),!t)return void console.error("no event specified");const n=qn({eventName:t,filters:e});this.registry[n]&&this.registry[n].subId?(this.registry[n].isSubscribed=!1,this.registry[n].unsubCallback=r||(()=>{}),this._unsubscribe(t,e,n)):console.error(`Not subscribed to: '${t}'`)}_reconnect(){1===this.socket.readyState&&this.disconnect(),++this.reconnects<=3&&(console.warn(`attempting to reconnect...${this.reconnects}/3`),this.connect())}_refreshSubscriptions(){if(this.registry)for(const{args:{eventName:t,filters:e}}of Object.values(this.registry))this._subscribe(t,e)}_listen(){this.socket.addEventListener("message",t=>{let e;try{e=JSON.parse(t.data)}catch(t){return void console.error("error parsing json request -",t)}switch(this.responseReceived=!0,(t=>t.params?Jn:Gn.string(t.result)?Wn:Gn.bool(t.result)?Vn:void 0)(e)){case Wn:this._subHandler(e);break;case Jn:this._dataHandler(e);break;case Vn:this._unsubHandler(e)}})}_subHandler(t){const e=t&&t.id?t.id:"";this.registrySubIds[t.result]=e,this.registry[e].subId=t.result,this.registry[e].isSubscribed=!0}_dataHandler(t){this.dataReceived=!0;const e=t&&t.params&&t.params.result?t.params.result:{},r=t&&t.params&&t.params.subscription?t.params.subscription:"",n=this.registrySubIds[r];this.registry[n].isSubscribed&&(this.registry[n]&&this.registry[n].callback&&this.registry[n].callback(e),Gn.notUndefined(this.latestState[n])&&(this.latestState[n]=e))}_unsubHandler(t){const e=t&&t.id?t.id:"",{eventName:r}=this.registry[e].args;t.result?(this.registry[e].unsubCallback("successfully unsubscribed from - "+r),delete this.registry[e]):this.registry[e].unsubCallback("Error: Not unsubscribed from - "+r)}_subscribe(t,e){const r=Gn.notUndefined(e)?[e]:[],n=qn({eventName:t,filters:e}),o=$n({id:n,params:[t,...r]});this.socket.send(o)}_unsubscribe(t,e,r){const n=$n({id:r,method:"unsubscribe",params:[this.registry[r].subId]});this.socket.readyState===this.socket.OPEN&&this.socket.send(n)}};const{API_KEY_HEADER:Zn,BLOCKCHAIN_ID_HEADER:Qn,DEFAULT_BASE_URL:to,DEFAULT_RPC_URL:eo,ERROR_RPC_NO_METHOD:ro}=dt,{is:no,throwIf:oo,formatJsonRpc:io}=Qe;class so{constructor(t,e={}){oo(no.undefined(t)||no.emptyString(t),"No api key supplied"),this.apiKey=t,this.blockchainId=null,this.headers={},this.headers[Zn]=this.apiKey,e.blockchainId&&(this.blockchainId=e.blockchainId,this.headers[Qn]=e.blockchainId),this.wsConfig={...e,websocketUrl:e.websocketUrl?e.websocketUrl:null},this.baseUrl=e.baseUrl?e.baseUrl:to,this.address=new cr(this),this.token=new Er(this),this.contract=new Tr(this),this.transaction=new Mr(this),this.block=new zr(this),this.blockchain=new Jr(this),this.signature=new nn(this),this.market=new pn(this)}rawQuery(t){return ut.get(this.baseUrl+t,{headers:this.headers}).then(t=>t.data)}rpc(t,e=[]){return oo(!t,ro),ut.post(`${eo}?${Zn}=${this.apiKey}&${Qn}=${this.blockchainId}`,io({method:t,params:e}),{headers:this.headers}).then(t=>t.data,t=>t.response.data)}}var ao=class extends so{constructor(t,e={}){super(t,e),this.eth=new yn(so,t,e),this.btc=new _n(so,t,e),this.bch=new Rn(so,t,e),this.bsv=new In(so,t,e),this.ltc=new Pn(so,t,e),this.xlm=new Ln(so,t,e),this.zec=new Fn(so,t,e),this.websocket=null}connect(t){return this.websocket=this.websocket?this.websocket:new Xn(this.apiKey,this.wsConfig),this.websocket.connect(t)}disconnect(t){this.websocket?this.websocket.disconnect(t):console.error("socket is not yet connected")}on({eventName:t,filters:e},r){r||console.warn("no callback provided"),t?this.websocket.on({eventName:t,filters:e},r):console.error("no event specified")}once({eventName:t,filters:e},r){this.websocket.once({eventName:t,filters:e},r)}off({eventName:t,filters:e},r){r||console.warn("no callback provided"),t?this.websocket.off({eventName:t,filters:e},r):console.error("no event specified")}};return"undefined"!=typeof window&&void 0===window.Web3Data&&(window.Web3Data=ao),ao})); \ No newline at end of file diff --git a/docs/api.md b/docs/api.md index 69eb8be..22b1ae8 100644 --- a/docs/api.md +++ b/docs/api.md @@ -559,26 +559,6 @@ Class for all Bitcoin Cash based methods. -##### Returns - - -- `Void` - - - - -### src/bsv.js - - -#### new Bsv() *private method* - -Class for all Bitcoin SV based methods. - - - - - - ##### Returns @@ -653,7 +633,7 @@ Retrieves the blocks specified by its id (number or hash). #### getBlockNumber() -Retrieves the latest block number +Retrieves the latest block number. @@ -670,13 +650,13 @@ Retrieves the latest block number ##### Returns -- `String` block Number +- `string` Block Number. #### getBlockTransactionCount(id, filterOptions) -Retrieves the block transaction count for a specific block based on hash or number +Retrieves the block transaction count for a specific block based on hash or number. @@ -748,7 +728,7 @@ Retrieves a single transaction for a block specified by its id (number or hash) | Name | Type | Description | | | ---- | ---- | ----------- | -------- | | id | | - The number or hash of the block for which to retrieve block information. |   | -| index | | - The number of the transaction block index |   | +| index | | - The number of the transaction block index. |   | | filterOptions | | - |   | @@ -779,7 +759,7 @@ Retrieves the uncle specified by its id (number or hash). | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| id | | - The number or hash of the uncle |   | +| id | | - The number or hash of the uncle. |   | | index | | - The index of the uncle, in most cases this is 0-2. |   | | filterOptions | | - |   | @@ -802,7 +782,7 @@ Retrieves the uncle specified by its id (number or hash). #### getTokenTransfers(id, filterOptions) -Retrieves the block token transfers executed at a specific block +Retrieves the block token transfers executed at a specific block. @@ -833,7 +813,7 @@ Retrieves the block token transfers executed at a specific block #### getLogs(id, filterOptions) -Retrieves the block logs executed at a specific block +Retrieves the block logs executed at a specific block. @@ -864,7 +844,7 @@ Retrieves the block logs executed at a specific block #### getFunctions(id, filterOptions) -Retrieves the block functions/internalMessages executed at a specific block +Retrieves the block functions/internalMessages executed at a specific block. @@ -988,6 +968,26 @@ const metrics = await web3data.blockchain.getMetrics() +### src/bsv.js + + +#### new Bsv() *private method* + +Class for all Bitcoin SV based methods. + + + + + + +##### Returns + + +- `Void` + + + + ### src/btc.js @@ -1248,6 +1248,86 @@ Class for all Litecoin based methods. +### src/signature.js + + +#### new Signature() + +Contains methods pertaining to the `/signatures` endpoint of Amberdata's API. + + + + + + +##### Returns + + +- `Void` + + + +#### Signature.constructor(web3data) + +Creates an instance of Signature. + + + + +##### Parameters + +| Name | Type | Description | | +| ---- | ---- | ----------- | -------- | +| web3data | `object` | - The web3data instance. |   | + + + + +##### Examples + +```javascript +new Signature(new Web3Data('API_KEY')) +``` + + +##### Returns + + +- `Void` + + + +#### Signature.getSignature(hash) + +Retrieves detailed information about the specified signature hash. + + + + +##### Parameters + +| Name | Type | Description | | +| ---- | ---- | ----------- | -------- | +| hash | `string` | - The (keccak 256) of the signature. |   | + + + + +##### Examples + +```javascript +const signatureDetails = await web3data.signature.getSignature('0xe2f0a05a') +``` + + +##### Returns + + +- `Promise.<Array>` Information pertaining to the specified signature hash. + + + + ### src/market.js @@ -1664,86 +1744,6 @@ const batTokenAddress = web3data.market.getAssetAddresses('bat') const assetAddr -### src/signature.js - - -#### new Signature() - -Contains methods pertaining to the `/signatures` endpoint of Amberdata's API. - - - - - - -##### Returns - - -- `Void` - - - -#### Signature.constructor(web3data) - -Creates an instance of Signature. - - - - -##### Parameters - -| Name | Type | Description | | -| ---- | ---- | ----------- | -------- | -| web3data | `object` | - The web3data instance. |   | - - - - -##### Examples - -```javascript -new Signature(new Web3Data('API_KEY')) -``` - - -##### Returns - - -- `Void` - - - -#### Signature.getSignature(hash) - -Retrieves detailed information about the specified signature hash. - - - - -##### Parameters - -| Name | Type | Description | | -| ---- | ---- | ----------- | -------- | -| hash | `string` | - The (keccak 256) of the signature. |   | - - - - -##### Examples - -```javascript -const signatureDetails = await web3data.signature.getSignature('0xe2f0a05a') -``` - - -##### Returns - - -- `Promise.<Array>` Information pertaining to the specified signature hash. - - - - ### src/token.js @@ -2021,48 +2021,29 @@ const transfers = await web3data.token.getTransfers('0x06012c8cf97bead5deae23707 -### src/utils.js - - -#### get(web3data, subendpoint, endpoint, hash, pathParam, filterOptions) *private method* - -Builds the endpoint url to pass to .rawQuery(). Checks for non empties and appends -the appropriate parameter(s) where applicable. - - - - -##### Parameters +### src/transaction.js -| Name | Type | Description | | -| ---- | ---- | ----------- | -------- | -| web3data | | - Instance on which to call .rawQuery(). |   | -| subendpoint | | - The sub-endpoint. |   | -| endpoint | | - The endpoint. |   | -| hash | | - The address hash. |   | -| pathParam | | - The path parameter. |   | -| filterOptions | | - The filters associated with a given endpoint. |   | +#### new Transaction() +Contains methods pertaining to the `/address` endpoint of Amberdata's API. +See [documentation](https://docs.amberdata.io/reference#get-all-transactions) details about our transaction endpoints. -##### Examples -```javascript -``` ##### Returns -- Returns a Promise of the rawQuery request from web3data. +- `Void` -#### onFulfilled(response) *private method* +#### Transaction.constructor(web3data) -Handler for all request responses. +Creates an instance of Transaction. Meant to be used in conjunction with the Web3Data class. @@ -2071,7 +2052,7 @@ Handler for all request responses. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| response | | - The Axios response object. |   | +| web3data | | - The web3data instance. |   | @@ -2086,13 +2067,13 @@ Handler for all request responses. ##### Returns -- The data from the response. +- `Void` -#### uuid(data) *private method* +#### Transaction.getTransactions(filterOptions) -Generates a uuid see [this gist]() for more details. +Retrieves all transactions matching the specified filters. @@ -2101,7 +2082,9 @@ Generates a uuid see [this gist]() for more details. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| data | | |   | +| filterOptions | | - The filter options associated with the request. |   | +| filterOptions.status | | - Filter by the status of the transactions to retrieve (all, completed, failed, pending). |   | +| filterOptions.includePrice | | - Indicates whether or not to include price data with the results. |   | @@ -2109,20 +2092,24 @@ Generates a uuid see [this gist]() for more details. ##### Examples ```javascript - +const transactions = await web3data.transaction.getTransactions() +// Include pricing data with transactions +const transactions = await web3data.transaction.getTransactions({ +includePrice: true +}) ``` ##### Returns -- `Void` +- All transactions matched by the specified filters. -#### getMethods(obj) *private method* +#### Transaction.getAll(filterOptions) -Returns an array of methods defined on the object. +See 'getTransactions' for details. @@ -2131,7 +2118,7 @@ Returns an array of methods defined on the object. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| obj | | - The object from which get methods. |   | +| filterOptions | | |   | @@ -2146,13 +2133,13 @@ Returns an array of methods defined on the object. ##### Returns -- An array of method names. +- `Void` -#### ethFactory(web3data) *private method* +#### Transaction.getTransaction(hash, filterOptions) -Creates an object containing Ethereum based methods. +Retrieves the transaction data for the specified hash. @@ -2161,7 +2148,10 @@ Creates an object containing Ethereum based methods. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| web3data | | - { object } The web3data instance. |   | +| hash | | - The transaction hash. |   | +| filterOptions | | - The filter options associated with the request. See [docs](https://docs.amberdata.io/reference#get-transaction) for more details. |   | +| filterOptions.validationMethod=none | | - The validation method to be added to the response: `none`, `basic`, `full`. |   | +| filterOptions.includePrice=true | | - Indicates whether or not to include price data with the results. |   | @@ -2169,29 +2159,22 @@ Creates an object containing Ethereum based methods. ##### Examples ```javascript - +const transaction = await web3data.transaction.getTransaction('0xd0a5a0912fdf87993b3cebd696f1ee667a8fbbe8fc890a22dcbdf114f36de4cf') ``` ##### Returns -- methods { object } an object containing Ethereum based methods. - - +- The data for the specified transaction hash. -#### formatJsonRpc(options) *private method* -Creates a string in json rpc format. +#### Transaction.getPendingTransactions() +Retrieves all pending transaction. -##### Parameters - -| Name | Type | Description | | -| ---- | ---- | ----------- | -------- | -| options | | - The json rpc options. |   | @@ -2199,41 +2182,43 @@ Creates a string in json rpc format. ##### Examples ```javascript - +const pendingTransactions = await web3data.transaction.getPendingTransactions() ``` ##### Returns -- The json rpc formatted string. +- The pending transactions. +#### Transaction.getGasPrediction() -### src/transaction.js +Retrieves the latest gas predictions for the transactions. -#### new Transaction() -Contains methods pertaining to the `/address` endpoint of Amberdata's API. -See [documentation](https://docs.amberdata.io/reference#get-all-transactions) details about our transaction endpoints. +##### Examples +```javascript +const gasPredictions = await web3data.transaction.getGasPrediction() +``` ##### Returns -- `Void` +- The latest gas predictions for the transactions. -#### Transaction.constructor(web3data) +#### Transaction.getGasPercentiles(filterOptions) -Creates an instance of Transaction. Meant to be used in conjunction with the Web3Data class. +Retrieves the latest gas price percentiles for the transactions. @@ -2242,7 +2227,8 @@ Creates an instance of Transaction. Meant to be used in conjunction with the Web | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| web3data | | - The web3data instance. |   | +| filterOptions | | - The filter options associated with the request. |   | +| filterOptions.numBlocks | | - Number of past blocks on which to base the percentiles. |   | @@ -2250,31 +2236,22 @@ Creates an instance of Transaction. Meant to be used in conjunction with the Web ##### Examples ```javascript - +const gasPercentiles = await web3data.transaction.getGasPercentiles() ``` ##### Returns -- `Void` - - +- The latest gas price percentiles for the transactions. -#### Transaction.getTransactions(filterOptions) - -Retrieves all transactions matching the specified filters. +#### Transaction.getGasPrice() +Retrieves the latest average gas price. Uses `getGasPrediction` under the hood. -##### Parameters -| Name | Type | Description | | -| ---- | ---- | ----------- | -------- | -| filterOptions | | - The filter options associated with the request. |   | -| filterOptions.status | | - Filter by the status of the transactions to retrieve (all, completed, failed, pending). |   | -| filterOptions.includePrice | | - Indicates whether or not to include price data with the results. |   | @@ -2282,24 +2259,20 @@ Retrieves all transactions matching the specified filters. ##### Examples ```javascript -const transactions = await web3data.transaction.getTransactions() -// Include pricing data with transactions -const transactions = await web3data.transaction.getTransactions({ -includePrice: true -}) +const gasPrice = await web3data.transaction.getGasPrice() ``` ##### Returns -- All transactions matched by the specified filters. +- The latest gas price. -#### Transaction.getAll(filterOptions) +#### Transaction.getVolume(filterOptions) -See 'getTransactions' for details. +Retrieves the historical (time series) volume of transactions. @@ -2308,7 +2281,7 @@ See 'getTransactions' for details. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| filterOptions | | |   | +| filterOptions | | - The filter options associated with the request. See [docs](https://docs.amberdata.io/reference#get-historical-transaction-volume) for more details. |   | @@ -2316,20 +2289,20 @@ See 'getTransactions' for details. ##### Examples ```javascript - +const volume = await web3data.transaction.getVolume() ``` ##### Returns -- `Void` +- The historical (time series) volume of transactions. -#### Transaction.getTransaction(hash, filterOptions) +#### Transaction.getMetrics(filterOptions) -Retrieves the transaction data for the specified hash. +Get metrics for recent confirmed transactions for a given blockchain. Default metrics are over a 24h period. @@ -2338,10 +2311,7 @@ Retrieves the transaction data for the specified hash. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| hash | | - The transaction hash. |   | -| filterOptions | | - The filter options associated with the request. See [docs](https://docs.amberdata.io/reference#get-transaction) for more details. |   | -| filterOptions.validationMethod=none | | - The validation method to be added to the response: `none`, `basic`, `full`. |   | -| filterOptions.includePrice=true | | - Indicates whether or not to include price data with the results. |   | +| filterOptions | | |   | @@ -2349,45 +2319,69 @@ Retrieves the transaction data for the specified hash. ##### Examples ```javascript -const transaction = await web3data.transaction.getTransaction('0xd0a5a0912fdf87993b3cebd696f1ee667a8fbbe8fc890a22dcbdf114f36de4cf') +const metrics = await web3data.transaction.getMetrics() ``` ##### Returns -- The data for the specified transaction hash. +- Metrics for recent confirmed transactions. -#### Transaction.getPendingTransactions() -Retrieves all pending transaction. +### src/utils.js + + +#### get(web3data, subendpoint, endpoint, hash, pathParam, filterOptions) *private method* +Builds the endpoint url to pass to .rawQuery(). Checks for non empties and appends +the appropriate parameter(s) where applicable. +##### Parameters + +| Name | Type | Description | | +| ---- | ---- | ----------- | -------- | +| web3data | | - Instance on which to call .rawQuery(). |   | +| subendpoint | | - The sub-endpoint. |   | +| endpoint | | - The endpoint. |   | +| hash | | - The address hash. |   | +| pathParam | | - The path parameter. |   | +| filterOptions | | - The filters associated with a given endpoint. |   | + + + ##### Examples ```javascript -const pendingTransactions = await web3data.transaction.getPendingTransactions() + ``` ##### Returns -- The pending transactions. +- Returns a Promise of the rawQuery request from web3data. -#### Transaction.getGasPrediction() +#### onFulfilled(response) *private method* + +Handler for all request responses. + -Retrieves the latest gas predictions for the transactions. +##### Parameters + +| Name | Type | Description | | +| ---- | ---- | ----------- | -------- | +| response | | - The Axios response object. |   | @@ -2395,20 +2389,20 @@ Retrieves the latest gas predictions for the transactions. ##### Examples ```javascript -const gasPredictions = await web3data.transaction.getGasPrediction() + ``` ##### Returns -- The latest gas predictions for the transactions. +- The data from the response. -#### Transaction.getGasPercentiles(filterOptions) +#### uuid(data) *private method* -Retrieves the latest gas price percentiles for the transactions. +Generates a uuid see [this gist]() for more details. @@ -2417,8 +2411,7 @@ Retrieves the latest gas price percentiles for the transactions. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| filterOptions | | - The filter options associated with the request. |   | -| filterOptions.numBlocks | | - Number of past blocks on which to base the percentiles. |   | +| data | | |   | @@ -2426,43 +2419,51 @@ Retrieves the latest gas price percentiles for the transactions. ##### Examples ```javascript -const gasPercentiles = await web3data.transaction.getGasPercentiles() + ``` ##### Returns -- The latest gas price percentiles for the transactions. +- `Void` -#### Transaction.getGasPrice() +#### getMethods(object, obj) *private method* + +Returns an array of methods defined on the object. -Retrieves the latest average gas price. Uses `getGasPrediction` under the hood. +##### Parameters + +| Name | Type | Description | | +| ---- | ---- | ----------- | -------- | +| object | | |   | +| obj | | - The object from which get methods. |   | + ##### Examples ```javascript -const gasPrice = await web3data.transaction.getGasPrice() + ``` ##### Returns -- The latest gas price. +- An array of method names. -#### Transaction.getVolume(filterOptions) +#### ethFactory(web3data) *private method* -Retrieves the historical (time series) volume of transactions. +Creates an object containing Ethereum based methods. @@ -2471,7 +2472,7 @@ Retrieves the historical (time series) volume of transactions. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| filterOptions | | - The filter options associated with the request. See [docs](https://docs.amberdata.io/reference#get-historical-transaction-volume) for more details. |   | +| web3data | | - { object } The web3data instance. |   | @@ -2479,20 +2480,20 @@ Retrieves the historical (time series) volume of transactions. ##### Examples ```javascript -const volume = await web3data.transaction.getVolume() + ``` ##### Returns -- The historical (time series) volume of transactions. +- methods { object } an object containing Ethereum based methods. -#### Transaction.getMetrics(filterOptions) +#### formatJsonRpc(options) *private method* -Get metrics for recent confirmed transactions for a given blockchain. Default metrics are over a 24h period. +Creates a string in json rpc format. @@ -2501,7 +2502,7 @@ Get metrics for recent confirmed transactions for a given blockchain. Default me | Name | Type | Description | | | ---- | ---- | ----------- | -------- | -| filterOptions | | |   | +| options | | - The json rpc options. |   | @@ -2509,14 +2510,14 @@ Get metrics for recent confirmed transactions for a given blockchain. Default me ##### Examples ```javascript -const metrics = await web3data.transaction.getMetrics() + ``` ##### Returns -- Metrics for recent confirmed transactions. +- The json rpc formatted string. @@ -2605,7 +2606,7 @@ http request to the Amberdata API endpoint. -#### Web3DataFactory.rpc(method, params) +#### Web3DataFactory.rpc(method, parameters, params) Method used to interact with web3api json rpc endpoints. @@ -2617,6 +2618,7 @@ Method used to interact with web3api json rpc endpoints. | Name | Type | Description | | | ---- | ---- | ----------- | -------- | | method | | - The json rpc method to call. |   | +| parameters | | |   | | params | | - The parameters to the json rpc call. |   | @@ -3145,12 +3147,12 @@ Sends unsubscription message to the websocket connection. -### src/zec.js +### src/xlm.js -#### new Zec() *private method* +#### new Xlm() *private method* -Class for all ZCash based methods. +Class for all Stellar based methods. @@ -3165,12 +3167,12 @@ Class for all ZCash based methods. -### src/xlm.js +### src/zec.js -#### new Xlm() *private method* +#### new Zec() *private method* -Class for all Stellar based methods. +Class for all ZCash based methods. diff --git a/package-lock.json b/package-lock.json index 546aa3f..4f97fc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,14 @@ "requires": true, "dependencies": { "@ava/babel": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@ava/babel/-/babel-1.0.0.tgz", - "integrity": "sha512-u+ampdSpi2E1a8QkklrUThvnqa3eTUHI8g30IDWtlae2vtgwUqlryAwJXSbsedidOjsaiXP/uSFj+Syj5v4dZQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@ava/babel/-/babel-1.0.1.tgz", + "integrity": "sha512-mGKpGeT6J4UjK2sxPjvwWl/GtsF9+eNyn2HHa7OknWWWYuw+rof/UaTAn1CA0z4sTw4Mruik/ihEasMw+JM6aQ==", "dev": true, "requires": { - "@babel/core": "^7.8.3", - "@babel/generator": "^7.8.3", + "@ava/require-precompiled": "^1.0.0", + "@babel/core": "^7.8.4", + "@babel/generator": "^7.8.4", "@babel/plugin-proposal-dynamic-import": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-proposal-optional-chaining": "^7.8.3", @@ -27,7 +28,6 @@ "md5-hex": "^3.0.1", "package-hash": "^4.0.0", "pkg-conf": "^3.1.0", - "require-precompiled": "^0.1.0", "source-map-support": "^0.5.16", "strip-bom-buf": "^2.0.0", "write-file-atomic": "^3.0.1" @@ -95,9 +95,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -119,6 +119,12 @@ "@babel/plugin-transform-modules-commonjs": "^7.5.0" } }, + "@ava/require-precompiled": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@ava/require-precompiled/-/require-precompiled-1.0.0.tgz", + "integrity": "sha512-N7w4g+P/SUL8SF+HC4Z4e/ctV6nQ5AERC90K90r4xZQ8WVrJux9albvfyYAzygyU47CSqMWh6yJwFs8DYaeWmg==", + "dev": true + }, "@babel/cli": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", @@ -154,39 +160,155 @@ } }, "@babel/compat-data": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.4.tgz", - "integrity": "sha512-lHLhlsvFjJAqNU71b7k6Vv9ewjmTXKvqaMv7n0G1etdCabWLw3nEYE8mmgoVOxMIFE07xOvo7H7XBASirX6Rrg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", + "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", "dev": true, "requires": { - "browserslist": "^4.8.5", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001046", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz", + "integrity": "sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.417", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.417.tgz", + "integrity": "sha512-IMNamkpoT3lVSHC16QPx3lbLt/WBuoPtAmMGLbVVJTwKR/rjohP+Y+j4xHSSgvylICvT5HOnnPha+uJMqwmUWg==", + "dev": true + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + } } }, "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.5", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -245,28 +367,49 @@ "esutils": "^2.0.0" } }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, "@babel/helper-compilation-targets": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", - "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.4", - "browserslist": "^4.8.5", + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001046", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz", + "integrity": "sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.417", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.417.tgz", + "integrity": "sha512-IMNamkpoT3lVSHC16QPx3lbLt/WBuoPtAmMGLbVVJTwKR/rjohP+Y+j4xHSSgvylICvT5HOnnPha+uJMqwmUWg==", + "dev": true + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + } } }, "@babel/helper-create-regexp-features-plugin": { @@ -399,15 +542,89 @@ } }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + }, + "dependencies": { + "@babel/generator": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/traverse": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.5", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@babel/helper-simple-access": { @@ -429,6 +646,12 @@ "@babel/types": "^7.8.3" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, "@babel/helper-wrap-function": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", @@ -442,14 +665,88 @@ } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "dev": true, "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", + "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.9.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/traverse": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", + "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.5", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@babel/highlight": { @@ -510,14 +807,25 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "@babel/plugin-proposal-numeric-separator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz", + "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -531,9 +839,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -541,13 +849,70 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-create-regexp-features-plugin": "^7.8.8", "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + } } }, "@babel/plugin-syntax-async-generators": { @@ -604,6 +969,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", @@ -680,19 +1054,43 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-computed-properties": { @@ -705,9 +1103,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -753,9 +1151,9 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", - "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -790,14 +1188,59 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "dependencies": { + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-modules-commonjs": { @@ -813,32 +1256,122 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "dependencies": { + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, + }, + "dependencies": { + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.8.3" } @@ -863,12 +1396,11 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.3", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } @@ -894,12 +1426,12 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { @@ -912,9 +1444,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", + "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", @@ -981,27 +1513,29 @@ } }, "@babel/preset-env": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", - "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.5.tgz", + "integrity": "sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.4", - "@babel/helper-compilation-targets": "^7.8.4", + "@babel/compat-data": "^7.9.0", + "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", "@babel/plugin-proposal-dynamic-import": "^7.8.3", "@babel/plugin-proposal-json-strings": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.5", "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", @@ -1010,26 +1544,26 @@ "@babel/plugin-transform-async-to-generator": "^7.8.3", "@babel/plugin-transform-block-scoped-functions": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", "@babel/plugin-transform-dotall-regex": "^7.8.3", "@babel/plugin-transform-duplicate-keys": "^7.8.3", "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-for-of": "^7.9.0", "@babel/plugin-transform-function-name": "^7.8.3", "@babel/plugin-transform-literals": "^7.8.3", "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-parameters": "^7.9.5", "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", "@babel/plugin-transform-reserved-words": "^7.8.3", "@babel/plugin-transform-shorthand-properties": "^7.8.3", "@babel/plugin-transform-spread": "^7.8.3", @@ -1037,18 +1571,119 @@ "@babel/plugin-transform-template-literals": "^7.8.3", "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.5", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.5", + "browserslist": "^4.9.1", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", + "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", + "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001046", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz", + "integrity": "sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.417", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.417.tgz", + "integrity": "sha512-IMNamkpoT3lVSHC16QPx3lbLt/WBuoPtAmMGLbVVJTwKR/rjohP+Y+j4xHSSgvylICvT5HOnnPha+uJMqwmUWg==", + "dev": true + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, "@babel/register": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.3.tgz", - "integrity": "sha512-t7UqebaWwo9nXWClIPLPloa5pN33A2leVs8Hf0e9g9YwUP8/H9NeR7DJU+4CXo23QtjChQv5a3DjEtT83ih1rg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", @@ -1065,9 +1700,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -1402,33 +2037,33 @@ } }, "@pollyjs/adapter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/adapter/-/adapter-4.0.2.tgz", - "integrity": "sha512-yAS47hY/ndZ60xcc6vyiRtx2EjnUMAfFMcDyGhDic7IO+lpID3p9yvsd6VP4x3LVXHRhw5uAHowVb0TG3T5jAQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/adapter/-/adapter-4.1.0.tgz", + "integrity": "sha512-/KGsXLqlaBX6Xcfzl37gq5Rl5wk3n+PR8XH17kZJXBw61sP8Xr6aMlNFbF4rG8CFTKFoV/bnGifTVrj6CUttvg==", "dev": true, "requires": { - "@pollyjs/utils": "^4.0.2" + "@pollyjs/utils": "^4.1.0" } }, "@pollyjs/adapter-node-http": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@pollyjs/adapter-node-http/-/adapter-node-http-4.0.3.tgz", - "integrity": "sha512-1ucveKkUovKXNIMkHs0tKSbDoSu+sPnImhUgrHqqTuUvOIou9gLIwjPAPI4k7JY3CqUKrOhq8TCsyGa3YumFow==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/adapter-node-http/-/adapter-node-http-4.1.0.tgz", + "integrity": "sha512-mqdeMCWcwkAViiAc+Oil7+XlsdxRuySy6mqMs+sWiaWLiKz8xYKoDrCSCndiqu2qnVIVLi9gb+3m3XYk7N6mkg==", "dev": true, "requires": { - "@pollyjs/adapter": "^4.0.2", - "@pollyjs/utils": "^4.0.2", + "@pollyjs/adapter": "^4.1.0", + "@pollyjs/utils": "^4.1.0", "lodash-es": "^4.17.11", - "nock": "^11.7.2" + "nock": "^12.0.3" } }, "@pollyjs/core": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/core/-/core-4.0.2.tgz", - "integrity": "sha512-QOTinIkwetuZ2MxVSFVRJMpcMQhBE+jZtNWVGmDFvyJG3R106XmwJTFhCoGXvGbHBVxte2fgQ8zKUQoyIuE+oQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/core/-/core-4.1.0.tgz", + "integrity": "sha512-s3tSpwN/MXKRUFtR8S0faesQHNDweJiAKLHc3iRHmJPh8EAseHluZP3UW8GS+q5mWgKEghIXKhlQ5Y47cR9t0w==", "dev": true, "requires": { - "@pollyjs/utils": "^4.0.2", + "@pollyjs/utils": "^4.1.0", "@sindresorhus/fnv1a": "^1.2.0", "blueimp-md5": "^2.10.0", "fast-json-stable-stringify": "^2.0.0", @@ -1439,12 +2074,12 @@ } }, "@pollyjs/node-server": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/node-server/-/node-server-4.0.2.tgz", - "integrity": "sha512-mxSTlepqe3oIi6DvENXqZOgDDmgK2Wme7AEyVpLHhvJuzjAsPszV8i3RAPvhAx+5WOXHEnHzzwCoGSGKUMSlFw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/node-server/-/node-server-4.1.0.tgz", + "integrity": "sha512-X7ukMcDRPoMLsXtDgEfK9L3jy+ngUJJUFXCCmWrSVjB2d3UK3F2vqpS7fvxTfA7TJXP/usKA4tAA0YrYe7DVUA==", "dev": true, "requires": { - "@pollyjs/utils": "^4.0.2", + "@pollyjs/utils": "^4.1.0", "body-parser": "^1.19.0", "cors": "^2.8.5", "express": "^4.17.1", @@ -1455,12 +2090,12 @@ } }, "@pollyjs/persister": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/persister/-/persister-4.0.2.tgz", - "integrity": "sha512-LWLPleq2EvPlcoNPIr7bKvT6va8uFix1gVyfBf55ehvWFkRyOclLOqrJmu+oP88Qt0iP1FVPFNo4NwB05dKGvA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/persister/-/persister-4.1.0.tgz", + "integrity": "sha512-Q79/UlzHsjEah0djgLxWHEHoptZRBqhP31OeyrM5Tve80oTJMWh79wc3iS8BL1CNAPOkpK7YNs4bUcBzI4zXUQ==", "dev": true, "requires": { - "@pollyjs/utils": "^4.0.2", + "@pollyjs/utils": "^4.1.0", "bowser": "^2.4.0", "fast-json-stable-stringify": "^2.0.0", "lodash-es": "^4.17.11", @@ -1469,19 +2104,19 @@ } }, "@pollyjs/persister-fs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/persister-fs/-/persister-fs-4.0.2.tgz", - "integrity": "sha512-/VYa2DQ32JUIH0vQj+MXM3/8N0OFSntoK20bx30HifLb+HEw14OorGjgDUrWHzQPZdRofeogvNAjE+1O+hMxrQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/persister-fs/-/persister-fs-4.1.0.tgz", + "integrity": "sha512-8V8aaqNJYjhJhuuVIxl0dinuCOVS43+zPjz+nGocQO2Ig2i5GPueQl7hjIE5HnJshjXRbPx8AAxjZFiLNXmxQw==", "dev": true, "requires": { - "@pollyjs/node-server": "^4.0.2", - "@pollyjs/persister": "^4.0.2" + "@pollyjs/node-server": "^4.1.0", + "@pollyjs/persister": "^4.1.0" } }, "@pollyjs/utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@pollyjs/utils/-/utils-4.0.2.tgz", - "integrity": "sha512-Rm0T83nTXeCWO+VS9tbe4hcw9mk5EcmsH/tWRK6lz9/DPc6ApQ3nzt0K5yEijJACbIRUNe722G8ASiLrcRJa2Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pollyjs/utils/-/utils-4.1.0.tgz", + "integrity": "sha512-+ZkVTG2Mm8Oc92vQiOZR72/cyh50G2omSu5jhHmcSO6zSDhwzZyEa+jim4eaUytESNtd/RJQnMukDOEJyGlSDw==", "dev": true, "requires": { "qs": "^6.7.0", @@ -1515,6 +2150,12 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -1538,6 +2179,12 @@ "@types/node": "*" } }, + "@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -1577,6 +2224,94 @@ "@types/node": "*" } }, + "@typescript-eslint/eslint-plugin": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.29.0.tgz", + "integrity": "sha512-X/YAY7azKirENm4QRpT7OVmzok02cSkqeIcLmdz6gXUQG4Hk0Fi9oBAynSAyNXeGdMRuZvjBa0c1Lu0dn/u6VA==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.29.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.29.0.tgz", + "integrity": "sha512-H/6VJr6eWYstyqjWXBP2Nn1hQJyvJoFdDtsHxGiD+lEP7piGnGpb/ZQd+z1ZSB1F7dN+WsxUDh8+S4LwI+f3jw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.29.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.29.0.tgz", + "integrity": "sha512-H78M+jcu5Tf6m/5N8iiFblUUv+HJDguMSdFfzwa6vSg9lKR8Mk9BsgeSjO8l2EshKnJKcbv0e8IDDOvSNjl0EA==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.29.0", + "@typescript-eslint/typescript-estree": "2.29.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.29.0.tgz", + "integrity": "sha512-3YGbtnWy4az16Egy5Fj5CckkVlpIh0MADtAQza+jiMADRSKkjdpzZp/5WuvwK/Qib3Z0HtzrDFeWanS99dNhnA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^6.3.0", + "tsutils": "^3.17.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "abab": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", @@ -1635,9 +2370,9 @@ } }, "acorn-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", - "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "acorn-walk": { @@ -1720,18 +2455,18 @@ } }, "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" }, "dependencies": { "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } @@ -1839,18 +2574,18 @@ "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", "dev": true }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -2009,6 +2744,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -2016,18 +2757,19 @@ "dev": true }, "ava": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ava/-/ava-3.1.0.tgz", - "integrity": "sha512-SWMJT/CiS4KAenKRtgwBFGmHSxqI/1ANqYXTDCif9uyOjspJm3wLleqgdoyyr6N8S2E/T2ALSpUIbrqEcKsJgA==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-3.7.1.tgz", + "integrity": "sha512-UX7RSenUgFPhxe866doqOJy6tQZAXAVAU4yufYeBAcnEjnS/plIcG6lE2yGIqgjk5cIMpSi+sP4f6EsornlsuA==", "dev": true, "requires": { "@concordance/react": "^2.0.0", "ansi-styles": "^4.2.1", "arrgv": "^1.0.2", "arrify": "^2.0.1", - "chalk": "^3.0.0", + "chalk": "^4.0.0", "chokidar": "^3.3.1", "chunkd": "^2.0.1", + "ci-info": "^2.0.0", "ci-parallel-vars": "^1.0.0", "clean-stack": "^2.2.0", "clean-yaml-object": "^0.1.0", @@ -2040,27 +2782,27 @@ "currently-unhandled": "^0.4.1", "debug": "^4.1.1", "del": "^5.1.0", - "emittery": "^0.5.1", + "emittery": "^0.6.0", "equal-length": "^1.0.0", - "figures": "^3.1.0", + "figures": "^3.2.0", "globby": "^11.0.0", "ignore-by-default": "^1.0.0", "import-local": "^3.0.2", "indent-string": "^4.0.0", - "is-ci": "^2.0.0", "is-error": "^2.2.2", "is-plain-object": "^3.0.0", "is-promise": "^2.1.0", "lodash": "^4.17.15", "matcher": "^2.1.0", "md5-hex": "^3.0.1", + "mem": "^6.1.0", "ms": "^2.1.2", "ora": "^4.0.3", - "p-map": "^3.0.0", - "picomatch": "^2.2.1", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", "pkg-conf": "^3.1.0", - "plur": "^3.1.1", - "pretty-ms": "^5.1.0", + "plur": "^4.0.0", + "pretty-ms": "^6.0.1", "read-pkg": "^5.2.0", "resolve-cwd": "^3.0.0", "slash": "^3.0.0", @@ -2070,9 +2812,9 @@ "supertap": "^1.0.0", "temp-dir": "^2.0.0", "trim-off-newlines": "^1.0.1", - "update-notifier": "^4.0.0", - "write-file-atomic": "^3.0.1", - "yargs": "^15.1.0" + "update-notifier": "^4.1.0", + "write-file-atomic": "^3.0.3", + "yargs": "^15.3.1" }, "dependencies": { "ansi-regex": { @@ -2117,9 +2859,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2176,16 +2918,16 @@ } }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -2255,9 +2997,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -2335,17 +3077,6 @@ "espower-location-detector": "^1.0.0", "espurify": "^1.6.0", "estraverse": "^4.1.1" - }, - "dependencies": { - "espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "dev": true, - "requires": { - "core-js": "^2.0.0" - } - } } }, "babel-runtime": { @@ -2545,9 +3276,9 @@ "dev": true }, "blueimp-md5": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.12.0.tgz", - "integrity": "sha512-zo+HIdIhzojv6F1siQPqPFROyVy7C50KzHv/k/Iz+BtvtVzSHXiMXOpq2wCfNkeBqdCv+V8XOV96tsEt2W/3rQ==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.13.0.tgz", + "integrity": "sha512-lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q==", "dev": true }, "bn.js": { @@ -2681,12 +3412,6 @@ "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", "dev": true }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -3003,9 +3728,9 @@ }, "dependencies": { "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -3029,17 +3754,6 @@ "deep-equal": "^1.0.0", "espurify": "^1.6.0", "estraverse": "^4.0.0" - }, - "dependencies": { - "espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "dev": true, - "requires": { - "core-js": "^2.0.0" - } - } } }, "call-me-maybe": { @@ -3284,9 +3998,9 @@ } }, "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", - "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz", + "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==", "dev": true }, "cli-truncate": { @@ -3297,46 +4011,12 @@ "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "clipboard": { @@ -3368,23 +4048,6 @@ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -3620,9 +4283,9 @@ } }, "compare-versions": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", - "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, "component-emitter": { @@ -3738,12 +4401,12 @@ } }, "configstore": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.0.tgz", - "integrity": "sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^5.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", @@ -3758,9 +4421,9 @@ "dev": true }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -3789,6 +4452,12 @@ } } }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, "connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -3918,12 +4587,12 @@ "dev": true }, "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "dev": true, "requires": { - "browserslist": "^4.8.3", + "browserslist": "^4.8.5", "semver": "7.0.0" }, "dependencies": { @@ -4054,18 +4723,18 @@ } }, "cross-env": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.0.tgz", - "integrity": "sha512-rV6M9ldNgmwP7bx5u6rZsTbYidzwvrwIYZnT08hSGLcQCcggofgFW+sNe7IhA1SRauPS0QuLbbX+wdNtpqE5CQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" }, "dependencies": { "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -4730,7 +5399,16 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "slash": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", @@ -4773,12 +5451,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -5690,40 +6362,11 @@ } }, "doxdox-plugin-markdown": { - "version": "github:taylorjdawson/doxdox-plugin-markdown#b2d53180306ac538b08d90883ac8a9274d0eca03", + "version": "github:taylorjdawson/doxdox-plugin-markdown#9091f5a067f811399ab6d9d1d12c9ae136563b6e", "from": "github:taylorjdawson/doxdox-plugin-markdown", "dev": true, "requires": { - "handlebars": "4.1.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", - "dev": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - } - }, - "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 - } + "handlebars": "4.7.6" } }, "duplexer": { @@ -5785,9 +6428,9 @@ } }, "emittery": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.5.1.tgz", - "integrity": "sha512-sYZXNHH9PhTfs98ROEFVC3bLiR8KSqXQsEHIwZ9J6H0RaQObC3JYq4G8IvDd0b45/LxfGKYBpmaUN4LiKytaNw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.6.0.tgz", + "integrity": "sha512-6EMRGr9KzYWp8DzHFZsKVZBsMO6QhAeHMeHND8rhyBNCHKMLpgW9tZv40bwN3rAIKRS5CxcK8oLRKUJSB9h7yQ==", "dev": true }, "emoji-regex": { @@ -5830,6 +6473,17 @@ "lodash": "^4.13.1" } }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -5916,6 +6570,12 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -6031,19 +6691,28 @@ "ms": "^2.1.1" } }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -6061,6 +6730,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -6068,15 +6743,9 @@ "dev": true }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true } } @@ -6092,9 +6761,9 @@ } }, "eslint-config-prettier": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz", - "integrity": "sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -6109,64 +6778,98 @@ } }, "eslint-config-xo": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.27.2.tgz", - "integrity": "sha512-qEuZP0zNQkWpOdNZvWnfY2GNp1AZ33uXgeOXl4DN5YVLHFvekHbeSM2FFZ8A489fp1rCCColVRlJsYMf28o4DA==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.29.1.tgz", + "integrity": "sha512-RDjeKh8CV0/EH4utW/6uOkwJJOOU+rX3uE5eUBOamcLNe4lNjyo8kSt3B6DzAm1L/1tWGikI7LFNVY9gG7PDQw==", + "dev": true, + "requires": { + "confusing-browser-globals": "1.0.9" + } + }, + "eslint-config-xo-typescript": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.27.0.tgz", + "integrity": "sha512-aBRN8Nb6sc5oFIIuJoqr9uGCPGkVAVU2sRKN/RQ3iDt0AdrI/jgbgRQXpsAf3V8oK2013satUokRbHG6e7mrkQ==", "dev": true }, "eslint-formatter-pretty": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-2.1.1.tgz", - "integrity": "sha512-gWfagucSWBn82WxzwFloBTLAcwYDgnpAfiV5pQfyAV5YpZikuLflRU8nc3Ts9wnNvLhwk4blzb42/C495Yw7BA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-3.0.1.tgz", + "integrity": "sha512-hhQ/ASD4i6BAEalcEfUxesFtJFftT8xFsimCzUpPbTzygJ4J17yCGcJ3XKCB2g7XTJTv0pi7rVTadfHVmtfSRA==", "dev": true, "requires": { - "ansi-escapes": "^3.1.0", - "chalk": "^2.1.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", "eslint-rule-docs": "^1.1.5", - "log-symbols": "^2.0.0", + "log-symbols": "^3.0.0", "plur": "^3.0.1", - "string-width": "^2.0.0", - "supports-hyperlinks": "^1.0.1" + "string-width": "^4.2.0", + "supports-hyperlinks": "^2.0.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } }, - "ansi-regex": { + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "chalk": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "irregular-plurals": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz", + "integrity": "sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw==", + "dev": true + }, + "plur": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/plur/-/plur-3.1.1.tgz", + "integrity": "sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "irregular-plurals": "^2.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -6191,20 +6894,64 @@ } }, "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-import-resolver-webpack": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.1.tgz", + "integrity": "sha512-O/sUAXk6GWrICiN8JUkkjdt9uZpqZHP+FVnTxtEILL6EZMaPSrnP4lGPSFwcKsv7O211maqq4Nz60+dh236hVg==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.9", + "enhanced-resolve": "^0.9.1", + "find-root": "^1.1.0", + "has": "^1.0.3", + "interpret": "^1.2.0", + "lodash": "^4.17.15", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.13.1", + "semver": "^5.7.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" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, "eslint-module-utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", - "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -6275,20 +7022,26 @@ } }, "eslint-plugin-ava": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-9.0.0.tgz", - "integrity": "sha512-mJqQ1wQ9pxBi5Pu+grrqjfuSLxiSSgnpa5p5vMdEpBqA9n9cUzSCv0xMZ/NkTMAj5ieOB3TWF8j+7C30Yiv4RA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-10.2.0.tgz", + "integrity": "sha512-1EP9Mn/pau+ZxwRPDspiioRD6GHCSz7RywTmqW01JTxXvX0vKEV0odfWe+QL+jXfmqd83SHHvDJfOvYcyzoxYA==", "dev": true, "requires": { "deep-strict-equal": "^0.2.0", "enhance-visitors": "^1.0.0", - "espree": "^6.0.0", - "espurify": "^2.0.0", - "import-modules": "^1.1.0", + "espree": "^6.1.2", + "espurify": "^2.0.1", + "import-modules": "^2.0.0", "pkg-dir": "^4.2.0", "resolve-from": "^5.0.0" }, "dependencies": { + "espurify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.0.1.tgz", + "integrity": "sha512-7w/dUrReI/QbJFHRwfomTlkQOXaB1NuCrBRn5Y26HXn5gvh18/19AgLbayVrNxXQfkckvgrJloWyvZDuJ7dhEA==", + "dev": true + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -6335,21 +7088,13 @@ } }, "eslint-plugin-es": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", - "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz", + "integrity": "sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng==", "dev": true, "requires": { - "eslint-utils": "^1.4.2", + "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" - }, - "dependencies": { - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", - "dev": true - } } }, "eslint-plugin-eslint-comments": { @@ -6363,9 +7108,9 @@ } }, "eslint-plugin-import": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz", - "integrity": "sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ==", + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", "dev": true, "requires": { "array-includes": "^3.0.3", @@ -6402,9 +7147,9 @@ } }, "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -6413,9 +7158,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-21.0.0.tgz", - "integrity": "sha512-CdLGe2oyw5YAX9rxq9bVz7H2PK+r8PVwdGuvYGMBstpbVD/66yUAgRFQRsJwAsRKLmReo58Lw1jFdNcxdOc4eg==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-24.0.0.tgz", + "integrity": "sha512-AGAc9PYpramsJGVmqtxnXBYlq+AMh+hIZdbJ52OLvyJS3f+PaT/PzuckRFOLnth2uhCDv4IjgsB3r5jUFWqUnw==", "dev": true, "requires": { "comment-parser": "^0.7.2", @@ -6469,13 +7214,13 @@ } }, "eslint-plugin-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", - "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, "requires": { - "eslint-plugin-es": "^2.0.0", - "eslint-utils": "^1.4.2", + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", "ignore": "^5.1.1", "minimatch": "^3.0.4", "resolve": "^1.10.1", @@ -6491,9 +7236,9 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", - "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz", + "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -6506,27 +7251,22 @@ "dev": true }, "eslint-plugin-unicorn": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-12.1.0.tgz", - "integrity": "sha512-DkPRrjaZaKa8GDjEyWGms/sqp2DcmVCcbwVi9WQXwN6+Sn0/joTC14SfA+BsCuxTaGPRm/7wa8NC8o5mNDyZpQ==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-18.0.1.tgz", + "integrity": "sha512-Y4bgygek4x4ogeMcSHr6MZi3frBPZ80eIpMOsxew7jAblb53OYflpRh0an62Z6jv/fw7D3TkXauqLOBWbT9adg==", "dev": true, "requires": { "ci-info": "^2.0.0", "clean-regexp": "^1.0.0", "eslint-ast-utils": "^1.1.0", - "eslint-template-visitor": "^1.0.0", + "eslint-template-visitor": "^1.1.0", "import-modules": "^2.0.0", - "lodash.camelcase": "^4.3.0", - "lodash.defaultsdeep": "^4.6.1", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.topairs": "^4.3.0", - "lodash.upperfirst": "^4.3.1", - "read-pkg-up": "^7.0.0", - "regexpp": "^3.0.0", + "lodash": "^4.17.15", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.21", "reserved-words": "^0.1.2", - "safe-regex": "^2.0.2", - "semver": "^6.3.0" + "safe-regex": "^2.1.1", + "semver": "^7.1.3" }, "dependencies": { "find-up": { @@ -6539,12 +7279,6 @@ "path-exists": "^4.0.0" } }, - "import-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.0.0.tgz", - "integrity": "sha512-iczM/v9drffdNnABOKwj0f9G3cFDon99VcG1mxeBsdqnbd+vnQ5c2uAiCHNQITqFTOPaEvwg3VjoWCur0uHLEw==", - "dev": true - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -6580,12 +7314,6 @@ "type-fest": "^0.8.1" } }, - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", - "dev": true - }, "safe-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", @@ -6596,23 +7324,17 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, "eslint-rule-docs": { - "version": "1.1.176", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.176.tgz", - "integrity": "sha512-2Aj17TDlXRa/NHZgkpZMXedLKkFjft92w9CCclRqugj0ki/wyRaGxfFrAYCdGmsRc25rwRSq4Me4jXg4utJmaw==", + "version": "1.1.187", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.187.tgz", + "integrity": "sha512-8ZNarJWjP6N9OjI/eWc/WVRKlf1vBFTFLD48emA1RBnbl13H+LsB3hC1PO805lNbnT+XIU9Sga9hSI9dZl5ICA==", "dev": true }, "eslint-scope": { @@ -6637,9 +7359,9 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -6664,13 +7386,13 @@ } }, "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" }, "dependencies": { @@ -6689,18 +7411,29 @@ "dev": true }, "espurify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.0.1.tgz", - "integrity": "sha512-7w/dUrReI/QbJFHRwfomTlkQOXaB1NuCrBRn5Y26HXn5gvh18/19AgLbayVrNxXQfkckvgrJloWyvZDuJ7dhEA==", - "dev": true + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", + "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", + "dev": true, + "requires": { + "core-js": "^2.0.0" + } }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } } }, "esrecurse": { @@ -7008,16 +7741,17 @@ "dev": true }, "fast-glob": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", - "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.0", "merge2": "^1.3.0", - "micromatch": "^4.0.2" + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" }, "dependencies": { "braces": { @@ -7039,9 +7773,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -7116,12 +7850,12 @@ "dev": true }, "fastq": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", - "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz", + "integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==", "dev": true, "requires": { - "reusify": "^1.0.0" + "reusify": "^1.0.4" } }, "figlet": { @@ -7131,9 +7865,9 @@ "dev": true }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -7263,6 +7997,12 @@ } } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -7352,9 +8092,9 @@ } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "follow-redirects": { @@ -7388,9 +8128,9 @@ }, "dependencies": { "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -8333,22 +9073,35 @@ } }, "handlebars": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.2.tgz", - "integrity": "sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { + "minimist": "^1.2.5", "neo-async": "^2.6.0", - "optimist": "^0.6.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" }, "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "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 + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true } } }, @@ -8471,9 +9224,9 @@ } }, "hasha": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.1.0.tgz", - "integrity": "sha512-OFPDWmzPN1l7atOV1TgBVmNtBxaIysToK6Ve9DK+vT6pYuklw/nPNT+HJbZi0KDcI6vWB+9tgvZ5YD7fA3CXcA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", "dev": true, "requires": { "is-stream": "^2.0.0", @@ -8485,12 +9238,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true } } }, @@ -8524,9 +9271,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "hsl-regex": { @@ -8557,9 +9304,9 @@ } }, "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "html-tags": { @@ -8711,14 +9458,14 @@ "dev": true }, "husky": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.1.tgz", - "integrity": "sha512-Qa0lRreeIf4Tl92sSs42ER6qc3hzoyQPPorzOrFWfPEVbdi6LuvJEqWKPk905fOWIR76iBpp7ECZNIwk+a8xuQ==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "requires": { - "chalk": "^3.0.0", + "chalk": "^4.0.0", "ci-info": "^2.0.0", - "compare-versions": "^3.5.1", + "compare-versions": "^3.6.0", "cosmiconfig": "^6.0.0", "find-versions": "^3.2.0", "opencollective-postinstall": "^2.0.2", @@ -8739,9 +9486,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -8948,9 +9695,9 @@ } }, "import-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-1.1.0.tgz", - "integrity": "sha1-dI23nFzEK7lwHvq0JPiU5yYA6dw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.0.0.tgz", + "integrity": "sha512-iczM/v9drffdNnABOKwj0f9G3cFDon99VcG1mxeBsdqnbd+vnQ5c2uAiCHNQITqFTOPaEvwg3VjoWCur0uHLEw==", "dev": true }, "imurmurhash": { @@ -9000,26 +9747,99 @@ "dev": true }, "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", + "chalk": "^3.0.0", "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.15", "mute-stream": "0.0.8", - "run-async": "^2.2.0", + "run-async": "^2.4.0", "rxjs": "^6.5.3", "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -9030,15 +9850,15 @@ } }, "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, "irregular-plurals": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz", - "integrity": "sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz", + "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==", "dev": true }, "is": { @@ -9047,6 +9867,16 @@ "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", "dev": true }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -9280,6 +10110,12 @@ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", "dev": true }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, "is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", @@ -9401,6 +10237,15 @@ "has": "^1.0.3" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -9449,6 +10294,15 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, "is-url": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", @@ -9530,9 +10384,9 @@ } }, "istanbul-lib-instrument": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", - "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -9568,9 +10422,9 @@ }, "dependencies": { "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -9579,14 +10433,23 @@ } }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -9614,6 +10477,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -9643,9 +10512,9 @@ "dev": true }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -9703,9 +10572,9 @@ } }, "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -9773,12 +10642,12 @@ } }, "js2xmlparser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", - "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", "dev": true, "requires": { - "xmlcreate": "^2.0.0" + "xmlcreate": "^2.0.3" } }, "jsbn": { @@ -9788,27 +10657,39 @@ "dev": true }, "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.4.tgz", + "integrity": "sha512-3G9d37VHv7MFdheviDCjUfQoIjdv4TC5zTTf5G9VODLtOnVS6La1eoYBDlbWfsRT3/Xo+j2MIqki2EV12BZfwA==", "dev": true, "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", "catharsis": "^0.8.11", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", + "js2xmlparser": "^4.0.1", "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^0.8.2", + "mkdirp": "^1.0.4", "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", + "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.9.1" + "underscore": "~1.10.2" }, "dependencies": { + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", + "dev": true + }, "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -9825,22 +10706,34 @@ } }, "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "dev": true, "requires": { "argparse": "^1.0.7", - "entities": "~1.1.1", + "entities": "~2.0.0", "linkify-it": "^2.0.0", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" } }, + "marked": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true } } @@ -10051,18 +10944,18 @@ "dev": true }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -10098,9 +10991,9 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klaw": { @@ -10514,12 +11407,6 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -10538,12 +11425,6 @@ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, "lodash.isfunction": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", @@ -10571,12 +11452,6 @@ "lodash._objecttypes": "~2.4.1" } }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, "lodash.keys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", @@ -10600,12 +11475,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, "lodash.omit": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", @@ -10624,36 +11493,18 @@ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", "dev": true }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.topairs": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz", - "integrity": "sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ=", - "dev": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, - "lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", - "dev": true - }, "lodash.values": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", @@ -10738,6 +11589,15 @@ "semver": "^5.6.0" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -10773,9 +11633,9 @@ } }, "markdown-it-anchor": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", - "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.7.tgz", + "integrity": "sha512-REFmIaSS6szaD1bye80DMbp7ePwsPNvLTR5HunsUcZ0SG0rWJQ+Pz24R4UlTKtjKBPhxo0v0tOBDYjZQQknW8Q==", "dev": true }, "marked": { @@ -10851,6 +11711,30 @@ "integrity": "sha512-aLGa6WlTuFKWvH88bqTrY5ztJMN+D0hd8UX6BYc4YSoPayppzETjZUcdVcksgaoQEMg4cZSmXPg846fTp2rjRQ==", "dev": true }, + "mem": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-6.1.0.tgz", + "integrity": "sha512-RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.0.0.tgz", + "integrity": "sha512-PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ==", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", @@ -11140,12 +12024,20 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } } }, "mkdirp2": { @@ -11189,19 +12081,6 @@ "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", "dev": true }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - } - }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -11247,9 +12126,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -11291,15 +12170,14 @@ "dev": true }, "nock": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/nock/-/nock-11.7.2.tgz", - "integrity": "sha512-7swr5bL1xBZ5FctyubjxEVySXOSebyqcL7Vy1bx1nS9IUqQWj81cmKjVKJLr8fHhtzI1MV8nyCdENA/cGcY1+Q==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-12.0.3.tgz", + "integrity": "sha512-QNb/j8kbFnKCiyqi9C5DD0jH/FubFGj5rt9NQFONXwQm3IPB0CULECg/eS3AU1KgZb/6SwUa4/DTRKhVxkGABw==", "dev": true, "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.13", - "mkdirp": "^0.5.0", "propagate": "^2.0.0" }, "dependencies": { @@ -11464,9 +12342,9 @@ "dev": true }, "nyc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", - "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -11484,10 +12362,9 @@ "istanbul-lib-processinfo": "^2.0.2", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "js-yaml": "^3.13.1", + "istanbul-reports": "^3.0.2", "make-dir": "^3.0.0", - "node-preload": "^0.2.0", + "node-preload": "^0.2.1", "p-map": "^3.0.0", "process-on-spawn": "^1.0.0", "resolve-from": "^5.0.0", @@ -11495,18 +12372,17 @@ "signal-exit": "^3.0.2", "spawn-wrap": "^2.0.0", "test-exclude": "^6.0.0", - "uuid": "^3.3.3", "yargs": "^15.0.2" }, "dependencies": { "find-cache-dir": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", - "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.0", + "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, @@ -11544,9 +12420,9 @@ } }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -11561,6 +12437,15 @@ "p-limit": "^2.2.0" } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -11652,10 +12537,41 @@ "dev": true }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + } + } }, "object-keys": { "version": "1.1.1", @@ -11826,9 +12742,9 @@ "dev": true }, "ora": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz", - "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz", + "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==", "dev": true, "requires": { "chalk": "^3.0.0", @@ -11926,6 +12842,12 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-event": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.1.0.tgz", @@ -11960,14 +12882,20 @@ } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" } }, + "p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true + }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -12158,9 +13086,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "source-map": { @@ -12329,9 +13257,9 @@ "dev": true }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -12368,28 +13296,82 @@ "find-up": "^3.0.0" } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "plur": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/plur/-/plur-3.1.1.tgz", - "integrity": "sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w==", + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { - "irregular-plurals": "^2.0.0" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, "posix-character-classes": { @@ -12976,9 +13958,9 @@ "dev": true }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", "dev": true }, "prettier-linter-helpers": { @@ -12991,9 +13973,9 @@ } }, "pretty-ms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.1.0.tgz", - "integrity": "sha512-4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-6.0.1.tgz", + "integrity": "sha512-ke4njoVmlotekHlHyCZ3wI/c5AMT8peuHs8rKJqekj/oR5G8lND2dVpicFlUz5cbZgE290vvkMuDwfj/OcW1kw==", "dev": true, "requires": { "parse-ms": "^2.1.0" @@ -13060,13 +14042,13 @@ "dev": true }, "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "ipaddr.js": "1.9.1" } }, "prr": { @@ -13117,6 +14099,15 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "purgecss": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz", @@ -13229,9 +14220,9 @@ "dev": true }, "qs": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==", + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", "dev": true }, "querystring": { @@ -13270,9 +14261,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -13344,9 +14335,9 @@ }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -13623,12 +14614,13 @@ "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" } }, "regex-not": { @@ -13642,9 +14634,9 @@ } }, "regexp-tree": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.17.tgz", - "integrity": "sha512-UnOJjFS/EPZmfISmYx+0PcDtPzyFKTe+cZTS5sM5hifnRUDRxoB1j4DAmGwqzxjwBGlwOkGfb2cDGHtjuEwqoA==", + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.21.tgz", + "integrity": "sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==", "dev": true }, "regexp.prototype.flags": { @@ -13658,9 +14650,9 @@ } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "regexpu-core": { @@ -13801,6 +14793,12 @@ "psl": "^1.1.24", "punycode": "^1.4.1" } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, @@ -13836,12 +14834,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-precompiled": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", - "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -13943,9 +14935,9 @@ "dev": true }, "rimraf": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.1.tgz", - "integrity": "sha512-IQ4ikL8SjBiEDZfk+DFVwqRK8md24RWMEJkdSlgNLkyyAImcjf8SWvU1qFMDOb4igBClbTQ/ugPqXcRwdFTxZw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -13962,21 +14954,20 @@ } }, "rollup": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.30.1.tgz", - "integrity": "sha512-Uus8mwQXwaO+ZVoNwBcXKhT0AvycFCBW/W8VZtkpVGsotRllWk9oldfCjqWmTnFRI0y7x6BnEqSqc65N+/YdBw==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.7.2.tgz", + "integrity": "sha512-SdtTZVMMVSPe7SNv4exUyPXARe5v/p3TeeG3LRA5WabLPJt4Usi3wVrvVlyAUTG40JJmqS6zbIHt2vWTss2prw==", "dev": true, "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "fsevents": "~2.1.2" }, "dependencies": { - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "dev": true + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true } } }, @@ -14005,9 +14996,9 @@ } }, "rollup-plugin-filesize": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-6.2.1.tgz", - "integrity": "sha512-JQ2+NMoka81lCR2caGWyngqMKpvJCl7EkFYU7A+T0dA7U1Aml13FW5Ky0aiZIeU3/13cjsKQLRr35SQVmk6i/A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-7.0.0.tgz", + "integrity": "sha512-uRlEtW0OdAsz9/LPzXklSG4ouPgvK06xT8J31EhlwycFOQD8c0RVJnJk80RygTYd0timVlFenWlJLMy5mFPQsA==", "dev": true, "requires": { "boxen": "^4.1.0", @@ -14019,28 +15010,6 @@ "terser": "^4.1.3" }, "dependencies": { - "boxen": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.1.0.tgz", - "integrity": "sha512-Iwq1qOkmEsl0EVABa864Bbj3HCL4186DRZgFW/NrFs5y5GMM3ljsxzMLgOHdWISDRvcM8beh8q4tTNzXz+mSKg==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^2.4.2", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.5.2", - "widest-line": "^3.1.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "filesize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz", @@ -14053,31 +15022,16 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "term-size": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.1.0.tgz", - "integrity": "sha512-I42EWhJ+2aeNQawGx1VtpO0DFI9YcfuvAMNIdKyf/6sRbHJ4P+ZQ/zIT87tE+ln1ymAGcCJds4dolfSAS0AcNg==", - "dev": true - }, "terser": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.9.tgz", - "integrity": "sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA==", + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", + "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -14138,9 +15092,9 @@ } }, "rollup-plugin-terser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.2.0.tgz", - "integrity": "sha512-jQI+nYhtDBc9HFRBz8iGttQg7li9klmzR62RG2W2nN6hJ/FI2K2ItYQ7kJ7/zn+vs+BP1AEccmVRjRN989I+Nw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz", + "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", @@ -14157,9 +15111,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz", + "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==", "dev": true, "requires": { "commander": "^2.20.0", @@ -14229,9 +15183,9 @@ "dev": true }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", "dev": true, "requires": { "is-promise": "^2.1.0" @@ -14244,9 +15198,9 @@ "dev": true }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -14405,9 +15359,9 @@ "dev": true }, "set-cookie-parser": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.3.tgz", - "integrity": "sha512-+Eovq+TUyhqwUe+Ac9EaPlfEZOcQyy7uUPhcbEXEIsH73x/gOU56RO8wZDZW98fu3vSxhcPjuKDo1mIrmM7ixw==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.5.tgz", + "integrity": "sha512-LkSDwseogN5l6TerqGzFzL9mUDTxSq3hX2b5AaynjC1nSCNWiDypEgHatfc0v6KcnfgV3/6F6h4ABh6igjzlQQ==", "dev": true }, "set-value": { @@ -14550,9 +15504,9 @@ } }, "slugify": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.6.tgz", - "integrity": "sha512-wA9XS475ZmGNlEnYYLPReSfuz/c3VQsEMoU43mi6OnKMCdbnFXd4/Yg7J0lBv8jkPolacMpOrWEaoYxuE1+hoQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz", + "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ==", "dev": true }, "snapdragon": { @@ -14699,15 +15653,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -14772,9 +15717,9 @@ }, "dependencies": { "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -14808,9 +15753,9 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { @@ -15052,21 +15997,36 @@ "dev": true }, "string-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", - "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^5.2.0" + "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } } } }, @@ -15637,20 +16597,29 @@ } }, "supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", "dev": true, "requires": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -15759,6 +16728,12 @@ "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", "dev": true }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -15837,12 +16812,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "the-argv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/the-argv/-/the-argv-1.0.0.tgz", - "integrity": "sha1-AIRwUAVzDdhNt1UlPJMa45jblSI=", - "dev": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -15914,6 +16883,16 @@ "os-tmpdir": "~1.0.2" } }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -16033,11 +17012,20 @@ "dev": true }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -16075,9 +17063,9 @@ } }, "type-fest": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", - "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "type-is": { @@ -16105,6 +17093,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "dev": true + }, "typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", @@ -16137,6 +17131,12 @@ } } }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, "uncss": { "version": "0.17.2", "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.2.tgz", @@ -16174,9 +17174,9 @@ } }, "underscore": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", - "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -16321,14 +17321,14 @@ "dev": true }, "update-notifier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.0.0.tgz", - "integrity": "sha512-p9zf71hWt5GVXM4iEBujpUgx8mK9AWiCCapEJm/O1z5ntCim83Z1ATqzZFBHFYqx03laMqv8LiDgs/7ikXjf/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", "dev": true, "requires": { "boxen": "^4.2.0", "chalk": "^3.0.0", - "configstore": "^5.0.0", + "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", @@ -16336,6 +17336,7 @@ "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", + "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, @@ -16391,9 +17392,9 @@ "dev": true }, "is-installed-globally": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { "global-dirs": "^2.0.1", @@ -16544,9 +17545,9 @@ "dev": true }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" }, "v8-compile-cache": { "version": "2.1.0", @@ -16826,9 +17827,9 @@ } }, "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -16837,62 +17838,10 @@ "typedarray-to-buffer": "^3.1.5" } }, - "write-json-file": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", - "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", - "dev": true, - "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "write-pkg": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", - "dev": true, - "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" - } - }, "ws": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", - "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==" }, "xdg-basedir": { "version": "3.0.0", @@ -16913,49 +17862,60 @@ "dev": true }, "xmlcreate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", - "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", "dev": true }, "xo": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/xo/-/xo-0.25.3.tgz", - "integrity": "sha512-125on+kPp6oi+EfoAajJ58cGLxIurZqWrehhdqoApWXpano9GL5D0ElcSlbG7UeYAfmNSwKJGTxHoLsHLhrZqg==", + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/xo/-/xo-0.29.1.tgz", + "integrity": "sha512-ohlXtUatjHi4f7dRF+c/nv08zyB3+iROxwfX3xEIw2J5Tk5j4I/bPqx4tUzESVHFCh5tQbu528ZEPJmM5P3c/g==", "dev": true, "requires": { + "@typescript-eslint/eslint-plugin": "^2.27.0", + "@typescript-eslint/parser": "^2.27.0", "arrify": "^2.0.1", + "cosmiconfig": "^6.0.0", "debug": "^4.1.0", - "eslint": "^6.4.0", - "eslint-config-prettier": "^6.3.0", - "eslint-config-xo": "^0.27.1", - "eslint-formatter-pretty": "^2.0.0", - "eslint-plugin-ava": "^9.0.0", - "eslint-plugin-eslint-comments": "^3.0.1", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-no-use-extend-native": "^0.4.0", - "eslint-plugin-node": "^10.0.0", - "eslint-plugin-prettier": "^3.1.1", - "eslint-plugin-promise": "^4.0.0", - "eslint-plugin-unicorn": "^12.0.0", - "find-cache-dir": "^3.0.0", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.0", + "eslint-config-xo": "^0.29.0", + "eslint-config-xo-typescript": "^0.27.0", + "eslint-formatter-pretty": "^3.0.1", + "eslint-import-resolver-webpack": "^0.12.1", + "eslint-plugin-ava": "^10.0.1", + "eslint-plugin-eslint-comments": "^3.1.2", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-no-use-extend-native": "^0.4.1", + "eslint-plugin-node": "^11.0.0", + "eslint-plugin-prettier": "^3.1.2", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-unicorn": "^18.0.1", + "find-cache-dir": "^3.3.1", + "find-up": "^4.1.0", + "fs-extra": "^9.0.0", "get-stdin": "^7.0.0", "globby": "^9.0.0", "has-flag": "^4.0.0", - "lodash.isequal": "^4.5.0", - "lodash.mergewith": "^4.6.2", + "imurmurhash": "^0.1.4", + "is-path-inside": "^3.0.2", + "json-stable-stringify-without-jsonify": "^1.0.1", + "json5": "^2.1.1", + "lodash": "^4.17.15", "meow": "^5.0.0", - "multimatch": "^4.0.0", + "micromatch": "^4.0.2", "open-editor": "^2.0.1", + "p-reduce": "^2.1.0", "path-exists": "^4.0.0", - "pkg-conf": "^3.1.0", - "prettier": "^1.15.2", + "prettier": "^2.0.4", "resolve-cwd": "^3.0.0", "resolve-from": "^5.0.0", - "semver": "^6.3.0", + "semver": "^7.2.1", "slash": "^3.0.0", - "update-notifier": "^3.0.1", - "xo-init": "^0.7.0" + "to-absolute-glob": "^2.0.2", + "typescript": "^3.0.0", + "update-notifier": "^4.0.0" }, "dependencies": { "@nodelib/fs.stat": { @@ -16973,59 +17933,6 @@ "array-uniq": "^1.0.1" } }, - "boxen": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", - "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^2.4.2", - "cli-boxes": "^2.2.0", - "string-width": "^3.0.0", - "term-size": "^1.2.0", - "type-fest": "^0.3.0", - "widest-line": "^2.0.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -17044,21 +17951,6 @@ "path-type": "^3.0.0" } }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -17071,16 +17963,48 @@ "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" + }, + "dependencies": { + "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" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" } }, "find-cache-dir": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", - "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.0", + "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, @@ -17094,6 +18018,18 @@ "path-exists": "^4.0.0" } }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", @@ -17130,17 +18066,21 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "is-npm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", - "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } }, "locate-path": { "version": "5.0.0", @@ -17152,12 +18092,41 @@ } }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + } } }, "ms": { @@ -17208,9 +18177,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "slash": { @@ -17219,195 +18188,20 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - }, - "update-notifier": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", - "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", - "dev": true, - "requires": { - "boxen": "^3.0.0", - "chalk": "^2.0.1", - "configstore": "^4.0.0", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.1.0", - "is-npm": "^3.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - } - } - }, - "xo-init": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/xo-init/-/xo-init-0.7.0.tgz", - "integrity": "sha512-mrrCKMu52vz0u2tiOl8DoG709pBtnSp58bb4/j58a4jeXjrb1gV7dxfOBjOlXitYtfW2QnlxxxfAojoFcpynDg==", - "dev": true, - "requires": { - "arrify": "^1.0.0", - "execa": "^0.9.0", - "has-yarn": "^1.0.0", - "minimist": "^1.1.3", - "path-exists": "^3.0.0", - "read-pkg-up": "^3.0.0", - "the-argv": "^1.0.0", - "write-pkg": "^3.1.0" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "execa": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", - "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", - "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" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "has-yarn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", - "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "is-number": "^7.0.0" } }, - "p-try": { + "universalify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "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": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } } } }, @@ -17430,12 +18224,29 @@ "dev": true }, "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", + "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", "dev": true, "requires": { - "@babel/runtime": "^7.6.3" + "@babel/runtime": "^7.9.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + } } }, "yargonaut": { @@ -17492,9 +18303,9 @@ } }, "yargs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", - "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", "dev": true, "requires": { "cliui": "^6.0.0", @@ -17507,15 +18318,9 @@ "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^16.1.0" + "yargs-parser": "^18.1.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -17526,12 +18331,6 @@ "path-exists": "^4.0.0" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -17555,33 +18354,13 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } } } }, "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index b0aaf3f..ee18aff 100644 --- a/package.json +++ b/package.json @@ -33,56 +33,59 @@ "litecoin", "zcash" ], - "authors": ["@trevorjtclarke", "Taylor Dawson"], + "authors": [ + "@trevorjtclarke", + "Taylor Dawson" + ], "license": "Apache-2.0", "bugs": { "url": "https://github.com/web3data/web3data-js/issues" }, "homepage": "https://github.com/web3data/web3data-js#readme", "devDependencies": { - "@ava/babel": "^1.0.0", + "@ava/babel": "^1.0.1", "@ava/babel-preset-stage-4": "^4.0.0", "@babel/cli": "^7.8.4", - "@babel/core": "^7.8.4", - "@babel/plugin-transform-runtime": "^7.8.3", - "@babel/preset-env": "^7.8.4", - "@babel/register": "^7.8.3", - "@pollyjs/adapter-node-http": "^4.0.3", - "@pollyjs/core": "^4.0.2", - "@pollyjs/persister-fs": "^4.0.2", - "ava": "^3.1.0", + "@babel/core": "^7.9.0", + "@babel/plugin-transform-runtime": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/register": "^7.9.0", + "@pollyjs/adapter-node-http": "^4.1.0", + "@pollyjs/core": "^4.1.0", + "@pollyjs/persister-fs": "^4.1.0", + "ava": "^3.7.1", "capture-console": "^1.0.1", - "cross-env": "^7.0.0", + "cross-env": "^7.0.2", "docsify-cli": "^4.4.0", "dotenv": "^8.2.0", "doxdox": "^3.0.0", "doxdox-parser-dox": "github:taylorjdawson/doxdox-parser-dox", - "doxdox-plugin-markdown": "github:taylorjdawson/doxdox-plugin-markdown", - "eslint-plugin-jsdoc": "^21.0.0", + "doxdox-plugin-markdown": "taylorjdawson/doxdox-plugin-markdown", + "eslint-plugin-jsdoc": "^24.0.0", "get-port": "^5.1.1", - "husky": "^4.2.1", + "husky": "^4.2.5", "jsdoc-to-markdown": "^5.0.3", "lodash": "^4.17.15", - "nyc": "^15.0.0", + "nyc": "^15.0.1", "parcel": "^1.12.4", - "prettier": "^1.19.1", - "rimraf": "^3.0.1", - "rollup": "^1.30.1", + "prettier": "^2.0.5", + "rimraf": "^3.0.2", + "rollup": "^2.7.2", "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-filesize": "^6.2.1", + "rollup-plugin-filesize": "^7.0.0", "rollup-plugin-json": "^4.0.0", "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-terser": "^5.2.0", + "rollup-plugin-terser": "^5.3.0", "superstatic": "^6.0.4", - "xo": "^0.25.3" + "xo": "^0.29.1" }, "dependencies": { "axios": "^0.19.2", "isomorphic-ws": "^4.0.1", - "uuid": "^3.4.0", - "ws": "^7.2.1" + "uuid": "^7.0.3", + "ws": "^7.2.3" }, "publishConfig": { "access": "public" diff --git a/src/bch.js b/src/bch.js index 048d5dd..2905d6a 100644 --- a/src/bch.js +++ b/src/bch.js @@ -17,8 +17,8 @@ class Bch { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/block.js b/src/block.js index 742a901..ac9fcf7 100644 --- a/src/block.js +++ b/src/block.js @@ -57,20 +57,20 @@ class Block { } /** - * Retrieves the latest block number + * Retrieves the latest block number. * - * @returns {String} block Number + * @returns {string} Block Number. * @example */ getBlockNumber() { - return this.web3data.block.getBlock('latest').then(block => { + return this.web3data.block.getBlock('latest').then((block) => { throwIf(block | !block.number, 'Failed to retrieve block number.') - return parseInt(block.number, 10) + return Number.parseInt(block.number, 10) }) } /** - * Retrieves the block transaction count for a specific block based on hash or number + * Retrieves the block transaction count for a specific block based on hash or number. * * @param id - The number or hash of the block for which to retrieve block information. * @param [filterOptions] - @@ -78,13 +78,15 @@ class Block { * @example */ getBlockTransactionCount(id) { - return this.web3data.block.getBlock(id).then(block => { + return this.web3data.block.getBlock(id).then((block) => { throwIf( !block || (!block.predictions && !block.numTransactions), 'Failed to retrieve block transaction count.' ) // If 'predictions' field exists then it's a future block thus has no txns - return block.predictions ? null : parseInt(block.numTransactions, 10) + return block.predictions + ? null + : Number.parseInt(block.numTransactions, 10) }) } @@ -110,14 +112,14 @@ class Block { * Retrieves a single transaction for a block specified by its id (number or hash) and transaction index. * * @param id - The number or hash of the block for which to retrieve block information. - * @param index - The number of the transaction block index + * @param index - The number of the transaction block index. * @param [filterOptions] - * @returns * @example */ getTransactionFromBlock(id, index) { throwIf(is.undefined(id), NO_BLOCK_ID) - return this.web3data.block.getTransactions(id).then(txns => { + return this.web3data.block.getTransactions(id).then((txns) => { throwIf(!txns, 'Failed to retrieve transaction.') // Check that 'index' is within valid range @@ -128,7 +130,7 @@ class Block { /** * Retrieves the uncle specified by its id (number or hash). * - * @param id - The number or hash of the uncle + * @param id - The number or hash of the uncle. * @param index - The index of the uncle, in most cases this is 0-2. * @param [filterOptions] - * @returns @@ -141,7 +143,7 @@ class Block { .getBlock(id, { validationMethod: 'full' }) - .then(block => { + .then((block) => { throwIf( !block || (!block.predictions && !block.numTransactions && !block.validation), @@ -161,7 +163,7 @@ class Block { } /** - * Retrieves the block token transfers executed at a specific block + * Retrieves the block token transfers executed at a specific block. * * @param id - The number or hash of the block for which to retrieve block information. * @param [filterOptions] - @@ -179,7 +181,7 @@ class Block { } /** - * Retrieves the block logs executed at a specific block + * Retrieves the block logs executed at a specific block. * * @param id - The number or hash of the block for which to retrieve block information. * @param [filterOptions] - @@ -197,7 +199,7 @@ class Block { } /** - * Retrieves the block functions/internalMessages executed at a specific block + * Retrieves the block functions/internalMessages executed at a specific block. * * @param id - The number or hash of the block for which to retrieve block information. * @param [filterOptions] - diff --git a/src/bsv.js b/src/bsv.js index 4c99877..270da1f 100644 --- a/src/bsv.js +++ b/src/bsv.js @@ -17,8 +17,8 @@ class Bsv { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/btc.js b/src/btc.js index 492dce9..c48d959 100644 --- a/src/btc.js +++ b/src/btc.js @@ -17,8 +17,8 @@ class Btc { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/contract.js b/src/contract.js index 6de6384..9d50f5b 100644 --- a/src/contract.js +++ b/src/contract.js @@ -85,7 +85,7 @@ class Contract { * @example const code = await web3data.contract.getCode('0x06012c8cf97bead5deae237070f9587f8e7a266d') */ getCode(hash) { - return this.getDetails(hash).then(details => details.bytecode || '0x') + return this.getDetails(hash).then((details) => details.bytecode || '0x') } } diff --git a/src/eth.js b/src/eth.js index 55c1196..074fff5 100644 --- a/src/eth.js +++ b/src/eth.js @@ -23,8 +23,8 @@ class Eth { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/ltc.js b/src/ltc.js index b3d30ca..086c3bc 100644 --- a/src/ltc.js +++ b/src/ltc.js @@ -17,8 +17,8 @@ class Ltc { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/market.js b/src/market.js index c40374e..0bf3793 100644 --- a/src/market.js +++ b/src/market.js @@ -30,7 +30,7 @@ class Market { async getEtherPrice() { return get(this.web3data, { endpoint: ENDPOINT + '/prices/eth/latest' - }).then(response => response.payload.eth_usd.price, onError) + }).then((response) => response.payload.eth_usd.price, onError) } /** @@ -71,7 +71,7 @@ class Market { features = Array.isArray(features) ? features : [features] // Iterate through each feature and if all is valid return array of promises - features = features.map(feature => { + features = features.map((feature) => { // Check each feature that it is valid throwIf(is.undefined(feature) || !FEATURES.includes(feature), NO_FEATURE) @@ -98,13 +98,13 @@ class Market { .then(onFulfilled, onError) // Return an object with 'feature' as the key and response the value // .split('/')[0] removes the extra endpoint added above in switch - .then(response => ({[feature.split('/')[0]]: response})) + .then((response) => ({[feature.split('/')[0]]: response})) ) }) // Returns array of promises that once resolved are merged into a single object - return Promise.all([...features]).then(data => - data.reduce((accumObj, curObj) => ({...accumObj, ...curObj})) + return Promise.all([...features]).then((data) => + data.reduce((accumObject, curObject) => ({...accumObject, ...curObject})) ) } @@ -146,7 +146,7 @@ class Market { getOrders(pair, exchange, filterOptions = {}) { throwIf(is.undefined(pair), NO_MARKET_PAIR) exchange = Array.isArray(exchange) ? exchange : [exchange] - exchange.forEach(exchange => + exchange.forEach((exchange) => throwIf(is.undefined(exchange), 'No exchange specified') ) filterOptions.exchange = exchange diff --git a/src/transaction.js b/src/transaction.js index 498d98e..4ccb994 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -85,7 +85,7 @@ class Transaction { */ getPendingTransactions() { return this.getTransactions({status: 'pending'}).then( - pendingTransactions => { + (pendingTransactions) => { throwIf( is.undefined(pendingTransactions) || is.null(pendingTransactions), 'Failed to retrieve pending transactions.' @@ -135,7 +135,7 @@ class Transaction { * const gasPrice = await web3data.transaction.getGasPrice() */ getGasPrice() { - return this.getGasPrediction().then(gasPrediction => { + return this.getGasPrediction().then((gasPrediction) => { throwIf( !gasPrediction.average || !gasPrediction.average.gasPrice, 'Failed to retrieve gas price.' diff --git a/src/utils.js b/src/utils.js index 7cf99ca..bdbcaa8 100644 --- a/src/utils.js +++ b/src/utils.js @@ -21,7 +21,7 @@ const get = ( endpoint = '', subendpoint = '', hash = '', - pathParam = '', + pathParam: pathParameter = '', filterOptions = {} } ) => { @@ -30,14 +30,14 @@ const get = ( : '' hash = hash ? '/' + hash : '' - pathParam = pathParam ? '/' + pathParam : '' + pathParameter = pathParameter ? '/' + pathParameter : '' subendpoint = subendpoint ? '/' + subendpoint : '' return web3data.rawQuery( - `${endpoint}${hash || pathParam}${subendpoint}${filters}` + `${endpoint}${hash || pathParameter}${subendpoint}${filters}` ) } -const buildFilterUrl = filterOptions => { +const buildFilterUrl = (filterOptions) => { let filterUrl = '' for (const filter in filterOptions) { if ({}.hasOwnProperty.call(filterOptions, filter)) { @@ -52,7 +52,7 @@ const throwIf = (bool, message) => { if (bool) throw new Error(message) } -const throwNow = message => throwIf(true, message) +const throwNow = (message) => throwIf(true, message) /** * Handler for all request responses. @@ -62,7 +62,7 @@ const throwNow = message => throwIf(true, message) * @private * @example */ -const onFulfilled = function(response) { +const onFulfilled = function (response) { throwIf(response.error, response.message) return this && this.formatter ? this.formatter(response.payload) @@ -77,18 +77,18 @@ const rejectPromiseIf = (condition, message) => { } const is = () => {} -is.string = value => typeof value === 'string' -is.bool = value => typeof value === 'boolean' -is.emptyString = value => is.string(value) && value.length === 0 -is.emptyObject = object => Object.keys(object).length === 0 +is.string = (value) => typeof value === 'string' +is.bool = (value) => typeof value === 'boolean' +is.emptyString = (value) => is.string(value) && value.length === 0 +is.emptyObject = (object) => Object.keys(object).length === 0 is.inObject = (object, property) => Object.prototype.hasOwnProperty.call(object, property) -is.undefined = value => typeof value === 'undefined' -is.null = value => value === null -is.notHash = hash => is.undefined(hash) || is.emptyString(hash) -is.notUndefined = value => !is.undefined(value) -is.nonEmptyObject = object => !is.emptyObject(object) -is.nonEmptyString = value => !is.emptyString(value) +is.undefined = (value) => typeof value === 'undefined' +is.null = (value) => value === null +is.notHash = (hash) => is.undefined(hash) || is.emptyString(hash) +is.notUndefined = (value) => !is.undefined(value) +is.nonEmptyObject = (object) => !is.emptyObject(object) +is.nonEmptyString = (value) => !is.emptyString(value) is.notInObject = (object, property) => !is.inObject(object, property) /** @@ -98,20 +98,21 @@ is.notInObject = (object, property) => !is.inObject(object, property) * @example * @private */ -const uuid = data => +const uuid = (data) => _uuid(JSON.stringify(data), 'ccfeca02-f0e9-4433-a740-b830cceb3d2d') /** * Returns an array of methods defined on the object. * + * @param object * @param obj - The object from which get methods. * @returns An array of method names. * @private * @example */ -const getMethods = obj => - Object.getOwnPropertyNames(obj).filter( - item => typeof obj[item] === 'function' && item !== 'constructor' +const getMethods = (object) => + Object.getOwnPropertyNames(object).filter( + (item) => typeof object[item] === 'function' && item !== 'constructor' ) /** @@ -122,7 +123,7 @@ const getMethods = obj => * @private * @example */ -const ethFactory = function(web3data) { +const ethFactory = function (web3data) { const methods = {} for (const method in ETH_METHODS) { @@ -148,9 +149,9 @@ correct namespacing. * @example */ const methodFactory = (_this, includeMethods) => { - Object.keys(includeMethods).forEach(namespace => { + Object.keys(includeMethods).forEach((namespace) => { getMethods(Object.getPrototypeOf(_this.web3data[namespace])).forEach( - method => { + (method) => { if (includeMethods[namespace].includes(method)) { _this[namespace] = _this[namespace] ? _this[namespace] : {} _this[namespace][method] = _this.web3data[namespace][method].bind( @@ -172,7 +173,7 @@ const methodFactory = (_this, includeMethods) => { * @example * */ -const formatJsonRpc = options => { +const formatJsonRpc = (options) => { if (!options) return '' if (options.params) { options.params = Array.isArray(options.params) @@ -192,7 +193,7 @@ const defaultFormatter = (response, field) => { return response && response[field] ? response[field] : response } -const recordsFormatter = response => defaultFormatter(response, 'records') +const recordsFormatter = (response) => defaultFormatter(response, 'records') module.exports = { buildFilterUrl, diff --git a/src/web3data.js b/src/web3data.js index 0e5df14..ce80308 100644 --- a/src/web3data.js +++ b/src/web3data.js @@ -64,7 +64,10 @@ class Web3DataFactory { websocketUrl: options.websocketUrl ? options.websocketUrl : null } - this.baseUrl = options.baseUrl ? options.baseUrl : DEFAULT_BASE_URL + this.baseUrl = options.baseUrl || DEFAULT_BASE_URL + this.rpcUrl = + options.rpcUrl || + `${DEFAULT_RPC_URL}?${API_KEY_HEADER}=${this.apiKey}&${BLOCKCHAIN_ID_HEADER}=${this.blockchainId}` /* Web3Data composite modules */ this.address = new Address(this) @@ -90,30 +93,27 @@ http request to the Amberdata API endpoint. .get(this.baseUrl + url, { headers: this.headers }) - .then(r => r.data) + .then((r) => r.data) } /** * Method used to interact with web3api json rpc endpoints. * * @param method - The json rpc method to call. + * @param parameters * @param params - The parameters to the json rpc call. * @returns Returns the json rpc result. * @example */ - rpc(method, params = []) { + rpc(method, parameters = []) { throwIf(!method, ERROR_RPC_NO_METHOD) return axios - .post( - `${DEFAULT_RPC_URL}?${API_KEY_HEADER}=${this.apiKey}&${BLOCKCHAIN_ID_HEADER}=${this.blockchainId}`, - formatJsonRpc({method, params}), - { - headers: this.headers - } - ) + .post(this.rpcUrl, formatJsonRpc({method, params: parameters}), { + headers: this.headers + }) .then( - response => response.data, - response => response.response.data + (response) => response.data, + (response) => response.response.data ) } } diff --git a/src/websocket.js b/src/websocket.js index d3e7635..32a925e 100644 --- a/src/websocket.js +++ b/src/websocket.js @@ -10,7 +10,7 @@ const {is, uuid} = require('./utils') * @private * @example */ -const formatJsonRpc = options => { +const formatJsonRpc = (options) => { if (!options) return '' if (options.params) { options.params = Array.isArray(options.params) @@ -40,7 +40,7 @@ const RESPONSE_TYPE = { * @private * @example */ -const responseType = message => { +const responseType = (message) => { if (message.params) { return RESPONSE_TYPE.DATA } @@ -97,8 +97,6 @@ class WebSocketClient { // Keeps track of last data received by subscription key this.latestState = {} - - return this } /** @@ -111,16 +109,16 @@ class WebSocketClient { // Check if connected already, if so skip if (this.socket && this.socket.readyState === 1) return - const apiKeyParam = this.apiKey ? `?x-api-key=${this.apiKey}` : '' + const apiKeyParameter = this.apiKey ? `?x-api-key=${this.apiKey}` : '' const blockchainId = this.blockchainId ? `&x-amberdata-blockchain-id=${this.blockchainId}` : '' this.socket = new WebSocket( - `${this.baseWsUrl}${apiKeyParam}${blockchainId}` + `${this.baseWsUrl}${apiKeyParameter}${blockchainId}` ) // Initialize connection attempt - this.socket.addEventListener('open', result => { + this.socket.addEventListener('open', (result) => { console.info('websocket client connection opened') this.connected = true @@ -150,7 +148,7 @@ class WebSocketClient { }, NO_DATA_TIMEOUT) }) - this.socket.addEventListener('error', err => { + this.socket.addEventListener('error', (err) => { if (callBack && err) { callBack('connection error occurred', err) } else { @@ -160,7 +158,7 @@ class WebSocketClient { this._reconnect() }) - this.socket.addEventListener('close', data => { + this.socket.addEventListener('close', (data) => { console.info('Websocket client connection closed - code', data.code) this._reconnect() }) @@ -223,7 +221,7 @@ class WebSocketClient { * @example */ once({eventName, filters}, callback) { - this.on({eventName, filters}, data => { + this.on({eventName, filters}, (data) => { this.off({eventName, filters}, () => {}) if (callback) callback(data) @@ -306,7 +304,7 @@ and has at least 1 successful subscription. * @example */ _listen() { - this.socket.addEventListener('message', message => { + this.socket.addEventListener('message', (message) => { let data try { data = JSON.parse(message.data) @@ -359,7 +357,7 @@ given subscription Id. _dataHandler(data) { this.dataReceived = true - const res = + const result = data && data.params && data.params.result ? data.params.result : {} const subId = data && data.params && data.params.subscription @@ -373,10 +371,10 @@ given subscription Id. if (this.registry[id].isSubscribed) { // Fire individual methods if they exist if (this.registry[id] && this.registry[id].callback) - this.registry[id].callback(res) + this.registry[id].callback(result) // Store latest state for easy retrieval later - if (is.notUndefined(this.latestState[id])) this.latestState[id] = res + if (is.notUndefined(this.latestState[id])) this.latestState[id] = result } } @@ -389,7 +387,6 @@ given subscription Id. */ _unsubHandler(data) { const id = data && data.id ? data.id : '' - // Console.log(data, id, this.registry[id]) const {eventName} = this.registry[id].args if (data.result) { this.registry[id].unsubCallback( @@ -412,9 +409,12 @@ given subscription Id. * @example */ _subscribe(eventName, filters) { - const params = is.notUndefined(filters) ? [filters] : [] + const parameters = is.notUndefined(filters) ? [filters] : [] const id = uuid({eventName, filters}) - const jsonRpcMessage = formatJsonRpc({id, params: [eventName, ...params]}) + const jsonRpcMessage = formatJsonRpc({ + id, + params: [eventName, ...parameters] + }) this.socket.send(jsonRpcMessage) } diff --git a/src/xlm.js b/src/xlm.js index 68c86a8..1774942 100644 --- a/src/xlm.js +++ b/src/xlm.js @@ -17,8 +17,8 @@ class Xlm { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } } diff --git a/src/zec.js b/src/zec.js index 8a191bc..34b4a15 100644 --- a/src/zec.js +++ b/src/zec.js @@ -17,8 +17,8 @@ class Zec { } /* See Web3Data class for details on rpc method */ - rpc(method, params) { - return this.web3data.rpc(method, params) + rpc(method, parameters) { + return this.web3data.rpc(method, parameters) } }