diff --git a/Agent/Agent.csproj b/Agent/Agent.csproj
index e6d7c4cd..1e47a269 100644
--- a/Agent/Agent.csproj
+++ b/Agent/Agent.csproj
@@ -23,16 +23,16 @@
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/Desktop.Core/Desktop.Core.csproj b/Desktop.Core/Desktop.Core.csproj
index ff33f1d6..909df0cc 100644
--- a/Desktop.Core/Desktop.Core.csproj
+++ b/Desktop.Core/Desktop.Core.csproj
@@ -40,8 +40,8 @@
-
-
+
+
diff --git a/Desktop.Win/Desktop.Win.csproj b/Desktop.Win/Desktop.Win.csproj
index 2a135cb8..5f723e92 100644
--- a/Desktop.Win/Desktop.Win.csproj
+++ b/Desktop.Win/Desktop.Win.csproj
@@ -39,7 +39,7 @@
-
+
diff --git a/Desktop.XPlat/Desktop.XPlat.csproj b/Desktop.XPlat/Desktop.XPlat.csproj
index eafd9e7f..6a09977f 100644
--- a/Desktop.XPlat/Desktop.XPlat.csproj
+++ b/Desktop.XPlat/Desktop.XPlat.csproj
@@ -52,9 +52,9 @@
-
-
-
+
+
+
diff --git a/Server/Server.csproj b/Server/Server.csproj
index 86ffecb5..7288dc1f 100644
--- a/Server/Server.csproj
+++ b/Server/Server.csproj
@@ -23,29 +23,29 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
+
+
+
+
+
diff --git a/Server/libman.json b/Server/libman.json
index a52cd5c0..00033016 100644
--- a/Server/libman.json
+++ b/Server/libman.json
@@ -3,16 +3,16 @@
"defaultProvider": "cdnjs",
"libraries": [
{
- "library": "microsoft-signalr@6.0.0",
+ "library": "microsoft-signalr@6.0.6",
"destination": "wwwroot/lib/microsoft-signalr/"
},
{
- "library": "msgpack5@5.3.2",
+ "library": "msgpack5@6.0.0",
"destination": "wwwroot/lib/msgpack5/"
},
{
"provider": "unpkg",
- "library": "@microsoft/signalr-protocol-msgpack@6.0.0",
+ "library": "@microsoft/signalr-protocol-msgpack@6.0.6",
"destination": "wwwroot/lib/microsoft/signalr-protocol-msgpack/",
"files": [
"dist/browser/signalr-protocol-msgpack.js",
diff --git a/Server/wwwroot/lib/microsoft-signalr/signalr.js b/Server/wwwroot/lib/microsoft-signalr/signalr.js
index c4955b2e..b8748225 100644
--- a/Server/wwwroot/lib/microsoft-signalr/signalr.js
+++ b/Server/wwwroot/lib/microsoft-signalr/signalr.js
@@ -1,2 +1,3115 @@
-var t,e;t=self,e=function(){return(()=>{var t={d:(e,s)=>{for(var n in s)t.o(s,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:s[n]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"t",{value:!0})};var e,s={};t.r(s),t.d(s,{AbortError:()=>r,DefaultHttpClient:()=>H,HttpClient:()=>d,HttpError:()=>n,HttpResponse:()=>u,HttpTransportType:()=>W,HubConnection:()=>L,HubConnectionBuilder:()=>Q,HubConnectionState:()=>R,JsonHubProtocol:()=>G,LogLevel:()=>e,MessageType:()=>A,NullLogger:()=>f,Subject:()=>U,TimeoutError:()=>i,TransferFormat:()=>O,VERSION:()=>p});class n extends Error{constructor(t,e){const s=new.target.prototype;super(`${t}: Status code '${e}'`),this.statusCode=e,this.__proto__=s}}class i extends Error{constructor(t="A timeout occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class r extends Error{constructor(t="An abort occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class o extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="UnsupportedTransportError",this.__proto__=s}}class h extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="DisabledTransportError",this.__proto__=s}}class c extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="FailedToStartTransportError",this.__proto__=s}}class a extends Error{constructor(t){const e=new.target.prototype;super(t),this.errorType="FailedToNegotiateWithServerError",this.__proto__=e}}class l extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.innerErrors=e,this.__proto__=s}}class u{constructor(t,e,s){this.statusCode=t,this.statusText=e,this.content=s}}class d{get(t,e){return this.send({...e,method:"GET",url:t})}post(t,e){return this.send({...e,method:"POST",url:t})}delete(t,e){return this.send({...e,method:"DELETE",url:t})}getCookieString(t){return""}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug",t[t.Information=2]="Information",t[t.Warning=3]="Warning",t[t.Error=4]="Error",t[t.Critical=5]="Critical",t[t.None=6]="None"}(e||(e={}));class f{constructor(){}log(t,e){}}f.instance=new f;const p="6.0.0";class w{static isRequired(t,e){if(null==t)throw new Error(`The '${e}' argument is required.`)}static isNotEmpty(t,e){if(!t||t.match(/^\s*$/))throw new Error(`The '${e}' argument should not be empty.`)}static isIn(t,e,s){if(!(t in e))throw new Error(`Unknown ${s} value: ${t}.`)}}class g{static get isBrowser(){return"object"==typeof window}static get isWebWorker(){return"object"==typeof self&&"importScripts"in self}static get isNode(){return!this.isBrowser&&!this.isWebWorker}}function m(t,e){let s="";return y(t)?(s=`Binary data of length ${t.byteLength}`,e&&(s+=`. Content: '${function(t){const e=new Uint8Array(t);let s="";return e.forEach((t=>{s+=`0x${t<16?"0":""}${t.toString(16)} `})),s.substr(0,s.length-1)}(t)}'`)):"string"==typeof t&&(s=`String data of length ${t.length}`,e&&(s+=`. Content: '${t}'`)),s}function y(t){return t&&"undefined"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&"ArrayBuffer"===t.constructor.name)}async function b(t,s,n,i,r,o,h){let c={};if(r){const t=await r();t&&(c={Authorization:`Bearer ${t}`})}const[a,l]=$();c[a]=l,t.log(e.Trace,`(${s} transport) sending data. ${m(o,h.logMessageContent)}.`);const u=y(o)?"arraybuffer":"text",d=await n.post(i,{content:o,headers:{...c,...h.headers},responseType:u,timeout:h.timeout,withCredentials:h.withCredentials});t.log(e.Trace,`(${s} transport) request complete. Response status: ${d.statusCode}.`)}class v{constructor(t,e){this.i=t,this.h=e}dispose(){const t=this.i.observers.indexOf(this.h);t>-1&&this.i.observers.splice(t,1),0===this.i.observers.length&&this.i.cancelCallback&&this.i.cancelCallback().catch((t=>{}))}}class E{constructor(t){this.l=t,this.out=console}log(t,s){if(t>=this.l){const n=`[${(new Date).toISOString()}] ${e[t]}: ${s}`;switch(t){case e.Critical:case e.Error:this.out.error(n);break;case e.Warning:this.out.warn(n);break;case e.Information:this.out.info(n);break;default:this.out.log(n)}}}}function $(){let t="X-SignalR-User-Agent";return g.isNode&&(t="User-Agent"),[t,C(p,S(),g.isNode?"NodeJS":"Browser",k())]}function C(t,e,s,n){let i="Microsoft SignalR/";const r=t.split(".");return i+=`${r[0]}.${r[1]}`,i+=` (${t}; `,i+=e&&""!==e?`${e}; `:"Unknown OS; ",i+=`${s}`,i+=n?`; ${n}`:"; Unknown Runtime Version",i+=")",i}function S(){if(!g.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function k(){if(g.isNode)return process.versions.node}function P(t){return t.stack?t.stack:t.message?t.message:`${t}`}class T extends d{constructor(e){if(super(),this.u=e,"undefined"==typeof fetch){const t=require;this.p=new(t("tough-cookie").CookieJar),this.m=t("node-fetch"),this.m=t("fetch-cookie")(this.m,this.p)}else this.m=fetch.bind(function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t.g)return t.g;throw new Error("could not find global")}());if("undefined"==typeof AbortController){const t=require;this.v=t("abort-controller")}else this.v=AbortController}async send(t){if(t.abortSignal&&t.abortSignal.aborted)throw new r;if(!t.method)throw new Error("No method defined.");if(!t.url)throw new Error("No url defined.");const s=new this.v;let o;t.abortSignal&&(t.abortSignal.onabort=()=>{s.abort(),o=new r});let h,c=null;if(t.timeout){const n=t.timeout;c=setTimeout((()=>{s.abort(),this.u.log(e.Warning,"Timeout from HTTP request."),o=new i}),n)}try{h=await this.m(t.url,{body:t.content,cache:"no-cache",credentials:!0===t.withCredentials?"include":"same-origin",headers:{"Content-Type":"text/plain;charset=UTF-8","X-Requested-With":"XMLHttpRequest",...t.headers},method:t.method,mode:"cors",redirect:"follow",signal:s.signal})}catch(t){if(o)throw o;throw this.u.log(e.Warning,`Error from HTTP request. ${t}.`),t}finally{c&&clearTimeout(c),t.abortSignal&&(t.abortSignal.onabort=null)}if(!h.ok){const t=await I(h,"text");throw new n(t||h.statusText,h.status)}const a=I(h,t.responseType),l=await a;return new u(h.status,h.statusText,l)}getCookieString(t){let e="";return g.isNode&&this.p&&this.p.getCookies(t,((t,s)=>e=s.join("; "))),e}}function I(t,e){let s;switch(e){case"arraybuffer":s=t.arrayBuffer();break;case"text":s=t.text();break;case"blob":case"document":case"json":throw new Error(`${e} is not supported.`);default:s=t.text()}return s}class _ extends d{constructor(t){super(),this.u=t}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?new Promise(((s,o)=>{const h=new XMLHttpRequest;h.open(t.method,t.url,!0),h.withCredentials=void 0===t.withCredentials||t.withCredentials,h.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.setRequestHeader("Content-Type","text/plain;charset=UTF-8");const c=t.headers;c&&Object.keys(c).forEach((t=>{h.setRequestHeader(t,c[t])})),t.responseType&&(h.responseType=t.responseType),t.abortSignal&&(t.abortSignal.onabort=()=>{h.abort(),o(new r)}),t.timeout&&(h.timeout=t.timeout),h.onload=()=>{t.abortSignal&&(t.abortSignal.onabort=null),h.status>=200&&h.status<300?s(new u(h.status,h.statusText,h.response||h.responseText)):o(new n(h.response||h.responseText||h.statusText,h.status))},h.onerror=()=>{this.u.log(e.Warning,`Error from HTTP request. ${h.status}: ${h.statusText}.`),o(new n(h.statusText,h.status))},h.ontimeout=()=>{this.u.log(e.Warning,"Timeout from HTTP request."),o(new i)},h.send(t.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}}class H extends d{constructor(t){if(super(),"undefined"!=typeof fetch||g.isNode)this.$=new T(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");this.$=new _(t)}}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?this.$.send(t):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}getCookieString(t){return this.$.getCookieString(t)}}class D{static write(t){return`${t}${D.RecordSeparator}`}static parse(t){if(t[t.length-1]!==D.RecordSeparator)throw new Error("Message is incomplete.");const e=t.split(D.RecordSeparator);return e.pop(),e}}D.RecordSeparatorCode=30,D.RecordSeparator=String.fromCharCode(D.RecordSeparatorCode);class x{writeHandshakeRequest(t){return D.write(JSON.stringify(t))}parseHandshakeResponse(t){let e,s;if(y(t)){const n=new Uint8Array(t),i=n.indexOf(D.RecordSeparatorCode);if(-1===i)throw new Error("Message is incomplete.");const r=i+1;e=String.fromCharCode.apply(null,Array.prototype.slice.call(n.slice(0,r))),s=n.byteLength>r?n.slice(r).buffer:null}else{const n=t,i=n.indexOf(D.RecordSeparator);if(-1===i)throw new Error("Message is incomplete.");const r=i+1;e=n.substring(0,r),s=n.length>r?n.substring(r):null}const n=D.parse(e),i=JSON.parse(n[0]);if(i.type)throw new Error("Expected a handshake response from the server.");return[s,i]}}var A,R;!function(t){t[t.Invocation=1]="Invocation",t[t.StreamItem=2]="StreamItem",t[t.Completion=3]="Completion",t[t.StreamInvocation=4]="StreamInvocation",t[t.CancelInvocation=5]="CancelInvocation",t[t.Ping=6]="Ping",t[t.Close=7]="Close"}(A||(A={}));class U{constructor(){this.observers=[]}next(t){for(const e of this.observers)e.next(t)}error(t){for(const e of this.observers)e.error&&e.error(t)}complete(){for(const t of this.observers)t.complete&&t.complete()}subscribe(t){return this.observers.push(t),new v(this,t)}}!function(t){t.Disconnected="Disconnected",t.Connecting="Connecting",t.Connected="Connected",t.Disconnecting="Disconnecting",t.Reconnecting="Reconnecting"}(R||(R={}));class L{constructor(t,s,n,i){this.C=0,this.S=()=>{this.u.log(e.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},w.isRequired(t,"connection"),w.isRequired(s,"logger"),w.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.u=s,this.k=n,this.connection=t,this.P=i,this.T=new x,this.connection.onreceive=t=>this.I(t),this.connection.onclose=t=>this._(t),this.H={},this.D={},this.A=[],this.R=[],this.U=[],this.L=0,this.N=!1,this.q=R.Disconnected,this.M=!1,this.W=this.k.writeMessage({type:A.Ping})}static create(t,e,s,n){return new L(t,e,s,n)}get state(){return this.q}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(t){if(this.q!==R.Disconnected&&this.q!==R.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t}start(){return this.O=this.j(),this.O}async j(){if(this.q!==R.Disconnected)return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this.q=R.Connecting,this.u.log(e.Debug,"Starting HubConnection.");try{await this.F(),g.isBrowser&&document&&document.addEventListener("freeze",this.S),this.q=R.Connected,this.M=!0,this.u.log(e.Debug,"HubConnection connected successfully.")}catch(t){return this.q=R.Disconnected,this.u.log(e.Debug,`HubConnection failed to start successfully because of error '${t}'.`),Promise.reject(t)}}async F(){this.B=void 0,this.N=!1;const t=new Promise(((t,e)=>{this.X=t,this.J=e}));await this.connection.start(this.k.transferFormat);try{const s={protocol:this.k.name,version:this.k.version};if(this.u.log(e.Debug,"Sending handshake request."),await this.V(this.T.writeHandshakeRequest(s)),this.u.log(e.Information,`Using HubProtocol '${this.k.name}'.`),this.G(),this.K(),this.Y(),await t,this.B)throw this.B}catch(t){throw this.u.log(e.Debug,`Hub handshake failed with error '${t}' during start(). Stopping HubConnection.`),this.G(),this.Z(),await this.connection.stop(t),t}}async stop(){const t=this.O;this.tt=this.et(),await this.tt;try{await t}catch(t){}}et(t){return this.q===R.Disconnected?(this.u.log(e.Debug,`Call to HubConnection.stop(${t}) ignored because it is already in the disconnected state.`),Promise.resolve()):this.q===R.Disconnecting?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q=R.Disconnecting,this.u.log(e.Debug,"Stopping HubConnection."),this.st?(this.u.log(e.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.st),this.st=void 0,this.nt(),Promise.resolve()):(this.G(),this.Z(),this.B=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))}stream(t,...e){const[s,n]=this.it(e),i=this.rt(t,e,n);let r;const o=new U;return o.cancelCallback=()=>{const t=this.ot(i.invocationId);return delete this.H[i.invocationId],r.then((()=>this.ht(t)))},this.H[i.invocationId]=(t,e)=>{e?o.error(e):t&&(t.type===A.Completion?t.error?o.error(new Error(t.error)):o.complete():o.next(t.item))},r=this.ht(i).catch((t=>{o.error(t),delete this.H[i.invocationId]})),this.ct(s,r),o}V(t){return this.Y(),this.connection.send(t)}ht(t){return this.V(this.k.writeMessage(t))}send(t,...e){const[s,n]=this.it(e),i=this.ht(this.at(t,e,!0,n));return this.ct(s,i),i}invoke(t,...e){const[s,n]=this.it(e),i=this.at(t,e,!1,n);return new Promise(((t,e)=>{this.H[i.invocationId]=(s,n)=>{n?e(n):s&&(s.type===A.Completion?s.error?e(new Error(s.error)):t(s.result):e(new Error(`Unexpected message type: ${s.type}`)))};const n=this.ht(i).catch((t=>{e(t),delete this.H[i.invocationId]}));this.ct(s,n)}))}on(t,e){t&&e&&(t=t.toLowerCase(),this.D[t]||(this.D[t]=[]),-1===this.D[t].indexOf(e)&&this.D[t].push(e))}off(t,e){if(!t)return;t=t.toLowerCase();const s=this.D[t];if(s)if(e){const n=s.indexOf(e);-1!==n&&(s.splice(n,1),0===s.length&&delete this.D[t])}else delete this.D[t]}onclose(t){t&&this.A.push(t)}onreconnecting(t){t&&this.R.push(t)}onreconnected(t){t&&this.U.push(t)}I(t){if(this.G(),this.N||(t=this.lt(t),this.N=!0),t){const s=this.k.parseMessages(t,this.u);for(const t of s)switch(t.type){case A.Invocation:this.ut(t);break;case A.StreamItem:case A.Completion:{const s=this.H[t.invocationId];if(s){t.type===A.Completion&&delete this.H[t.invocationId];try{s(t)}catch(t){this.u.log(e.Error,`Stream callback threw error: ${P(t)}`)}}break}case A.Ping:break;case A.Close:{this.u.log(e.Information,"Close message received from server.");const s=t.error?new Error("Server returned an error on close: "+t.error):void 0;!0===t.allowReconnect?this.connection.stop(s):this.tt=this.et(s);break}default:this.u.log(e.Warning,`Invalid message type: ${t.type}.`)}}this.K()}lt(t){let s,n;try{[n,s]=this.T.parseHandshakeResponse(t)}catch(t){const s="Error parsing handshake response: "+t;this.u.log(e.Error,s);const n=new Error(s);throw this.J(n),n}if(s.error){const t="Server returned handshake error: "+s.error;this.u.log(e.Error,t);const n=new Error(t);throw this.J(n),n}return this.u.log(e.Debug,"Server handshake complete."),this.X(),n}Y(){this.connection.features.inherentKeepAlive||(this.C=(new Date).getTime()+this.keepAliveIntervalInMilliseconds,this.Z())}K(){if(!(this.connection.features&&this.connection.features.inherentKeepAlive||(this.dt=setTimeout((()=>this.serverTimeout()),this.serverTimeoutInMilliseconds),void 0!==this.ft))){let t=this.C-(new Date).getTime();t<0&&(t=0),this.ft=setTimeout((async()=>{if(this.q===R.Connected)try{await this.V(this.W)}catch{this.Z()}}),t)}}serverTimeout(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))}ut(t){const s=this.D[t.target.toLowerCase()];if(s){try{s.forEach((e=>e.apply(this,t.arguments)))}catch(s){this.u.log(e.Error,`A callback for the method ${t.target.toLowerCase()} threw error '${s}'.`)}if(t.invocationId){const t="Server requested a response, which is not supported in this version of the client.";this.u.log(e.Error,t),this.tt=this.et(new Error(t))}}else this.u.log(e.Warning,`No client method with the name '${t.target}' found.`)}_(t){this.u.log(e.Debug,`HubConnection.connectionClosed(${t}) called while in state ${this.q}.`),this.B=this.B||t||new Error("The underlying connection was closed before the hub handshake could complete."),this.X&&this.X(),this.wt(t||new Error("Invocation canceled due to the underlying connection being closed.")),this.G(),this.Z(),this.q===R.Disconnecting?this.nt(t):this.q===R.Connected&&this.P?this.gt(t):this.q===R.Connected&&this.nt(t)}nt(t){if(this.M){this.q=R.Disconnected,this.M=!1,g.isBrowser&&document&&document.removeEventListener("freeze",this.S);try{this.A.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onclose callback called with error '${t}' threw error '${s}'.`)}}}async gt(t){const s=Date.now();let n=0,i=void 0!==t?t:new Error("Attempting to reconnect due to a unknown error."),r=this.yt(n++,0,i);if(null===r)return this.u.log(e.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),void this.nt(t);if(this.q=R.Reconnecting,t?this.u.log(e.Information,`Connection reconnecting because of error '${t}'.`):this.u.log(e.Information,"Connection reconnecting."),0!==this.R.length){try{this.R.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onreconnecting callback called with error '${t}' threw error '${s}'.`)}if(this.q!==R.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.")}for(;null!==r;){if(this.u.log(e.Information,`Reconnect attempt number ${n} will start in ${r} ms.`),await new Promise((t=>{this.st=setTimeout(t,r)})),this.st=void 0,this.q!==R.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");try{if(await this.F(),this.q=R.Connected,this.u.log(e.Information,"HubConnection reconnected successfully."),0!==this.U.length)try{this.U.forEach((t=>t.apply(this,[this.connection.connectionId])))}catch(t){this.u.log(e.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${t}'.`)}return}catch(t){if(this.u.log(e.Information,`Reconnect attempt failed because of error '${t}'.`),this.q!==R.Reconnecting)return this.u.log(e.Debug,`Connection moved to the '${this.q}' from the reconnecting state during reconnect attempt. Done reconnecting.`),void(this.q===R.Disconnecting&&this.nt());i=t instanceof Error?t:new Error(t.toString()),r=this.yt(n++,Date.now()-s,i)}}this.u.log(e.Information,`Reconnect retries have been exhausted after ${Date.now()-s} ms and ${n} failed attempts. Connection disconnecting.`),this.nt()}yt(t,s,n){try{return this.P.nextRetryDelayInMilliseconds({elapsedMilliseconds:s,previousRetryCount:t,retryReason:n})}catch(n){return this.u.log(e.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${t}, ${s}) threw error '${n}'.`),null}}wt(t){const s=this.H;this.H={},Object.keys(s).forEach((n=>{const i=s[n];try{i(null,t)}catch(s){this.u.log(e.Error,`Stream 'error' callback called with '${t}' threw error: ${P(s)}`)}}))}Z(){this.ft&&(clearTimeout(this.ft),this.ft=void 0)}G(){this.dt&&clearTimeout(this.dt)}at(t,e,s,n){if(s)return 0!==n.length?{arguments:e,streamIds:n,target:t,type:A.Invocation}:{arguments:e,target:t,type:A.Invocation};{const s=this.L;return this.L++,0!==n.length?{arguments:e,invocationId:s.toString(),streamIds:n,target:t,type:A.Invocation}:{arguments:e,invocationId:s.toString(),target:t,type:A.Invocation}}}ct(t,e){if(0!==t.length){e||(e=Promise.resolve());for(const s in t)t[s].subscribe({complete:()=>{e=e.then((()=>this.ht(this.bt(s))))},error:t=>{let n;n=t instanceof Error?t.message:t&&t.toString?t.toString():"Unknown error",e=e.then((()=>this.ht(this.bt(s,n))))},next:t=>{e=e.then((()=>this.ht(this.vt(s,t))))}})}}it(t){const e=[],s=[];for(let n=0;n{let r,o=!1;if(s===O.Text){if(g.isBrowser||g.isWebWorker)r=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials});else{const e=this.$.getCookieString(t),s={};s.Cookie=e;const[n,i]=$();s[n]=i,r=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials,headers:{...s,...this.Pt.headers}})}try{r.onmessage=t=>{if(this.onreceive)try{this.u.log(e.Trace,`(SSE transport) data received. ${m(t.data,this.Pt.logMessageContent)}.`),this.onreceive(t.data)}catch(t){return void this.Ut(t)}},r.onerror=t=>{o?this.Ut():i(new Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},r.onopen=()=>{this.u.log(e.Information,`SSE connected to ${this.It}`),this.Lt=r,o=!0,n()}}catch(t){return void i(t)}}else i(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))}async send(t){return this.Lt?b(this.u,"SSE",this.$,this.It,this.St,t,this.Pt):Promise.reject(new Error("Cannot send until the transport is connected"))}stop(){return this.Ut(),Promise.resolve()}Ut(t){this.Lt&&(this.Lt.close(),this.Lt=void 0,this.onclose&&this.onclose(t))}}class X{constructor(t,e,s,n,i,r){this.u=s,this.St=e,this.Nt=n,this.qt=i,this.$=t,this.onreceive=null,this.onclose=null,this.Mt=r}async connect(t,s){if(w.isRequired(t,"url"),w.isRequired(s,"transferFormat"),w.isIn(s,O,"transferFormat"),this.u.log(e.Trace,"(WebSockets transport) Connecting."),this.St){const e=await this.St();e&&(t+=(t.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(e)}`)}return new Promise(((n,i)=>{let r;t=t.replace(/^http/,"ws");const o=this.$.getCookieString(t);let h=!1;if(g.isNode){const e={},[s,n]=$();e[s]=n,o&&(e[M.Cookie]=`${o}`),r=new this.qt(t,void 0,{headers:{...e,...this.Mt}})}r||(r=new this.qt(t)),s===O.Binary&&(r.binaryType="arraybuffer"),r.onopen=s=>{this.u.log(e.Information,`WebSocket connected to ${t}.`),this.Wt=r,h=!0,n()},r.onerror=t=>{let s=null;s="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"There was an error with the transport",this.u.log(e.Information,`(WebSockets transport) ${s}.`)},r.onmessage=t=>{if(this.u.log(e.Trace,`(WebSockets transport) data received. ${m(t.data,this.Nt)}.`),this.onreceive)try{this.onreceive(t.data)}catch(t){return void this.Ut(t)}},r.onclose=t=>{if(h)this.Ut(t);else{let e=null;e="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.",i(new Error(e))}}}))}send(t){return this.Wt&&this.Wt.readyState===this.qt.OPEN?(this.u.log(e.Trace,`(WebSockets transport) sending data. ${m(t,this.Nt)}.`),this.Wt.send(t),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this.Wt&&this.Ut(void 0),Promise.resolve()}Ut(t){this.Wt&&(this.Wt.onclose=()=>{},this.Wt.onmessage=()=>{},this.Wt.onerror=()=>{},this.Wt.close(),this.Wt=void 0),this.u.log(e.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this.Ot(t)||!1!==t.wasClean&&1e3===t.code?t instanceof Error?this.onclose(t):this.onclose():this.onclose(new Error(`WebSocket closed with status code: ${t.code} (${t.reason||"no reason given"}).`)))}Ot(t){return t&&"boolean"==typeof t.wasClean&&"number"==typeof t.code}}class J{constructor(t,s={}){var n;if(this.jt=()=>{},this.features={},this.Ft=1,w.isRequired(t,"url"),this.u=void 0===(n=s.logger)?new E(e.Information):null===n?f.instance:void 0!==n.log?n:new E(n),this.baseUrl=this.Bt(t),(s=s||{}).logMessageContent=void 0!==s.logMessageContent&&s.logMessageContent,"boolean"!=typeof s.withCredentials&&void 0!==s.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");s.withCredentials=void 0===s.withCredentials||s.withCredentials,s.timeout=void 0===s.timeout?1e5:s.timeout;let i=null,r=null;if(g.isNode){const t=require;i=t("ws"),r=t("eventsource")}g.isNode||"undefined"==typeof WebSocket||s.WebSocket?g.isNode&&!s.WebSocket&&i&&(s.WebSocket=i):s.WebSocket=WebSocket,g.isNode||"undefined"==typeof EventSource||s.EventSource?g.isNode&&!s.EventSource&&void 0!==r&&(s.EventSource=r):s.EventSource=EventSource,this.$=s.httpClient||new H(this.u),this.q="Disconnected",this.M=!1,this.Pt=s,this.onreceive=null,this.onclose=null}async start(t){if(t=t||O.Binary,w.isIn(t,O,"transferFormat"),this.u.log(e.Debug,`Starting connection with transfer format '${O[t]}'.`),"Disconnected"!==this.q)return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this.q="Connecting",this.Xt=this.F(t),await this.Xt,"Disconnecting"===this.q){const t="Failed to start the HttpConnection before stop() was called.";return this.u.log(e.Error,t),await this.tt,Promise.reject(new Error(t))}if("Connected"!==this.q){const t="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this.u.log(e.Error,t),Promise.reject(new Error(t))}this.M=!0}send(t){return"Connected"!==this.q?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this.Jt||(this.Jt=new z(this.transport)),this.Jt.send(t))}async stop(t){return"Disconnected"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):"Disconnecting"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q="Disconnecting",this.tt=new Promise((t=>{this.jt=t})),await this.et(t),void await this.tt)}async et(t){this.zt=t;try{await this.Xt}catch(t){}if(this.transport){try{await this.transport.stop()}catch(t){this.u.log(e.Error,`HttpConnection.transport.stop() threw error '${t}'.`),this.Vt()}this.transport=void 0}else this.u.log(e.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async F(t){let s=this.baseUrl;this.St=this.Pt.accessTokenFactory;try{if(this.Pt.skipNegotiation){if(this.Pt.transport!==W.WebSockets)throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");this.transport=this.Gt(W.WebSockets),await this.Kt(s,t)}else{let e=null,n=0;do{if(e=await this.Qt(s),"Disconnecting"===this.q||"Disconnected"===this.q)throw new Error("The connection was stopped during negotiation.");if(e.error)throw new Error(e.error);if(e.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(e.url&&(s=e.url),e.accessToken){const t=e.accessToken;this.St=()=>t}n++}while(e.url&&n<100);if(100===n&&e.url)throw new Error("Negotiate redirection limit exceeded.");await this.Yt(s,this.Pt.transport,e,t)}this.transport instanceof F&&(this.features.inherentKeepAlive=!0),"Connecting"===this.q&&(this.u.log(e.Debug,"The HttpConnection connected successfully."),this.q="Connected")}catch(t){return this.u.log(e.Error,"Failed to start the connection: "+t),this.q="Disconnected",this.transport=void 0,this.jt(),Promise.reject(t)}}async Qt(t){const s={};if(this.St){const t=await this.St();t&&(s[M.Authorization]=`Bearer ${t}`)}const[i,r]=$();s[i]=r;const o=this.Zt(t);this.u.log(e.Debug,`Sending negotiation request: ${o}.`);try{const t=await this.$.post(o,{content:"",headers:{...s,...this.Pt.headers},timeout:this.Pt.timeout,withCredentials:this.Pt.withCredentials});if(200!==t.statusCode)return Promise.reject(new Error(`Unexpected status code returned from negotiate '${t.statusCode}'`));const e=JSON.parse(t.content);return(!e.negotiateVersion||e.negotiateVersion<1)&&(e.connectionToken=e.connectionId),e}catch(t){let s="Failed to complete negotiation with the server: "+t;return t instanceof n&&404===t.statusCode&&(s+=" Either this is not a SignalR endpoint or there is a proxy blocking the connection."),this.u.log(e.Error,s),Promise.reject(new a(s))}}te(t,e){return e?t+(-1===t.indexOf("?")?"?":"&")+`id=${e}`:t}async Yt(t,s,n,i){let r=this.te(t,n.connectionToken);if(this.ee(s))return this.u.log(e.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=s,await this.Kt(r,i),void(this.connectionId=n.connectionId);const o=[],h=n.availableTransports||[];let a=n;for(const n of h){const h=this.se(n,s,i);if(h instanceof Error)o.push(`${n.transport} failed:`),o.push(h);else if(this.ee(h)){if(this.transport=h,!a){try{a=await this.Qt(t)}catch(t){return Promise.reject(t)}r=this.te(t,a.connectionToken)}try{return await this.Kt(r,i),void(this.connectionId=a.connectionId)}catch(t){if(this.u.log(e.Error,`Failed to start the transport '${n.transport}': ${t}`),a=void 0,o.push(new c(`${n.transport} failed: ${t}`,W[n.transport])),"Connecting"!==this.q){const t="Failed to select transport before stop() was called.";return this.u.log(e.Debug,t),Promise.reject(new Error(t))}}}}return o.length>0?Promise.reject(new l(`Unable to connect to the server with any of the available transports. ${o.join(" ")}`,o)):Promise.reject(new Error("None of the transports supported by the client are supported by the server."))}Gt(t){switch(t){case W.WebSockets:if(!this.Pt.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new X(this.$,this.St,this.u,this.Pt.logMessageContent,this.Pt.WebSocket,this.Pt.headers||{});case W.ServerSentEvents:if(!this.Pt.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new B(this.$,this.St,this.u,this.Pt);case W.LongPolling:return new F(this.$,this.St,this.u,this.Pt);default:throw new Error(`Unknown transport: ${t}.`)}}Kt(t,e){return this.transport.onreceive=this.onreceive,this.transport.onclose=t=>this.Vt(t),this.transport.connect(t,e)}se(t,s,n){const i=W[t.transport];if(null==i)return this.u.log(e.Debug,`Skipping transport '${t.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${t.transport}' because it is not supported by this client.`);if(!function(t,e){return!t||0!=(e&t)}(s,i))return this.u.log(e.Debug,`Skipping transport '${W[i]}' because it was disabled by the client.`),new h(`'${W[i]}' is disabled by the client.`,i);if(!(t.transferFormats.map((t=>O[t])).indexOf(n)>=0))return this.u.log(e.Debug,`Skipping transport '${W[i]}' because it does not support the requested transfer format '${O[n]}'.`),new Error(`'${W[i]}' does not support ${O[n]}.`);if(i===W.WebSockets&&!this.Pt.WebSocket||i===W.ServerSentEvents&&!this.Pt.EventSource)return this.u.log(e.Debug,`Skipping transport '${W[i]}' because it is not supported in your environment.'`),new o(`'${W[i]}' is not supported in your environment.`,i);this.u.log(e.Debug,`Selecting transport '${W[i]}'.`);try{return this.Gt(i)}catch(t){return t}}ee(t){return t&&"object"==typeof t&&"connect"in t}Vt(t){if(this.u.log(e.Debug,`HttpConnection.stopConnection(${t}) called while in state ${this.q}.`),this.transport=void 0,t=this.zt||t,this.zt=void 0,"Disconnected"!==this.q){if("Connecting"===this.q)throw this.u.log(e.Warning,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${t}) was called while the connection is still in the connecting state.`);if("Disconnecting"===this.q&&this.jt(),t?this.u.log(e.Error,`Connection disconnected with error '${t}'.`):this.u.log(e.Information,"Connection disconnected."),this.Jt&&(this.Jt.stop().catch((t=>{this.u.log(e.Error,`TransportSendQueue.stop() threw error '${t}'.`)})),this.Jt=void 0),this.connectionId=void 0,this.q="Disconnected",this.M){this.M=!1;try{this.onclose&&this.onclose(t)}catch(s){this.u.log(e.Error,`HttpConnection.onclose(${t}) threw error '${s}'.`)}}}else this.u.log(e.Debug,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is already in the disconnected state.`)}Bt(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!g.isBrowser||!window.document)throw new Error(`Cannot resolve '${t}'.`);const s=window.document.createElement("a");return s.href=t,this.u.log(e.Information,`Normalizing '${t}' to '${s.href}'.`),s.href}Zt(t){const e=t.indexOf("?");let s=t.substring(0,-1===e?t.length:e);return"/"!==s[s.length-1]&&(s+="/"),s+="negotiate",s+=-1===e?"":t.substring(e),-1===s.indexOf("negotiateVersion")&&(s+=-1===e?"?":"&",s+="negotiateVersion="+this.Ft),s}}class z{constructor(t){this.ne=t,this.ie=[],this.re=!0,this.oe=new V,this.he=new V,this.ce=this.ae()}send(t){return this.le(t),this.he||(this.he=new V),this.he.promise}stop(){return this.re=!1,this.oe.resolve(),this.ce}le(t){if(this.ie.length&&typeof this.ie[0]!=typeof t)throw new Error(`Expected data to be of type ${typeof this.ie} but was of type ${typeof t}`);this.ie.push(t),this.oe.resolve()}async ae(){for(;;){if(await this.oe.promise,!this.re){this.he&&this.he.reject("Connection stopped.");break}this.oe=new V;const t=this.he;this.he=void 0;const e="string"==typeof this.ie[0]?this.ie.join(""):z.ue(this.ie);this.ie.length=0;try{await this.ne.send(e),t.resolve()}catch(e){t.reject(e)}}}static ue(t){const e=t.map((t=>t.byteLength)).reduce(((t,e)=>t+e)),s=new Uint8Array(e);let n=0;for(const e of t)s.set(new Uint8Array(e),n),n+=e.byteLength;return s.buffer}}class V{constructor(){this.promise=new Promise(((t,e)=>[this.de,this.fe]=[t,e]))}resolve(){this.de()}reject(t){this.fe(t)}}class G{constructor(){this.name="json",this.version=1,this.transferFormat=O.Text}parseMessages(t,s){if("string"!=typeof t)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!t)return[];null===s&&(s=f.instance);const n=D.parse(t),i=[];for(const t of n){const n=JSON.parse(t);if("number"!=typeof n.type)throw new Error("Invalid payload.");switch(n.type){case A.Invocation:this.pe(n);break;case A.StreamItem:this.we(n);break;case A.Completion:this.ge(n);break;case A.Ping:case A.Close:break;default:s.log(e.Information,"Unknown message type '"+n.type+"' ignored.");continue}i.push(n)}return i}writeMessage(t){return D.write(JSON.stringify(t))}pe(t){this.me(t.target,"Invalid payload for Invocation message."),void 0!==t.invocationId&&this.me(t.invocationId,"Invalid payload for Invocation message.")}we(t){if(this.me(t.invocationId,"Invalid payload for StreamItem message."),void 0===t.item)throw new Error("Invalid payload for StreamItem message.")}ge(t){if(t.result&&t.error)throw new Error("Invalid payload for Completion message.");!t.result&&t.error&&this.me(t.error,"Invalid payload for Completion message."),this.me(t.invocationId,"Invalid payload for Completion message.")}me(t,e){if("string"!=typeof t||""===t)throw new Error(e)}}const K={trace:e.Trace,debug:e.Debug,info:e.Information,information:e.Information,warn:e.Warning,warning:e.Warning,error:e.Error,critical:e.Critical,none:e.None};class Q{configureLogging(t){if(w.isRequired(t,"logging"),void 0!==t.log)this.logger=t;else if("string"==typeof t){const e=function(t){const e=K[t.toLowerCase()];if(void 0!==e)return e;throw new Error(`Unknown log level: ${t}`)}(t);this.logger=new E(e)}else this.logger=new E(t);return this}withUrl(t,e){return w.isRequired(t,"url"),w.isNotEmpty(t,"url"),this.url=t,this.httpConnectionOptions="object"==typeof e?{...this.httpConnectionOptions,...e}:{...this.httpConnectionOptions,transport:e},this}withHubProtocol(t){return w.isRequired(t,"protocol"),this.protocol=t,this}withAutomaticReconnect(t){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return t?Array.isArray(t)?this.reconnectPolicy=new q(t):this.reconnectPolicy=t:this.reconnectPolicy=new q,this}build(){const t=this.httpConnectionOptions||{};if(void 0===t.logger&&(t.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");const e=new J(this.url,t);return L.create(e,this.logger||f.instance,this.protocol||new G,this.reconnectPolicy)}}return Uint8Array.prototype.indexOf||Object.defineProperty(Uint8Array.prototype,"indexOf",{value:Array.prototype.indexOf,writable:!0}),Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(t,e){return new Uint8Array(Array.prototype.slice.call(this,t,e))},writable:!0}),Uint8Array.prototype.forEach||Object.defineProperty(Uint8Array.prototype,"forEach",{value:Array.prototype.forEach,writable:!0}),s})()},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.signalR=e():t.signalR=e();
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory();
+ else if(typeof define === 'function' && define.amd)
+ define([], factory);
+ else if(typeof exports === 'object')
+ exports["signalR"] = factory();
+ else
+ root["signalR"] = factory();
+})(self, function() {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ // The require scope
+/******/ var __webpack_require__ = {};
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/global */
+/******/ (() => {
+/******/ __webpack_require__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ "AbortError": () => (/* reexport */ AbortError),
+ "DefaultHttpClient": () => (/* reexport */ DefaultHttpClient),
+ "HttpClient": () => (/* reexport */ HttpClient),
+ "HttpError": () => (/* reexport */ HttpError),
+ "HttpResponse": () => (/* reexport */ HttpResponse),
+ "HttpTransportType": () => (/* reexport */ HttpTransportType),
+ "HubConnection": () => (/* reexport */ HubConnection),
+ "HubConnectionBuilder": () => (/* reexport */ HubConnectionBuilder),
+ "HubConnectionState": () => (/* reexport */ HubConnectionState),
+ "JsonHubProtocol": () => (/* reexport */ JsonHubProtocol),
+ "LogLevel": () => (/* reexport */ LogLevel),
+ "MessageType": () => (/* reexport */ MessageType),
+ "NullLogger": () => (/* reexport */ NullLogger),
+ "Subject": () => (/* reexport */ Subject),
+ "TimeoutError": () => (/* reexport */ TimeoutError),
+ "TransferFormat": () => (/* reexport */ TransferFormat),
+ "VERSION": () => (/* reexport */ VERSION)
+});
+
+;// CONCATENATED MODULE: ./src/Errors.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+/** Error thrown when an HTTP request fails. */
+class HttpError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.
+ *
+ * @param {string} errorMessage A descriptive error message.
+ * @param {number} statusCode The HTTP status code represented by this error.
+ */
+ constructor(errorMessage, statusCode) {
+ const trueProto = new.target.prototype;
+ super(`${errorMessage}: Status code '${statusCode}'`);
+ this.statusCode = statusCode;
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when a timeout elapses. */
+class TimeoutError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.
+ *
+ * @param {string} errorMessage A descriptive error message.
+ */
+ constructor(errorMessage = "A timeout occurred.") {
+ const trueProto = new.target.prototype;
+ super(errorMessage);
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when an action is aborted. */
+class AbortError extends Error {
+ /** Constructs a new instance of {@link AbortError}.
+ *
+ * @param {string} errorMessage A descriptive error message.
+ */
+ constructor(errorMessage = "An abort occurred.") {
+ const trueProto = new.target.prototype;
+ super(errorMessage);
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when the selected transport is unsupported by the browser. */
+/** @private */
+class UnsupportedTransportError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.
+ *
+ * @param {string} message A descriptive error message.
+ * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.
+ */
+ constructor(message, transport) {
+ const trueProto = new.target.prototype;
+ super(message);
+ this.transport = transport;
+ this.errorType = 'UnsupportedTransportError';
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when the selected transport is disabled by the browser. */
+/** @private */
+class DisabledTransportError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.
+ *
+ * @param {string} message A descriptive error message.
+ * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.
+ */
+ constructor(message, transport) {
+ const trueProto = new.target.prototype;
+ super(message);
+ this.transport = transport;
+ this.errorType = 'DisabledTransportError';
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when the selected transport cannot be started. */
+/** @private */
+class FailedToStartTransportError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.
+ *
+ * @param {string} message A descriptive error message.
+ * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.
+ */
+ constructor(message, transport) {
+ const trueProto = new.target.prototype;
+ super(message);
+ this.transport = transport;
+ this.errorType = 'FailedToStartTransportError';
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when the negotiation with the server failed to complete. */
+/** @private */
+class FailedToNegotiateWithServerError extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.
+ *
+ * @param {string} message A descriptive error message.
+ */
+ constructor(message) {
+ const trueProto = new.target.prototype;
+ super(message);
+ this.errorType = 'FailedToNegotiateWithServerError';
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+/** Error thrown when multiple errors have occured. */
+/** @private */
+class AggregateErrors extends Error {
+ /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.
+ *
+ * @param {string} message A descriptive error message.
+ * @param {Error[]} innerErrors The collection of errors this error is aggregating.
+ */
+ constructor(message, innerErrors) {
+ const trueProto = new.target.prototype;
+ super(message);
+ this.innerErrors = innerErrors;
+ // Workaround issue in Typescript compiler
+ // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200
+ this.__proto__ = trueProto;
+ }
+}
+
+;// CONCATENATED MODULE: ./src/HttpClient.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+/** Represents an HTTP response. */
+class HttpResponse {
+ constructor(statusCode, statusText, content) {
+ this.statusCode = statusCode;
+ this.statusText = statusText;
+ this.content = content;
+ }
+}
+/** Abstraction over an HTTP client.
+ *
+ * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.
+ */
+class HttpClient {
+ get(url, options) {
+ return this.send({
+ ...options,
+ method: "GET",
+ url,
+ });
+ }
+ post(url, options) {
+ return this.send({
+ ...options,
+ method: "POST",
+ url,
+ });
+ }
+ delete(url, options) {
+ return this.send({
+ ...options,
+ method: "DELETE",
+ url,
+ });
+ }
+ /** Gets all cookies that apply to the specified URL.
+ *
+ * @param url The URL that the cookies are valid for.
+ * @returns {string} A string containing all the key-value cookie pairs for the specified URL.
+ */
+ // @ts-ignore
+ getCookieString(url) {
+ return "";
+ }
+}
+
+;// CONCATENATED MODULE: ./src/ILogger.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.
+/** Indicates the severity of a log message.
+ *
+ * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.
+ */
+var LogLevel;
+(function (LogLevel) {
+ /** Log level for very low severity diagnostic messages. */
+ LogLevel[LogLevel["Trace"] = 0] = "Trace";
+ /** Log level for low severity diagnostic messages. */
+ LogLevel[LogLevel["Debug"] = 1] = "Debug";
+ /** Log level for informational diagnostic messages. */
+ LogLevel[LogLevel["Information"] = 2] = "Information";
+ /** Log level for diagnostic messages that indicate a non-fatal problem. */
+ LogLevel[LogLevel["Warning"] = 3] = "Warning";
+ /** Log level for diagnostic messages that indicate a failure in the current operation. */
+ LogLevel[LogLevel["Error"] = 4] = "Error";
+ /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */
+ LogLevel[LogLevel["Critical"] = 5] = "Critical";
+ /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */
+ LogLevel[LogLevel["None"] = 6] = "None";
+})(LogLevel || (LogLevel = {}));
+
+;// CONCATENATED MODULE: ./src/Loggers.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+/** A logger that does nothing when log messages are sent to it. */
+class NullLogger {
+ constructor() { }
+ /** @inheritDoc */
+ // eslint-disable-next-line
+ log(_logLevel, _message) {
+ }
+}
+/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */
+NullLogger.instance = new NullLogger();
+
+;// CONCATENATED MODULE: ./src/Utils.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+// Version token that will be replaced by the prepack command
+/** The version of the SignalR client. */
+const VERSION = "6.0.6";
+/** @private */
+class Arg {
+ static isRequired(val, name) {
+ if (val === null || val === undefined) {
+ throw new Error(`The '${name}' argument is required.`);
+ }
+ }
+ static isNotEmpty(val, name) {
+ if (!val || val.match(/^\s*$/)) {
+ throw new Error(`The '${name}' argument should not be empty.`);
+ }
+ }
+ static isIn(val, values, name) {
+ // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.
+ if (!(val in values)) {
+ throw new Error(`Unknown ${name} value: ${val}.`);
+ }
+ }
+}
+/** @private */
+class Platform {
+ // react-native has a window but no document so we should check both
+ static get isBrowser() {
+ return typeof window === "object" && typeof window.document === "object";
+ }
+ // WebWorkers don't have a window object so the isBrowser check would fail
+ static get isWebWorker() {
+ return typeof self === "object" && "importScripts" in self;
+ }
+ // react-native has a window but no document
+ static get isReactNative() {
+ return typeof window === "object" && typeof window.document === "undefined";
+ }
+ // Node apps shouldn't have a window object, but WebWorkers don't either
+ // so we need to check for both WebWorker and window
+ static get isNode() {
+ return !this.isBrowser && !this.isWebWorker && !this.isReactNative;
+ }
+}
+/** @private */
+function getDataDetail(data, includeContent) {
+ let detail = "";
+ if (isArrayBuffer(data)) {
+ detail = `Binary data of length ${data.byteLength}`;
+ if (includeContent) {
+ detail += `. Content: '${formatArrayBuffer(data)}'`;
+ }
+ }
+ else if (typeof data === "string") {
+ detail = `String data of length ${data.length}`;
+ if (includeContent) {
+ detail += `. Content: '${data}'`;
+ }
+ }
+ return detail;
+}
+/** @private */
+function formatArrayBuffer(data) {
+ const view = new Uint8Array(data);
+ // Uint8Array.map only supports returning another Uint8Array?
+ let str = "";
+ view.forEach((num) => {
+ const pad = num < 16 ? "0" : "";
+ str += `0x${pad}${num.toString(16)} `;
+ });
+ // Trim of trailing space.
+ return str.substr(0, str.length - 1);
+}
+// Also in signalr-protocol-msgpack/Utils.ts
+/** @private */
+function isArrayBuffer(val) {
+ return val && typeof ArrayBuffer !== "undefined" &&
+ (val instanceof ArrayBuffer ||
+ // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof
+ (val.constructor && val.constructor.name === "ArrayBuffer"));
+}
+/** @private */
+async function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, options) {
+ let headers = {};
+ if (accessTokenFactory) {
+ const token = await accessTokenFactory();
+ if (token) {
+ headers = {
+ ["Authorization"]: `Bearer ${token}`,
+ };
+ }
+ }
+ const [name, value] = getUserAgentHeader();
+ headers[name] = value;
+ logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);
+ const responseType = isArrayBuffer(content) ? "arraybuffer" : "text";
+ const response = await httpClient.post(url, {
+ content,
+ headers: { ...headers, ...options.headers },
+ responseType,
+ timeout: options.timeout,
+ withCredentials: options.withCredentials,
+ });
+ logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);
+}
+/** @private */
+function createLogger(logger) {
+ if (logger === undefined) {
+ return new ConsoleLogger(LogLevel.Information);
+ }
+ if (logger === null) {
+ return NullLogger.instance;
+ }
+ if (logger.log !== undefined) {
+ return logger;
+ }
+ return new ConsoleLogger(logger);
+}
+/** @private */
+class SubjectSubscription {
+ constructor(subject, observer) {
+ this._subject = subject;
+ this._observer = observer;
+ }
+ dispose() {
+ const index = this._subject.observers.indexOf(this._observer);
+ if (index > -1) {
+ this._subject.observers.splice(index, 1);
+ }
+ if (this._subject.observers.length === 0 && this._subject.cancelCallback) {
+ this._subject.cancelCallback().catch((_) => { });
+ }
+ }
+}
+/** @private */
+class ConsoleLogger {
+ constructor(minimumLogLevel) {
+ this._minLevel = minimumLogLevel;
+ this.out = console;
+ }
+ log(logLevel, message) {
+ if (logLevel >= this._minLevel) {
+ const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;
+ switch (logLevel) {
+ case LogLevel.Critical:
+ case LogLevel.Error:
+ this.out.error(msg);
+ break;
+ case LogLevel.Warning:
+ this.out.warn(msg);
+ break;
+ case LogLevel.Information:
+ this.out.info(msg);
+ break;
+ default:
+ // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug
+ this.out.log(msg);
+ break;
+ }
+ }
+ }
+}
+/** @private */
+function getUserAgentHeader() {
+ let userAgentHeaderName = "X-SignalR-User-Agent";
+ if (Platform.isNode) {
+ userAgentHeaderName = "User-Agent";
+ }
+ return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];
+}
+/** @private */
+function constructUserAgent(version, os, runtime, runtimeVersion) {
+ // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])
+ let userAgent = "Microsoft SignalR/";
+ const majorAndMinor = version.split(".");
+ userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;
+ userAgent += ` (${version}; `;
+ if (os && os !== "") {
+ userAgent += `${os}; `;
+ }
+ else {
+ userAgent += "Unknown OS; ";
+ }
+ userAgent += `${runtime}`;
+ if (runtimeVersion) {
+ userAgent += `; ${runtimeVersion}`;
+ }
+ else {
+ userAgent += "; Unknown Runtime Version";
+ }
+ userAgent += ")";
+ return userAgent;
+}
+// eslint-disable-next-line spaced-comment
+/*#__PURE__*/ function getOsName() {
+ if (Platform.isNode) {
+ switch (process.platform) {
+ case "win32":
+ return "Windows NT";
+ case "darwin":
+ return "macOS";
+ case "linux":
+ return "Linux";
+ default:
+ return process.platform;
+ }
+ }
+ else {
+ return "";
+ }
+}
+// eslint-disable-next-line spaced-comment
+/*#__PURE__*/ function getRuntimeVersion() {
+ if (Platform.isNode) {
+ return process.versions.node;
+ }
+ return undefined;
+}
+function getRuntime() {
+ if (Platform.isNode) {
+ return "NodeJS";
+ }
+ else {
+ return "Browser";
+ }
+}
+/** @private */
+function getErrorString(e) {
+ if (e.stack) {
+ return e.stack;
+ }
+ else if (e.message) {
+ return e.message;
+ }
+ return `${e}`;
+}
+/** @private */
+function getGlobalThis() {
+ // globalThis is semi-new and not available in Node until v12
+ if (typeof globalThis !== "undefined") {
+ return globalThis;
+ }
+ if (typeof self !== "undefined") {
+ return self;
+ }
+ if (typeof window !== "undefined") {
+ return window;
+ }
+ if (typeof __webpack_require__.g !== "undefined") {
+ return __webpack_require__.g;
+ }
+ throw new Error("could not find global");
+}
+
+;// CONCATENATED MODULE: ./src/FetchHttpClient.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+class FetchHttpClient extends HttpClient {
+ constructor(logger) {
+ super();
+ this._logger = logger;
+ if (typeof fetch === "undefined") {
+ // In order to ignore the dynamic require in webpack builds we need to do this magic
+ // @ts-ignore: TS doesn't know about these names
+ const requireFunc = true ? require : 0;
+ // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests
+ this._jar = new (requireFunc("tough-cookie")).CookieJar();
+ this._fetchType = requireFunc("node-fetch");
+ // node-fetch doesn't have a nice API for getting and setting cookies
+ // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one
+ this._fetchType = requireFunc("fetch-cookie")(this._fetchType, this._jar);
+ }
+ else {
+ this._fetchType = fetch.bind(getGlobalThis());
+ }
+ if (typeof AbortController === "undefined") {
+ // In order to ignore the dynamic require in webpack builds we need to do this magic
+ // @ts-ignore: TS doesn't know about these names
+ const requireFunc = true ? require : 0;
+ // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide
+ this._abortControllerType = requireFunc("abort-controller");
+ }
+ else {
+ this._abortControllerType = AbortController;
+ }
+ }
+ /** @inheritDoc */
+ async send(request) {
+ // Check that abort was not signaled before calling send
+ if (request.abortSignal && request.abortSignal.aborted) {
+ throw new AbortError();
+ }
+ if (!request.method) {
+ throw new Error("No method defined.");
+ }
+ if (!request.url) {
+ throw new Error("No url defined.");
+ }
+ const abortController = new this._abortControllerType();
+ let error;
+ // Hook our abortSignal into the abort controller
+ if (request.abortSignal) {
+ request.abortSignal.onabort = () => {
+ abortController.abort();
+ error = new AbortError();
+ };
+ }
+ // If a timeout has been passed in, setup a timeout to call abort
+ // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout
+ let timeoutId = null;
+ if (request.timeout) {
+ const msTimeout = request.timeout;
+ timeoutId = setTimeout(() => {
+ abortController.abort();
+ this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);
+ error = new TimeoutError();
+ }, msTimeout);
+ }
+ let response;
+ try {
+ response = await this._fetchType(request.url, {
+ body: request.content,
+ cache: "no-cache",
+ credentials: request.withCredentials === true ? "include" : "same-origin",
+ headers: {
+ "Content-Type": "text/plain;charset=UTF-8",
+ "X-Requested-With": "XMLHttpRequest",
+ ...request.headers,
+ },
+ method: request.method,
+ mode: "cors",
+ redirect: "follow",
+ signal: abortController.signal,
+ });
+ }
+ catch (e) {
+ if (error) {
+ throw error;
+ }
+ this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);
+ throw e;
+ }
+ finally {
+ if (timeoutId) {
+ clearTimeout(timeoutId);
+ }
+ if (request.abortSignal) {
+ request.abortSignal.onabort = null;
+ }
+ }
+ if (!response.ok) {
+ const errorMessage = await deserializeContent(response, "text");
+ throw new HttpError(errorMessage || response.statusText, response.status);
+ }
+ const content = deserializeContent(response, request.responseType);
+ const payload = await content;
+ return new HttpResponse(response.status, response.statusText, payload);
+ }
+ getCookieString(url) {
+ let cookies = "";
+ if (Platform.isNode && this._jar) {
+ // @ts-ignore: unused variable
+ this._jar.getCookies(url, (e, c) => cookies = c.join("; "));
+ }
+ return cookies;
+ }
+}
+function deserializeContent(response, responseType) {
+ let content;
+ switch (responseType) {
+ case "arraybuffer":
+ content = response.arrayBuffer();
+ break;
+ case "text":
+ content = response.text();
+ break;
+ case "blob":
+ case "document":
+ case "json":
+ throw new Error(`${responseType} is not supported.`);
+ default:
+ content = response.text();
+ break;
+ }
+ return content;
+}
+
+;// CONCATENATED MODULE: ./src/XhrHttpClient.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+class XhrHttpClient extends HttpClient {
+ constructor(logger) {
+ super();
+ this._logger = logger;
+ }
+ /** @inheritDoc */
+ send(request) {
+ // Check that abort was not signaled before calling send
+ if (request.abortSignal && request.abortSignal.aborted) {
+ return Promise.reject(new AbortError());
+ }
+ if (!request.method) {
+ return Promise.reject(new Error("No method defined."));
+ }
+ if (!request.url) {
+ return Promise.reject(new Error("No url defined."));
+ }
+ return new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+ xhr.open(request.method, request.url, true);
+ xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ // Explicitly setting the Content-Type header for React Native on Android platform.
+ xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
+ const headers = request.headers;
+ if (headers) {
+ Object.keys(headers)
+ .forEach((header) => {
+ xhr.setRequestHeader(header, headers[header]);
+ });
+ }
+ if (request.responseType) {
+ xhr.responseType = request.responseType;
+ }
+ if (request.abortSignal) {
+ request.abortSignal.onabort = () => {
+ xhr.abort();
+ reject(new AbortError());
+ };
+ }
+ if (request.timeout) {
+ xhr.timeout = request.timeout;
+ }
+ xhr.onload = () => {
+ if (request.abortSignal) {
+ request.abortSignal.onabort = null;
+ }
+ if (xhr.status >= 200 && xhr.status < 300) {
+ resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));
+ }
+ else {
+ reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));
+ }
+ };
+ xhr.onerror = () => {
+ this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);
+ reject(new HttpError(xhr.statusText, xhr.status));
+ };
+ xhr.ontimeout = () => {
+ this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);
+ reject(new TimeoutError());
+ };
+ xhr.send(request.content || "");
+ });
+ }
+}
+
+;// CONCATENATED MODULE: ./src/DefaultHttpClient.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+/** Default implementation of {@link @microsoft/signalr.HttpClient}. */
+class DefaultHttpClient extends HttpClient {
+ /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */
+ constructor(logger) {
+ super();
+ if (typeof fetch !== "undefined" || Platform.isNode) {
+ this._httpClient = new FetchHttpClient(logger);
+ }
+ else if (typeof XMLHttpRequest !== "undefined") {
+ this._httpClient = new XhrHttpClient(logger);
+ }
+ else {
+ throw new Error("No usable HttpClient found.");
+ }
+ }
+ /** @inheritDoc */
+ send(request) {
+ // Check that abort was not signaled before calling send
+ if (request.abortSignal && request.abortSignal.aborted) {
+ return Promise.reject(new AbortError());
+ }
+ if (!request.method) {
+ return Promise.reject(new Error("No method defined."));
+ }
+ if (!request.url) {
+ return Promise.reject(new Error("No url defined."));
+ }
+ return this._httpClient.send(request);
+ }
+ getCookieString(url) {
+ return this._httpClient.getCookieString(url);
+ }
+}
+
+;// CONCATENATED MODULE: ./src/TextMessageFormat.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// Not exported from index
+/** @private */
+class TextMessageFormat {
+ static write(output) {
+ return `${output}${TextMessageFormat.RecordSeparator}`;
+ }
+ static parse(input) {
+ if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {
+ throw new Error("Message is incomplete.");
+ }
+ const messages = input.split(TextMessageFormat.RecordSeparator);
+ messages.pop();
+ return messages;
+ }
+}
+TextMessageFormat.RecordSeparatorCode = 0x1e;
+TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);
+
+;// CONCATENATED MODULE: ./src/HandshakeProtocol.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+/** @private */
+class HandshakeProtocol {
+ // Handshake request is always JSON
+ writeHandshakeRequest(handshakeRequest) {
+ return TextMessageFormat.write(JSON.stringify(handshakeRequest));
+ }
+ parseHandshakeResponse(data) {
+ let messageData;
+ let remainingData;
+ if (isArrayBuffer(data)) {
+ // Format is binary but still need to read JSON text from handshake response
+ const binaryData = new Uint8Array(data);
+ const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);
+ if (separatorIndex === -1) {
+ throw new Error("Message is incomplete.");
+ }
+ // content before separator is handshake response
+ // optional content after is additional messages
+ const responseLength = separatorIndex + 1;
+ messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));
+ remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;
+ }
+ else {
+ const textData = data;
+ const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);
+ if (separatorIndex === -1) {
+ throw new Error("Message is incomplete.");
+ }
+ // content before separator is handshake response
+ // optional content after is additional messages
+ const responseLength = separatorIndex + 1;
+ messageData = textData.substring(0, responseLength);
+ remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;
+ }
+ // At this point we should have just the single handshake message
+ const messages = TextMessageFormat.parse(messageData);
+ const response = JSON.parse(messages[0]);
+ if (response.type) {
+ throw new Error("Expected a handshake response from the server.");
+ }
+ const responseMessage = response;
+ // multiple messages could have arrived with handshake
+ // return additional data to be parsed as usual, or null if all parsed
+ return [remainingData, responseMessage];
+ }
+}
+
+;// CONCATENATED MODULE: ./src/IHubProtocol.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+/** Defines the type of a Hub Message. */
+var MessageType;
+(function (MessageType) {
+ /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */
+ MessageType[MessageType["Invocation"] = 1] = "Invocation";
+ /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */
+ MessageType[MessageType["StreamItem"] = 2] = "StreamItem";
+ /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */
+ MessageType[MessageType["Completion"] = 3] = "Completion";
+ /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */
+ MessageType[MessageType["StreamInvocation"] = 4] = "StreamInvocation";
+ /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */
+ MessageType[MessageType["CancelInvocation"] = 5] = "CancelInvocation";
+ /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */
+ MessageType[MessageType["Ping"] = 6] = "Ping";
+ /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */
+ MessageType[MessageType["Close"] = 7] = "Close";
+})(MessageType || (MessageType = {}));
+
+;// CONCATENATED MODULE: ./src/Subject.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+/** Stream implementation to stream items to the server. */
+class Subject {
+ constructor() {
+ this.observers = [];
+ }
+ next(item) {
+ for (const observer of this.observers) {
+ observer.next(item);
+ }
+ }
+ error(err) {
+ for (const observer of this.observers) {
+ if (observer.error) {
+ observer.error(err);
+ }
+ }
+ }
+ complete() {
+ for (const observer of this.observers) {
+ if (observer.complete) {
+ observer.complete();
+ }
+ }
+ }
+ subscribe(observer) {
+ this.observers.push(observer);
+ return new SubjectSubscription(this, observer);
+ }
+}
+
+;// CONCATENATED MODULE: ./src/HubConnection.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+const DEFAULT_TIMEOUT_IN_MS = 30 * 1000;
+const DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;
+/** Describes the current state of the {@link HubConnection} to the server. */
+var HubConnectionState;
+(function (HubConnectionState) {
+ /** The hub connection is disconnected. */
+ HubConnectionState["Disconnected"] = "Disconnected";
+ /** The hub connection is connecting. */
+ HubConnectionState["Connecting"] = "Connecting";
+ /** The hub connection is connected. */
+ HubConnectionState["Connected"] = "Connected";
+ /** The hub connection is disconnecting. */
+ HubConnectionState["Disconnecting"] = "Disconnecting";
+ /** The hub connection is reconnecting. */
+ HubConnectionState["Reconnecting"] = "Reconnecting";
+})(HubConnectionState || (HubConnectionState = {}));
+/** Represents a connection to a SignalR Hub. */
+class HubConnection {
+ constructor(connection, logger, protocol, reconnectPolicy) {
+ this._nextKeepAlive = 0;
+ this._freezeEventListener = () => {
+ this._logger.log(LogLevel.Warning, "The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep");
+ };
+ Arg.isRequired(connection, "connection");
+ Arg.isRequired(logger, "logger");
+ Arg.isRequired(protocol, "protocol");
+ this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;
+ this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;
+ this._logger = logger;
+ this._protocol = protocol;
+ this.connection = connection;
+ this._reconnectPolicy = reconnectPolicy;
+ this._handshakeProtocol = new HandshakeProtocol();
+ this.connection.onreceive = (data) => this._processIncomingData(data);
+ this.connection.onclose = (error) => this._connectionClosed(error);
+ this._callbacks = {};
+ this._methods = {};
+ this._closedCallbacks = [];
+ this._reconnectingCallbacks = [];
+ this._reconnectedCallbacks = [];
+ this._invocationId = 0;
+ this._receivedHandshakeResponse = false;
+ this._connectionState = HubConnectionState.Disconnected;
+ this._connectionStarted = false;
+ this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });
+ }
+ /** @internal */
+ // Using a public static factory method means we can have a private constructor and an _internal_
+ // create method that can be used by HubConnectionBuilder. An "internal" constructor would just
+ // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a
+ // public parameter-less constructor.
+ static create(connection, logger, protocol, reconnectPolicy) {
+ return new HubConnection(connection, logger, protocol, reconnectPolicy);
+ }
+ /** Indicates the state of the {@link HubConnection} to the server. */
+ get state() {
+ return this._connectionState;
+ }
+ /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either
+ * in the disconnected state or if the negotiation step was skipped.
+ */
+ get connectionId() {
+ return this.connection ? (this.connection.connectionId || null) : null;
+ }
+ /** Indicates the url of the {@link HubConnection} to the server. */
+ get baseUrl() {
+ return this.connection.baseUrl || "";
+ }
+ /**
+ * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or
+ * Reconnecting states.
+ * @param {string} url The url to connect to.
+ */
+ set baseUrl(url) {
+ if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {
+ throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");
+ }
+ if (!url) {
+ throw new Error("The HubConnection url must be a valid url.");
+ }
+ this.connection.baseUrl = url;
+ }
+ /** Starts the connection.
+ *
+ * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.
+ */
+ start() {
+ this._startPromise = this._startWithStateTransitions();
+ return this._startPromise;
+ }
+ async _startWithStateTransitions() {
+ if (this._connectionState !== HubConnectionState.Disconnected) {
+ return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));
+ }
+ this._connectionState = HubConnectionState.Connecting;
+ this._logger.log(LogLevel.Debug, "Starting HubConnection.");
+ try {
+ await this._startInternal();
+ if (Platform.isBrowser) {
+ // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working
+ window.document.addEventListener("freeze", this._freezeEventListener);
+ }
+ this._connectionState = HubConnectionState.Connected;
+ this._connectionStarted = true;
+ this._logger.log(LogLevel.Debug, "HubConnection connected successfully.");
+ }
+ catch (e) {
+ this._connectionState = HubConnectionState.Disconnected;
+ this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);
+ return Promise.reject(e);
+ }
+ }
+ async _startInternal() {
+ this._stopDuringStartError = undefined;
+ this._receivedHandshakeResponse = false;
+ // Set up the promise before any connection is (re)started otherwise it could race with received messages
+ const handshakePromise = new Promise((resolve, reject) => {
+ this._handshakeResolver = resolve;
+ this._handshakeRejecter = reject;
+ });
+ await this.connection.start(this._protocol.transferFormat);
+ try {
+ const handshakeRequest = {
+ protocol: this._protocol.name,
+ version: this._protocol.version,
+ };
+ this._logger.log(LogLevel.Debug, "Sending handshake request.");
+ await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));
+ this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);
+ // defensively cleanup timeout in case we receive a message from the server before we finish start
+ this._cleanupTimeout();
+ this._resetTimeoutPeriod();
+ this._resetKeepAliveInterval();
+ await handshakePromise;
+ // It's important to check the stopDuringStartError instead of just relying on the handshakePromise
+ // being rejected on close, because this continuation can run after both the handshake completed successfully
+ // and the connection was closed.
+ if (this._stopDuringStartError) {
+ // It's important to throw instead of returning a rejected promise, because we don't want to allow any state
+ // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise
+ // will cause the calling continuation to get scheduled to run later.
+ // eslint-disable-next-line @typescript-eslint/no-throw-literal
+ throw this._stopDuringStartError;
+ }
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);
+ this._cleanupTimeout();
+ this._cleanupPingTimer();
+ // HttpConnection.stop() should not complete until after the onclose callback is invoked.
+ // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.
+ await this.connection.stop(e);
+ throw e;
+ }
+ }
+ /** Stops the connection.
+ *
+ * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.
+ */
+ async stop() {
+ // Capture the start promise before the connection might be restarted in an onclose callback.
+ const startPromise = this._startPromise;
+ this._stopPromise = this._stopInternal();
+ await this._stopPromise;
+ try {
+ // Awaiting undefined continues immediately
+ await startPromise;
+ }
+ catch (e) {
+ // This exception is returned to the user as a rejected Promise from the start method.
+ }
+ }
+ _stopInternal(error) {
+ if (this._connectionState === HubConnectionState.Disconnected) {
+ this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);
+ return Promise.resolve();
+ }
+ if (this._connectionState === HubConnectionState.Disconnecting) {
+ this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);
+ return this._stopPromise;
+ }
+ this._connectionState = HubConnectionState.Disconnecting;
+ this._logger.log(LogLevel.Debug, "Stopping HubConnection.");
+ if (this._reconnectDelayHandle) {
+ // We're in a reconnect delay which means the underlying connection is currently already stopped.
+ // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and
+ // fire the onclose callbacks.
+ this._logger.log(LogLevel.Debug, "Connection stopped during reconnect delay. Done reconnecting.");
+ clearTimeout(this._reconnectDelayHandle);
+ this._reconnectDelayHandle = undefined;
+ this._completeClose();
+ return Promise.resolve();
+ }
+ this._cleanupTimeout();
+ this._cleanupPingTimer();
+ this._stopDuringStartError = error || new Error("The connection was stopped before the hub handshake could complete.");
+ // HttpConnection.stop() should not complete until after either HttpConnection.start() fails
+ // or the onclose callback is invoked. The onclose callback will transition the HubConnection
+ // to the disconnected state if need be before HttpConnection.stop() completes.
+ return this.connection.stop(error);
+ }
+ /** Invokes a streaming hub method on the server using the specified name and arguments.
+ *
+ * @typeparam T The type of the items returned by the server.
+ * @param {string} methodName The name of the server method to invoke.
+ * @param {any[]} args The arguments used to invoke the server method.
+ * @returns {IStreamResult} An object that yields results from the server as they are received.
+ */
+ stream(methodName, ...args) {
+ const [streams, streamIds] = this._replaceStreamingParams(args);
+ const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);
+ // eslint-disable-next-line prefer-const
+ let promiseQueue;
+ const subject = new Subject();
+ subject.cancelCallback = () => {
+ const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);
+ delete this._callbacks[invocationDescriptor.invocationId];
+ return promiseQueue.then(() => {
+ return this._sendWithProtocol(cancelInvocation);
+ });
+ };
+ this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {
+ if (error) {
+ subject.error(error);
+ return;
+ }
+ else if (invocationEvent) {
+ // invocationEvent will not be null when an error is not passed to the callback
+ if (invocationEvent.type === MessageType.Completion) {
+ if (invocationEvent.error) {
+ subject.error(new Error(invocationEvent.error));
+ }
+ else {
+ subject.complete();
+ }
+ }
+ else {
+ subject.next((invocationEvent.item));
+ }
+ }
+ };
+ promiseQueue = this._sendWithProtocol(invocationDescriptor)
+ .catch((e) => {
+ subject.error(e);
+ delete this._callbacks[invocationDescriptor.invocationId];
+ });
+ this._launchStreams(streams, promiseQueue);
+ return subject;
+ }
+ _sendMessage(message) {
+ this._resetKeepAliveInterval();
+ return this.connection.send(message);
+ }
+ /**
+ * Sends a js object to the server.
+ * @param message The js object to serialize and send.
+ */
+ _sendWithProtocol(message) {
+ return this._sendMessage(this._protocol.writeMessage(message));
+ }
+ /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.
+ *
+ * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still
+ * be processing the invocation.
+ *
+ * @param {string} methodName The name of the server method to invoke.
+ * @param {any[]} args The arguments used to invoke the server method.
+ * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.
+ */
+ send(methodName, ...args) {
+ const [streams, streamIds] = this._replaceStreamingParams(args);
+ const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));
+ this._launchStreams(streams, sendPromise);
+ return sendPromise;
+ }
+ /** Invokes a hub method on the server using the specified name and arguments.
+ *
+ * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise
+ * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of
+ * resolving the Promise.
+ *
+ * @typeparam T The expected return type.
+ * @param {string} methodName The name of the server method to invoke.
+ * @param {any[]} args The arguments used to invoke the server method.
+ * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.
+ */
+ invoke(methodName, ...args) {
+ const [streams, streamIds] = this._replaceStreamingParams(args);
+ const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);
+ const p = new Promise((resolve, reject) => {
+ // invocationId will always have a value for a non-blocking invocation
+ this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {
+ if (error) {
+ reject(error);
+ return;
+ }
+ else if (invocationEvent) {
+ // invocationEvent will not be null when an error is not passed to the callback
+ if (invocationEvent.type === MessageType.Completion) {
+ if (invocationEvent.error) {
+ reject(new Error(invocationEvent.error));
+ }
+ else {
+ resolve(invocationEvent.result);
+ }
+ }
+ else {
+ reject(new Error(`Unexpected message type: ${invocationEvent.type}`));
+ }
+ }
+ };
+ const promiseQueue = this._sendWithProtocol(invocationDescriptor)
+ .catch((e) => {
+ reject(e);
+ // invocationId will always have a value for a non-blocking invocation
+ delete this._callbacks[invocationDescriptor.invocationId];
+ });
+ this._launchStreams(streams, promiseQueue);
+ });
+ return p;
+ }
+ /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.
+ *
+ * @param {string} methodName The name of the hub method to define.
+ * @param {Function} newMethod The handler that will be raised when the hub method is invoked.
+ */
+ on(methodName, newMethod) {
+ if (!methodName || !newMethod) {
+ return;
+ }
+ methodName = methodName.toLowerCase();
+ if (!this._methods[methodName]) {
+ this._methods[methodName] = [];
+ }
+ // Preventing adding the same handler multiple times.
+ if (this._methods[methodName].indexOf(newMethod) !== -1) {
+ return;
+ }
+ this._methods[methodName].push(newMethod);
+ }
+ off(methodName, method) {
+ if (!methodName) {
+ return;
+ }
+ methodName = methodName.toLowerCase();
+ const handlers = this._methods[methodName];
+ if (!handlers) {
+ return;
+ }
+ if (method) {
+ const removeIdx = handlers.indexOf(method);
+ if (removeIdx !== -1) {
+ handlers.splice(removeIdx, 1);
+ if (handlers.length === 0) {
+ delete this._methods[methodName];
+ }
+ }
+ }
+ else {
+ delete this._methods[methodName];
+ }
+ }
+ /** Registers a handler that will be invoked when the connection is closed.
+ *
+ * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).
+ */
+ onclose(callback) {
+ if (callback) {
+ this._closedCallbacks.push(callback);
+ }
+ }
+ /** Registers a handler that will be invoked when the connection starts reconnecting.
+ *
+ * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).
+ */
+ onreconnecting(callback) {
+ if (callback) {
+ this._reconnectingCallbacks.push(callback);
+ }
+ }
+ /** Registers a handler that will be invoked when the connection successfully reconnects.
+ *
+ * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.
+ */
+ onreconnected(callback) {
+ if (callback) {
+ this._reconnectedCallbacks.push(callback);
+ }
+ }
+ _processIncomingData(data) {
+ this._cleanupTimeout();
+ if (!this._receivedHandshakeResponse) {
+ data = this._processHandshakeResponse(data);
+ this._receivedHandshakeResponse = true;
+ }
+ // Data may have all been read when processing handshake response
+ if (data) {
+ // Parse the messages
+ const messages = this._protocol.parseMessages(data, this._logger);
+ for (const message of messages) {
+ switch (message.type) {
+ case MessageType.Invocation:
+ this._invokeClientMethod(message);
+ break;
+ case MessageType.StreamItem:
+ case MessageType.Completion: {
+ const callback = this._callbacks[message.invocationId];
+ if (callback) {
+ if (message.type === MessageType.Completion) {
+ delete this._callbacks[message.invocationId];
+ }
+ try {
+ callback(message);
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);
+ }
+ }
+ break;
+ }
+ case MessageType.Ping:
+ // Don't care about pings
+ break;
+ case MessageType.Close: {
+ this._logger.log(LogLevel.Information, "Close message received from server.");
+ const error = message.error ? new Error("Server returned an error on close: " + message.error) : undefined;
+ if (message.allowReconnect === true) {
+ // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,
+ // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ this.connection.stop(error);
+ }
+ else {
+ // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.
+ this._stopPromise = this._stopInternal(error);
+ }
+ break;
+ }
+ default:
+ this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);
+ break;
+ }
+ }
+ }
+ this._resetTimeoutPeriod();
+ }
+ _processHandshakeResponse(data) {
+ let responseMessage;
+ let remainingData;
+ try {
+ [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);
+ }
+ catch (e) {
+ const message = "Error parsing handshake response: " + e;
+ this._logger.log(LogLevel.Error, message);
+ const error = new Error(message);
+ this._handshakeRejecter(error);
+ throw error;
+ }
+ if (responseMessage.error) {
+ const message = "Server returned handshake error: " + responseMessage.error;
+ this._logger.log(LogLevel.Error, message);
+ const error = new Error(message);
+ this._handshakeRejecter(error);
+ throw error;
+ }
+ else {
+ this._logger.log(LogLevel.Debug, "Server handshake complete.");
+ }
+ this._handshakeResolver();
+ return remainingData;
+ }
+ _resetKeepAliveInterval() {
+ if (this.connection.features.inherentKeepAlive) {
+ return;
+ }
+ // Set the time we want the next keep alive to be sent
+ // Timer will be setup on next message receive
+ this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;
+ this._cleanupPingTimer();
+ }
+ _resetTimeoutPeriod() {
+ if (!this.connection.features || !this.connection.features.inherentKeepAlive) {
+ // Set the timeout timer
+ this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);
+ // Set keepAlive timer if there isn't one
+ if (this._pingServerHandle === undefined) {
+ let nextPing = this._nextKeepAlive - new Date().getTime();
+ if (nextPing < 0) {
+ nextPing = 0;
+ }
+ // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute
+ this._pingServerHandle = setTimeout(async () => {
+ if (this._connectionState === HubConnectionState.Connected) {
+ try {
+ await this._sendMessage(this._cachedPingMessage);
+ }
+ catch {
+ // We don't care about the error. It should be seen elsewhere in the client.
+ // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering
+ this._cleanupPingTimer();
+ }
+ }
+ }, nextPing);
+ }
+ }
+ }
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ serverTimeout() {
+ // The server hasn't talked to us in a while. It doesn't like us anymore ... :(
+ // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."));
+ }
+ _invokeClientMethod(invocationMessage) {
+ const methods = this._methods[invocationMessage.target.toLowerCase()];
+ if (methods) {
+ try {
+ methods.forEach((m) => m.apply(this, invocationMessage.arguments));
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `A callback for the method ${invocationMessage.target.toLowerCase()} threw error '${e}'.`);
+ }
+ if (invocationMessage.invocationId) {
+ // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.
+ const message = "Server requested a response, which is not supported in this version of the client.";
+ this._logger.log(LogLevel.Error, message);
+ // We don't want to wait on the stop itself.
+ this._stopPromise = this._stopInternal(new Error(message));
+ }
+ }
+ else {
+ this._logger.log(LogLevel.Warning, `No client method with the name '${invocationMessage.target}' found.`);
+ }
+ }
+ _connectionClosed(error) {
+ this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);
+ // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.
+ this._stopDuringStartError = this._stopDuringStartError || error || new Error("The underlying connection was closed before the hub handshake could complete.");
+ // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.
+ // If it has already completed, this should just noop.
+ if (this._handshakeResolver) {
+ this._handshakeResolver();
+ }
+ this._cancelCallbacksWithError(error || new Error("Invocation canceled due to the underlying connection being closed."));
+ this._cleanupTimeout();
+ this._cleanupPingTimer();
+ if (this._connectionState === HubConnectionState.Disconnecting) {
+ this._completeClose(error);
+ }
+ else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
+ this._reconnect(error);
+ }
+ else if (this._connectionState === HubConnectionState.Connected) {
+ this._completeClose(error);
+ }
+ // If none of the above if conditions were true were called the HubConnection must be in either:
+ // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.
+ // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt
+ // and potentially continue the reconnect() loop.
+ // 3. The Disconnected state in which case we're already done.
+ }
+ _completeClose(error) {
+ if (this._connectionStarted) {
+ this._connectionState = HubConnectionState.Disconnected;
+ this._connectionStarted = false;
+ if (Platform.isBrowser) {
+ window.document.removeEventListener("freeze", this._freezeEventListener);
+ }
+ try {
+ this._closedCallbacks.forEach((c) => c.apply(this, [error]));
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);
+ }
+ }
+ }
+ async _reconnect(error) {
+ const reconnectStartTime = Date.now();
+ let previousReconnectAttempts = 0;
+ let retryError = error !== undefined ? error : new Error("Attempting to reconnect due to a unknown error.");
+ let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);
+ if (nextRetryDelay === null) {
+ this._logger.log(LogLevel.Debug, "Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.");
+ this._completeClose(error);
+ return;
+ }
+ this._connectionState = HubConnectionState.Reconnecting;
+ if (error) {
+ this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);
+ }
+ else {
+ this._logger.log(LogLevel.Information, "Connection reconnecting.");
+ }
+ if (this._reconnectingCallbacks.length !== 0) {
+ try {
+ this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);
+ }
+ // Exit early if an onreconnecting callback called connection.stop().
+ if (this._connectionState !== HubConnectionState.Reconnecting) {
+ this._logger.log(LogLevel.Debug, "Connection left the reconnecting state in onreconnecting callback. Done reconnecting.");
+ return;
+ }
+ }
+ while (nextRetryDelay !== null) {
+ this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);
+ await new Promise((resolve) => {
+ this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);
+ });
+ this._reconnectDelayHandle = undefined;
+ if (this._connectionState !== HubConnectionState.Reconnecting) {
+ this._logger.log(LogLevel.Debug, "Connection left the reconnecting state during reconnect delay. Done reconnecting.");
+ return;
+ }
+ try {
+ await this._startInternal();
+ this._connectionState = HubConnectionState.Connected;
+ this._logger.log(LogLevel.Information, "HubConnection reconnected successfully.");
+ if (this._reconnectedCallbacks.length !== 0) {
+ try {
+ this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);
+ }
+ }
+ return;
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);
+ if (this._connectionState !== HubConnectionState.Reconnecting) {
+ this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);
+ // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.
+ if (this._connectionState === HubConnectionState.Disconnecting) {
+ this._completeClose();
+ }
+ return;
+ }
+ retryError = e instanceof Error ? e : new Error(e.toString());
+ nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);
+ }
+ }
+ this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);
+ this._completeClose();
+ }
+ _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {
+ try {
+ return this._reconnectPolicy.nextRetryDelayInMilliseconds({
+ elapsedMilliseconds,
+ previousRetryCount,
+ retryReason,
+ });
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);
+ return null;
+ }
+ }
+ _cancelCallbacksWithError(error) {
+ const callbacks = this._callbacks;
+ this._callbacks = {};
+ Object.keys(callbacks)
+ .forEach((key) => {
+ const callback = callbacks[key];
+ try {
+ callback(null, error);
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);
+ }
+ });
+ }
+ _cleanupPingTimer() {
+ if (this._pingServerHandle) {
+ clearTimeout(this._pingServerHandle);
+ this._pingServerHandle = undefined;
+ }
+ }
+ _cleanupTimeout() {
+ if (this._timeoutHandle) {
+ clearTimeout(this._timeoutHandle);
+ }
+ }
+ _createInvocation(methodName, args, nonblocking, streamIds) {
+ if (nonblocking) {
+ if (streamIds.length !== 0) {
+ return {
+ arguments: args,
+ streamIds,
+ target: methodName,
+ type: MessageType.Invocation,
+ };
+ }
+ else {
+ return {
+ arguments: args,
+ target: methodName,
+ type: MessageType.Invocation,
+ };
+ }
+ }
+ else {
+ const invocationId = this._invocationId;
+ this._invocationId++;
+ if (streamIds.length !== 0) {
+ return {
+ arguments: args,
+ invocationId: invocationId.toString(),
+ streamIds,
+ target: methodName,
+ type: MessageType.Invocation,
+ };
+ }
+ else {
+ return {
+ arguments: args,
+ invocationId: invocationId.toString(),
+ target: methodName,
+ type: MessageType.Invocation,
+ };
+ }
+ }
+ }
+ _launchStreams(streams, promiseQueue) {
+ if (streams.length === 0) {
+ return;
+ }
+ // Synchronize stream data so they arrive in-order on the server
+ if (!promiseQueue) {
+ promiseQueue = Promise.resolve();
+ }
+ // We want to iterate over the keys, since the keys are the stream ids
+ // eslint-disable-next-line guard-for-in
+ for (const streamId in streams) {
+ streams[streamId].subscribe({
+ complete: () => {
+ promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));
+ },
+ error: (err) => {
+ let message;
+ if (err instanceof Error) {
+ message = err.message;
+ }
+ else if (err && err.toString) {
+ message = err.toString();
+ }
+ else {
+ message = "Unknown error";
+ }
+ promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));
+ },
+ next: (item) => {
+ promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));
+ },
+ });
+ }
+ }
+ _replaceStreamingParams(args) {
+ const streams = [];
+ const streamIds = [];
+ for (let i = 0; i < args.length; i++) {
+ const argument = args[i];
+ if (this._isObservable(argument)) {
+ const streamId = this._invocationId;
+ this._invocationId++;
+ // Store the stream for later use
+ streams[streamId] = argument;
+ streamIds.push(streamId.toString());
+ // remove stream from args
+ args.splice(i, 1);
+ }
+ }
+ return [streams, streamIds];
+ }
+ _isObservable(arg) {
+ // This allows other stream implementations to just work (like rxjs)
+ return arg && arg.subscribe && typeof arg.subscribe === "function";
+ }
+ _createStreamInvocation(methodName, args, streamIds) {
+ const invocationId = this._invocationId;
+ this._invocationId++;
+ if (streamIds.length !== 0) {
+ return {
+ arguments: args,
+ invocationId: invocationId.toString(),
+ streamIds,
+ target: methodName,
+ type: MessageType.StreamInvocation,
+ };
+ }
+ else {
+ return {
+ arguments: args,
+ invocationId: invocationId.toString(),
+ target: methodName,
+ type: MessageType.StreamInvocation,
+ };
+ }
+ }
+ _createCancelInvocation(id) {
+ return {
+ invocationId: id,
+ type: MessageType.CancelInvocation,
+ };
+ }
+ _createStreamItemMessage(id, item) {
+ return {
+ invocationId: id,
+ item,
+ type: MessageType.StreamItem,
+ };
+ }
+ _createCompletionMessage(id, error, result) {
+ if (error) {
+ return {
+ error,
+ invocationId: id,
+ type: MessageType.Completion,
+ };
+ }
+ return {
+ invocationId: id,
+ result,
+ type: MessageType.Completion,
+ };
+ }
+}
+
+;// CONCATENATED MODULE: ./src/DefaultReconnectPolicy.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// 0, 2, 10, 30 second delays before reconnect attempts.
+const DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];
+/** @private */
+class DefaultReconnectPolicy {
+ constructor(retryDelays) {
+ this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;
+ }
+ nextRetryDelayInMilliseconds(retryContext) {
+ return this._retryDelays[retryContext.previousRetryCount];
+ }
+}
+
+;// CONCATENATED MODULE: ./src/HeaderNames.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+class HeaderNames {
+}
+HeaderNames.Authorization = "Authorization";
+HeaderNames.Cookie = "Cookie";
+
+;// CONCATENATED MODULE: ./src/ITransport.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// This will be treated as a bit flag in the future, so we keep it using power-of-two values.
+/** Specifies a specific HTTP transport type. */
+var HttpTransportType;
+(function (HttpTransportType) {
+ /** Specifies no transport preference. */
+ HttpTransportType[HttpTransportType["None"] = 0] = "None";
+ /** Specifies the WebSockets transport. */
+ HttpTransportType[HttpTransportType["WebSockets"] = 1] = "WebSockets";
+ /** Specifies the Server-Sent Events transport. */
+ HttpTransportType[HttpTransportType["ServerSentEvents"] = 2] = "ServerSentEvents";
+ /** Specifies the Long Polling transport. */
+ HttpTransportType[HttpTransportType["LongPolling"] = 4] = "LongPolling";
+})(HttpTransportType || (HttpTransportType = {}));
+/** Specifies the transfer format for a connection. */
+var TransferFormat;
+(function (TransferFormat) {
+ /** Specifies that only text data will be transmitted over the connection. */
+ TransferFormat[TransferFormat["Text"] = 1] = "Text";
+ /** Specifies that binary data will be transmitted over the connection. */
+ TransferFormat[TransferFormat["Binary"] = 2] = "Binary";
+})(TransferFormat || (TransferFormat = {}));
+
+;// CONCATENATED MODULE: ./src/AbortController.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController
+// We don't actually ever use the API being polyfilled, we always use the polyfill because
+// it's a very new API right now.
+// Not exported from index.
+/** @private */
+class AbortController_AbortController {
+ constructor() {
+ this._isAborted = false;
+ this.onabort = null;
+ }
+ abort() {
+ if (!this._isAborted) {
+ this._isAborted = true;
+ if (this.onabort) {
+ this.onabort();
+ }
+ }
+ }
+ get signal() {
+ return this;
+ }
+ get aborted() {
+ return this._isAborted;
+ }
+}
+
+;// CONCATENATED MODULE: ./src/LongPollingTransport.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+
+// Not exported from 'index', this type is internal.
+/** @private */
+class LongPollingTransport {
+ constructor(httpClient, accessTokenFactory, logger, options) {
+ this._httpClient = httpClient;
+ this._accessTokenFactory = accessTokenFactory;
+ this._logger = logger;
+ this._pollAbort = new AbortController_AbortController();
+ this._options = options;
+ this._running = false;
+ this.onreceive = null;
+ this.onclose = null;
+ }
+ // This is an internal type, not exported from 'index' so this is really just internal.
+ get pollAborted() {
+ return this._pollAbort.aborted;
+ }
+ async connect(url, transferFormat) {
+ Arg.isRequired(url, "url");
+ Arg.isRequired(transferFormat, "transferFormat");
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
+ this._url = url;
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Connecting.");
+ // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)
+ if (transferFormat === TransferFormat.Binary &&
+ (typeof XMLHttpRequest !== "undefined" && typeof new XMLHttpRequest().responseType !== "string")) {
+ throw new Error("Binary protocols over XmlHttpRequest not implementing advanced features are not supported.");
+ }
+ const [name, value] = getUserAgentHeader();
+ const headers = { [name]: value, ...this._options.headers };
+ const pollOptions = {
+ abortSignal: this._pollAbort.signal,
+ headers,
+ timeout: 100000,
+ withCredentials: this._options.withCredentials,
+ };
+ if (transferFormat === TransferFormat.Binary) {
+ pollOptions.responseType = "arraybuffer";
+ }
+ const token = await this._getAccessToken();
+ this._updateHeaderToken(pollOptions, token);
+ // Make initial long polling request
+ // Server uses first long polling request to finish initializing connection and it returns without data
+ const pollUrl = `${url}&_=${Date.now()}`;
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);
+ const response = await this._httpClient.get(pollUrl, pollOptions);
+ if (response.statusCode !== 200) {
+ this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);
+ // Mark running as false so that the poll immediately ends and runs the close logic
+ this._closeError = new HttpError(response.statusText || "", response.statusCode);
+ this._running = false;
+ }
+ else {
+ this._running = true;
+ }
+ this._receiving = this._poll(this._url, pollOptions);
+ }
+ async _getAccessToken() {
+ if (this._accessTokenFactory) {
+ return await this._accessTokenFactory();
+ }
+ return null;
+ }
+ _updateHeaderToken(request, token) {
+ if (!request.headers) {
+ request.headers = {};
+ }
+ if (token) {
+ request.headers[HeaderNames.Authorization] = `Bearer ${token}`;
+ return;
+ }
+ if (request.headers[HeaderNames.Authorization]) {
+ delete request.headers[HeaderNames.Authorization];
+ }
+ }
+ async _poll(url, pollOptions) {
+ try {
+ while (this._running) {
+ // We have to get the access token on each poll, in case it changes
+ const token = await this._getAccessToken();
+ this._updateHeaderToken(pollOptions, token);
+ try {
+ const pollUrl = `${url}&_=${Date.now()}`;
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);
+ const response = await this._httpClient.get(pollUrl, pollOptions);
+ if (response.statusCode === 204) {
+ this._logger.log(LogLevel.Information, "(LongPolling transport) Poll terminated by server.");
+ this._running = false;
+ }
+ else if (response.statusCode !== 200) {
+ this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);
+ // Unexpected status code
+ this._closeError = new HttpError(response.statusText || "", response.statusCode);
+ this._running = false;
+ }
+ else {
+ // Process the response
+ if (response.content) {
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);
+ if (this.onreceive) {
+ this.onreceive(response.content);
+ }
+ }
+ else {
+ // This is another way timeout manifest.
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing.");
+ }
+ }
+ }
+ catch (e) {
+ if (!this._running) {
+ // Log but disregard errors that occur after stopping
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);
+ }
+ else {
+ if (e instanceof TimeoutError) {
+ // Ignore timeouts and reissue the poll.
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Poll timed out, reissuing.");
+ }
+ else {
+ // Close the connection with the error as the result.
+ this._closeError = e;
+ this._running = false;
+ }
+ }
+ }
+ }
+ }
+ finally {
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Polling complete.");
+ // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.
+ // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.
+ if (!this.pollAborted) {
+ this._raiseOnClose();
+ }
+ }
+ }
+ async send(data) {
+ if (!this._running) {
+ return Promise.reject(new Error("Cannot send until the transport is connected"));
+ }
+ return sendMessage(this._logger, "LongPolling", this._httpClient, this._url, this._accessTokenFactory, data, this._options);
+ }
+ async stop() {
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Stopping polling.");
+ // Tell receiving loop to stop, abort any current request, and then wait for it to finish
+ this._running = false;
+ this._pollAbort.abort();
+ try {
+ await this._receiving;
+ // Send DELETE to clean up long polling on the server
+ this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);
+ const headers = {};
+ const [name, value] = getUserAgentHeader();
+ headers[name] = value;
+ const deleteOptions = {
+ headers: { ...headers, ...this._options.headers },
+ timeout: this._options.timeout,
+ withCredentials: this._options.withCredentials,
+ };
+ const token = await this._getAccessToken();
+ this._updateHeaderToken(deleteOptions, token);
+ await this._httpClient.delete(this._url, deleteOptions);
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) DELETE request sent.");
+ }
+ finally {
+ this._logger.log(LogLevel.Trace, "(LongPolling transport) Stop finished.");
+ // Raise close event here instead of in polling
+ // It needs to happen after the DELETE request is sent
+ this._raiseOnClose();
+ }
+ }
+ _raiseOnClose() {
+ if (this.onclose) {
+ let logMessage = "(LongPolling transport) Firing onclose event.";
+ if (this._closeError) {
+ logMessage += " Error: " + this._closeError;
+ }
+ this._logger.log(LogLevel.Trace, logMessage);
+ this.onclose(this._closeError);
+ }
+ }
+}
+
+;// CONCATENATED MODULE: ./src/ServerSentEventsTransport.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+/** @private */
+class ServerSentEventsTransport {
+ constructor(httpClient, accessTokenFactory, logger, options) {
+ this._httpClient = httpClient;
+ this._accessTokenFactory = accessTokenFactory;
+ this._logger = logger;
+ this._options = options;
+ this.onreceive = null;
+ this.onclose = null;
+ }
+ async connect(url, transferFormat) {
+ Arg.isRequired(url, "url");
+ Arg.isRequired(transferFormat, "transferFormat");
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
+ this._logger.log(LogLevel.Trace, "(SSE transport) Connecting.");
+ // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send
+ this._url = url;
+ if (this._accessTokenFactory) {
+ const token = await this._accessTokenFactory();
+ if (token) {
+ url += (url.indexOf("?") < 0 ? "?" : "&") + `access_token=${encodeURIComponent(token)}`;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ let opened = false;
+ if (transferFormat !== TransferFormat.Text) {
+ reject(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"));
+ return;
+ }
+ let eventSource;
+ if (Platform.isBrowser || Platform.isWebWorker) {
+ eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });
+ }
+ else {
+ // Non-browser passes cookies via the dictionary
+ const cookies = this._httpClient.getCookieString(url);
+ const headers = {};
+ headers.Cookie = cookies;
+ const [name, value] = getUserAgentHeader();
+ headers[name] = value;
+ eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });
+ }
+ try {
+ eventSource.onmessage = (e) => {
+ if (this.onreceive) {
+ try {
+ this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);
+ this.onreceive(e.data);
+ }
+ catch (error) {
+ this._close(error);
+ return;
+ }
+ }
+ };
+ // @ts-ignore: not using event on purpose
+ eventSource.onerror = (e) => {
+ // EventSource doesn't give any useful information about server side closes.
+ if (opened) {
+ this._close();
+ }
+ else {
+ reject(new Error("EventSource failed to connect. The connection could not be found on the server,"
+ + " either the connection ID is not present on the server, or a proxy is refusing/buffering the connection."
+ + " If you have multiple servers check that sticky sessions are enabled."));
+ }
+ };
+ eventSource.onopen = () => {
+ this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);
+ this._eventSource = eventSource;
+ opened = true;
+ resolve();
+ };
+ }
+ catch (e) {
+ reject(e);
+ return;
+ }
+ });
+ }
+ async send(data) {
+ if (!this._eventSource) {
+ return Promise.reject(new Error("Cannot send until the transport is connected"));
+ }
+ return sendMessage(this._logger, "SSE", this._httpClient, this._url, this._accessTokenFactory, data, this._options);
+ }
+ stop() {
+ this._close();
+ return Promise.resolve();
+ }
+ _close(e) {
+ if (this._eventSource) {
+ this._eventSource.close();
+ this._eventSource = undefined;
+ if (this.onclose) {
+ this.onclose(e);
+ }
+ }
+ }
+}
+
+;// CONCATENATED MODULE: ./src/WebSocketTransport.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+/** @private */
+class WebSocketTransport {
+ constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {
+ this._logger = logger;
+ this._accessTokenFactory = accessTokenFactory;
+ this._logMessageContent = logMessageContent;
+ this._webSocketConstructor = webSocketConstructor;
+ this._httpClient = httpClient;
+ this.onreceive = null;
+ this.onclose = null;
+ this._headers = headers;
+ }
+ async connect(url, transferFormat) {
+ Arg.isRequired(url, "url");
+ Arg.isRequired(transferFormat, "transferFormat");
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
+ this._logger.log(LogLevel.Trace, "(WebSockets transport) Connecting.");
+ if (this._accessTokenFactory) {
+ const token = await this._accessTokenFactory();
+ if (token) {
+ url += (url.indexOf("?") < 0 ? "?" : "&") + `access_token=${encodeURIComponent(token)}`;
+ }
+ }
+ return new Promise((resolve, reject) => {
+ url = url.replace(/^http/, "ws");
+ let webSocket;
+ const cookies = this._httpClient.getCookieString(url);
+ let opened = false;
+ if (Platform.isNode) {
+ const headers = {};
+ const [name, value] = getUserAgentHeader();
+ headers[name] = value;
+ if (cookies) {
+ headers[HeaderNames.Cookie] = `${cookies}`;
+ }
+ // Only pass headers when in non-browser environments
+ webSocket = new this._webSocketConstructor(url, undefined, {
+ headers: { ...headers, ...this._headers },
+ });
+ }
+ if (!webSocket) {
+ // Chrome is not happy with passing 'undefined' as protocol
+ webSocket = new this._webSocketConstructor(url);
+ }
+ if (transferFormat === TransferFormat.Binary) {
+ webSocket.binaryType = "arraybuffer";
+ }
+ webSocket.onopen = (_event) => {
+ this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);
+ this._webSocket = webSocket;
+ opened = true;
+ resolve();
+ };
+ webSocket.onerror = (event) => {
+ let error = null;
+ // ErrorEvent is a browser only type we need to check if the type exists before using it
+ if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) {
+ error = event.error;
+ }
+ else {
+ error = "There was an error with the transport";
+ }
+ this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);
+ };
+ webSocket.onmessage = (message) => {
+ this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);
+ if (this.onreceive) {
+ try {
+ this.onreceive(message.data);
+ }
+ catch (error) {
+ this._close(error);
+ return;
+ }
+ }
+ };
+ webSocket.onclose = (event) => {
+ // Don't call close handler if connection was never established
+ // We'll reject the connect call instead
+ if (opened) {
+ this._close(event);
+ }
+ else {
+ let error = null;
+ // ErrorEvent is a browser only type we need to check if the type exists before using it
+ if (typeof ErrorEvent !== "undefined" && event instanceof ErrorEvent) {
+ error = event.error;
+ }
+ else {
+ error = "WebSocket failed to connect. The connection could not be found on the server,"
+ + " either the endpoint may not be a SignalR endpoint,"
+ + " the connection ID is not present on the server, or there is a proxy blocking WebSockets."
+ + " If you have multiple servers check that sticky sessions are enabled.";
+ }
+ reject(new Error(error));
+ }
+ };
+ });
+ }
+ send(data) {
+ if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {
+ this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);
+ this._webSocket.send(data);
+ return Promise.resolve();
+ }
+ return Promise.reject("WebSocket is not in the OPEN state");
+ }
+ stop() {
+ if (this._webSocket) {
+ // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning
+ // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects
+ this._close(undefined);
+ }
+ return Promise.resolve();
+ }
+ _close(event) {
+ // webSocket will be null if the transport did not start successfully
+ if (this._webSocket) {
+ // Clear websocket handlers because we are considering the socket closed now
+ this._webSocket.onclose = () => { };
+ this._webSocket.onmessage = () => { };
+ this._webSocket.onerror = () => { };
+ this._webSocket.close();
+ this._webSocket = undefined;
+ }
+ this._logger.log(LogLevel.Trace, "(WebSockets transport) socket closed.");
+ if (this.onclose) {
+ if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {
+ this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || "no reason given"}).`));
+ }
+ else if (event instanceof Error) {
+ this.onclose(event);
+ }
+ else {
+ this.onclose();
+ }
+ }
+ }
+ _isCloseEvent(event) {
+ return event && typeof event.wasClean === "boolean" && typeof event.code === "number";
+ }
+}
+
+;// CONCATENATED MODULE: ./src/HttpConnection.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+
+
+
+
+const MAX_REDIRECTS = 100;
+/** @private */
+class HttpConnection {
+ constructor(url, options = {}) {
+ this._stopPromiseResolver = () => { };
+ this.features = {};
+ this._negotiateVersion = 1;
+ Arg.isRequired(url, "url");
+ this._logger = createLogger(options.logger);
+ this.baseUrl = this._resolveUrl(url);
+ options = options || {};
+ options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;
+ if (typeof options.withCredentials === "boolean" || options.withCredentials === undefined) {
+ options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;
+ }
+ else {
+ throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");
+ }
+ options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;
+ let webSocketModule = null;
+ let eventSourceModule = null;
+ if (Platform.isNode && "function" !== "undefined") {
+ // In order to ignore the dynamic require in webpack builds we need to do this magic
+ // @ts-ignore: TS doesn't know about these names
+ const requireFunc = true ? require : 0;
+ webSocketModule = requireFunc("ws");
+ eventSourceModule = requireFunc("eventsource");
+ }
+ if (!Platform.isNode && typeof WebSocket !== "undefined" && !options.WebSocket) {
+ options.WebSocket = WebSocket;
+ }
+ else if (Platform.isNode && !options.WebSocket) {
+ if (webSocketModule) {
+ options.WebSocket = webSocketModule;
+ }
+ }
+ if (!Platform.isNode && typeof EventSource !== "undefined" && !options.EventSource) {
+ options.EventSource = EventSource;
+ }
+ else if (Platform.isNode && !options.EventSource) {
+ if (typeof eventSourceModule !== "undefined") {
+ options.EventSource = eventSourceModule;
+ }
+ }
+ this._httpClient = options.httpClient || new DefaultHttpClient(this._logger);
+ this._connectionState = "Disconnected" /* Disconnected */;
+ this._connectionStarted = false;
+ this._options = options;
+ this.onreceive = null;
+ this.onclose = null;
+ }
+ async start(transferFormat) {
+ transferFormat = transferFormat || TransferFormat.Binary;
+ Arg.isIn(transferFormat, TransferFormat, "transferFormat");
+ this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);
+ if (this._connectionState !== "Disconnected" /* Disconnected */) {
+ return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));
+ }
+ this._connectionState = "Connecting" /* Connecting */;
+ this._startInternalPromise = this._startInternal(transferFormat);
+ await this._startInternalPromise;
+ // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.
+ if (this._connectionState === "Disconnecting" /* Disconnecting */) {
+ // stop() was called and transitioned the client into the Disconnecting state.
+ const message = "Failed to start the HttpConnection before stop() was called.";
+ this._logger.log(LogLevel.Error, message);
+ // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.
+ await this._stopPromise;
+ return Promise.reject(new Error(message));
+ }
+ else if (this._connectionState !== "Connected" /* Connected */) {
+ // stop() was called and transitioned the client into the Disconnecting state.
+ const message = "HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";
+ this._logger.log(LogLevel.Error, message);
+ return Promise.reject(new Error(message));
+ }
+ this._connectionStarted = true;
+ }
+ send(data) {
+ if (this._connectionState !== "Connected" /* Connected */) {
+ return Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State."));
+ }
+ if (!this._sendQueue) {
+ this._sendQueue = new TransportSendQueue(this.transport);
+ }
+ // Transport will not be null if state is connected
+ return this._sendQueue.send(data);
+ }
+ async stop(error) {
+ if (this._connectionState === "Disconnected" /* Disconnected */) {
+ this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);
+ return Promise.resolve();
+ }
+ if (this._connectionState === "Disconnecting" /* Disconnecting */) {
+ this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);
+ return this._stopPromise;
+ }
+ this._connectionState = "Disconnecting" /* Disconnecting */;
+ this._stopPromise = new Promise((resolve) => {
+ // Don't complete stop() until stopConnection() completes.
+ this._stopPromiseResolver = resolve;
+ });
+ // stopInternal should never throw so just observe it.
+ await this._stopInternal(error);
+ await this._stopPromise;
+ }
+ async _stopInternal(error) {
+ // Set error as soon as possible otherwise there is a race between
+ // the transport closing and providing an error and the error from a close message
+ // We would prefer the close message error.
+ this._stopError = error;
+ try {
+ await this._startInternalPromise;
+ }
+ catch (e) {
+ // This exception is returned to the user as a rejected Promise from the start method.
+ }
+ // The transport's onclose will trigger stopConnection which will run our onclose event.
+ // The transport should always be set if currently connected. If it wasn't set, it's likely because
+ // stop was called during start() and start() failed.
+ if (this.transport) {
+ try {
+ await this.transport.stop();
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);
+ this._stopConnection();
+ }
+ this.transport = undefined;
+ }
+ else {
+ this._logger.log(LogLevel.Debug, "HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.");
+ }
+ }
+ async _startInternal(transferFormat) {
+ // Store the original base url and the access token factory since they may change
+ // as part of negotiating
+ let url = this.baseUrl;
+ this._accessTokenFactory = this._options.accessTokenFactory;
+ try {
+ if (this._options.skipNegotiation) {
+ if (this._options.transport === HttpTransportType.WebSockets) {
+ // No need to add a connection ID in this case
+ this.transport = this._constructTransport(HttpTransportType.WebSockets);
+ // We should just call connect directly in this case.
+ // No fallback or negotiate in this case.
+ await this._startTransport(url, transferFormat);
+ }
+ else {
+ throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");
+ }
+ }
+ else {
+ let negotiateResponse = null;
+ let redirects = 0;
+ do {
+ negotiateResponse = await this._getNegotiationResponse(url);
+ // the user tries to stop the connection when it is being started
+ if (this._connectionState === "Disconnecting" /* Disconnecting */ || this._connectionState === "Disconnected" /* Disconnected */) {
+ throw new Error("The connection was stopped during negotiation.");
+ }
+ if (negotiateResponse.error) {
+ throw new Error(negotiateResponse.error);
+ }
+ if (negotiateResponse.ProtocolVersion) {
+ throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");
+ }
+ if (negotiateResponse.url) {
+ url = negotiateResponse.url;
+ }
+ if (negotiateResponse.accessToken) {
+ // Replace the current access token factory with one that uses
+ // the returned access token
+ const accessToken = negotiateResponse.accessToken;
+ this._accessTokenFactory = () => accessToken;
+ }
+ redirects++;
+ } while (negotiateResponse.url && redirects < MAX_REDIRECTS);
+ if (redirects === MAX_REDIRECTS && negotiateResponse.url) {
+ throw new Error("Negotiate redirection limit exceeded.");
+ }
+ await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);
+ }
+ if (this.transport instanceof LongPollingTransport) {
+ this.features.inherentKeepAlive = true;
+ }
+ if (this._connectionState === "Connecting" /* Connecting */) {
+ // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.
+ // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.
+ this._logger.log(LogLevel.Debug, "The HttpConnection connected successfully.");
+ this._connectionState = "Connected" /* Connected */;
+ }
+ // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.
+ // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()
+ // will transition to the disconnected state. start() will wait for the transition using the stopPromise.
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, "Failed to start the connection: " + e);
+ this._connectionState = "Disconnected" /* Disconnected */;
+ this.transport = undefined;
+ // if start fails, any active calls to stop assume that start will complete the stop promise
+ this._stopPromiseResolver();
+ return Promise.reject(e);
+ }
+ }
+ async _getNegotiationResponse(url) {
+ const headers = {};
+ if (this._accessTokenFactory) {
+ const token = await this._accessTokenFactory();
+ if (token) {
+ headers[HeaderNames.Authorization] = `Bearer ${token}`;
+ }
+ }
+ const [name, value] = getUserAgentHeader();
+ headers[name] = value;
+ const negotiateUrl = this._resolveNegotiateUrl(url);
+ this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);
+ try {
+ const response = await this._httpClient.post(negotiateUrl, {
+ content: "",
+ headers: { ...headers, ...this._options.headers },
+ timeout: this._options.timeout,
+ withCredentials: this._options.withCredentials,
+ });
+ if (response.statusCode !== 200) {
+ return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));
+ }
+ const negotiateResponse = JSON.parse(response.content);
+ if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {
+ // Negotiate version 0 doesn't use connectionToken
+ // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version
+ negotiateResponse.connectionToken = negotiateResponse.connectionId;
+ }
+ return negotiateResponse;
+ }
+ catch (e) {
+ let errorMessage = "Failed to complete negotiation with the server: " + e;
+ if (e instanceof HttpError) {
+ if (e.statusCode === 404) {
+ errorMessage = errorMessage + " Either this is not a SignalR endpoint or there is a proxy blocking the connection.";
+ }
+ }
+ this._logger.log(LogLevel.Error, errorMessage);
+ return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));
+ }
+ }
+ _createConnectUrl(url, connectionToken) {
+ if (!connectionToken) {
+ return url;
+ }
+ return url + (url.indexOf("?") === -1 ? "?" : "&") + `id=${connectionToken}`;
+ }
+ async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {
+ let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);
+ if (this._isITransport(requestedTransport)) {
+ this._logger.log(LogLevel.Debug, "Connection was provided an instance of ITransport, using that directly.");
+ this.transport = requestedTransport;
+ await this._startTransport(connectUrl, requestedTransferFormat);
+ this.connectionId = negotiateResponse.connectionId;
+ return;
+ }
+ const transportExceptions = [];
+ const transports = negotiateResponse.availableTransports || [];
+ let negotiate = negotiateResponse;
+ for (const endpoint of transports) {
+ const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);
+ if (transportOrError instanceof Error) {
+ // Store the error and continue, we don't want to cause a re-negotiate in these cases
+ transportExceptions.push(`${endpoint.transport} failed:`);
+ transportExceptions.push(transportOrError);
+ }
+ else if (this._isITransport(transportOrError)) {
+ this.transport = transportOrError;
+ if (!negotiate) {
+ try {
+ negotiate = await this._getNegotiationResponse(url);
+ }
+ catch (ex) {
+ return Promise.reject(ex);
+ }
+ connectUrl = this._createConnectUrl(url, negotiate.connectionToken);
+ }
+ try {
+ await this._startTransport(connectUrl, requestedTransferFormat);
+ this.connectionId = negotiate.connectionId;
+ return;
+ }
+ catch (ex) {
+ this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);
+ negotiate = undefined;
+ transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));
+ if (this._connectionState !== "Connecting" /* Connecting */) {
+ const message = "Failed to select transport before stop() was called.";
+ this._logger.log(LogLevel.Debug, message);
+ return Promise.reject(new Error(message));
+ }
+ }
+ }
+ }
+ if (transportExceptions.length > 0) {
+ return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(" ")}`, transportExceptions));
+ }
+ return Promise.reject(new Error("None of the transports supported by the client are supported by the server."));
+ }
+ _constructTransport(transport) {
+ switch (transport) {
+ case HttpTransportType.WebSockets:
+ if (!this._options.WebSocket) {
+ throw new Error("'WebSocket' is not supported in your environment.");
+ }
+ return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});
+ case HttpTransportType.ServerSentEvents:
+ if (!this._options.EventSource) {
+ throw new Error("'EventSource' is not supported in your environment.");
+ }
+ return new ServerSentEventsTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);
+ case HttpTransportType.LongPolling:
+ return new LongPollingTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);
+ default:
+ throw new Error(`Unknown transport: ${transport}.`);
+ }
+ }
+ _startTransport(url, transferFormat) {
+ this.transport.onreceive = this.onreceive;
+ this.transport.onclose = (e) => this._stopConnection(e);
+ return this.transport.connect(url, transferFormat);
+ }
+ _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat) {
+ const transport = HttpTransportType[endpoint.transport];
+ if (transport === null || transport === undefined) {
+ this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);
+ return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);
+ }
+ else {
+ if (transportMatches(requestedTransport, transport)) {
+ const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);
+ if (transferFormats.indexOf(requestedTransferFormat) >= 0) {
+ if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||
+ (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {
+ this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);
+ return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);
+ }
+ else {
+ this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);
+ try {
+ return this._constructTransport(transport);
+ }
+ catch (ex) {
+ return ex;
+ }
+ }
+ }
+ else {
+ this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);
+ return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);
+ }
+ }
+ else {
+ this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);
+ return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);
+ }
+ }
+ }
+ _isITransport(transport) {
+ return transport && typeof (transport) === "object" && "connect" in transport;
+ }
+ _stopConnection(error) {
+ this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);
+ this.transport = undefined;
+ // If we have a stopError, it takes precedence over the error from the transport
+ error = this._stopError || error;
+ this._stopError = undefined;
+ if (this._connectionState === "Disconnected" /* Disconnected */) {
+ this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);
+ return;
+ }
+ if (this._connectionState === "Connecting" /* Connecting */) {
+ this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);
+ throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);
+ }
+ if (this._connectionState === "Disconnecting" /* Disconnecting */) {
+ // A call to stop() induced this call to stopConnection and needs to be completed.
+ // Any stop() awaiters will be scheduled to continue after the onclose callback fires.
+ this._stopPromiseResolver();
+ }
+ if (error) {
+ this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);
+ }
+ else {
+ this._logger.log(LogLevel.Information, "Connection disconnected.");
+ }
+ if (this._sendQueue) {
+ this._sendQueue.stop().catch((e) => {
+ this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);
+ });
+ this._sendQueue = undefined;
+ }
+ this.connectionId = undefined;
+ this._connectionState = "Disconnected" /* Disconnected */;
+ if (this._connectionStarted) {
+ this._connectionStarted = false;
+ try {
+ if (this.onclose) {
+ this.onclose(error);
+ }
+ }
+ catch (e) {
+ this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);
+ }
+ }
+ }
+ _resolveUrl(url) {
+ // startsWith is not supported in IE
+ if (url.lastIndexOf("https://", 0) === 0 || url.lastIndexOf("http://", 0) === 0) {
+ return url;
+ }
+ if (!Platform.isBrowser) {
+ throw new Error(`Cannot resolve '${url}'.`);
+ }
+ // Setting the url to the href propery of an anchor tag handles normalization
+ // for us. There are 3 main cases.
+ // 1. Relative path normalization e.g "b" -> "http://localhost:5000/a/b"
+ // 2. Absolute path normalization e.g "/a/b" -> "http://localhost:5000/a/b"
+ // 3. Networkpath reference normalization e.g "//localhost:5000/a/b" -> "http://localhost:5000/a/b"
+ const aTag = window.document.createElement("a");
+ aTag.href = url;
+ this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);
+ return aTag.href;
+ }
+ _resolveNegotiateUrl(url) {
+ const index = url.indexOf("?");
+ let negotiateUrl = url.substring(0, index === -1 ? url.length : index);
+ if (negotiateUrl[negotiateUrl.length - 1] !== "/") {
+ negotiateUrl += "/";
+ }
+ negotiateUrl += "negotiate";
+ negotiateUrl += index === -1 ? "" : url.substring(index);
+ if (negotiateUrl.indexOf("negotiateVersion") === -1) {
+ negotiateUrl += index === -1 ? "?" : "&";
+ negotiateUrl += "negotiateVersion=" + this._negotiateVersion;
+ }
+ return negotiateUrl;
+ }
+}
+function transportMatches(requestedTransport, actualTransport) {
+ return !requestedTransport || ((actualTransport & requestedTransport) !== 0);
+}
+/** @private */
+class TransportSendQueue {
+ constructor(_transport) {
+ this._transport = _transport;
+ this._buffer = [];
+ this._executing = true;
+ this._sendBufferedData = new PromiseSource();
+ this._transportResult = new PromiseSource();
+ this._sendLoopPromise = this._sendLoop();
+ }
+ send(data) {
+ this._bufferData(data);
+ if (!this._transportResult) {
+ this._transportResult = new PromiseSource();
+ }
+ return this._transportResult.promise;
+ }
+ stop() {
+ this._executing = false;
+ this._sendBufferedData.resolve();
+ return this._sendLoopPromise;
+ }
+ _bufferData(data) {
+ if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {
+ throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);
+ }
+ this._buffer.push(data);
+ this._sendBufferedData.resolve();
+ }
+ async _sendLoop() {
+ while (true) {
+ await this._sendBufferedData.promise;
+ if (!this._executing) {
+ if (this._transportResult) {
+ this._transportResult.reject("Connection stopped.");
+ }
+ break;
+ }
+ this._sendBufferedData = new PromiseSource();
+ const transportResult = this._transportResult;
+ this._transportResult = undefined;
+ const data = typeof (this._buffer[0]) === "string" ?
+ this._buffer.join("") :
+ TransportSendQueue._concatBuffers(this._buffer);
+ this._buffer.length = 0;
+ try {
+ await this._transport.send(data);
+ transportResult.resolve();
+ }
+ catch (error) {
+ transportResult.reject(error);
+ }
+ }
+ }
+ static _concatBuffers(arrayBuffers) {
+ const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);
+ const result = new Uint8Array(totalLength);
+ let offset = 0;
+ for (const item of arrayBuffers) {
+ result.set(new Uint8Array(item), offset);
+ offset += item.byteLength;
+ }
+ return result.buffer;
+ }
+}
+class PromiseSource {
+ constructor() {
+ this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);
+ }
+ resolve() {
+ this._resolver();
+ }
+ reject(reason) {
+ this._rejecter(reason);
+ }
+}
+
+;// CONCATENATED MODULE: ./src/JsonHubProtocol.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+const JSON_HUB_PROTOCOL_NAME = "json";
+/** Implements the JSON Hub Protocol. */
+class JsonHubProtocol {
+ constructor() {
+ /** @inheritDoc */
+ this.name = JSON_HUB_PROTOCOL_NAME;
+ /** @inheritDoc */
+ this.version = 1;
+ /** @inheritDoc */
+ this.transferFormat = TransferFormat.Text;
+ }
+ /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.
+ *
+ * @param {string} input A string containing the serialized representation.
+ * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.
+ */
+ parseMessages(input, logger) {
+ // The interface does allow "ArrayBuffer" to be passed in, but this implementation does not. So let's throw a useful error.
+ if (typeof input !== "string") {
+ throw new Error("Invalid input for JSON hub protocol. Expected a string.");
+ }
+ if (!input) {
+ return [];
+ }
+ if (logger === null) {
+ logger = NullLogger.instance;
+ }
+ // Parse the messages
+ const messages = TextMessageFormat.parse(input);
+ const hubMessages = [];
+ for (const message of messages) {
+ const parsedMessage = JSON.parse(message);
+ if (typeof parsedMessage.type !== "number") {
+ throw new Error("Invalid payload.");
+ }
+ switch (parsedMessage.type) {
+ case MessageType.Invocation:
+ this._isInvocationMessage(parsedMessage);
+ break;
+ case MessageType.StreamItem:
+ this._isStreamItemMessage(parsedMessage);
+ break;
+ case MessageType.Completion:
+ this._isCompletionMessage(parsedMessage);
+ break;
+ case MessageType.Ping:
+ // Single value, no need to validate
+ break;
+ case MessageType.Close:
+ // All optional values, no need to validate
+ break;
+ default:
+ // Future protocol changes can add message types, old clients can ignore them
+ logger.log(LogLevel.Information, "Unknown message type '" + parsedMessage.type + "' ignored.");
+ continue;
+ }
+ hubMessages.push(parsedMessage);
+ }
+ return hubMessages;
+ }
+ /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.
+ *
+ * @param {HubMessage} message The message to write.
+ * @returns {string} A string containing the serialized representation of the message.
+ */
+ writeMessage(message) {
+ return TextMessageFormat.write(JSON.stringify(message));
+ }
+ _isInvocationMessage(message) {
+ this._assertNotEmptyString(message.target, "Invalid payload for Invocation message.");
+ if (message.invocationId !== undefined) {
+ this._assertNotEmptyString(message.invocationId, "Invalid payload for Invocation message.");
+ }
+ }
+ _isStreamItemMessage(message) {
+ this._assertNotEmptyString(message.invocationId, "Invalid payload for StreamItem message.");
+ if (message.item === undefined) {
+ throw new Error("Invalid payload for StreamItem message.");
+ }
+ }
+ _isCompletionMessage(message) {
+ if (message.result && message.error) {
+ throw new Error("Invalid payload for Completion message.");
+ }
+ if (!message.result && message.error) {
+ this._assertNotEmptyString(message.error, "Invalid payload for Completion message.");
+ }
+ this._assertNotEmptyString(message.invocationId, "Invalid payload for Completion message.");
+ }
+ _assertNotEmptyString(value, errorMessage) {
+ if (typeof value !== "string" || value === "") {
+ throw new Error(errorMessage);
+ }
+ }
+}
+
+;// CONCATENATED MODULE: ./src/HubConnectionBuilder.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+
+
+const LogLevelNameMapping = {
+ trace: LogLevel.Trace,
+ debug: LogLevel.Debug,
+ info: LogLevel.Information,
+ information: LogLevel.Information,
+ warn: LogLevel.Warning,
+ warning: LogLevel.Warning,
+ error: LogLevel.Error,
+ critical: LogLevel.Critical,
+ none: LogLevel.None,
+};
+function parseLogLevel(name) {
+ // Case-insensitive matching via lower-casing
+ // Yes, I know case-folding is a complicated problem in Unicode, but we only support
+ // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.
+ const mapping = LogLevelNameMapping[name.toLowerCase()];
+ if (typeof mapping !== "undefined") {
+ return mapping;
+ }
+ else {
+ throw new Error(`Unknown log level: ${name}`);
+ }
+}
+/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */
+class HubConnectionBuilder {
+ configureLogging(logging) {
+ Arg.isRequired(logging, "logging");
+ if (isLogger(logging)) {
+ this.logger = logging;
+ }
+ else if (typeof logging === "string") {
+ const logLevel = parseLogLevel(logging);
+ this.logger = new ConsoleLogger(logLevel);
+ }
+ else {
+ this.logger = new ConsoleLogger(logging);
+ }
+ return this;
+ }
+ withUrl(url, transportTypeOrOptions) {
+ Arg.isRequired(url, "url");
+ Arg.isNotEmpty(url, "url");
+ this.url = url;
+ // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed
+ // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.
+ if (typeof transportTypeOrOptions === "object") {
+ this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };
+ }
+ else {
+ this.httpConnectionOptions = {
+ ...this.httpConnectionOptions,
+ transport: transportTypeOrOptions,
+ };
+ }
+ return this;
+ }
+ /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.
+ *
+ * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.
+ */
+ withHubProtocol(protocol) {
+ Arg.isRequired(protocol, "protocol");
+ this.protocol = protocol;
+ return this;
+ }
+ withAutomaticReconnect(retryDelaysOrReconnectPolicy) {
+ if (this.reconnectPolicy) {
+ throw new Error("A reconnectPolicy has already been set.");
+ }
+ if (!retryDelaysOrReconnectPolicy) {
+ this.reconnectPolicy = new DefaultReconnectPolicy();
+ }
+ else if (Array.isArray(retryDelaysOrReconnectPolicy)) {
+ this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);
+ }
+ else {
+ this.reconnectPolicy = retryDelaysOrReconnectPolicy;
+ }
+ return this;
+ }
+ /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.
+ *
+ * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.
+ */
+ build() {
+ // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one
+ // provided to configureLogger
+ const httpConnectionOptions = this.httpConnectionOptions || {};
+ // If it's 'null', the user **explicitly** asked for null, don't mess with it.
+ if (httpConnectionOptions.logger === undefined) {
+ // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.
+ httpConnectionOptions.logger = this.logger;
+ }
+ // Now create the connection
+ if (!this.url) {
+ throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");
+ }
+ const connection = new HttpConnection(this.url, httpConnectionOptions);
+ return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy);
+ }
+}
+function isLogger(logger) {
+ return logger.log !== undefined;
+}
+
+;// CONCATENATED MODULE: ./src/index.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+
+
+
+
+
+
+
+
+
+;// CONCATENATED MODULE: ./src/browser-index.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds.
+// Copy from Array.prototype into Uint8Array to polyfill on IE. It's OK because the implementations of indexOf and slice use properties
+// that exist on Uint8Array with the same name, and JavaScript is magic.
+// We make them 'writable' because the Buffer polyfill messes with it as well.
+if (!Uint8Array.prototype.indexOf) {
+ Object.defineProperty(Uint8Array.prototype, "indexOf", {
+ value: Array.prototype.indexOf,
+ writable: true,
+ });
+}
+if (!Uint8Array.prototype.slice) {
+ Object.defineProperty(Uint8Array.prototype, "slice", {
+ // wrap the slice in Uint8Array so it looks like a Uint8Array.slice call
+ // eslint-disable-next-line object-shorthand
+ value: function (start, end) { return new Uint8Array(Array.prototype.slice.call(this, start, end)); },
+ writable: true,
+ });
+}
+if (!Uint8Array.prototype.forEach) {
+ Object.defineProperty(Uint8Array.prototype, "forEach", {
+ value: Array.prototype.forEach,
+ writable: true,
+ });
+}
+
+
+/******/ return __webpack_exports__;
+/******/ })()
+;
+});
//# sourceMappingURL=signalr.js.map
\ No newline at end of file
diff --git a/Server/wwwroot/lib/microsoft-signalr/signalr.min.js b/Server/wwwroot/lib/microsoft-signalr/signalr.min.js
index 504d89c4..1204a9a7 100644
--- a/Server/wwwroot/lib/microsoft-signalr/signalr.min.js
+++ b/Server/wwwroot/lib/microsoft-signalr/signalr.min.js
@@ -1,2 +1,2 @@
-var t,e;t=self,e=function(){return(()=>{var t={d:(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"t",{value:!0})};var e,n={};t.r(n),t.d(n,{AbortError:()=>s,DefaultHttpClient:()=>q,HttpClient:()=>d,HttpError:()=>o,HttpResponse:()=>u,HttpTransportType:()=>O,HubConnection:()=>j,HubConnectionBuilder:()=>Z,HubConnectionState:()=>W,JsonHubProtocol:()=>G,LogLevel:()=>e,MessageType:()=>H,NullLogger:()=>p,Subject:()=>L,TimeoutError:()=>r,TransferFormat:()=>_,VERSION:()=>g});class o extends Error{constructor(t,e){const n=new.target.prototype;super(`${t}: Status code '${e}'`),this.statusCode=e,this.__proto__=n}}class r extends Error{constructor(t="A timeout occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class s extends Error{constructor(t="An abort occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class i extends Error{constructor(t,e){const n=new.target.prototype;super(t),this.transport=e,this.errorType="UnsupportedTransportError",this.__proto__=n}}class c extends Error{constructor(t,e){const n=new.target.prototype;super(t),this.transport=e,this.errorType="DisabledTransportError",this.__proto__=n}}class a extends Error{constructor(t,e){const n=new.target.prototype;super(t),this.transport=e,this.errorType="FailedToStartTransportError",this.__proto__=n}}class h extends Error{constructor(t){const e=new.target.prototype;super(t),this.errorType="FailedToNegotiateWithServerError",this.__proto__=e}}class l extends Error{constructor(t,e){const n=new.target.prototype;super(t),this.innerErrors=e,this.__proto__=n}}class u{constructor(t,e,n){this.statusCode=t,this.statusText=e,this.content=n}}class d{get(t,e){return this.send({...e,method:"GET",url:t})}post(t,e){return this.send({...e,method:"POST",url:t})}delete(t,e){return this.send({...e,method:"DELETE",url:t})}getCookieString(t){return""}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug",t[t.Information=2]="Information",t[t.Warning=3]="Warning",t[t.Error=4]="Error",t[t.Critical=5]="Critical",t[t.None=6]="None"}(e||(e={}));class p{constructor(){}log(t,e){}}p.instance=new p;const g="6.0.0";class f{static isRequired(t,e){if(null==t)throw new Error(`The '${e}' argument is required.`)}static isNotEmpty(t,e){if(!t||t.match(/^\s*$/))throw new Error(`The '${e}' argument should not be empty.`)}static isIn(t,e,n){if(!(t in e))throw new Error(`Unknown ${n} value: ${t}.`)}}class w{static get isBrowser(){return"object"==typeof window}static get isWebWorker(){return"object"==typeof self&&"importScripts"in self}static get isNode(){return!this.isBrowser&&!this.isWebWorker}}function m(t,e){let n="";return b(t)?(n=`Binary data of length ${t.byteLength}`,e&&(n+=`. Content: '${function(t){const e=new Uint8Array(t);let n="";return e.forEach((t=>{n+=`0x${t<16?"0":""}${t.toString(16)} `})),n.substr(0,n.length-1)}(t)}'`)):"string"==typeof t&&(n=`String data of length ${t.length}`,e&&(n+=`. Content: '${t}'`)),n}function b(t){return t&&"undefined"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&"ArrayBuffer"===t.constructor.name)}async function y(t,n,o,r,s,i,c){let a={};if(s){const t=await s();t&&(a={Authorization:`Bearer ${t}`})}const[h,l]=S();a[h]=l,t.log(e.Trace,`(${n} transport) sending data. ${m(i,c.logMessageContent)}.`);const u=b(i)?"arraybuffer":"text",d=await o.post(r,{content:i,headers:{...a,...c.headers},responseType:u,timeout:c.timeout,withCredentials:c.withCredentials});t.log(e.Trace,`(${n} transport) request complete. Response status: ${d.statusCode}.`)}class v{constructor(t,e){this.i=t,this.h=e}dispose(){const t=this.i.observers.indexOf(this.h);t>-1&&this.i.observers.splice(t,1),0===this.i.observers.length&&this.i.cancelCallback&&this.i.cancelCallback().catch((t=>{}))}}class C{constructor(t){this.l=t,this.out=console}log(t,n){if(t>=this.l){const o=`[${(new Date).toISOString()}] ${e[t]}: ${n}`;switch(t){case e.Critical:case e.Error:this.out.error(o);break;case e.Warning:this.out.warn(o);break;case e.Information:this.out.info(o);break;default:this.out.log(o)}}}}function S(){let t="X-SignalR-User-Agent";return w.isNode&&(t="User-Agent"),[t,E(g,$(),w.isNode?"NodeJS":"Browser",T())]}function E(t,e,n,o){let r="Microsoft SignalR/";const s=t.split(".");return r+=`${s[0]}.${s[1]}`,r+=` (${t}; `,r+=e&&""!==e?`${e}; `:"Unknown OS; ",r+=`${n}`,r+=o?`; ${o}`:"; Unknown Runtime Version",r+=")",r}function $(){if(!w.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function T(){if(w.isNode)return process.versions.node}function k(t){return t.stack?t.stack:t.message?t.message:`${t}`}class P extends d{constructor(e){if(super(),this.u=e,"undefined"==typeof fetch){const t=require;this.p=new(t("tough-cookie").CookieJar),this.m=t("node-fetch"),this.m=t("fetch-cookie")(this.m,this.p)}else this.m=fetch.bind(function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t.g)return t.g;throw new Error("could not find global")}());if("undefined"==typeof AbortController){const t=require;this.v=t("abort-controller")}else this.v=AbortController}async send(t){if(t.abortSignal&&t.abortSignal.aborted)throw new s;if(!t.method)throw new Error("No method defined.");if(!t.url)throw new Error("No url defined.");const n=new this.v;let i;t.abortSignal&&(t.abortSignal.onabort=()=>{n.abort(),i=new s});let c,a=null;if(t.timeout){const o=t.timeout;a=setTimeout((()=>{n.abort(),this.u.log(e.Warning,"Timeout from HTTP request."),i=new r}),o)}try{c=await this.m(t.url,{body:t.content,cache:"no-cache",credentials:!0===t.withCredentials?"include":"same-origin",headers:{"Content-Type":"text/plain;charset=UTF-8","X-Requested-With":"XMLHttpRequest",...t.headers},method:t.method,mode:"cors",redirect:"follow",signal:n.signal})}catch(t){if(i)throw i;throw this.u.log(e.Warning,`Error from HTTP request. ${t}.`),t}finally{a&&clearTimeout(a),t.abortSignal&&(t.abortSignal.onabort=null)}if(!c.ok){const t=await I(c,"text");throw new o(t||c.statusText,c.status)}const h=I(c,t.responseType),l=await h;return new u(c.status,c.statusText,l)}getCookieString(t){let e="";return w.isNode&&this.p&&this.p.getCookies(t,((t,n)=>e=n.join("; "))),e}}function I(t,e){let n;switch(e){case"arraybuffer":n=t.arrayBuffer();break;case"text":n=t.text();break;case"blob":case"document":case"json":throw new Error(`${e} is not supported.`);default:n=t.text()}return n}class D extends d{constructor(t){super(),this.u=t}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new s):t.method?t.url?new Promise(((n,i)=>{const c=new XMLHttpRequest;c.open(t.method,t.url,!0),c.withCredentials=void 0===t.withCredentials||t.withCredentials,c.setRequestHeader("X-Requested-With","XMLHttpRequest"),c.setRequestHeader("Content-Type","text/plain;charset=UTF-8");const a=t.headers;a&&Object.keys(a).forEach((t=>{c.setRequestHeader(t,a[t])})),t.responseType&&(c.responseType=t.responseType),t.abortSignal&&(t.abortSignal.onabort=()=>{c.abort(),i(new s)}),t.timeout&&(c.timeout=t.timeout),c.onload=()=>{t.abortSignal&&(t.abortSignal.onabort=null),c.status>=200&&c.status<300?n(new u(c.status,c.statusText,c.response||c.responseText)):i(new o(c.response||c.responseText||c.statusText,c.status))},c.onerror=()=>{this.u.log(e.Warning,`Error from HTTP request. ${c.status}: ${c.statusText}.`),i(new o(c.statusText,c.status))},c.ontimeout=()=>{this.u.log(e.Warning,"Timeout from HTTP request."),i(new r)},c.send(t.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}}class q extends d{constructor(t){if(super(),"undefined"!=typeof fetch||w.isNode)this.$=new P(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");this.$=new D(t)}}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new s):t.method?t.url?this.$.send(t):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}getCookieString(t){return this.$.getCookieString(t)}}class R{static write(t){return`${t}${R.RecordSeparator}`}static parse(t){if(t[t.length-1]!==R.RecordSeparator)throw new Error("Message is incomplete.");const e=t.split(R.RecordSeparator);return e.pop(),e}}R.RecordSeparatorCode=30,R.RecordSeparator=String.fromCharCode(R.RecordSeparatorCode);class x{writeHandshakeRequest(t){return R.write(JSON.stringify(t))}parseHandshakeResponse(t){let e,n;if(b(t)){const o=new Uint8Array(t),r=o.indexOf(R.RecordSeparatorCode);if(-1===r)throw new Error("Message is incomplete.");const s=r+1;e=String.fromCharCode.apply(null,Array.prototype.slice.call(o.slice(0,s))),n=o.byteLength>s?o.slice(s).buffer:null}else{const o=t,r=o.indexOf(R.RecordSeparator);if(-1===r)throw new Error("Message is incomplete.");const s=r+1;e=o.substring(0,s),n=o.length>s?o.substring(s):null}const o=R.parse(e),r=JSON.parse(o[0]);if(r.type)throw new Error("Expected a handshake response from the server.");return[n,r]}}var H,W;!function(t){t[t.Invocation=1]="Invocation",t[t.StreamItem=2]="StreamItem",t[t.Completion=3]="Completion",t[t.StreamInvocation=4]="StreamInvocation",t[t.CancelInvocation=5]="CancelInvocation",t[t.Ping=6]="Ping",t[t.Close=7]="Close"}(H||(H={}));class L{constructor(){this.observers=[]}next(t){for(const e of this.observers)e.next(t)}error(t){for(const e of this.observers)e.error&&e.error(t)}complete(){for(const t of this.observers)t.complete&&t.complete()}subscribe(t){return this.observers.push(t),new v(this,t)}}!function(t){t.Disconnected="Disconnected",t.Connecting="Connecting",t.Connected="Connected",t.Disconnecting="Disconnecting",t.Reconnecting="Reconnecting"}(W||(W={}));class j{constructor(t,n,o,r){this.C=0,this.S=()=>{this.u.log(e.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},f.isRequired(t,"connection"),f.isRequired(n,"logger"),f.isRequired(o,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.u=n,this.k=o,this.connection=t,this.P=r,this.T=new x,this.connection.onreceive=t=>this.I(t),this.connection.onclose=t=>this._(t),this.H={},this.D={},this.A=[],this.R=[],this.U=[],this.L=0,this.N=!1,this.q=W.Disconnected,this.M=!1,this.W=this.k.writeMessage({type:H.Ping})}static create(t,e,n,o){return new j(t,e,n,o)}get state(){return this.q}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(t){if(this.q!==W.Disconnected&&this.q!==W.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t}start(){return this.O=this.j(),this.O}async j(){if(this.q!==W.Disconnected)return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this.q=W.Connecting,this.u.log(e.Debug,"Starting HubConnection.");try{await this.F(),w.isBrowser&&document&&document.addEventListener("freeze",this.S),this.q=W.Connected,this.M=!0,this.u.log(e.Debug,"HubConnection connected successfully.")}catch(t){return this.q=W.Disconnected,this.u.log(e.Debug,`HubConnection failed to start successfully because of error '${t}'.`),Promise.reject(t)}}async F(){this.B=void 0,this.N=!1;const t=new Promise(((t,e)=>{this.X=t,this.J=e}));await this.connection.start(this.k.transferFormat);try{const n={protocol:this.k.name,version:this.k.version};if(this.u.log(e.Debug,"Sending handshake request."),await this.V(this.T.writeHandshakeRequest(n)),this.u.log(e.Information,`Using HubProtocol '${this.k.name}'.`),this.G(),this.K(),this.Y(),await t,this.B)throw this.B}catch(t){throw this.u.log(e.Debug,`Hub handshake failed with error '${t}' during start(). Stopping HubConnection.`),this.G(),this.Z(),await this.connection.stop(t),t}}async stop(){const t=this.O;this.tt=this.et(),await this.tt;try{await t}catch(t){}}et(t){return this.q===W.Disconnected?(this.u.log(e.Debug,`Call to HubConnection.stop(${t}) ignored because it is already in the disconnected state.`),Promise.resolve()):this.q===W.Disconnecting?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q=W.Disconnecting,this.u.log(e.Debug,"Stopping HubConnection."),this.st?(this.u.log(e.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.st),this.st=void 0,this.nt(),Promise.resolve()):(this.G(),this.Z(),this.B=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))}stream(t,...e){const[n,o]=this.it(e),r=this.rt(t,e,o);let s;const i=new L;return i.cancelCallback=()=>{const t=this.ot(r.invocationId);return delete this.H[r.invocationId],s.then((()=>this.ht(t)))},this.H[r.invocationId]=(t,e)=>{e?i.error(e):t&&(t.type===H.Completion?t.error?i.error(new Error(t.error)):i.complete():i.next(t.item))},s=this.ht(r).catch((t=>{i.error(t),delete this.H[r.invocationId]})),this.ct(n,s),i}V(t){return this.Y(),this.connection.send(t)}ht(t){return this.V(this.k.writeMessage(t))}send(t,...e){const[n,o]=this.it(e),r=this.ht(this.at(t,e,!0,o));return this.ct(n,r),r}invoke(t,...e){const[n,o]=this.it(e),r=this.at(t,e,!1,o);return new Promise(((t,e)=>{this.H[r.invocationId]=(n,o)=>{o?e(o):n&&(n.type===H.Completion?n.error?e(new Error(n.error)):t(n.result):e(new Error(`Unexpected message type: ${n.type}`)))};const o=this.ht(r).catch((t=>{e(t),delete this.H[r.invocationId]}));this.ct(n,o)}))}on(t,e){t&&e&&(t=t.toLowerCase(),this.D[t]||(this.D[t]=[]),-1===this.D[t].indexOf(e)&&this.D[t].push(e))}off(t,e){if(!t)return;t=t.toLowerCase();const n=this.D[t];if(n)if(e){const o=n.indexOf(e);-1!==o&&(n.splice(o,1),0===n.length&&delete this.D[t])}else delete this.D[t]}onclose(t){t&&this.A.push(t)}onreconnecting(t){t&&this.R.push(t)}onreconnected(t){t&&this.U.push(t)}I(t){if(this.G(),this.N||(t=this.lt(t),this.N=!0),t){const n=this.k.parseMessages(t,this.u);for(const o of n)switch(o.type){case H.Invocation:this.ut(o);break;case H.StreamItem:case H.Completion:{const n=this.H[o.invocationId];if(n){o.type===H.Completion&&delete this.H[o.invocationId];try{n(o)}catch(t){this.u.log(e.Error,`Stream callback threw error: ${k(t)}`)}}break}case H.Ping:break;case H.Close:{this.u.log(e.Information,"Close message received from server.");const t=o.error?new Error("Server returned an error on close: "+o.error):void 0;!0===o.allowReconnect?this.connection.stop(t):this.tt=this.et(t);break}default:this.u.log(e.Warning,`Invalid message type: ${o.type}.`)}}this.K()}lt(t){let n,o;try{[o,n]=this.T.parseHandshakeResponse(t)}catch(t){const n="Error parsing handshake response: "+t;this.u.log(e.Error,n);const o=new Error(n);throw this.J(o),o}if(n.error){const t="Server returned handshake error: "+n.error;this.u.log(e.Error,t);const o=new Error(t);throw this.J(o),o}return this.u.log(e.Debug,"Server handshake complete."),this.X(),o}Y(){this.connection.features.inherentKeepAlive||(this.C=(new Date).getTime()+this.keepAliveIntervalInMilliseconds,this.Z())}K(){if(!(this.connection.features&&this.connection.features.inherentKeepAlive||(this.dt=setTimeout((()=>this.serverTimeout()),this.serverTimeoutInMilliseconds),void 0!==this.ft))){let t=this.C-(new Date).getTime();t<0&&(t=0),this.ft=setTimeout((async()=>{if(this.q===W.Connected)try{await this.V(this.W)}catch{this.Z()}}),t)}}serverTimeout(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))}ut(t){const n=this.D[t.target.toLowerCase()];if(n){try{n.forEach((e=>e.apply(this,t.arguments)))}catch(n){this.u.log(e.Error,`A callback for the method ${t.target.toLowerCase()} threw error '${n}'.`)}if(t.invocationId){const t="Server requested a response, which is not supported in this version of the client.";this.u.log(e.Error,t),this.tt=this.et(new Error(t))}}else this.u.log(e.Warning,`No client method with the name '${t.target}' found.`)}_(t){this.u.log(e.Debug,`HubConnection.connectionClosed(${t}) called while in state ${this.q}.`),this.B=this.B||t||new Error("The underlying connection was closed before the hub handshake could complete."),this.X&&this.X(),this.wt(t||new Error("Invocation canceled due to the underlying connection being closed.")),this.G(),this.Z(),this.q===W.Disconnecting?this.nt(t):this.q===W.Connected&&this.P?this.gt(t):this.q===W.Connected&&this.nt(t)}nt(t){if(this.M){this.q=W.Disconnected,this.M=!1,w.isBrowser&&document&&document.removeEventListener("freeze",this.S);try{this.A.forEach((e=>e.apply(this,[t])))}catch(n){this.u.log(e.Error,`An onclose callback called with error '${t}' threw error '${n}'.`)}}}async gt(t){const n=Date.now();let o=0,r=void 0!==t?t:new Error("Attempting to reconnect due to a unknown error."),s=this.yt(o++,0,r);if(null===s)return this.u.log(e.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),void this.nt(t);if(this.q=W.Reconnecting,t?this.u.log(e.Information,`Connection reconnecting because of error '${t}'.`):this.u.log(e.Information,"Connection reconnecting."),0!==this.R.length){try{this.R.forEach((e=>e.apply(this,[t])))}catch(n){this.u.log(e.Error,`An onreconnecting callback called with error '${t}' threw error '${n}'.`)}if(this.q!==W.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.")}for(;null!==s;){if(this.u.log(e.Information,`Reconnect attempt number ${o} will start in ${s} ms.`),await new Promise((t=>{this.st=setTimeout(t,s)})),this.st=void 0,this.q!==W.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");try{if(await this.F(),this.q=W.Connected,this.u.log(e.Information,"HubConnection reconnected successfully."),0!==this.U.length)try{this.U.forEach((t=>t.apply(this,[this.connection.connectionId])))}catch(t){this.u.log(e.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${t}'.`)}return}catch(t){if(this.u.log(e.Information,`Reconnect attempt failed because of error '${t}'.`),this.q!==W.Reconnecting)return this.u.log(e.Debug,`Connection moved to the '${this.q}' from the reconnecting state during reconnect attempt. Done reconnecting.`),void(this.q===W.Disconnecting&&this.nt());r=t instanceof Error?t:new Error(t.toString()),s=this.yt(o++,Date.now()-n,r)}}this.u.log(e.Information,`Reconnect retries have been exhausted after ${Date.now()-n} ms and ${o} failed attempts. Connection disconnecting.`),this.nt()}yt(t,n,o){try{return this.P.nextRetryDelayInMilliseconds({elapsedMilliseconds:n,previousRetryCount:t,retryReason:o})}catch(o){return this.u.log(e.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${t}, ${n}) threw error '${o}'.`),null}}wt(t){const n=this.H;this.H={},Object.keys(n).forEach((o=>{const r=n[o];try{r(null,t)}catch(n){this.u.log(e.Error,`Stream 'error' callback called with '${t}' threw error: ${k(n)}`)}}))}Z(){this.ft&&(clearTimeout(this.ft),this.ft=void 0)}G(){this.dt&&clearTimeout(this.dt)}at(t,e,n,o){if(n)return 0!==o.length?{arguments:e,streamIds:o,target:t,type:H.Invocation}:{arguments:e,target:t,type:H.Invocation};{const n=this.L;return this.L++,0!==o.length?{arguments:e,invocationId:n.toString(),streamIds:o,target:t,type:H.Invocation}:{arguments:e,invocationId:n.toString(),target:t,type:H.Invocation}}}ct(t,e){if(0!==t.length){e||(e=Promise.resolve());for(const n in t)t[n].subscribe({complete:()=>{e=e.then((()=>this.ht(this.bt(n))))},error:t=>{let o;o=t instanceof Error?t.message:t&&t.toString?t.toString():"Unknown error",e=e.then((()=>this.ht(this.bt(n,o))))},next:t=>{e=e.then((()=>this.ht(this.vt(n,t))))}})}}it(t){const e=[],n=[];for(let o=0;o{let s,i=!1;if(n===_.Text){if(w.isBrowser||w.isWebWorker)s=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials});else{const e=this.$.getCookieString(t),n={};n.Cookie=e;const[o,r]=S();n[o]=r,s=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials,headers:{...n,...this.Pt.headers}})}try{s.onmessage=t=>{if(this.onreceive)try{this.u.log(e.Trace,`(SSE transport) data received. ${m(t.data,this.Pt.logMessageContent)}.`),this.onreceive(t.data)}catch(t){return void this.Ut(t)}},s.onerror=t=>{i?this.Ut():r(new Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},s.onopen=()=>{this.u.log(e.Information,`SSE connected to ${this.It}`),this.Lt=s,i=!0,o()}}catch(t){return void r(t)}}else r(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))}async send(t){return this.Lt?y(this.u,"SSE",this.$,this.It,this.St,t,this.Pt):Promise.reject(new Error("Cannot send until the transport is connected"))}stop(){return this.Ut(),Promise.resolve()}Ut(t){this.Lt&&(this.Lt.close(),this.Lt=void 0,this.onclose&&this.onclose(t))}}class J{constructor(t,e,n,o,r,s){this.u=n,this.St=e,this.Nt=o,this.qt=r,this.$=t,this.onreceive=null,this.onclose=null,this.Mt=s}async connect(t,n){if(f.isRequired(t,"url"),f.isRequired(n,"transferFormat"),f.isIn(n,_,"transferFormat"),this.u.log(e.Trace,"(WebSockets transport) Connecting."),this.St){const e=await this.St();e&&(t+=(t.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(e)}`)}return new Promise(((o,r)=>{let s;t=t.replace(/^http/,"ws");const i=this.$.getCookieString(t);let c=!1;if(w.isNode){const e={},[n,o]=S();e[n]=o,i&&(e[U.Cookie]=`${i}`),s=new this.qt(t,void 0,{headers:{...e,...this.Mt}})}s||(s=new this.qt(t)),n===_.Binary&&(s.binaryType="arraybuffer"),s.onopen=n=>{this.u.log(e.Information,`WebSocket connected to ${t}.`),this.Wt=s,c=!0,o()},s.onerror=t=>{let n=null;n="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"There was an error with the transport",this.u.log(e.Information,`(WebSockets transport) ${n}.`)},s.onmessage=t=>{if(this.u.log(e.Trace,`(WebSockets transport) data received. ${m(t.data,this.Nt)}.`),this.onreceive)try{this.onreceive(t.data)}catch(t){return void this.Ut(t)}},s.onclose=t=>{if(c)this.Ut(t);else{let e=null;e="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.",r(new Error(e))}}}))}send(t){return this.Wt&&this.Wt.readyState===this.qt.OPEN?(this.u.log(e.Trace,`(WebSockets transport) sending data. ${m(t,this.Nt)}.`),this.Wt.send(t),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this.Wt&&this.Ut(void 0),Promise.resolve()}Ut(t){this.Wt&&(this.Wt.onclose=()=>{},this.Wt.onmessage=()=>{},this.Wt.onerror=()=>{},this.Wt.close(),this.Wt=void 0),this.u.log(e.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this.Ot(t)||!1!==t.wasClean&&1e3===t.code?t instanceof Error?this.onclose(t):this.onclose():this.onclose(new Error(`WebSocket closed with status code: ${t.code} (${t.reason||"no reason given"}).`)))}Ot(t){return t&&"boolean"==typeof t.wasClean&&"number"==typeof t.code}}class X{constructor(t,n={}){var o;if(this.jt=()=>{},this.features={},this.Ft=1,f.isRequired(t,"url"),this.u=void 0===(o=n.logger)?new C(e.Information):null===o?p.instance:void 0!==o.log?o:new C(o),this.baseUrl=this.Bt(t),(n=n||{}).logMessageContent=void 0!==n.logMessageContent&&n.logMessageContent,"boolean"!=typeof n.withCredentials&&void 0!==n.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");n.withCredentials=void 0===n.withCredentials||n.withCredentials,n.timeout=void 0===n.timeout?1e5:n.timeout;let r=null,s=null;if(w.isNode){const t=require;r=t("ws"),s=t("eventsource")}w.isNode||"undefined"==typeof WebSocket||n.WebSocket?w.isNode&&!n.WebSocket&&r&&(n.WebSocket=r):n.WebSocket=WebSocket,w.isNode||"undefined"==typeof EventSource||n.EventSource?w.isNode&&!n.EventSource&&void 0!==s&&(n.EventSource=s):n.EventSource=EventSource,this.$=n.httpClient||new q(this.u),this.q="Disconnected",this.M=!1,this.Pt=n,this.onreceive=null,this.onclose=null}async start(t){if(t=t||_.Binary,f.isIn(t,_,"transferFormat"),this.u.log(e.Debug,`Starting connection with transfer format '${_[t]}'.`),"Disconnected"!==this.q)return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this.q="Connecting",this.Xt=this.F(t),await this.Xt,"Disconnecting"===this.q){const t="Failed to start the HttpConnection before stop() was called.";return this.u.log(e.Error,t),await this.tt,Promise.reject(new Error(t))}if("Connected"!==this.q){const t="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this.u.log(e.Error,t),Promise.reject(new Error(t))}this.M=!0}send(t){return"Connected"!==this.q?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this.Jt||(this.Jt=new V(this.transport)),this.Jt.send(t))}async stop(t){return"Disconnected"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):"Disconnecting"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q="Disconnecting",this.tt=new Promise((t=>{this.jt=t})),await this.et(t),void await this.tt)}async et(t){this.zt=t;try{await this.Xt}catch(t){}if(this.transport){try{await this.transport.stop()}catch(t){this.u.log(e.Error,`HttpConnection.transport.stop() threw error '${t}'.`),this.Vt()}this.transport=void 0}else this.u.log(e.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async F(t){let n=this.baseUrl;this.St=this.Pt.accessTokenFactory;try{if(this.Pt.skipNegotiation){if(this.Pt.transport!==O.WebSockets)throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");this.transport=this.Gt(O.WebSockets),await this.Kt(n,t)}else{let e=null,o=0;do{if(e=await this.Qt(n),"Disconnecting"===this.q||"Disconnected"===this.q)throw new Error("The connection was stopped during negotiation.");if(e.error)throw new Error(e.error);if(e.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(e.url&&(n=e.url),e.accessToken){const t=e.accessToken;this.St=()=>t}o++}while(e.url&&o<100);if(100===o&&e.url)throw new Error("Negotiate redirection limit exceeded.");await this.Yt(n,this.Pt.transport,e,t)}this.transport instanceof B&&(this.features.inherentKeepAlive=!0),"Connecting"===this.q&&(this.u.log(e.Debug,"The HttpConnection connected successfully."),this.q="Connected")}catch(t){return this.u.log(e.Error,"Failed to start the connection: "+t),this.q="Disconnected",this.transport=void 0,this.jt(),Promise.reject(t)}}async Qt(t){const n={};if(this.St){const t=await this.St();t&&(n[U.Authorization]=`Bearer ${t}`)}const[r,s]=S();n[r]=s;const i=this.Zt(t);this.u.log(e.Debug,`Sending negotiation request: ${i}.`);try{const t=await this.$.post(i,{content:"",headers:{...n,...this.Pt.headers},timeout:this.Pt.timeout,withCredentials:this.Pt.withCredentials});if(200!==t.statusCode)return Promise.reject(new Error(`Unexpected status code returned from negotiate '${t.statusCode}'`));const e=JSON.parse(t.content);return(!e.negotiateVersion||e.negotiateVersion<1)&&(e.connectionToken=e.connectionId),e}catch(t){let n="Failed to complete negotiation with the server: "+t;return t instanceof o&&404===t.statusCode&&(n+=" Either this is not a SignalR endpoint or there is a proxy blocking the connection."),this.u.log(e.Error,n),Promise.reject(new h(n))}}te(t,e){return e?t+(-1===t.indexOf("?")?"?":"&")+`id=${e}`:t}async Yt(t,n,o,r){let s=this.te(t,o.connectionToken);if(this.ee(n))return this.u.log(e.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=n,await this.Kt(s,r),void(this.connectionId=o.connectionId);const i=[],c=o.availableTransports||[];let h=o;for(const o of c){const c=this.se(o,n,r);if(c instanceof Error)i.push(`${o.transport} failed:`),i.push(c);else if(this.ee(c)){if(this.transport=c,!h){try{h=await this.Qt(t)}catch(t){return Promise.reject(t)}s=this.te(t,h.connectionToken)}try{return await this.Kt(s,r),void(this.connectionId=h.connectionId)}catch(t){if(this.u.log(e.Error,`Failed to start the transport '${o.transport}': ${t}`),h=void 0,i.push(new a(`${o.transport} failed: ${t}`,O[o.transport])),"Connecting"!==this.q){const t="Failed to select transport before stop() was called.";return this.u.log(e.Debug,t),Promise.reject(new Error(t))}}}}return i.length>0?Promise.reject(new l(`Unable to connect to the server with any of the available transports. ${i.join(" ")}`,i)):Promise.reject(new Error("None of the transports supported by the client are supported by the server."))}Gt(t){switch(t){case O.WebSockets:if(!this.Pt.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new J(this.$,this.St,this.u,this.Pt.logMessageContent,this.Pt.WebSocket,this.Pt.headers||{});case O.ServerSentEvents:if(!this.Pt.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new F(this.$,this.St,this.u,this.Pt);case O.LongPolling:return new B(this.$,this.St,this.u,this.Pt);default:throw new Error(`Unknown transport: ${t}.`)}}Kt(t,e){return this.transport.onreceive=this.onreceive,this.transport.onclose=t=>this.Vt(t),this.transport.connect(t,e)}se(t,n,o){const r=O[t.transport];if(null==r)return this.u.log(e.Debug,`Skipping transport '${t.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${t.transport}' because it is not supported by this client.`);if(!function(t,e){return!t||0!=(e&t)}(n,r))return this.u.log(e.Debug,`Skipping transport '${O[r]}' because it was disabled by the client.`),new c(`'${O[r]}' is disabled by the client.`,r);if(!(t.transferFormats.map((t=>_[t])).indexOf(o)>=0))return this.u.log(e.Debug,`Skipping transport '${O[r]}' because it does not support the requested transfer format '${_[o]}'.`),new Error(`'${O[r]}' does not support ${_[o]}.`);if(r===O.WebSockets&&!this.Pt.WebSocket||r===O.ServerSentEvents&&!this.Pt.EventSource)return this.u.log(e.Debug,`Skipping transport '${O[r]}' because it is not supported in your environment.'`),new i(`'${O[r]}' is not supported in your environment.`,r);this.u.log(e.Debug,`Selecting transport '${O[r]}'.`);try{return this.Gt(r)}catch(t){return t}}ee(t){return t&&"object"==typeof t&&"connect"in t}Vt(t){if(this.u.log(e.Debug,`HttpConnection.stopConnection(${t}) called while in state ${this.q}.`),this.transport=void 0,t=this.zt||t,this.zt=void 0,"Disconnected"!==this.q){if("Connecting"===this.q)throw this.u.log(e.Warning,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${t}) was called while the connection is still in the connecting state.`);if("Disconnecting"===this.q&&this.jt(),t?this.u.log(e.Error,`Connection disconnected with error '${t}'.`):this.u.log(e.Information,"Connection disconnected."),this.Jt&&(this.Jt.stop().catch((t=>{this.u.log(e.Error,`TransportSendQueue.stop() threw error '${t}'.`)})),this.Jt=void 0),this.connectionId=void 0,this.q="Disconnected",this.M){this.M=!1;try{this.onclose&&this.onclose(t)}catch(n){this.u.log(e.Error,`HttpConnection.onclose(${t}) threw error '${n}'.`)}}}else this.u.log(e.Debug,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is already in the disconnected state.`)}Bt(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!w.isBrowser||!window.document)throw new Error(`Cannot resolve '${t}'.`);const n=window.document.createElement("a");return n.href=t,this.u.log(e.Information,`Normalizing '${t}' to '${n.href}'.`),n.href}Zt(t){const e=t.indexOf("?");let n=t.substring(0,-1===e?t.length:e);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",n+=-1===e?"":t.substring(e),-1===n.indexOf("negotiateVersion")&&(n+=-1===e?"?":"&",n+="negotiateVersion="+this.Ft),n}}class V{constructor(t){this.ne=t,this.ie=[],this.re=!0,this.oe=new z,this.he=new z,this.ce=this.ae()}send(t){return this.le(t),this.he||(this.he=new z),this.he.promise}stop(){return this.re=!1,this.oe.resolve(),this.ce}le(t){if(this.ie.length&&typeof this.ie[0]!=typeof t)throw new Error(`Expected data to be of type ${typeof this.ie} but was of type ${typeof t}`);this.ie.push(t),this.oe.resolve()}async ae(){for(;;){if(await this.oe.promise,!this.re){this.he&&this.he.reject("Connection stopped.");break}this.oe=new z;const t=this.he;this.he=void 0;const e="string"==typeof this.ie[0]?this.ie.join(""):V.ue(this.ie);this.ie.length=0;try{await this.ne.send(e),t.resolve()}catch(e){t.reject(e)}}}static ue(t){const e=t.map((t=>t.byteLength)).reduce(((t,e)=>t+e)),n=new Uint8Array(e);let o=0;for(const e of t)n.set(new Uint8Array(e),o),o+=e.byteLength;return n.buffer}}class z{constructor(){this.promise=new Promise(((t,e)=>[this.de,this.fe]=[t,e]))}resolve(){this.de()}reject(t){this.fe(t)}}class G{constructor(){this.name="json",this.version=1,this.transferFormat=_.Text}parseMessages(t,n){if("string"!=typeof t)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!t)return[];null===n&&(n=p.instance);const o=R.parse(t),r=[];for(const t of o){const o=JSON.parse(t);if("number"!=typeof o.type)throw new Error("Invalid payload.");switch(o.type){case H.Invocation:this.pe(o);break;case H.StreamItem:this.we(o);break;case H.Completion:this.ge(o);break;case H.Ping:case H.Close:break;default:n.log(e.Information,"Unknown message type '"+o.type+"' ignored.");continue}r.push(o)}return r}writeMessage(t){return R.write(JSON.stringify(t))}pe(t){this.me(t.target,"Invalid payload for Invocation message."),void 0!==t.invocationId&&this.me(t.invocationId,"Invalid payload for Invocation message.")}we(t){if(this.me(t.invocationId,"Invalid payload for StreamItem message."),void 0===t.item)throw new Error("Invalid payload for StreamItem message.")}ge(t){if(t.result&&t.error)throw new Error("Invalid payload for Completion message.");!t.result&&t.error&&this.me(t.error,"Invalid payload for Completion message."),this.me(t.invocationId,"Invalid payload for Completion message.")}me(t,e){if("string"!=typeof t||""===t)throw new Error(e)}}const K={trace:e.Trace,debug:e.Debug,info:e.Information,information:e.Information,warn:e.Warning,warning:e.Warning,error:e.Error,critical:e.Critical,none:e.None};class Z{configureLogging(t){if(f.isRequired(t,"logging"),void 0!==t.log)this.logger=t;else if("string"==typeof t){const e=function(t){const e=K[t.toLowerCase()];if(void 0!==e)return e;throw new Error(`Unknown log level: ${t}`)}(t);this.logger=new C(e)}else this.logger=new C(t);return this}withUrl(t,e){return f.isRequired(t,"url"),f.isNotEmpty(t,"url"),this.url=t,this.httpConnectionOptions="object"==typeof e?{...this.httpConnectionOptions,...e}:{...this.httpConnectionOptions,transport:e},this}withHubProtocol(t){return f.isRequired(t,"protocol"),this.protocol=t,this}withAutomaticReconnect(t){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return t?Array.isArray(t)?this.reconnectPolicy=new N(t):this.reconnectPolicy=t:this.reconnectPolicy=new N,this}build(){const t=this.httpConnectionOptions||{};if(void 0===t.logger&&(t.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");const e=new X(this.url,t);return j.create(e,this.logger||p.instance,this.protocol||new G,this.reconnectPolicy)}}return Uint8Array.prototype.indexOf||Object.defineProperty(Uint8Array.prototype,"indexOf",{value:Array.prototype.indexOf,writable:!0}),Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(t,e){return new Uint8Array(Array.prototype.slice.call(this,t,e))},writable:!0}),Uint8Array.prototype.forEach||Object.defineProperty(Uint8Array.prototype,"forEach",{value:Array.prototype.forEach,writable:!0}),n})()},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.signalR=e():t.signalR=e();
+var t,e;t=self,e=function(){return(()=>{var t={d:(e,s)=>{for(var n in s)t.o(s,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:s[n]})}};t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),t.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),t.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"t",{value:!0})};var e,s={};t.r(s),t.d(s,{AbortError:()=>r,DefaultHttpClient:()=>H,HttpClient:()=>d,HttpError:()=>n,HttpResponse:()=>u,HttpTransportType:()=>M,HubConnection:()=>N,HubConnectionBuilder:()=>Q,HubConnectionState:()=>R,JsonHubProtocol:()=>G,LogLevel:()=>e,MessageType:()=>A,NullLogger:()=>f,Subject:()=>U,TimeoutError:()=>i,TransferFormat:()=>W,VERSION:()=>p});class n extends Error{constructor(t,e){const s=new.target.prototype;super(`${t}: Status code '${e}'`),this.statusCode=e,this.__proto__=s}}class i extends Error{constructor(t="A timeout occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class r extends Error{constructor(t="An abort occurred."){const e=new.target.prototype;super(t),this.__proto__=e}}class o extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="UnsupportedTransportError",this.__proto__=s}}class h extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="DisabledTransportError",this.__proto__=s}}class c extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.transport=e,this.errorType="FailedToStartTransportError",this.__proto__=s}}class a extends Error{constructor(t){const e=new.target.prototype;super(t),this.errorType="FailedToNegotiateWithServerError",this.__proto__=e}}class l extends Error{constructor(t,e){const s=new.target.prototype;super(t),this.innerErrors=e,this.__proto__=s}}class u{constructor(t,e,s){this.statusCode=t,this.statusText=e,this.content=s}}class d{get(t,e){return this.send({...e,method:"GET",url:t})}post(t,e){return this.send({...e,method:"POST",url:t})}delete(t,e){return this.send({...e,method:"DELETE",url:t})}getCookieString(t){return""}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug",t[t.Information=2]="Information",t[t.Warning=3]="Warning",t[t.Error=4]="Error",t[t.Critical=5]="Critical",t[t.None=6]="None"}(e||(e={}));class f{constructor(){}log(t,e){}}f.instance=new f;const p="6.0.6";class w{static isRequired(t,e){if(null==t)throw new Error(`The '${e}' argument is required.`)}static isNotEmpty(t,e){if(!t||t.match(/^\s*$/))throw new Error(`The '${e}' argument should not be empty.`)}static isIn(t,e,s){if(!(t in e))throw new Error(`Unknown ${s} value: ${t}.`)}}class g{static get isBrowser(){return"object"==typeof window&&"object"==typeof window.document}static get isWebWorker(){return"object"==typeof self&&"importScripts"in self}static get isReactNative(){return"object"==typeof window&&void 0===window.document}static get isNode(){return!this.isBrowser&&!this.isWebWorker&&!this.isReactNative}}function y(t,e){let s="";return m(t)?(s=`Binary data of length ${t.byteLength}`,e&&(s+=`. Content: '${function(t){const e=new Uint8Array(t);let s="";return e.forEach((t=>{s+=`0x${t<16?"0":""}${t.toString(16)} `})),s.substr(0,s.length-1)}(t)}'`)):"string"==typeof t&&(s=`String data of length ${t.length}`,e&&(s+=`. Content: '${t}'`)),s}function m(t){return t&&"undefined"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&"ArrayBuffer"===t.constructor.name)}async function b(t,s,n,i,r,o,h){let c={};if(r){const t=await r();t&&(c={Authorization:`Bearer ${t}`})}const[a,l]=$();c[a]=l,t.log(e.Trace,`(${s} transport) sending data. ${y(o,h.logMessageContent)}.`);const u=m(o)?"arraybuffer":"text",d=await n.post(i,{content:o,headers:{...c,...h.headers},responseType:u,timeout:h.timeout,withCredentials:h.withCredentials});t.log(e.Trace,`(${s} transport) request complete. Response status: ${d.statusCode}.`)}class v{constructor(t,e){this.i=t,this.h=e}dispose(){const t=this.i.observers.indexOf(this.h);t>-1&&this.i.observers.splice(t,1),0===this.i.observers.length&&this.i.cancelCallback&&this.i.cancelCallback().catch((t=>{}))}}class E{constructor(t){this.l=t,this.out=console}log(t,s){if(t>=this.l){const n=`[${(new Date).toISOString()}] ${e[t]}: ${s}`;switch(t){case e.Critical:case e.Error:this.out.error(n);break;case e.Warning:this.out.warn(n);break;case e.Information:this.out.info(n);break;default:this.out.log(n)}}}}function $(){let t="X-SignalR-User-Agent";return g.isNode&&(t="User-Agent"),[t,C(p,S(),g.isNode?"NodeJS":"Browser",k())]}function C(t,e,s,n){let i="Microsoft SignalR/";const r=t.split(".");return i+=`${r[0]}.${r[1]}`,i+=` (${t}; `,i+=e&&""!==e?`${e}; `:"Unknown OS; ",i+=`${s}`,i+=n?`; ${n}`:"; Unknown Runtime Version",i+=")",i}function S(){if(!g.isNode)return"";switch(process.platform){case"win32":return"Windows NT";case"darwin":return"macOS";case"linux":return"Linux";default:return process.platform}}function k(){if(g.isNode)return process.versions.node}function P(t){return t.stack?t.stack:t.message?t.message:`${t}`}class T extends d{constructor(e){if(super(),this.u=e,"undefined"==typeof fetch){const t=require;this.p=new(t("tough-cookie").CookieJar),this.m=t("node-fetch"),this.m=t("fetch-cookie")(this.m,this.p)}else this.m=fetch.bind(function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t.g)return t.g;throw new Error("could not find global")}());if("undefined"==typeof AbortController){const t=require;this.v=t("abort-controller")}else this.v=AbortController}async send(t){if(t.abortSignal&&t.abortSignal.aborted)throw new r;if(!t.method)throw new Error("No method defined.");if(!t.url)throw new Error("No url defined.");const s=new this.v;let o;t.abortSignal&&(t.abortSignal.onabort=()=>{s.abort(),o=new r});let h,c=null;if(t.timeout){const n=t.timeout;c=setTimeout((()=>{s.abort(),this.u.log(e.Warning,"Timeout from HTTP request."),o=new i}),n)}try{h=await this.m(t.url,{body:t.content,cache:"no-cache",credentials:!0===t.withCredentials?"include":"same-origin",headers:{"Content-Type":"text/plain;charset=UTF-8","X-Requested-With":"XMLHttpRequest",...t.headers},method:t.method,mode:"cors",redirect:"follow",signal:s.signal})}catch(t){if(o)throw o;throw this.u.log(e.Warning,`Error from HTTP request. ${t}.`),t}finally{c&&clearTimeout(c),t.abortSignal&&(t.abortSignal.onabort=null)}if(!h.ok){const t=await I(h,"text");throw new n(t||h.statusText,h.status)}const a=I(h,t.responseType),l=await a;return new u(h.status,h.statusText,l)}getCookieString(t){let e="";return g.isNode&&this.p&&this.p.getCookies(t,((t,s)=>e=s.join("; "))),e}}function I(t,e){let s;switch(e){case"arraybuffer":s=t.arrayBuffer();break;case"text":s=t.text();break;case"blob":case"document":case"json":throw new Error(`${e} is not supported.`);default:s=t.text()}return s}class _ extends d{constructor(t){super(),this.u=t}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?new Promise(((s,o)=>{const h=new XMLHttpRequest;h.open(t.method,t.url,!0),h.withCredentials=void 0===t.withCredentials||t.withCredentials,h.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.setRequestHeader("Content-Type","text/plain;charset=UTF-8");const c=t.headers;c&&Object.keys(c).forEach((t=>{h.setRequestHeader(t,c[t])})),t.responseType&&(h.responseType=t.responseType),t.abortSignal&&(t.abortSignal.onabort=()=>{h.abort(),o(new r)}),t.timeout&&(h.timeout=t.timeout),h.onload=()=>{t.abortSignal&&(t.abortSignal.onabort=null),h.status>=200&&h.status<300?s(new u(h.status,h.statusText,h.response||h.responseText)):o(new n(h.response||h.responseText||h.statusText,h.status))},h.onerror=()=>{this.u.log(e.Warning,`Error from HTTP request. ${h.status}: ${h.statusText}.`),o(new n(h.statusText,h.status))},h.ontimeout=()=>{this.u.log(e.Warning,"Timeout from HTTP request."),o(new i)},h.send(t.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}}class H extends d{constructor(t){if(super(),"undefined"!=typeof fetch||g.isNode)this.$=new T(t);else{if("undefined"==typeof XMLHttpRequest)throw new Error("No usable HttpClient found.");this.$=new _(t)}}send(t){return t.abortSignal&&t.abortSignal.aborted?Promise.reject(new r):t.method?t.url?this.$.send(t):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))}getCookieString(t){return this.$.getCookieString(t)}}class D{static write(t){return`${t}${D.RecordSeparator}`}static parse(t){if(t[t.length-1]!==D.RecordSeparator)throw new Error("Message is incomplete.");const e=t.split(D.RecordSeparator);return e.pop(),e}}D.RecordSeparatorCode=30,D.RecordSeparator=String.fromCharCode(D.RecordSeparatorCode);class x{writeHandshakeRequest(t){return D.write(JSON.stringify(t))}parseHandshakeResponse(t){let e,s;if(m(t)){const n=new Uint8Array(t),i=n.indexOf(D.RecordSeparatorCode);if(-1===i)throw new Error("Message is incomplete.");const r=i+1;e=String.fromCharCode.apply(null,Array.prototype.slice.call(n.slice(0,r))),s=n.byteLength>r?n.slice(r).buffer:null}else{const n=t,i=n.indexOf(D.RecordSeparator);if(-1===i)throw new Error("Message is incomplete.");const r=i+1;e=n.substring(0,r),s=n.length>r?n.substring(r):null}const n=D.parse(e),i=JSON.parse(n[0]);if(i.type)throw new Error("Expected a handshake response from the server.");return[s,i]}}var A,R;!function(t){t[t.Invocation=1]="Invocation",t[t.StreamItem=2]="StreamItem",t[t.Completion=3]="Completion",t[t.StreamInvocation=4]="StreamInvocation",t[t.CancelInvocation=5]="CancelInvocation",t[t.Ping=6]="Ping",t[t.Close=7]="Close"}(A||(A={}));class U{constructor(){this.observers=[]}next(t){for(const e of this.observers)e.next(t)}error(t){for(const e of this.observers)e.error&&e.error(t)}complete(){for(const t of this.observers)t.complete&&t.complete()}subscribe(t){return this.observers.push(t),new v(this,t)}}!function(t){t.Disconnected="Disconnected",t.Connecting="Connecting",t.Connected="Connected",t.Disconnecting="Disconnecting",t.Reconnecting="Reconnecting"}(R||(R={}));class N{constructor(t,s,n,i){this.C=0,this.S=()=>{this.u.log(e.Warning,"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep")},w.isRequired(t,"connection"),w.isRequired(s,"logger"),w.isRequired(n,"protocol"),this.serverTimeoutInMilliseconds=3e4,this.keepAliveIntervalInMilliseconds=15e3,this.u=s,this.k=n,this.connection=t,this.P=i,this.T=new x,this.connection.onreceive=t=>this.I(t),this.connection.onclose=t=>this._(t),this.H={},this.D={},this.A=[],this.R=[],this.U=[],this.N=0,this.L=!1,this.q=R.Disconnected,this.j=!1,this.M=this.k.writeMessage({type:A.Ping})}static create(t,e,s,n){return new N(t,e,s,n)}get state(){return this.q}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||""}set baseUrl(t){if(this.q!==R.Disconnected&&this.q!==R.Reconnecting)throw new Error("The HubConnection must be in the Disconnected or Reconnecting state to change the url.");if(!t)throw new Error("The HubConnection url must be a valid url.");this.connection.baseUrl=t}start(){return this.W=this.O(),this.W}async O(){if(this.q!==R.Disconnected)return Promise.reject(new Error("Cannot start a HubConnection that is not in the 'Disconnected' state."));this.q=R.Connecting,this.u.log(e.Debug,"Starting HubConnection.");try{await this.F(),g.isBrowser&&window.document.addEventListener("freeze",this.S),this.q=R.Connected,this.j=!0,this.u.log(e.Debug,"HubConnection connected successfully.")}catch(t){return this.q=R.Disconnected,this.u.log(e.Debug,`HubConnection failed to start successfully because of error '${t}'.`),Promise.reject(t)}}async F(){this.B=void 0,this.L=!1;const t=new Promise(((t,e)=>{this.X=t,this.J=e}));await this.connection.start(this.k.transferFormat);try{const s={protocol:this.k.name,version:this.k.version};if(this.u.log(e.Debug,"Sending handshake request."),await this.V(this.T.writeHandshakeRequest(s)),this.u.log(e.Information,`Using HubProtocol '${this.k.name}'.`),this.G(),this.K(),this.Y(),await t,this.B)throw this.B}catch(t){throw this.u.log(e.Debug,`Hub handshake failed with error '${t}' during start(). Stopping HubConnection.`),this.G(),this.Z(),await this.connection.stop(t),t}}async stop(){const t=this.W;this.tt=this.et(),await this.tt;try{await t}catch(t){}}et(t){return this.q===R.Disconnected?(this.u.log(e.Debug,`Call to HubConnection.stop(${t}) ignored because it is already in the disconnected state.`),Promise.resolve()):this.q===R.Disconnecting?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q=R.Disconnecting,this.u.log(e.Debug,"Stopping HubConnection."),this.st?(this.u.log(e.Debug,"Connection stopped during reconnect delay. Done reconnecting."),clearTimeout(this.st),this.st=void 0,this.nt(),Promise.resolve()):(this.G(),this.Z(),this.B=t||new Error("The connection was stopped before the hub handshake could complete."),this.connection.stop(t)))}stream(t,...e){const[s,n]=this.it(e),i=this.rt(t,e,n);let r;const o=new U;return o.cancelCallback=()=>{const t=this.ot(i.invocationId);return delete this.H[i.invocationId],r.then((()=>this.ht(t)))},this.H[i.invocationId]=(t,e)=>{e?o.error(e):t&&(t.type===A.Completion?t.error?o.error(new Error(t.error)):o.complete():o.next(t.item))},r=this.ht(i).catch((t=>{o.error(t),delete this.H[i.invocationId]})),this.ct(s,r),o}V(t){return this.Y(),this.connection.send(t)}ht(t){return this.V(this.k.writeMessage(t))}send(t,...e){const[s,n]=this.it(e),i=this.ht(this.at(t,e,!0,n));return this.ct(s,i),i}invoke(t,...e){const[s,n]=this.it(e),i=this.at(t,e,!1,n);return new Promise(((t,e)=>{this.H[i.invocationId]=(s,n)=>{n?e(n):s&&(s.type===A.Completion?s.error?e(new Error(s.error)):t(s.result):e(new Error(`Unexpected message type: ${s.type}`)))};const n=this.ht(i).catch((t=>{e(t),delete this.H[i.invocationId]}));this.ct(s,n)}))}on(t,e){t&&e&&(t=t.toLowerCase(),this.D[t]||(this.D[t]=[]),-1===this.D[t].indexOf(e)&&this.D[t].push(e))}off(t,e){if(!t)return;t=t.toLowerCase();const s=this.D[t];if(s)if(e){const n=s.indexOf(e);-1!==n&&(s.splice(n,1),0===s.length&&delete this.D[t])}else delete this.D[t]}onclose(t){t&&this.A.push(t)}onreconnecting(t){t&&this.R.push(t)}onreconnected(t){t&&this.U.push(t)}I(t){if(this.G(),this.L||(t=this.lt(t),this.L=!0),t){const s=this.k.parseMessages(t,this.u);for(const t of s)switch(t.type){case A.Invocation:this.ut(t);break;case A.StreamItem:case A.Completion:{const s=this.H[t.invocationId];if(s){t.type===A.Completion&&delete this.H[t.invocationId];try{s(t)}catch(t){this.u.log(e.Error,`Stream callback threw error: ${P(t)}`)}}break}case A.Ping:break;case A.Close:{this.u.log(e.Information,"Close message received from server.");const s=t.error?new Error("Server returned an error on close: "+t.error):void 0;!0===t.allowReconnect?this.connection.stop(s):this.tt=this.et(s);break}default:this.u.log(e.Warning,`Invalid message type: ${t.type}.`)}}this.K()}lt(t){let s,n;try{[n,s]=this.T.parseHandshakeResponse(t)}catch(t){const s="Error parsing handshake response: "+t;this.u.log(e.Error,s);const n=new Error(s);throw this.J(n),n}if(s.error){const t="Server returned handshake error: "+s.error;this.u.log(e.Error,t);const n=new Error(t);throw this.J(n),n}return this.u.log(e.Debug,"Server handshake complete."),this.X(),n}Y(){this.connection.features.inherentKeepAlive||(this.C=(new Date).getTime()+this.keepAliveIntervalInMilliseconds,this.Z())}K(){if(!(this.connection.features&&this.connection.features.inherentKeepAlive||(this.dt=setTimeout((()=>this.serverTimeout()),this.serverTimeoutInMilliseconds),void 0!==this.ft))){let t=this.C-(new Date).getTime();t<0&&(t=0),this.ft=setTimeout((async()=>{if(this.q===R.Connected)try{await this.V(this.M)}catch{this.Z()}}),t)}}serverTimeout(){this.connection.stop(new Error("Server timeout elapsed without receiving a message from the server."))}ut(t){const s=this.D[t.target.toLowerCase()];if(s){try{s.forEach((e=>e.apply(this,t.arguments)))}catch(s){this.u.log(e.Error,`A callback for the method ${t.target.toLowerCase()} threw error '${s}'.`)}if(t.invocationId){const t="Server requested a response, which is not supported in this version of the client.";this.u.log(e.Error,t),this.tt=this.et(new Error(t))}}else this.u.log(e.Warning,`No client method with the name '${t.target}' found.`)}_(t){this.u.log(e.Debug,`HubConnection.connectionClosed(${t}) called while in state ${this.q}.`),this.B=this.B||t||new Error("The underlying connection was closed before the hub handshake could complete."),this.X&&this.X(),this.wt(t||new Error("Invocation canceled due to the underlying connection being closed.")),this.G(),this.Z(),this.q===R.Disconnecting?this.nt(t):this.q===R.Connected&&this.P?this.gt(t):this.q===R.Connected&&this.nt(t)}nt(t){if(this.j){this.q=R.Disconnected,this.j=!1,g.isBrowser&&window.document.removeEventListener("freeze",this.S);try{this.A.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onclose callback called with error '${t}' threw error '${s}'.`)}}}async gt(t){const s=Date.now();let n=0,i=void 0!==t?t:new Error("Attempting to reconnect due to a unknown error."),r=this.yt(n++,0,i);if(null===r)return this.u.log(e.Debug,"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt."),void this.nt(t);if(this.q=R.Reconnecting,t?this.u.log(e.Information,`Connection reconnecting because of error '${t}'.`):this.u.log(e.Information,"Connection reconnecting."),0!==this.R.length){try{this.R.forEach((e=>e.apply(this,[t])))}catch(s){this.u.log(e.Error,`An onreconnecting callback called with error '${t}' threw error '${s}'.`)}if(this.q!==R.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.")}for(;null!==r;){if(this.u.log(e.Information,`Reconnect attempt number ${n} will start in ${r} ms.`),await new Promise((t=>{this.st=setTimeout(t,r)})),this.st=void 0,this.q!==R.Reconnecting)return void this.u.log(e.Debug,"Connection left the reconnecting state during reconnect delay. Done reconnecting.");try{if(await this.F(),this.q=R.Connected,this.u.log(e.Information,"HubConnection reconnected successfully."),0!==this.U.length)try{this.U.forEach((t=>t.apply(this,[this.connection.connectionId])))}catch(t){this.u.log(e.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${t}'.`)}return}catch(t){if(this.u.log(e.Information,`Reconnect attempt failed because of error '${t}'.`),this.q!==R.Reconnecting)return this.u.log(e.Debug,`Connection moved to the '${this.q}' from the reconnecting state during reconnect attempt. Done reconnecting.`),void(this.q===R.Disconnecting&&this.nt());i=t instanceof Error?t:new Error(t.toString()),r=this.yt(n++,Date.now()-s,i)}}this.u.log(e.Information,`Reconnect retries have been exhausted after ${Date.now()-s} ms and ${n} failed attempts. Connection disconnecting.`),this.nt()}yt(t,s,n){try{return this.P.nextRetryDelayInMilliseconds({elapsedMilliseconds:s,previousRetryCount:t,retryReason:n})}catch(n){return this.u.log(e.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${t}, ${s}) threw error '${n}'.`),null}}wt(t){const s=this.H;this.H={},Object.keys(s).forEach((n=>{const i=s[n];try{i(null,t)}catch(s){this.u.log(e.Error,`Stream 'error' callback called with '${t}' threw error: ${P(s)}`)}}))}Z(){this.ft&&(clearTimeout(this.ft),this.ft=void 0)}G(){this.dt&&clearTimeout(this.dt)}at(t,e,s,n){if(s)return 0!==n.length?{arguments:e,streamIds:n,target:t,type:A.Invocation}:{arguments:e,target:t,type:A.Invocation};{const s=this.N;return this.N++,0!==n.length?{arguments:e,invocationId:s.toString(),streamIds:n,target:t,type:A.Invocation}:{arguments:e,invocationId:s.toString(),target:t,type:A.Invocation}}}ct(t,e){if(0!==t.length){e||(e=Promise.resolve());for(const s in t)t[s].subscribe({complete:()=>{e=e.then((()=>this.ht(this.bt(s))))},error:t=>{let n;n=t instanceof Error?t.message:t&&t.toString?t.toString():"Unknown error",e=e.then((()=>this.ht(this.bt(s,n))))},next:t=>{e=e.then((()=>this.ht(this.vt(s,t))))}})}}it(t){const e=[],s=[];for(let n=0;n{let r,o=!1;if(s===W.Text){if(g.isBrowser||g.isWebWorker)r=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials});else{const e=this.$.getCookieString(t),s={};s.Cookie=e;const[n,i]=$();s[n]=i,r=new this.Pt.EventSource(t,{withCredentials:this.Pt.withCredentials,headers:{...s,...this.Pt.headers}})}try{r.onmessage=t=>{if(this.onreceive)try{this.u.log(e.Trace,`(SSE transport) data received. ${y(t.data,this.Pt.logMessageContent)}.`),this.onreceive(t.data)}catch(t){return void this.Ut(t)}},r.onerror=t=>{o?this.Ut():i(new Error("EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled."))},r.onopen=()=>{this.u.log(e.Information,`SSE connected to ${this.It}`),this.Nt=r,o=!0,n()}}catch(t){return void i(t)}}else i(new Error("The Server-Sent Events transport only supports the 'Text' transfer format"))}))}async send(t){return this.Nt?b(this.u,"SSE",this.$,this.It,this.St,t,this.Pt):Promise.reject(new Error("Cannot send until the transport is connected"))}stop(){return this.Ut(),Promise.resolve()}Ut(t){this.Nt&&(this.Nt.close(),this.Nt=void 0,this.onclose&&this.onclose(t))}}class X{constructor(t,e,s,n,i,r){this.u=s,this.St=e,this.Lt=n,this.qt=i,this.$=t,this.onreceive=null,this.onclose=null,this.jt=r}async connect(t,s){if(w.isRequired(t,"url"),w.isRequired(s,"transferFormat"),w.isIn(s,W,"transferFormat"),this.u.log(e.Trace,"(WebSockets transport) Connecting."),this.St){const e=await this.St();e&&(t+=(t.indexOf("?")<0?"?":"&")+`access_token=${encodeURIComponent(e)}`)}return new Promise(((n,i)=>{let r;t=t.replace(/^http/,"ws");const o=this.$.getCookieString(t);let h=!1;if(g.isNode){const e={},[s,n]=$();e[s]=n,o&&(e[j.Cookie]=`${o}`),r=new this.qt(t,void 0,{headers:{...e,...this.jt}})}r||(r=new this.qt(t)),s===W.Binary&&(r.binaryType="arraybuffer"),r.onopen=s=>{this.u.log(e.Information,`WebSocket connected to ${t}.`),this.Mt=r,h=!0,n()},r.onerror=t=>{let s=null;s="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"There was an error with the transport",this.u.log(e.Information,`(WebSockets transport) ${s}.`)},r.onmessage=t=>{if(this.u.log(e.Trace,`(WebSockets transport) data received. ${y(t.data,this.Lt)}.`),this.onreceive)try{this.onreceive(t.data)}catch(t){return void this.Ut(t)}},r.onclose=t=>{if(h)this.Ut(t);else{let e=null;e="undefined"!=typeof ErrorEvent&&t instanceof ErrorEvent?t.error:"WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.",i(new Error(e))}}}))}send(t){return this.Mt&&this.Mt.readyState===this.qt.OPEN?(this.u.log(e.Trace,`(WebSockets transport) sending data. ${y(t,this.Lt)}.`),this.Mt.send(t),Promise.resolve()):Promise.reject("WebSocket is not in the OPEN state")}stop(){return this.Mt&&this.Ut(void 0),Promise.resolve()}Ut(t){this.Mt&&(this.Mt.onclose=()=>{},this.Mt.onmessage=()=>{},this.Mt.onerror=()=>{},this.Mt.close(),this.Mt=void 0),this.u.log(e.Trace,"(WebSockets transport) socket closed."),this.onclose&&(!this.Wt(t)||!1!==t.wasClean&&1e3===t.code?t instanceof Error?this.onclose(t):this.onclose():this.onclose(new Error(`WebSocket closed with status code: ${t.code} (${t.reason||"no reason given"}).`)))}Wt(t){return t&&"boolean"==typeof t.wasClean&&"number"==typeof t.code}}class J{constructor(t,s={}){var n;if(this.Ot=()=>{},this.features={},this.Ft=1,w.isRequired(t,"url"),this.u=void 0===(n=s.logger)?new E(e.Information):null===n?f.instance:void 0!==n.log?n:new E(n),this.baseUrl=this.Bt(t),(s=s||{}).logMessageContent=void 0!==s.logMessageContent&&s.logMessageContent,"boolean"!=typeof s.withCredentials&&void 0!==s.withCredentials)throw new Error("withCredentials option was not a 'boolean' or 'undefined' value");s.withCredentials=void 0===s.withCredentials||s.withCredentials,s.timeout=void 0===s.timeout?1e5:s.timeout;let i=null,r=null;if(g.isNode){const t=require;i=t("ws"),r=t("eventsource")}g.isNode||"undefined"==typeof WebSocket||s.WebSocket?g.isNode&&!s.WebSocket&&i&&(s.WebSocket=i):s.WebSocket=WebSocket,g.isNode||"undefined"==typeof EventSource||s.EventSource?g.isNode&&!s.EventSource&&void 0!==r&&(s.EventSource=r):s.EventSource=EventSource,this.$=s.httpClient||new H(this.u),this.q="Disconnected",this.j=!1,this.Pt=s,this.onreceive=null,this.onclose=null}async start(t){if(t=t||W.Binary,w.isIn(t,W,"transferFormat"),this.u.log(e.Debug,`Starting connection with transfer format '${W[t]}'.`),"Disconnected"!==this.q)return Promise.reject(new Error("Cannot start an HttpConnection that is not in the 'Disconnected' state."));if(this.q="Connecting",this.Xt=this.F(t),await this.Xt,"Disconnecting"===this.q){const t="Failed to start the HttpConnection before stop() was called.";return this.u.log(e.Error,t),await this.tt,Promise.reject(new Error(t))}if("Connected"!==this.q){const t="HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!";return this.u.log(e.Error,t),Promise.reject(new Error(t))}this.j=!0}send(t){return"Connected"!==this.q?Promise.reject(new Error("Cannot send data if the connection is not in the 'Connected' State.")):(this.Jt||(this.Jt=new z(this.transport)),this.Jt.send(t))}async stop(t){return"Disconnected"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnected state.`),Promise.resolve()):"Disconnecting"===this.q?(this.u.log(e.Debug,`Call to HttpConnection.stop(${t}) ignored because the connection is already in the disconnecting state.`),this.tt):(this.q="Disconnecting",this.tt=new Promise((t=>{this.Ot=t})),await this.et(t),void await this.tt)}async et(t){this.zt=t;try{await this.Xt}catch(t){}if(this.transport){try{await this.transport.stop()}catch(t){this.u.log(e.Error,`HttpConnection.transport.stop() threw error '${t}'.`),this.Vt()}this.transport=void 0}else this.u.log(e.Debug,"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.")}async F(t){let s=this.baseUrl;this.St=this.Pt.accessTokenFactory;try{if(this.Pt.skipNegotiation){if(this.Pt.transport!==M.WebSockets)throw new Error("Negotiation can only be skipped when using the WebSocket transport directly.");this.transport=this.Gt(M.WebSockets),await this.Kt(s,t)}else{let e=null,n=0;do{if(e=await this.Qt(s),"Disconnecting"===this.q||"Disconnected"===this.q)throw new Error("The connection was stopped during negotiation.");if(e.error)throw new Error(e.error);if(e.ProtocolVersion)throw new Error("Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.");if(e.url&&(s=e.url),e.accessToken){const t=e.accessToken;this.St=()=>t}n++}while(e.url&&n<100);if(100===n&&e.url)throw new Error("Negotiate redirection limit exceeded.");await this.Yt(s,this.Pt.transport,e,t)}this.transport instanceof F&&(this.features.inherentKeepAlive=!0),"Connecting"===this.q&&(this.u.log(e.Debug,"The HttpConnection connected successfully."),this.q="Connected")}catch(t){return this.u.log(e.Error,"Failed to start the connection: "+t),this.q="Disconnected",this.transport=void 0,this.Ot(),Promise.reject(t)}}async Qt(t){const s={};if(this.St){const t=await this.St();t&&(s[j.Authorization]=`Bearer ${t}`)}const[i,r]=$();s[i]=r;const o=this.Zt(t);this.u.log(e.Debug,`Sending negotiation request: ${o}.`);try{const t=await this.$.post(o,{content:"",headers:{...s,...this.Pt.headers},timeout:this.Pt.timeout,withCredentials:this.Pt.withCredentials});if(200!==t.statusCode)return Promise.reject(new Error(`Unexpected status code returned from negotiate '${t.statusCode}'`));const e=JSON.parse(t.content);return(!e.negotiateVersion||e.negotiateVersion<1)&&(e.connectionToken=e.connectionId),e}catch(t){let s="Failed to complete negotiation with the server: "+t;return t instanceof n&&404===t.statusCode&&(s+=" Either this is not a SignalR endpoint or there is a proxy blocking the connection."),this.u.log(e.Error,s),Promise.reject(new a(s))}}te(t,e){return e?t+(-1===t.indexOf("?")?"?":"&")+`id=${e}`:t}async Yt(t,s,n,i){let r=this.te(t,n.connectionToken);if(this.ee(s))return this.u.log(e.Debug,"Connection was provided an instance of ITransport, using that directly."),this.transport=s,await this.Kt(r,i),void(this.connectionId=n.connectionId);const o=[],h=n.availableTransports||[];let a=n;for(const n of h){const h=this.se(n,s,i);if(h instanceof Error)o.push(`${n.transport} failed:`),o.push(h);else if(this.ee(h)){if(this.transport=h,!a){try{a=await this.Qt(t)}catch(t){return Promise.reject(t)}r=this.te(t,a.connectionToken)}try{return await this.Kt(r,i),void(this.connectionId=a.connectionId)}catch(t){if(this.u.log(e.Error,`Failed to start the transport '${n.transport}': ${t}`),a=void 0,o.push(new c(`${n.transport} failed: ${t}`,M[n.transport])),"Connecting"!==this.q){const t="Failed to select transport before stop() was called.";return this.u.log(e.Debug,t),Promise.reject(new Error(t))}}}}return o.length>0?Promise.reject(new l(`Unable to connect to the server with any of the available transports. ${o.join(" ")}`,o)):Promise.reject(new Error("None of the transports supported by the client are supported by the server."))}Gt(t){switch(t){case M.WebSockets:if(!this.Pt.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new X(this.$,this.St,this.u,this.Pt.logMessageContent,this.Pt.WebSocket,this.Pt.headers||{});case M.ServerSentEvents:if(!this.Pt.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new B(this.$,this.St,this.u,this.Pt);case M.LongPolling:return new F(this.$,this.St,this.u,this.Pt);default:throw new Error(`Unknown transport: ${t}.`)}}Kt(t,e){return this.transport.onreceive=this.onreceive,this.transport.onclose=t=>this.Vt(t),this.transport.connect(t,e)}se(t,s,n){const i=M[t.transport];if(null==i)return this.u.log(e.Debug,`Skipping transport '${t.transport}' because it is not supported by this client.`),new Error(`Skipping transport '${t.transport}' because it is not supported by this client.`);if(!function(t,e){return!t||0!=(e&t)}(s,i))return this.u.log(e.Debug,`Skipping transport '${M[i]}' because it was disabled by the client.`),new h(`'${M[i]}' is disabled by the client.`,i);if(!(t.transferFormats.map((t=>W[t])).indexOf(n)>=0))return this.u.log(e.Debug,`Skipping transport '${M[i]}' because it does not support the requested transfer format '${W[n]}'.`),new Error(`'${M[i]}' does not support ${W[n]}.`);if(i===M.WebSockets&&!this.Pt.WebSocket||i===M.ServerSentEvents&&!this.Pt.EventSource)return this.u.log(e.Debug,`Skipping transport '${M[i]}' because it is not supported in your environment.'`),new o(`'${M[i]}' is not supported in your environment.`,i);this.u.log(e.Debug,`Selecting transport '${M[i]}'.`);try{return this.Gt(i)}catch(t){return t}}ee(t){return t&&"object"==typeof t&&"connect"in t}Vt(t){if(this.u.log(e.Debug,`HttpConnection.stopConnection(${t}) called while in state ${this.q}.`),this.transport=void 0,t=this.zt||t,this.zt=void 0,"Disconnected"!==this.q){if("Connecting"===this.q)throw this.u.log(e.Warning,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is still in the connecting state.`),new Error(`HttpConnection.stopConnection(${t}) was called while the connection is still in the connecting state.`);if("Disconnecting"===this.q&&this.Ot(),t?this.u.log(e.Error,`Connection disconnected with error '${t}'.`):this.u.log(e.Information,"Connection disconnected."),this.Jt&&(this.Jt.stop().catch((t=>{this.u.log(e.Error,`TransportSendQueue.stop() threw error '${t}'.`)})),this.Jt=void 0),this.connectionId=void 0,this.q="Disconnected",this.j){this.j=!1;try{this.onclose&&this.onclose(t)}catch(s){this.u.log(e.Error,`HttpConnection.onclose(${t}) threw error '${s}'.`)}}}else this.u.log(e.Debug,`Call to HttpConnection.stopConnection(${t}) was ignored because the connection is already in the disconnected state.`)}Bt(t){if(0===t.lastIndexOf("https://",0)||0===t.lastIndexOf("http://",0))return t;if(!g.isBrowser)throw new Error(`Cannot resolve '${t}'.`);const s=window.document.createElement("a");return s.href=t,this.u.log(e.Information,`Normalizing '${t}' to '${s.href}'.`),s.href}Zt(t){const e=t.indexOf("?");let s=t.substring(0,-1===e?t.length:e);return"/"!==s[s.length-1]&&(s+="/"),s+="negotiate",s+=-1===e?"":t.substring(e),-1===s.indexOf("negotiateVersion")&&(s+=-1===e?"?":"&",s+="negotiateVersion="+this.Ft),s}}class z{constructor(t){this.ne=t,this.ie=[],this.re=!0,this.oe=new V,this.he=new V,this.ce=this.ae()}send(t){return this.le(t),this.he||(this.he=new V),this.he.promise}stop(){return this.re=!1,this.oe.resolve(),this.ce}le(t){if(this.ie.length&&typeof this.ie[0]!=typeof t)throw new Error(`Expected data to be of type ${typeof this.ie} but was of type ${typeof t}`);this.ie.push(t),this.oe.resolve()}async ae(){for(;;){if(await this.oe.promise,!this.re){this.he&&this.he.reject("Connection stopped.");break}this.oe=new V;const t=this.he;this.he=void 0;const e="string"==typeof this.ie[0]?this.ie.join(""):z.ue(this.ie);this.ie.length=0;try{await this.ne.send(e),t.resolve()}catch(e){t.reject(e)}}}static ue(t){const e=t.map((t=>t.byteLength)).reduce(((t,e)=>t+e)),s=new Uint8Array(e);let n=0;for(const e of t)s.set(new Uint8Array(e),n),n+=e.byteLength;return s.buffer}}class V{constructor(){this.promise=new Promise(((t,e)=>[this.de,this.fe]=[t,e]))}resolve(){this.de()}reject(t){this.fe(t)}}class G{constructor(){this.name="json",this.version=1,this.transferFormat=W.Text}parseMessages(t,s){if("string"!=typeof t)throw new Error("Invalid input for JSON hub protocol. Expected a string.");if(!t)return[];null===s&&(s=f.instance);const n=D.parse(t),i=[];for(const t of n){const n=JSON.parse(t);if("number"!=typeof n.type)throw new Error("Invalid payload.");switch(n.type){case A.Invocation:this.pe(n);break;case A.StreamItem:this.we(n);break;case A.Completion:this.ge(n);break;case A.Ping:case A.Close:break;default:s.log(e.Information,"Unknown message type '"+n.type+"' ignored.");continue}i.push(n)}return i}writeMessage(t){return D.write(JSON.stringify(t))}pe(t){this.ye(t.target,"Invalid payload for Invocation message."),void 0!==t.invocationId&&this.ye(t.invocationId,"Invalid payload for Invocation message.")}we(t){if(this.ye(t.invocationId,"Invalid payload for StreamItem message."),void 0===t.item)throw new Error("Invalid payload for StreamItem message.")}ge(t){if(t.result&&t.error)throw new Error("Invalid payload for Completion message.");!t.result&&t.error&&this.ye(t.error,"Invalid payload for Completion message."),this.ye(t.invocationId,"Invalid payload for Completion message.")}ye(t,e){if("string"!=typeof t||""===t)throw new Error(e)}}const K={trace:e.Trace,debug:e.Debug,info:e.Information,information:e.Information,warn:e.Warning,warning:e.Warning,error:e.Error,critical:e.Critical,none:e.None};class Q{configureLogging(t){if(w.isRequired(t,"logging"),void 0!==t.log)this.logger=t;else if("string"==typeof t){const e=function(t){const e=K[t.toLowerCase()];if(void 0!==e)return e;throw new Error(`Unknown log level: ${t}`)}(t);this.logger=new E(e)}else this.logger=new E(t);return this}withUrl(t,e){return w.isRequired(t,"url"),w.isNotEmpty(t,"url"),this.url=t,this.httpConnectionOptions="object"==typeof e?{...this.httpConnectionOptions,...e}:{...this.httpConnectionOptions,transport:e},this}withHubProtocol(t){return w.isRequired(t,"protocol"),this.protocol=t,this}withAutomaticReconnect(t){if(this.reconnectPolicy)throw new Error("A reconnectPolicy has already been set.");return t?Array.isArray(t)?this.reconnectPolicy=new q(t):this.reconnectPolicy=t:this.reconnectPolicy=new q,this}build(){const t=this.httpConnectionOptions||{};if(void 0===t.logger&&(t.logger=this.logger),!this.url)throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.");const e=new J(this.url,t);return N.create(e,this.logger||f.instance,this.protocol||new G,this.reconnectPolicy)}}return Uint8Array.prototype.indexOf||Object.defineProperty(Uint8Array.prototype,"indexOf",{value:Array.prototype.indexOf,writable:!0}),Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(t,e){return new Uint8Array(Array.prototype.slice.call(this,t,e))},writable:!0}),Uint8Array.prototype.forEach||Object.defineProperty(Uint8Array.prototype,"forEach",{value:Array.prototype.forEach,writable:!0}),s})()},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.signalR=e():t.signalR=e();
//# sourceMappingURL=signalr.min.js.map
\ No newline at end of file
diff --git a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js
index 63373a47..961c0984 100644
--- a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js
+++ b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js
@@ -1,2 +1,2075 @@
-var t,i;t=self,i=function(t){return(()=>{var i=[,i=>{i.exports=t}],e={};function n(t){var r=e[t];if(void 0!==r)return r.exports;var s=e[t]={exports:{}};return i[t](s,s.exports,n),s.exports}n.d=(t,i)=>{for(var e in i)n.o(i,e)&&!n.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},n.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"t",{value:!0})};var r={};return(()=>{n.r(r),n.d(r,{MessagePackHubProtocol:()=>P,VERSION:()=>z});var t=4294967295;function i(t,i,e){var n=Math.floor(e/4294967296),r=e;t.setUint32(i,n),t.setUint32(i+4,r)}function e(t,i){return 4294967296*t.getInt32(i)+t.getUint32(i+4)}var s=("undefined"==typeof process||"never"!==process.env.TEXT_ENCODING)&&"undefined"!=typeof TextEncoder&&"undefined"!=typeof TextDecoder;function h(t){for(var i=t.length,e=0,n=0;n=55296&&r<=56319&&n65535&&(u-=65536,s.push(u>>>10&1023|55296),u=56320|1023&u),s.push(u)}else s.push(o);s.length>=4096&&(h+=String.fromCharCode.apply(String,s),s.length=0)}return s.length>0&&(h+=String.fromCharCode.apply(String,s)),h}var c,l=s?new TextDecoder:null,w=s?"undefined"!=typeof process&&"force"!==process.env.TEXT_DECODER?200:0:t,v=function(t,i){this.type=t,this.data=i},d=(c=function(t,i){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])})(t,i)},function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function e(){this.constructor=t}c(t,i),t.prototype=null===i?Object.create(i):(e.prototype=i.prototype,new e)}),y=function(t){function i(e){var n=t.call(this,e)||this,r=Object.create(i.prototype);return Object.setPrototypeOf(n,r),Object.defineProperty(n,"name",{configurable:!0,enumerable:!1,value:i.name}),n}return d(i,t),i}(Error),p={type:-1,encode:function(t){var e,n,r,s;return t instanceof Date?function(t){var e,n=t.sec,r=t.nsec;if(n>=0&&r>=0&&n<=17179869183){if(0===r&&n<=4294967295){var s=new Uint8Array(4);return(e=new DataView(s.buffer)).setUint32(0,n),s}var h=n/4294967296,o=4294967295&n;return s=new Uint8Array(8),(e=new DataView(s.buffer)).setUint32(0,r<<2|3&h),e.setUint32(4,o),s}return s=new Uint8Array(12),(e=new DataView(s.buffer)).setUint32(0,r),i(e,4,n),s}((e=t.getTime(),n=Math.floor(e/1e3),r=1e6*(e-1e3*n),s=Math.floor(r/1e9),{sec:n+s,nsec:r-1e9*s})):null},decode:function(t){var i=function(t){var i=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:return{sec:i.getUint32(0),nsec:0};case 8:var n=i.getUint32(0);return{sec:4294967296*(3&n)+i.getUint32(4),nsec:n>>>2};case 12:return{sec:e(i,4),nsec:i.getUint32(0)};default:throw new y("Unrecognized data size for timestamp (expected 4, 8, or 12): "+t.length)}}(t);return new Date(1e3*i.sec+i.nsec/1e6)}},g=function(){function t(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(p)}return t.prototype.register=function(t){var i=t.type,e=t.encode,n=t.decode;if(i>=0)this.encoders[i]=e,this.decoders[i]=n;else{var r=1+i;this.builtInEncoders[r]=e,this.builtInDecoders[r]=n}},t.prototype.tryToEncode=function(t,i){for(var e=0;ethis.maxDepth)throw new Error("Too deep objects in depth "+i);null==t?this.encodeNil():"boolean"==typeof t?this.encodeBoolean(t):"number"==typeof t?this.encodeNumber(t):"string"==typeof t?this.encodeString(t):this.encodeObject(t,i)},t.prototype.ensureBufferSizeToWrite=function(t){var i=this.pos+t;this.view.byteLength=0?t<128?this.writeU8(t):t<256?(this.writeU8(204),this.writeU8(t)):t<65536?(this.writeU8(205),this.writeU16(t)):t<4294967296?(this.writeU8(206),this.writeU32(t)):(this.writeU8(207),this.writeU64(t)):t>=-32?this.writeU8(224|t+32):t>=-128?(this.writeU8(208),this.writeI8(t)):t>=-32768?(this.writeU8(209),this.writeI16(t)):t>=-2147483648?(this.writeU8(210),this.writeI32(t)):(this.writeU8(211),this.writeI64(t)):this.forceFloat32?(this.writeU8(202),this.writeF32(t)):(this.writeU8(203),this.writeF64(t))},t.prototype.writeStringHeader=function(t){if(t<32)this.writeU8(160+t);else if(t<256)this.writeU8(217),this.writeU8(t);else if(t<65536)this.writeU8(218),this.writeU16(t);else{if(!(t<4294967296))throw new Error("Too long string: "+t+" bytes in UTF-8");this.writeU8(219),this.writeU32(t)}},t.prototype.encodeString=function(t){if(t.length>a){var i=h(t);this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),f(t,this.bytes,this.pos),this.pos+=i}else i=h(t),this.ensureBufferSizeToWrite(5+i),this.writeStringHeader(i),function(t,i,e){for(var n=t.length,r=e,s=0;s>6&31|192;else{if(h>=55296&&h<=56319&&s>12&15|224,i[r++]=h>>6&63|128):(i[r++]=h>>18&7|240,i[r++]=h>>12&63|128,i[r++]=h>>6&63|128)}i[r++]=63&h|128}else i[r++]=h}}(t,this.bytes,this.pos),this.pos+=i},t.prototype.encodeObject=function(t,i){var e=this.extensionCodec.tryToEncode(t,this.context);if(null!=e)this.encodeExtension(e);else if(Array.isArray(t))this.encodeArray(t,i);else if(ArrayBuffer.isView(t))this.encodeBinary(t);else{if("object"!=typeof t)throw new Error("Unrecognized object: "+Object.prototype.toString.apply(t));this.encodeMap(t,i)}},t.prototype.encodeBinary=function(t){var i=t.byteLength;if(i<256)this.writeU8(196),this.writeU8(i);else if(i<65536)this.writeU8(197),this.writeU16(i);else{if(!(i<4294967296))throw new Error("Too large binary: "+i);this.writeU8(198),this.writeU32(i)}var e=m(t);this.writeU8a(e)},t.prototype.encodeArray=function(t,i){var e=t.length;if(e<16)this.writeU8(144+e);else if(e<65536)this.writeU8(220),this.writeU16(e);else{if(!(e<4294967296))throw new Error("Too large array: "+e);this.writeU8(221),this.writeU32(e)}for(var n=0,r=t;n0&&t<=this.maxKeyLength},t.prototype.find=function(t,i,e){t:for(var n=0,r=this.caches[e-1];n=this.maxLengthPerKey?e[Math.random()*e.length|0]=n:e.push(n)},t.prototype.decode=function(t,i,e){var n=this.find(t,i,e);if(null!=n)return this.hit++,n;this.miss++;var r=u(t,i,e),s=Uint8Array.prototype.slice.call(t,i,i+e);return this.store(s,r),r},t}(),A=function(t,i,e,n){return new(e||(e=Promise))((function(r,s){function h(t){try{a(n.next(t))}catch(t){s(t)}}function o(t){try{a(n.throw(t))}catch(t){s(t)}}function a(t){var i;t.done?r(t.value):(i=t.value,i instanceof e?i:new e((function(t){t(i)}))).then(h,o)}a((n=n.apply(t,i||[])).next())}))},I=function(t,i){var e,n,r,s,h={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(e)throw new TypeError("Generator is already executing.");for(;h;)try{if(e=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return h.label++,{value:s[1],done:!1};case 5:h.label++,n=s[1],s=[0];continue;case 7:s=h.ops.pop(),h.trys.pop();continue;default:if(!((r=(r=h.trys).length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){h=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]1||o(t,i)}))})}function o(t,i){try{(e=r[t](i)).value instanceof M?Promise.resolve(e.value.v).then(a,f):u(s[0][2],e)}catch(t){u(s[0][3],t)}var e}function a(t){o("next",t)}function f(t){o("throw",t)}function u(t,i){t(i),s.shift(),s.length&&o(s[0][0],s[0][1])}},U=new DataView(new ArrayBuffer(0)),j=new Uint8Array(U.buffer),T=function(){try{U.getInt8(0)}catch(t){return t.constructor}throw new Error("never reached")}(),D=new T("Insufficient data"),k=new E,B=function(){function i(i,e,n,r,s,h,o,a){void 0===i&&(i=g.defaultCodec),void 0===e&&(e=void 0),void 0===n&&(n=t),void 0===r&&(r=t),void 0===s&&(s=t),void 0===h&&(h=t),void 0===o&&(o=t),void 0===a&&(a=k),this.extensionCodec=i,this.context=e,this.maxStrLength=n,this.maxBinLength=r,this.maxArrayLength=s,this.maxMapLength=h,this.maxExtLength=o,this.keyDecoder=a,this.totalPos=0,this.pos=0,this.view=U,this.bytes=j,this.headByte=-1,this.stack=[]}return i.prototype.reinitializeState=function(){this.totalPos=0,this.headByte=-1,this.stack.length=0},i.prototype.setBuffer=function(t){this.bytes=m(t),this.view=function(t){if(t instanceof ArrayBuffer)return new DataView(t);var i=m(t);return new DataView(i.buffer,i.byteOffset,i.byteLength)}(this.bytes),this.pos=0},i.prototype.appendBuffer=function(t){if(-1!==this.headByte||this.hasRemaining(1)){var i=this.bytes.subarray(this.pos),e=m(t),n=new Uint8Array(i.length+e.length);n.set(i),n.set(e,i.length),this.setBuffer(n)}else this.setBuffer(t)},i.prototype.hasRemaining=function(t){return this.view.byteLength-this.pos>=t},i.prototype.createExtraByteError=function(t){var i=this.view,e=this.pos;return new RangeError("Extra "+(i.byteLength-e)+" of "+i.byteLength+" byte(s) found at buffer["+t+"]")},i.prototype.decode=function(t){this.reinitializeState(),this.setBuffer(t);var i=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return i},i.prototype.decodeMulti=function(t){return I(this,(function(i){switch(i.label){case 0:this.reinitializeState(),this.setBuffer(t),i.label=1;case 1:return this.hasRemaining(1)?[4,this.doDecodeSync()]:[3,3];case 2:return i.sent(),[3,1];case 3:return[2]}}))},i.prototype.decodeAsync=function(t){var i,e,n,r;return A(this,void 0,void 0,(function(){var s,h,o,a,f,u,c,l;return I(this,(function(w){switch(w.label){case 0:s=!1,w.label=1;case 1:w.trys.push([1,6,7,12]),i=_(t),w.label=2;case 2:return[4,i.next()];case 3:if((e=w.sent()).done)return[3,5];if(o=e.value,s)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o);try{h=this.doDecodeSync(),s=!0}catch(t){if(!(t instanceof T))throw t}this.totalPos+=this.pos,w.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return a=w.sent(),n={error:a},[3,12];case 7:return w.trys.push([7,,10,11]),e&&!e.done&&(r=i.return)?[4,r.call(i)]:[3,9];case 8:w.sent(),w.label=9;case 9:return[3,11];case 10:if(n)throw n.error;return[7];case 11:return[7];case 12:if(s){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return[2,h]}throw u=(f=this).headByte,c=f.pos,l=f.totalPos,new RangeError("Insufficient data in parsing "+x(u)+" at "+l+" ("+c+" in the current buffer)")}}))}))},i.prototype.decodeArrayStream=function(t){return this.decodeMultiAsync(t,!0)},i.prototype.decodeStream=function(t){return this.decodeMultiAsync(t,!1)},i.prototype.decodeMultiAsync=function(t,i){return S(this,arguments,(function(){var e,n,r,s,h,o,a,f,u;return I(this,(function(c){switch(c.label){case 0:e=i,n=-1,c.label=1;case 1:c.trys.push([1,13,14,19]),r=_(t),c.label=2;case 2:return[4,M(r.next())];case 3:if((s=c.sent()).done)return[3,12];if(h=s.value,i&&0===n)throw this.createExtraByteError(this.totalPos);this.appendBuffer(h),e&&(n=this.readArraySize(),e=!1,this.complete()),c.label=4;case 4:c.trys.push([4,9,,10]),c.label=5;case 5:return[4,M(this.doDecodeSync())];case 6:return[4,c.sent()];case 7:return c.sent(),0==--n?[3,8]:[3,5];case 8:return[3,10];case 9:if(!((o=c.sent())instanceof T))throw o;return[3,10];case 10:this.totalPos+=this.pos,c.label=11;case 11:return[3,2];case 12:return[3,19];case 13:return a=c.sent(),f={error:a},[3,19];case 14:return c.trys.push([14,,17,18]),s&&!s.done&&(u=r.return)?[4,M(u.call(r))]:[3,16];case 15:c.sent(),c.label=16;case 16:return[3,18];case 17:if(f)throw f.error;return[7];case 18:return[7];case 19:return[2]}}))}))},i.prototype.doDecodeSync=function(){t:for(;;){var t=this.readHeadByte(),i=void 0;if(t>=224)i=t-256;else if(t<192)if(t<128)i=t;else if(t<144){if(0!=(n=t-128)){this.pushMapState(n),this.complete();continue t}i={}}else if(t<160){if(0!=(n=t-144)){this.pushArrayState(n),this.complete();continue t}i=[]}else{var e=t-160;i=this.decodeUtf8String(e,0)}else if(192===t)i=null;else if(194===t)i=!1;else if(195===t)i=!0;else if(202===t)i=this.readF32();else if(203===t)i=this.readF64();else if(204===t)i=this.readU8();else if(205===t)i=this.readU16();else if(206===t)i=this.readU32();else if(207===t)i=this.readU64();else if(208===t)i=this.readI8();else if(209===t)i=this.readI16();else if(210===t)i=this.readI32();else if(211===t)i=this.readI64();else if(217===t)e=this.lookU8(),i=this.decodeUtf8String(e,1);else if(218===t)e=this.lookU16(),i=this.decodeUtf8String(e,2);else if(219===t)e=this.lookU32(),i=this.decodeUtf8String(e,4);else if(220===t){if(0!==(n=this.readU16())){this.pushArrayState(n),this.complete();continue t}i=[]}else if(221===t){if(0!==(n=this.readU32())){this.pushArrayState(n),this.complete();continue t}i=[]}else if(222===t){if(0!==(n=this.readU16())){this.pushMapState(n),this.complete();continue t}i={}}else if(223===t){if(0!==(n=this.readU32())){this.pushMapState(n),this.complete();continue t}i={}}else if(196===t){var n=this.lookU8();i=this.decodeBinary(n,1)}else if(197===t)n=this.lookU16(),i=this.decodeBinary(n,2);else if(198===t)n=this.lookU32(),i=this.decodeBinary(n,4);else if(212===t)i=this.decodeExtension(1,0);else if(213===t)i=this.decodeExtension(2,0);else if(214===t)i=this.decodeExtension(4,0);else if(215===t)i=this.decodeExtension(8,0);else if(216===t)i=this.decodeExtension(16,0);else if(199===t)n=this.lookU8(),i=this.decodeExtension(n,1);else if(200===t)n=this.lookU16(),i=this.decodeExtension(n,2);else{if(201!==t)throw new y("Unrecognized type byte: "+x(t));n=this.lookU32(),i=this.decodeExtension(n,4)}this.complete();for(var r=this.stack;r.length>0;){var s=r[r.length-1];if(0===s.type){if(s.array[s.position]=i,s.position++,s.position!==s.size)continue t;r.pop(),i=s.array}else{if(1===s.type){if(h=void 0,"string"!=(h=typeof i)&&"number"!==h)throw new y("The type of key must be string or number but "+typeof i);if("__proto__"===i)throw new y("The key __proto__ is not allowed");s.key=i,s.type=2;continue t}if(s.map[s.key]=i,s.readCount++,s.readCount!==s.size){s.key=null,s.type=1;continue t}r.pop(),i=s.map}}return i}var h},i.prototype.readHeadByte=function(){return-1===this.headByte&&(this.headByte=this.readU8()),this.headByte},i.prototype.complete=function(){this.headByte=-1},i.prototype.readArraySize=function(){var t=this.readHeadByte();switch(t){case 220:return this.readU16();case 221:return this.readU32();default:if(t<160)return t-144;throw new y("Unrecognized array type byte: "+x(t))}},i.prototype.pushMapState=function(t){if(t>this.maxMapLength)throw new y("Max length exceeded: map length ("+t+") > maxMapLengthLength ("+this.maxMapLength+")");this.stack.push({type:1,size:t,key:null,readCount:0,map:{}})},i.prototype.pushArrayState=function(t){if(t>this.maxArrayLength)throw new y("Max length exceeded: array length ("+t+") > maxArrayLength ("+this.maxArrayLength+")");this.stack.push({type:0,size:t,array:new Array(t),position:0})},i.prototype.decodeUtf8String=function(t,i){var e;if(t>this.maxStrLength)throw new y("Max length exceeded: UTF-8 byte length ("+t+") > maxStrLength ("+this.maxStrLength+")");if(this.bytes.byteLengthw?function(t,i,e){var n=t.subarray(i,i+e);return l.decode(n)}(this.bytes,r,t):u(this.bytes,r,t),this.pos+=i+t,n},i.prototype.stateIsMapKey=function(){return this.stack.length>0&&1===this.stack[this.stack.length-1].type},i.prototype.decodeBinary=function(t,i){if(t>this.maxBinLength)throw new y("Max length exceeded: bin length ("+t+") > maxBinLength ("+this.maxBinLength+")");if(!this.hasRemaining(t+i))throw D;var e=this.pos+i,n=this.bytes.subarray(e,e+t);return this.pos+=i+t,n},i.prototype.decodeExtension=function(t,i){if(t>this.maxExtLength)throw new y("Max length exceeded: ext length ("+t+") > maxExtLength ("+this.maxExtLength+")");var e=this.view.getInt8(this.pos+i),n=this.decodeBinary(t,i+1);return this.extensionCodec.decode(n,e,this.context)},i.prototype.lookU8=function(){return this.view.getUint8(this.pos)},i.prototype.lookU16=function(){return this.view.getUint16(this.pos)},i.prototype.lookU32=function(){return this.view.getUint32(this.pos)},i.prototype.readU8=function(){var t=this.view.getUint8(this.pos);return this.pos++,t},i.prototype.readI8=function(){var t=this.view.getInt8(this.pos);return this.pos++,t},i.prototype.readU16=function(){var t=this.view.getUint16(this.pos);return this.pos+=2,t},i.prototype.readI16=function(){var t=this.view.getInt16(this.pos);return this.pos+=2,t},i.prototype.readU32=function(){var t=this.view.getUint32(this.pos);return this.pos+=4,t},i.prototype.readI32=function(){var t=this.view.getInt32(this.pos);return this.pos+=4,t},i.prototype.readU64=function(){var t,i,e=(t=this.view,i=this.pos,4294967296*t.getUint32(i)+t.getUint32(i+4));return this.pos+=8,e},i.prototype.readI64=function(){var t=e(this.view,this.pos);return this.pos+=8,t},i.prototype.readF32=function(){var t=this.view.getFloat32(this.pos);return this.pos+=4,t},i.prototype.readF64=function(){var t=this.view.getFloat64(this.pos);return this.pos+=8,t},i}(),O=n(1);class V{static write(t){let i=t.byteLength||t.length;const e=[];do{let t=127&i;i>>=7,i>0&&(t|=128),e.push(t)}while(i>0);i=t.byteLength||t.length;const n=new Uint8Array(e.length+i);return n.set(e,0),n.set(t,e.length),n.buffer}static parse(t){const i=[],e=new Uint8Array(t),n=[0,7,14,21,28];for(let r=0;r7)throw new Error("Messages bigger than 2GB are not supported.");if(!(e.byteLength>=r+h+o))throw new Error("Incomplete message.");i.push(e.slice?e.slice(r+h,r+h+o):e.subarray(r+h,r+h+o)),r=r+h+o}return i}}const C=new Uint8Array([145,O.MessageType.Ping]);class P{constructor(t){this.name="messagepack",this.version=1,this.transferFormat=O.TransferFormat.Binary,this.i=1,this.h=2,this.u=3,t=t||{},this.l=new b(t.extensionCodec,t.context,t.maxDepth,t.initialBufferSize,t.sortKeys,t.forceFloat32,t.ignoreUndefined,t.forceIntegerToFloat),this.p=new B(t.extensionCodec,t.context,t.maxStrLength,t.maxBinLength,t.maxArrayLength,t.maxMapLength,t.maxExtLength)}parseMessages(t,i){if(!(e=t)||"undefined"==typeof ArrayBuffer||!(e instanceof ArrayBuffer||e.constructor&&"ArrayBuffer"===e.constructor.name))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.");var e;null===i&&(i=O.NullLogger.instance);const n=V.parse(t),r=[];for(const t of n){const e=this.g(t,i);e&&r.push(e)}return r}writeMessage(t){switch(t.type){case O.MessageType.Invocation:return this.m(t);case O.MessageType.StreamInvocation:return this.A(t);case O.MessageType.StreamItem:return this.I(t);case O.MessageType.Completion:return this._(t);case O.MessageType.Ping:return V.write(C);case O.MessageType.CancelInvocation:return this.M(t);default:throw new Error("Invalid message type.")}}g(t,i){if(0===t.length)throw new Error("Invalid payload.");const e=this.p.decode(t);if(0===e.length||!(e instanceof Array))throw new Error("Invalid payload.");const n=e[0];switch(n){case O.MessageType.Invocation:return this.S(this.U(e),e);case O.MessageType.StreamItem:return this.j(this.U(e),e);case O.MessageType.Completion:return this.T(this.U(e),e);case O.MessageType.Ping:return this.D(e);case O.MessageType.Close:return this.k(e);default:return i.log(O.LogLevel.Information,"Unknown message type '"+n+"' ignored."),null}}k(t){if(t.length<2)throw new Error("Invalid payload for Close message.");return{allowReconnect:t.length>=3?t[2]:void 0,error:t[1],type:O.MessageType.Close}}D(t){if(t.length<1)throw new Error("Invalid payload for Ping message.");return{type:O.MessageType.Ping}}S(t,i){if(i.length<5)throw new Error("Invalid payload for Invocation message.");const e=i[2];return e?{arguments:i[4],headers:t,invocationId:e,streamIds:[],target:i[3],type:O.MessageType.Invocation}:{arguments:i[4],headers:t,streamIds:[],target:i[3],type:O.MessageType.Invocation}}j(t,i){if(i.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:t,invocationId:i[2],item:i[3],type:O.MessageType.StreamItem}}T(t,i){if(i.length<4)throw new Error("Invalid payload for Completion message.");const e=i[3];if(e!==this.h&&i.length<5)throw new Error("Invalid payload for Completion message.");let n,r;switch(e){case this.i:n=i[4];break;case this.u:r=i[4]}return{error:n,headers:t,invocationId:i[2],result:r,type:O.MessageType.Completion}}m(t){let i;return i=t.streamIds?this.l.encode([O.MessageType.Invocation,t.headers||{},t.invocationId||null,t.target,t.arguments,t.streamIds]):this.l.encode([O.MessageType.Invocation,t.headers||{},t.invocationId||null,t.target,t.arguments]),V.write(i.slice())}A(t){let i;return i=t.streamIds?this.l.encode([O.MessageType.StreamInvocation,t.headers||{},t.invocationId,t.target,t.arguments,t.streamIds]):this.l.encode([O.MessageType.StreamInvocation,t.headers||{},t.invocationId,t.target,t.arguments]),V.write(i.slice())}I(t){const i=this.l.encode([O.MessageType.StreamItem,t.headers||{},t.invocationId,t.item]);return V.write(i.slice())}_(t){const i=t.error?this.i:t.result?this.u:this.h;let e;switch(i){case this.i:e=this.l.encode([O.MessageType.Completion,t.headers||{},t.invocationId,i,t.error]);break;case this.h:e=this.l.encode([O.MessageType.Completion,t.headers||{},t.invocationId,i]);break;case this.u:e=this.l.encode([O.MessageType.Completion,t.headers||{},t.invocationId,i,t.result])}return V.write(e.slice())}M(t){const i=this.l.encode([O.MessageType.CancelInvocation,t.headers||{},t.invocationId]);return V.write(i.slice())}U(t){const i=t[1];if("object"!=typeof i)throw new Error("Invalid headers.");return i}}const z="6.0.0"})(),r})()},"object"==typeof exports&&"object"==typeof module?module.exports=i(require("signalR")):"function"==typeof define&&define.amd?define(["signalR"],i):"object"==typeof exports?exports.msgpack=i(require("signalR")):(t.signalR=t.signalR||{},t.signalR.protocols=t.signalR.protocols||{},t.signalR.protocols.msgpack=i(t.signalR));
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory(require("signalR"));
+ else if(typeof define === 'function' && define.amd)
+ define(["signalR"], factory);
+ else if(typeof exports === 'object')
+ exports["msgpack"] = factory(require("signalR"));
+ else
+ root["signalR"] = root["signalR"] || {}, root["signalR"]["protocols"] = root["signalR"]["protocols"] || {}, root["signalR"]["protocols"]["msgpack"] = factory(root["signalR"]);
+})(self, function(__WEBPACK_EXTERNAL_MODULE__1__) {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ([
+/* 0 */,
+/* 1 */
+/***/ ((module) => {
+
+module.exports = __WEBPACK_EXTERNAL_MODULE__1__;
+
+/***/ })
+/******/ ]);
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+(() => {
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+ "MessagePackHubProtocol": () => (/* reexport */ MessagePackHubProtocol),
+ "VERSION": () => (/* reexport */ VERSION)
+});
+
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs
+// Integer Utility
+var UINT32_MAX = 4294967295;
+// DataView extension to handle int64 / uint64,
+// where the actual range is 53-bits integer (a.k.a. safe integer)
+function setUint64(view, offset, value) {
+ var high = value / 4294967296;
+ var low = value; // high bits are truncated by DataView
+ view.setUint32(offset, high);
+ view.setUint32(offset + 4, low);
+}
+function setInt64(view, offset, value) {
+ var high = Math.floor(value / 4294967296);
+ var low = value; // high bits are truncated by DataView
+ view.setUint32(offset, high);
+ view.setUint32(offset + 4, low);
+}
+function getInt64(view, offset) {
+ var high = view.getInt32(offset);
+ var low = view.getUint32(offset + 4);
+ return high * 4294967296 + low;
+}
+function getUint64(view, offset) {
+ var high = view.getUint32(offset);
+ var low = view.getUint32(offset + 4);
+ return high * 4294967296 + low;
+}
+//# sourceMappingURL=int.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs
+
+var TEXT_ENCODING_AVAILABLE = (typeof process === "undefined" || process.env["TEXT_ENCODING"] !== "never") &&
+ typeof TextEncoder !== "undefined" &&
+ typeof TextDecoder !== "undefined";
+function utf8Count(str) {
+ var strLength = str.length;
+ var byteLength = 0;
+ var pos = 0;
+ while (pos < strLength) {
+ var value = str.charCodeAt(pos++);
+ if ((value & 0xffffff80) === 0) {
+ // 1-byte
+ byteLength++;
+ continue;
+ }
+ else if ((value & 0xfffff800) === 0) {
+ // 2-bytes
+ byteLength += 2;
+ }
+ else {
+ // handle surrogate pair
+ if (value >= 0xd800 && value <= 0xdbff) {
+ // high surrogate
+ if (pos < strLength) {
+ var extra = str.charCodeAt(pos);
+ if ((extra & 0xfc00) === 0xdc00) {
+ ++pos;
+ value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;
+ }
+ }
+ }
+ if ((value & 0xffff0000) === 0) {
+ // 3-byte
+ byteLength += 3;
+ }
+ else {
+ // 4-byte
+ byteLength += 4;
+ }
+ }
+ }
+ return byteLength;
+}
+function utf8EncodeJs(str, output, outputOffset) {
+ var strLength = str.length;
+ var offset = outputOffset;
+ var pos = 0;
+ while (pos < strLength) {
+ var value = str.charCodeAt(pos++);
+ if ((value & 0xffffff80) === 0) {
+ // 1-byte
+ output[offset++] = value;
+ continue;
+ }
+ else if ((value & 0xfffff800) === 0) {
+ // 2-bytes
+ output[offset++] = ((value >> 6) & 0x1f) | 0xc0;
+ }
+ else {
+ // handle surrogate pair
+ if (value >= 0xd800 && value <= 0xdbff) {
+ // high surrogate
+ if (pos < strLength) {
+ var extra = str.charCodeAt(pos);
+ if ((extra & 0xfc00) === 0xdc00) {
+ ++pos;
+ value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;
+ }
+ }
+ }
+ if ((value & 0xffff0000) === 0) {
+ // 3-byte
+ output[offset++] = ((value >> 12) & 0x0f) | 0xe0;
+ output[offset++] = ((value >> 6) & 0x3f) | 0x80;
+ }
+ else {
+ // 4-byte
+ output[offset++] = ((value >> 18) & 0x07) | 0xf0;
+ output[offset++] = ((value >> 12) & 0x3f) | 0x80;
+ output[offset++] = ((value >> 6) & 0x3f) | 0x80;
+ }
+ }
+ output[offset++] = (value & 0x3f) | 0x80;
+ }
+}
+var sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;
+var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE
+ ? UINT32_MAX
+ : typeof process !== "undefined" && process.env["TEXT_ENCODING"] !== "force"
+ ? 200
+ : 0;
+function utf8EncodeTEencode(str, output, outputOffset) {
+ output.set(sharedTextEncoder.encode(str), outputOffset);
+}
+function utf8EncodeTEencodeInto(str, output, outputOffset) {
+ sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));
+}
+var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;
+var CHUNK_SIZE = 4096;
+function utf8DecodeJs(bytes, inputOffset, byteLength) {
+ var offset = inputOffset;
+ var end = offset + byteLength;
+ var units = [];
+ var result = "";
+ while (offset < end) {
+ var byte1 = bytes[offset++];
+ if ((byte1 & 0x80) === 0) {
+ // 1 byte
+ units.push(byte1);
+ }
+ else if ((byte1 & 0xe0) === 0xc0) {
+ // 2 bytes
+ var byte2 = bytes[offset++] & 0x3f;
+ units.push(((byte1 & 0x1f) << 6) | byte2);
+ }
+ else if ((byte1 & 0xf0) === 0xe0) {
+ // 3 bytes
+ var byte2 = bytes[offset++] & 0x3f;
+ var byte3 = bytes[offset++] & 0x3f;
+ units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);
+ }
+ else if ((byte1 & 0xf8) === 0xf0) {
+ // 4 bytes
+ var byte2 = bytes[offset++] & 0x3f;
+ var byte3 = bytes[offset++] & 0x3f;
+ var byte4 = bytes[offset++] & 0x3f;
+ var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
+ if (unit > 0xffff) {
+ unit -= 0x10000;
+ units.push(((unit >>> 10) & 0x3ff) | 0xd800);
+ unit = 0xdc00 | (unit & 0x3ff);
+ }
+ units.push(unit);
+ }
+ else {
+ units.push(byte1);
+ }
+ if (units.length >= CHUNK_SIZE) {
+ result += String.fromCharCode.apply(String, units);
+ units.length = 0;
+ }
+ }
+ if (units.length > 0) {
+ result += String.fromCharCode.apply(String, units);
+ }
+ return result;
+}
+var sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;
+var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE
+ ? UINT32_MAX
+ : typeof process !== "undefined" && process.env["TEXT_DECODER"] !== "force"
+ ? 200
+ : 0;
+function utf8DecodeTD(bytes, inputOffset, byteLength) {
+ var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);
+ return sharedTextDecoder.decode(stringBytes);
+}
+//# sourceMappingURL=utf8.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs
+/**
+ * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.
+ */
+var ExtData = /** @class */ (function () {
+ function ExtData(type, data) {
+ this.type = type;
+ this.data = data;
+ }
+ return ExtData;
+}());
+
+//# sourceMappingURL=ExtData.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs
+var __extends = (undefined && undefined.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var DecodeError = /** @class */ (function (_super) {
+ __extends(DecodeError, _super);
+ function DecodeError(message) {
+ var _this = _super.call(this, message) || this;
+ // fix the prototype chain in a cross-platform way
+ var proto = Object.create(DecodeError.prototype);
+ Object.setPrototypeOf(_this, proto);
+ Object.defineProperty(_this, "name", {
+ configurable: true,
+ enumerable: false,
+ value: DecodeError.name,
+ });
+ return _this;
+ }
+ return DecodeError;
+}(Error));
+
+//# sourceMappingURL=DecodeError.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs
+// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type
+
+
+var EXT_TIMESTAMP = -1;
+var TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int
+var TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int
+function encodeTimeSpecToTimestamp(_a) {
+ var sec = _a.sec, nsec = _a.nsec;
+ if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {
+ // Here sec >= 0 && nsec >= 0
+ if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {
+ // timestamp 32 = { sec32 (unsigned) }
+ var rv = new Uint8Array(4);
+ var view = new DataView(rv.buffer);
+ view.setUint32(0, sec);
+ return rv;
+ }
+ else {
+ // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }
+ var secHigh = sec / 0x100000000;
+ var secLow = sec & 0xffffffff;
+ var rv = new Uint8Array(8);
+ var view = new DataView(rv.buffer);
+ // nsec30 | secHigh2
+ view.setUint32(0, (nsec << 2) | (secHigh & 0x3));
+ // secLow32
+ view.setUint32(4, secLow);
+ return rv;
+ }
+ }
+ else {
+ // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }
+ var rv = new Uint8Array(12);
+ var view = new DataView(rv.buffer);
+ view.setUint32(0, nsec);
+ setInt64(view, 4, sec);
+ return rv;
+ }
+}
+function encodeDateToTimeSpec(date) {
+ var msec = date.getTime();
+ var sec = Math.floor(msec / 1e3);
+ var nsec = (msec - sec * 1e3) * 1e6;
+ // Normalizes { sec, nsec } to ensure nsec is unsigned.
+ var nsecInSec = Math.floor(nsec / 1e9);
+ return {
+ sec: sec + nsecInSec,
+ nsec: nsec - nsecInSec * 1e9,
+ };
+}
+function encodeTimestampExtension(object) {
+ if (object instanceof Date) {
+ var timeSpec = encodeDateToTimeSpec(object);
+ return encodeTimeSpecToTimestamp(timeSpec);
+ }
+ else {
+ return null;
+ }
+}
+function decodeTimestampToTimeSpec(data) {
+ var view = new DataView(data.buffer, data.byteOffset, data.byteLength);
+ // data may be 32, 64, or 96 bits
+ switch (data.byteLength) {
+ case 4: {
+ // timestamp 32 = { sec32 }
+ var sec = view.getUint32(0);
+ var nsec = 0;
+ return { sec: sec, nsec: nsec };
+ }
+ case 8: {
+ // timestamp 64 = { nsec30, sec34 }
+ var nsec30AndSecHigh2 = view.getUint32(0);
+ var secLow32 = view.getUint32(4);
+ var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;
+ var nsec = nsec30AndSecHigh2 >>> 2;
+ return { sec: sec, nsec: nsec };
+ }
+ case 12: {
+ // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }
+ var sec = getInt64(view, 4);
+ var nsec = view.getUint32(0);
+ return { sec: sec, nsec: nsec };
+ }
+ default:
+ throw new DecodeError("Unrecognized data size for timestamp (expected 4, 8, or 12): " + data.length);
+ }
+}
+function decodeTimestampExtension(data) {
+ var timeSpec = decodeTimestampToTimeSpec(data);
+ return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);
+}
+var timestampExtension = {
+ type: EXT_TIMESTAMP,
+ encode: encodeTimestampExtension,
+ decode: decodeTimestampExtension,
+};
+//# sourceMappingURL=timestamp.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs
+// ExtensionCodec to handle MessagePack extensions
+
+
+var ExtensionCodec = /** @class */ (function () {
+ function ExtensionCodec() {
+ // built-in extensions
+ this.builtInEncoders = [];
+ this.builtInDecoders = [];
+ // custom extensions
+ this.encoders = [];
+ this.decoders = [];
+ this.register(timestampExtension);
+ }
+ ExtensionCodec.prototype.register = function (_a) {
+ var type = _a.type, encode = _a.encode, decode = _a.decode;
+ if (type >= 0) {
+ // custom extensions
+ this.encoders[type] = encode;
+ this.decoders[type] = decode;
+ }
+ else {
+ // built-in extensions
+ var index = 1 + type;
+ this.builtInEncoders[index] = encode;
+ this.builtInDecoders[index] = decode;
+ }
+ };
+ ExtensionCodec.prototype.tryToEncode = function (object, context) {
+ // built-in extensions
+ for (var i = 0; i < this.builtInEncoders.length; i++) {
+ var encodeExt = this.builtInEncoders[i];
+ if (encodeExt != null) {
+ var data = encodeExt(object, context);
+ if (data != null) {
+ var type = -1 - i;
+ return new ExtData(type, data);
+ }
+ }
+ }
+ // custom extensions
+ for (var i = 0; i < this.encoders.length; i++) {
+ var encodeExt = this.encoders[i];
+ if (encodeExt != null) {
+ var data = encodeExt(object, context);
+ if (data != null) {
+ var type = i;
+ return new ExtData(type, data);
+ }
+ }
+ }
+ if (object instanceof ExtData) {
+ // to keep ExtData as is
+ return object;
+ }
+ return null;
+ };
+ ExtensionCodec.prototype.decode = function (data, type, context) {
+ var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];
+ if (decodeExt) {
+ return decodeExt(data, type, context);
+ }
+ else {
+ // decode() does not fail, returns ExtData instead.
+ return new ExtData(type, data);
+ }
+ };
+ ExtensionCodec.defaultCodec = new ExtensionCodec();
+ return ExtensionCodec;
+}());
+
+//# sourceMappingURL=ExtensionCodec.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs
+function ensureUint8Array(buffer) {
+ if (buffer instanceof Uint8Array) {
+ return buffer;
+ }
+ else if (ArrayBuffer.isView(buffer)) {
+ return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ }
+ else if (buffer instanceof ArrayBuffer) {
+ return new Uint8Array(buffer);
+ }
+ else {
+ // ArrayLike
+ return Uint8Array.from(buffer);
+ }
+}
+function createDataView(buffer) {
+ if (buffer instanceof ArrayBuffer) {
+ return new DataView(buffer);
+ }
+ var bufferView = ensureUint8Array(buffer);
+ return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);
+}
+//# sourceMappingURL=typedArrays.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs
+
+
+
+
+var DEFAULT_MAX_DEPTH = 100;
+var DEFAULT_INITIAL_BUFFER_SIZE = 2048;
+var Encoder = /** @class */ (function () {
+ function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {
+ if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }
+ if (context === void 0) { context = undefined; }
+ if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }
+ if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }
+ if (sortKeys === void 0) { sortKeys = false; }
+ if (forceFloat32 === void 0) { forceFloat32 = false; }
+ if (ignoreUndefined === void 0) { ignoreUndefined = false; }
+ if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }
+ this.extensionCodec = extensionCodec;
+ this.context = context;
+ this.maxDepth = maxDepth;
+ this.initialBufferSize = initialBufferSize;
+ this.sortKeys = sortKeys;
+ this.forceFloat32 = forceFloat32;
+ this.ignoreUndefined = ignoreUndefined;
+ this.forceIntegerToFloat = forceIntegerToFloat;
+ this.pos = 0;
+ this.view = new DataView(new ArrayBuffer(this.initialBufferSize));
+ this.bytes = new Uint8Array(this.view.buffer);
+ }
+ Encoder.prototype.getUint8Array = function () {
+ return this.bytes.subarray(0, this.pos);
+ };
+ Encoder.prototype.reinitializeState = function () {
+ this.pos = 0;
+ };
+ Encoder.prototype.encode = function (object) {
+ this.reinitializeState();
+ this.doEncode(object, 1);
+ return this.getUint8Array();
+ };
+ Encoder.prototype.doEncode = function (object, depth) {
+ if (depth > this.maxDepth) {
+ throw new Error("Too deep objects in depth " + depth);
+ }
+ if (object == null) {
+ this.encodeNil();
+ }
+ else if (typeof object === "boolean") {
+ this.encodeBoolean(object);
+ }
+ else if (typeof object === "number") {
+ this.encodeNumber(object);
+ }
+ else if (typeof object === "string") {
+ this.encodeString(object);
+ }
+ else {
+ this.encodeObject(object, depth);
+ }
+ };
+ Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {
+ var requiredSize = this.pos + sizeToWrite;
+ if (this.view.byteLength < requiredSize) {
+ this.resizeBuffer(requiredSize * 2);
+ }
+ };
+ Encoder.prototype.resizeBuffer = function (newSize) {
+ var newBuffer = new ArrayBuffer(newSize);
+ var newBytes = new Uint8Array(newBuffer);
+ var newView = new DataView(newBuffer);
+ newBytes.set(this.bytes);
+ this.view = newView;
+ this.bytes = newBytes;
+ };
+ Encoder.prototype.encodeNil = function () {
+ this.writeU8(0xc0);
+ };
+ Encoder.prototype.encodeBoolean = function (object) {
+ if (object === false) {
+ this.writeU8(0xc2);
+ }
+ else {
+ this.writeU8(0xc3);
+ }
+ };
+ Encoder.prototype.encodeNumber = function (object) {
+ if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {
+ if (object >= 0) {
+ if (object < 0x80) {
+ // positive fixint
+ this.writeU8(object);
+ }
+ else if (object < 0x100) {
+ // uint 8
+ this.writeU8(0xcc);
+ this.writeU8(object);
+ }
+ else if (object < 0x10000) {
+ // uint 16
+ this.writeU8(0xcd);
+ this.writeU16(object);
+ }
+ else if (object < 0x100000000) {
+ // uint 32
+ this.writeU8(0xce);
+ this.writeU32(object);
+ }
+ else {
+ // uint 64
+ this.writeU8(0xcf);
+ this.writeU64(object);
+ }
+ }
+ else {
+ if (object >= -0x20) {
+ // negative fixint
+ this.writeU8(0xe0 | (object + 0x20));
+ }
+ else if (object >= -0x80) {
+ // int 8
+ this.writeU8(0xd0);
+ this.writeI8(object);
+ }
+ else if (object >= -0x8000) {
+ // int 16
+ this.writeU8(0xd1);
+ this.writeI16(object);
+ }
+ else if (object >= -0x80000000) {
+ // int 32
+ this.writeU8(0xd2);
+ this.writeI32(object);
+ }
+ else {
+ // int 64
+ this.writeU8(0xd3);
+ this.writeI64(object);
+ }
+ }
+ }
+ else {
+ // non-integer numbers
+ if (this.forceFloat32) {
+ // float 32
+ this.writeU8(0xca);
+ this.writeF32(object);
+ }
+ else {
+ // float 64
+ this.writeU8(0xcb);
+ this.writeF64(object);
+ }
+ }
+ };
+ Encoder.prototype.writeStringHeader = function (byteLength) {
+ if (byteLength < 32) {
+ // fixstr
+ this.writeU8(0xa0 + byteLength);
+ }
+ else if (byteLength < 0x100) {
+ // str 8
+ this.writeU8(0xd9);
+ this.writeU8(byteLength);
+ }
+ else if (byteLength < 0x10000) {
+ // str 16
+ this.writeU8(0xda);
+ this.writeU16(byteLength);
+ }
+ else if (byteLength < 0x100000000) {
+ // str 32
+ this.writeU8(0xdb);
+ this.writeU32(byteLength);
+ }
+ else {
+ throw new Error("Too long string: " + byteLength + " bytes in UTF-8");
+ }
+ };
+ Encoder.prototype.encodeString = function (object) {
+ var maxHeaderSize = 1 + 4;
+ var strLength = object.length;
+ if (strLength > TEXT_ENCODER_THRESHOLD) {
+ var byteLength = utf8Count(object);
+ this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);
+ this.writeStringHeader(byteLength);
+ utf8EncodeTE(object, this.bytes, this.pos);
+ this.pos += byteLength;
+ }
+ else {
+ var byteLength = utf8Count(object);
+ this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);
+ this.writeStringHeader(byteLength);
+ utf8EncodeJs(object, this.bytes, this.pos);
+ this.pos += byteLength;
+ }
+ };
+ Encoder.prototype.encodeObject = function (object, depth) {
+ // try to encode objects with custom codec first of non-primitives
+ var ext = this.extensionCodec.tryToEncode(object, this.context);
+ if (ext != null) {
+ this.encodeExtension(ext);
+ }
+ else if (Array.isArray(object)) {
+ this.encodeArray(object, depth);
+ }
+ else if (ArrayBuffer.isView(object)) {
+ this.encodeBinary(object);
+ }
+ else if (typeof object === "object") {
+ this.encodeMap(object, depth);
+ }
+ else {
+ // symbol, function and other special object come here unless extensionCodec handles them.
+ throw new Error("Unrecognized object: " + Object.prototype.toString.apply(object));
+ }
+ };
+ Encoder.prototype.encodeBinary = function (object) {
+ var size = object.byteLength;
+ if (size < 0x100) {
+ // bin 8
+ this.writeU8(0xc4);
+ this.writeU8(size);
+ }
+ else if (size < 0x10000) {
+ // bin 16
+ this.writeU8(0xc5);
+ this.writeU16(size);
+ }
+ else if (size < 0x100000000) {
+ // bin 32
+ this.writeU8(0xc6);
+ this.writeU32(size);
+ }
+ else {
+ throw new Error("Too large binary: " + size);
+ }
+ var bytes = ensureUint8Array(object);
+ this.writeU8a(bytes);
+ };
+ Encoder.prototype.encodeArray = function (object, depth) {
+ var size = object.length;
+ if (size < 16) {
+ // fixarray
+ this.writeU8(0x90 + size);
+ }
+ else if (size < 0x10000) {
+ // array 16
+ this.writeU8(0xdc);
+ this.writeU16(size);
+ }
+ else if (size < 0x100000000) {
+ // array 32
+ this.writeU8(0xdd);
+ this.writeU32(size);
+ }
+ else {
+ throw new Error("Too large array: " + size);
+ }
+ for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {
+ var item = object_1[_i];
+ this.doEncode(item, depth + 1);
+ }
+ };
+ Encoder.prototype.countWithoutUndefined = function (object, keys) {
+ var count = 0;
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
+ var key = keys_1[_i];
+ if (object[key] !== undefined) {
+ count++;
+ }
+ }
+ return count;
+ };
+ Encoder.prototype.encodeMap = function (object, depth) {
+ var keys = Object.keys(object);
+ if (this.sortKeys) {
+ keys.sort();
+ }
+ var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;
+ if (size < 16) {
+ // fixmap
+ this.writeU8(0x80 + size);
+ }
+ else if (size < 0x10000) {
+ // map 16
+ this.writeU8(0xde);
+ this.writeU16(size);
+ }
+ else if (size < 0x100000000) {
+ // map 32
+ this.writeU8(0xdf);
+ this.writeU32(size);
+ }
+ else {
+ throw new Error("Too large map object: " + size);
+ }
+ for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
+ var key = keys_2[_i];
+ var value = object[key];
+ if (!(this.ignoreUndefined && value === undefined)) {
+ this.encodeString(key);
+ this.doEncode(value, depth + 1);
+ }
+ }
+ };
+ Encoder.prototype.encodeExtension = function (ext) {
+ var size = ext.data.length;
+ if (size === 1) {
+ // fixext 1
+ this.writeU8(0xd4);
+ }
+ else if (size === 2) {
+ // fixext 2
+ this.writeU8(0xd5);
+ }
+ else if (size === 4) {
+ // fixext 4
+ this.writeU8(0xd6);
+ }
+ else if (size === 8) {
+ // fixext 8
+ this.writeU8(0xd7);
+ }
+ else if (size === 16) {
+ // fixext 16
+ this.writeU8(0xd8);
+ }
+ else if (size < 0x100) {
+ // ext 8
+ this.writeU8(0xc7);
+ this.writeU8(size);
+ }
+ else if (size < 0x10000) {
+ // ext 16
+ this.writeU8(0xc8);
+ this.writeU16(size);
+ }
+ else if (size < 0x100000000) {
+ // ext 32
+ this.writeU8(0xc9);
+ this.writeU32(size);
+ }
+ else {
+ throw new Error("Too large extension object: " + size);
+ }
+ this.writeI8(ext.type);
+ this.writeU8a(ext.data);
+ };
+ Encoder.prototype.writeU8 = function (value) {
+ this.ensureBufferSizeToWrite(1);
+ this.view.setUint8(this.pos, value);
+ this.pos++;
+ };
+ Encoder.prototype.writeU8a = function (values) {
+ var size = values.length;
+ this.ensureBufferSizeToWrite(size);
+ this.bytes.set(values, this.pos);
+ this.pos += size;
+ };
+ Encoder.prototype.writeI8 = function (value) {
+ this.ensureBufferSizeToWrite(1);
+ this.view.setInt8(this.pos, value);
+ this.pos++;
+ };
+ Encoder.prototype.writeU16 = function (value) {
+ this.ensureBufferSizeToWrite(2);
+ this.view.setUint16(this.pos, value);
+ this.pos += 2;
+ };
+ Encoder.prototype.writeI16 = function (value) {
+ this.ensureBufferSizeToWrite(2);
+ this.view.setInt16(this.pos, value);
+ this.pos += 2;
+ };
+ Encoder.prototype.writeU32 = function (value) {
+ this.ensureBufferSizeToWrite(4);
+ this.view.setUint32(this.pos, value);
+ this.pos += 4;
+ };
+ Encoder.prototype.writeI32 = function (value) {
+ this.ensureBufferSizeToWrite(4);
+ this.view.setInt32(this.pos, value);
+ this.pos += 4;
+ };
+ Encoder.prototype.writeF32 = function (value) {
+ this.ensureBufferSizeToWrite(4);
+ this.view.setFloat32(this.pos, value);
+ this.pos += 4;
+ };
+ Encoder.prototype.writeF64 = function (value) {
+ this.ensureBufferSizeToWrite(8);
+ this.view.setFloat64(this.pos, value);
+ this.pos += 8;
+ };
+ Encoder.prototype.writeU64 = function (value) {
+ this.ensureBufferSizeToWrite(8);
+ setUint64(this.view, this.pos, value);
+ this.pos += 8;
+ };
+ Encoder.prototype.writeI64 = function (value) {
+ this.ensureBufferSizeToWrite(8);
+ setInt64(this.view, this.pos, value);
+ this.pos += 8;
+ };
+ return Encoder;
+}());
+
+//# sourceMappingURL=Encoder.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs
+function prettyByte(byte) {
+ return (byte < 0 ? "-" : "") + "0x" + Math.abs(byte).toString(16).padStart(2, "0");
+}
+//# sourceMappingURL=prettyByte.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs
+
+var DEFAULT_MAX_KEY_LENGTH = 16;
+var DEFAULT_MAX_LENGTH_PER_KEY = 16;
+var CachedKeyDecoder = /** @class */ (function () {
+ function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {
+ if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }
+ if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }
+ this.maxKeyLength = maxKeyLength;
+ this.maxLengthPerKey = maxLengthPerKey;
+ this.hit = 0;
+ this.miss = 0;
+ // avoid `new Array(N)`, which makes a sparse array,
+ // because a sparse array is typically slower than a non-sparse array.
+ this.caches = [];
+ for (var i = 0; i < this.maxKeyLength; i++) {
+ this.caches.push([]);
+ }
+ }
+ CachedKeyDecoder.prototype.canBeCached = function (byteLength) {
+ return byteLength > 0 && byteLength <= this.maxKeyLength;
+ };
+ CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {
+ var records = this.caches[byteLength - 1];
+ FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {
+ var record = records_1[_i];
+ var recordBytes = record.bytes;
+ for (var j = 0; j < byteLength; j++) {
+ if (recordBytes[j] !== bytes[inputOffset + j]) {
+ continue FIND_CHUNK;
+ }
+ }
+ return record.str;
+ }
+ return null;
+ };
+ CachedKeyDecoder.prototype.store = function (bytes, value) {
+ var records = this.caches[bytes.length - 1];
+ var record = { bytes: bytes, str: value };
+ if (records.length >= this.maxLengthPerKey) {
+ // `records` are full!
+ // Set `record` to an arbitrary position.
+ records[(Math.random() * records.length) | 0] = record;
+ }
+ else {
+ records.push(record);
+ }
+ };
+ CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {
+ var cachedValue = this.find(bytes, inputOffset, byteLength);
+ if (cachedValue != null) {
+ this.hit++;
+ return cachedValue;
+ }
+ this.miss++;
+ var str = utf8DecodeJs(bytes, inputOffset, byteLength);
+ // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.
+ var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);
+ this.store(slicedCopyOfBytes, str);
+ return str;
+ };
+ return CachedKeyDecoder;
+}());
+
+//# sourceMappingURL=CachedKeyDecoder.mjs.map
+;// CONCATENATED MODULE: ./node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __asyncValues = (undefined && undefined.__asyncValues) || function (o) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+};
+var __await = (undefined && undefined.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
+var __asyncGenerator = (undefined && undefined.__asyncGenerator) || function (thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
+ function fulfill(value) { resume("next", value); }
+ function reject(value) { resume("throw", value); }
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+};
+
+
+
+
+
+
+
+var isValidMapKeyType = function (key) {
+ var keyType = typeof key;
+ return keyType === "string" || keyType === "number";
+};
+var HEAD_BYTE_REQUIRED = -1;
+var EMPTY_VIEW = new DataView(new ArrayBuffer(0));
+var EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);
+// IE11: Hack to support IE11.
+// IE11: Drop this hack and just use RangeError when IE11 is obsolete.
+var DataViewIndexOutOfBoundsError = (function () {
+ try {
+ // IE11: The spec says it should throw RangeError,
+ // IE11: but in IE11 it throws TypeError.
+ EMPTY_VIEW.getInt8(0);
+ }
+ catch (e) {
+ return e.constructor;
+ }
+ throw new Error("never reached");
+})();
+var MORE_DATA = new DataViewIndexOutOfBoundsError("Insufficient data");
+var sharedCachedKeyDecoder = new CachedKeyDecoder();
+var Decoder = /** @class */ (function () {
+ function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {
+ if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }
+ if (context === void 0) { context = undefined; }
+ if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }
+ if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }
+ if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }
+ if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }
+ if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }
+ if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }
+ this.extensionCodec = extensionCodec;
+ this.context = context;
+ this.maxStrLength = maxStrLength;
+ this.maxBinLength = maxBinLength;
+ this.maxArrayLength = maxArrayLength;
+ this.maxMapLength = maxMapLength;
+ this.maxExtLength = maxExtLength;
+ this.keyDecoder = keyDecoder;
+ this.totalPos = 0;
+ this.pos = 0;
+ this.view = EMPTY_VIEW;
+ this.bytes = EMPTY_BYTES;
+ this.headByte = HEAD_BYTE_REQUIRED;
+ this.stack = [];
+ }
+ Decoder.prototype.reinitializeState = function () {
+ this.totalPos = 0;
+ this.headByte = HEAD_BYTE_REQUIRED;
+ this.stack.length = 0;
+ // view, bytes, and pos will be re-initialized in setBuffer()
+ };
+ Decoder.prototype.setBuffer = function (buffer) {
+ this.bytes = ensureUint8Array(buffer);
+ this.view = createDataView(this.bytes);
+ this.pos = 0;
+ };
+ Decoder.prototype.appendBuffer = function (buffer) {
+ if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {
+ this.setBuffer(buffer);
+ }
+ else {
+ var remainingData = this.bytes.subarray(this.pos);
+ var newData = ensureUint8Array(buffer);
+ // concat remainingData + newData
+ var newBuffer = new Uint8Array(remainingData.length + newData.length);
+ newBuffer.set(remainingData);
+ newBuffer.set(newData, remainingData.length);
+ this.setBuffer(newBuffer);
+ }
+ };
+ Decoder.prototype.hasRemaining = function (size) {
+ return this.view.byteLength - this.pos >= size;
+ };
+ Decoder.prototype.createExtraByteError = function (posToShow) {
+ var _a = this, view = _a.view, pos = _a.pos;
+ return new RangeError("Extra " + (view.byteLength - pos) + " of " + view.byteLength + " byte(s) found at buffer[" + posToShow + "]");
+ };
+ /**
+ * @throws {DecodeError}
+ * @throws {RangeError}
+ */
+ Decoder.prototype.decode = function (buffer) {
+ this.reinitializeState();
+ this.setBuffer(buffer);
+ var object = this.doDecodeSync();
+ if (this.hasRemaining(1)) {
+ throw this.createExtraByteError(this.pos);
+ }
+ return object;
+ };
+ Decoder.prototype.decodeMulti = function (buffer) {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ this.reinitializeState();
+ this.setBuffer(buffer);
+ _a.label = 1;
+ case 1:
+ if (!this.hasRemaining(1)) return [3 /*break*/, 3];
+ return [4 /*yield*/, this.doDecodeSync()];
+ case 2:
+ _a.sent();
+ return [3 /*break*/, 1];
+ case 3: return [2 /*return*/];
+ }
+ });
+ };
+ Decoder.prototype.decodeAsync = function (stream) {
+ var stream_1, stream_1_1;
+ var e_1, _a;
+ return __awaiter(this, void 0, void 0, function () {
+ var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ decoded = false;
+ _c.label = 1;
+ case 1:
+ _c.trys.push([1, 6, 7, 12]);
+ stream_1 = __asyncValues(stream);
+ _c.label = 2;
+ case 2: return [4 /*yield*/, stream_1.next()];
+ case 3:
+ if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];
+ buffer = stream_1_1.value;
+ if (decoded) {
+ throw this.createExtraByteError(this.totalPos);
+ }
+ this.appendBuffer(buffer);
+ try {
+ object = this.doDecodeSync();
+ decoded = true;
+ }
+ catch (e) {
+ if (!(e instanceof DataViewIndexOutOfBoundsError)) {
+ throw e; // rethrow
+ }
+ // fallthrough
+ }
+ this.totalPos += this.pos;
+ _c.label = 4;
+ case 4: return [3 /*break*/, 2];
+ case 5: return [3 /*break*/, 12];
+ case 6:
+ e_1_1 = _c.sent();
+ e_1 = { error: e_1_1 };
+ return [3 /*break*/, 12];
+ case 7:
+ _c.trys.push([7, , 10, 11]);
+ if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];
+ return [4 /*yield*/, _a.call(stream_1)];
+ case 8:
+ _c.sent();
+ _c.label = 9;
+ case 9: return [3 /*break*/, 11];
+ case 10:
+ if (e_1) throw e_1.error;
+ return [7 /*endfinally*/];
+ case 11: return [7 /*endfinally*/];
+ case 12:
+ if (decoded) {
+ if (this.hasRemaining(1)) {
+ throw this.createExtraByteError(this.totalPos);
+ }
+ return [2 /*return*/, object];
+ }
+ _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;
+ throw new RangeError("Insufficient data in parsing " + prettyByte(headByte) + " at " + totalPos + " (" + pos + " in the current buffer)");
+ }
+ });
+ });
+ };
+ Decoder.prototype.decodeArrayStream = function (stream) {
+ return this.decodeMultiAsync(stream, true);
+ };
+ Decoder.prototype.decodeStream = function (stream) {
+ return this.decodeMultiAsync(stream, false);
+ };
+ Decoder.prototype.decodeMultiAsync = function (stream, isArray) {
+ return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {
+ var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;
+ var e_3, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ isArrayHeaderRequired = isArray;
+ arrayItemsLeft = -1;
+ _b.label = 1;
+ case 1:
+ _b.trys.push([1, 13, 14, 19]);
+ stream_2 = __asyncValues(stream);
+ _b.label = 2;
+ case 2: return [4 /*yield*/, __await(stream_2.next())];
+ case 3:
+ if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];
+ buffer = stream_2_1.value;
+ if (isArray && arrayItemsLeft === 0) {
+ throw this.createExtraByteError(this.totalPos);
+ }
+ this.appendBuffer(buffer);
+ if (isArrayHeaderRequired) {
+ arrayItemsLeft = this.readArraySize();
+ isArrayHeaderRequired = false;
+ this.complete();
+ }
+ _b.label = 4;
+ case 4:
+ _b.trys.push([4, 9, , 10]);
+ _b.label = 5;
+ case 5:
+ if (false) {}
+ return [4 /*yield*/, __await(this.doDecodeSync())];
+ case 6: return [4 /*yield*/, _b.sent()];
+ case 7:
+ _b.sent();
+ if (--arrayItemsLeft === 0) {
+ return [3 /*break*/, 8];
+ }
+ return [3 /*break*/, 5];
+ case 8: return [3 /*break*/, 10];
+ case 9:
+ e_2 = _b.sent();
+ if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {
+ throw e_2; // rethrow
+ }
+ return [3 /*break*/, 10];
+ case 10:
+ this.totalPos += this.pos;
+ _b.label = 11;
+ case 11: return [3 /*break*/, 2];
+ case 12: return [3 /*break*/, 19];
+ case 13:
+ e_3_1 = _b.sent();
+ e_3 = { error: e_3_1 };
+ return [3 /*break*/, 19];
+ case 14:
+ _b.trys.push([14, , 17, 18]);
+ if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];
+ return [4 /*yield*/, __await(_a.call(stream_2))];
+ case 15:
+ _b.sent();
+ _b.label = 16;
+ case 16: return [3 /*break*/, 18];
+ case 17:
+ if (e_3) throw e_3.error;
+ return [7 /*endfinally*/];
+ case 18: return [7 /*endfinally*/];
+ case 19: return [2 /*return*/];
+ }
+ });
+ });
+ };
+ Decoder.prototype.doDecodeSync = function () {
+ DECODE: while (true) {
+ var headByte = this.readHeadByte();
+ var object = void 0;
+ if (headByte >= 0xe0) {
+ // negative fixint (111x xxxx) 0xe0 - 0xff
+ object = headByte - 0x100;
+ }
+ else if (headByte < 0xc0) {
+ if (headByte < 0x80) {
+ // positive fixint (0xxx xxxx) 0x00 - 0x7f
+ object = headByte;
+ }
+ else if (headByte < 0x90) {
+ // fixmap (1000 xxxx) 0x80 - 0x8f
+ var size = headByte - 0x80;
+ if (size !== 0) {
+ this.pushMapState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = {};
+ }
+ }
+ else if (headByte < 0xa0) {
+ // fixarray (1001 xxxx) 0x90 - 0x9f
+ var size = headByte - 0x90;
+ if (size !== 0) {
+ this.pushArrayState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = [];
+ }
+ }
+ else {
+ // fixstr (101x xxxx) 0xa0 - 0xbf
+ var byteLength = headByte - 0xa0;
+ object = this.decodeUtf8String(byteLength, 0);
+ }
+ }
+ else if (headByte === 0xc0) {
+ // nil
+ object = null;
+ }
+ else if (headByte === 0xc2) {
+ // false
+ object = false;
+ }
+ else if (headByte === 0xc3) {
+ // true
+ object = true;
+ }
+ else if (headByte === 0xca) {
+ // float 32
+ object = this.readF32();
+ }
+ else if (headByte === 0xcb) {
+ // float 64
+ object = this.readF64();
+ }
+ else if (headByte === 0xcc) {
+ // uint 8
+ object = this.readU8();
+ }
+ else if (headByte === 0xcd) {
+ // uint 16
+ object = this.readU16();
+ }
+ else if (headByte === 0xce) {
+ // uint 32
+ object = this.readU32();
+ }
+ else if (headByte === 0xcf) {
+ // uint 64
+ object = this.readU64();
+ }
+ else if (headByte === 0xd0) {
+ // int 8
+ object = this.readI8();
+ }
+ else if (headByte === 0xd1) {
+ // int 16
+ object = this.readI16();
+ }
+ else if (headByte === 0xd2) {
+ // int 32
+ object = this.readI32();
+ }
+ else if (headByte === 0xd3) {
+ // int 64
+ object = this.readI64();
+ }
+ else if (headByte === 0xd9) {
+ // str 8
+ var byteLength = this.lookU8();
+ object = this.decodeUtf8String(byteLength, 1);
+ }
+ else if (headByte === 0xda) {
+ // str 16
+ var byteLength = this.lookU16();
+ object = this.decodeUtf8String(byteLength, 2);
+ }
+ else if (headByte === 0xdb) {
+ // str 32
+ var byteLength = this.lookU32();
+ object = this.decodeUtf8String(byteLength, 4);
+ }
+ else if (headByte === 0xdc) {
+ // array 16
+ var size = this.readU16();
+ if (size !== 0) {
+ this.pushArrayState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = [];
+ }
+ }
+ else if (headByte === 0xdd) {
+ // array 32
+ var size = this.readU32();
+ if (size !== 0) {
+ this.pushArrayState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = [];
+ }
+ }
+ else if (headByte === 0xde) {
+ // map 16
+ var size = this.readU16();
+ if (size !== 0) {
+ this.pushMapState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = {};
+ }
+ }
+ else if (headByte === 0xdf) {
+ // map 32
+ var size = this.readU32();
+ if (size !== 0) {
+ this.pushMapState(size);
+ this.complete();
+ continue DECODE;
+ }
+ else {
+ object = {};
+ }
+ }
+ else if (headByte === 0xc4) {
+ // bin 8
+ var size = this.lookU8();
+ object = this.decodeBinary(size, 1);
+ }
+ else if (headByte === 0xc5) {
+ // bin 16
+ var size = this.lookU16();
+ object = this.decodeBinary(size, 2);
+ }
+ else if (headByte === 0xc6) {
+ // bin 32
+ var size = this.lookU32();
+ object = this.decodeBinary(size, 4);
+ }
+ else if (headByte === 0xd4) {
+ // fixext 1
+ object = this.decodeExtension(1, 0);
+ }
+ else if (headByte === 0xd5) {
+ // fixext 2
+ object = this.decodeExtension(2, 0);
+ }
+ else if (headByte === 0xd6) {
+ // fixext 4
+ object = this.decodeExtension(4, 0);
+ }
+ else if (headByte === 0xd7) {
+ // fixext 8
+ object = this.decodeExtension(8, 0);
+ }
+ else if (headByte === 0xd8) {
+ // fixext 16
+ object = this.decodeExtension(16, 0);
+ }
+ else if (headByte === 0xc7) {
+ // ext 8
+ var size = this.lookU8();
+ object = this.decodeExtension(size, 1);
+ }
+ else if (headByte === 0xc8) {
+ // ext 16
+ var size = this.lookU16();
+ object = this.decodeExtension(size, 2);
+ }
+ else if (headByte === 0xc9) {
+ // ext 32
+ var size = this.lookU32();
+ object = this.decodeExtension(size, 4);
+ }
+ else {
+ throw new DecodeError("Unrecognized type byte: " + prettyByte(headByte));
+ }
+ this.complete();
+ var stack = this.stack;
+ while (stack.length > 0) {
+ // arrays and maps
+ var state = stack[stack.length - 1];
+ if (state.type === 0 /* ARRAY */) {
+ state.array[state.position] = object;
+ state.position++;
+ if (state.position === state.size) {
+ stack.pop();
+ object = state.array;
+ }
+ else {
+ continue DECODE;
+ }
+ }
+ else if (state.type === 1 /* MAP_KEY */) {
+ if (!isValidMapKeyType(object)) {
+ throw new DecodeError("The type of key must be string or number but " + typeof object);
+ }
+ if (object === "__proto__") {
+ throw new DecodeError("The key __proto__ is not allowed");
+ }
+ state.key = object;
+ state.type = 2 /* MAP_VALUE */;
+ continue DECODE;
+ }
+ else {
+ // it must be `state.type === State.MAP_VALUE` here
+ state.map[state.key] = object;
+ state.readCount++;
+ if (state.readCount === state.size) {
+ stack.pop();
+ object = state.map;
+ }
+ else {
+ state.key = null;
+ state.type = 1 /* MAP_KEY */;
+ continue DECODE;
+ }
+ }
+ }
+ return object;
+ }
+ };
+ Decoder.prototype.readHeadByte = function () {
+ if (this.headByte === HEAD_BYTE_REQUIRED) {
+ this.headByte = this.readU8();
+ // console.log("headByte", prettyByte(this.headByte));
+ }
+ return this.headByte;
+ };
+ Decoder.prototype.complete = function () {
+ this.headByte = HEAD_BYTE_REQUIRED;
+ };
+ Decoder.prototype.readArraySize = function () {
+ var headByte = this.readHeadByte();
+ switch (headByte) {
+ case 0xdc:
+ return this.readU16();
+ case 0xdd:
+ return this.readU32();
+ default: {
+ if (headByte < 0xa0) {
+ return headByte - 0x90;
+ }
+ else {
+ throw new DecodeError("Unrecognized array type byte: " + prettyByte(headByte));
+ }
+ }
+ }
+ };
+ Decoder.prototype.pushMapState = function (size) {
+ if (size > this.maxMapLength) {
+ throw new DecodeError("Max length exceeded: map length (" + size + ") > maxMapLengthLength (" + this.maxMapLength + ")");
+ }
+ this.stack.push({
+ type: 1 /* MAP_KEY */,
+ size: size,
+ key: null,
+ readCount: 0,
+ map: {},
+ });
+ };
+ Decoder.prototype.pushArrayState = function (size) {
+ if (size > this.maxArrayLength) {
+ throw new DecodeError("Max length exceeded: array length (" + size + ") > maxArrayLength (" + this.maxArrayLength + ")");
+ }
+ this.stack.push({
+ type: 0 /* ARRAY */,
+ size: size,
+ array: new Array(size),
+ position: 0,
+ });
+ };
+ Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {
+ var _a;
+ if (byteLength > this.maxStrLength) {
+ throw new DecodeError("Max length exceeded: UTF-8 byte length (" + byteLength + ") > maxStrLength (" + this.maxStrLength + ")");
+ }
+ if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {
+ throw MORE_DATA;
+ }
+ var offset = this.pos + headerOffset;
+ var object;
+ if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {
+ object = this.keyDecoder.decode(this.bytes, offset, byteLength);
+ }
+ else if (byteLength > TEXT_DECODER_THRESHOLD) {
+ object = utf8DecodeTD(this.bytes, offset, byteLength);
+ }
+ else {
+ object = utf8DecodeJs(this.bytes, offset, byteLength);
+ }
+ this.pos += headerOffset + byteLength;
+ return object;
+ };
+ Decoder.prototype.stateIsMapKey = function () {
+ if (this.stack.length > 0) {
+ var state = this.stack[this.stack.length - 1];
+ return state.type === 1 /* MAP_KEY */;
+ }
+ return false;
+ };
+ Decoder.prototype.decodeBinary = function (byteLength, headOffset) {
+ if (byteLength > this.maxBinLength) {
+ throw new DecodeError("Max length exceeded: bin length (" + byteLength + ") > maxBinLength (" + this.maxBinLength + ")");
+ }
+ if (!this.hasRemaining(byteLength + headOffset)) {
+ throw MORE_DATA;
+ }
+ var offset = this.pos + headOffset;
+ var object = this.bytes.subarray(offset, offset + byteLength);
+ this.pos += headOffset + byteLength;
+ return object;
+ };
+ Decoder.prototype.decodeExtension = function (size, headOffset) {
+ if (size > this.maxExtLength) {
+ throw new DecodeError("Max length exceeded: ext length (" + size + ") > maxExtLength (" + this.maxExtLength + ")");
+ }
+ var extType = this.view.getInt8(this.pos + headOffset);
+ var data = this.decodeBinary(size, headOffset + 1 /* extType */);
+ return this.extensionCodec.decode(data, extType, this.context);
+ };
+ Decoder.prototype.lookU8 = function () {
+ return this.view.getUint8(this.pos);
+ };
+ Decoder.prototype.lookU16 = function () {
+ return this.view.getUint16(this.pos);
+ };
+ Decoder.prototype.lookU32 = function () {
+ return this.view.getUint32(this.pos);
+ };
+ Decoder.prototype.readU8 = function () {
+ var value = this.view.getUint8(this.pos);
+ this.pos++;
+ return value;
+ };
+ Decoder.prototype.readI8 = function () {
+ var value = this.view.getInt8(this.pos);
+ this.pos++;
+ return value;
+ };
+ Decoder.prototype.readU16 = function () {
+ var value = this.view.getUint16(this.pos);
+ this.pos += 2;
+ return value;
+ };
+ Decoder.prototype.readI16 = function () {
+ var value = this.view.getInt16(this.pos);
+ this.pos += 2;
+ return value;
+ };
+ Decoder.prototype.readU32 = function () {
+ var value = this.view.getUint32(this.pos);
+ this.pos += 4;
+ return value;
+ };
+ Decoder.prototype.readI32 = function () {
+ var value = this.view.getInt32(this.pos);
+ this.pos += 4;
+ return value;
+ };
+ Decoder.prototype.readU64 = function () {
+ var value = getUint64(this.view, this.pos);
+ this.pos += 8;
+ return value;
+ };
+ Decoder.prototype.readI64 = function () {
+ var value = getInt64(this.view, this.pos);
+ this.pos += 8;
+ return value;
+ };
+ Decoder.prototype.readF32 = function () {
+ var value = this.view.getFloat32(this.pos);
+ this.pos += 4;
+ return value;
+ };
+ Decoder.prototype.readF64 = function () {
+ var value = this.view.getFloat64(this.pos);
+ this.pos += 8;
+ return value;
+ };
+ return Decoder;
+}());
+
+//# sourceMappingURL=Decoder.mjs.map
+// EXTERNAL MODULE: external "signalR"
+var external_signalR_ = __webpack_require__(1);
+;// CONCATENATED MODULE: ./src/BinaryMessageFormat.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// Not exported from index.
+/** @private */
+class BinaryMessageFormat {
+ // The length prefix of binary messages is encoded as VarInt. Read the comment in
+ // the BinaryMessageParser.TryParseMessage for details.
+ static write(output) {
+ let size = output.byteLength || output.length;
+ const lenBuffer = [];
+ do {
+ let sizePart = size & 0x7f;
+ size = size >> 7;
+ if (size > 0) {
+ sizePart |= 0x80;
+ }
+ lenBuffer.push(sizePart);
+ } while (size > 0);
+ size = output.byteLength || output.length;
+ const buffer = new Uint8Array(lenBuffer.length + size);
+ buffer.set(lenBuffer, 0);
+ buffer.set(output, lenBuffer.length);
+ return buffer.buffer;
+ }
+ static parse(input) {
+ const result = [];
+ const uint8Array = new Uint8Array(input);
+ const maxLengthPrefixSize = 5;
+ const numBitsToShift = [0, 7, 14, 21, 28];
+ for (let offset = 0; offset < input.byteLength;) {
+ let numBytes = 0;
+ let size = 0;
+ let byteRead;
+ do {
+ byteRead = uint8Array[offset + numBytes];
+ size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes]));
+ numBytes++;
+ } while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0);
+ if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) {
+ throw new Error("Cannot read message size.");
+ }
+ if (numBytes === maxLengthPrefixSize && byteRead > 7) {
+ throw new Error("Messages bigger than 2GB are not supported.");
+ }
+ if (uint8Array.byteLength >= (offset + numBytes + size)) {
+ // IE does not support .slice() so use subarray
+ result.push(uint8Array.slice
+ ? uint8Array.slice(offset + numBytes, offset + numBytes + size)
+ : uint8Array.subarray(offset + numBytes, offset + numBytes + size));
+ }
+ else {
+ throw new Error("Incomplete message.");
+ }
+ offset = offset + numBytes + size;
+ }
+ return result;
+ }
+}
+
+;// CONCATENATED MODULE: ./src/Utils.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// Copied from signalr/Utils.ts
+/** @private */
+function isArrayBuffer(val) {
+ return val && typeof ArrayBuffer !== "undefined" &&
+ (val instanceof ArrayBuffer ||
+ // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof
+ (val.constructor && val.constructor.name === "ArrayBuffer"));
+}
+
+;// CONCATENATED MODULE: ./src/MessagePackHubProtocol.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+
+
+
+// TypeDoc's @inheritDoc and @link don't work across modules :(
+// constant encoding of the ping message
+// see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1
+// Don't use Uint8Array.from as IE does not support it
+const SERIALIZED_PING_MESSAGE = new Uint8Array([0x91, external_signalR_.MessageType.Ping]);
+/** Implements the MessagePack Hub Protocol */
+class MessagePackHubProtocol {
+ /**
+ *
+ * @param messagePackOptions MessagePack options passed to @msgpack/msgpack
+ */
+ constructor(messagePackOptions) {
+ /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */
+ this.name = "messagepack";
+ /** The version of the protocol. */
+ this.version = 1;
+ /** The TransferFormat of the protocol. */
+ this.transferFormat = external_signalR_.TransferFormat.Binary;
+ this._errorResult = 1;
+ this._voidResult = 2;
+ this._nonVoidResult = 3;
+ messagePackOptions = messagePackOptions || {};
+ this._encoder = new Encoder(messagePackOptions.extensionCodec, messagePackOptions.context, messagePackOptions.maxDepth, messagePackOptions.initialBufferSize, messagePackOptions.sortKeys, messagePackOptions.forceFloat32, messagePackOptions.ignoreUndefined, messagePackOptions.forceIntegerToFloat);
+ this._decoder = new Decoder(messagePackOptions.extensionCodec, messagePackOptions.context, messagePackOptions.maxStrLength, messagePackOptions.maxBinLength, messagePackOptions.maxArrayLength, messagePackOptions.maxMapLength, messagePackOptions.maxExtLength);
+ }
+ /** Creates an array of HubMessage objects from the specified serialized representation.
+ *
+ * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation.
+ * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.
+ */
+ parseMessages(input, logger) {
+ // The interface does allow "string" to be passed in, but this implementation does not. So let's throw a useful error.
+ if (!(isArrayBuffer(input))) {
+ throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.");
+ }
+ if (logger === null) {
+ logger = external_signalR_.NullLogger.instance;
+ }
+ const messages = BinaryMessageFormat.parse(input);
+ const hubMessages = [];
+ for (const message of messages) {
+ const parsedMessage = this._parseMessage(message, logger);
+ // Can be null for an unknown message. Unknown message is logged in parseMessage
+ if (parsedMessage) {
+ hubMessages.push(parsedMessage);
+ }
+ }
+ return hubMessages;
+ }
+ /** Writes the specified HubMessage to an ArrayBuffer and returns it.
+ *
+ * @param {HubMessage} message The message to write.
+ * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message.
+ */
+ writeMessage(message) {
+ switch (message.type) {
+ case external_signalR_.MessageType.Invocation:
+ return this._writeInvocation(message);
+ case external_signalR_.MessageType.StreamInvocation:
+ return this._writeStreamInvocation(message);
+ case external_signalR_.MessageType.StreamItem:
+ return this._writeStreamItem(message);
+ case external_signalR_.MessageType.Completion:
+ return this._writeCompletion(message);
+ case external_signalR_.MessageType.Ping:
+ return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE);
+ case external_signalR_.MessageType.CancelInvocation:
+ return this._writeCancelInvocation(message);
+ default:
+ throw new Error("Invalid message type.");
+ }
+ }
+ _parseMessage(input, logger) {
+ if (input.length === 0) {
+ throw new Error("Invalid payload.");
+ }
+ const properties = this._decoder.decode(input);
+ if (properties.length === 0 || !(properties instanceof Array)) {
+ throw new Error("Invalid payload.");
+ }
+ const messageType = properties[0];
+ switch (messageType) {
+ case external_signalR_.MessageType.Invocation:
+ return this._createInvocationMessage(this._readHeaders(properties), properties);
+ case external_signalR_.MessageType.StreamItem:
+ return this._createStreamItemMessage(this._readHeaders(properties), properties);
+ case external_signalR_.MessageType.Completion:
+ return this._createCompletionMessage(this._readHeaders(properties), properties);
+ case external_signalR_.MessageType.Ping:
+ return this._createPingMessage(properties);
+ case external_signalR_.MessageType.Close:
+ return this._createCloseMessage(properties);
+ default:
+ // Future protocol changes can add message types, old clients can ignore them
+ logger.log(external_signalR_.LogLevel.Information, "Unknown message type '" + messageType + "' ignored.");
+ return null;
+ }
+ }
+ _createCloseMessage(properties) {
+ // check minimum length to allow protocol to add items to the end of objects in future releases
+ if (properties.length < 2) {
+ throw new Error("Invalid payload for Close message.");
+ }
+ return {
+ // Close messages have no headers.
+ allowReconnect: properties.length >= 3 ? properties[2] : undefined,
+ error: properties[1],
+ type: external_signalR_.MessageType.Close,
+ };
+ }
+ _createPingMessage(properties) {
+ // check minimum length to allow protocol to add items to the end of objects in future releases
+ if (properties.length < 1) {
+ throw new Error("Invalid payload for Ping message.");
+ }
+ return {
+ // Ping messages have no headers.
+ type: external_signalR_.MessageType.Ping,
+ };
+ }
+ _createInvocationMessage(headers, properties) {
+ // check minimum length to allow protocol to add items to the end of objects in future releases
+ if (properties.length < 5) {
+ throw new Error("Invalid payload for Invocation message.");
+ }
+ const invocationId = properties[2];
+ if (invocationId) {
+ return {
+ arguments: properties[4],
+ headers,
+ invocationId,
+ streamIds: [],
+ target: properties[3],
+ type: external_signalR_.MessageType.Invocation,
+ };
+ }
+ else {
+ return {
+ arguments: properties[4],
+ headers,
+ streamIds: [],
+ target: properties[3],
+ type: external_signalR_.MessageType.Invocation,
+ };
+ }
+ }
+ _createStreamItemMessage(headers, properties) {
+ // check minimum length to allow protocol to add items to the end of objects in future releases
+ if (properties.length < 4) {
+ throw new Error("Invalid payload for StreamItem message.");
+ }
+ return {
+ headers,
+ invocationId: properties[2],
+ item: properties[3],
+ type: external_signalR_.MessageType.StreamItem,
+ };
+ }
+ _createCompletionMessage(headers, properties) {
+ // check minimum length to allow protocol to add items to the end of objects in future releases
+ if (properties.length < 4) {
+ throw new Error("Invalid payload for Completion message.");
+ }
+ const resultKind = properties[3];
+ if (resultKind !== this._voidResult && properties.length < 5) {
+ throw new Error("Invalid payload for Completion message.");
+ }
+ let error;
+ let result;
+ switch (resultKind) {
+ case this._errorResult:
+ error = properties[4];
+ break;
+ case this._nonVoidResult:
+ result = properties[4];
+ break;
+ }
+ const completionMessage = {
+ error,
+ headers,
+ invocationId: properties[2],
+ result,
+ type: external_signalR_.MessageType.Completion,
+ };
+ return completionMessage;
+ }
+ _writeInvocation(invocationMessage) {
+ let payload;
+ if (invocationMessage.streamIds) {
+ payload = this._encoder.encode([external_signalR_.MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,
+ invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]);
+ }
+ else {
+ payload = this._encoder.encode([external_signalR_.MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,
+ invocationMessage.target, invocationMessage.arguments]);
+ }
+ return BinaryMessageFormat.write(payload.slice());
+ }
+ _writeStreamInvocation(streamInvocationMessage) {
+ let payload;
+ if (streamInvocationMessage.streamIds) {
+ payload = this._encoder.encode([external_signalR_.MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,
+ streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]);
+ }
+ else {
+ payload = this._encoder.encode([external_signalR_.MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,
+ streamInvocationMessage.target, streamInvocationMessage.arguments]);
+ }
+ return BinaryMessageFormat.write(payload.slice());
+ }
+ _writeStreamItem(streamItemMessage) {
+ const payload = this._encoder.encode([external_signalR_.MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId,
+ streamItemMessage.item]);
+ return BinaryMessageFormat.write(payload.slice());
+ }
+ _writeCompletion(completionMessage) {
+ const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult;
+ let payload;
+ switch (resultKind) {
+ case this._errorResult:
+ payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]);
+ break;
+ case this._voidResult:
+ payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]);
+ break;
+ case this._nonVoidResult:
+ payload = this._encoder.encode([external_signalR_.MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]);
+ break;
+ }
+ return BinaryMessageFormat.write(payload.slice());
+ }
+ _writeCancelInvocation(cancelInvocationMessage) {
+ const payload = this._encoder.encode([external_signalR_.MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]);
+ return BinaryMessageFormat.write(payload.slice());
+ }
+ _readHeaders(properties) {
+ const headers = properties[1];
+ if (typeof headers !== "object") {
+ throw new Error("Invalid headers.");
+ }
+ return headers;
+ }
+}
+
+;// CONCATENATED MODULE: ./src/index.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// Version token that will be replaced by the prepack command
+/** The version of the SignalR Message Pack protocol library. */
+const VERSION = "6.0.6";
+
+
+;// CONCATENATED MODULE: ./src/browser-index.ts
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds.
+
+
+})();
+
+/******/ return __webpack_exports__;
+/******/ })()
+;
+});
//# sourceMappingURL=signalr-protocol-msgpack.js.map
\ No newline at end of file
diff --git a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js.map b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js.map
index 5e313db1..fd50df45 100644
--- a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js.map
+++ b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://signalR.protocols.msgpack/webpack/universalModuleDefinition","webpack://signalR.protocols.msgpack/external \"signalR\"","webpack://signalR.protocols.msgpack/webpack/bootstrap","webpack://signalR.protocols.msgpack/webpack/runtime/define property getters","webpack://signalR.protocols.msgpack/webpack/runtime/hasOwnProperty shorthand","webpack://signalR.protocols.msgpack/webpack/runtime/make namespace object","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","webpack://signalR.protocols.msgpack/src/BinaryMessageFormat.ts","webpack://signalR.protocols.msgpack/src/MessagePackHubProtocol.ts","webpack://signalR.protocols.msgpack/src/Utils.ts","webpack://signalR.protocols.msgpack/src/index.ts"],"names":["root","factory","self","__WEBPACK_EXTERNAL_MODULE__1__","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","UINT32_MAX","setInt64","view","offset","high","Math","floor","low","setUint32","getInt64","getInt32","getUint32","TEXT_ENCODING_AVAILABLE","process","env","TextEncoder","TextDecoder","utf8Count","str","strLength","length","byteLength","pos","charCodeAt","extra","sharedTextEncoder","TEXT_ENCODER_THRESHOLD","utf8EncodeTE","encodeInto","output","outputOffset","subarray","set","encode","utf8DecodeJs","bytes","inputOffset","end","units","result","byte1","push","byte2","byte3","unit","String","fromCharCode","apply","extendStatics","sharedTextDecoder","TEXT_DECODER_THRESHOLD","ExtData","type","data","this","__extends","b","setPrototypeOf","__proto__","Array","p","TypeError","__","constructor","create","DecodeError","_super","message","_this","proto","configurable","name","Error","timestampExtension","object","msec","sec","nsec","nsecInSec","Date","_a","rv","Uint8Array","DataView","buffer","secHigh","secLow","encodeTimeSpecToTimestamp","getTime","decode","timeSpec","byteOffset","nsec30AndSecHigh2","decodeTimestampToTimeSpec","ExtensionCodec","builtInEncoders","builtInDecoders","encoders","decoders","register","index","tryToEncode","context","i","encodeExt","decodeExt","defaultCodec","ensureUint8Array","ArrayBuffer","isView","from","Encoder","extensionCodec","maxDepth","initialBufferSize","sortKeys","forceFloat32","ignoreUndefined","forceIntegerToFloat","getUint8Array","reinitializeState","doEncode","depth","encodeNil","encodeBoolean","encodeNumber","encodeString","encodeObject","ensureBufferSizeToWrite","sizeToWrite","requiredSize","resizeBuffer","newSize","newBuffer","newBytes","newView","writeU8","Number","isSafeInteger","writeU16","writeU32","writeU64","writeI8","writeI16","writeI32","writeI64","writeF32","writeF64","writeStringHeader","utf8EncodeJs","ext","encodeExtension","isArray","encodeArray","encodeBinary","toString","encodeMap","size","writeU8a","_i","object_1","item","countWithoutUndefined","keys","count","keys_1","sort","keys_2","setUint8","values","setInt8","setUint16","setInt16","setInt32","setFloat32","setFloat64","setUint64","prettyByte","byte","abs","padStart","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","hit","miss","caches","canBeCached","find","FIND_CHUNK","records_1","record","recordBytes","j","store","records","random","cachedValue","slicedCopyOfBytes","slice","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","iterator","n","v","op","pop","__asyncValues","asyncIterator","m","__values","settle","__await","__asyncGenerator","q","a","resume","fulfill","shift","EMPTY_VIEW","EMPTY_BYTES","DataViewIndexOutOfBoundsError","getInt8","MORE_DATA","sharedCachedKeyDecoder","Decoder","maxStrLength","maxBinLength","maxArrayLength","maxMapLength","maxExtLength","keyDecoder","totalPos","headByte","stack","setBuffer","bufferView","createDataView","appendBuffer","hasRemaining","remainingData","newData","createExtraByteError","posToShow","RangeError","doDecodeSync","decodeMulti","decodeAsync","stream","stream_1","stream_1_1","e_1","decoded","e_1_1","_b","_c","error","return","decodeArrayStream","decodeMultiAsync","decodeStream","arguments","isArrayHeaderRequired","arrayItemsLeft","stream_2","stream_2_1","e_2","e_3_1","e_3","readArraySize","complete","DECODE","readHeadByte","pushMapState","pushArrayState","decodeUtf8String","readF32","readF64","readU8","readU16","readU32","readU64","readI8","readI16","readI32","readI64","lookU8","lookU16","lookU32","decodeBinary","decodeExtension","state","array","position","keyType","map","readCount","headerOffset","stateIsMapKey","stringBytes","utf8DecodeTD","headOffset","extType","getUint8","getUint16","getInt16","getFloat32","getFloat64","BinaryMessageFormat","lenBuffer","sizePart","input","uint8Array","numBitsToShift","byteRead","numBytes","min","SERIALIZED_PING_MESSAGE","MessageType","MessagePackHubProtocol","messagePackOptions","version","transferFormat","TransferFormat","_errorResult","_voidResult","_nonVoidResult","_encoder","_decoder","logger","val","NullLogger","messages","parse","hubMessages","parsedMessage","_parseMessage","_writeInvocation","_writeStreamInvocation","_writeStreamItem","_writeCompletion","write","_writeCancelInvocation","properties","messageType","_createInvocationMessage","_readHeaders","_createStreamItemMessage","_createCompletionMessage","_createPingMessage","_createCloseMessage","log","LogLevel","allowReconnect","headers","invocationId","streamIds","target","resultKind","invocationMessage","payload","streamInvocationMessage","streamItemMessage","completionMessage","cancelInvocationMessage","VERSION","require","define","amd"],"mappings":"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","file":"signalr-protocol-msgpack.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"signalR\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"signalR\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"msgpack\"] = factory(require(\"signalR\"));\n\telse\n\t\troot[\"signalR\"] = root[\"signalR\"] || {}, root[\"signalR\"][\"protocols\"] = root[\"signalR\"][\"protocols\"] || {}, root[\"signalR\"][\"protocols\"][\"msgpack\"] = factory(root[\"signalR\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","import { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || process.env[\"TEXT_ENCODING\"] !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_ENCODING\"] !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_DECODER\"] !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \" + data.length);\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport var DEFAULT_MAX_DEPTH = 100;\nexport var DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nvar Encoder = /** @class */ (function () {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }\n if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }\n if (sortKeys === void 0) { sortKeys = false; }\n if (forceFloat32 === void 0) { forceFloat32 = false; }\n if (ignoreUndefined === void 0) { ignoreUndefined = false; }\n if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.getUint8Array = function () {\n return this.bytes.subarray(0, this.pos);\n };\n Encoder.prototype.reinitializeState = function () {\n this.pos = 0;\n };\n Encoder.prototype.encode = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.getUint8Array();\n };\n Encoder.prototype.doEncode = function (object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(\"Too deep objects in depth \" + depth);\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n this.encodeNumber(object);\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n };\n Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n };\n Encoder.prototype.resizeBuffer = function (newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function () {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function (object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n };\n Encoder.prototype.encodeNumber = function (object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n }\n else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n };\n Encoder.prototype.writeStringHeader = function (byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(\"Too long string: \" + byteLength + \" bytes in UTF-8\");\n }\n };\n Encoder.prototype.encodeString = function (object) {\n var maxHeaderSize = 1 + 4;\n var strLength = object.length;\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n else {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function (object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \" + Object.prototype.toString.apply(object));\n }\n };\n Encoder.prototype.encodeBinary = function (object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large binary: \" + size);\n }\n var bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function (object, depth) {\n var size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large array: \" + size);\n }\n for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function (object, keys) {\n var count = 0;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n };\n Encoder.prototype.encodeMap = function (object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large map object: \" + size);\n }\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function (ext) {\n var size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large extension object: \" + size);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function (values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}());\nexport { Encoder };\n//# sourceMappingURL=Encoder.mjs.map","export function prettyByte(byte) {\n return (byte < 0 ? \"-\" : \"\") + \"0x\" + Math.abs(byte).toString(16).padStart(2, \"0\");\n}\n//# sourceMappingURL=prettyByte.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \" + (view.byteLength - pos) + \" of \" + view.byteLength + \" byte(s) found at buffer[\" + posToShow + \"]\");\n };\n /**\n * @throws {DecodeError}\n * @throws {RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \" + prettyByte(headByte) + \" at \" + totalPos + \" (\" + pos + \" in the current buffer)\");\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \" + prettyByte(headByte));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \" + prettyByte(headByte));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\" + size + \") > maxMapLengthLength (\" + this.maxMapLength + \")\");\n }\n this.stack.push({\n type: 1 /* MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\" + size + \") > maxArrayLength (\" + this.maxArrayLength + \")\");\n }\n this.stack.push({\n type: 0 /* ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\" + byteLength + \") > maxStrLength (\" + this.maxStrLength + \")\");\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\" + byteLength + \") > maxBinLength (\" + this.maxBinLength + \")\");\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\" + size + \") > maxExtLength (\" + this.maxExtLength + \")\");\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class BinaryMessageFormat {\r\n\r\n // The length prefix of binary messages is encoded as VarInt. Read the comment in\r\n // the BinaryMessageParser.TryParseMessage for details.\r\n\r\n public static write(output: Uint8Array): ArrayBuffer {\r\n let size = output.byteLength || output.length;\r\n const lenBuffer = [];\r\n do {\r\n let sizePart = size & 0x7f;\r\n size = size >> 7;\r\n if (size > 0) {\r\n sizePart |= 0x80;\r\n }\r\n lenBuffer.push(sizePart);\r\n }\r\n while (size > 0);\r\n\r\n size = output.byteLength || output.length;\r\n\r\n const buffer = new Uint8Array(lenBuffer.length + size);\r\n buffer.set(lenBuffer, 0);\r\n buffer.set(output, lenBuffer.length);\r\n return buffer.buffer;\r\n }\r\n\r\n public static parse(input: ArrayBuffer): Uint8Array[] {\r\n const result: Uint8Array[] = [];\r\n const uint8Array = new Uint8Array(input);\r\n const maxLengthPrefixSize = 5;\r\n const numBitsToShift = [0, 7, 14, 21, 28 ];\r\n\r\n for (let offset = 0; offset < input.byteLength;) {\r\n let numBytes = 0;\r\n let size = 0;\r\n let byteRead;\r\n do {\r\n byteRead = uint8Array[offset + numBytes];\r\n size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes]));\r\n numBytes++;\r\n }\r\n while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0);\r\n\r\n if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) {\r\n throw new Error(\"Cannot read message size.\");\r\n }\r\n\r\n if (numBytes === maxLengthPrefixSize && byteRead > 7) {\r\n throw new Error(\"Messages bigger than 2GB are not supported.\");\r\n }\r\n\r\n if (uint8Array.byteLength >= (offset + numBytes + size)) {\r\n // IE does not support .slice() so use subarray\r\n result.push(uint8Array.slice\r\n ? uint8Array.slice(offset + numBytes, offset + numBytes + size)\r\n : uint8Array.subarray(offset + numBytes, offset + numBytes + size));\r\n } else {\r\n throw new Error(\"Incomplete message.\");\r\n }\r\n\r\n offset = offset + numBytes + size;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { Encoder, Decoder } from \"@msgpack/msgpack\";\r\n\r\nimport { MessagePackOptions } from \"./MessagePackOptions\";\r\n\r\nimport {\r\n CancelInvocationMessage, CompletionMessage, HubMessage, IHubProtocol, ILogger, InvocationMessage,\r\n LogLevel, MessageHeaders, MessageType, NullLogger, StreamInvocationMessage, StreamItemMessage, TransferFormat,\r\n} from \"@microsoft/signalr\";\r\n\r\nimport { BinaryMessageFormat } from \"./BinaryMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n// TypeDoc's @inheritDoc and @link don't work across modules :(\r\n\r\n// constant encoding of the ping message\r\n// see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1\r\n// Don't use Uint8Array.from as IE does not support it\r\nconst SERIALIZED_PING_MESSAGE: Uint8Array = new Uint8Array([0x91, MessageType.Ping]);\r\n\r\n/** Implements the MessagePack Hub Protocol */\r\nexport class MessagePackHubProtocol implements IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n public readonly name: string = \"messagepack\";\r\n /** The version of the protocol. */\r\n public readonly version: number = 1;\r\n /** The TransferFormat of the protocol. */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Binary;\r\n\r\n private readonly _errorResult = 1;\r\n private readonly _voidResult = 2;\r\n private readonly _nonVoidResult = 3;\r\n\r\n private readonly _encoder: Encoder;\r\n private readonly _decoder: Decoder;\r\n\r\n /**\r\n *\r\n * @param messagePackOptions MessagePack options passed to @msgpack/msgpack\r\n */\r\n constructor(messagePackOptions?: MessagePackOptions) {\r\n messagePackOptions = messagePackOptions || {};\r\n this._encoder = new Encoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxDepth,\r\n messagePackOptions.initialBufferSize,\r\n messagePackOptions.sortKeys,\r\n messagePackOptions.forceFloat32,\r\n messagePackOptions.ignoreUndefined,\r\n messagePackOptions.forceIntegerToFloat,\r\n );\r\n\r\n this._decoder = new Decoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxStrLength,\r\n messagePackOptions.maxBinLength,\r\n messagePackOptions.maxArrayLength,\r\n messagePackOptions.maxMapLength,\r\n messagePackOptions.maxExtLength,\r\n );\r\n }\r\n\r\n /** Creates an array of HubMessage objects from the specified serialized representation.\r\n *\r\n * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: ArrayBuffer, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"string\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (!(isArrayBuffer(input))) {\r\n throw new Error(\"Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.\");\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n const messages = BinaryMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = this._parseMessage(message, logger);\r\n // Can be null for an unknown message. Unknown message is logged in parseMessage\r\n if (parsedMessage) {\r\n hubMessages.push(parsedMessage);\r\n }\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified HubMessage to an ArrayBuffer and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): ArrayBuffer {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n return this._writeInvocation(message as InvocationMessage);\r\n case MessageType.StreamInvocation:\r\n return this._writeStreamInvocation(message as StreamInvocationMessage);\r\n case MessageType.StreamItem:\r\n return this._writeStreamItem(message as StreamItemMessage);\r\n case MessageType.Completion:\r\n return this._writeCompletion(message as CompletionMessage);\r\n case MessageType.Ping:\r\n return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE);\r\n case MessageType.CancelInvocation:\r\n return this._writeCancelInvocation(message as CancelInvocationMessage);\r\n default:\r\n throw new Error(\"Invalid message type.\");\r\n }\r\n }\r\n\r\n private _parseMessage(input: Uint8Array, logger: ILogger): HubMessage | null {\r\n if (input.length === 0) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const properties = this._decoder.decode(input) as any;\r\n if (properties.length === 0 || !(properties instanceof Array)) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const messageType = properties[0] as MessageType;\r\n\r\n switch (messageType) {\r\n case MessageType.Invocation:\r\n return this._createInvocationMessage(this._readHeaders(properties), properties);\r\n case MessageType.StreamItem:\r\n return this._createStreamItemMessage(this._readHeaders(properties), properties);\r\n case MessageType.Completion:\r\n return this._createCompletionMessage(this._readHeaders(properties), properties);\r\n case MessageType.Ping:\r\n return this._createPingMessage(properties);\r\n case MessageType.Close:\r\n return this._createCloseMessage(properties);\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + messageType + \"' ignored.\");\r\n return null;\r\n }\r\n }\r\n\r\n private _createCloseMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 2) {\r\n throw new Error(\"Invalid payload for Close message.\");\r\n }\r\n\r\n return {\r\n // Close messages have no headers.\r\n allowReconnect: properties.length >= 3 ? properties[2] : undefined,\r\n error: properties[1],\r\n type: MessageType.Close,\r\n } as HubMessage;\r\n }\r\n\r\n private _createPingMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 1) {\r\n throw new Error(\"Invalid payload for Ping message.\");\r\n }\r\n\r\n return {\r\n // Ping messages have no headers.\r\n type: MessageType.Ping,\r\n } as HubMessage;\r\n }\r\n\r\n private _createInvocationMessage(headers: MessageHeaders, properties: any[]): InvocationMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 5) {\r\n throw new Error(\"Invalid payload for Invocation message.\");\r\n }\r\n\r\n const invocationId = properties[2] as string;\r\n if (invocationId) {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n invocationId,\r\n streamIds: [],\r\n target: properties[3] as string,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n streamIds: [],\r\n target: properties[3],\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n\r\n }\r\n\r\n private _createStreamItemMessage(headers: MessageHeaders, properties: any[]): StreamItemMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n\r\n return {\r\n headers,\r\n invocationId: properties[2],\r\n item: properties[3],\r\n type: MessageType.StreamItem,\r\n } as StreamItemMessage;\r\n }\r\n\r\n private _createCompletionMessage(headers: MessageHeaders, properties: any[]): CompletionMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n const resultKind = properties[3];\r\n\r\n if (resultKind !== this._voidResult && properties.length < 5) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n let error: string | undefined;\r\n let result: any;\r\n\r\n switch (resultKind) {\r\n case this._errorResult:\r\n error = properties[4];\r\n break;\r\n case this._nonVoidResult:\r\n result = properties[4];\r\n break;\r\n }\r\n\r\n const completionMessage: CompletionMessage = {\r\n error,\r\n headers,\r\n invocationId: properties[2],\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n\r\n return completionMessage;\r\n }\r\n\r\n private _writeInvocation(invocationMessage: InvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (invocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamInvocation(streamInvocationMessage: StreamInvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (streamInvocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamItem(streamItemMessage: StreamItemMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId,\r\n streamItemMessage.item]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCompletion(completionMessage: CompletionMessage): ArrayBuffer {\r\n const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult;\r\n\r\n let payload: any;\r\n switch (resultKind) {\r\n case this._errorResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]);\r\n break;\r\n case this._voidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]);\r\n break;\r\n case this._nonVoidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]);\r\n break;\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCancelInvocation(cancelInvocationMessage: CancelInvocationMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _readHeaders(properties: any): MessageHeaders {\r\n const headers: MessageHeaders = properties[1] as MessageHeaders;\r\n if (typeof headers !== \"object\") {\r\n throw new Error(\"Invalid headers.\");\r\n }\r\n return headers;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Copied from signalr/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR Message Pack protocol library. */\r\nexport const VERSION = \"0.0.0-DEV_BUILD\";\r\n\r\nexport { MessagePackHubProtocol } from \"./MessagePackHubProtocol\";\r\n\r\nexport { MessagePackOptions } from \"./MessagePackOptions\";\r\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://signalR.protocols.msgpack/webpack/universalModuleDefinition","webpack://signalR.protocols.msgpack/external \"signalR\"","webpack://signalR.protocols.msgpack/webpack/bootstrap","webpack://signalR.protocols.msgpack/webpack/runtime/define property getters","webpack://signalR.protocols.msgpack/webpack/runtime/hasOwnProperty shorthand","webpack://signalR.protocols.msgpack/webpack/runtime/make namespace object","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","webpack://signalR.protocols.msgpack/src/BinaryMessageFormat.ts","webpack://signalR.protocols.msgpack/src/Utils.ts","webpack://signalR.protocols.msgpack/src/MessagePackHubProtocol.ts","webpack://signalR.protocols.msgpack/src/index.ts","webpack://signalR.protocols.msgpack/src/browser-index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mEAAmE;AAC5G,CAAC;AACD,O;;;;;;;ACVA,gD;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;;;;;;;;;;;;;ACNA;AACO;AACP;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gC;;AC1BuC;AACvC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,MAAM,UAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,MAAM,UAAU;AAChB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iC;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB,oC;;ACXA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,8EAA8E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACsB;AACvB,wC;;AChCA;AACgD;AACK;AAC9C;AACP,0CAA0C;AAC1C,0CAA0C;AACnC;AACP;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B;AAC/B,sBAAsB,QAAQ;AAC9B;AACA,oBAAoB;AACpB;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sC;;AChGA;AACwC;AACa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B,2C;;ACtEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wC;;ACtBiG;AAC3C;AACA;AACK;AACpD;AACA;AACP;AACA;AACA,wCAAwC,kBAAkB,2BAA2B,CAAC;AACtF,iCAAiC,qBAAqB;AACtD,kCAAkC,8BAA8B;AAChE,2CAA2C,iDAAiD;AAC5F,kCAAkC,kBAAkB;AACpD,sCAAsC,sBAAsB;AAC5D,yCAAyC,yBAAyB;AAClE,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C,6BAA6B,SAAS;AACtC;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA,CAAC;AACkB;AACnB,oC;;ACtZO;AACP;AACA;AACA,uC;;ACHgD;AAChD;AACA;AACA;AACA;AACA,sCAAsC,uCAAuC;AAC7E,yCAAyC,8CAA8C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uBAAuB;AAChF;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B,6C;;AC/DA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA,qBAAqB,SAAI,IAAI,SAAI;AACjC;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;AACA,eAAe,SAAI,IAAI,SAAI,2BAA2B,sEAAsE;AAC5H,wBAAwB,SAAI,IAAI,SAAI;AACpC;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;AACoD;AACE;AACY;AACoB;AACX;AACjB;AACV;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,wCAAwC,kBAAkB,2BAA2B,CAAC;AACtF,iCAAiC,qBAAqB;AACtD,sCAAsC,gBAAgB,UAAU,CAAC;AACjE,sCAAsC,gBAAgB,UAAU,CAAC;AACjE,wCAAwC,kBAAkB,UAAU,CAAC;AACrE,sCAAsC,gBAAgB,UAAU,CAAC;AACjE,sCAAsC,gBAAgB,UAAU,CAAC;AACjE,oCAAoC,qCAAqC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,UAAU;AACzF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,EAAE,EAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,8BAA8B,UAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW,oCAAoC,UAAU;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD,qBAAqB,YAAY;AACjC;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB,oC;;;;AC7tBA,gEAAgE;AAChE,uEAAuE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","file":"signalr-protocol-msgpack.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"signalR\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"signalR\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"msgpack\"] = factory(require(\"signalR\"));\n\telse\n\t\troot[\"signalR\"] = root[\"signalR\"] || {}, root[\"signalR\"][\"protocols\"] = root[\"signalR\"][\"protocols\"] || {}, root[\"signalR\"][\"protocols\"][\"msgpack\"] = factory(root[\"signalR\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","import { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || process.env[\"TEXT_ENCODING\"] !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_ENCODING\"] !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_DECODER\"] !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \" + data.length);\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport var DEFAULT_MAX_DEPTH = 100;\nexport var DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nvar Encoder = /** @class */ (function () {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }\n if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }\n if (sortKeys === void 0) { sortKeys = false; }\n if (forceFloat32 === void 0) { forceFloat32 = false; }\n if (ignoreUndefined === void 0) { ignoreUndefined = false; }\n if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.getUint8Array = function () {\n return this.bytes.subarray(0, this.pos);\n };\n Encoder.prototype.reinitializeState = function () {\n this.pos = 0;\n };\n Encoder.prototype.encode = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.getUint8Array();\n };\n Encoder.prototype.doEncode = function (object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(\"Too deep objects in depth \" + depth);\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n this.encodeNumber(object);\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n };\n Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n };\n Encoder.prototype.resizeBuffer = function (newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function () {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function (object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n };\n Encoder.prototype.encodeNumber = function (object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n }\n else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n };\n Encoder.prototype.writeStringHeader = function (byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(\"Too long string: \" + byteLength + \" bytes in UTF-8\");\n }\n };\n Encoder.prototype.encodeString = function (object) {\n var maxHeaderSize = 1 + 4;\n var strLength = object.length;\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n else {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function (object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \" + Object.prototype.toString.apply(object));\n }\n };\n Encoder.prototype.encodeBinary = function (object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large binary: \" + size);\n }\n var bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function (object, depth) {\n var size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large array: \" + size);\n }\n for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function (object, keys) {\n var count = 0;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n };\n Encoder.prototype.encodeMap = function (object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large map object: \" + size);\n }\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function (ext) {\n var size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large extension object: \" + size);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function (values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}());\nexport { Encoder };\n//# sourceMappingURL=Encoder.mjs.map","export function prettyByte(byte) {\n return (byte < 0 ? \"-\" : \"\") + \"0x\" + Math.abs(byte).toString(16).padStart(2, \"0\");\n}\n//# sourceMappingURL=prettyByte.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \" + (view.byteLength - pos) + \" of \" + view.byteLength + \" byte(s) found at buffer[\" + posToShow + \"]\");\n };\n /**\n * @throws {DecodeError}\n * @throws {RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \" + prettyByte(headByte) + \" at \" + totalPos + \" (\" + pos + \" in the current buffer)\");\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \" + prettyByte(headByte));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \" + prettyByte(headByte));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\" + size + \") > maxMapLengthLength (\" + this.maxMapLength + \")\");\n }\n this.stack.push({\n type: 1 /* MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\" + size + \") > maxArrayLength (\" + this.maxArrayLength + \")\");\n }\n this.stack.push({\n type: 0 /* ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\" + byteLength + \") > maxStrLength (\" + this.maxStrLength + \")\");\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\" + byteLength + \") > maxBinLength (\" + this.maxBinLength + \")\");\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\" + size + \") > maxExtLength (\" + this.maxExtLength + \")\");\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class BinaryMessageFormat {\r\n\r\n // The length prefix of binary messages is encoded as VarInt. Read the comment in\r\n // the BinaryMessageParser.TryParseMessage for details.\r\n\r\n public static write(output: Uint8Array): ArrayBuffer {\r\n let size = output.byteLength || output.length;\r\n const lenBuffer = [];\r\n do {\r\n let sizePart = size & 0x7f;\r\n size = size >> 7;\r\n if (size > 0) {\r\n sizePart |= 0x80;\r\n }\r\n lenBuffer.push(sizePart);\r\n }\r\n while (size > 0);\r\n\r\n size = output.byteLength || output.length;\r\n\r\n const buffer = new Uint8Array(lenBuffer.length + size);\r\n buffer.set(lenBuffer, 0);\r\n buffer.set(output, lenBuffer.length);\r\n return buffer.buffer;\r\n }\r\n\r\n public static parse(input: ArrayBuffer): Uint8Array[] {\r\n const result: Uint8Array[] = [];\r\n const uint8Array = new Uint8Array(input);\r\n const maxLengthPrefixSize = 5;\r\n const numBitsToShift = [0, 7, 14, 21, 28 ];\r\n\r\n for (let offset = 0; offset < input.byteLength;) {\r\n let numBytes = 0;\r\n let size = 0;\r\n let byteRead;\r\n do {\r\n byteRead = uint8Array[offset + numBytes];\r\n size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes]));\r\n numBytes++;\r\n }\r\n while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0);\r\n\r\n if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) {\r\n throw new Error(\"Cannot read message size.\");\r\n }\r\n\r\n if (numBytes === maxLengthPrefixSize && byteRead > 7) {\r\n throw new Error(\"Messages bigger than 2GB are not supported.\");\r\n }\r\n\r\n if (uint8Array.byteLength >= (offset + numBytes + size)) {\r\n // IE does not support .slice() so use subarray\r\n result.push(uint8Array.slice\r\n ? uint8Array.slice(offset + numBytes, offset + numBytes + size)\r\n : uint8Array.subarray(offset + numBytes, offset + numBytes + size));\r\n } else {\r\n throw new Error(\"Incomplete message.\");\r\n }\r\n\r\n offset = offset + numBytes + size;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Copied from signalr/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { Encoder, Decoder } from \"@msgpack/msgpack\";\r\n\r\nimport { MessagePackOptions } from \"./MessagePackOptions\";\r\n\r\nimport {\r\n CancelInvocationMessage, CompletionMessage, HubMessage, IHubProtocol, ILogger, InvocationMessage,\r\n LogLevel, MessageHeaders, MessageType, NullLogger, StreamInvocationMessage, StreamItemMessage, TransferFormat,\r\n} from \"@microsoft/signalr\";\r\n\r\nimport { BinaryMessageFormat } from \"./BinaryMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n// TypeDoc's @inheritDoc and @link don't work across modules :(\r\n\r\n// constant encoding of the ping message\r\n// see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1\r\n// Don't use Uint8Array.from as IE does not support it\r\nconst SERIALIZED_PING_MESSAGE: Uint8Array = new Uint8Array([0x91, MessageType.Ping]);\r\n\r\n/** Implements the MessagePack Hub Protocol */\r\nexport class MessagePackHubProtocol implements IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n public readonly name: string = \"messagepack\";\r\n /** The version of the protocol. */\r\n public readonly version: number = 1;\r\n /** The TransferFormat of the protocol. */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Binary;\r\n\r\n private readonly _errorResult = 1;\r\n private readonly _voidResult = 2;\r\n private readonly _nonVoidResult = 3;\r\n\r\n private readonly _encoder: Encoder;\r\n private readonly _decoder: Decoder;\r\n\r\n /**\r\n *\r\n * @param messagePackOptions MessagePack options passed to @msgpack/msgpack\r\n */\r\n constructor(messagePackOptions?: MessagePackOptions) {\r\n messagePackOptions = messagePackOptions || {};\r\n this._encoder = new Encoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxDepth,\r\n messagePackOptions.initialBufferSize,\r\n messagePackOptions.sortKeys,\r\n messagePackOptions.forceFloat32,\r\n messagePackOptions.ignoreUndefined,\r\n messagePackOptions.forceIntegerToFloat,\r\n );\r\n\r\n this._decoder = new Decoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxStrLength,\r\n messagePackOptions.maxBinLength,\r\n messagePackOptions.maxArrayLength,\r\n messagePackOptions.maxMapLength,\r\n messagePackOptions.maxExtLength,\r\n );\r\n }\r\n\r\n /** Creates an array of HubMessage objects from the specified serialized representation.\r\n *\r\n * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: ArrayBuffer, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"string\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (!(isArrayBuffer(input))) {\r\n throw new Error(\"Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.\");\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n const messages = BinaryMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = this._parseMessage(message, logger);\r\n // Can be null for an unknown message. Unknown message is logged in parseMessage\r\n if (parsedMessage) {\r\n hubMessages.push(parsedMessage);\r\n }\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified HubMessage to an ArrayBuffer and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): ArrayBuffer {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n return this._writeInvocation(message as InvocationMessage);\r\n case MessageType.StreamInvocation:\r\n return this._writeStreamInvocation(message as StreamInvocationMessage);\r\n case MessageType.StreamItem:\r\n return this._writeStreamItem(message as StreamItemMessage);\r\n case MessageType.Completion:\r\n return this._writeCompletion(message as CompletionMessage);\r\n case MessageType.Ping:\r\n return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE);\r\n case MessageType.CancelInvocation:\r\n return this._writeCancelInvocation(message as CancelInvocationMessage);\r\n default:\r\n throw new Error(\"Invalid message type.\");\r\n }\r\n }\r\n\r\n private _parseMessage(input: Uint8Array, logger: ILogger): HubMessage | null {\r\n if (input.length === 0) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const properties = this._decoder.decode(input) as any;\r\n if (properties.length === 0 || !(properties instanceof Array)) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const messageType = properties[0] as MessageType;\r\n\r\n switch (messageType) {\r\n case MessageType.Invocation:\r\n return this._createInvocationMessage(this._readHeaders(properties), properties);\r\n case MessageType.StreamItem:\r\n return this._createStreamItemMessage(this._readHeaders(properties), properties);\r\n case MessageType.Completion:\r\n return this._createCompletionMessage(this._readHeaders(properties), properties);\r\n case MessageType.Ping:\r\n return this._createPingMessage(properties);\r\n case MessageType.Close:\r\n return this._createCloseMessage(properties);\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + messageType + \"' ignored.\");\r\n return null;\r\n }\r\n }\r\n\r\n private _createCloseMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 2) {\r\n throw new Error(\"Invalid payload for Close message.\");\r\n }\r\n\r\n return {\r\n // Close messages have no headers.\r\n allowReconnect: properties.length >= 3 ? properties[2] : undefined,\r\n error: properties[1],\r\n type: MessageType.Close,\r\n } as HubMessage;\r\n }\r\n\r\n private _createPingMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 1) {\r\n throw new Error(\"Invalid payload for Ping message.\");\r\n }\r\n\r\n return {\r\n // Ping messages have no headers.\r\n type: MessageType.Ping,\r\n } as HubMessage;\r\n }\r\n\r\n private _createInvocationMessage(headers: MessageHeaders, properties: any[]): InvocationMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 5) {\r\n throw new Error(\"Invalid payload for Invocation message.\");\r\n }\r\n\r\n const invocationId = properties[2] as string;\r\n if (invocationId) {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n invocationId,\r\n streamIds: [],\r\n target: properties[3] as string,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n streamIds: [],\r\n target: properties[3],\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n\r\n }\r\n\r\n private _createStreamItemMessage(headers: MessageHeaders, properties: any[]): StreamItemMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n\r\n return {\r\n headers,\r\n invocationId: properties[2],\r\n item: properties[3],\r\n type: MessageType.StreamItem,\r\n } as StreamItemMessage;\r\n }\r\n\r\n private _createCompletionMessage(headers: MessageHeaders, properties: any[]): CompletionMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n const resultKind = properties[3];\r\n\r\n if (resultKind !== this._voidResult && properties.length < 5) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n let error: string | undefined;\r\n let result: any;\r\n\r\n switch (resultKind) {\r\n case this._errorResult:\r\n error = properties[4];\r\n break;\r\n case this._nonVoidResult:\r\n result = properties[4];\r\n break;\r\n }\r\n\r\n const completionMessage: CompletionMessage = {\r\n error,\r\n headers,\r\n invocationId: properties[2],\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n\r\n return completionMessage;\r\n }\r\n\r\n private _writeInvocation(invocationMessage: InvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (invocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamInvocation(streamInvocationMessage: StreamInvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (streamInvocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamItem(streamItemMessage: StreamItemMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId,\r\n streamItemMessage.item]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCompletion(completionMessage: CompletionMessage): ArrayBuffer {\r\n const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult;\r\n\r\n let payload: any;\r\n switch (resultKind) {\r\n case this._errorResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]);\r\n break;\r\n case this._voidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]);\r\n break;\r\n case this._nonVoidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]);\r\n break;\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCancelInvocation(cancelInvocationMessage: CancelInvocationMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _readHeaders(properties: any): MessageHeaders {\r\n const headers: MessageHeaders = properties[1] as MessageHeaders;\r\n if (typeof headers !== \"object\") {\r\n throw new Error(\"Invalid headers.\");\r\n }\r\n return headers;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR Message Pack protocol library. */\r\nexport const VERSION = \"0.0.0-DEV_BUILD\";\r\n\r\nexport { MessagePackHubProtocol } from \"./MessagePackHubProtocol\";\r\n\r\nexport { MessagePackOptions } from \"./MessagePackOptions\";\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This is where we add any polyfills we'll need for the browser. It is the entry module for browser-specific builds.\r\n\r\nexport * from \"./index\";\r\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js
index 2fef5995..947b4d01 100644
--- a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js
+++ b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js
@@ -1,2 +1,2 @@
-var e,t;e=self,t=function(e){return(()=>{var t=[,t=>{t.exports=e}],r={};function i(e){var n=r[e];if(void 0!==n)return n.exports;var s=r[e]={exports:{}};return t[e](s,s.exports,i),s.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"t",{value:!0})};var n={};return(()=>{i.r(n),i.d(n,{MessagePackHubProtocol:()=>_,VERSION:()=>j});var e=4294967295;function t(e,t,r){var i=Math.floor(r/4294967296),n=r;e.setUint32(t,i),e.setUint32(t+4,n)}function r(e,t){return 4294967296*e.getInt32(t)+e.getUint32(t+4)}var s=("undefined"==typeof process||"never"!==process.env.TEXT_ENCODING)&&"undefined"!=typeof TextEncoder&&"undefined"!=typeof TextDecoder;function o(e){for(var t=e.length,r=0,i=0;i=55296&&n<=56319&&i65535&&(u-=65536,s.push(u>>>10&1023|55296),u=56320|1023&u),s.push(u)}else s.push(a);s.length>=4096&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return s.length>0&&(o+=String.fromCharCode.apply(String,s)),o}var f,p=s?new TextDecoder:null,l=s?"undefined"!=typeof process&&"force"!==process.env.TEXT_DECODER?200:0:e,d=function(e,t){this.type=e,this.data=t},y=(f=function(e,t){return(f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}f(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),w=function(e){function t(r){var i=e.call(this,r)||this,n=Object.create(t.prototype);return Object.setPrototypeOf(i,n),Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:t.name}),i}return y(t,e),t}(Error),g={type:-1,encode:function(e){var r,i,n,s;return e instanceof Date?function(e){var r,i=e.sec,n=e.nsec;if(i>=0&&n>=0&&i<=17179869183){if(0===n&&i<=4294967295){var s=new Uint8Array(4);return(r=new DataView(s.buffer)).setUint32(0,i),s}var o=i/4294967296,a=4294967295&i;return s=new Uint8Array(8),(r=new DataView(s.buffer)).setUint32(0,n<<2|3&o),r.setUint32(4,a),s}return s=new Uint8Array(12),(r=new DataView(s.buffer)).setUint32(0,n),t(r,4,i),s}((n=1e6*((r=e.getTime())-1e3*(i=Math.floor(r/1e3))),{sec:i+(s=Math.floor(n/1e9)),nsec:n-1e9*s})):null},decode:function(e){var t=function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:return{sec:t.getUint32(0),nsec:0};case 8:var i=t.getUint32(0);return{sec:4294967296*(3&i)+t.getUint32(4),nsec:i>>>2};case 12:return{sec:r(t,4),nsec:t.getUint32(0)};default:throw new w("Unrecognized data size for timestamp (expected 4, 8, or 12): "+e.length)}}(e);return new Date(1e3*t.sec+t.nsec/1e6)}},v=function(){function e(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(g)}return e.prototype.register=function(e){var t=e.type,r=e.encode,i=e.decode;if(t>=0)this.encoders[t]=r,this.decoders[t]=i;else{var n=1+t;this.builtInEncoders[n]=r,this.builtInDecoders[n]=i}},e.prototype.tryToEncode=function(e,t){for(var r=0;rthis.maxDepth)throw new Error("Too deep objects in depth "+t);null==e?this.encodeNil():"boolean"==typeof e?this.encodeBoolean(e):"number"==typeof e?this.encodeNumber(e):"string"==typeof e?this.encodeString(e):this.encodeObject(e,t)},e.prototype.ensureBufferSizeToWrite=function(e){var t=this.pos+e;this.view.byteLength=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))},e.prototype.writeStringHeader=function(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else{if(!(e<4294967296))throw new Error("Too long string: "+e+" bytes in UTF-8");this.writeU8(219),this.writeU32(e)}},e.prototype.encodeString=function(e){if(e.length>h){var t=o(e);this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),c(e,this.bytes,this.pos),this.pos+=t}else t=o(e),this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),function(e,t,r){for(var i=e.length,n=r,s=0;s>6&31|192;else{if(o>=55296&&o<=56319&&s>12&15|224,t[n++]=o>>6&63|128):(t[n++]=o>>18&7|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128)}t[n++]=63&o|128}else t[n++]=o}}(e,this.bytes,this.pos),this.pos+=t},e.prototype.encodeObject=function(e,t){var r=this.extensionCodec.tryToEncode(e,this.context);if(null!=r)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else{if("object"!=typeof e)throw new Error("Unrecognized object: "+Object.prototype.toString.apply(e));this.encodeMap(e,t)}},e.prototype.encodeBinary=function(e){var t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else{if(!(t<4294967296))throw new Error("Too large binary: "+t);this.writeU8(198),this.writeU32(t)}var r=m(e);this.writeU8a(r)},e.prototype.encodeArray=function(e,t){var r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else{if(!(r<4294967296))throw new Error("Too large array: "+r);this.writeU8(221),this.writeU32(r)}for(var i=0,n=e;i0&&e<=this.maxKeyLength},e.prototype.find=function(e,t,r){e:for(var i=0,n=this.caches[r-1];i=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)},e.prototype.decode=function(e,t,r){var i=this.find(e,t,r);if(null!=i)return this.hit++,i;this.miss++;var n=u(e,t,r),s=Uint8Array.prototype.slice.call(e,t,t+r);return this.store(s,n),n},e}(),I=function(e,t){var r,i,n,s,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,i&&(n=2&s[0]?i.return:s[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,s[1])).done)return n;switch(i=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,i=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((n=(n=o.trys).length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]1||a(e,t)}))})}function a(e,t){try{(r=n[e](t)).value instanceof E?Promise.resolve(r.value.v).then(h,c):u(s[0][2],r)}catch(e){u(s[0][3],e)}var r}function h(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}},B=new DataView(new ArrayBuffer(0)),M=new Uint8Array(B.buffer),A=function(){try{B.getInt8(0)}catch(e){return e.constructor}throw new Error("never reached")}(),L=new A("Insufficient data"),k=new x,C=function(){function t(t,r,i,n,s,o,a,h){void 0===t&&(t=v.defaultCodec),void 0===r&&(r=void 0),void 0===i&&(i=e),void 0===n&&(n=e),void 0===s&&(s=e),void 0===o&&(o=e),void 0===a&&(a=e),void 0===h&&(h=k),this.extensionCodec=t,this.context=r,this.maxStrLength=i,this.maxBinLength=n,this.maxArrayLength=s,this.maxMapLength=o,this.maxExtLength=a,this.keyDecoder=h,this.totalPos=0,this.pos=0,this.view=B,this.bytes=M,this.headByte=-1,this.stack=[]}return t.prototype.reinitializeState=function(){this.totalPos=0,this.headByte=-1,this.stack.length=0},t.prototype.setBuffer=function(e){this.bytes=m(e),this.view=function(e){if(e instanceof ArrayBuffer)return new DataView(e);var t=m(e);return new DataView(t.buffer,t.byteOffset,t.byteLength)}(this.bytes),this.pos=0},t.prototype.appendBuffer=function(e){if(-1!==this.headByte||this.hasRemaining(1)){var t=this.bytes.subarray(this.pos),r=m(e),i=new Uint8Array(t.length+r.length);i.set(t),i.set(r,t.length),this.setBuffer(i)}else this.setBuffer(e)},t.prototype.hasRemaining=function(e){return this.view.byteLength-this.pos>=e},t.prototype.createExtraByteError=function(e){var t=this.view,r=this.pos;return new RangeError("Extra "+(t.byteLength-r)+" of "+t.byteLength+" byte(s) found at buffer["+e+"]")},t.prototype.decode=function(e){this.reinitializeState(),this.setBuffer(e);var t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t},t.prototype.decodeMulti=function(e){return I(this,(function(t){switch(t.label){case 0:this.reinitializeState(),this.setBuffer(e),t.label=1;case 1:return this.hasRemaining(1)?[4,this.doDecodeSync()]:[3,3];case 2:return t.sent(),[3,1];case 3:return[2]}}))},t.prototype.decodeAsync=function(e){var t,r,i,n;return function(e,t,r,i){return new(r||(r=Promise))((function(n,s){function o(e){try{h(i.next(e))}catch(e){s(e)}}function a(e){try{h(i.throw(e))}catch(e){s(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((i=i.apply(e,t||[])).next())}))}(this,void 0,void 0,(function(){var s,o,a,h,c,u,f,p;return I(this,(function(l){switch(l.label){case 0:s=!1,l.label=1;case 1:l.trys.push([1,6,7,12]),t=S(e),l.label=2;case 2:return[4,t.next()];case 3:if((r=l.sent()).done)return[3,5];if(a=r.value,s)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{o=this.doDecodeSync(),s=!0}catch(e){if(!(e instanceof A))throw e}this.totalPos+=this.pos,l.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return h=l.sent(),i={error:h},[3,12];case 7:return l.trys.push([7,,10,11]),r&&!r.done&&(n=t.return)?[4,n.call(t)]:[3,9];case 8:l.sent(),l.label=9;case 9:return[3,11];case 10:if(i)throw i.error;return[7];case 11:return[7];case 12:if(s){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return[2,o]}throw u=(c=this).headByte,f=c.pos,p=c.totalPos,new RangeError("Insufficient data in parsing "+b(u)+" at "+p+" ("+f+" in the current buffer)")}}))}))},t.prototype.decodeArrayStream=function(e){return this.decodeMultiAsync(e,!0)},t.prototype.decodeStream=function(e){return this.decodeMultiAsync(e,!1)},t.prototype.decodeMultiAsync=function(e,t){return T(this,arguments,(function(){var r,i,n,s,o,a,h,c,u;return I(this,(function(f){switch(f.label){case 0:r=t,i=-1,f.label=1;case 1:f.trys.push([1,13,14,19]),n=S(e),f.label=2;case 2:return[4,E(n.next())];case 3:if((s=f.sent()).done)return[3,12];if(o=s.value,t&&0===i)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),r&&(i=this.readArraySize(),r=!1,this.complete()),f.label=4;case 4:f.trys.push([4,9,,10]),f.label=5;case 5:return[4,E(this.doDecodeSync())];case 6:return[4,f.sent()];case 7:return f.sent(),0==--i?[3,8]:[3,5];case 8:return[3,10];case 9:if(!((a=f.sent())instanceof A))throw a;return[3,10];case 10:this.totalPos+=this.pos,f.label=11;case 11:return[3,2];case 12:return[3,19];case 13:return h=f.sent(),c={error:h},[3,19];case 14:return f.trys.push([14,,17,18]),s&&!s.done&&(u=n.return)?[4,E(u.call(n))]:[3,16];case 15:f.sent(),f.label=16;case 16:return[3,18];case 17:if(c)throw c.error;return[7];case 18:return[7];case 19:return[2]}}))}))},t.prototype.doDecodeSync=function(){e:for(;;){var e=this.readHeadByte(),t=void 0;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){if(0!=(i=e-128)){this.pushMapState(i),this.complete();continue e}t={}}else if(e<160){if(0!=(i=e-144)){this.pushArrayState(i),this.complete();continue e}t=[]}else{var r=e-160;t=this.decodeUtf8String(r,0)}else if(192===e)t=null;else if(194===e)t=!1;else if(195===e)t=!0;else if(202===e)t=this.readF32();else if(203===e)t=this.readF64();else if(204===e)t=this.readU8();else if(205===e)t=this.readU16();else if(206===e)t=this.readU32();else if(207===e)t=this.readU64();else if(208===e)t=this.readI8();else if(209===e)t=this.readI16();else if(210===e)t=this.readI32();else if(211===e)t=this.readI64();else if(217===e)r=this.lookU8(),t=this.decodeUtf8String(r,1);else if(218===e)r=this.lookU16(),t=this.decodeUtf8String(r,2);else if(219===e)r=this.lookU32(),t=this.decodeUtf8String(r,4);else if(220===e){if(0!==(i=this.readU16())){this.pushArrayState(i),this.complete();continue e}t=[]}else if(221===e){if(0!==(i=this.readU32())){this.pushArrayState(i),this.complete();continue e}t=[]}else if(222===e){if(0!==(i=this.readU16())){this.pushMapState(i),this.complete();continue e}t={}}else if(223===e){if(0!==(i=this.readU32())){this.pushMapState(i),this.complete();continue e}t={}}else if(196===e){var i=this.lookU8();t=this.decodeBinary(i,1)}else if(197===e)i=this.lookU16(),t=this.decodeBinary(i,2);else if(198===e)i=this.lookU32(),t=this.decodeBinary(i,4);else if(212===e)t=this.decodeExtension(1,0);else if(213===e)t=this.decodeExtension(2,0);else if(214===e)t=this.decodeExtension(4,0);else if(215===e)t=this.decodeExtension(8,0);else if(216===e)t=this.decodeExtension(16,0);else if(199===e)i=this.lookU8(),t=this.decodeExtension(i,1);else if(200===e)i=this.lookU16(),t=this.decodeExtension(i,2);else{if(201!==e)throw new w("Unrecognized type byte: "+b(e));i=this.lookU32(),t=this.decodeExtension(i,4)}this.complete();for(var n=this.stack;n.length>0;){var s=n[n.length-1];if(0===s.type){if(s.array[s.position]=t,s.position++,s.position!==s.size)continue e;n.pop(),t=s.array}else{if(1===s.type){if(void 0,"string"!=(o=typeof t)&&"number"!==o)throw new w("The type of key must be string or number but "+typeof t);if("__proto__"===t)throw new w("The key __proto__ is not allowed");s.key=t,s.type=2;continue e}if(s.map[s.key]=t,s.readCount++,s.readCount!==s.size){s.key=null,s.type=1;continue e}n.pop(),t=s.map}}return t}var o},t.prototype.readHeadByte=function(){return-1===this.headByte&&(this.headByte=this.readU8()),this.headByte},t.prototype.complete=function(){this.headByte=-1},t.prototype.readArraySize=function(){var e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;throw new w("Unrecognized array type byte: "+b(e))}},t.prototype.pushMapState=function(e){if(e>this.maxMapLength)throw new w("Max length exceeded: map length ("+e+") > maxMapLengthLength ("+this.maxMapLength+")");this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})},t.prototype.pushArrayState=function(e){if(e>this.maxArrayLength)throw new w("Max length exceeded: array length ("+e+") > maxArrayLength ("+this.maxArrayLength+")");this.stack.push({type:0,size:e,array:new Array(e),position:0})},t.prototype.decodeUtf8String=function(e,t){var r;if(e>this.maxStrLength)throw new w("Max length exceeded: UTF-8 byte length ("+e+") > maxStrLength ("+this.maxStrLength+")");if(this.bytes.byteLengthl?function(e,t,r){var i=e.subarray(t,t+r);return p.decode(i)}(this.bytes,n,e):u(this.bytes,n,e),this.pos+=t+e,i},t.prototype.stateIsMapKey=function(){return this.stack.length>0&&1===this.stack[this.stack.length-1].type},t.prototype.decodeBinary=function(e,t){if(e>this.maxBinLength)throw new w("Max length exceeded: bin length ("+e+") > maxBinLength ("+this.maxBinLength+")");if(!this.hasRemaining(e+t))throw L;var r=this.pos+t,i=this.bytes.subarray(r,r+e);return this.pos+=t+e,i},t.prototype.decodeExtension=function(e,t){if(e>this.maxExtLength)throw new w("Max length exceeded: ext length ("+e+") > maxExtLength ("+this.maxExtLength+")");var r=this.view.getInt8(this.pos+t),i=this.decodeBinary(e,t+1);return this.extensionCodec.decode(i,r,this.context)},t.prototype.lookU8=function(){return this.view.getUint8(this.pos)},t.prototype.lookU16=function(){return this.view.getUint16(this.pos)},t.prototype.lookU32=function(){return this.view.getUint32(this.pos)},t.prototype.readU8=function(){var e=this.view.getUint8(this.pos);return this.pos++,e},t.prototype.readI8=function(){var e=this.view.getInt8(this.pos);return this.pos++,e},t.prototype.readU16=function(){var e=this.view.getUint16(this.pos);return this.pos+=2,e},t.prototype.readI16=function(){var e=this.view.getInt16(this.pos);return this.pos+=2,e},t.prototype.readU32=function(){var e=this.view.getUint32(this.pos);return this.pos+=4,e},t.prototype.readI32=function(){var e=this.view.getInt32(this.pos);return this.pos+=4,e},t.prototype.readU64=function(){var e,t,r=(e=this.view,t=this.pos,4294967296*e.getUint32(t)+e.getUint32(t+4));return this.pos+=8,r},t.prototype.readI64=function(){var e=r(this.view,this.pos);return this.pos+=8,e},t.prototype.readF32=function(){var e=this.view.getFloat32(this.pos);return this.pos+=4,e},t.prototype.readF64=function(){var e=this.view.getFloat64(this.pos);return this.pos+=8,e},t}(),z=i(1);class D{static write(e){let t=e.byteLength||e.length;const r=[];do{let e=127&t;t>>=7,t>0&&(e|=128),r.push(e)}while(t>0);t=e.byteLength||e.length;const i=new Uint8Array(r.length+t);return i.set(r,0),i.set(e,r.length),i.buffer}static parse(e){const t=[],r=new Uint8Array(e),i=[0,7,14,21,28];for(let n=0;n7)throw new Error("Messages bigger than 2GB are not supported.");if(!(r.byteLength>=n+o+a))throw new Error("Incomplete message.");t.push(r.slice?r.slice(n+o,n+o+a):r.subarray(n+o,n+o+a)),n=n+o+a}return t}}const P=new Uint8Array([145,z.MessageType.Ping]);class _{constructor(e){this.name="messagepack",this.version=1,this.transferFormat=z.TransferFormat.Binary,this.i=1,this.h=2,this.u=3,e=e||{},this.l=new U(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat),this.p=new C(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength)}parseMessages(e,t){if(!(r=e)||"undefined"==typeof ArrayBuffer||!(r instanceof ArrayBuffer||r.constructor&&"ArrayBuffer"===r.constructor.name))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.");var r;null===t&&(t=z.NullLogger.instance);const i=D.parse(e),n=[];for(const e of i){const r=this.g(e,t);r&&n.push(r)}return n}writeMessage(e){switch(e.type){case z.MessageType.Invocation:return this.m(e);case z.MessageType.StreamInvocation:return this.A(e);case z.MessageType.StreamItem:return this.I(e);case z.MessageType.Completion:return this._(e);case z.MessageType.Ping:return D.write(P);case z.MessageType.CancelInvocation:return this.M(e);default:throw new Error("Invalid message type.")}}g(e,t){if(0===e.length)throw new Error("Invalid payload.");const r=this.p.decode(e);if(0===r.length||!(r instanceof Array))throw new Error("Invalid payload.");const i=r[0];switch(i){case z.MessageType.Invocation:return this.S(this.U(r),r);case z.MessageType.StreamItem:return this.j(this.U(r),r);case z.MessageType.Completion:return this.T(this.U(r),r);case z.MessageType.Ping:return this.D(r);case z.MessageType.Close:return this.k(r);default:return t.log(z.LogLevel.Information,"Unknown message type '"+i+"' ignored."),null}}k(e){if(e.length<2)throw new Error("Invalid payload for Close message.");return{allowReconnect:e.length>=3?e[2]:void 0,error:e[1],type:z.MessageType.Close}}D(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:z.MessageType.Ping}}S(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");const r=t[2];return r?{arguments:t[4],headers:e,invocationId:r,streamIds:[],target:t[3],type:z.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:z.MessageType.Invocation}}j(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:z.MessageType.StreamItem}}T(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");const r=t[3];if(r!==this.h&&t.length<5)throw new Error("Invalid payload for Completion message.");let i,n;switch(r){case this.i:i=t[4];break;case this.u:n=t[4]}return{error:i,headers:e,invocationId:t[2],result:n,type:z.MessageType.Completion}}m(e){let t;return t=e.streamIds?this.l.encode([z.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):this.l.encode([z.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),D.write(t.slice())}A(e){let t;return t=e.streamIds?this.l.encode([z.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):this.l.encode([z.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),D.write(t.slice())}I(e){const t=this.l.encode([z.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return D.write(t.slice())}_(e){const t=e.error?this.i:e.result?this.u:this.h;let r;switch(t){case this.i:r=this.l.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t,e.error]);break;case this.h:r=this.l.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t]);break;case this.u:r=this.l.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t,e.result])}return D.write(r.slice())}M(e){const t=this.l.encode([z.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return D.write(t.slice())}U(e){const t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t}}const j="6.0.0"})(),n})()},"object"==typeof exports&&"object"==typeof module?module.exports=t(require("signalR")):"function"==typeof define&&define.amd?define(["signalR"],t):"object"==typeof exports?exports.msgpack=t(require("signalR")):(e.signalR=e.signalR||{},e.signalR.protocols=e.signalR.protocols||{},e.signalR.protocols.msgpack=t(e.signalR));
+var e,t;e=self,t=function(e){return(()=>{var t=[,t=>{t.exports=e}],r={};function i(e){var n=r[e];if(void 0!==n)return n.exports;var s=r[e]={exports:{}};return t[e](s,s.exports,i),s.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{i.r(n),i.d(n,{MessagePackHubProtocol:()=>R,VERSION:()=>O});var e=4294967295;function t(e,t,r){var i=Math.floor(r/4294967296),n=r;e.setUint32(t,i),e.setUint32(t+4,n)}function r(e,t){return 4294967296*e.getInt32(t)+e.getUint32(t+4)}var s=("undefined"==typeof process||"never"!==process.env.TEXT_ENCODING)&&"undefined"!=typeof TextEncoder&&"undefined"!=typeof TextDecoder;function o(e){for(var t=e.length,r=0,i=0;i=55296&&n<=56319&&i65535&&(u-=65536,s.push(u>>>10&1023|55296),u=56320|1023&u),s.push(u)}else s.push(a);s.length>=4096&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return s.length>0&&(o+=String.fromCharCode.apply(String,s)),o}var f,p=s?new TextDecoder:null,l=s?"undefined"!=typeof process&&"force"!==process.env.TEXT_DECODER?200:0:e,d=function(e,t){this.type=e,this.data=t},y=(f=function(e,t){return(f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}f(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),w=function(e){function t(r){var i=e.call(this,r)||this,n=Object.create(t.prototype);return Object.setPrototypeOf(i,n),Object.defineProperty(i,"name",{configurable:!0,enumerable:!1,value:t.name}),i}return y(t,e),t}(Error),g={type:-1,encode:function(e){var r,i,n,s;return e instanceof Date?function(e){var r,i=e.sec,n=e.nsec;if(i>=0&&n>=0&&i<=17179869183){if(0===n&&i<=4294967295){var s=new Uint8Array(4);return(r=new DataView(s.buffer)).setUint32(0,i),s}var o=i/4294967296,a=4294967295&i;return s=new Uint8Array(8),(r=new DataView(s.buffer)).setUint32(0,n<<2|3&o),r.setUint32(4,a),s}return s=new Uint8Array(12),(r=new DataView(s.buffer)).setUint32(0,n),t(r,4,i),s}((r=e.getTime(),i=Math.floor(r/1e3),n=1e6*(r-1e3*i),s=Math.floor(n/1e9),{sec:i+s,nsec:n-1e9*s})):null},decode:function(e){var t=function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);switch(e.byteLength){case 4:return{sec:t.getUint32(0),nsec:0};case 8:var i=t.getUint32(0);return{sec:4294967296*(3&i)+t.getUint32(4),nsec:i>>>2};case 12:return{sec:r(t,4),nsec:t.getUint32(0)};default:throw new w("Unrecognized data size for timestamp (expected 4, 8, or 12): "+e.length)}}(e);return new Date(1e3*t.sec+t.nsec/1e6)}},v=function(){function e(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(g)}return e.prototype.register=function(e){var t=e.type,r=e.encode,i=e.decode;if(t>=0)this.encoders[t]=r,this.decoders[t]=i;else{var n=1+t;this.builtInEncoders[n]=r,this.builtInDecoders[n]=i}},e.prototype.tryToEncode=function(e,t){for(var r=0;rthis.maxDepth)throw new Error("Too deep objects in depth "+t);null==e?this.encodeNil():"boolean"==typeof e?this.encodeBoolean(e):"number"==typeof e?this.encodeNumber(e):"string"==typeof e?this.encodeString(e):this.encodeObject(e,t)},e.prototype.ensureBufferSizeToWrite=function(e){var t=this.pos+e;this.view.byteLength=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):(this.writeU8(211),this.writeI64(e)):this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))},e.prototype.writeStringHeader=function(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else{if(!(e<4294967296))throw new Error("Too long string: "+e+" bytes in UTF-8");this.writeU8(219),this.writeU32(e)}},e.prototype.encodeString=function(e){if(e.length>h){var t=o(e);this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),c(e,this.bytes,this.pos),this.pos+=t}else t=o(e),this.ensureBufferSizeToWrite(5+t),this.writeStringHeader(t),function(e,t,r){for(var i=e.length,n=r,s=0;s>6&31|192;else{if(o>=55296&&o<=56319&&s>12&15|224,t[n++]=o>>6&63|128):(t[n++]=o>>18&7|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128)}t[n++]=63&o|128}else t[n++]=o}}(e,this.bytes,this.pos),this.pos+=t},e.prototype.encodeObject=function(e,t){var r=this.extensionCodec.tryToEncode(e,this.context);if(null!=r)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,t);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else{if("object"!=typeof e)throw new Error("Unrecognized object: "+Object.prototype.toString.apply(e));this.encodeMap(e,t)}},e.prototype.encodeBinary=function(e){var t=e.byteLength;if(t<256)this.writeU8(196),this.writeU8(t);else if(t<65536)this.writeU8(197),this.writeU16(t);else{if(!(t<4294967296))throw new Error("Too large binary: "+t);this.writeU8(198),this.writeU32(t)}var r=m(e);this.writeU8a(r)},e.prototype.encodeArray=function(e,t){var r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else{if(!(r<4294967296))throw new Error("Too large array: "+r);this.writeU8(221),this.writeU32(r)}for(var i=0,n=e;i0&&e<=this.maxKeyLength},e.prototype.find=function(e,t,r){e:for(var i=0,n=this.caches[r-1];i=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)},e.prototype.decode=function(e,t,r){var i=this.find(e,t,r);if(null!=i)return this.hit++,i;this.miss++;var n=u(e,t,r),s=Uint8Array.prototype.slice.call(e,t,t+r);return this.store(s,n),n},e}(),x=function(e,t,r,i){return new(r||(r=Promise))((function(n,s){function o(e){try{h(i.next(e))}catch(e){s(e)}}function a(e){try{h(i.throw(e))}catch(e){s(e)}}function h(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}h((i=i.apply(e,t||[])).next())}))},S=function(e,t){var r,i,n,s,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,i&&(n=2&s[0]?i.return:s[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,s[1])).done)return n;switch(i=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,i=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((n=(n=o.trys).length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]1||a(e,t)}))})}function a(e,t){try{(r=n[e](t)).value instanceof _?Promise.resolve(r.value.v).then(h,c):u(s[0][2],r)}catch(e){u(s[0][3],e)}var r}function h(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}},T=new DataView(new ArrayBuffer(0)),B=new Uint8Array(T.buffer),A=function(){try{T.getInt8(0)}catch(e){return e.constructor}throw new Error("never reached")}(),L=new A("Insufficient data"),C=new I,k=function(){function t(t,r,i,n,s,o,a,h){void 0===t&&(t=v.defaultCodec),void 0===r&&(r=void 0),void 0===i&&(i=e),void 0===n&&(n=e),void 0===s&&(s=e),void 0===o&&(o=e),void 0===a&&(a=e),void 0===h&&(h=C),this.extensionCodec=t,this.context=r,this.maxStrLength=i,this.maxBinLength=n,this.maxArrayLength=s,this.maxMapLength=o,this.maxExtLength=a,this.keyDecoder=h,this.totalPos=0,this.pos=0,this.view=T,this.bytes=B,this.headByte=-1,this.stack=[]}return t.prototype.reinitializeState=function(){this.totalPos=0,this.headByte=-1,this.stack.length=0},t.prototype.setBuffer=function(e){this.bytes=m(e),this.view=function(e){if(e instanceof ArrayBuffer)return new DataView(e);var t=m(e);return new DataView(t.buffer,t.byteOffset,t.byteLength)}(this.bytes),this.pos=0},t.prototype.appendBuffer=function(e){if(-1!==this.headByte||this.hasRemaining(1)){var t=this.bytes.subarray(this.pos),r=m(e),i=new Uint8Array(t.length+r.length);i.set(t),i.set(r,t.length),this.setBuffer(i)}else this.setBuffer(e)},t.prototype.hasRemaining=function(e){return this.view.byteLength-this.pos>=e},t.prototype.createExtraByteError=function(e){var t=this.view,r=this.pos;return new RangeError("Extra "+(t.byteLength-r)+" of "+t.byteLength+" byte(s) found at buffer["+e+"]")},t.prototype.decode=function(e){this.reinitializeState(),this.setBuffer(e);var t=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return t},t.prototype.decodeMulti=function(e){return S(this,(function(t){switch(t.label){case 0:this.reinitializeState(),this.setBuffer(e),t.label=1;case 1:return this.hasRemaining(1)?[4,this.doDecodeSync()]:[3,3];case 2:return t.sent(),[3,1];case 3:return[2]}}))},t.prototype.decodeAsync=function(e){var t,r,i,n;return x(this,void 0,void 0,(function(){var s,o,a,h,c,u,f,p;return S(this,(function(l){switch(l.label){case 0:s=!1,l.label=1;case 1:l.trys.push([1,6,7,12]),t=E(e),l.label=2;case 2:return[4,t.next()];case 3:if((r=l.sent()).done)return[3,5];if(a=r.value,s)throw this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{o=this.doDecodeSync(),s=!0}catch(e){if(!(e instanceof A))throw e}this.totalPos+=this.pos,l.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return h=l.sent(),i={error:h},[3,12];case 7:return l.trys.push([7,,10,11]),r&&!r.done&&(n=t.return)?[4,n.call(t)]:[3,9];case 8:l.sent(),l.label=9;case 9:return[3,11];case 10:if(i)throw i.error;return[7];case 11:return[7];case 12:if(s){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return[2,o]}throw u=(c=this).headByte,f=c.pos,p=c.totalPos,new RangeError("Insufficient data in parsing "+U(u)+" at "+p+" ("+f+" in the current buffer)")}}))}))},t.prototype.decodeArrayStream=function(e){return this.decodeMultiAsync(e,!0)},t.prototype.decodeStream=function(e){return this.decodeMultiAsync(e,!1)},t.prototype.decodeMultiAsync=function(e,t){return M(this,arguments,(function(){var r,i,n,s,o,a,h,c,u;return S(this,(function(f){switch(f.label){case 0:r=t,i=-1,f.label=1;case 1:f.trys.push([1,13,14,19]),n=E(e),f.label=2;case 2:return[4,_(n.next())];case 3:if((s=f.sent()).done)return[3,12];if(o=s.value,t&&0===i)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),r&&(i=this.readArraySize(),r=!1,this.complete()),f.label=4;case 4:f.trys.push([4,9,,10]),f.label=5;case 5:return[4,_(this.doDecodeSync())];case 6:return[4,f.sent()];case 7:return f.sent(),0==--i?[3,8]:[3,5];case 8:return[3,10];case 9:if(!((a=f.sent())instanceof A))throw a;return[3,10];case 10:this.totalPos+=this.pos,f.label=11;case 11:return[3,2];case 12:return[3,19];case 13:return h=f.sent(),c={error:h},[3,19];case 14:return f.trys.push([14,,17,18]),s&&!s.done&&(u=n.return)?[4,_(u.call(n))]:[3,16];case 15:f.sent(),f.label=16;case 16:return[3,18];case 17:if(c)throw c.error;return[7];case 18:return[7];case 19:return[2]}}))}))},t.prototype.doDecodeSync=function(){e:for(;;){var e=this.readHeadByte(),t=void 0;if(e>=224)t=e-256;else if(e<192)if(e<128)t=e;else if(e<144){if(0!=(i=e-128)){this.pushMapState(i),this.complete();continue e}t={}}else if(e<160){if(0!=(i=e-144)){this.pushArrayState(i),this.complete();continue e}t=[]}else{var r=e-160;t=this.decodeUtf8String(r,0)}else if(192===e)t=null;else if(194===e)t=!1;else if(195===e)t=!0;else if(202===e)t=this.readF32();else if(203===e)t=this.readF64();else if(204===e)t=this.readU8();else if(205===e)t=this.readU16();else if(206===e)t=this.readU32();else if(207===e)t=this.readU64();else if(208===e)t=this.readI8();else if(209===e)t=this.readI16();else if(210===e)t=this.readI32();else if(211===e)t=this.readI64();else if(217===e)r=this.lookU8(),t=this.decodeUtf8String(r,1);else if(218===e)r=this.lookU16(),t=this.decodeUtf8String(r,2);else if(219===e)r=this.lookU32(),t=this.decodeUtf8String(r,4);else if(220===e){if(0!==(i=this.readU16())){this.pushArrayState(i),this.complete();continue e}t=[]}else if(221===e){if(0!==(i=this.readU32())){this.pushArrayState(i),this.complete();continue e}t=[]}else if(222===e){if(0!==(i=this.readU16())){this.pushMapState(i),this.complete();continue e}t={}}else if(223===e){if(0!==(i=this.readU32())){this.pushMapState(i),this.complete();continue e}t={}}else if(196===e){var i=this.lookU8();t=this.decodeBinary(i,1)}else if(197===e)i=this.lookU16(),t=this.decodeBinary(i,2);else if(198===e)i=this.lookU32(),t=this.decodeBinary(i,4);else if(212===e)t=this.decodeExtension(1,0);else if(213===e)t=this.decodeExtension(2,0);else if(214===e)t=this.decodeExtension(4,0);else if(215===e)t=this.decodeExtension(8,0);else if(216===e)t=this.decodeExtension(16,0);else if(199===e)i=this.lookU8(),t=this.decodeExtension(i,1);else if(200===e)i=this.lookU16(),t=this.decodeExtension(i,2);else{if(201!==e)throw new w("Unrecognized type byte: "+U(e));i=this.lookU32(),t=this.decodeExtension(i,4)}this.complete();for(var n=this.stack;n.length>0;){var s=n[n.length-1];if(0===s.type){if(s.array[s.position]=t,s.position++,s.position!==s.size)continue e;n.pop(),t=s.array}else{if(1===s.type){if(o=void 0,"string"!=(o=typeof t)&&"number"!==o)throw new w("The type of key must be string or number but "+typeof t);if("__proto__"===t)throw new w("The key __proto__ is not allowed");s.key=t,s.type=2;continue e}if(s.map[s.key]=t,s.readCount++,s.readCount!==s.size){s.key=null,s.type=1;continue e}n.pop(),t=s.map}}return t}var o},t.prototype.readHeadByte=function(){return-1===this.headByte&&(this.headByte=this.readU8()),this.headByte},t.prototype.complete=function(){this.headByte=-1},t.prototype.readArraySize=function(){var e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:if(e<160)return e-144;throw new w("Unrecognized array type byte: "+U(e))}},t.prototype.pushMapState=function(e){if(e>this.maxMapLength)throw new w("Max length exceeded: map length ("+e+") > maxMapLengthLength ("+this.maxMapLength+")");this.stack.push({type:1,size:e,key:null,readCount:0,map:{}})},t.prototype.pushArrayState=function(e){if(e>this.maxArrayLength)throw new w("Max length exceeded: array length ("+e+") > maxArrayLength ("+this.maxArrayLength+")");this.stack.push({type:0,size:e,array:new Array(e),position:0})},t.prototype.decodeUtf8String=function(e,t){var r;if(e>this.maxStrLength)throw new w("Max length exceeded: UTF-8 byte length ("+e+") > maxStrLength ("+this.maxStrLength+")");if(this.bytes.byteLengthl?function(e,t,r){var i=e.subarray(t,t+r);return p.decode(i)}(this.bytes,n,e):u(this.bytes,n,e),this.pos+=t+e,i},t.prototype.stateIsMapKey=function(){return this.stack.length>0&&1===this.stack[this.stack.length-1].type},t.prototype.decodeBinary=function(e,t){if(e>this.maxBinLength)throw new w("Max length exceeded: bin length ("+e+") > maxBinLength ("+this.maxBinLength+")");if(!this.hasRemaining(e+t))throw L;var r=this.pos+t,i=this.bytes.subarray(r,r+e);return this.pos+=t+e,i},t.prototype.decodeExtension=function(e,t){if(e>this.maxExtLength)throw new w("Max length exceeded: ext length ("+e+") > maxExtLength ("+this.maxExtLength+")");var r=this.view.getInt8(this.pos+t),i=this.decodeBinary(e,t+1);return this.extensionCodec.decode(i,r,this.context)},t.prototype.lookU8=function(){return this.view.getUint8(this.pos)},t.prototype.lookU16=function(){return this.view.getUint16(this.pos)},t.prototype.lookU32=function(){return this.view.getUint32(this.pos)},t.prototype.readU8=function(){var e=this.view.getUint8(this.pos);return this.pos++,e},t.prototype.readI8=function(){var e=this.view.getInt8(this.pos);return this.pos++,e},t.prototype.readU16=function(){var e=this.view.getUint16(this.pos);return this.pos+=2,e},t.prototype.readI16=function(){var e=this.view.getInt16(this.pos);return this.pos+=2,e},t.prototype.readU32=function(){var e=this.view.getUint32(this.pos);return this.pos+=4,e},t.prototype.readI32=function(){var e=this.view.getInt32(this.pos);return this.pos+=4,e},t.prototype.readU64=function(){var e,t,r=(e=this.view,t=this.pos,4294967296*e.getUint32(t)+e.getUint32(t+4));return this.pos+=8,r},t.prototype.readI64=function(){var e=r(this.view,this.pos);return this.pos+=8,e},t.prototype.readF32=function(){var e=this.view.getFloat32(this.pos);return this.pos+=4,e},t.prototype.readF64=function(){var e=this.view.getFloat64(this.pos);return this.pos+=8,e},t}(),z=i(1);class D{static write(e){let t=e.byteLength||e.length;const r=[];do{let e=127&t;t>>=7,t>0&&(e|=128),r.push(e)}while(t>0);t=e.byteLength||e.length;const i=new Uint8Array(r.length+t);return i.set(r,0),i.set(e,r.length),i.buffer}static parse(e){const t=[],r=new Uint8Array(e),i=[0,7,14,21,28];for(let n=0;n7)throw new Error("Messages bigger than 2GB are not supported.");if(!(r.byteLength>=n+o+a))throw new Error("Incomplete message.");t.push(r.slice?r.slice(n+o,n+o+a):r.subarray(n+o,n+o+a)),n=n+o+a}return t}}const P=new Uint8Array([145,z.MessageType.Ping]);class R{constructor(e){this.name="messagepack",this.version=1,this.transferFormat=z.TransferFormat.Binary,this._errorResult=1,this._voidResult=2,this._nonVoidResult=3,e=e||{},this._encoder=new b(e.extensionCodec,e.context,e.maxDepth,e.initialBufferSize,e.sortKeys,e.forceFloat32,e.ignoreUndefined,e.forceIntegerToFloat),this._decoder=new k(e.extensionCodec,e.context,e.maxStrLength,e.maxBinLength,e.maxArrayLength,e.maxMapLength,e.maxExtLength)}parseMessages(e,t){if(!(r=e)||"undefined"==typeof ArrayBuffer||!(r instanceof ArrayBuffer||r.constructor&&"ArrayBuffer"===r.constructor.name))throw new Error("Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.");var r;null===t&&(t=z.NullLogger.instance);const i=D.parse(e),n=[];for(const e of i){const r=this._parseMessage(e,t);r&&n.push(r)}return n}writeMessage(e){switch(e.type){case z.MessageType.Invocation:return this._writeInvocation(e);case z.MessageType.StreamInvocation:return this._writeStreamInvocation(e);case z.MessageType.StreamItem:return this._writeStreamItem(e);case z.MessageType.Completion:return this._writeCompletion(e);case z.MessageType.Ping:return D.write(P);case z.MessageType.CancelInvocation:return this._writeCancelInvocation(e);default:throw new Error("Invalid message type.")}}_parseMessage(e,t){if(0===e.length)throw new Error("Invalid payload.");const r=this._decoder.decode(e);if(0===r.length||!(r instanceof Array))throw new Error("Invalid payload.");const i=r[0];switch(i){case z.MessageType.Invocation:return this._createInvocationMessage(this._readHeaders(r),r);case z.MessageType.StreamItem:return this._createStreamItemMessage(this._readHeaders(r),r);case z.MessageType.Completion:return this._createCompletionMessage(this._readHeaders(r),r);case z.MessageType.Ping:return this._createPingMessage(r);case z.MessageType.Close:return this._createCloseMessage(r);default:return t.log(z.LogLevel.Information,"Unknown message type '"+i+"' ignored."),null}}_createCloseMessage(e){if(e.length<2)throw new Error("Invalid payload for Close message.");return{allowReconnect:e.length>=3?e[2]:void 0,error:e[1],type:z.MessageType.Close}}_createPingMessage(e){if(e.length<1)throw new Error("Invalid payload for Ping message.");return{type:z.MessageType.Ping}}_createInvocationMessage(e,t){if(t.length<5)throw new Error("Invalid payload for Invocation message.");const r=t[2];return r?{arguments:t[4],headers:e,invocationId:r,streamIds:[],target:t[3],type:z.MessageType.Invocation}:{arguments:t[4],headers:e,streamIds:[],target:t[3],type:z.MessageType.Invocation}}_createStreamItemMessage(e,t){if(t.length<4)throw new Error("Invalid payload for StreamItem message.");return{headers:e,invocationId:t[2],item:t[3],type:z.MessageType.StreamItem}}_createCompletionMessage(e,t){if(t.length<4)throw new Error("Invalid payload for Completion message.");const r=t[3];if(r!==this._voidResult&&t.length<5)throw new Error("Invalid payload for Completion message.");let i,n;switch(r){case this._errorResult:i=t[4];break;case this._nonVoidResult:n=t[4]}return{error:i,headers:e,invocationId:t[2],result:n,type:z.MessageType.Completion}}_writeInvocation(e){let t;return t=e.streamIds?this._encoder.encode([z.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments,e.streamIds]):this._encoder.encode([z.MessageType.Invocation,e.headers||{},e.invocationId||null,e.target,e.arguments]),D.write(t.slice())}_writeStreamInvocation(e){let t;return t=e.streamIds?this._encoder.encode([z.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments,e.streamIds]):this._encoder.encode([z.MessageType.StreamInvocation,e.headers||{},e.invocationId,e.target,e.arguments]),D.write(t.slice())}_writeStreamItem(e){const t=this._encoder.encode([z.MessageType.StreamItem,e.headers||{},e.invocationId,e.item]);return D.write(t.slice())}_writeCompletion(e){const t=e.error?this._errorResult:e.result?this._nonVoidResult:this._voidResult;let r;switch(t){case this._errorResult:r=this._encoder.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t,e.error]);break;case this._voidResult:r=this._encoder.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t]);break;case this._nonVoidResult:r=this._encoder.encode([z.MessageType.Completion,e.headers||{},e.invocationId,t,e.result])}return D.write(r.slice())}_writeCancelInvocation(e){const t=this._encoder.encode([z.MessageType.CancelInvocation,e.headers||{},e.invocationId]);return D.write(t.slice())}_readHeaders(e){const t=e[1];if("object"!=typeof t)throw new Error("Invalid headers.");return t}}const O="6.0.6"})(),n})()},"object"==typeof exports&&"object"==typeof module?module.exports=t(require("signalR")):"function"==typeof define&&define.amd?define(["signalR"],t):"object"==typeof exports?exports.msgpack=t(require("signalR")):(e.signalR=e.signalR||{},e.signalR.protocols=e.signalR.protocols||{},e.signalR.protocols.msgpack=t(e.signalR));
//# sourceMappingURL=signalr-protocol-msgpack.min.js.map
\ No newline at end of file
diff --git a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js.map b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js.map
index e46d3e05..14d817d3 100644
--- a/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js.map
+++ b/Server/wwwroot/lib/microsoft/signalr-protocol-msgpack/dist/browser/signalr-protocol-msgpack.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://signalR.protocols.msgpack/webpack/universalModuleDefinition","webpack://signalR.protocols.msgpack/external \"signalR\"","webpack://signalR.protocols.msgpack/webpack/bootstrap","webpack://signalR.protocols.msgpack/webpack/runtime/define property getters","webpack://signalR.protocols.msgpack/webpack/runtime/hasOwnProperty shorthand","webpack://signalR.protocols.msgpack/webpack/runtime/make namespace object","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","webpack://signalR.protocols.msgpack/src/BinaryMessageFormat.ts","webpack://signalR.protocols.msgpack/src/MessagePackHubProtocol.ts","webpack://signalR.protocols.msgpack/src/Utils.ts","webpack://signalR.protocols.msgpack/src/index.ts"],"names":["root","factory","self","__WEBPACK_EXTERNAL_MODULE__1__","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","UINT32_MAX","setInt64","view","offset","high","Math","floor","low","setUint32","getInt64","getInt32","getUint32","TEXT_ENCODING_AVAILABLE","process","env","TEXT_ENCODING","TextEncoder","TextDecoder","utf8Count","str","strLength","length","byteLength","pos","charCodeAt","extra","sharedTextEncoder","TEXT_ENCODER_THRESHOLD","utf8EncodeTE","encodeInto","output","outputOffset","subarray","set","encode","utf8DecodeJs","bytes","inputOffset","end","units","result","byte1","push","byte2","byte3","unit","String","fromCharCode","apply","extendStatics","sharedTextDecoder","TEXT_DECODER_THRESHOLD","TEXT_DECODER","ExtData","type","data","this","__extends","b","setPrototypeOf","__proto__","Array","p","TypeError","__","constructor","create","DecodeError","_super","message","_this","proto","configurable","name","Error","timestampExtension","object","msec","sec","nsec","nsecInSec","Date","_a","rv","Uint8Array","DataView","buffer","secHigh","secLow","getTime","decode","timeSpec","byteOffset","nsec30AndSecHigh2","ExtensionCodec","builtInEncoders","builtInDecoders","encoders","decoders","register","index","tryToEncode","context","i","encodeExt","decodeExt","defaultCodec","ensureUint8Array","ArrayBuffer","isView","from","Encoder","extensionCodec","maxDepth","initialBufferSize","sortKeys","forceFloat32","ignoreUndefined","forceIntegerToFloat","undefined","getUint8Array","reinitializeState","doEncode","depth","encodeNil","encodeBoolean","encodeNumber","encodeString","encodeObject","ensureBufferSizeToWrite","sizeToWrite","requiredSize","resizeBuffer","newSize","newBuffer","newBytes","newView","writeU8","Number","isSafeInteger","writeU16","writeU32","writeU64","writeI8","writeI16","writeI32","writeI64","writeF32","writeF64","writeStringHeader","ext","encodeExtension","isArray","encodeArray","encodeBinary","toString","encodeMap","size","writeU8a","_i","object_1","item","countWithoutUndefined","keys","count","keys_1","sort","keys_2","setUint8","values","setInt8","setUint16","setInt16","setInt32","setFloat32","setFloat64","prettyByte","byte","abs","padStart","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","hit","miss","caches","canBeCached","find","FIND_CHUNK","records_1","record","recordBytes","j","store","records","random","cachedValue","slicedCopyOfBytes","slice","__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","throw","return","iterator","n","v","op","done","pop","e","__asyncValues","asyncIterator","m","__values","Promise","resolve","reject","then","__await","__asyncGenerator","_arguments","generator","q","a","resume","fulfill","settle","shift","EMPTY_VIEW","EMPTY_BYTES","DataViewIndexOutOfBoundsError","getInt8","MORE_DATA","sharedCachedKeyDecoder","Decoder","maxStrLength","maxBinLength","maxArrayLength","maxMapLength","maxExtLength","keyDecoder","totalPos","headByte","stack","setBuffer","bufferView","appendBuffer","hasRemaining","remainingData","newData","createExtraByteError","posToShow","RangeError","doDecodeSync","decodeMulti","decodeAsync","stream","stream_1","stream_1_1","e_1","P","fulfilled","step","rejected","__awaiter","decoded","e_1_1","_b","_c","error","decodeArrayStream","decodeMultiAsync","decodeStream","arguments","isArrayHeaderRequired","arrayItemsLeft","stream_2","stream_2_1","e_2","e_3_1","e_3","readArraySize","complete","DECODE","readHeadByte","pushMapState","pushArrayState","decodeUtf8String","readF32","readF64","readU8","readU16","readU32","readU64","readI8","readI16","readI32","readI64","lookU8","lookU16","lookU32","decodeBinary","decodeExtension","state","array","position","keyType","map","readCount","headerOffset","stateIsMapKey","stringBytes","headOffset","extType","getUint8","getUint16","getInt16","getFloat32","getFloat64","BinaryMessageFormat","[object Object]","lenBuffer","sizePart","input","uint8Array","numBitsToShift","byteRead","numBytes","min","SERIALIZED_PING_MESSAGE","O","MessageType","Ping","MessagePackHubProtocol","messagePackOptions","version","transferFormat","TransferFormat","Binary","_errorResult","_voidResult","_nonVoidResult","_encoder","_decoder","logger","val","NullLogger","instance","messages","parse","hubMessages","parsedMessage","_parseMessage","Invocation","_writeInvocation","StreamInvocation","_writeStreamInvocation","StreamItem","_writeStreamItem","Completion","_writeCompletion","write","CancelInvocation","_writeCancelInvocation","properties","messageType","_createInvocationMessage","_readHeaders","_createStreamItemMessage","_createCompletionMessage","_createPingMessage","Close","_createCloseMessage","log","LogLevel","Information","allowReconnect","headers","invocationId","streamIds","target","resultKind","invocationMessage","payload","streamInvocationMessage","streamItemMessage","completionMessage","cancelInvocationMessage","VERSION","require","define","amd","msgpack","signalR","protocols"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"signalR\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"signalR\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"msgpack\"] = factory(require(\"signalR\"));\n\telse\n\t\troot[\"signalR\"] = root[\"signalR\"] || {}, root[\"signalR\"][\"protocols\"] = root[\"signalR\"][\"protocols\"] || {}, root[\"signalR\"][\"protocols\"][\"msgpack\"] = factory(root[\"signalR\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","import { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || process.env[\"TEXT_ENCODING\"] !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_ENCODING\"] !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_DECODER\"] !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \" + data.length);\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport var DEFAULT_MAX_DEPTH = 100;\nexport var DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nvar Encoder = /** @class */ (function () {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }\n if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }\n if (sortKeys === void 0) { sortKeys = false; }\n if (forceFloat32 === void 0) { forceFloat32 = false; }\n if (ignoreUndefined === void 0) { ignoreUndefined = false; }\n if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.getUint8Array = function () {\n return this.bytes.subarray(0, this.pos);\n };\n Encoder.prototype.reinitializeState = function () {\n this.pos = 0;\n };\n Encoder.prototype.encode = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.getUint8Array();\n };\n Encoder.prototype.doEncode = function (object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(\"Too deep objects in depth \" + depth);\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n this.encodeNumber(object);\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n };\n Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n };\n Encoder.prototype.resizeBuffer = function (newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function () {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function (object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n };\n Encoder.prototype.encodeNumber = function (object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n }\n else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n };\n Encoder.prototype.writeStringHeader = function (byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(\"Too long string: \" + byteLength + \" bytes in UTF-8\");\n }\n };\n Encoder.prototype.encodeString = function (object) {\n var maxHeaderSize = 1 + 4;\n var strLength = object.length;\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n else {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function (object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \" + Object.prototype.toString.apply(object));\n }\n };\n Encoder.prototype.encodeBinary = function (object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large binary: \" + size);\n }\n var bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function (object, depth) {\n var size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large array: \" + size);\n }\n for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function (object, keys) {\n var count = 0;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n };\n Encoder.prototype.encodeMap = function (object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large map object: \" + size);\n }\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function (ext) {\n var size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large extension object: \" + size);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function (values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}());\nexport { Encoder };\n//# sourceMappingURL=Encoder.mjs.map","export function prettyByte(byte) {\n return (byte < 0 ? \"-\" : \"\") + \"0x\" + Math.abs(byte).toString(16).padStart(2, \"0\");\n}\n//# sourceMappingURL=prettyByte.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \" + (view.byteLength - pos) + \" of \" + view.byteLength + \" byte(s) found at buffer[\" + posToShow + \"]\");\n };\n /**\n * @throws {DecodeError}\n * @throws {RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \" + prettyByte(headByte) + \" at \" + totalPos + \" (\" + pos + \" in the current buffer)\");\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \" + prettyByte(headByte));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \" + prettyByte(headByte));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\" + size + \") > maxMapLengthLength (\" + this.maxMapLength + \")\");\n }\n this.stack.push({\n type: 1 /* MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\" + size + \") > maxArrayLength (\" + this.maxArrayLength + \")\");\n }\n this.stack.push({\n type: 0 /* ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\" + byteLength + \") > maxStrLength (\" + this.maxStrLength + \")\");\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\" + byteLength + \") > maxBinLength (\" + this.maxBinLength + \")\");\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\" + size + \") > maxExtLength (\" + this.maxExtLength + \")\");\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class BinaryMessageFormat {\r\n\r\n // The length prefix of binary messages is encoded as VarInt. Read the comment in\r\n // the BinaryMessageParser.TryParseMessage for details.\r\n\r\n public static write(output: Uint8Array): ArrayBuffer {\r\n let size = output.byteLength || output.length;\r\n const lenBuffer = [];\r\n do {\r\n let sizePart = size & 0x7f;\r\n size = size >> 7;\r\n if (size > 0) {\r\n sizePart |= 0x80;\r\n }\r\n lenBuffer.push(sizePart);\r\n }\r\n while (size > 0);\r\n\r\n size = output.byteLength || output.length;\r\n\r\n const buffer = new Uint8Array(lenBuffer.length + size);\r\n buffer.set(lenBuffer, 0);\r\n buffer.set(output, lenBuffer.length);\r\n return buffer.buffer;\r\n }\r\n\r\n public static parse(input: ArrayBuffer): Uint8Array[] {\r\n const result: Uint8Array[] = [];\r\n const uint8Array = new Uint8Array(input);\r\n const maxLengthPrefixSize = 5;\r\n const numBitsToShift = [0, 7, 14, 21, 28 ];\r\n\r\n for (let offset = 0; offset < input.byteLength;) {\r\n let numBytes = 0;\r\n let size = 0;\r\n let byteRead;\r\n do {\r\n byteRead = uint8Array[offset + numBytes];\r\n size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes]));\r\n numBytes++;\r\n }\r\n while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0);\r\n\r\n if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) {\r\n throw new Error(\"Cannot read message size.\");\r\n }\r\n\r\n if (numBytes === maxLengthPrefixSize && byteRead > 7) {\r\n throw new Error(\"Messages bigger than 2GB are not supported.\");\r\n }\r\n\r\n if (uint8Array.byteLength >= (offset + numBytes + size)) {\r\n // IE does not support .slice() so use subarray\r\n result.push(uint8Array.slice\r\n ? uint8Array.slice(offset + numBytes, offset + numBytes + size)\r\n : uint8Array.subarray(offset + numBytes, offset + numBytes + size));\r\n } else {\r\n throw new Error(\"Incomplete message.\");\r\n }\r\n\r\n offset = offset + numBytes + size;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { Encoder, Decoder } from \"@msgpack/msgpack\";\r\n\r\nimport { MessagePackOptions } from \"./MessagePackOptions\";\r\n\r\nimport {\r\n CancelInvocationMessage, CompletionMessage, HubMessage, IHubProtocol, ILogger, InvocationMessage,\r\n LogLevel, MessageHeaders, MessageType, NullLogger, StreamInvocationMessage, StreamItemMessage, TransferFormat,\r\n} from \"@microsoft/signalr\";\r\n\r\nimport { BinaryMessageFormat } from \"./BinaryMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n// TypeDoc's @inheritDoc and @link don't work across modules :(\r\n\r\n// constant encoding of the ping message\r\n// see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1\r\n// Don't use Uint8Array.from as IE does not support it\r\nconst SERIALIZED_PING_MESSAGE: Uint8Array = new Uint8Array([0x91, MessageType.Ping]);\r\n\r\n/** Implements the MessagePack Hub Protocol */\r\nexport class MessagePackHubProtocol implements IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n public readonly name: string = \"messagepack\";\r\n /** The version of the protocol. */\r\n public readonly version: number = 1;\r\n /** The TransferFormat of the protocol. */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Binary;\r\n\r\n private readonly _errorResult = 1;\r\n private readonly _voidResult = 2;\r\n private readonly _nonVoidResult = 3;\r\n\r\n private readonly _encoder: Encoder;\r\n private readonly _decoder: Decoder;\r\n\r\n /**\r\n *\r\n * @param messagePackOptions MessagePack options passed to @msgpack/msgpack\r\n */\r\n constructor(messagePackOptions?: MessagePackOptions) {\r\n messagePackOptions = messagePackOptions || {};\r\n this._encoder = new Encoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxDepth,\r\n messagePackOptions.initialBufferSize,\r\n messagePackOptions.sortKeys,\r\n messagePackOptions.forceFloat32,\r\n messagePackOptions.ignoreUndefined,\r\n messagePackOptions.forceIntegerToFloat,\r\n );\r\n\r\n this._decoder = new Decoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxStrLength,\r\n messagePackOptions.maxBinLength,\r\n messagePackOptions.maxArrayLength,\r\n messagePackOptions.maxMapLength,\r\n messagePackOptions.maxExtLength,\r\n );\r\n }\r\n\r\n /** Creates an array of HubMessage objects from the specified serialized representation.\r\n *\r\n * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: ArrayBuffer, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"string\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (!(isArrayBuffer(input))) {\r\n throw new Error(\"Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.\");\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n const messages = BinaryMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = this._parseMessage(message, logger);\r\n // Can be null for an unknown message. Unknown message is logged in parseMessage\r\n if (parsedMessage) {\r\n hubMessages.push(parsedMessage);\r\n }\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified HubMessage to an ArrayBuffer and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): ArrayBuffer {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n return this._writeInvocation(message as InvocationMessage);\r\n case MessageType.StreamInvocation:\r\n return this._writeStreamInvocation(message as StreamInvocationMessage);\r\n case MessageType.StreamItem:\r\n return this._writeStreamItem(message as StreamItemMessage);\r\n case MessageType.Completion:\r\n return this._writeCompletion(message as CompletionMessage);\r\n case MessageType.Ping:\r\n return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE);\r\n case MessageType.CancelInvocation:\r\n return this._writeCancelInvocation(message as CancelInvocationMessage);\r\n default:\r\n throw new Error(\"Invalid message type.\");\r\n }\r\n }\r\n\r\n private _parseMessage(input: Uint8Array, logger: ILogger): HubMessage | null {\r\n if (input.length === 0) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const properties = this._decoder.decode(input) as any;\r\n if (properties.length === 0 || !(properties instanceof Array)) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const messageType = properties[0] as MessageType;\r\n\r\n switch (messageType) {\r\n case MessageType.Invocation:\r\n return this._createInvocationMessage(this._readHeaders(properties), properties);\r\n case MessageType.StreamItem:\r\n return this._createStreamItemMessage(this._readHeaders(properties), properties);\r\n case MessageType.Completion:\r\n return this._createCompletionMessage(this._readHeaders(properties), properties);\r\n case MessageType.Ping:\r\n return this._createPingMessage(properties);\r\n case MessageType.Close:\r\n return this._createCloseMessage(properties);\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + messageType + \"' ignored.\");\r\n return null;\r\n }\r\n }\r\n\r\n private _createCloseMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 2) {\r\n throw new Error(\"Invalid payload for Close message.\");\r\n }\r\n\r\n return {\r\n // Close messages have no headers.\r\n allowReconnect: properties.length >= 3 ? properties[2] : undefined,\r\n error: properties[1],\r\n type: MessageType.Close,\r\n } as HubMessage;\r\n }\r\n\r\n private _createPingMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 1) {\r\n throw new Error(\"Invalid payload for Ping message.\");\r\n }\r\n\r\n return {\r\n // Ping messages have no headers.\r\n type: MessageType.Ping,\r\n } as HubMessage;\r\n }\r\n\r\n private _createInvocationMessage(headers: MessageHeaders, properties: any[]): InvocationMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 5) {\r\n throw new Error(\"Invalid payload for Invocation message.\");\r\n }\r\n\r\n const invocationId = properties[2] as string;\r\n if (invocationId) {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n invocationId,\r\n streamIds: [],\r\n target: properties[3] as string,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n streamIds: [],\r\n target: properties[3],\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n\r\n }\r\n\r\n private _createStreamItemMessage(headers: MessageHeaders, properties: any[]): StreamItemMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n\r\n return {\r\n headers,\r\n invocationId: properties[2],\r\n item: properties[3],\r\n type: MessageType.StreamItem,\r\n } as StreamItemMessage;\r\n }\r\n\r\n private _createCompletionMessage(headers: MessageHeaders, properties: any[]): CompletionMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n const resultKind = properties[3];\r\n\r\n if (resultKind !== this._voidResult && properties.length < 5) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n let error: string | undefined;\r\n let result: any;\r\n\r\n switch (resultKind) {\r\n case this._errorResult:\r\n error = properties[4];\r\n break;\r\n case this._nonVoidResult:\r\n result = properties[4];\r\n break;\r\n }\r\n\r\n const completionMessage: CompletionMessage = {\r\n error,\r\n headers,\r\n invocationId: properties[2],\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n\r\n return completionMessage;\r\n }\r\n\r\n private _writeInvocation(invocationMessage: InvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (invocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamInvocation(streamInvocationMessage: StreamInvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (streamInvocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamItem(streamItemMessage: StreamItemMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId,\r\n streamItemMessage.item]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCompletion(completionMessage: CompletionMessage): ArrayBuffer {\r\n const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult;\r\n\r\n let payload: any;\r\n switch (resultKind) {\r\n case this._errorResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]);\r\n break;\r\n case this._voidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]);\r\n break;\r\n case this._nonVoidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]);\r\n break;\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCancelInvocation(cancelInvocationMessage: CancelInvocationMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _readHeaders(properties: any): MessageHeaders {\r\n const headers: MessageHeaders = properties[1] as MessageHeaders;\r\n if (typeof headers !== \"object\") {\r\n throw new Error(\"Invalid headers.\");\r\n }\r\n return headers;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Copied from signalr/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR Message Pack protocol library. */\r\nexport const VERSION = \"0.0.0-DEV_BUILD\";\r\n\r\nexport { MessagePackHubProtocol } from \"./MessagePackHubProtocol\";\r\n\r\nexport { MessagePackOptions } from \"./MessagePackOptions\";\r\n"]}
\ No newline at end of file
+{"version":3,"sources":["webpack://signalR.protocols.msgpack/webpack/universalModuleDefinition","webpack://signalR.protocols.msgpack/external \"signalR\"","webpack://signalR.protocols.msgpack/webpack/bootstrap","webpack://signalR.protocols.msgpack/webpack/runtime/define property getters","webpack://signalR.protocols.msgpack/webpack/runtime/hasOwnProperty shorthand","webpack://signalR.protocols.msgpack/webpack/runtime/make namespace object","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Encoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","webpack://signalR.protocols.msgpack/node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","webpack://signalR.protocols.msgpack/src/BinaryMessageFormat.ts","webpack://signalR.protocols.msgpack/src/MessagePackHubProtocol.ts","webpack://signalR.protocols.msgpack/src/Utils.ts","webpack://signalR.protocols.msgpack/src/index.ts"],"names":["root","factory","self","__WEBPACK_EXTERNAL_MODULE__1__","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","UINT32_MAX","setInt64","view","offset","high","Math","floor","low","setUint32","getInt64","getInt32","getUint32","TEXT_ENCODING_AVAILABLE","process","env","TextEncoder","TextDecoder","utf8Count","str","strLength","length","byteLength","pos","charCodeAt","extra","sharedTextEncoder","TEXT_ENCODER_THRESHOLD","utf8EncodeTE","encodeInto","output","outputOffset","subarray","set","encode","utf8DecodeJs","bytes","inputOffset","end","units","result","byte1","push","byte2","byte3","unit","String","fromCharCode","apply","extendStatics","sharedTextDecoder","TEXT_DECODER_THRESHOLD","ExtData","type","data","this","__extends","b","setPrototypeOf","__proto__","Array","p","TypeError","__","constructor","create","DecodeError","_super","message","_this","proto","configurable","name","Error","timestampExtension","object","msec","sec","nsec","nsecInSec","Date","_a","rv","Uint8Array","DataView","buffer","secHigh","secLow","encodeTimeSpecToTimestamp","getTime","decode","timeSpec","byteOffset","nsec30AndSecHigh2","decodeTimestampToTimeSpec","ExtensionCodec","builtInEncoders","builtInDecoders","encoders","decoders","register","index","tryToEncode","context","i","encodeExt","decodeExt","defaultCodec","ensureUint8Array","ArrayBuffer","isView","from","Encoder","extensionCodec","maxDepth","initialBufferSize","sortKeys","forceFloat32","ignoreUndefined","forceIntegerToFloat","getUint8Array","reinitializeState","doEncode","depth","encodeNil","encodeBoolean","encodeNumber","encodeString","encodeObject","ensureBufferSizeToWrite","sizeToWrite","requiredSize","resizeBuffer","newSize","newBuffer","newBytes","newView","writeU8","Number","isSafeInteger","writeU16","writeU32","writeU64","writeI8","writeI16","writeI32","writeI64","writeF32","writeF64","writeStringHeader","utf8EncodeJs","ext","encodeExtension","isArray","encodeArray","encodeBinary","toString","encodeMap","size","writeU8a","_i","object_1","item","countWithoutUndefined","keys","count","keys_1","sort","keys_2","setUint8","values","setInt8","setUint16","setInt16","setInt32","setFloat32","setFloat64","setUint64","prettyByte","byte","abs","padStart","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","hit","miss","caches","canBeCached","find","FIND_CHUNK","records_1","record","recordBytes","j","store","records","random","cachedValue","slicedCopyOfBytes","slice","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","iterator","n","v","op","pop","__asyncValues","asyncIterator","m","__values","settle","__await","__asyncGenerator","q","a","resume","fulfill","shift","EMPTY_VIEW","EMPTY_BYTES","DataViewIndexOutOfBoundsError","getInt8","MORE_DATA","sharedCachedKeyDecoder","Decoder","maxStrLength","maxBinLength","maxArrayLength","maxMapLength","maxExtLength","keyDecoder","totalPos","headByte","stack","setBuffer","bufferView","createDataView","appendBuffer","hasRemaining","remainingData","newData","createExtraByteError","posToShow","RangeError","doDecodeSync","decodeMulti","decodeAsync","stream","stream_1","stream_1_1","e_1","decoded","e_1_1","_b","_c","error","decodeArrayStream","decodeMultiAsync","decodeStream","arguments","isArrayHeaderRequired","arrayItemsLeft","stream_2","stream_2_1","e_2","e_3_1","e_3","readArraySize","complete","DECODE","readHeadByte","pushMapState","pushArrayState","decodeUtf8String","readF32","readF64","readU8","readU16","readU32","readU64","readI8","readI16","readI32","readI64","lookU8","lookU16","lookU32","decodeBinary","decodeExtension","state","array","position","keyType","map","readCount","headerOffset","stateIsMapKey","stringBytes","utf8DecodeTD","headOffset","extType","getUint8","getUint16","getInt16","getFloat32","getFloat64","BinaryMessageFormat","[object Object]","lenBuffer","sizePart","input","uint8Array","numBitsToShift","byteRead","numBytes","min","SERIALIZED_PING_MESSAGE","external_signalR_","MessageType","Ping","MessagePackHubProtocol","messagePackOptions","version","transferFormat","TransferFormat","Binary","_errorResult","_voidResult","_nonVoidResult","_encoder","_decoder","logger","val","NullLogger","instance","messages","parse","hubMessages","parsedMessage","_parseMessage","Invocation","_writeInvocation","StreamInvocation","_writeStreamInvocation","StreamItem","_writeStreamItem","Completion","_writeCompletion","write","CancelInvocation","_writeCancelInvocation","properties","messageType","_createInvocationMessage","_readHeaders","_createStreamItemMessage","_createCompletionMessage","_createPingMessage","Close","_createCloseMessage","log","LogLevel","Information","allowReconnect","headers","invocationId","streamIds","target","resultKind","invocationMessage","payload","streamInvocationMessage","streamItemMessage","completionMessage","cancelInvocationMessage","VERSION","require","define","amd"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"signalR\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"signalR\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"msgpack\"] = factory(require(\"signalR\"));\n\telse\n\t\troot[\"signalR\"] = root[\"signalR\"] || {}, root[\"signalR\"][\"protocols\"] = root[\"signalR\"][\"protocols\"] || {}, root[\"signalR\"][\"protocols\"][\"msgpack\"] = factory(root[\"signalR\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","import { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || process.env[\"TEXT_ENCODING\"] !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_ENCODING\"] !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && process.env[\"TEXT_DECODER\"] !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \" + data.length);\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8EncodeJs, utf8Count, TEXT_ENCODER_THRESHOLD, utf8EncodeTE } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport var DEFAULT_MAX_DEPTH = 100;\nexport var DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nvar Encoder = /** @class */ (function () {\n function Encoder(extensionCodec, context, maxDepth, initialBufferSize, sortKeys, forceFloat32, ignoreUndefined, forceIntegerToFloat) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxDepth === void 0) { maxDepth = DEFAULT_MAX_DEPTH; }\n if (initialBufferSize === void 0) { initialBufferSize = DEFAULT_INITIAL_BUFFER_SIZE; }\n if (sortKeys === void 0) { sortKeys = false; }\n if (forceFloat32 === void 0) { forceFloat32 = false; }\n if (ignoreUndefined === void 0) { ignoreUndefined = false; }\n if (forceIntegerToFloat === void 0) { forceIntegerToFloat = false; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxDepth = maxDepth;\n this.initialBufferSize = initialBufferSize;\n this.sortKeys = sortKeys;\n this.forceFloat32 = forceFloat32;\n this.ignoreUndefined = ignoreUndefined;\n this.forceIntegerToFloat = forceIntegerToFloat;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n Encoder.prototype.getUint8Array = function () {\n return this.bytes.subarray(0, this.pos);\n };\n Encoder.prototype.reinitializeState = function () {\n this.pos = 0;\n };\n Encoder.prototype.encode = function (object) {\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.getUint8Array();\n };\n Encoder.prototype.doEncode = function (object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(\"Too deep objects in depth \" + depth);\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n this.encodeNumber(object);\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n };\n Encoder.prototype.ensureBufferSizeToWrite = function (sizeToWrite) {\n var requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n };\n Encoder.prototype.resizeBuffer = function (newSize) {\n var newBuffer = new ArrayBuffer(newSize);\n var newBytes = new Uint8Array(newBuffer);\n var newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n };\n Encoder.prototype.encodeNil = function () {\n this.writeU8(0xc0);\n };\n Encoder.prototype.encodeBoolean = function (object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n };\n Encoder.prototype.encodeNumber = function (object) {\n if (Number.isSafeInteger(object) && !this.forceIntegerToFloat) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n }\n }\n else {\n // non-integer numbers\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n };\n Encoder.prototype.writeStringHeader = function (byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(\"Too long string: \" + byteLength + \" bytes in UTF-8\");\n }\n };\n Encoder.prototype.encodeString = function (object) {\n var maxHeaderSize = 1 + 4;\n var strLength = object.length;\n if (strLength > TEXT_ENCODER_THRESHOLD) {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeTE(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n else {\n var byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8EncodeJs(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n };\n Encoder.prototype.encodeObject = function (object, depth) {\n // try to encode objects with custom codec first of non-primitives\n var ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(\"Unrecognized object: \" + Object.prototype.toString.apply(object));\n }\n };\n Encoder.prototype.encodeBinary = function (object) {\n var size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large binary: \" + size);\n }\n var bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n };\n Encoder.prototype.encodeArray = function (object, depth) {\n var size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large array: \" + size);\n }\n for (var _i = 0, object_1 = object; _i < object_1.length; _i++) {\n var item = object_1[_i];\n this.doEncode(item, depth + 1);\n }\n };\n Encoder.prototype.countWithoutUndefined = function (object, keys) {\n var count = 0;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n };\n Encoder.prototype.encodeMap = function (object, depth) {\n var keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n var size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large map object: \" + size);\n }\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n };\n Encoder.prototype.encodeExtension = function (ext) {\n var size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(\"Too large extension object: \" + size);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n };\n Encoder.prototype.writeU8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU8a = function (values) {\n var size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n };\n Encoder.prototype.writeI8 = function (value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n };\n Encoder.prototype.writeU16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeI16 = function (value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n };\n Encoder.prototype.writeU32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeI32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF32 = function (value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n };\n Encoder.prototype.writeF64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeU64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n };\n Encoder.prototype.writeI64 = function (value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n };\n return Encoder;\n}());\nexport { Encoder };\n//# sourceMappingURL=Encoder.mjs.map","export function prettyByte(byte) {\n return (byte < 0 ? \"-\" : \"\") + \"0x\" + Math.abs(byte).toString(16).padStart(2, \"0\");\n}\n//# sourceMappingURL=prettyByte.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \" + (view.byteLength - pos) + \" of \" + view.byteLength + \" byte(s) found at buffer[\" + posToShow + \"]\");\n };\n /**\n * @throws {DecodeError}\n * @throws {RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \" + prettyByte(headByte) + \" at \" + totalPos + \" (\" + pos + \" in the current buffer)\");\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \" + prettyByte(headByte));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \" + prettyByte(headByte));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\" + size + \") > maxMapLengthLength (\" + this.maxMapLength + \")\");\n }\n this.stack.push({\n type: 1 /* MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\" + size + \") > maxArrayLength (\" + this.maxArrayLength + \")\");\n }\n this.stack.push({\n type: 0 /* ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\" + byteLength + \") > maxStrLength (\" + this.maxStrLength + \")\");\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\" + byteLength + \") > maxBinLength (\" + this.maxBinLength + \")\");\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\" + size + \") > maxExtLength (\" + this.maxExtLength + \")\");\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class BinaryMessageFormat {\r\n\r\n // The length prefix of binary messages is encoded as VarInt. Read the comment in\r\n // the BinaryMessageParser.TryParseMessage for details.\r\n\r\n public static write(output: Uint8Array): ArrayBuffer {\r\n let size = output.byteLength || output.length;\r\n const lenBuffer = [];\r\n do {\r\n let sizePart = size & 0x7f;\r\n size = size >> 7;\r\n if (size > 0) {\r\n sizePart |= 0x80;\r\n }\r\n lenBuffer.push(sizePart);\r\n }\r\n while (size > 0);\r\n\r\n size = output.byteLength || output.length;\r\n\r\n const buffer = new Uint8Array(lenBuffer.length + size);\r\n buffer.set(lenBuffer, 0);\r\n buffer.set(output, lenBuffer.length);\r\n return buffer.buffer;\r\n }\r\n\r\n public static parse(input: ArrayBuffer): Uint8Array[] {\r\n const result: Uint8Array[] = [];\r\n const uint8Array = new Uint8Array(input);\r\n const maxLengthPrefixSize = 5;\r\n const numBitsToShift = [0, 7, 14, 21, 28 ];\r\n\r\n for (let offset = 0; offset < input.byteLength;) {\r\n let numBytes = 0;\r\n let size = 0;\r\n let byteRead;\r\n do {\r\n byteRead = uint8Array[offset + numBytes];\r\n size = size | ((byteRead & 0x7f) << (numBitsToShift[numBytes]));\r\n numBytes++;\r\n }\r\n while (numBytes < Math.min(maxLengthPrefixSize, input.byteLength - offset) && (byteRead & 0x80) !== 0);\r\n\r\n if ((byteRead & 0x80) !== 0 && numBytes < maxLengthPrefixSize) {\r\n throw new Error(\"Cannot read message size.\");\r\n }\r\n\r\n if (numBytes === maxLengthPrefixSize && byteRead > 7) {\r\n throw new Error(\"Messages bigger than 2GB are not supported.\");\r\n }\r\n\r\n if (uint8Array.byteLength >= (offset + numBytes + size)) {\r\n // IE does not support .slice() so use subarray\r\n result.push(uint8Array.slice\r\n ? uint8Array.slice(offset + numBytes, offset + numBytes + size)\r\n : uint8Array.subarray(offset + numBytes, offset + numBytes + size));\r\n } else {\r\n throw new Error(\"Incomplete message.\");\r\n }\r\n\r\n offset = offset + numBytes + size;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { Encoder, Decoder } from \"@msgpack/msgpack\";\r\n\r\nimport { MessagePackOptions } from \"./MessagePackOptions\";\r\n\r\nimport {\r\n CancelInvocationMessage, CompletionMessage, HubMessage, IHubProtocol, ILogger, InvocationMessage,\r\n LogLevel, MessageHeaders, MessageType, NullLogger, StreamInvocationMessage, StreamItemMessage, TransferFormat,\r\n} from \"@microsoft/signalr\";\r\n\r\nimport { BinaryMessageFormat } from \"./BinaryMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n// TypeDoc's @inheritDoc and @link don't work across modules :(\r\n\r\n// constant encoding of the ping message\r\n// see: https://github.com/aspnet/SignalR/blob/dev/specs/HubProtocol.md#ping-message-encoding-1\r\n// Don't use Uint8Array.from as IE does not support it\r\nconst SERIALIZED_PING_MESSAGE: Uint8Array = new Uint8Array([0x91, MessageType.Ping]);\r\n\r\n/** Implements the MessagePack Hub Protocol */\r\nexport class MessagePackHubProtocol implements IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n public readonly name: string = \"messagepack\";\r\n /** The version of the protocol. */\r\n public readonly version: number = 1;\r\n /** The TransferFormat of the protocol. */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Binary;\r\n\r\n private readonly _errorResult = 1;\r\n private readonly _voidResult = 2;\r\n private readonly _nonVoidResult = 3;\r\n\r\n private readonly _encoder: Encoder;\r\n private readonly _decoder: Decoder;\r\n\r\n /**\r\n *\r\n * @param messagePackOptions MessagePack options passed to @msgpack/msgpack\r\n */\r\n constructor(messagePackOptions?: MessagePackOptions) {\r\n messagePackOptions = messagePackOptions || {};\r\n this._encoder = new Encoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxDepth,\r\n messagePackOptions.initialBufferSize,\r\n messagePackOptions.sortKeys,\r\n messagePackOptions.forceFloat32,\r\n messagePackOptions.ignoreUndefined,\r\n messagePackOptions.forceIntegerToFloat,\r\n );\r\n\r\n this._decoder = new Decoder(\r\n messagePackOptions.extensionCodec,\r\n messagePackOptions.context,\r\n messagePackOptions.maxStrLength,\r\n messagePackOptions.maxBinLength,\r\n messagePackOptions.maxArrayLength,\r\n messagePackOptions.maxMapLength,\r\n messagePackOptions.maxExtLength,\r\n );\r\n }\r\n\r\n /** Creates an array of HubMessage objects from the specified serialized representation.\r\n *\r\n * @param {ArrayBuffer} input An ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: ArrayBuffer, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"string\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (!(isArrayBuffer(input))) {\r\n throw new Error(\"Invalid input for MessagePack hub protocol. Expected an ArrayBuffer.\");\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n const messages = BinaryMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = this._parseMessage(message, logger);\r\n // Can be null for an unknown message. Unknown message is logged in parseMessage\r\n if (parsedMessage) {\r\n hubMessages.push(parsedMessage);\r\n }\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified HubMessage to an ArrayBuffer and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {ArrayBuffer} An ArrayBuffer containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): ArrayBuffer {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n return this._writeInvocation(message as InvocationMessage);\r\n case MessageType.StreamInvocation:\r\n return this._writeStreamInvocation(message as StreamInvocationMessage);\r\n case MessageType.StreamItem:\r\n return this._writeStreamItem(message as StreamItemMessage);\r\n case MessageType.Completion:\r\n return this._writeCompletion(message as CompletionMessage);\r\n case MessageType.Ping:\r\n return BinaryMessageFormat.write(SERIALIZED_PING_MESSAGE);\r\n case MessageType.CancelInvocation:\r\n return this._writeCancelInvocation(message as CancelInvocationMessage);\r\n default:\r\n throw new Error(\"Invalid message type.\");\r\n }\r\n }\r\n\r\n private _parseMessage(input: Uint8Array, logger: ILogger): HubMessage | null {\r\n if (input.length === 0) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const properties = this._decoder.decode(input) as any;\r\n if (properties.length === 0 || !(properties instanceof Array)) {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n\r\n const messageType = properties[0] as MessageType;\r\n\r\n switch (messageType) {\r\n case MessageType.Invocation:\r\n return this._createInvocationMessage(this._readHeaders(properties), properties);\r\n case MessageType.StreamItem:\r\n return this._createStreamItemMessage(this._readHeaders(properties), properties);\r\n case MessageType.Completion:\r\n return this._createCompletionMessage(this._readHeaders(properties), properties);\r\n case MessageType.Ping:\r\n return this._createPingMessage(properties);\r\n case MessageType.Close:\r\n return this._createCloseMessage(properties);\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + messageType + \"' ignored.\");\r\n return null;\r\n }\r\n }\r\n\r\n private _createCloseMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 2) {\r\n throw new Error(\"Invalid payload for Close message.\");\r\n }\r\n\r\n return {\r\n // Close messages have no headers.\r\n allowReconnect: properties.length >= 3 ? properties[2] : undefined,\r\n error: properties[1],\r\n type: MessageType.Close,\r\n } as HubMessage;\r\n }\r\n\r\n private _createPingMessage(properties: any[]): HubMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 1) {\r\n throw new Error(\"Invalid payload for Ping message.\");\r\n }\r\n\r\n return {\r\n // Ping messages have no headers.\r\n type: MessageType.Ping,\r\n } as HubMessage;\r\n }\r\n\r\n private _createInvocationMessage(headers: MessageHeaders, properties: any[]): InvocationMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 5) {\r\n throw new Error(\"Invalid payload for Invocation message.\");\r\n }\r\n\r\n const invocationId = properties[2] as string;\r\n if (invocationId) {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n invocationId,\r\n streamIds: [],\r\n target: properties[3] as string,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: properties[4],\r\n headers,\r\n streamIds: [],\r\n target: properties[3],\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n\r\n }\r\n\r\n private _createStreamItemMessage(headers: MessageHeaders, properties: any[]): StreamItemMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n\r\n return {\r\n headers,\r\n invocationId: properties[2],\r\n item: properties[3],\r\n type: MessageType.StreamItem,\r\n } as StreamItemMessage;\r\n }\r\n\r\n private _createCompletionMessage(headers: MessageHeaders, properties: any[]): CompletionMessage {\r\n // check minimum length to allow protocol to add items to the end of objects in future releases\r\n if (properties.length < 4) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n const resultKind = properties[3];\r\n\r\n if (resultKind !== this._voidResult && properties.length < 5) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n let error: string | undefined;\r\n let result: any;\r\n\r\n switch (resultKind) {\r\n case this._errorResult:\r\n error = properties[4];\r\n break;\r\n case this._nonVoidResult:\r\n result = properties[4];\r\n break;\r\n }\r\n\r\n const completionMessage: CompletionMessage = {\r\n error,\r\n headers,\r\n invocationId: properties[2],\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n\r\n return completionMessage;\r\n }\r\n\r\n private _writeInvocation(invocationMessage: InvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (invocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments, invocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.Invocation, invocationMessage.headers || {}, invocationMessage.invocationId || null,\r\n invocationMessage.target, invocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamInvocation(streamInvocationMessage: StreamInvocationMessage): ArrayBuffer {\r\n let payload: any;\r\n if (streamInvocationMessage.streamIds) {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments, streamInvocationMessage.streamIds]);\r\n } else {\r\n payload = this._encoder.encode([MessageType.StreamInvocation, streamInvocationMessage.headers || {}, streamInvocationMessage.invocationId,\r\n streamInvocationMessage.target, streamInvocationMessage.arguments]);\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeStreamItem(streamItemMessage: StreamItemMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.StreamItem, streamItemMessage.headers || {}, streamItemMessage.invocationId,\r\n streamItemMessage.item]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCompletion(completionMessage: CompletionMessage): ArrayBuffer {\r\n const resultKind = completionMessage.error ? this._errorResult : completionMessage.result ? this._nonVoidResult : this._voidResult;\r\n\r\n let payload: any;\r\n switch (resultKind) {\r\n case this._errorResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.error]);\r\n break;\r\n case this._voidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind]);\r\n break;\r\n case this._nonVoidResult:\r\n payload = this._encoder.encode([MessageType.Completion, completionMessage.headers || {}, completionMessage.invocationId, resultKind, completionMessage.result]);\r\n break;\r\n }\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _writeCancelInvocation(cancelInvocationMessage: CancelInvocationMessage): ArrayBuffer {\r\n const payload = this._encoder.encode([MessageType.CancelInvocation, cancelInvocationMessage.headers || {}, cancelInvocationMessage.invocationId]);\r\n\r\n return BinaryMessageFormat.write(payload.slice());\r\n }\r\n\r\n private _readHeaders(properties: any): MessageHeaders {\r\n const headers: MessageHeaders = properties[1] as MessageHeaders;\r\n if (typeof headers !== \"object\") {\r\n throw new Error(\"Invalid headers.\");\r\n }\r\n return headers;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Copied from signalr/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR Message Pack protocol library. */\r\nexport const VERSION = \"0.0.0-DEV_BUILD\";\r\n\r\nexport { MessagePackHubProtocol } from \"./MessagePackHubProtocol\";\r\n\r\nexport { MessagePackOptions } from \"./MessagePackOptions\";\r\n"]}
\ No newline at end of file
diff --git a/Server/wwwroot/lib/msgpack5/msgpack5.js b/Server/wwwroot/lib/msgpack5/msgpack5.js
index 371e1ab4..ad0547c7 100644
--- a/Server/wwwroot/lib/msgpack5/msgpack5.js
+++ b/Server/wwwroot/lib/msgpack5/msgpack5.js
@@ -91,7 +91,7 @@ function msgpack (options) {
module.exports = msgpack
-},{"./lib/codecs/DateCodec":2,"./lib/decoder":3,"./lib/encoder":4,"./lib/helpers.js":5,"./lib/streams":6,"assert":8,"bl":15,"safe-buffer":53}],2:[function(require,module,exports){
+},{"./lib/codecs/DateCodec":2,"./lib/decoder":3,"./lib/encoder":4,"./lib/helpers.js":5,"./lib/streams":6,"assert":7,"bl":14,"safe-buffer":51}],2:[function(require,module,exports){
(function (Buffer){(function (){
const type = -1
@@ -226,7 +226,7 @@ function decode (buf) {
module.exports = { check, type, encode, decode }
}).call(this)}).call(this,require("buffer").Buffer)
-},{"buffer":17}],3:[function(require,module,exports){
+},{"buffer":16}],3:[function(require,module,exports){
'use strict'
const bl = require('bl')
@@ -267,238 +267,236 @@ function isValidDataSize (dataLength, bufLength, headerLength) {
}
module.exports = function buildDecode (decodingTypes, options) {
+ const context = { decodingTypes, options, decode }
return decode
function decode (buf) {
- // TODO: Make it into ensureBl handler ?
- if (!(buf instanceof bl)) {
- buf = bl().append(buf)
+ if (!bl.isBufferList(buf)) {
+ buf = bl(buf)
}
- const result = tryDecode(buf, 0)
+ const result = tryDecode(buf, 0, context)
// Handle worst case ASAP and keep code flat
if (!result) throw new IncompleteBufferError()
buf.consume(result[1])
return result[0]
}
+}
- function tryDecode (buf, initialOffset) {
- if (buf.length <= initialOffset) return null
+function decodeArray (buf, initialOffset, length, headerLength, context) {
+ let offset = initialOffset
+ const result = []
+ let i = 0
- const bufLength = buf.length - initialOffset
- let offset = initialOffset
+ while (i++ < length) {
+ const decodeResult = tryDecode(buf, offset, context)
+ if (!decodeResult) return null
- const first = buf.readUInt8(offset)
- offset += 1
+ result.push(decodeResult[0])
+ offset += decodeResult[1]
+ }
+ return [result, headerLength + offset - initialOffset]
+}
- const size = SIZES[first] || -1
- if (bufLength < size) return null
+function decodeMap (buf, offset, length, headerLength, context) {
+ const _temp = decodeArray(buf, offset, 2 * length, headerLength, context)
+ if (!_temp) return null
+ const [result, consumedBytes] = _temp
- const inRange = (start, end) => first >= start && first <= end
+ let isPlainObject = !context.options.preferMap
- if (first < 0x80) return [first, 1] // 7-bits positive ints
- if ((first & 0xf0) === 0x80) {
- const length = first & 0x0f
- const headerSize = offset - initialOffset
- // we have a map with less than 15 elements
- return decodeMap(buf, offset, length, headerSize, options)
- }
- if ((first & 0xf0) === 0x90) {
- const length = first & 0x0f
- const headerSize = offset - initialOffset
- // we have an array with less than 15 elements
- return decodeArray(buf, offset, length, headerSize)
- }
-
- if ((first & 0xe0) === 0xa0) {
- // fixstr up to 31 bytes
- const length = first & 0x1f
- if (!isValidDataSize(length, bufLength, 1)) return null
- const result = buf.toString('utf8', offset, offset + length)
- return [result, length + 1]
- }
- if (inRange(0xc0, 0xc3)) return decodeConstants(first)
- if (inRange(0xc4, 0xc6)) {
- const length = buf.readUIntBE(offset, size - 1)
- offset += size - 1
-
- if (!isValidDataSize(length, bufLength, size)) return null
- const result = buf.slice(offset, offset + length)
- return [result, size + length]
- }
- if (inRange(0xc7, 0xc9)) {
- const length = buf.readUIntBE(offset, size - 2)
- offset += size - 2
-
- const type = buf.readInt8(offset)
- offset += 1
-
- if (!isValidDataSize(length, bufLength, size)) return null
- return decodeExt(buf, offset, type, length, size)
- }
- if (inRange(0xca, 0xcb)) return decodeFloat(buf, offset, size - 1)
- if (inRange(0xcc, 0xcf)) return decodeUnsignedInt(buf, offset, size - 1)
- if (inRange(0xd0, 0xd3)) return decodeSigned(buf, offset, size - 1)
- if (inRange(0xd4, 0xd8)) {
- const type = buf.readInt8(offset) // Signed
- offset += 1
- return decodeExt(buf, offset, type, size - 2, 2)
- }
-
- if (inRange(0xd9, 0xdb)) {
- const length = buf.readUIntBE(offset, size - 1)
- offset += size - 1
-
- if (!isValidDataSize(length, bufLength, size)) return null
- const result = buf.toString('utf8', offset, offset + length)
- return [result, size + length]
- }
- if (inRange(0xdc, 0xdd)) {
- const length = buf.readUIntBE(offset, size - 1)
- offset += size - 1
- return decodeArray(buf, offset, length, size)
- }
- if (inRange(0xde, 0xdf)) {
- let length
- switch (first) {
- case 0xde:
- // maps up to 2^16 elements - 2 bytes
- length = buf.readUInt16BE(offset)
- offset += 2
- // console.log(offset - initialOffset)
- return decodeMap(buf, offset, length, 3, options)
-
- case 0xdf:
- length = buf.readUInt32BE(offset)
- offset += 4
- return decodeMap(buf, offset, length, 5, options)
+ if (isPlainObject) {
+ for (let i = 0; i < 2 * length; i += 2) {
+ if (typeof result[i] !== 'string') {
+ isPlainObject = false
+ break
}
}
- if (first >= 0xe0) return [first - 0x100, 1] // 5 bits negative ints
-
- throw new Error('not implemented yet')
}
- function decodeArray (buf, initialOffset, length, headerLength) {
- let offset = initialOffset
- const result = []
- let i = 0
+ if (isPlainObject) {
+ const object = {}
+ for (let i = 0; i < 2 * length; i += 2) {
+ const key = result[i]
+ const val = result[i + 1]
- while (i++ < length) {
- const decodeResult = tryDecode(buf, offset)
- if (!decodeResult) return null
-
- result.push(decodeResult[0])
- offset += decodeResult[1]
- }
- return [result, headerLength + offset - initialOffset]
- }
-
- function decodeMap (buf, offset, length, headerLength, options) {
- const _temp = decodeArray(buf, offset, 2 * length, headerLength)
- if (!_temp) return null
- const [result, consumedBytes] = _temp
-
- let isPlainObject = !options.preferMap
-
- if (isPlainObject) {
- for (let i = 0; i < 2 * length; i += 2) {
- if (typeof result[i] !== 'string') {
- isPlainObject = false
- break
- }
- }
- }
-
- if (isPlainObject) {
- const object = {}
- for (let i = 0; i < 2 * length; i += 2) {
- const key = result[i]
- const val = result[i + 1]
-
- if (key === '__proto__') {
- if (options.protoAction === 'error') {
- throw new SyntaxError('Object contains forbidden prototype property')
- }
-
- if (options.protoAction === 'remove') {
- continue
- }
+ if (key === '__proto__') {
+ if (context.options.protoAction === 'error') {
+ throw new SyntaxError('Object contains forbidden prototype property')
}
- object[key] = val
+ if (context.options.protoAction === 'remove') {
+ continue
+ }
}
- return [object, consumedBytes]
- } else {
- const mapping = new Map()
- for (let i = 0; i < 2 * length; i += 2) {
- const key = result[i]
- const val = result[i + 1]
- mapping.set(key, val)
- }
- return [mapping, consumedBytes]
+
+ object[key] = val
}
- }
-
- function readInt64BE (buf, offset) {
- var negate = (buf[offset] & 0x80) == 0x80; // eslint-disable-line
-
- if (negate) {
- let carry = 1
- for (let i = offset + 7; i >= offset; i--) {
- const v = (buf[i] ^ 0xff) + carry
- buf[i] = v & 0xff
- carry = v >> 8
- }
+ return [object, consumedBytes]
+ } else {
+ const mapping = new Map()
+ for (let i = 0; i < 2 * length; i += 2) {
+ const key = result[i]
+ const val = result[i + 1]
+ mapping.set(key, val)
}
-
- const hi = buf.readUInt32BE(offset + 0)
- const lo = buf.readUInt32BE(offset + 4)
- return (hi * 4294967296 + lo) * (negate ? -1 : +1)
- }
-
- function decodeUnsignedInt (buf, offset, size) {
- const maxOffset = offset + size
- let result = 0
- while (offset < maxOffset) { result += buf.readUInt8(offset++) * Math.pow(256, maxOffset - offset) }
- return [result, size + 1]
- }
-
- function decodeConstants (first) {
- if (first === 0xc0) return [null, 1]
- if (first === 0xc2) return [false, 1]
- if (first === 0xc3) return [true, 1]
- }
-
- function decodeSigned (buf, offset, size) {
- let result
- if (size === 1) result = buf.readInt8(offset)
- if (size === 2) result = buf.readInt16BE(offset)
- if (size === 4) result = buf.readInt32BE(offset)
- if (size === 8) result = readInt64BE(buf.slice(offset, offset + 8), 0)
- return [result, size + 1]
- }
-
- function decodeFloat (buf, offset, size) {
- let result
- if (size === 4) result = buf.readFloatBE(offset)
- if (size === 8) result = buf.readDoubleBE(offset)
- return [result, size + 1]
- }
-
- function decodeExt (buf, offset, type, size, headerSize) {
- const toDecode = buf.slice(offset, offset + size)
-
- const decode = decodingTypes.get(type)
- if (!decode) throw new Error('unable to find ext type ' + type)
-
- const value = decode(toDecode)
- return [value, headerSize + size]
+ return [mapping, consumedBytes]
}
}
-},{"./helpers.js":5,"bl":15}],4:[function(require,module,exports){
+function tryDecode (buf, initialOffset, context) {
+ if (buf.length <= initialOffset) return null
+
+ const bufLength = buf.length - initialOffset
+ let offset = initialOffset
+
+ const first = buf.readUInt8(offset)
+ offset += 1
+
+ const size = SIZES[first] || -1
+ if (bufLength < size) return null
+
+ if (first < 0x80) return [first, 1] // 7-bits positive ints
+ if ((first & 0xf0) === 0x80) {
+ const length = first & 0x0f
+ const headerSize = offset - initialOffset
+ // we have a map with less than 15 elements
+ return decodeMap(buf, offset, length, headerSize, context)
+ }
+ if ((first & 0xf0) === 0x90) {
+ const length = first & 0x0f
+ const headerSize = offset - initialOffset
+ // we have an array with less than 15 elements
+ return decodeArray(buf, offset, length, headerSize, context)
+ }
+
+ if ((first & 0xe0) === 0xa0) {
+ // fixstr up to 31 bytes
+ const length = first & 0x1f
+ if (!isValidDataSize(length, bufLength, 1)) return null
+ const result = buf.toString('utf8', offset, offset + length)
+ return [result, length + 1]
+ }
+ if (first >= 0xc0 && first <= 0xc3) return decodeConstants(first)
+ if (first >= 0xc4 && first <= 0xc6) {
+ const length = buf.readUIntBE(offset, size - 1)
+ offset += size - 1
+
+ if (!isValidDataSize(length, bufLength, size)) return null
+ const result = buf.slice(offset, offset + length)
+ return [result, size + length]
+ }
+ if (first >= 0xc7 && first <= 0xc9) {
+ const length = buf.readUIntBE(offset, size - 2)
+ offset += size - 2
+
+ const type = buf.readInt8(offset)
+ offset += 1
+
+ if (!isValidDataSize(length, bufLength, size)) return null
+ return decodeExt(buf, offset, type, length, size, context)
+ }
+ if (first >= 0xca && first <= 0xcb) return decodeFloat(buf, offset, size - 1)
+ if (first >= 0xcc && first <= 0xcf) return decodeUnsignedInt(buf, offset, size - 1)
+ if (first >= 0xd0 && first <= 0xd3) return decodeSigned(buf, offset, size - 1)
+ if (first >= 0xd4 && first <= 0xd8) {
+ const type = buf.readInt8(offset) // Signed
+ offset += 1
+ return decodeExt(buf, offset, type, size - 2, 2, context)
+ }
+
+ if (first >= 0xd9 && first <= 0xdb) {
+ const length = buf.readUIntBE(offset, size - 1)
+ offset += size - 1
+
+ if (!isValidDataSize(length, bufLength, size)) return null
+ const result = buf.toString('utf8', offset, offset + length)
+ return [result, size + length]
+ }
+ if (first >= 0xdc && first <= 0xdd) {
+ const length = buf.readUIntBE(offset, size - 1)
+ offset += size - 1
+ return decodeArray(buf, offset, length, size, context)
+ }
+ if (first >= 0xde && first <= 0xdf) {
+ let length
+ switch (first) {
+ case 0xde:
+ // maps up to 2^16 elements - 2 bytes
+ length = buf.readUInt16BE(offset)
+ offset += 2
+ // console.log(offset - initialOffset)
+ return decodeMap(buf, offset, length, 3, context)
+
+ case 0xdf:
+ length = buf.readUInt32BE(offset)
+ offset += 4
+ return decodeMap(buf, offset, length, 5, context)
+ }
+ }
+ if (first >= 0xe0) return [first - 0x100, 1] // 5 bits negative ints
+
+ throw new Error('not implemented yet')
+}
+
+function decodeSigned (buf, offset, size) {
+ let result
+ if (size === 1) result = buf.readInt8(offset)
+ if (size === 2) result = buf.readInt16BE(offset)
+ if (size === 4) result = buf.readInt32BE(offset)
+ if (size === 8) result = readInt64BE(buf.slice(offset, offset + 8), 0)
+ return [result, size + 1]
+}
+
+function decodeExt (buf, offset, type, size, headerSize, context) {
+ const toDecode = buf.slice(offset, offset + size)
+
+ const decode = context.decodingTypes.get(type)
+ if (!decode) throw new Error('unable to find ext type ' + type)
+
+ const value = decode(toDecode)
+ return [value, headerSize + size]
+}
+
+function decodeUnsignedInt (buf, offset, size) {
+ const maxOffset = offset + size
+ let result = 0
+ while (offset < maxOffset) { result += buf.readUInt8(offset++) * Math.pow(256, maxOffset - offset) }
+ return [result, size + 1]
+}
+
+function decodeConstants (first) {
+ if (first === 0xc0) return [null, 1]
+ if (first === 0xc2) return [false, 1]
+ if (first === 0xc3) return [true, 1]
+}
+
+function decodeFloat (buf, offset, size) {
+ let result
+ if (size === 4) result = buf.readFloatBE(offset)
+ if (size === 8) result = buf.readDoubleBE(offset)
+ return [result, size + 1]
+}
+
+function readInt64BE (buf, offset) {
+ var negate = (buf[offset] & 0x80) == 0x80; // eslint-disable-line
+
+ if (negate) {
+ let carry = 1
+ for (let i = offset + 7; i >= offset; i--) {
+ const v = (buf[i] ^ 0xff) + carry
+ buf[i] = v & 0xff
+ carry = v >> 8
+ }
+ }
+
+ const hi = buf.readUInt32BE(offset + 0)
+ const lo = buf.readUInt32BE(offset + 4)
+ return (hi * 4294967296 + lo) * (negate ? -1 : +1)
+}
+
+},{"./helpers.js":5,"bl":14}],4:[function(require,module,exports){
'use strict'
const Buffer = require('safe-buffer').Buffer
@@ -777,7 +775,7 @@ function encodeNumber (obj, options) {
// return n
// }
-},{"./helpers.js":5,"bl":15,"safe-buffer":53}],5:[function(require,module,exports){
+},{"./helpers.js":5,"bl":14,"safe-buffer":51}],5:[function(require,module,exports){
'use strict'
const util = require('util')
@@ -799,7 +797,7 @@ exports.isFloat = function isFloat (n) {
return n % 1 !== 0
}
-},{"util":57}],6:[function(require,module,exports){
+},{"util":56}],6:[function(require,module,exports){
'use strict'
const Transform = require('readable-stream').Transform
@@ -891,34 +889,7 @@ Decoder.prototype._transform = function (buf, enc, done) {
module.exports.decoder = Decoder
module.exports.encoder = Encoder
-},{"bl":15,"inherits":30,"readable-stream":52}],7:[function(require,module,exports){
-
-/**
- * Array#filter.
- *
- * @param {Array} arr
- * @param {Function} fn
- * @param {Object=} self
- * @return {Array}
- * @throw TypeError
- */
-
-module.exports = function (arr, fn, self) {
- if (arr.filter) return arr.filter(fn, self);
- if (void 0 === arr || null === arr) throw new TypeError;
- if ('function' != typeof fn) throw new TypeError;
- var ret = [];
- for (var i = 0; i < arr.length; i++) {
- if (!hasOwn.call(arr, i)) continue;
- var val = arr[i];
- if (fn.call(self, val, i, arr)) ret.push(val);
- }
- return ret;
-};
-
-var hasOwn = Object.prototype.hasOwnProperty;
-
-},{}],8:[function(require,module,exports){
+},{"bl":14,"inherits":30,"readable-stream":50}],7:[function(require,module,exports){
(function (global){(function (){
'use strict';
@@ -1428,7 +1399,7 @@ var objectKeys = Object.keys || function (obj) {
};
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"object-assign":34,"util/":11}],9:[function(require,module,exports){
+},{"object-assign":34,"util/":10}],8:[function(require,module,exports){
if (typeof Object.create === 'function') {
// implementation from standard node.js 'util' module
module.exports = function inherits(ctor, superCtor) {
@@ -1453,14 +1424,14 @@ if (typeof Object.create === 'function') {
}
}
-},{}],10:[function(require,module,exports){
+},{}],9:[function(require,module,exports){
module.exports = function isBuffer(arg) {
return arg && typeof arg === 'object'
&& typeof arg.copy === 'function'
&& typeof arg.fill === 'function'
&& typeof arg.readUInt8 === 'function';
}
-},{}],11:[function(require,module,exports){
+},{}],10:[function(require,module,exports){
(function (process,global){(function (){
// Copyright Joyent, Inc. and other Node contributors.
//
@@ -2050,32 +2021,38 @@ function hasOwnProperty(obj, prop) {
}
}).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":10,"_process":35,"inherits":9}],12:[function(require,module,exports){
+},{"./support/isBuffer":9,"_process":35,"inherits":8}],11:[function(require,module,exports){
(function (global){(function (){
'use strict';
-var filter = require('array-filter');
+var possibleNames = [
+ 'BigInt64Array',
+ 'BigUint64Array',
+ 'Float32Array',
+ 'Float64Array',
+ 'Int16Array',
+ 'Int32Array',
+ 'Int8Array',
+ 'Uint16Array',
+ 'Uint32Array',
+ 'Uint8Array',
+ 'Uint8ClampedArray'
+];
+
+var g = typeof globalThis === 'undefined' ? global : globalThis;
module.exports = function availableTypedArrays() {
- return filter([
- 'BigInt64Array',
- 'BigUint64Array',
- 'Float32Array',
- 'Float64Array',
- 'Int16Array',
- 'Int32Array',
- 'Int8Array',
- 'Uint16Array',
- 'Uint32Array',
- 'Uint8Array',
- 'Uint8ClampedArray'
- ], function (typedArray) {
- return typeof global[typedArray] === 'function';
- });
+ var out = [];
+ for (var i = 0; i < possibleNames.length; i++) {
+ if (typeof g[possibleNames[i]] === 'function') {
+ out[out.length] = possibleNames[i];
+ }
+ }
+ return out;
};
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"array-filter":7}],13:[function(require,module,exports){
+},{}],12:[function(require,module,exports){
'use strict'
exports.byteLength = byteLength
@@ -2227,7 +2204,7 @@ function fromByteArray (uint8) {
return parts.join('')
}
-},{}],14:[function(require,module,exports){
+},{}],13:[function(require,module,exports){
'use strict'
const { Buffer } = require('buffer')
@@ -2625,7 +2602,7 @@ BufferList.isBufferList = function isBufferList (b) {
module.exports = BufferList
-},{"buffer":17}],15:[function(require,module,exports){
+},{"buffer":16}],14:[function(require,module,exports){
'use strict'
const DuplexStream = require('readable-stream').Duplex
@@ -2711,9 +2688,9 @@ module.exports = BufferListStream
module.exports.BufferListStream = BufferListStream
module.exports.BufferList = BufferList
-},{"./BufferList":14,"inherits":30,"readable-stream":52}],16:[function(require,module,exports){
+},{"./BufferList":13,"inherits":30,"readable-stream":50}],15:[function(require,module,exports){
-},{}],17:[function(require,module,exports){
+},{}],16:[function(require,module,exports){
(function (Buffer){(function (){
/*!
* The buffer module from node.js, for the browser.
@@ -4494,7 +4471,7 @@ function numberIsNaN (obj) {
}
}).call(this)}).call(this,require("buffer").Buffer)
-},{"base64-js":13,"buffer":17,"ieee754":29}],18:[function(require,module,exports){
+},{"base64-js":12,"buffer":16,"ieee754":29}],17:[function(require,module,exports){
'use strict';
var GetIntrinsic = require('get-intrinsic');
@@ -4511,7 +4488,7 @@ module.exports = function callBoundIntrinsic(name, allowMissing) {
return intrinsic;
};
-},{"./":19,"get-intrinsic":25}],19:[function(require,module,exports){
+},{"./":18,"get-intrinsic":24}],18:[function(require,module,exports){
'use strict';
var bind = require('function-bind');
@@ -4560,12 +4537,12 @@ if ($defineProperty) {
module.exports.apply = applyBind;
}
-},{"function-bind":24,"get-intrinsic":25}],20:[function(require,module,exports){
+},{"function-bind":23,"get-intrinsic":24}],19:[function(require,module,exports){
'use strict';
var GetIntrinsic = require('get-intrinsic');
-var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
if ($gOPD) {
try {
$gOPD([], 'length');
@@ -4577,7 +4554,7 @@ if ($gOPD) {
module.exports = $gOPD;
-},{"get-intrinsic":25}],21:[function(require,module,exports){
+},{"get-intrinsic":24}],20:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -5076,7 +5053,7 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
}
}
-},{}],22:[function(require,module,exports){
+},{}],21:[function(require,module,exports){
var hasOwn = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;
@@ -5100,7 +5077,7 @@ module.exports = function forEach (obj, fn, ctx) {
};
-},{}],23:[function(require,module,exports){
+},{}],22:[function(require,module,exports){
'use strict';
/* eslint no-invalid-this: 1 */
@@ -5154,14 +5131,14 @@ module.exports = function bind(that) {
return bound;
};
-},{}],24:[function(require,module,exports){
+},{}],23:[function(require,module,exports){
'use strict';
var implementation = require('./implementation');
module.exports = Function.prototype.bind || implementation;
-},{"./implementation":23}],25:[function(require,module,exports){
+},{"./implementation":22}],24:[function(require,module,exports){
'use strict';
var undefined;
@@ -5493,7 +5470,7 @@ module.exports = function GetIntrinsic(name, allowMissing) {
return value;
};
-},{"function-bind":24,"has":28,"has-symbols":26}],26:[function(require,module,exports){
+},{"function-bind":23,"has":28,"has-symbols":25}],25:[function(require,module,exports){
'use strict';
var origSymbol = typeof Symbol !== 'undefined' && Symbol;
@@ -5508,7 +5485,7 @@ module.exports = function hasNativeSymbols() {
return hasSymbolSham();
};
-},{"./shams":27}],27:[function(require,module,exports){
+},{"./shams":26}],26:[function(require,module,exports){
'use strict';
/* eslint complexity: [2, 18], max-statements: [2, 33] */
@@ -5552,14 +5529,23 @@ module.exports = function hasSymbols() {
return true;
};
-},{}],28:[function(require,module,exports){
+},{}],27:[function(require,module,exports){
+'use strict';
+
+var hasSymbols = require('has-symbols/shams');
+
+module.exports = function hasToStringTagShams() {
+ return hasSymbols() && !!Symbol.toStringTag;
+};
+
+},{"has-symbols/shams":26}],28:[function(require,module,exports){
'use strict';
var bind = require('function-bind');
module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
-},{"function-bind":24}],29:[function(require,module,exports){
+},{"function-bind":23}],29:[function(require,module,exports){
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
var e, m
@@ -5678,7 +5664,7 @@ if (typeof Object.create === 'function') {
},{}],31:[function(require,module,exports){
'use strict';
-var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+var hasToStringTag = require('has-tostringtag/shams')();
var callBound = require('call-bind/callBound');
var $toString = callBound('Object.prototype.toString');
@@ -5710,13 +5696,13 @@ isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests
module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;
-},{"call-bind/callBound":18}],32:[function(require,module,exports){
+},{"call-bind/callBound":17,"has-tostringtag/shams":27}],32:[function(require,module,exports){
'use strict';
var toStr = Object.prototype.toString;
var fnToStr = Function.prototype.toString;
var isFnRegex = /^\s*(?:function)?\*/;
-var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+var hasToStringTag = require('has-tostringtag/shams')();
var getProto = Object.getPrototypeOf;
var getGeneratorFunc = function () { // eslint-disable-line consistent-return
if (!hasToStringTag) {
@@ -5727,8 +5713,7 @@ var getGeneratorFunc = function () { // eslint-disable-line consistent-return
} catch (e) {
}
};
-var generatorFunc = getGeneratorFunc();
-var GeneratorFunction = getProto && generatorFunc ? getProto(generatorFunc) : false;
+var GeneratorFunction;
module.exports = function isGeneratorFunction(fn) {
if (typeof fn !== 'function') {
@@ -5741,10 +5726,17 @@ module.exports = function isGeneratorFunction(fn) {
var str = toStr.call(fn);
return str === '[object GeneratorFunction]';
}
- return getProto && getProto(fn) === GeneratorFunction;
+ if (!getProto) {
+ return false;
+ }
+ if (typeof GeneratorFunction === 'undefined') {
+ var generatorFunc = getGeneratorFunc();
+ GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;
+ }
+ return getProto(fn) === GeneratorFunction;
};
-},{}],33:[function(require,module,exports){
+},{"has-tostringtag/shams":27}],33:[function(require,module,exports){
(function (global){(function (){
'use strict';
@@ -5753,9 +5745,9 @@ var availableTypedArrays = require('available-typed-arrays');
var callBound = require('call-bind/callBound');
var $toString = callBound('Object.prototype.toString');
-var hasSymbols = require('has-symbols')();
-var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';
+var hasToStringTag = require('has-tostringtag/shams')();
+var g = typeof globalThis === 'undefined' ? global : globalThis;
var typedArrays = availableTypedArrays();
var $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {
@@ -5772,17 +5764,16 @@ var gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');
var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');
if (hasToStringTag && gOPD && getPrototypeOf) {
forEach(typedArrays, function (typedArray) {
- var arr = new global[typedArray]();
- if (!(Symbol.toStringTag in arr)) {
- throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');
+ var arr = new g[typedArray]();
+ if (Symbol.toStringTag in arr) {
+ var proto = getPrototypeOf(arr);
+ var descriptor = gOPD(proto, Symbol.toStringTag);
+ if (!descriptor) {
+ var superProto = getPrototypeOf(proto);
+ descriptor = gOPD(superProto, Symbol.toStringTag);
+ }
+ toStrTags[typedArray] = descriptor.get;
}
- var proto = getPrototypeOf(arr);
- var descriptor = gOPD(proto, Symbol.toStringTag);
- if (!descriptor) {
- var superProto = getPrototypeOf(proto);
- descriptor = gOPD(superProto, Symbol.toStringTag);
- }
- toStrTags[typedArray] = descriptor.get;
});
}
@@ -5800,7 +5791,7 @@ var tryTypedArrays = function tryAllTypedArrays(value) {
module.exports = function isTypedArray(value) {
if (!value || typeof value !== 'object') { return false; }
- if (!hasToStringTag) {
+ if (!hasToStringTag || !(Symbol.toStringTag in value)) {
var tag = $slice($toString(value), 8, -1);
return $indexOf(typedArrays, tag) > -1;
}
@@ -5809,7 +5800,7 @@ module.exports = function isTypedArray(value) {
};
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"available-typed-arrays":12,"call-bind/callBound":18,"es-abstract/helpers/getOwnPropertyDescriptor":20,"foreach":22,"has-symbols":26}],34:[function(require,module,exports){
+},{"available-typed-arrays":11,"call-bind/callBound":17,"es-abstract/helpers/getOwnPropertyDescriptor":19,"foreach":21,"has-tostringtag/shams":27}],34:[function(require,module,exports){
/*
object-assign
(c) Sindre Sorhus
@@ -7525,7 +7516,7 @@ function indexOf(xs, x) {
return -1;
}
}).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"../errors":36,"./_stream_duplex":37,"./internal/streams/async_iterator":42,"./internal/streams/buffer_list":43,"./internal/streams/destroy":44,"./internal/streams/from":46,"./internal/streams/state":48,"./internal/streams/stream":49,"_process":35,"buffer":17,"events":21,"inherits":30,"string_decoder/":51,"util":16}],40:[function(require,module,exports){
+},{"../errors":36,"./_stream_duplex":37,"./internal/streams/async_iterator":42,"./internal/streams/buffer_list":43,"./internal/streams/destroy":44,"./internal/streams/from":46,"./internal/streams/state":48,"./internal/streams/stream":49,"_process":35,"buffer":16,"events":20,"inherits":30,"string_decoder/":52,"util":15}],40:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -8427,7 +8418,7 @@ Writable.prototype._destroy = function (err, cb) {
cb(err);
};
}).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"../errors":36,"./_stream_duplex":37,"./internal/streams/destroy":44,"./internal/streams/state":48,"./internal/streams/stream":49,"_process":35,"buffer":17,"inherits":30,"util-deprecate":54}],42:[function(require,module,exports){
+},{"../errors":36,"./_stream_duplex":37,"./internal/streams/destroy":44,"./internal/streams/state":48,"./internal/streams/stream":49,"_process":35,"buffer":16,"inherits":30,"util-deprecate":53}],42:[function(require,module,exports){
(function (process){(function (){
'use strict';
@@ -8848,7 +8839,7 @@ function () {
return BufferList;
}();
-},{"buffer":17,"util":16}],44:[function(require,module,exports){
+},{"buffer":16,"util":15}],44:[function(require,module,exports){
(function (process){(function (){
'use strict'; // undocumented cb() API, needed for core, not for public API
@@ -9195,7 +9186,19 @@ module.exports = {
},{"../../../errors":36}],49:[function(require,module,exports){
module.exports = require('events').EventEmitter;
-},{"events":21}],50:[function(require,module,exports){
+},{"events":20}],50:[function(require,module,exports){
+exports = module.exports = require('./lib/_stream_readable.js');
+exports.Stream = exports;
+exports.Readable = exports;
+exports.Writable = require('./lib/_stream_writable.js');
+exports.Duplex = require('./lib/_stream_duplex.js');
+exports.Transform = require('./lib/_stream_transform.js');
+exports.PassThrough = require('./lib/_stream_passthrough.js');
+exports.finished = require('./lib/internal/streams/end-of-stream.js');
+exports.pipeline = require('./lib/internal/streams/pipeline.js');
+
+},{"./lib/_stream_duplex.js":37,"./lib/_stream_passthrough.js":38,"./lib/_stream_readable.js":39,"./lib/_stream_transform.js":40,"./lib/_stream_writable.js":41,"./lib/internal/streams/end-of-stream.js":45,"./lib/internal/streams/pipeline.js":47}],51:[function(require,module,exports){
+/*! safe-buffer. MIT License. Feross Aboukhadijeh */
/* eslint-disable node/no-deprecated-api */
var buffer = require('buffer')
var Buffer = buffer.Buffer
@@ -9218,6 +9221,8 @@ function SafeBuffer (arg, encodingOrOffset, length) {
return Buffer(arg, encodingOrOffset, length)
}
+SafeBuffer.prototype = Object.create(Buffer.prototype)
+
// Copy static methods from Buffer
copyProps(Buffer, SafeBuffer)
@@ -9259,7 +9264,7 @@ SafeBuffer.allocUnsafeSlow = function (size) {
return buffer.SlowBuffer(size)
}
-},{"buffer":17}],51:[function(require,module,exports){
+},{"buffer":16}],52:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -9556,85 +9561,7 @@ function simpleWrite(buf) {
function simpleEnd(buf) {
return buf && buf.length ? this.write(buf) : '';
}
-},{"safe-buffer":50}],52:[function(require,module,exports){
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
-exports.finished = require('./lib/internal/streams/end-of-stream.js');
-exports.pipeline = require('./lib/internal/streams/pipeline.js');
-
-},{"./lib/_stream_duplex.js":37,"./lib/_stream_passthrough.js":38,"./lib/_stream_readable.js":39,"./lib/_stream_transform.js":40,"./lib/_stream_writable.js":41,"./lib/internal/streams/end-of-stream.js":45,"./lib/internal/streams/pipeline.js":47}],53:[function(require,module,exports){
-/*! safe-buffer. MIT License. Feross Aboukhadijeh */
-/* eslint-disable node/no-deprecated-api */
-var buffer = require('buffer')
-var Buffer = buffer.Buffer
-
-// alternative to using Object.keys for old browsers
-function copyProps (src, dst) {
- for (var key in src) {
- dst[key] = src[key]
- }
-}
-if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
- module.exports = buffer
-} else {
- // Copy properties from require('buffer')
- copyProps(buffer, exports)
- exports.Buffer = SafeBuffer
-}
-
-function SafeBuffer (arg, encodingOrOffset, length) {
- return Buffer(arg, encodingOrOffset, length)
-}
-
-SafeBuffer.prototype = Object.create(Buffer.prototype)
-
-// Copy static methods from Buffer
-copyProps(Buffer, SafeBuffer)
-
-SafeBuffer.from = function (arg, encodingOrOffset, length) {
- if (typeof arg === 'number') {
- throw new TypeError('Argument must not be a number')
- }
- return Buffer(arg, encodingOrOffset, length)
-}
-
-SafeBuffer.alloc = function (size, fill, encoding) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- var buf = Buffer(size)
- if (fill !== undefined) {
- if (typeof encoding === 'string') {
- buf.fill(fill, encoding)
- } else {
- buf.fill(fill)
- }
- } else {
- buf.fill(0)
- }
- return buf
-}
-
-SafeBuffer.allocUnsafe = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return Buffer(size)
-}
-
-SafeBuffer.allocUnsafeSlow = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return buffer.SlowBuffer(size)
-}
-
-},{"buffer":17}],54:[function(require,module,exports){
+},{"safe-buffer":51}],53:[function(require,module,exports){
(function (global){(function (){
/**
@@ -9705,9 +9632,9 @@ function config (name) {
}
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],55:[function(require,module,exports){
-arguments[4][10][0].apply(exports,arguments)
-},{"dup":10}],56:[function(require,module,exports){
+},{}],54:[function(require,module,exports){
+arguments[4][9][0].apply(exports,arguments)
+},{"dup":9}],55:[function(require,module,exports){
// Currently in sync with Node.js lib/internal/util/types.js
// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
@@ -9945,21 +9872,23 @@ function isDataView(value) {
}
exports.isDataView = isDataView;
+// Store a copy of SharedArrayBuffer in case it's deleted elsewhere
+var SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;
function isSharedArrayBufferToString(value) {
return ObjectToString(value) === '[object SharedArrayBuffer]';
}
-isSharedArrayBufferToString.working = (
- typeof SharedArrayBuffer !== 'undefined' &&
- isSharedArrayBufferToString(new SharedArrayBuffer())
-);
function isSharedArrayBuffer(value) {
- if (typeof SharedArrayBuffer === 'undefined') {
+ if (typeof SharedArrayBufferCopy === 'undefined') {
return false;
}
+ if (typeof isSharedArrayBufferToString.working === 'undefined') {
+ isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());
+ }
+
return isSharedArrayBufferToString.working
? isSharedArrayBufferToString(value)
- : value instanceof SharedArrayBuffer;
+ : value instanceof SharedArrayBufferCopy;
}
exports.isSharedArrayBuffer = isSharedArrayBuffer;
@@ -10041,7 +9970,7 @@ exports.isAnyArrayBuffer = isAnyArrayBuffer;
});
});
-},{"is-arguments":31,"is-generator-function":32,"is-typed-array":33,"which-typed-array":58}],57:[function(require,module,exports){
+},{"is-arguments":31,"is-generator-function":32,"is-typed-array":33,"which-typed-array":57}],56:[function(require,module,exports){
(function (process){(function (){
// Copyright Joyent, Inc. and other Node contributors.
//
@@ -10760,7 +10689,7 @@ function callbackify(original) {
exports.callbackify = callbackify;
}).call(this)}).call(this,require('_process'))
-},{"./support/isBuffer":55,"./support/types":56,"_process":35,"inherits":30}],58:[function(require,module,exports){
+},{"./support/isBuffer":54,"./support/types":55,"_process":35,"inherits":30}],57:[function(require,module,exports){
(function (global){(function (){
'use strict';
@@ -10769,9 +10698,9 @@ var availableTypedArrays = require('available-typed-arrays');
var callBound = require('call-bind/callBound');
var $toString = callBound('Object.prototype.toString');
-var hasSymbols = require('has-symbols')();
-var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';
+var hasToStringTag = require('has-tostringtag/shams')();
+var g = typeof globalThis === 'undefined' ? global : globalThis;
var typedArrays = availableTypedArrays();
var $slice = callBound('String.prototype.slice');
@@ -10780,18 +10709,17 @@ var gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');
var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');
if (hasToStringTag && gOPD && getPrototypeOf) {
forEach(typedArrays, function (typedArray) {
- if (typeof global[typedArray] === 'function') {
- var arr = new global[typedArray]();
- if (!(Symbol.toStringTag in arr)) {
- throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');
+ if (typeof g[typedArray] === 'function') {
+ var arr = new g[typedArray]();
+ if (Symbol.toStringTag in arr) {
+ var proto = getPrototypeOf(arr);
+ var descriptor = gOPD(proto, Symbol.toStringTag);
+ if (!descriptor) {
+ var superProto = getPrototypeOf(proto);
+ descriptor = gOPD(superProto, Symbol.toStringTag);
+ }
+ toStrTags[typedArray] = descriptor.get;
}
- var proto = getPrototypeOf(arr);
- var descriptor = gOPD(proto, Symbol.toStringTag);
- if (!descriptor) {
- var superProto = getPrototypeOf(proto);
- descriptor = gOPD(superProto, Symbol.toStringTag);
- }
- toStrTags[typedArray] = descriptor.get;
}
});
}
@@ -10815,10 +10743,10 @@ var isTypedArray = require('is-typed-array');
module.exports = function whichTypedArray(value) {
if (!isTypedArray(value)) { return false; }
- if (!hasToStringTag) { return $slice($toString(value), 8, -1); }
+ if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }
return tryTypedArrays(value);
};
}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"available-typed-arrays":12,"call-bind/callBound":18,"es-abstract/helpers/getOwnPropertyDescriptor":20,"foreach":22,"has-symbols":26,"is-typed-array":33}]},{},[1])(1)
+},{"available-typed-arrays":11,"call-bind/callBound":17,"es-abstract/helpers/getOwnPropertyDescriptor":19,"foreach":21,"has-tostringtag/shams":27,"is-typed-array":33}]},{},[1])(1)
});
diff --git a/Server/wwwroot/lib/msgpack5/msgpack5.min.js b/Server/wwwroot/lib/msgpack5/msgpack5.min.js
index 1437b3e4..1d09b60f 100644
--- a/Server/wwwroot/lib/msgpack5/msgpack5.min.js
+++ b/Server/wwwroot/lib/msgpack5/msgpack5.min.js
@@ -1 +1 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.msgpack5=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i=0,"must have a non-negative type");assert(decode,"must have a decode function");decodingTypes.set(type,decode);return this}function register(type,constructor,encode,decode){assert(constructor,"must have a constructor");assert(encode,"must have an encode function");assert(type>=0,"must have a non-negative type");assert(decode,"must have a decode function");function check(obj){return obj instanceof constructor}function reEncode(obj){const buf=bl();const header=Buffer.allocUnsafe(1);header.writeInt8(type,0);buf.append(header);buf.append(encode(obj));return buf}this.registerEncoder(check,reEncode);this.registerDecoder(type,decode);return this}return{encode:buildEncode(encodingTypes,options),decode:buildDecode(decodingTypes,options),register:register,registerEncoder:registerEncoder,registerDecoder:registerDecoder,encoder:streams.encoder,decoder:streams.decoder,buffer:true,type:"msgpack5",IncompleteBufferError:IncompleteBufferError}}module.exports=msgpack},{"./lib/codecs/DateCodec":2,"./lib/decoder":3,"./lib/encoder":4,"./lib/helpers.js":5,"./lib/streams":6,assert:8,bl:15,"safe-buffer":53}],2:[function(require,module,exports){(function(Buffer){(function(){const type=-1;function encode(dt){if(dt===null){return}const millis=dt*1;const seconds=Math.floor(millis/1e3);const nanos=(millis-seconds*1e3)*1e6;if(seconds<0||seconds>17179869184){const encoded=Buffer.allocUnsafe(13);encoded[0]=-1;encoded.writeUInt32BE(nanos,1);let hex="";if(seconds>=0){const padhex="0000000000000000";hex=seconds.toString(16);hex=padhex.slice(0,hex.length*-1)+hex}else{let bin=(seconds*-1).toString(2);let i=bin.length-1;while(bin[i]==="0"){i--}bin=bin.slice(0,i).split("").map(function(bit){return bit==="1"?0:1}).join("")+bin.slice(i,bin.length);const pad64="1111111111111111111111111111111111111111111111111111111111111111";bin=pad64.slice(0,bin.length*-1)+bin;bin.match(/.{1,8}/g).forEach(function(byte){byte=parseInt(byte,2).toString(16);if(byte.length===1){byte="0"+byte}hex+=byte})}encoded.write(hex,5,"hex");return encoded}else if(nanos||seconds>4294967295){const encoded=Buffer.allocUnsafe(9);encoded[0]=-1;const upperNanos=nanos*4;const upperSeconds=seconds/Math.pow(2,32);const upper=upperNanos+upperSeconds&4294967295;const lower=seconds&4294967295;encoded.writeInt32BE(upper,1);encoded.writeInt32BE(lower,5);return encoded}else{const encoded=Buffer.allocUnsafe(5);encoded[0]=-1;encoded.writeUInt32BE(Math.floor(millis/1e3),1);return encoded}}function check(obj){return typeof obj.getDate==="function"}function decode(buf){let seconds;let nanoseconds=0;let upper;let lower;let hex;switch(buf.length){case 4:seconds=buf.readUInt32BE(0);break;case 8:upper=buf.readUInt32BE(0);lower=buf.readUInt32BE(4);nanoseconds=upper/4;seconds=(upper&3)*Math.pow(2,32)+lower;break;case 12:hex=buf.toString("hex",4,12);if(parseInt(buf.toString("hex",4,6),16)&128){let bin="";const pad8="00000000";hex.match(/.{1,2}/g).forEach(function(byte){byte=parseInt(byte,16).toString(2);byte=pad8.slice(0,byte.length*-1)+byte;bin+=byte});seconds=-1*parseInt(bin.split("").map(function(bit){return bit==="1"?0:1}).join(""),2)-1}else{seconds=parseInt(hex,16)}nanoseconds=buf.readUInt32BE(0)}const millis=seconds*1e3+Math.round(nanoseconds/1e6);return new Date(millis)}module.exports={check:check,type:type,encode:encode,decode:decode}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:17}],3:[function(require,module,exports){"use strict";const bl=require("bl");const IncompleteBufferError=require("./helpers.js").IncompleteBufferError;const SIZES={196:2,197:3,198:5,199:3,200:4,201:6,202:5,203:9,204:2,205:3,206:5,207:9,208:2,209:3,210:5,211:9,212:3,213:4,214:6,215:10,216:18,217:2,218:3,219:5,222:3,220:3,221:5};function isValidDataSize(dataLength,bufLength,headerLength){return bufLength>=headerLength+dataLength}module.exports=function buildDecode(decodingTypes,options){return decode;function decode(buf){if(!(buf instanceof bl)){buf=bl().append(buf)}const result=tryDecode(buf,0);if(!result)throw new IncompleteBufferError;buf.consume(result[1]);return result[0]}function tryDecode(buf,initialOffset){if(buf.length<=initialOffset)return null;const bufLength=buf.length-initialOffset;let offset=initialOffset;const first=buf.readUInt8(offset);offset+=1;const size=SIZES[first]||-1;if(bufLengthfirst>=start&&first<=end;if(first<128)return[first,1];if((first&240)===128){const length=first&15;const headerSize=offset-initialOffset;return decodeMap(buf,offset,length,headerSize,options)}if((first&240)===144){const length=first&15;const headerSize=offset-initialOffset;return decodeArray(buf,offset,length,headerSize)}if((first&224)===160){const length=first&31;if(!isValidDataSize(length,bufLength,1))return null;const result=buf.toString("utf8",offset,offset+length);return[result,length+1]}if(inRange(192,195))return decodeConstants(first);if(inRange(196,198)){const length=buf.readUIntBE(offset,size-1);offset+=size-1;if(!isValidDataSize(length,bufLength,size))return null;const result=buf.slice(offset,offset+length);return[result,size+length]}if(inRange(199,201)){const length=buf.readUIntBE(offset,size-2);offset+=size-2;const type=buf.readInt8(offset);offset+=1;if(!isValidDataSize(length,bufLength,size))return null;return decodeExt(buf,offset,type,length,size)}if(inRange(202,203))return decodeFloat(buf,offset,size-1);if(inRange(204,207))return decodeUnsignedInt(buf,offset,size-1);if(inRange(208,211))return decodeSigned(buf,offset,size-1);if(inRange(212,216)){const type=buf.readInt8(offset);offset+=1;return decodeExt(buf,offset,type,size-2,2)}if(inRange(217,219)){const length=buf.readUIntBE(offset,size-1);offset+=size-1;if(!isValidDataSize(length,bufLength,size))return null;const result=buf.toString("utf8",offset,offset+length);return[result,size+length]}if(inRange(220,221)){const length=buf.readUIntBE(offset,size-1);offset+=size-1;return decodeArray(buf,offset,length,size)}if(inRange(222,223)){let length;switch(first){case 222:length=buf.readUInt16BE(offset);offset+=2;return decodeMap(buf,offset,length,3,options);case 223:length=buf.readUInt32BE(offset);offset+=4;return decodeMap(buf,offset,length,5,options)}}if(first>=224)return[first-256,1];throw new Error("not implemented yet")}function decodeArray(buf,initialOffset,length,headerLength){let offset=initialOffset;const result=[];let i=0;while(i++=offset;i--){const v=(buf[i]^255)+carry;buf[i]=v&255;carry=v>>8}}const hi=buf.readUInt32BE(offset+0);const lo=buf.readUInt32BE(offset+4);return(hi*4294967296+lo)*(negate?-1:+1)}function decodeUnsignedInt(buf,offset,size){const maxOffset=offset+size;let result=0;while(offset{acc.push(encode(item))});if(acc.length!==array.length+1){throw new Error("Sparse arrays are not encodable in msgpack")}return bl(acc)}function encodeMap(map,options,encode){const acc=[getHeader(map.size,128,222)];const keys=[...map.keys()];if(!options.preferMap){if(keys.every(item=>typeof item==="string")){console.warn("Map with string only keys will be deserialized as an object!")}}keys.forEach(key=>{acc.push(encode(key),encode(map.get(key)))});return bl(acc)}function encodeObject(obj,options,encode){const keys=[];for(const key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)&&obj[key]!==undefined&&typeof obj[key]!=="function"){keys.push(key)}}const acc=[getHeader(keys.length,128,222)];if(options.sortKeys)keys.sort();keys.forEach(key=>{acc.push(encode(key),encode(obj[key]))});return bl(acc)}function write64BitUint(buf,offset,num){const lo=num%4294967296;const hi=Math.floor(num/4294967296);buf.writeUInt32BE(hi,offset+0);buf.writeUInt32BE(lo,offset+4)}function write64BitInt(buf,offset,num){const negate=num<0;num=Math.abs(num);write64BitUint(buf,offset,num);if(negate)negate64BitInt(buf,offset)}function negate64BitInt(buf,offset){let i=offset+8;while(i-- >offset){if(buf[i]===0)continue;buf[i]=(buf[i]^255)+1;break}while(i-- >offset){buf[i]=buf[i]^255}}const fround=Math.fround;function encodeFloat(obj,forceFloat64){let buf;if(forceFloat64||!fround||!Object.is(fround(obj),obj)){buf=Buffer.allocUnsafe(9);buf[0]=203;buf.writeDoubleBE(obj,1)}else{buf=Buffer.allocUnsafe(5);buf[0]=202;buf.writeFloatBE(obj,1)}return buf}function encodeExt(obj,encodingTypes){const codec=encodingTypes.find(codec=>codec.check(obj));if(!codec)return null;const encoded=codec.encode(obj);if(!encoded)return null;return bl([getExtHeader(encoded.length-1),encoded])}function getExtHeader(length){if(length===1)return Buffer.from([212]);if(length===2)return Buffer.from([213]);if(length===4)return Buffer.from([214]);if(length===8)return Buffer.from([215]);if(length===16)return Buffer.from([216]);if(length<256)return Buffer.from([199,length]);if(length<65536)return Buffer.from([200,length>>8,length&255]);return Buffer.from([201,length>>24,length>>16&255,length>>8&255,length&255])}function getHeader(length,tag1,tag2){if(length<16)return Buffer.from([tag1|length]);const size=length<65536?2:4;const buf=Buffer.allocUnsafe(1+size);buf[0]=length<65536?tag2:tag2+1;buf.writeUIntBE(length,1,size);return buf}function encodeString(obj,options){const len=Buffer.byteLength(obj);let buf;if(len<32){buf=Buffer.allocUnsafe(1+len);buf[0]=160|len;if(len>0){buf.write(obj,1)}}else if(len<=255&&!options.compatibilityMode){buf=Buffer.allocUnsafe(2+len);buf[0]=217;buf[1]=len;buf.write(obj,2)}else if(len<=65535){buf=Buffer.allocUnsafe(3+len);buf[0]=218;buf.writeUInt16BE(len,1);buf.write(obj,3)}else{buf=Buffer.allocUnsafe(5+len);buf[0]=219;buf.writeUInt32BE(len,1);buf.write(obj,5)}return buf}function getBufferHeader(length){let header;if(length<=255){header=Buffer.allocUnsafe(2);header[0]=196;header[1]=length}else if(length<=65535){header=Buffer.allocUnsafe(3);header[0]=197;header.writeUInt16BE(length,1)}else{header=Buffer.allocUnsafe(5);header[0]=198;header.writeUInt32BE(length,1)}return header}function encodeNumber(obj,options){let buf;if(isFloat(obj))return encodeFloat(obj,options.forceFloat64);if(Math.abs(obj)>9007199254740991){return encodeFloat(obj,true)}if(obj>=0){if(obj<128){return Buffer.from([obj])}else if(obj<256){return Buffer.from([204,obj])}else if(obj<65536){return Buffer.from([205,255&obj>>8,255&obj])}else if(obj<=4294967295){return Buffer.from([206,255&obj>>24,255&obj>>16,255&obj>>8,255&obj])}else if(obj<=9007199254740991){buf=Buffer.allocUnsafe(9);buf[0]=207;write64BitUint(buf,1,obj)}}else{if(obj>=-32){buf=Buffer.allocUnsafe(1);buf[0]=256+obj}else if(obj>=-128){buf=Buffer.allocUnsafe(2);buf[0]=208;buf.writeInt8(obj,1)}else if(obj>=-32768){buf=Buffer.allocUnsafe(3);buf[0]=209;buf.writeInt16BE(obj,1)}else if(obj>-214748365){buf=Buffer.allocUnsafe(5);buf[0]=210;buf.writeInt32BE(obj,1)}else if(obj>=-9007199254740991){buf=Buffer.allocUnsafe(9);buf[0]=211;write64BitInt(buf,1,obj)}}return buf}},{"./helpers.js":5,bl:15,"safe-buffer":53}],5:[function(require,module,exports){"use strict";const util=require("util");exports.IncompleteBufferError=IncompleteBufferError;function IncompleteBufferError(message){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name=this.constructor.name;this.message=message||"unable to decode"}util.inherits(IncompleteBufferError,Error);exports.isFloat=function isFloat(n){return n%1!==0}},{util:57}],6:[function(require,module,exports){"use strict";const Transform=require("readable-stream").Transform;const inherits=require("inherits");const bl=require("bl");function Base(opts){opts=opts||{};opts.objectMode=true;opts.highWaterMark=16;Transform.call(this,opts);this._msgpack=opts.msgpack}inherits(Base,Transform);function Encoder(opts){if(!(this instanceof Encoder)){opts=opts||{};opts.msgpack=this;return new Encoder(opts)}Base.call(this,opts);this._wrap="wrap"in opts&&opts.wrap}inherits(Encoder,Base);Encoder.prototype._transform=function(obj,enc,done){let buf=null;try{buf=this._msgpack.encode(this._wrap?obj.value:obj).slice(0)}catch(err){this.emit("error",err);return done()}this.push(buf);done()};function Decoder(opts){if(!(this instanceof Decoder)){opts=opts||{};opts.msgpack=this;return new Decoder(opts)}Base.call(this,opts);this._chunks=bl();this._wrap="wrap"in opts&&opts.wrap}inherits(Decoder,Base);Decoder.prototype._transform=function(buf,enc,done){if(buf){this._chunks.append(buf)}try{let result=this._msgpack.decode(this._chunks);if(this._wrap){result={value:result}}this.push(result)}catch(err){if(err instanceof this._msgpack.IncompleteBufferError){done()}else{this.emit("error",err)}return}if(this._chunks.length>0){this._transform(null,enc,done)}else{done()}};module.exports.decoder=Decoder;module.exports.encoder=Encoder},{bl:15,inherits:30,"readable-stream":52}],7:[function(require,module,exports){module.exports=function(arr,fn,self){if(arr.filter)return arr.filter(fn,self);if(void 0===arr||null===arr)throw new TypeError;if("function"!=typeof fn)throw new TypeError;var ret=[];for(var i=0;i=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function truncate(s,n){if(typeof s==="string"){return s.length=0;i--){if(ka[i]!==kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key],strict,actualVisitedObjects))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected,false)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.notDeepStrictEqual=notDeepStrictEqual;function notDeepStrictEqual(actual,expected,message){if(_deepEqual(actual,expected,true)){fail(actual,expected,message,"notDeepStrictEqual",notDeepStrictEqual)}}assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}try{if(actual instanceof expected){return true}}catch(e){}if(Error.isPrototypeOf(expected)){return false}return expected.call({},actual)===true}function _tryBlock(block){var error;try{block()}catch(e){error=e}return error}function _throws(shouldThrow,block,expected,message){var actual;if(typeof block!=="function"){throw new TypeError('"block" argument must be a function')}if(typeof expected==="string"){message=expected;expected=null}actual=_tryBlock(block);message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}var userProvidedMessage=typeof message==="string";var isUnwantedException=!shouldThrow&&util.isError(actual);var isUnexpectedException=!shouldThrow&&actual&&!expected;if(isUnwantedException&&userProvidedMessage&&expectedException(actual,expected)||isUnexpectedException){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws(true,block,error,message)};assert.doesNotThrow=function(block,error,message){_throws(false,block,error,message)};assert.ifError=function(err){if(err)throw err};function strict(value,message){if(!value)fail(value,true,message,"==",strict)}assert.strict=objectAssign(strict,assert,{equal:assert.strictEqual,deepEqual:assert.deepStrictEqual,notEqual:assert.notStrictEqual,notDeepEqual:assert.notDeepStrictEqual});assert.strict.strict=assert.strict;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"object-assign":34,"util/":11}],9:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],10:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],11:[function(require,module,exports){(function(process,global){(function(){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.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]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":10,_process:35,inherits:9}],12:[function(require,module,exports){(function(global){(function(){"use strict";var filter=require("array-filter");module.exports=function availableTypedArrays(){return filter(["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],function(typedArray){return typeof global[typedArray]==="function"})}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"array-filter":7}],13:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],14:[function(require,module,exports){"use strict";const{Buffer:Buffer}=require("buffer");const symbol=Symbol.for("BufferList");function BufferList(buf){if(!(this instanceof BufferList)){return new BufferList(buf)}BufferList._init.call(this,buf)}BufferList._init=function _init(buf){Object.defineProperty(this,symbol,{value:true});this._bufs=[];this.length=0;if(buf){this.append(buf)}};BufferList.prototype._new=function _new(buf){return new BufferList(buf)};BufferList.prototype._offset=function _offset(offset){if(offset===0){return[0,0]}let tot=0;for(let i=0;ithis.length||index<0){return undefined}const offset=this._offset(index);return this._bufs[offset[0]][offset[1]]};BufferList.prototype.slice=function slice(start,end){if(typeof start==="number"&&start<0){start+=this.length}if(typeof end==="number"&&end<0){end+=this.length}return this.copy(null,0,start,end)};BufferList.prototype.copy=function copy(dst,dstStart,srcStart,srcEnd){if(typeof srcStart!=="number"||srcStart<0){srcStart=0}if(typeof srcEnd!=="number"||srcEnd>this.length){srcEnd=this.length}if(srcStart>=this.length){return dst||Buffer.alloc(0)}if(srcEnd<=0){return dst||Buffer.alloc(0)}const copy=!!dst;const off=this._offset(srcStart);const len=srcEnd-srcStart;let bytes=len;let bufoff=copy&&dstStart||0;let start=off[1];if(srcStart===0&&srcEnd===this.length){if(!copy){return this._bufs.length===1?this._bufs[0]:Buffer.concat(this._bufs,this.length)}for(let i=0;il){this._bufs[i].copy(dst,bufoff,start);bufoff+=l}else{this._bufs[i].copy(dst,bufoff,start,start+bytes);bufoff+=l;break}bytes-=l;if(start){start=0}}if(dst.length>bufoff)return dst.slice(0,bufoff);return dst};BufferList.prototype.shallowSlice=function shallowSlice(start,end){start=start||0;end=typeof end!=="number"?this.length:end;if(start<0){start+=this.length}if(end<0){end+=this.length}if(start===end){return this._new()}const startOffset=this._offset(start);const endOffset=this._offset(end);const buffers=this._bufs.slice(startOffset[0],endOffset[0]+1);if(endOffset[1]===0){buffers.pop()}else{buffers[buffers.length-1]=buffers[buffers.length-1].slice(0,endOffset[1])}if(startOffset[1]!==0){buffers[0]=buffers[0].slice(startOffset[1])}return this._new(buffers)};BufferList.prototype.toString=function toString(encoding,start,end){return this.slice(start,end).toString(encoding)};BufferList.prototype.consume=function consume(bytes){bytes=Math.trunc(bytes);if(Number.isNaN(bytes)||bytes<=0)return this;while(this._bufs.length){if(bytes>=this._bufs[0].length){bytes-=this._bufs[0].length;this.length-=this._bufs[0].length;this._bufs.shift()}else{this._bufs[0]=this._bufs[0].slice(bytes);this.length-=bytes;break}}return this};BufferList.prototype.duplicate=function duplicate(){const copy=this._new();for(let i=0;ithis.length?this.length:offset}const blOffset=this._offset(offset);let blIndex=blOffset[0];let buffOffset=blOffset[1];for(;blIndex=search.length){const nativeSearchResult=buff.indexOf(search,buffOffset);if(nativeSearchResult!==-1){return this._reverseOffset([blIndex,nativeSearchResult])}buffOffset=buff.length-search.length+1}else{const revOffset=this._reverseOffset([blIndex,buffOffset]);if(this._match(revOffset,search)){return revOffset}buffOffset++}}buffOffset=0}return-1};BufferList.prototype._match=function(offset,search){if(this.length-offsetK_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;imax)str+=" ... ";return""};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":13,buffer:17,ieee754:29}],18:[function(require,module,exports){"use strict";var GetIntrinsic=require("get-intrinsic");var callBind=require("./");var $indexOf=callBind(GetIntrinsic("String.prototype.indexOf"));module.exports=function callBoundIntrinsic(name,allowMissing){var intrinsic=GetIntrinsic(name,!!allowMissing);if(typeof intrinsic==="function"&&$indexOf(name,".prototype.")>-1){return callBind(intrinsic)}return intrinsic}},{"./":19,"get-intrinsic":25}],19:[function(require,module,exports){"use strict";var bind=require("function-bind");var GetIntrinsic=require("get-intrinsic");var $apply=GetIntrinsic("%Function.prototype.apply%");var $call=GetIntrinsic("%Function.prototype.call%");var $reflectApply=GetIntrinsic("%Reflect.apply%",true)||bind.call($call,$apply);var $gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",true);var $defineProperty=GetIntrinsic("%Object.defineProperty%",true);var $max=GetIntrinsic("%Math.max%");if($defineProperty){try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=null}}module.exports=function callBind(originalFunction){var func=$reflectApply(bind,$call,arguments);if($gOPD&&$defineProperty){var desc=$gOPD(func,"length");if(desc.configurable){$defineProperty(func,"length",{value:1+$max(0,originalFunction.length-(arguments.length-1))})}}return func};var applyBind=function applyBind(){return $reflectApply(bind,$apply,arguments)};if($defineProperty){$defineProperty(module.exports,"apply",{value:applyBind})}else{module.exports.apply=applyBind}},{"function-bind":24,"get-intrinsic":25}],20:[function(require,module,exports){"use strict";var GetIntrinsic=require("get-intrinsic");var $gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%");if($gOPD){try{$gOPD([],"length")}catch(e){$gOPD=null}}module.exports=$gOPD},{"get-intrinsic":25}],21:[function(require,module,exports){"use strict";var R=typeof Reflect==="object"?Reflect:null;var ReflectApply=R&&typeof R.apply==="function"?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args)};var ReflectOwnKeys;if(R&&typeof R.ownKeys==="function"){ReflectOwnKeys=R.ownKeys}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))}}else{ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target)}}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning)}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value};function EventEmitter(){EventEmitter.init.call(this)}module.exports=EventEmitter;module.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=undefined;var defaultMaxListeners=10;function checkListener(listener){if(typeof listener!=="function"){throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener)}}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:true,get:function(){return defaultMaxListeners},set:function(arg){if(typeof arg!=="number"||arg<0||NumberIsNaN(arg)){throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+arg+".")}defaultMaxListeners=arg}});EventEmitter.init=function(){if(this._events===undefined||this._events===Object.getPrototypeOf(this)._events){this._events=Object.create(null);this._eventsCount=0}this._maxListeners=this._maxListeners||undefined};EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=="number"||n<0||NumberIsNaN(n)){throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+n+".")}this._maxListeners=n;return this};function _getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function emit(type){var args=[];for(var i=1;i0)er=args[0];if(er instanceof Error){throw er}var err=new Error("Unhandled error."+(er?" ("+er.message+")":""));err.context=er;throw err}var handler=events[type];if(handler===undefined)return false;if(typeof handler==="function"){ReflectApply(handler,this,args)}else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i0&&existing.length>m&&!existing.warned){existing.warned=true;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+" "+String(type)+" listeners "+"added. Use emitter.setMaxListeners() to "+"increase limit");w.name="MaxListenersExceededWarning";w.emitter=target;w.type=type;w.count=existing.length;ProcessEmitWarning(w)}}return target}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true)};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;if(arguments.length===0)return this.listener.call(this.target);return this.listener.apply(this.target,arguments)}}function _onceWrap(target,type,listener){var state={fired:false,wrapFn:undefined,target:target,type:type,listener:listener};var wrapped=onceWrapper.bind(state);wrapped.listener=listener;state.wrapFn=wrapped;return wrapped}EventEmitter.prototype.once=function once(type,listener){checkListener(listener);this.on(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){checkListener(listener);this.prependListener(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;checkListener(listener);events=this._events;if(events===undefined)return this;list=events[type];if(list===undefined)return this;if(list===listener||list.listener===listener){if(--this._eventsCount===0)this._events=Object.create(null);else{delete events[type];if(events.removeListener)this.emit("removeListener",type,list.listener||listener)}}else if(typeof list!=="function"){position=-1;for(i=list.length-1;i>=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break}}if(position<0)return this;if(position===0)list.shift();else{spliceOne(list,position)}if(list.length===1)events[type]=list[0];if(events.removeListener!==undefined)this.emit("removeListener",type,originalListener||listener)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(events===undefined)return this;if(events.removeListener===undefined){if(arguments.length===0){this._events=Object.create(null);this._eventsCount=0}else if(events[type]!==undefined){if(--this._eventsCount===0)this._events=Object.create(null);else delete events[type]}return this}if(arguments.length===0){var keys=Object.keys(events);var key;for(i=0;i=0;i--){this.removeListener(type,listeners[i])}}return this};function _listeners(target,type,unwrap){var events=target._events;if(events===undefined)return[];var evlistener=events[type];if(evlistener===undefined)return[];if(typeof evlistener==="function")return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length)}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true)};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false)};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==="function"){return emitter.listenerCount(type)}else{return listenerCount.call(emitter,type)}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events!==undefined){var evlistener=events[type];if(typeof evlistener==="function"){return 1}else if(evlistener!==undefined){return evlistener.length}}return 0}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(arr,n){var copy=new Array(n);for(var i=0;i1&&typeof allowMissing!=="boolean"){throw new $TypeError('"allowMissing" argument must be a boolean')}var parts=stringToPath(name);var intrinsicBaseName=parts.length>0?parts[0]:"";var intrinsic=getBaseIntrinsic("%"+intrinsicBaseName+"%",allowMissing);var intrinsicRealName=intrinsic.name;var value=intrinsic.value;var skipFurtherCaching=false;var alias=intrinsic.alias;if(alias){intrinsicBaseName=alias[0];$spliceApply(parts,$concat([0,1],alias))}for(var i=1,isOwn=true;i=parts.length){var desc=$gOPD(value,part);isOwn=!!desc;if(isOwn&&"get"in desc&&!("originalValue"in desc.get)){value=desc.get}else{value=value[part]}}else{isOwn=hasOwn(value,part);value=value[part]}if(isOwn&&!skipFurtherCaching){INTRINSICS[intrinsicRealName]=value}}}return value}},{"function-bind":24,has:28,"has-symbols":26}],26:[function(require,module,exports){"use strict";var origSymbol=typeof Symbol!=="undefined"&&Symbol;var hasSymbolSham=require("./shams");module.exports=function hasNativeSymbols(){if(typeof origSymbol!=="function"){return false}if(typeof Symbol!=="function"){return false}if(typeof origSymbol("foo")!=="symbol"){return false}if(typeof Symbol("bar")!=="symbol"){return false}return hasSymbolSham()}},{"./shams":27}],27:[function(require,module,exports){"use strict";module.exports=function hasSymbols(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function"){return false}if(typeof Symbol.iterator==="symbol"){return true}var obj={};var sym=Symbol("test");var symObj=Object(sym);if(typeof sym==="string"){return false}if(Object.prototype.toString.call(sym)!=="[object Symbol]"){return false}if(Object.prototype.toString.call(symObj)!=="[object Symbol]"){return false}var symVal=42;obj[sym]=symVal;for(sym in obj){return false}if(typeof Object.keys==="function"&&Object.keys(obj).length!==0){return false}if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(obj).length!==0){return false}var syms=Object.getOwnPropertySymbols(obj);if(syms.length!==1||syms[0]!==sym){return false}if(!Object.prototype.propertyIsEnumerable.call(obj,sym)){return false}if(typeof Object.getOwnPropertyDescriptor==="function"){var descriptor=Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==true){return false}}return true}},{}],28:[function(require,module,exports){"use strict";var bind=require("function-bind");module.exports=bind.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":24}],29:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],30:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}}else{module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}}},{}],31:[function(require,module,exports){"use strict";var hasToStringTag=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var callBound=require("call-bind/callBound");var $toString=callBound("Object.prototype.toString");var isStandardArguments=function isArguments(value){if(hasToStringTag&&value&&typeof value==="object"&&Symbol.toStringTag in value){return false}return $toString(value)==="[object Arguments]"};var isLegacyArguments=function isArguments(value){if(isStandardArguments(value)){return true}return value!==null&&typeof value==="object"&&typeof value.length==="number"&&value.length>=0&&$toString(value)!=="[object Array]"&&$toString(value.callee)==="[object Function]"};var supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;module.exports=supportsStandardArguments?isStandardArguments:isLegacyArguments},{"call-bind/callBound":18}],32:[function(require,module,exports){"use strict";var toStr=Object.prototype.toString;var fnToStr=Function.prototype.toString;var isFnRegex=/^\s*(?:function)?\*/;var hasToStringTag=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var getProto=Object.getPrototypeOf;var getGeneratorFunc=function(){if(!hasToStringTag){return false}try{return Function("return function*() {}")()}catch(e){}};var generatorFunc=getGeneratorFunc();var GeneratorFunction=getProto&&generatorFunc?getProto(generatorFunc):false;module.exports=function isGeneratorFunction(fn){if(typeof fn!=="function"){return false}if(isFnRegex.test(fnToStr.call(fn))){return true}if(!hasToStringTag){var str=toStr.call(fn);return str==="[object GeneratorFunction]"}return getProto&&getProto(fn)===GeneratorFunction}},{}],33:[function(require,module,exports){(function(global){(function(){"use strict";var forEach=require("foreach");var availableTypedArrays=require("available-typed-arrays");var callBound=require("call-bind/callBound");var $toString=callBound("Object.prototype.toString");var hasSymbols=require("has-symbols")();var hasToStringTag=hasSymbols&&typeof Symbol.toStringTag==="symbol";var typedArrays=availableTypedArrays();var $indexOf=callBound("Array.prototype.indexOf",true)||function indexOf(array,value){for(var i=0;i-1}if(!gOPD){return false}return tryTypedArrays(value)}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"available-typed-arrays":12,"call-bind/callBound":18,"es-abstract/helpers/getOwnPropertyDescriptor":20,foreach:22,"has-symbols":26}],34:[function(require,module,exports){"use strict";var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}function shouldUseNative(){try{if(!Object.assign){return false}var test1=new String("abc");test1[5]="de";if(Object.getOwnPropertyNames(test1)[0]==="5"){return false}var test2={};for(var i=0;i<10;i++){test2["_"+String.fromCharCode(i)]=i}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n]});if(order2.join("")!=="0123456789"){return false}var test3={};"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter});if(Object.keys(Object.assign({},test3)).join("")!=="abcdefghijklmnopqrst"){return false}return true}catch(err){return false}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s1){for(var i=1;i2){return"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(", "),", or ")+expected[len-1]}else if(len===2){return"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1])}else{return"of ".concat(thing," ").concat(expected[0])}}else{return"of ".concat(thing," ").concat(String(expected))}}function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}function endsWith(str,search,this_len){if(this_len===undefined||this_len>str.length){this_len=str.length}return str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){if(typeof start!=="number"){start=0}if(start+search.length>str.length){return false}else{return str.indexOf(search,start)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){var determiner;if(typeof expected==="string"&&startsWith(expected,"not ")){determiner="must not be";expected=expected.replace(/^not /,"")}else{determiner="must be"}var msg;if(endsWith(name," argument")){msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"))}else{var type=includes(name,".")?"property":"argument";msg='The "'.concat(name,'" ').concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}msg+=". Received type ".concat(typeof actual);return msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module.exports.codes=codes},{}],37:[function(require,module,exports){(function(process){(function(){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key)}return keys};module.exports=Duplex;var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);{var keys=objectKeys(Writable.prototype);for(var v=0;v0){if(typeof chunk!=="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk)}if(addToFront){if(state.endEmitted)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else addChunk(stream,state,chunk,true)}else if(state.ended){errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF)}else if(state.destroyed){return false}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state)}else{addChunk(stream,state,chunk,false)}}}else if(!addToFront){state.reading=false;maybeReadMore(stream,state)}}return!state.ended&&(state.length=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=state.length<=state.highWaterMark;n=0}else{state.length-=n;state.awaitDrain=0}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function onEofChunk(stream,state){debug("onEofChunk");if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.sync){emitReadable(stream)}else{state.needReadable=false;if(!state.emittedReadable){state.emittedReadable=true;emitReadable_(stream)}}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable);state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;process.nextTick(emitReadable_,stream)}}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended);if(!state.destroyed&&(state.length||state.ended)){stream.emit("readable");state.emittedReadable=false}state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark;flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",state.awaitDrain);state.awaitDrain++}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)errorOrDestroy(dest,er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function pipeOnDrainFunctionResult(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this,unpipeInfo);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i0;if(state.flowing!==false)this.resume()}else if(ev==="readable"){if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.flowing=false;state.emittedReadable=false;debug("on readable",state.length,state.reading);if(state.length){emitReadable(this)}else if(!state.reading){process.nextTick(nReadingNextTick,this)}}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);if(ev==="readable"){process.nextTick(updateReadableListening,this)}return res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev==="readable"||ev===undefined){process.nextTick(updateReadableListening,this)}return res};function updateReadableListening(self){var state=self._readableState;state.readableListening=self.listenerCount("readable")>0;if(state.resumeScheduled&&!state.paused){state.flowing=true}else if(self.listenerCount("data")>0){self.resume()}}function nReadingNextTick(self){debug("readable nexttick read 0");self.read(0)}Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=!state.readableListening;resume(this,state)}state.paused=false;return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;process.nextTick(resume_,stream,state)}}function resume_(stream,state){debug("resume",state.reading);if(!state.reading){stream.read(0)}state.resumeScheduled=false;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){debug("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);while(state.flowing&&stream.read()!==null){}}Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk)}_this.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===undefined&&typeof stream[i]==="function"){this[i]=function methodWrap(method){return function methodWrapReturnFunction(){return stream[method].apply(stream,arguments)}}(i)}}for(var n=0;n=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=state.buffer.consume(n,state.decoder)}return ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){debug("endReadableNT",state.endEmitted,state.length);if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end");if(state.autoDestroy){var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy()}}}}if(typeof Symbol==="function"){Readable.from=function(iterable,opts){if(from===undefined){from=require("./internal/streams/from")}return from(Readable,iterable,opts)}}function indexOf(xs,x){for(var i=0,l=xs.length;i-1))throw new ERR_UNKNOWN_ENCODING(encoding);this._writableState.defaultEncoding=encoding;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=Buffer.from(chunk,encoding)}return chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding="buffer";chunk=newChunk}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length}},{key:"unshift",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length}},{key:"shift",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0}},{key:"join",value:function join(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next){ret+=s+p.data}return ret}},{key:"concat",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next}return ret}},{key:"consume",value:function consume(n,hasStrings){var ret;if(nstr.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=str.slice(nb)}break}++c}this.length-=c;return ret}},{key:"_getBuffer",value:function _getBuffer(n){var ret=Buffer.allocUnsafe(n);var p=this.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=buf.slice(nb)}break}++c}this.length-=c;return ret}},{key:custom,value:function value(_,options){return inspect(this,_objectSpread({},options,{depth:0,customInspect:false}))}}]);return BufferList}()},{buffer:17,util:16}],44:[function(require,module,exports){(function(process){(function(){"use strict";function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err)}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(err||null,function(err){if(!cb&&err){if(!_this._writableState){process.nextTick(emitErrorAndCloseNT,_this,err)}else if(!_this._writableState.errorEmitted){_this._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,_this,err)}else{process.nextTick(emitCloseNT,_this)}}else if(cb){process.nextTick(emitCloseNT,_this);cb(err)}else{process.nextTick(emitCloseNT,_this)}});return this}function emitErrorAndCloseNT(self,err){emitErrorNT(self,err);emitCloseNT(self)}function emitCloseNT(self){if(self._writableState&&!self._writableState.emitClose)return;if(self._readableState&&!self._readableState.emitClose)return;self.emit("close")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(self,err){self.emit("error",err)}function errorOrDestroy(stream,err){var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit("error",err)}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}}).call(this)}).call(this,require("_process"))},{_process:35}],45:[function(require,module,exports){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}callback.apply(this,args)}}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function eos(stream,opts,callback){if(typeof opts==="function")return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=function onlegacyfinish(){if(!stream.writable)onfinish()};var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=function onfinish(){writable=false;writableEnded=true;if(!readable)callback.call(stream)};var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=function onend(){readable=false;readableEnded=true;if(!writable)callback.call(stream)};var onerror=function onerror(err){callback.call(stream,err)};var onclose=function onclose(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}};var onrequest=function onrequest(){stream.req.on("finish",onfinish)};if(isRequest(stream)){stream.on("complete",onfinish);stream.on("abort",onclose);if(stream.req)onrequest();else stream.on("request",onrequest)}else if(writable&&!stream._writableState){stream.on("end",onlegacyfinish);stream.on("close",onlegacyfinish)}stream.on("end",onend);stream.on("finish",onfinish);if(opts.error!==false)stream.on("error",onerror);stream.on("close",onclose);return function(){stream.removeListener("complete",onfinish);stream.removeListener("abort",onclose);stream.removeListener("request",onrequest);if(stream.req)stream.req.removeListener("finish",onfinish);stream.removeListener("end",onlegacyfinish);stream.removeListener("close",onlegacyfinish);stream.removeListener("finish",onfinish);stream.removeListener("end",onend);stream.removeListener("error",onerror);stream.removeListener("close",onclose)}}module.exports=eos},{"../../../errors":36}],46:[function(require,module,exports){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],47:[function(require,module,exports){"use strict";var eos;function once(callback){var called=false;return function(){if(called)return;called=true;callback.apply(void 0,arguments)}}var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=false;stream.on("close",function(){closed=true});if(eos===undefined)eos=require("./end-of-stream");eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=true;callback()});var destroyed=false;return function(err){if(closed)return;if(destroyed)return;destroyed=true;if(isRequest(stream))return stream.abort();if(typeof stream.destroy==="function")return stream.destroy();callback(err||new ERR_STREAM_DESTROYED("pipe"))}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=="function")return noop;return streams.pop()}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key]}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS("streams")}var error;var destroys=streams.map(function(stream,i){var reading=i0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error)})});return streams.reduce(pipe)}module.exports=pipeline},{"../../../errors":36,"./end-of-stream":45}],48:[function(require,module,exports){"use strict";var ERR_INVALID_OPT_VALUE=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}module.exports={getHighWaterMark:getHighWaterMark}},{"../../../errors":36}],49:[function(require,module,exports){module.exports=require("events").EventEmitter},{events:21}],50:[function(require,module,exports){var buffer=require("buffer");var Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer}else{copyProps(buffer,exports);exports.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}},{buffer:17}],51:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer;var isEncoding=Buffer.isEncoding||function(encoding){encoding=""+encoding;switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(enc){if(!enc)return"utf8";var retried;while(true){switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase();retried=true}}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=="string"&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;nb=4;break;case"utf8":this.fillLast=utf8FillLast;nb=4;break;case"base64":this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===undefined)return"";i=this.lastNeed;this.lastNeed=0}else{i=0}if(i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3}return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128){self.lastNeed=0;return"�"}if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self.lastNeed=1;return"�"}if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self.lastNeed=2;return"�"}}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"�";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":50}],52:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js");exports.finished=require("./lib/internal/streams/end-of-stream.js");exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":37,"./lib/_stream_passthrough.js":38,"./lib/_stream_readable.js":39,"./lib/_stream_transform.js":40,"./lib/_stream_writable.js":41,"./lib/internal/streams/end-of-stream.js":45,"./lib/internal/streams/pipeline.js":47}],53:[function(require,module,exports){var buffer=require("buffer");var Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer}else{copyProps(buffer,exports);exports.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer.prototype);copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}},{buffer:17}],54:[function(require,module,exports){(function(global){(function(){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation")){return fn}var warned=false;function deprecated(){if(!warned){if(config("throwDeprecation")){throw new Error(msg)}else if(config("traceDeprecation")){console.trace(msg)}else{console.warn(msg)}warned=true}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return false}catch(_){return false}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==="true"}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],55:[function(require,module,exports){arguments[4][10][0].apply(exports,arguments)},{dup:10}],56:[function(require,module,exports){"use strict";var isArgumentsObject=require("is-arguments");var isGeneratorFunction=require("is-generator-function");var whichTypedArray=require("which-typed-array");var isTypedArray=require("is-typed-array");function uncurryThis(f){return f.call.bind(f)}var BigIntSupported=typeof BigInt!=="undefined";var SymbolSupported=typeof Symbol!=="undefined";var ObjectToString=uncurryThis(Object.prototype.toString);var numberValue=uncurryThis(Number.prototype.valueOf);var stringValue=uncurryThis(String.prototype.valueOf);var booleanValue=uncurryThis(Boolean.prototype.valueOf);if(BigIntSupported){var bigIntValue=uncurryThis(BigInt.prototype.valueOf)}if(SymbolSupported){var symbolValue=uncurryThis(Symbol.prototype.valueOf)}function checkBoxedPrimitive(value,prototypeValueOf){if(typeof value!=="object"){return false}try{prototypeValueOf(value);return true}catch(e){return false}}exports.isArgumentsObject=isArgumentsObject;exports.isGeneratorFunction=isGeneratorFunction;exports.isTypedArray=isTypedArray;function isPromise(input){return typeof Promise!=="undefined"&&input instanceof Promise||input!==null&&typeof input==="object"&&typeof input.then==="function"&&typeof input.catch==="function"}exports.isPromise=isPromise;function isArrayBufferView(value){if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){return ArrayBuffer.isView(value)}return isTypedArray(value)||isDataView(value)}exports.isArrayBufferView=isArrayBufferView;function isUint8Array(value){return whichTypedArray(value)==="Uint8Array"}exports.isUint8Array=isUint8Array;function isUint8ClampedArray(value){return whichTypedArray(value)==="Uint8ClampedArray"}exports.isUint8ClampedArray=isUint8ClampedArray;function isUint16Array(value){return whichTypedArray(value)==="Uint16Array"}exports.isUint16Array=isUint16Array;function isUint32Array(value){return whichTypedArray(value)==="Uint32Array"}exports.isUint32Array=isUint32Array;function isInt8Array(value){return whichTypedArray(value)==="Int8Array"}exports.isInt8Array=isInt8Array;function isInt16Array(value){return whichTypedArray(value)==="Int16Array"}exports.isInt16Array=isInt16Array;function isInt32Array(value){return whichTypedArray(value)==="Int32Array"}exports.isInt32Array=isInt32Array;function isFloat32Array(value){return whichTypedArray(value)==="Float32Array"}exports.isFloat32Array=isFloat32Array;function isFloat64Array(value){return whichTypedArray(value)==="Float64Array"}exports.isFloat64Array=isFloat64Array;function isBigInt64Array(value){return whichTypedArray(value)==="BigInt64Array"}exports.isBigInt64Array=isBigInt64Array;function isBigUint64Array(value){return whichTypedArray(value)==="BigUint64Array"}exports.isBigUint64Array=isBigUint64Array;function isMapToString(value){return ObjectToString(value)==="[object Map]"}isMapToString.working=typeof Map!=="undefined"&&isMapToString(new Map);function isMap(value){if(typeof Map==="undefined"){return false}return isMapToString.working?isMapToString(value):value instanceof Map}exports.isMap=isMap;function isSetToString(value){return ObjectToString(value)==="[object Set]"}isSetToString.working=typeof Set!=="undefined"&&isSetToString(new Set);function isSet(value){if(typeof Set==="undefined"){return false}return isSetToString.working?isSetToString(value):value instanceof Set}exports.isSet=isSet;function isWeakMapToString(value){return ObjectToString(value)==="[object WeakMap]"}isWeakMapToString.working=typeof WeakMap!=="undefined"&&isWeakMapToString(new WeakMap);function isWeakMap(value){if(typeof WeakMap==="undefined"){return false}return isWeakMapToString.working?isWeakMapToString(value):value instanceof WeakMap}exports.isWeakMap=isWeakMap;function isWeakSetToString(value){return ObjectToString(value)==="[object WeakSet]"}isWeakSetToString.working=typeof WeakSet!=="undefined"&&isWeakSetToString(new WeakSet);function isWeakSet(value){return isWeakSetToString(value)}exports.isWeakSet=isWeakSet;function isArrayBufferToString(value){return ObjectToString(value)==="[object ArrayBuffer]"}isArrayBufferToString.working=typeof ArrayBuffer!=="undefined"&&isArrayBufferToString(new ArrayBuffer);function isArrayBuffer(value){if(typeof ArrayBuffer==="undefined"){return false}return isArrayBufferToString.working?isArrayBufferToString(value):value instanceof ArrayBuffer}exports.isArrayBuffer=isArrayBuffer;function isDataViewToString(value){return ObjectToString(value)==="[object DataView]"}isDataViewToString.working=typeof ArrayBuffer!=="undefined"&&typeof DataView!=="undefined"&&isDataViewToString(new DataView(new ArrayBuffer(1),0,1));function isDataView(value){if(typeof DataView==="undefined"){return false}return isDataViewToString.working?isDataViewToString(value):value instanceof DataView}exports.isDataView=isDataView;function isSharedArrayBufferToString(value){return ObjectToString(value)==="[object SharedArrayBuffer]"}isSharedArrayBufferToString.working=typeof SharedArrayBuffer!=="undefined"&&isSharedArrayBufferToString(new SharedArrayBuffer);function isSharedArrayBuffer(value){if(typeof SharedArrayBuffer==="undefined"){return false}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(value):value instanceof SharedArrayBuffer}exports.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(value){return ObjectToString(value)==="[object AsyncFunction]"}exports.isAsyncFunction=isAsyncFunction;function isMapIterator(value){return ObjectToString(value)==="[object Map Iterator]"}exports.isMapIterator=isMapIterator;function isSetIterator(value){return ObjectToString(value)==="[object Set Iterator]"}exports.isSetIterator=isSetIterator;function isGeneratorObject(value){return ObjectToString(value)==="[object Generator]"}exports.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(value){return ObjectToString(value)==="[object WebAssembly.Module]"}exports.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(value){return checkBoxedPrimitive(value,numberValue)}exports.isNumberObject=isNumberObject;function isStringObject(value){return checkBoxedPrimitive(value,stringValue)}exports.isStringObject=isStringObject;function isBooleanObject(value){return checkBoxedPrimitive(value,booleanValue)}exports.isBooleanObject=isBooleanObject;function isBigIntObject(value){return BigIntSupported&&checkBoxedPrimitive(value,bigIntValue)}exports.isBigIntObject=isBigIntObject;function isSymbolObject(value){return SymbolSupported&&checkBoxedPrimitive(value,symbolValue)}exports.isSymbolObject=isSymbolObject;function isBoxedPrimitive(value){return isNumberObject(value)||isStringObject(value)||isBooleanObject(value)||isBigIntObject(value)||isSymbolObject(value)}exports.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(value){return typeof Uint8Array!=="undefined"&&(isArrayBuffer(value)||isSharedArrayBuffer(value))}exports.isAnyArrayBuffer=isAnyArrayBuffer;["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(method){Object.defineProperty(exports,method,{enumerable:false,value:function(){throw new Error(method+" is not supported in userland")}})})},{"is-arguments":31,"is-generator-function":32,"is-typed-array":33,"which-typed-array":58}],57:[function(require,module,exports){(function(process){(function(){var getOwnPropertyDescriptors=Object.getOwnPropertyDescriptors||function getOwnPropertyDescriptors(obj){var keys=Object.keys(obj);var descriptors={};for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.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]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}exports.types=require("./support/types");function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;exports.types.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;exports.types.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;exports.types.isNativeError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var kCustomPromisifiedSymbol=typeof Symbol!=="undefined"?Symbol("util.promisify.custom"):undefined;exports.promisify=function promisify(original){if(typeof original!=="function")throw new TypeError('The "original" argument must be of type Function');if(kCustomPromisifiedSymbol&&original[kCustomPromisifiedSymbol]){var fn=original[kCustomPromisifiedSymbol];if(typeof fn!=="function"){throw new TypeError('The "util.promisify.custom" argument must be of type Function')}Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:false,writable:false,configurable:true});return fn}function fn(){var promiseResolve,promiseReject;var promise=new Promise(function(resolve,reject){promiseResolve=resolve;promiseReject=reject});var args=[];for(var i=0;i=0,"must have a non-negative type");assert(decode,"must have a decode function");decodingTypes.set(type,decode);return this}function register(type,constructor,encode,decode){assert(constructor,"must have a constructor");assert(encode,"must have an encode function");assert(type>=0,"must have a non-negative type");assert(decode,"must have a decode function");function check(obj){return obj instanceof constructor}function reEncode(obj){const buf=bl();const header=Buffer.allocUnsafe(1);header.writeInt8(type,0);buf.append(header);buf.append(encode(obj));return buf}this.registerEncoder(check,reEncode);this.registerDecoder(type,decode);return this}return{encode:buildEncode(encodingTypes,options),decode:buildDecode(decodingTypes,options),register:register,registerEncoder:registerEncoder,registerDecoder:registerDecoder,encoder:streams.encoder,decoder:streams.decoder,buffer:true,type:"msgpack5",IncompleteBufferError:IncompleteBufferError}}module.exports=msgpack},{"./lib/codecs/DateCodec":2,"./lib/decoder":3,"./lib/encoder":4,"./lib/helpers.js":5,"./lib/streams":6,assert:7,bl:14,"safe-buffer":51}],2:[function(require,module,exports){(function(Buffer){(function(){const type=-1;function encode(dt){if(dt===null){return}const millis=dt*1;const seconds=Math.floor(millis/1e3);const nanos=(millis-seconds*1e3)*1e6;if(seconds<0||seconds>17179869184){const encoded=Buffer.allocUnsafe(13);encoded[0]=-1;encoded.writeUInt32BE(nanos,1);let hex="";if(seconds>=0){const padhex="0000000000000000";hex=seconds.toString(16);hex=padhex.slice(0,hex.length*-1)+hex}else{let bin=(seconds*-1).toString(2);let i=bin.length-1;while(bin[i]==="0"){i--}bin=bin.slice(0,i).split("").map(function(bit){return bit==="1"?0:1}).join("")+bin.slice(i,bin.length);const pad64="1111111111111111111111111111111111111111111111111111111111111111";bin=pad64.slice(0,bin.length*-1)+bin;bin.match(/.{1,8}/g).forEach(function(byte){byte=parseInt(byte,2).toString(16);if(byte.length===1){byte="0"+byte}hex+=byte})}encoded.write(hex,5,"hex");return encoded}else if(nanos||seconds>4294967295){const encoded=Buffer.allocUnsafe(9);encoded[0]=-1;const upperNanos=nanos*4;const upperSeconds=seconds/Math.pow(2,32);const upper=upperNanos+upperSeconds&4294967295;const lower=seconds&4294967295;encoded.writeInt32BE(upper,1);encoded.writeInt32BE(lower,5);return encoded}else{const encoded=Buffer.allocUnsafe(5);encoded[0]=-1;encoded.writeUInt32BE(Math.floor(millis/1e3),1);return encoded}}function check(obj){return typeof obj.getDate==="function"}function decode(buf){let seconds;let nanoseconds=0;let upper;let lower;let hex;switch(buf.length){case 4:seconds=buf.readUInt32BE(0);break;case 8:upper=buf.readUInt32BE(0);lower=buf.readUInt32BE(4);nanoseconds=upper/4;seconds=(upper&3)*Math.pow(2,32)+lower;break;case 12:hex=buf.toString("hex",4,12);if(parseInt(buf.toString("hex",4,6),16)&128){let bin="";const pad8="00000000";hex.match(/.{1,2}/g).forEach(function(byte){byte=parseInt(byte,16).toString(2);byte=pad8.slice(0,byte.length*-1)+byte;bin+=byte});seconds=-1*parseInt(bin.split("").map(function(bit){return bit==="1"?0:1}).join(""),2)-1}else{seconds=parseInt(hex,16)}nanoseconds=buf.readUInt32BE(0)}const millis=seconds*1e3+Math.round(nanoseconds/1e6);return new Date(millis)}module.exports={check:check,type:type,encode:encode,decode:decode}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:16}],3:[function(require,module,exports){"use strict";const bl=require("bl");const IncompleteBufferError=require("./helpers.js").IncompleteBufferError;const SIZES={196:2,197:3,198:5,199:3,200:4,201:6,202:5,203:9,204:2,205:3,206:5,207:9,208:2,209:3,210:5,211:9,212:3,213:4,214:6,215:10,216:18,217:2,218:3,219:5,222:3,220:3,221:5};function isValidDataSize(dataLength,bufLength,headerLength){return bufLength>=headerLength+dataLength}module.exports=function buildDecode(decodingTypes,options){const context={decodingTypes:decodingTypes,options:options,decode:decode};return decode;function decode(buf){if(!bl.isBufferList(buf)){buf=bl(buf)}const result=tryDecode(buf,0,context);if(!result)throw new IncompleteBufferError;buf.consume(result[1]);return result[0]}};function decodeArray(buf,initialOffset,length,headerLength,context){let offset=initialOffset;const result=[];let i=0;while(i++=192&&first<=195)return decodeConstants(first);if(first>=196&&first<=198){const length=buf.readUIntBE(offset,size-1);offset+=size-1;if(!isValidDataSize(length,bufLength,size))return null;const result=buf.slice(offset,offset+length);return[result,size+length]}if(first>=199&&first<=201){const length=buf.readUIntBE(offset,size-2);offset+=size-2;const type=buf.readInt8(offset);offset+=1;if(!isValidDataSize(length,bufLength,size))return null;return decodeExt(buf,offset,type,length,size,context)}if(first>=202&&first<=203)return decodeFloat(buf,offset,size-1);if(first>=204&&first<=207)return decodeUnsignedInt(buf,offset,size-1);if(first>=208&&first<=211)return decodeSigned(buf,offset,size-1);if(first>=212&&first<=216){const type=buf.readInt8(offset);offset+=1;return decodeExt(buf,offset,type,size-2,2,context)}if(first>=217&&first<=219){const length=buf.readUIntBE(offset,size-1);offset+=size-1;if(!isValidDataSize(length,bufLength,size))return null;const result=buf.toString("utf8",offset,offset+length);return[result,size+length]}if(first>=220&&first<=221){const length=buf.readUIntBE(offset,size-1);offset+=size-1;return decodeArray(buf,offset,length,size,context)}if(first>=222&&first<=223){let length;switch(first){case 222:length=buf.readUInt16BE(offset);offset+=2;return decodeMap(buf,offset,length,3,context);case 223:length=buf.readUInt32BE(offset);offset+=4;return decodeMap(buf,offset,length,5,context)}}if(first>=224)return[first-256,1];throw new Error("not implemented yet")}function decodeSigned(buf,offset,size){let result;if(size===1)result=buf.readInt8(offset);if(size===2)result=buf.readInt16BE(offset);if(size===4)result=buf.readInt32BE(offset);if(size===8)result=readInt64BE(buf.slice(offset,offset+8),0);return[result,size+1]}function decodeExt(buf,offset,type,size,headerSize,context){const toDecode=buf.slice(offset,offset+size);const decode=context.decodingTypes.get(type);if(!decode)throw new Error("unable to find ext type "+type);const value=decode(toDecode);return[value,headerSize+size]}function decodeUnsignedInt(buf,offset,size){const maxOffset=offset+size;let result=0;while(offset=offset;i--){const v=(buf[i]^255)+carry;buf[i]=v&255;carry=v>>8}}const hi=buf.readUInt32BE(offset+0);const lo=buf.readUInt32BE(offset+4);return(hi*4294967296+lo)*(negate?-1:+1)}},{"./helpers.js":5,bl:14}],4:[function(require,module,exports){"use strict";const Buffer=require("safe-buffer").Buffer;const bl=require("bl");const isFloat=require("./helpers.js").isFloat;module.exports=function buildEncode(encodingTypes,options){function encode(obj){if(obj===undefined)throw new Error("undefined is not encodable in msgpack!");if(obj===null)return Buffer.from([192]);if(obj===true)return Buffer.from([195]);if(obj===false)return Buffer.from([194]);if(obj instanceof Map)return encodeMap(obj,options,encode);if(typeof obj==="string")return encodeString(obj,options);if(obj&&(obj.readUInt32LE||obj instanceof Uint8Array)){if(obj instanceof Uint8Array){obj=Buffer.from(obj)}return bl([getBufferHeader(obj.length),obj])}if(Array.isArray(obj))return encodeArray(obj,encode);if(typeof obj==="object")return encodeExt(obj,encodingTypes)||encodeObject(obj,options,encode);if(typeof obj==="number")return encodeNumber(obj,options);throw new Error("not implemented yet")}return function(obj){return encode(obj).slice()}};function encodeArray(array,encode){const acc=[getHeader(array.length,144,220)];array.forEach(item=>{acc.push(encode(item))});if(acc.length!==array.length+1){throw new Error("Sparse arrays are not encodable in msgpack")}return bl(acc)}function encodeMap(map,options,encode){const acc=[getHeader(map.size,128,222)];const keys=[...map.keys()];if(!options.preferMap){if(keys.every(item=>typeof item==="string")){console.warn("Map with string only keys will be deserialized as an object!")}}keys.forEach(key=>{acc.push(encode(key),encode(map.get(key)))});return bl(acc)}function encodeObject(obj,options,encode){const keys=[];for(const key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)&&obj[key]!==undefined&&typeof obj[key]!=="function"){keys.push(key)}}const acc=[getHeader(keys.length,128,222)];if(options.sortKeys)keys.sort();keys.forEach(key=>{acc.push(encode(key),encode(obj[key]))});return bl(acc)}function write64BitUint(buf,offset,num){const lo=num%4294967296;const hi=Math.floor(num/4294967296);buf.writeUInt32BE(hi,offset+0);buf.writeUInt32BE(lo,offset+4)}function write64BitInt(buf,offset,num){const negate=num<0;num=Math.abs(num);write64BitUint(buf,offset,num);if(negate)negate64BitInt(buf,offset)}function negate64BitInt(buf,offset){let i=offset+8;while(i-- >offset){if(buf[i]===0)continue;buf[i]=(buf[i]^255)+1;break}while(i-- >offset){buf[i]=buf[i]^255}}const fround=Math.fround;function encodeFloat(obj,forceFloat64){let buf;if(forceFloat64||!fround||!Object.is(fround(obj),obj)){buf=Buffer.allocUnsafe(9);buf[0]=203;buf.writeDoubleBE(obj,1)}else{buf=Buffer.allocUnsafe(5);buf[0]=202;buf.writeFloatBE(obj,1)}return buf}function encodeExt(obj,encodingTypes){const codec=encodingTypes.find(codec=>codec.check(obj));if(!codec)return null;const encoded=codec.encode(obj);if(!encoded)return null;return bl([getExtHeader(encoded.length-1),encoded])}function getExtHeader(length){if(length===1)return Buffer.from([212]);if(length===2)return Buffer.from([213]);if(length===4)return Buffer.from([214]);if(length===8)return Buffer.from([215]);if(length===16)return Buffer.from([216]);if(length<256)return Buffer.from([199,length]);if(length<65536)return Buffer.from([200,length>>8,length&255]);return Buffer.from([201,length>>24,length>>16&255,length>>8&255,length&255])}function getHeader(length,tag1,tag2){if(length<16)return Buffer.from([tag1|length]);const size=length<65536?2:4;const buf=Buffer.allocUnsafe(1+size);buf[0]=length<65536?tag2:tag2+1;buf.writeUIntBE(length,1,size);return buf}function encodeString(obj,options){const len=Buffer.byteLength(obj);let buf;if(len<32){buf=Buffer.allocUnsafe(1+len);buf[0]=160|len;if(len>0){buf.write(obj,1)}}else if(len<=255&&!options.compatibilityMode){buf=Buffer.allocUnsafe(2+len);buf[0]=217;buf[1]=len;buf.write(obj,2)}else if(len<=65535){buf=Buffer.allocUnsafe(3+len);buf[0]=218;buf.writeUInt16BE(len,1);buf.write(obj,3)}else{buf=Buffer.allocUnsafe(5+len);buf[0]=219;buf.writeUInt32BE(len,1);buf.write(obj,5)}return buf}function getBufferHeader(length){let header;if(length<=255){header=Buffer.allocUnsafe(2);header[0]=196;header[1]=length}else if(length<=65535){header=Buffer.allocUnsafe(3);header[0]=197;header.writeUInt16BE(length,1)}else{header=Buffer.allocUnsafe(5);header[0]=198;header.writeUInt32BE(length,1)}return header}function encodeNumber(obj,options){let buf;if(isFloat(obj))return encodeFloat(obj,options.forceFloat64);if(Math.abs(obj)>9007199254740991){return encodeFloat(obj,true)}if(obj>=0){if(obj<128){return Buffer.from([obj])}else if(obj<256){return Buffer.from([204,obj])}else if(obj<65536){return Buffer.from([205,255&obj>>8,255&obj])}else if(obj<=4294967295){return Buffer.from([206,255&obj>>24,255&obj>>16,255&obj>>8,255&obj])}else if(obj<=9007199254740991){buf=Buffer.allocUnsafe(9);buf[0]=207;write64BitUint(buf,1,obj)}}else{if(obj>=-32){buf=Buffer.allocUnsafe(1);buf[0]=256+obj}else if(obj>=-128){buf=Buffer.allocUnsafe(2);buf[0]=208;buf.writeInt8(obj,1)}else if(obj>=-32768){buf=Buffer.allocUnsafe(3);buf[0]=209;buf.writeInt16BE(obj,1)}else if(obj>-214748365){buf=Buffer.allocUnsafe(5);buf[0]=210;buf.writeInt32BE(obj,1)}else if(obj>=-9007199254740991){buf=Buffer.allocUnsafe(9);buf[0]=211;write64BitInt(buf,1,obj)}}return buf}},{"./helpers.js":5,bl:14,"safe-buffer":51}],5:[function(require,module,exports){"use strict";const util=require("util");exports.IncompleteBufferError=IncompleteBufferError;function IncompleteBufferError(message){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name=this.constructor.name;this.message=message||"unable to decode"}util.inherits(IncompleteBufferError,Error);exports.isFloat=function isFloat(n){return n%1!==0}},{util:56}],6:[function(require,module,exports){"use strict";const Transform=require("readable-stream").Transform;const inherits=require("inherits");const bl=require("bl");function Base(opts){opts=opts||{};opts.objectMode=true;opts.highWaterMark=16;Transform.call(this,opts);this._msgpack=opts.msgpack}inherits(Base,Transform);function Encoder(opts){if(!(this instanceof Encoder)){opts=opts||{};opts.msgpack=this;return new Encoder(opts)}Base.call(this,opts);this._wrap="wrap"in opts&&opts.wrap}inherits(Encoder,Base);Encoder.prototype._transform=function(obj,enc,done){let buf=null;try{buf=this._msgpack.encode(this._wrap?obj.value:obj).slice(0)}catch(err){this.emit("error",err);return done()}this.push(buf);done()};function Decoder(opts){if(!(this instanceof Decoder)){opts=opts||{};opts.msgpack=this;return new Decoder(opts)}Base.call(this,opts);this._chunks=bl();this._wrap="wrap"in opts&&opts.wrap}inherits(Decoder,Base);Decoder.prototype._transform=function(buf,enc,done){if(buf){this._chunks.append(buf)}try{let result=this._msgpack.decode(this._chunks);if(this._wrap){result={value:result}}this.push(result)}catch(err){if(err instanceof this._msgpack.IncompleteBufferError){done()}else{this.emit("error",err)}return}if(this._chunks.length>0){this._transform(null,enc,done)}else{done()}};module.exports.decoder=Decoder;module.exports.encoder=Encoder},{bl:14,inherits:30,"readable-stream":50}],7:[function(require,module,exports){(function(global){(function(){"use strict";var objectAssign=require("object-assign");function compare(a,b){if(a===b){return 0}var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function truncate(s,n){if(typeof s==="string"){return s.length=0;i--){if(ka[i]!==kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key],strict,actualVisitedObjects))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected,false)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.notDeepStrictEqual=notDeepStrictEqual;function notDeepStrictEqual(actual,expected,message){if(_deepEqual(actual,expected,true)){fail(actual,expected,message,"notDeepStrictEqual",notDeepStrictEqual)}}assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}try{if(actual instanceof expected){return true}}catch(e){}if(Error.isPrototypeOf(expected)){return false}return expected.call({},actual)===true}function _tryBlock(block){var error;try{block()}catch(e){error=e}return error}function _throws(shouldThrow,block,expected,message){var actual;if(typeof block!=="function"){throw new TypeError('"block" argument must be a function')}if(typeof expected==="string"){message=expected;expected=null}actual=_tryBlock(block);message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}var userProvidedMessage=typeof message==="string";var isUnwantedException=!shouldThrow&&util.isError(actual);var isUnexpectedException=!shouldThrow&&actual&&!expected;if(isUnwantedException&&userProvidedMessage&&expectedException(actual,expected)||isUnexpectedException){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws(true,block,error,message)};assert.doesNotThrow=function(block,error,message){_throws(false,block,error,message)};assert.ifError=function(err){if(err)throw err};function strict(value,message){if(!value)fail(value,true,message,"==",strict)}assert.strict=objectAssign(strict,assert,{equal:assert.strictEqual,deepEqual:assert.deepStrictEqual,notEqual:assert.notStrictEqual,notDeepEqual:assert.notDeepStrictEqual});assert.strict.strict=assert.strict;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"object-assign":34,"util/":10}],8:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],9:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],10:[function(require,module,exports){(function(process,global){(function(){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.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]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":9,_process:35,inherits:8}],11:[function(require,module,exports){(function(global){(function(){"use strict";var possibleNames=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"];var g=typeof globalThis==="undefined"?global:globalThis;module.exports=function availableTypedArrays(){var out=[];for(var i=0;i0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],13:[function(require,module,exports){"use strict";const{Buffer}=require("buffer");const symbol=Symbol.for("BufferList");function BufferList(buf){if(!(this instanceof BufferList)){return new BufferList(buf)}BufferList._init.call(this,buf)}BufferList._init=function _init(buf){Object.defineProperty(this,symbol,{value:true});this._bufs=[];this.length=0;if(buf){this.append(buf)}};BufferList.prototype._new=function _new(buf){return new BufferList(buf)};BufferList.prototype._offset=function _offset(offset){if(offset===0){return[0,0]}let tot=0;for(let i=0;ithis.length||index<0){return undefined}const offset=this._offset(index);return this._bufs[offset[0]][offset[1]]};BufferList.prototype.slice=function slice(start,end){if(typeof start==="number"&&start<0){start+=this.length}if(typeof end==="number"&&end<0){end+=this.length}return this.copy(null,0,start,end)};BufferList.prototype.copy=function copy(dst,dstStart,srcStart,srcEnd){if(typeof srcStart!=="number"||srcStart<0){srcStart=0}if(typeof srcEnd!=="number"||srcEnd>this.length){srcEnd=this.length}if(srcStart>=this.length){return dst||Buffer.alloc(0)}if(srcEnd<=0){return dst||Buffer.alloc(0)}const copy=!!dst;const off=this._offset(srcStart);const len=srcEnd-srcStart;let bytes=len;let bufoff=copy&&dstStart||0;let start=off[1];if(srcStart===0&&srcEnd===this.length){if(!copy){return this._bufs.length===1?this._bufs[0]:Buffer.concat(this._bufs,this.length)}for(let i=0;il){this._bufs[i].copy(dst,bufoff,start);bufoff+=l}else{this._bufs[i].copy(dst,bufoff,start,start+bytes);bufoff+=l;break}bytes-=l;if(start){start=0}}if(dst.length>bufoff)return dst.slice(0,bufoff);return dst};BufferList.prototype.shallowSlice=function shallowSlice(start,end){start=start||0;end=typeof end!=="number"?this.length:end;if(start<0){start+=this.length}if(end<0){end+=this.length}if(start===end){return this._new()}const startOffset=this._offset(start);const endOffset=this._offset(end);const buffers=this._bufs.slice(startOffset[0],endOffset[0]+1);if(endOffset[1]===0){buffers.pop()}else{buffers[buffers.length-1]=buffers[buffers.length-1].slice(0,endOffset[1])}if(startOffset[1]!==0){buffers[0]=buffers[0].slice(startOffset[1])}return this._new(buffers)};BufferList.prototype.toString=function toString(encoding,start,end){return this.slice(start,end).toString(encoding)};BufferList.prototype.consume=function consume(bytes){bytes=Math.trunc(bytes);if(Number.isNaN(bytes)||bytes<=0)return this;while(this._bufs.length){if(bytes>=this._bufs[0].length){bytes-=this._bufs[0].length;this.length-=this._bufs[0].length;this._bufs.shift()}else{this._bufs[0]=this._bufs[0].slice(bytes);this.length-=bytes;break}}return this};BufferList.prototype.duplicate=function duplicate(){const copy=this._new();for(let i=0;ithis.length?this.length:offset}const blOffset=this._offset(offset);let blIndex=blOffset[0];let buffOffset=blOffset[1];for(;blIndex=search.length){const nativeSearchResult=buff.indexOf(search,buffOffset);if(nativeSearchResult!==-1){return this._reverseOffset([blIndex,nativeSearchResult])}buffOffset=buff.length-search.length+1}else{const revOffset=this._reverseOffset([blIndex,buffOffset]);if(this._match(revOffset,search)){return revOffset}buffOffset++}}buffOffset=0}return-1};BufferList.prototype._match=function(offset,search){if(this.length-offsetK_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;imax)str+=" ... ";return""};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":12,buffer:16,ieee754:29}],17:[function(require,module,exports){"use strict";var GetIntrinsic=require("get-intrinsic");var callBind=require("./");var $indexOf=callBind(GetIntrinsic("String.prototype.indexOf"));module.exports=function callBoundIntrinsic(name,allowMissing){var intrinsic=GetIntrinsic(name,!!allowMissing);if(typeof intrinsic==="function"&&$indexOf(name,".prototype.")>-1){return callBind(intrinsic)}return intrinsic}},{"./":18,"get-intrinsic":24}],18:[function(require,module,exports){"use strict";var bind=require("function-bind");var GetIntrinsic=require("get-intrinsic");var $apply=GetIntrinsic("%Function.prototype.apply%");var $call=GetIntrinsic("%Function.prototype.call%");var $reflectApply=GetIntrinsic("%Reflect.apply%",true)||bind.call($call,$apply);var $gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",true);var $defineProperty=GetIntrinsic("%Object.defineProperty%",true);var $max=GetIntrinsic("%Math.max%");if($defineProperty){try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=null}}module.exports=function callBind(originalFunction){var func=$reflectApply(bind,$call,arguments);if($gOPD&&$defineProperty){var desc=$gOPD(func,"length");if(desc.configurable){$defineProperty(func,"length",{value:1+$max(0,originalFunction.length-(arguments.length-1))})}}return func};var applyBind=function applyBind(){return $reflectApply(bind,$apply,arguments)};if($defineProperty){$defineProperty(module.exports,"apply",{value:applyBind})}else{module.exports.apply=applyBind}},{"function-bind":23,"get-intrinsic":24}],19:[function(require,module,exports){"use strict";var GetIntrinsic=require("get-intrinsic");var $gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",true);if($gOPD){try{$gOPD([],"length")}catch(e){$gOPD=null}}module.exports=$gOPD},{"get-intrinsic":24}],20:[function(require,module,exports){"use strict";var R=typeof Reflect==="object"?Reflect:null;var ReflectApply=R&&typeof R.apply==="function"?R.apply:function ReflectApply(target,receiver,args){return Function.prototype.apply.call(target,receiver,args)};var ReflectOwnKeys;if(R&&typeof R.ownKeys==="function"){ReflectOwnKeys=R.ownKeys}else if(Object.getOwnPropertySymbols){ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))}}else{ReflectOwnKeys=function ReflectOwnKeys(target){return Object.getOwnPropertyNames(target)}}function ProcessEmitWarning(warning){if(console&&console.warn)console.warn(warning)}var NumberIsNaN=Number.isNaN||function NumberIsNaN(value){return value!==value};function EventEmitter(){EventEmitter.init.call(this)}module.exports=EventEmitter;module.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=undefined;var defaultMaxListeners=10;function checkListener(listener){if(typeof listener!=="function"){throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener)}}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:true,get:function(){return defaultMaxListeners},set:function(arg){if(typeof arg!=="number"||arg<0||NumberIsNaN(arg)){throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+arg+".")}defaultMaxListeners=arg}});EventEmitter.init=function(){if(this._events===undefined||this._events===Object.getPrototypeOf(this)._events){this._events=Object.create(null);this._eventsCount=0}this._maxListeners=this._maxListeners||undefined};EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=="number"||n<0||NumberIsNaN(n)){throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+n+".")}this._maxListeners=n;return this};function _getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function emit(type){var args=[];for(var i=1;i0)er=args[0];if(er instanceof Error){throw er}var err=new Error("Unhandled error."+(er?" ("+er.message+")":""));err.context=er;throw err}var handler=events[type];if(handler===undefined)return false;if(typeof handler==="function"){ReflectApply(handler,this,args)}else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i0&&existing.length>m&&!existing.warned){existing.warned=true;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+" "+String(type)+" listeners "+"added. Use emitter.setMaxListeners() to "+"increase limit");w.name="MaxListenersExceededWarning";w.emitter=target;w.type=type;w.count=existing.length;ProcessEmitWarning(w)}}return target}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true)};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;if(arguments.length===0)return this.listener.call(this.target);return this.listener.apply(this.target,arguments)}}function _onceWrap(target,type,listener){var state={fired:false,wrapFn:undefined,target:target,type:type,listener:listener};var wrapped=onceWrapper.bind(state);wrapped.listener=listener;state.wrapFn=wrapped;return wrapped}EventEmitter.prototype.once=function once(type,listener){checkListener(listener);this.on(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){checkListener(listener);this.prependListener(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;checkListener(listener);events=this._events;if(events===undefined)return this;list=events[type];if(list===undefined)return this;if(list===listener||list.listener===listener){if(--this._eventsCount===0)this._events=Object.create(null);else{delete events[type];if(events.removeListener)this.emit("removeListener",type,list.listener||listener)}}else if(typeof list!=="function"){position=-1;for(i=list.length-1;i>=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break}}if(position<0)return this;if(position===0)list.shift();else{spliceOne(list,position)}if(list.length===1)events[type]=list[0];if(events.removeListener!==undefined)this.emit("removeListener",type,originalListener||listener)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(events===undefined)return this;if(events.removeListener===undefined){if(arguments.length===0){this._events=Object.create(null);this._eventsCount=0}else if(events[type]!==undefined){if(--this._eventsCount===0)this._events=Object.create(null);else delete events[type]}return this}if(arguments.length===0){var keys=Object.keys(events);var key;for(i=0;i=0;i--){this.removeListener(type,listeners[i])}}return this};function _listeners(target,type,unwrap){var events=target._events;if(events===undefined)return[];var evlistener=events[type];if(evlistener===undefined)return[];if(typeof evlistener==="function")return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length)}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true)};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false)};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==="function"){return emitter.listenerCount(type)}else{return listenerCount.call(emitter,type)}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events!==undefined){var evlistener=events[type];if(typeof evlistener==="function"){return 1}else if(evlistener!==undefined){return evlistener.length}}return 0}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(arr,n){var copy=new Array(n);for(var i=0;i1&&typeof allowMissing!=="boolean"){throw new $TypeError('"allowMissing" argument must be a boolean')}var parts=stringToPath(name);var intrinsicBaseName=parts.length>0?parts[0]:"";var intrinsic=getBaseIntrinsic("%"+intrinsicBaseName+"%",allowMissing);var intrinsicRealName=intrinsic.name;var value=intrinsic.value;var skipFurtherCaching=false;var alias=intrinsic.alias;if(alias){intrinsicBaseName=alias[0];$spliceApply(parts,$concat([0,1],alias))}for(var i=1,isOwn=true;i=parts.length){var desc=$gOPD(value,part);isOwn=!!desc;if(isOwn&&"get"in desc&&!("originalValue"in desc.get)){value=desc.get}else{value=value[part]}}else{isOwn=hasOwn(value,part);value=value[part]}if(isOwn&&!skipFurtherCaching){INTRINSICS[intrinsicRealName]=value}}}return value}},{"function-bind":23,has:28,"has-symbols":25}],25:[function(require,module,exports){"use strict";var origSymbol=typeof Symbol!=="undefined"&&Symbol;var hasSymbolSham=require("./shams");module.exports=function hasNativeSymbols(){if(typeof origSymbol!=="function"){return false}if(typeof Symbol!=="function"){return false}if(typeof origSymbol("foo")!=="symbol"){return false}if(typeof Symbol("bar")!=="symbol"){return false}return hasSymbolSham()}},{"./shams":26}],26:[function(require,module,exports){"use strict";module.exports=function hasSymbols(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function"){return false}if(typeof Symbol.iterator==="symbol"){return true}var obj={};var sym=Symbol("test");var symObj=Object(sym);if(typeof sym==="string"){return false}if(Object.prototype.toString.call(sym)!=="[object Symbol]"){return false}if(Object.prototype.toString.call(symObj)!=="[object Symbol]"){return false}var symVal=42;obj[sym]=symVal;for(sym in obj){return false}if(typeof Object.keys==="function"&&Object.keys(obj).length!==0){return false}if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(obj).length!==0){return false}var syms=Object.getOwnPropertySymbols(obj);if(syms.length!==1||syms[0]!==sym){return false}if(!Object.prototype.propertyIsEnumerable.call(obj,sym)){return false}if(typeof Object.getOwnPropertyDescriptor==="function"){var descriptor=Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==true){return false}}return true}},{}],27:[function(require,module,exports){"use strict";var hasSymbols=require("has-symbols/shams");module.exports=function hasToStringTagShams(){return hasSymbols()&&!!Symbol.toStringTag}},{"has-symbols/shams":26}],28:[function(require,module,exports){"use strict";var bind=require("function-bind");module.exports=bind.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":23}],29:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],30:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}}else{module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}}},{}],31:[function(require,module,exports){"use strict";var hasToStringTag=require("has-tostringtag/shams")();var callBound=require("call-bind/callBound");var $toString=callBound("Object.prototype.toString");var isStandardArguments=function isArguments(value){if(hasToStringTag&&value&&typeof value==="object"&&Symbol.toStringTag in value){return false}return $toString(value)==="[object Arguments]"};var isLegacyArguments=function isArguments(value){if(isStandardArguments(value)){return true}return value!==null&&typeof value==="object"&&typeof value.length==="number"&&value.length>=0&&$toString(value)!=="[object Array]"&&$toString(value.callee)==="[object Function]"};var supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;module.exports=supportsStandardArguments?isStandardArguments:isLegacyArguments},{"call-bind/callBound":17,"has-tostringtag/shams":27}],32:[function(require,module,exports){"use strict";var toStr=Object.prototype.toString;var fnToStr=Function.prototype.toString;var isFnRegex=/^\s*(?:function)?\*/;var hasToStringTag=require("has-tostringtag/shams")();var getProto=Object.getPrototypeOf;var getGeneratorFunc=function(){if(!hasToStringTag){return false}try{return Function("return function*() {}")()}catch(e){}};var GeneratorFunction;module.exports=function isGeneratorFunction(fn){if(typeof fn!=="function"){return false}if(isFnRegex.test(fnToStr.call(fn))){return true}if(!hasToStringTag){var str=toStr.call(fn);return str==="[object GeneratorFunction]"}if(!getProto){return false}if(typeof GeneratorFunction==="undefined"){var generatorFunc=getGeneratorFunc();GeneratorFunction=generatorFunc?getProto(generatorFunc):false}return getProto(fn)===GeneratorFunction}},{"has-tostringtag/shams":27}],33:[function(require,module,exports){(function(global){(function(){"use strict";var forEach=require("foreach");var availableTypedArrays=require("available-typed-arrays");var callBound=require("call-bind/callBound");var $toString=callBound("Object.prototype.toString");var hasToStringTag=require("has-tostringtag/shams")();var g=typeof globalThis==="undefined"?global:globalThis;var typedArrays=availableTypedArrays();var $indexOf=callBound("Array.prototype.indexOf",true)||function indexOf(array,value){for(var i=0;i-1}if(!gOPD){return false}return tryTypedArrays(value)}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"available-typed-arrays":11,"call-bind/callBound":17,"es-abstract/helpers/getOwnPropertyDescriptor":19,foreach:21,"has-tostringtag/shams":27}],34:[function(require,module,exports){"use strict";var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError("Object.assign cannot be called with null or undefined")}return Object(val)}function shouldUseNative(){try{if(!Object.assign){return false}var test1=new String("abc");test1[5]="de";if(Object.getOwnPropertyNames(test1)[0]==="5"){return false}var test2={};for(var i=0;i<10;i++){test2["_"+String.fromCharCode(i)]=i}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n]});if(order2.join("")!=="0123456789"){return false}var test3={};"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter});if(Object.keys(Object.assign({},test3)).join("")!=="abcdefghijklmnopqrst"){return false}return true}catch(err){return false}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s1){for(var i=1;i2){return"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(", "),", or ")+expected[len-1]}else if(len===2){return"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1])}else{return"of ".concat(thing," ").concat(expected[0])}}else{return"of ".concat(thing," ").concat(String(expected))}}function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}function endsWith(str,search,this_len){if(this_len===undefined||this_len>str.length){this_len=str.length}return str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){if(typeof start!=="number"){start=0}if(start+search.length>str.length){return false}else{return str.indexOf(search,start)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){var determiner;if(typeof expected==="string"&&startsWith(expected,"not ")){determiner="must not be";expected=expected.replace(/^not /,"")}else{determiner="must be"}var msg;if(endsWith(name," argument")){msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"))}else{var type=includes(name,".")?"property":"argument";msg='The "'.concat(name,'" ').concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}msg+=". Received type ".concat(typeof actual);return msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module.exports.codes=codes},{}],37:[function(require,module,exports){(function(process){(function(){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key)}return keys};module.exports=Duplex;var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);{var keys=objectKeys(Writable.prototype);for(var v=0;v0){if(typeof chunk!=="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk)}if(addToFront){if(state.endEmitted)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else addChunk(stream,state,chunk,true)}else if(state.ended){errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF)}else if(state.destroyed){return false}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state)}else{addChunk(stream,state,chunk,false)}}}else if(!addToFront){state.reading=false;maybeReadMore(stream,state)}}return!state.ended&&(state.length=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=state.length<=state.highWaterMark;n=0}else{state.length-=n;state.awaitDrain=0}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function onEofChunk(stream,state){debug("onEofChunk");if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.sync){emitReadable(stream)}else{state.needReadable=false;if(!state.emittedReadable){state.emittedReadable=true;emitReadable_(stream)}}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable);state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;process.nextTick(emitReadable_,stream)}}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended);if(!state.destroyed&&(state.length||state.ended)){stream.emit("readable");state.emittedReadable=false}state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark;flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",state.awaitDrain);state.awaitDrain++}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)errorOrDestroy(dest,er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function pipeOnDrainFunctionResult(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this,unpipeInfo);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i0;if(state.flowing!==false)this.resume()}else if(ev==="readable"){if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.flowing=false;state.emittedReadable=false;debug("on readable",state.length,state.reading);if(state.length){emitReadable(this)}else if(!state.reading){process.nextTick(nReadingNextTick,this)}}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);if(ev==="readable"){process.nextTick(updateReadableListening,this)}return res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev==="readable"||ev===undefined){process.nextTick(updateReadableListening,this)}return res};function updateReadableListening(self){var state=self._readableState;state.readableListening=self.listenerCount("readable")>0;if(state.resumeScheduled&&!state.paused){state.flowing=true}else if(self.listenerCount("data")>0){self.resume()}}function nReadingNextTick(self){debug("readable nexttick read 0");self.read(0)}Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=!state.readableListening;resume(this,state)}state.paused=false;return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;process.nextTick(resume_,stream,state)}}function resume_(stream,state){debug("resume",state.reading);if(!state.reading){stream.read(0)}state.resumeScheduled=false;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){debug("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);while(state.flowing&&stream.read()!==null){}}Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk)}_this.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===undefined&&typeof stream[i]==="function"){this[i]=function methodWrap(method){return function methodWrapReturnFunction(){return stream[method].apply(stream,arguments)}}(i)}}for(var n=0;n=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=state.buffer.consume(n,state.decoder)}return ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){debug("endReadableNT",state.endEmitted,state.length);if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end");if(state.autoDestroy){var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy()}}}}if(typeof Symbol==="function"){Readable.from=function(iterable,opts){if(from===undefined){from=require("./internal/streams/from")}return from(Readable,iterable,opts)}}function indexOf(xs,x){for(var i=0,l=xs.length;i-1))throw new ERR_UNKNOWN_ENCODING(encoding);this._writableState.defaultEncoding=encoding;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=Buffer.from(chunk,encoding)}return chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding="buffer";chunk=newChunk}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length}},{key:"unshift",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length}},{key:"shift",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0}},{key:"join",value:function join(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next){ret+=s+p.data}return ret}},{key:"concat",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next}return ret}},{key:"consume",value:function consume(n,hasStrings){var ret;if(nstr.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=str.slice(nb)}break}++c}this.length-=c;return ret}},{key:"_getBuffer",value:function _getBuffer(n){var ret=Buffer.allocUnsafe(n);var p=this.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=buf.slice(nb)}break}++c}this.length-=c;return ret}},{key:custom,value:function value(_,options){return inspect(this,_objectSpread({},options,{depth:0,customInspect:false}))}}]);return BufferList}()},{buffer:16,util:15}],44:[function(require,module,exports){(function(process){(function(){"use strict";function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err)}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(err||null,function(err){if(!cb&&err){if(!_this._writableState){process.nextTick(emitErrorAndCloseNT,_this,err)}else if(!_this._writableState.errorEmitted){_this._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,_this,err)}else{process.nextTick(emitCloseNT,_this)}}else if(cb){process.nextTick(emitCloseNT,_this);cb(err)}else{process.nextTick(emitCloseNT,_this)}});return this}function emitErrorAndCloseNT(self,err){emitErrorNT(self,err);emitCloseNT(self)}function emitCloseNT(self){if(self._writableState&&!self._writableState.emitClose)return;if(self._readableState&&!self._readableState.emitClose)return;self.emit("close")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(self,err){self.emit("error",err)}function errorOrDestroy(stream,err){var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit("error",err)}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}}).call(this)}).call(this,require("_process"))},{_process:35}],45:[function(require,module,exports){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}callback.apply(this,args)}}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function eos(stream,opts,callback){if(typeof opts==="function")return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=function onlegacyfinish(){if(!stream.writable)onfinish()};var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=function onfinish(){writable=false;writableEnded=true;if(!readable)callback.call(stream)};var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=function onend(){readable=false;readableEnded=true;if(!writable)callback.call(stream)};var onerror=function onerror(err){callback.call(stream,err)};var onclose=function onclose(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}};var onrequest=function onrequest(){stream.req.on("finish",onfinish)};if(isRequest(stream)){stream.on("complete",onfinish);stream.on("abort",onclose);if(stream.req)onrequest();else stream.on("request",onrequest)}else if(writable&&!stream._writableState){stream.on("end",onlegacyfinish);stream.on("close",onlegacyfinish)}stream.on("end",onend);stream.on("finish",onfinish);if(opts.error!==false)stream.on("error",onerror);stream.on("close",onclose);return function(){stream.removeListener("complete",onfinish);stream.removeListener("abort",onclose);stream.removeListener("request",onrequest);if(stream.req)stream.req.removeListener("finish",onfinish);stream.removeListener("end",onlegacyfinish);stream.removeListener("close",onlegacyfinish);stream.removeListener("finish",onfinish);stream.removeListener("end",onend);stream.removeListener("error",onerror);stream.removeListener("close",onclose)}}module.exports=eos},{"../../../errors":36}],46:[function(require,module,exports){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],47:[function(require,module,exports){"use strict";var eos;function once(callback){var called=false;return function(){if(called)return;called=true;callback.apply(void 0,arguments)}}var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=false;stream.on("close",function(){closed=true});if(eos===undefined)eos=require("./end-of-stream");eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=true;callback()});var destroyed=false;return function(err){if(closed)return;if(destroyed)return;destroyed=true;if(isRequest(stream))return stream.abort();if(typeof stream.destroy==="function")return stream.destroy();callback(err||new ERR_STREAM_DESTROYED("pipe"))}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=="function")return noop;return streams.pop()}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key]}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS("streams")}var error;var destroys=streams.map(function(stream,i){var reading=i0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error)})});return streams.reduce(pipe)}module.exports=pipeline},{"../../../errors":36,"./end-of-stream":45}],48:[function(require,module,exports){"use strict";var ERR_INVALID_OPT_VALUE=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}module.exports={getHighWaterMark:getHighWaterMark}},{"../../../errors":36}],49:[function(require,module,exports){module.exports=require("events").EventEmitter},{events:20}],50:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js");exports.finished=require("./lib/internal/streams/end-of-stream.js");exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":37,"./lib/_stream_passthrough.js":38,"./lib/_stream_readable.js":39,"./lib/_stream_transform.js":40,"./lib/_stream_writable.js":41,"./lib/internal/streams/end-of-stream.js":45,"./lib/internal/streams/pipeline.js":47}],51:[function(require,module,exports){var buffer=require("buffer");var Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer}else{copyProps(buffer,exports);exports.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer.prototype);copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}},{buffer:16}],52:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer;var isEncoding=Buffer.isEncoding||function(encoding){encoding=""+encoding;switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(enc){if(!enc)return"utf8";var retried;while(true){switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase();retried=true}}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=="string"&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;nb=4;break;case"utf8":this.fillLast=utf8FillLast;nb=4;break;case"base64":this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===undefined)return"";i=this.lastNeed;this.lastNeed=0}else{i=0}if(i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3}return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128){self.lastNeed=0;return"�"}if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self.lastNeed=1;return"�"}if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self.lastNeed=2;return"�"}}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"�";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":51}],53:[function(require,module,exports){(function(global){(function(){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation")){return fn}var warned=false;function deprecated(){if(!warned){if(config("throwDeprecation")){throw new Error(msg)}else if(config("traceDeprecation")){console.trace(msg)}else{console.warn(msg)}warned=true}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return false}catch(_){return false}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==="true"}}).call(this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],54:[function(require,module,exports){arguments[4][9][0].apply(exports,arguments)},{dup:9}],55:[function(require,module,exports){"use strict";var isArgumentsObject=require("is-arguments");var isGeneratorFunction=require("is-generator-function");var whichTypedArray=require("which-typed-array");var isTypedArray=require("is-typed-array");function uncurryThis(f){return f.call.bind(f)}var BigIntSupported=typeof BigInt!=="undefined";var SymbolSupported=typeof Symbol!=="undefined";var ObjectToString=uncurryThis(Object.prototype.toString);var numberValue=uncurryThis(Number.prototype.valueOf);var stringValue=uncurryThis(String.prototype.valueOf);var booleanValue=uncurryThis(Boolean.prototype.valueOf);if(BigIntSupported){var bigIntValue=uncurryThis(BigInt.prototype.valueOf)}if(SymbolSupported){var symbolValue=uncurryThis(Symbol.prototype.valueOf)}function checkBoxedPrimitive(value,prototypeValueOf){if(typeof value!=="object"){return false}try{prototypeValueOf(value);return true}catch(e){return false}}exports.isArgumentsObject=isArgumentsObject;exports.isGeneratorFunction=isGeneratorFunction;exports.isTypedArray=isTypedArray;function isPromise(input){return typeof Promise!=="undefined"&&input instanceof Promise||input!==null&&typeof input==="object"&&typeof input.then==="function"&&typeof input.catch==="function"}exports.isPromise=isPromise;function isArrayBufferView(value){if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){return ArrayBuffer.isView(value)}return isTypedArray(value)||isDataView(value)}exports.isArrayBufferView=isArrayBufferView;function isUint8Array(value){return whichTypedArray(value)==="Uint8Array"}exports.isUint8Array=isUint8Array;function isUint8ClampedArray(value){return whichTypedArray(value)==="Uint8ClampedArray"}exports.isUint8ClampedArray=isUint8ClampedArray;function isUint16Array(value){return whichTypedArray(value)==="Uint16Array"}exports.isUint16Array=isUint16Array;function isUint32Array(value){return whichTypedArray(value)==="Uint32Array"}exports.isUint32Array=isUint32Array;function isInt8Array(value){return whichTypedArray(value)==="Int8Array"}exports.isInt8Array=isInt8Array;function isInt16Array(value){return whichTypedArray(value)==="Int16Array"}exports.isInt16Array=isInt16Array;function isInt32Array(value){return whichTypedArray(value)==="Int32Array"}exports.isInt32Array=isInt32Array;function isFloat32Array(value){return whichTypedArray(value)==="Float32Array"}exports.isFloat32Array=isFloat32Array;function isFloat64Array(value){return whichTypedArray(value)==="Float64Array"}exports.isFloat64Array=isFloat64Array;function isBigInt64Array(value){return whichTypedArray(value)==="BigInt64Array"}exports.isBigInt64Array=isBigInt64Array;function isBigUint64Array(value){return whichTypedArray(value)==="BigUint64Array"}exports.isBigUint64Array=isBigUint64Array;function isMapToString(value){return ObjectToString(value)==="[object Map]"}isMapToString.working=typeof Map!=="undefined"&&isMapToString(new Map);function isMap(value){if(typeof Map==="undefined"){return false}return isMapToString.working?isMapToString(value):value instanceof Map}exports.isMap=isMap;function isSetToString(value){return ObjectToString(value)==="[object Set]"}isSetToString.working=typeof Set!=="undefined"&&isSetToString(new Set);function isSet(value){if(typeof Set==="undefined"){return false}return isSetToString.working?isSetToString(value):value instanceof Set}exports.isSet=isSet;function isWeakMapToString(value){return ObjectToString(value)==="[object WeakMap]"}isWeakMapToString.working=typeof WeakMap!=="undefined"&&isWeakMapToString(new WeakMap);function isWeakMap(value){if(typeof WeakMap==="undefined"){return false}return isWeakMapToString.working?isWeakMapToString(value):value instanceof WeakMap}exports.isWeakMap=isWeakMap;function isWeakSetToString(value){return ObjectToString(value)==="[object WeakSet]"}isWeakSetToString.working=typeof WeakSet!=="undefined"&&isWeakSetToString(new WeakSet);function isWeakSet(value){return isWeakSetToString(value)}exports.isWeakSet=isWeakSet;function isArrayBufferToString(value){return ObjectToString(value)==="[object ArrayBuffer]"}isArrayBufferToString.working=typeof ArrayBuffer!=="undefined"&&isArrayBufferToString(new ArrayBuffer);function isArrayBuffer(value){if(typeof ArrayBuffer==="undefined"){return false}return isArrayBufferToString.working?isArrayBufferToString(value):value instanceof ArrayBuffer}exports.isArrayBuffer=isArrayBuffer;function isDataViewToString(value){return ObjectToString(value)==="[object DataView]"}isDataViewToString.working=typeof ArrayBuffer!=="undefined"&&typeof DataView!=="undefined"&&isDataViewToString(new DataView(new ArrayBuffer(1),0,1));function isDataView(value){if(typeof DataView==="undefined"){return false}return isDataViewToString.working?isDataViewToString(value):value instanceof DataView}exports.isDataView=isDataView;var SharedArrayBufferCopy=typeof SharedArrayBuffer!=="undefined"?SharedArrayBuffer:undefined;function isSharedArrayBufferToString(value){return ObjectToString(value)==="[object SharedArrayBuffer]"}function isSharedArrayBuffer(value){if(typeof SharedArrayBufferCopy==="undefined"){return false}if(typeof isSharedArrayBufferToString.working==="undefined"){isSharedArrayBufferToString.working=isSharedArrayBufferToString(new SharedArrayBufferCopy)}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(value):value instanceof SharedArrayBufferCopy}exports.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(value){return ObjectToString(value)==="[object AsyncFunction]"}exports.isAsyncFunction=isAsyncFunction;function isMapIterator(value){return ObjectToString(value)==="[object Map Iterator]"}exports.isMapIterator=isMapIterator;function isSetIterator(value){return ObjectToString(value)==="[object Set Iterator]"}exports.isSetIterator=isSetIterator;function isGeneratorObject(value){return ObjectToString(value)==="[object Generator]"}exports.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(value){return ObjectToString(value)==="[object WebAssembly.Module]"}exports.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(value){return checkBoxedPrimitive(value,numberValue)}exports.isNumberObject=isNumberObject;function isStringObject(value){return checkBoxedPrimitive(value,stringValue)}exports.isStringObject=isStringObject;function isBooleanObject(value){return checkBoxedPrimitive(value,booleanValue)}exports.isBooleanObject=isBooleanObject;function isBigIntObject(value){return BigIntSupported&&checkBoxedPrimitive(value,bigIntValue)}exports.isBigIntObject=isBigIntObject;function isSymbolObject(value){return SymbolSupported&&checkBoxedPrimitive(value,symbolValue)}exports.isSymbolObject=isSymbolObject;function isBoxedPrimitive(value){return isNumberObject(value)||isStringObject(value)||isBooleanObject(value)||isBigIntObject(value)||isSymbolObject(value)}exports.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(value){return typeof Uint8Array!=="undefined"&&(isArrayBuffer(value)||isSharedArrayBuffer(value))}exports.isAnyArrayBuffer=isAnyArrayBuffer;["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(method){Object.defineProperty(exports,method,{enumerable:false,value:function(){throw new Error(method+" is not supported in userland")}})})},{"is-arguments":31,"is-generator-function":32,"is-typed-array":33,"which-typed-array":57}],56:[function(require,module,exports){(function(process){(function(){var getOwnPropertyDescriptors=Object.getOwnPropertyDescriptors||function getOwnPropertyDescriptors(obj){var keys=Object.keys(obj);var descriptors={};for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.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]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}exports.types=require("./support/types");function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;exports.types.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;exports.types.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;exports.types.isNativeError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var kCustomPromisifiedSymbol=typeof Symbol!=="undefined"?Symbol("util.promisify.custom"):undefined;exports.promisify=function promisify(original){if(typeof original!=="function")throw new TypeError('The "original" argument must be of type Function');if(kCustomPromisifiedSymbol&&original[kCustomPromisifiedSymbol]){var fn=original[kCustomPromisifiedSymbol];if(typeof fn!=="function"){throw new TypeError('The "util.promisify.custom" argument must be of type Function')}Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:false,writable:false,configurable:true});return fn}function fn(){var promiseResolve,promiseReject;var promise=new Promise(function(resolve,reject){promiseResolve=resolve;promiseReject=reject});var args=[];for(var i=0;i
-
+
-
+
diff --git a/Tests.LoadTester/Tests.LoadTester.csproj b/Tests.LoadTester/Tests.LoadTester.csproj
index d306c8f8..19339f62 100644
--- a/Tests.LoadTester/Tests.LoadTester.csproj
+++ b/Tests.LoadTester/Tests.LoadTester.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj
index 607ee583..58808c27 100644
--- a/Tests/Tests.csproj
+++ b/Tests/Tests.csproj
@@ -23,12 +23,12 @@
-
-
-
-
-
-
+
+
+
+
+
+