/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@akala/json-rpc-ws@15.0.9/dist/esm/browser.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{Connection as BaseConnection,JsonRpcSocketAdapter}from"./shared-connection.js";import{default as Client}from"./shared-client.js";import{default as Errors}from"./errors.js";import debug from"debug";const logger=debug("akala:json-rpc-ws");import*as ws from"./ws/websocket.js";export{ws};export{Client,Errors,BaseConnection,JsonRpcSocketAdapter};class Readable extends ReadableStream{constructor(){super({type:"bytes",start:e=>{this.buffer.length&&e.enqueue(this.buffer.shift())},pull:e=>{this.buffer.length&&e.enqueue(this.buffer.shift())},cancel:e=>{}})}buffer=[];emitError(e){return super.cancel(e)}push(e){this.buffer.push(e)}}export class Connection extends BaseConnection{constructor(e,t){super(e,t)}async sendStream(e,t){const r=t.getReader(),s=await r.read();!s.done&&this.socket.open?this.sendRaw({id:e,result:{event:"data",isBuffer:!0,data:{type:"Buffer",data:s.value}}}):this.socket.open?this.sendRaw({id:e,result:{event:"end"},stream:!1}):logger("socket was closed before end of stream")}isStream(e){return void 0!==e&&!!e&&"function"==typeof e.getReader}buildStream(e,t){const r=new Readable,s=t;Object.getOwnPropertyNames(s).forEach((function(e){if(null==Object.getOwnPropertyDescriptor(t,e)){const r=Object.getOwnPropertyDescriptor(s,e);r&&Object.defineProperty(t,e,r)}}));const n=this.responseHandlers[e]=(t,s)=>{if(t)r.cancel(t);else switch(s.event){case"data":s.data&&r.push(Uint8Array.from(s.data.data)),this.responseHandlers[e]=n;break;case"end":r.push(null)}};return r}}
//# sourceMappingURL=/sm/57bc7fdad0d7ddc114fba6ef0abc83797a0a03cd8bd323f97c65808ef8bde49d.map