@daytonaio/sdk 0.25.2-alpha.2 → 0.26.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daytonaio/sdk",
3
- "version": "0.25.2-alpha.2",
3
+ "version": "0.26.0-alpha.0",
4
4
  "description": "TypeScript SDK for Daytona",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -68,7 +68,7 @@ async function processStreamingResponse(getStream, onChunk, shouldTerminate, chu
68
68
  }
69
69
  }
70
70
  function stdDemuxStream(socket, onStdout, onStderr) {
71
- // In browser-ish envs, ask for ArrayBuffer not Blob
71
+ // In browser-like environments, force ArrayBuffer instead of Blob:
72
72
  if ('binaryType' in socket) {
73
73
  socket.binaryType = 'arraybuffer';
74
74
  }
@@ -80,10 +80,18 @@ function stdDemuxStream(socket, onStdout, onStderr) {
80
80
  if (cleanedUp)
81
81
  return;
82
82
  cleanedUp = true;
83
- socket.removeAllListeners?.();
84
- socket.off?.('message', onMessage);
85
- socket.off?.('close', onClose);
86
- socket.off?.('error', onError);
83
+ // If ws-style API is present, unregister via EventEmitter:
84
+ if (typeof socket.off === 'function') {
85
+ socket.off('message', unifiedHandler);
86
+ socket.off('close', onClose);
87
+ socket.off('error', onError);
88
+ }
89
+ else {
90
+ // Otherwise assume browser WebSocket and use DOM API:
91
+ socket.removeEventListener('message', unifiedHandler);
92
+ socket.removeEventListener('close', onClose);
93
+ socket.removeEventListener('error', onError);
94
+ }
87
95
  }
88
96
  function process(buf) {
89
97
  if (buf.length === 0)
@@ -97,39 +105,51 @@ function stdDemuxStream(socket, onStdout, onStderr) {
97
105
  cleanup();
98
106
  reject(new Error(`Unknown data prefix ${prefix}`));
99
107
  }
100
- // Node/ws-style handler: data can be Buffer, ArrayBuffer, string, Buffer[]
101
- const onMessage = (data) => {
102
- let buf;
108
+ /**
109
+ * A single handler that accepts either:
110
+ * - raw ws data (Buffer, ArrayBuffer, string, Buffer[])
111
+ * - or a DOM MessageEvent with `.data`
112
+ */
113
+ function unifiedHandler(raw) {
114
+ const data = raw instanceof MessageEvent ? raw.data : raw;
103
115
  if (typeof data === 'string') {
104
- buf = encoder.encode(data);
116
+ process(encoder.encode(data));
105
117
  }
106
118
  else if (data instanceof ArrayBuffer) {
107
- buf = new Uint8Array(data);
119
+ process(new Uint8Array(data));
108
120
  }
109
121
  else if (Array.isArray(data)) {
110
- // Buffer[] in Node
111
- buf = new Uint8Array(Buffer.concat(data));
122
+ // Node ws: Buffer[]
123
+ process(new Uint8Array(Buffer.concat(data)));
112
124
  }
113
125
  else if (ArrayBuffer.isView(data)) {
114
126
  const view = data;
115
- buf = new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
127
+ process(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
116
128
  }
117
- else {
118
- // Fallback for Blob in browsers
119
- const blob = data;
120
- blob.arrayBuffer()
129
+ else if (data instanceof Blob) {
130
+ // browser fallback
131
+ data.arrayBuffer()
121
132
  .then(ab => process(new Uint8Array(ab)))
122
133
  .catch(err => { cleanup(); reject(err); });
123
- return;
124
134
  }
125
- process(buf);
126
- };
135
+ else {
136
+ cleanup();
137
+ reject(new Error(`Unknown data type: ${typeof data}`));
138
+ }
139
+ }
127
140
  const onClose = () => { cleanup(); resolve(); };
128
141
  const onError = (err) => { cleanup(); reject(err); };
129
- // Register ws-style listeners
130
- socket.on('message', onMessage);
131
- socket.on('close', onClose);
132
- socket.on('error', onError);
142
+ // Register listeners via whichever API is available:
143
+ if (typeof socket.on === 'function') {
144
+ socket.on('message', unifiedHandler);
145
+ socket.on('close', onClose);
146
+ socket.on('error', onError);
147
+ }
148
+ else {
149
+ socket.addEventListener('message', unifiedHandler);
150
+ socket.addEventListener('close', onClose);
151
+ socket.addEventListener('error', onError);
152
+ }
133
153
  });
134
154
  }
135
155
  //# sourceMappingURL=Stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Stream.ts"],"names":[],"mappings":"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"}