UNPKG

corellium-typescript

Version:
1 lines 1.01 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}const r=e(require("ws"));exports.sendCommand=async(e,n,o,t,s,a)=>{const i=await e.GET("/v1/instances/{instanceId}",{params:{path:{instanceId:n}}});if(i.error)throw new Error(i.error.error);const c=i.data;if(!c.agent?.info)throw new Error("No agent info returned");const d=new URL(`/api/v1/agent/${c.agent.info}`,o);d.protocol="wss:";const f=Math.floor(1e3*Math.random()),w={type:t,op:s,id:f,...a};return new Promise(((e,n)=>{const o=new r(d.toString());o.on("close",(r=>{1e3===r?e(null):n(new Error(`WebSocket closed with code ${r}`))})),o.on("error",(()=>{n(new Error("Error connecting to WebSocket"))})),o.on("open",(()=>{o.send(JSON.stringify(w))})),o.on("message",(r=>{if(!Buffer.isBuffer(r))return void n(new Error("Invalid message data, expecting buffer."));const t=r.toString(),s=JSON.parse(t);s.id?s.error?n(new Error(s.error.message)):f===s.id&&(e(s),o.close()):n(new Error("Invalid message data, expecting id."))}))}))};