UNPKG

@injectivelabs/grpc-web

Version:

gRPC-Web client for browsers (JS/TS)

1 lines 24 kB
var e={18:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(3),s=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var r,s=this;this.headersMap={},e&&("undefined"!=typeof Headers&&e instanceof Headers?n.getHeaderKeys(e).forEach((function(r){n.getHeaderValues(e,r).forEach((function(e){t.splitValues?s.append(r,n.splitHeaderValue(e)):s.append(r,e)}))})):"object"==typeof(r=e)&&"object"==typeof r.headersMap&&"function"==typeof r.forEach?e.forEach((function(e,t){s.append(e,t)})):"undefined"!=typeof Map&&e instanceof Map?e.forEach((function(e,t){s.append(t,e)})):"string"==typeof e?this.appendFromString(e):"object"==typeof e&&Object.getOwnPropertyNames(e).forEach((function(t){var r=e[t];Array.isArray(r)?r.forEach((function(e){s.append(t,e)})):s.append(t,r)})))}return e.prototype.appendFromString=function(e){for(var t=e.split("\r\n"),r=0;r<t.length;r++){var n=t[r],s=n.indexOf(":");if(s>0){var o=n.substring(0,s).trim(),i=n.substring(s+1).trim();this.append(o,i)}}},e.prototype.delete=function(e,t){var r=n.normalizeName(e);if(void 0===t)delete this.headersMap[r];else{var s=this.headersMap[r];if(s){var o=s.indexOf(t);o>=0&&s.splice(o,1),0===s.length&&delete this.headersMap[r]}}},e.prototype.append=function(e,t){var r=this,s=n.normalizeName(e);Array.isArray(this.headersMap[s])||(this.headersMap[s]=[]),Array.isArray(t)?t.forEach((function(e){r.headersMap[s].push(n.normalizeValue(e))})):this.headersMap[s].push(n.normalizeValue(t))},e.prototype.set=function(e,t){var r=n.normalizeName(e);if(Array.isArray(t)){var s=[];t.forEach((function(e){s.push(n.normalizeValue(e))})),this.headersMap[r]=s}else this.headersMap[r]=[n.normalizeValue(t)]},e.prototype.has=function(e,t){var r=this.headersMap[n.normalizeName(e)];if(!Array.isArray(r))return!1;if(void 0!==t){var s=n.normalizeValue(t);return r.indexOf(s)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[n.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach((function(r){e(r,t.headersMap[r])}),this)},e.prototype.toHeaders=function(){if("undefined"!=typeof Headers){var e=new Headers;return this.forEach((function(t,r){r.forEach((function(r){e.append(t,r)}))})),e}throw new Error("Headers class is not defined")},e}();t.BrowserHeaders=s},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(0);t.BrowserHeaders=n.BrowserHeaders},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.iterateHeaders=function(e,t){for(var r=e[Symbol.iterator](),n=r.next();!n.done;)t(n.value[0]),n=r.next()},t.iterateHeadersKeys=function(e,t){for(var r=e.keys(),n=r.next();!n.done;)t(n.value),n=r.next()}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(2);t.normalizeName=function(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()},t.normalizeValue=function(e){return"string"!=typeof e&&(e=String(e)),e},t.getHeaderValues=function(e,t){var r=e;if(r instanceof Headers&&r.getAll)return r.getAll(t);var n=r.get(t);return n&&"string"==typeof n?[n]:n},t.getHeaderKeys=function(e){var t=e,r={},s=[];return t.keys?n.iterateHeadersKeys(t,(function(e){r[e]||(r[e]=!0,s.push(e))})):t.forEach?t.forEach((function(e,t){r[t]||(r[t]=!0,s.push(t))})):n.iterateHeaders(t,(function(e){var t=e[0];r[t]||(r[t]=!0,s.push(t))})),s},t.splitHeaderValue=function(e){var t=[];return e.split(", ").forEach((function(e){e.split(",").forEach((function(e){t.push(e)}))})),t}}])},e.exports=t()},999:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.ChunkParser=t.ChunkType=void 0,t.decodeASCII=i,t.encodeASCII=function(e){const t=new Uint8Array(e.length);for(let r=0;r!==e.length;++r){const n=e.charCodeAt(r);if(!o(n))throw new Error("Metadata contains invalid ASCII");t[r]=n}return t};const n=r(608),s=e=>9===e||10===e||13===e;function o(e){return s(e)||e>=32&&e<=126}function i(e){for(let t=0;t!==e.length;++t)if(!o(e[t]))throw new Error("Metadata is not valid (printable) ASCII");return String.fromCharCode(...Array.prototype.slice.call(e))}function a(e){return!(128&~e.getUint8(0))}function d(e){return e.getUint32(1,!1)}function u(e,t,r){return e.byteLength-t>=r}function c(e,t,r){if(e.slice)return e.slice(t,r);let n=e.length;void 0!==r&&(n=r);const s=new Uint8Array(n-t);let o=0;for(let r=t;r<n;r++)s[o++]=e[r];return s}var h;!function(e){e[e.MESSAGE=1]="MESSAGE",e[e.TRAILERS=2]="TRAILERS"}(h||(t.ChunkType=h={})),t.ChunkParser=class{buffer=null;position=0;parse(e,t){if(0===e.length&&t)return[];const r=[];if(null==this.buffer)this.buffer=e,this.position=0;else if(this.position===this.buffer.byteLength)this.buffer=e,this.position=0;else{const t=this.buffer.byteLength-this.position,r=new Uint8Array(t+e.byteLength),n=c(this.buffer,this.position);r.set(n,0);const s=new Uint8Array(e);r.set(s,t),this.buffer=r,this.position=0}for(;;){if(!u(this.buffer,this.position,5))return r;let e=c(this.buffer,this.position,this.position+5);const t=new DataView(e.buffer,e.byteOffset,e.byteLength),o=d(t);if(!u(this.buffer,this.position,5+o))return r;const p=c(this.buffer,this.position+5,this.position+5+o);if(this.position+=5+o,a(t))return r.push({chunkType:h.TRAILERS,trailers:(s=p,new n.Metadata(i(s)))}),r;r.push({chunkType:h.MESSAGE,data:p})}var s}}},227:function(e,t){var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Code=void 0,t.httpStatusToCode=function(e){switch(e){case 0:return r.Internal;case 200:return r.OK;case 400:return r.InvalidArgument;case 401:return r.Unauthenticated;case 403:return r.PermissionDenied;case 404:return r.NotFound;case 409:return r.Aborted;case 412:return r.FailedPrecondition;case 429:return r.ResourceExhausted;case 499:return r.Canceled;case 500:default:return r.Unknown;case 501:return r.Unimplemented;case 503:return r.Unavailable;case 504:return r.DeadlineExceeded}},function(e){e[e.OK=0]="OK",e[e.Canceled=1]="Canceled",e[e.Unknown=2]="Unknown",e[e.InvalidArgument=3]="InvalidArgument",e[e.DeadlineExceeded=4]="DeadlineExceeded",e[e.NotFound=5]="NotFound",e[e.AlreadyExists=6]="AlreadyExists",e[e.PermissionDenied=7]="PermissionDenied",e[e.ResourceExhausted=8]="ResourceExhausted",e[e.FailedPrecondition=9]="FailedPrecondition",e[e.Aborted=10]="Aborted",e[e.OutOfRange=11]="OutOfRange",e[e.Unimplemented=12]="Unimplemented",e[e.Internal=13]="Internal",e[e.Unavailable=14]="Unavailable",e[e.DataLoss=15]="DataLoss",e[e.Unauthenticated=16]="Unauthenticated"}(r||(t.Code=r={}))},762:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.client=function(e,t){return new u(e,t)};const n=r(608),s=r(999),o=r(227),i=r(746),a=r(241),d=r(785);class u{methodDefinition;props;started=!1;sentFirstMessage=!1;completed=!1;closed=!1;finishedSending=!1;onHeadersCallbacks=[];onMessageCallbacks=[];onEndCallbacks=[];transport;parser=new s.ChunkParser;responseHeaders;responseTrailers;constructor(e,t){this.methodDefinition=e,this.props=t,this.createTransport()}createTransport(){const e=`${this.props.host}/${this.methodDefinition.service.serviceName}/${this.methodDefinition.methodName}`,t={methodDefinition:this.methodDefinition,debug:this.props.debug||!1,url:e,onHeaders:this.onTransportHeaders.bind(this),onChunk:this.onTransportChunk.bind(this),onEnd:this.onTransportEnd.bind(this)};this.props.transport?this.transport=this.props.transport(t):this.transport=(0,a.makeDefaultTransport)(t)}onTransportHeaders(e,t){if(this.props.debug&&(0,i.debug)("onHeaders",e,t),this.closed)this.props.debug&&(0,i.debug)("grpc.onHeaders received after request was closed - ignoring");else if(0===t);else{this.responseHeaders=e,this.props.debug&&(0,i.debug)("onHeaders.responseHeaders",JSON.stringify(this.responseHeaders,null,2));const r=c(e);this.props.debug&&(0,i.debug)("onHeaders.gRPCStatus",r);const n=r&&r>=0?r:(0,o.httpStatusToCode)(t);this.props.debug&&(0,i.debug)("onHeaders.code",n);const s=e.get("grpc-message")||[];if(this.props.debug&&(0,i.debug)("onHeaders.gRPCMessage",s),this.rawOnHeaders(e),n!==o.Code.OK){const t=this.decodeGRPCStatus(s[0]);this.rawOnError(n,t,e)}}}onTransportChunk(e){if(this.closed)return void(this.props.debug&&(0,i.debug)("grpc.onChunk received after request was closed - ignoring"));let t=[];try{t=this.parser.parse(e)}catch(e){return this.props.debug&&(0,i.debug)("onChunk.parsing error",e,e.message),void this.rawOnError(o.Code.Internal,`parsing error: ${e.message}`)}t.forEach((e=>{if(e.chunkType===s.ChunkType.MESSAGE){const t=this.methodDefinition.responseType.deserializeBinary(e.data);this.rawOnMessage(t)}else e.chunkType===s.ChunkType.TRAILERS&&(this.responseHeaders?(this.responseTrailers=new n.Metadata(e.trailers),this.props.debug&&(0,i.debug)("onChunk.trailers",this.responseTrailers)):(this.responseHeaders=new n.Metadata(e.trailers),this.rawOnHeaders(this.responseHeaders)))}))}onTransportEnd(){if(this.props.debug&&(0,i.debug)("grpc.onEnd"),this.closed)return void(this.props.debug&&(0,i.debug)("grpc.onEnd received after request was closed - ignoring"));if(void 0===this.responseTrailers){if(void 0===this.responseHeaders)return void this.rawOnError(o.Code.Unknown,"Response closed without headers");const e=c(this.responseHeaders),t=this.responseHeaders.get("grpc-message");if(this.props.debug&&(0,i.debug)("grpc.headers only response ",e,t),null===e)return void this.rawOnEnd(o.Code.Unknown,"Response closed without grpc-status (Headers only)",this.responseHeaders);const r=this.decodeGRPCStatus(t[0]);return void this.rawOnEnd(e,r,this.responseHeaders)}const e=c(this.responseTrailers);if(null===e)return void this.rawOnError(o.Code.Internal,"Response closed without grpc-status (Trailers provided)");const t=this.responseTrailers.get("grpc-message"),r=this.decodeGRPCStatus(t[0]);this.rawOnEnd(e,r,this.responseTrailers)}decodeGRPCStatus(e){if(!e)return"";try{return decodeURIComponent(e)}catch(t){return e}}rawOnEnd(e,t,r){this.props.debug&&(0,i.debug)("rawOnEnd",e,t,r),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((n=>{if(!this.closed)try{n(e,t,r)}catch(e){setTimeout((()=>{throw e}),0)}})))}rawOnHeaders(e){this.props.debug&&(0,i.debug)("rawOnHeaders",e),this.completed||this.onHeadersCallbacks.forEach((t=>{try{t(e)}catch(e){setTimeout((()=>{throw e}),0)}}))}rawOnError(e,t,r=new n.Metadata){this.props.debug&&(0,i.debug)("rawOnError",e,t),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((n=>{if(!this.closed)try{n(e,t,r)}catch(e){setTimeout((()=>{throw e}),0)}})))}rawOnMessage(e){this.props.debug&&(0,i.debug)("rawOnMessage",e.toObject()),this.completed||this.closed||this.onMessageCallbacks.forEach((t=>{if(!this.closed)try{t(e)}catch(e){setTimeout((()=>{throw e}),0)}}))}onHeaders(e){this.onHeadersCallbacks.push(e)}onMessage(e){this.onMessageCallbacks.push(e)}onEnd(e){this.onEndCallbacks.push(e)}start(e){if(this.started)throw new Error("Client already started - cannot .start()");this.started=!0;const t=new n.Metadata(e||{});t.set("content-type","application/grpc-web+proto"),t.set("x-grpc-web","1"),this.transport.start(t)}send(e){if(!this.started)throw new Error("Client not started - .start() must be called before .send()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .send()");if(!this.methodDefinition.requestStream&&this.sentFirstMessage)throw new Error("Message already sent for non-client-streaming method - cannot .send()");this.sentFirstMessage=!0;const t=(0,d.frameRequest)(e);this.transport.sendMessage(t)}finishSend(){if(!this.started)throw new Error("Client not started - .finishSend() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .finishSend()");this.finishedSending=!0,this.transport.finishSend()}close(){if(!this.started)throw new Error("Client not started - .start() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .close()");this.closed=!0,this.props.debug&&(0,i.debug)("request.abort aborting request"),this.transport.cancel()}}function c(e){const t=e.get("grpc-status")||[];if(t.length>0)try{const e=t[0];return parseInt(e,10)}catch(e){return null}return null}},746:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.debug=function(...e){console.debug?console.debug.apply(null,e):console.log.apply(null,e)}},729:function(e,t,r){var n,s=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&s(t,e,r[i]);return o(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.Code=t.$grpc=t.grpc=void 0;const a=r(18),d=i(r(241)),u=i(r(381)),c=i(r(775)),h=i(r(307)),p=i(r(965)),l=i(r(227)),f=i(r(77)),g=i(r(786)),b=i(r(762));var y;!function(e){e.setDefaultTransport=d.setDefaultTransportFactory,e.CrossBrowserHttpTransport=p.CrossBrowserHttpTransport,e.FetchReadableStreamTransport=u.FetchReadableStreamTransport,e.XhrTransport=h.XhrTransport,e.WebsocketTransport=c.WebsocketTransport,e.Code=l.Code,e.Metadata=a.BrowserHeaders,e.client=function(e,t){return b.client(e,t)},e.invoke=f.invoke,e.unary=g.unary}(y||(t.grpc=y={})),t.$grpc={Code:l.Code,unary:y.unary,client:y.client,invoke:y.invoke,Metadata:a.BrowserHeaders,XhrTransport:y.XhrTransport,setDefaultTransport:y.setDefaultTransport,CrossBrowserHttpTransport:y.CrossBrowserHttpTransport,FetchReadableStreamTransport:y.FetchReadableStreamTransport,WebsocketTransport:y.WebsocketTransport},t.Code=l.Code},77:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.invoke=function(e,t){if(e.requestStream)throw new Error(".invoke cannot be used with client-streaming methods. Use .client instead.");const r=(0,n.client)(e,{host:t.host,transport:t.transport,debug:t.debug});return t.onHeaders&&r.onHeaders(t.onHeaders),t.onMessage&&r.onMessage(t.onMessage),t.onEnd&&r.onEnd(t.onEnd),r.start(t.metadata),r.send(t.request),r.finishSend(),{close:()=>{r.close()}}};const n=r(762)},608:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;const n=r(18);Object.defineProperty(t,"Metadata",{enumerable:!0,get:function(){return n.BrowserHeaders}})},241:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.setDefaultTransportFactory=function(e){s=e},t.makeDefaultTransport=function(e){return s(e)};const n=r(965);let s=e=>(0,n.CrossBrowserHttpTransport)({withCredentials:!1})(e)},381:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.FetchReadableStreamTransport=function(e){return t=>function(e,t){return e.debug&&(0,s.debug)("fetchRequest",e),new o(e,t)}(t,e)},t.detectFetchSupport=function(){return"undefined"!=typeof Response&&Response.prototype.hasOwnProperty("body")&&"function"==typeof Headers};const n=r(608),s=r(746);class o{cancelled=!1;options;init;reader;metadata;controller=self.AbortController&&new AbortController;constructor(e,t){this.options=e,this.init=t}pump(e,t){if(this.reader=e,this.cancelled)return this.options.debug&&(0,s.debug)("Fetch.pump.cancel at first pump"),void this.reader.cancel().catch((e=>{this.options.debug&&(0,s.debug)("Fetch.pump.reader.cancel exception",e)}));this.reader.read().then((e=>{if(e.done)return this.options.onEnd(),t;this.options.onChunk(e.value),this.pump(this.reader,t)})).catch((e=>{this.cancelled?this.options.debug&&(0,s.debug)("Fetch.catch - request cancelled"):(this.cancelled=!0,this.options.debug&&(0,s.debug)("Fetch.catch",e.message),this.options.onEnd(e))}))}send(e){fetch(this.options.url,{...this.init,headers:this.metadata.toHeaders(),method:"POST",body:e,signal:this.controller&&this.controller.signal}).then((e=>{if(this.options.debug&&(0,s.debug)("Fetch.response",e),this.options.onHeaders(new n.Metadata(e.headers),e.status),!e.body)return e;this.pump(e.body.getReader(),e)})).catch((e=>{this.cancelled?this.options.debug&&(0,s.debug)("Fetch.catch - request cancelled"):(this.cancelled=!0,this.options.debug&&(0,s.debug)("Fetch.catch",e.message),this.options.onEnd(e))}))}sendMessage(e){this.send(e)}finishSend(){}start(e){this.metadata=e}cancel(){this.cancelled?this.options.debug&&(0,s.debug)("Fetch.cancel already cancelled"):(this.cancelled=!0,this.controller?(this.options.debug&&(0,s.debug)("Fetch.cancel.controller.abort"),this.controller.abort()):this.options.debug&&(0,s.debug)("Fetch.cancel.missing abort controller"),this.reader?(this.options.debug&&(0,s.debug)("Fetch.cancel.reader.cancel"),this.reader.cancel().catch((e=>{this.options.debug&&(0,s.debug)("Fetch.cancel.reader.cancel exception",e)}))):this.options.debug&&(0,s.debug)("Fetch.cancel before reader"))}}},965:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.CrossBrowserHttpTransport=function(e){if((0,n.detectFetchSupport)()){const t={credentials:e.withCredentials?"include":"same-origin"};return(0,n.FetchReadableStreamTransport)(t)}return(0,s.XhrTransport)({withCredentials:e.withCredentials})};const n=r(381),s=r(307)},307:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.MozChunkedArrayBufferXHR=t.XHR=void 0,t.XhrTransport=function(e){return t=>{if((0,o.detectMozXHRSupport)())return new a(t,e);if((0,o.detectXHROverrideMimeTypeSupport)())return new i(t,e);throw new Error("This environment's XHR implementation cannot support binary transfer.")}},t.stringToArrayBuffer=u;const n=r(608),s=r(746),o=r(263);class i{options;init;xhr;metadata;index;constructor(e,t){this.options=e,this.init=t}onProgressEvent(){this.options.debug&&(0,s.debug)("XHR.onProgressEvent.length: ",this.xhr.response.length);const e=this.xhr.response.substr(this.index);this.index=this.xhr.response.length;const t=u(e);this.options.onChunk(t)}onLoadEvent(){this.options.debug&&(0,s.debug)("XHR.onLoadEvent"),this.options.onEnd()}onStateChange(){this.options.debug&&(0,s.debug)("XHR.onStateChange",this.xhr.readyState),this.xhr.readyState===XMLHttpRequest.HEADERS_RECEIVED&&this.options.onHeaders(new n.Metadata(this.xhr.getAllResponseHeaders()),this.xhr.status)}sendMessage(e){this.xhr.send(e)}responseCallback(e){this.options.onHeaders(new n.Metadata(function(e){const t={};for(let r in e){const n=e[r];e.hasOwnProperty(r)&&void 0!==n&&(t[r]=n)}return t}(e.headers)),e.statusCode)}finishSend(){}start(e){this.metadata=e;const t=new XMLHttpRequest;this.xhr=t,t.open("POST",this.options.url),this.configureXhr(),this.metadata.forEach(((e,r)=>{t.setRequestHeader(e,r.join(", "))})),t.withCredentials=Boolean(this.init.withCredentials),t.addEventListener("readystatechange",this.onStateChange.bind(this)),t.addEventListener("progress",this.onProgressEvent.bind(this)),t.addEventListener("loadend",this.onLoadEvent.bind(this)),t.addEventListener("error",(e=>{this.options.debug&&(0,s.debug)("XHR.error",e),this.options.onEnd(e.error)}))}configureXhr(){this.xhr.responseType="text",this.xhr.overrideMimeType("text/plain; charset=x-user-defined")}cancel(){this.options.debug&&(0,s.debug)("XHR.abort"),this.xhr.abort()}}t.XHR=i;class a extends i{configureXhr(){this.options.debug&&(0,s.debug)("MozXHR.configureXhr: setting responseType to 'moz-chunked-arraybuffer'"),this.xhr.responseType="moz-chunked-arraybuffer"}onProgressEvent(){const e=this.xhr.response;this.options.debug&&(0,s.debug)("MozXHR.onProgressEvent: ",new Uint8Array(e)),this.options.onChunk(new Uint8Array(e))}}function d(e,t){let r=e.charCodeAt(t);if(r>=55296&&r<=56319){const n=e.charCodeAt(t+1);n>=56320&&n<=57343&&(r=65536+(r-55296<<10)+(n-56320))}return r}function u(e){const t=new Uint8Array(e.length);let r=0;for(let n=0;n<e.length;n++){const s=String.prototype.codePointAt?e.codePointAt(n):d(e,n);t[r++]=255&s}return t}t.MozChunkedArrayBufferXHR=a},263:function(e,t){let r;function n(){if(void 0!==r)return r;if(XMLHttpRequest){r=new XMLHttpRequest;try{r.open("GET","https://localhost")}catch(e){}}return r}function s(e){const t=n();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.xhrSupportsResponseType=s,t.detectMozXHRSupport=function(){return"undefined"!=typeof XMLHttpRequest&&s("moz-chunked-arraybuffer")},t.detectXHROverrideMimeTypeSupport=function(){return"undefined"!=typeof XMLHttpRequest&&XMLHttpRequest.prototype.hasOwnProperty("overrideMimeType")}},775:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.WebsocketTransport=function(){return e=>function(e){e.debug&&(0,n.debug)("websocketRequest",e);let t=function(e){if("https://"===e.substr(0,8))return`wss://${e.substr(8)}`;if("http://"===e.substr(0,7))return`ws://${e.substr(7)}`;throw new Error("Websocket transport constructed with non-https:// or http:// host.")}(e.url);const r=[];let a;function d(e){if(e===o.FINISH_SEND)a.send(i);else{const t=e,r=new Int8Array(t.byteLength+1);r.set(new Uint8Array([0])),r.set(t,1),a.send(r)}}return{sendMessage:e=>{a&&a.readyState!==a.CONNECTING?d(e):r.push(e)},finishSend:()=>{a&&a.readyState!==a.CONNECTING?d(o.FINISH_SEND):r.push(o.FINISH_SEND)},start:o=>{a=new WebSocket(t,["grpc-websockets"]),a.binaryType="arraybuffer",a.onopen=function(){e.debug&&(0,n.debug)("websocketRequest.onopen"),a.send(function(e){let t="";return e.forEach(((e,r)=>{t+=`${e}: ${r.join(", ")}\r\n`})),(0,s.encodeASCII)(t)}(o)),r.forEach((e=>{d(e)}))},a.onclose=function(t){e.debug&&(0,n.debug)("websocketRequest.onclose",t),e.onEnd()},a.onerror=function(t){e.debug&&(0,n.debug)("websocketRequest.onerror",t)},a.onmessage=function(t){e.onChunk(new Uint8Array(t.data))}},cancel:()=>{e.debug&&(0,n.debug)("websocket.abort"),a.close()}}}(e)};const n=r(746),s=r(999);var o;!function(e){e[e.FINISH_SEND=1]="FINISH_SEND"}(o||(o={}));const i=new Uint8Array([1])},786:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.unary=function(e,t){if(e.responseStream)throw new Error(".unary cannot be used with server-streaming methods. Use .invoke or .client instead.");if(e.requestStream)throw new Error(".unary cannot be used with client-streaming methods. Use .client instead.");let r=null,o=null;const i=(0,s.client)(e,{host:t.host,transport:t.transport,debug:t.debug});return i.onHeaders((e=>{r=e})),i.onMessage((e=>{o=e})),i.onEnd(((e,s,i)=>{t.onEnd({status:e,statusMessage:s,headers:r||new n.Metadata,message:o,trailers:i})})),i.start(t.metadata),i.send(t.request),i.finishSend(),{close:()=>{i.close()}}};const n=r(608),s=r(762)},785:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.frameRequest=function(e){const t=e.serializeBinary(),r=new ArrayBuffer(t.byteLength+5);return new DataView(r,1,4).setUint32(0,t.length,!1),new Uint8Array(r,5).set(t),new Uint8Array(r)}}},t={};!function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}(729);