@daytonaio/sdk 0.26.0-alpha.14 → 0.26.0-alpha.16
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 +2 -2
- package/src/Process.d.ts +11 -7
- package/src/Process.js +26 -5
- package/src/Process.js.map +1 -1
- package/src/Sandbox.d.ts +22 -1
- package/src/Sandbox.js +28 -1
- package/src/Sandbox.js.map +1 -1
- package/src/utils/Stream.d.ts +11 -0
- package/src/utils/Stream.js +158 -4
- package/src/utils/Stream.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daytonaio/sdk",
|
|
3
|
-
"version": "0.26.0-alpha.
|
|
3
|
+
"version": "0.26.0-alpha.16",
|
|
4
4
|
"description": "TypeScript SDK for Daytona",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"pathe": "^2.0.3",
|
|
35
35
|
"shell-quote": "^1.8.2",
|
|
36
36
|
"tar": "^6.2.0",
|
|
37
|
-
"@daytonaio/api-client": "0.26.0-alpha.
|
|
37
|
+
"@daytonaio/api-client": "0.26.0-alpha.16"
|
|
38
38
|
},
|
|
39
39
|
"packageManager": "yarn@4.6.0",
|
|
40
40
|
"type": "commonjs"
|
package/src/Process.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Command, Configuration, Session, SessionExecuteRequest, SessionExecuteResponse, ToolboxApi } from '@daytonaio/api-client';
|
|
1
|
+
import { Command, Configuration, Session, SessionCommandLogsResponse, SessionExecuteRequest, SessionExecuteResponse, PortPreviewUrl, ToolboxApi } from '@daytonaio/api-client';
|
|
2
2
|
import { SandboxCodeToolbox } from './Sandbox';
|
|
3
3
|
import { ExecuteResponse } from './types/ExecuteResponse';
|
|
4
4
|
/**
|
|
@@ -25,7 +25,8 @@ export declare class Process {
|
|
|
25
25
|
private readonly codeToolbox;
|
|
26
26
|
private readonly toolboxApi;
|
|
27
27
|
private readonly getRootDir;
|
|
28
|
-
|
|
28
|
+
private readonly getPreviewLink;
|
|
29
|
+
constructor(sandboxId: string, clientConfig: Configuration, codeToolbox: SandboxCodeToolbox, toolboxApi: ToolboxApi, getRootDir: () => Promise<string>, getPreviewLink: (port: number) => Promise<PortPreviewUrl>);
|
|
29
30
|
/**
|
|
30
31
|
* Executes a shell command in the Sandbox.
|
|
31
32
|
*
|
|
@@ -197,13 +198,14 @@ export declare class Process {
|
|
|
197
198
|
*
|
|
198
199
|
* @param {string} sessionId - Unique identifier of the session
|
|
199
200
|
* @param {string} commandId - Unique identifier of the command
|
|
200
|
-
* @returns {Promise<
|
|
201
|
+
* @returns {Promise<SessionCommandLogsResponse>} Command logs containing: stdout and stderr
|
|
201
202
|
*
|
|
202
203
|
* @example
|
|
203
204
|
* const logs = await process.getSessionCommandLogs('my-session', 'cmd-123');
|
|
204
|
-
* console.log('
|
|
205
|
+
* console.log('[STDOUT]:', logs.stdout);
|
|
206
|
+
* console.log('[STDERR]:', logs.stderr);
|
|
205
207
|
*/
|
|
206
|
-
getSessionCommandLogs(sessionId: string, commandId: string): Promise<
|
|
208
|
+
getSessionCommandLogs(sessionId: string, commandId: string): Promise<SessionCommandLogsResponse>;
|
|
207
209
|
/**
|
|
208
210
|
* Asynchronously retrieve and process the logs for a command executed in a session as they become available.
|
|
209
211
|
*
|
|
@@ -214,10 +216,12 @@ export declare class Process {
|
|
|
214
216
|
*
|
|
215
217
|
* @example
|
|
216
218
|
* const logs = await process.getSessionCommandLogs('my-session', 'cmd-123', (chunk) => {
|
|
217
|
-
* console.log('
|
|
219
|
+
* console.log('[STDOUT]:', chunk);
|
|
220
|
+
* }, (chunk) => {
|
|
221
|
+
* console.log('[STDERR]:', chunk);
|
|
218
222
|
* });
|
|
219
223
|
*/
|
|
220
|
-
getSessionCommandLogs(sessionId: string, commandId: string,
|
|
224
|
+
getSessionCommandLogs(sessionId: string, commandId: string, onStdout: (chunk: string) => void, onStderr: (chunk: string) => void): Promise<void>;
|
|
221
225
|
/**
|
|
222
226
|
* Lists all active sessions in the Sandbox.
|
|
223
227
|
*
|
package/src/Process.js
CHANGED
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.Process = exports.CodeRunParams = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
8
9
|
const ArtifactParser_1 = require("./utils/ArtifactParser");
|
|
9
10
|
const Stream_1 = require("./utils/Stream");
|
|
10
11
|
const buffer_1 = require("buffer");
|
|
12
|
+
const isomorphic_ws_1 = tslib_1.__importDefault(require("isomorphic-ws"));
|
|
13
|
+
const Runtime_1 = require("./utils/Runtime");
|
|
11
14
|
/**
|
|
12
15
|
* Parameters for code execution.
|
|
13
16
|
*/
|
|
@@ -33,12 +36,14 @@ class Process {
|
|
|
33
36
|
codeToolbox;
|
|
34
37
|
toolboxApi;
|
|
35
38
|
getRootDir;
|
|
36
|
-
|
|
39
|
+
getPreviewLink;
|
|
40
|
+
constructor(sandboxId, clientConfig, codeToolbox, toolboxApi, getRootDir, getPreviewLink) {
|
|
37
41
|
this.sandboxId = sandboxId;
|
|
38
42
|
this.clientConfig = clientConfig;
|
|
39
43
|
this.codeToolbox = codeToolbox;
|
|
40
44
|
this.toolboxApi = toolboxApi;
|
|
41
45
|
this.getRootDir = getRootDir;
|
|
46
|
+
this.getPreviewLink = getPreviewLink;
|
|
42
47
|
}
|
|
43
48
|
/**
|
|
44
49
|
* Executes a shell command in the Sandbox.
|
|
@@ -248,13 +253,29 @@ class Process {
|
|
|
248
253
|
const response = await this.toolboxApi.executeSessionCommand(this.sandboxId, sessionId, req, undefined, timeout ? { timeout: timeout * 1000 } : {});
|
|
249
254
|
return response.data;
|
|
250
255
|
}
|
|
251
|
-
async getSessionCommandLogs(sessionId, commandId,
|
|
252
|
-
if (!
|
|
256
|
+
async getSessionCommandLogs(sessionId, commandId, onStdout, onStderr) {
|
|
257
|
+
if (!onStdout && !onStderr) {
|
|
253
258
|
const response = await this.toolboxApi.getSessionCommandLogs(this.sandboxId, sessionId, commandId);
|
|
254
259
|
return response.data;
|
|
255
260
|
}
|
|
256
|
-
const
|
|
257
|
-
|
|
261
|
+
const previewLink = await this.getPreviewLink(2280);
|
|
262
|
+
const url = `${previewLink.url.replace(/^http/, 'ws')}/process/session/${sessionId}/command/${commandId}/logs?follow=true`;
|
|
263
|
+
onStdout('before choosing between browser and non-browser');
|
|
264
|
+
let ws;
|
|
265
|
+
if (Runtime_1.RUNTIME === Runtime_1.Runtime.BROWSER) {
|
|
266
|
+
onStdout('browser websocket');
|
|
267
|
+
ws = new isomorphic_ws_1.default(url + '&DAYTONA_SANDBOX_AUTH_KEY=' + previewLink.token, `X-Daytona-SDK-Version~${this.clientConfig.baseOptions.headers['X-Daytona-SDK-Version']}`);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
onStdout('non-browser websocket');
|
|
271
|
+
ws = new isomorphic_ws_1.default(url, {
|
|
272
|
+
headers: {
|
|
273
|
+
...this.clientConfig.baseOptions.headers,
|
|
274
|
+
'X-Daytona-Preview-Token': previewLink.token,
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
await (0, Stream_1.stdDemuxStream)(ws, onStdout, onStderr);
|
|
258
279
|
}
|
|
259
280
|
/**
|
|
260
281
|
* Lists all active sessions in the Sandbox.
|
package/src/Process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../../libs/sdk-typescript/src/Process.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../../libs/sdk-typescript/src/Process.ts"],"names":[],"mappings":"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"}
|
package/src/Sandbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ToolboxApi, SandboxState, SandboxApi, Sandbox as SandboxDto, PortPreviewUrl, SandboxVolume, BuildInfo, SandboxBackupStateEnum, Configuration } from '@daytonaio/api-client';
|
|
1
|
+
import { ToolboxApi, SandboxState, SandboxApi, Sandbox as SandboxDto, PortPreviewUrl, SandboxVolume, BuildInfo, SandboxBackupStateEnum, Configuration, SshAccessDto, SshAccessValidationDto } from '@daytonaio/api-client';
|
|
2
2
|
import { FileSystem } from './FileSystem';
|
|
3
3
|
import { Git } from './Git';
|
|
4
4
|
import { CodeRunParams, Process } from './Process';
|
|
@@ -284,6 +284,27 @@ export declare class Sandbox implements SandboxDto {
|
|
|
284
284
|
* Sandbox must be stopped before archiving.
|
|
285
285
|
*/
|
|
286
286
|
archive(): Promise<void>;
|
|
287
|
+
/**
|
|
288
|
+
* Creates an SSH access token for the sandbox.
|
|
289
|
+
*
|
|
290
|
+
* @param {number} expiresInMinutes - The number of minutes the SSH access token will be valid for.
|
|
291
|
+
* @returns {Promise<SshAccessDto>} The SSH access token.
|
|
292
|
+
*/
|
|
293
|
+
createSshAccess(expiresInMinutes?: number): Promise<SshAccessDto>;
|
|
294
|
+
/**
|
|
295
|
+
* Revokes an SSH access token for the sandbox.
|
|
296
|
+
*
|
|
297
|
+
* @param {string} token - The token to revoke.
|
|
298
|
+
* @returns {Promise<void>}
|
|
299
|
+
*/
|
|
300
|
+
revokeSshAccess(token: string): Promise<void>;
|
|
301
|
+
/**
|
|
302
|
+
* Validates an SSH access token for the sandbox.
|
|
303
|
+
*
|
|
304
|
+
* @param {string} token - The token to validate.
|
|
305
|
+
* @returns {Promise<SshAccessValidationDto>} The SSH access validation result.
|
|
306
|
+
*/
|
|
307
|
+
validateSshAccess(token: string): Promise<SshAccessValidationDto>;
|
|
287
308
|
private getRootDir;
|
|
288
309
|
/**
|
|
289
310
|
* Assigns the API sandbox data to the Sandbox object.
|
package/src/Sandbox.js
CHANGED
|
@@ -101,7 +101,7 @@ class Sandbox {
|
|
|
101
101
|
this.rootDir = '';
|
|
102
102
|
this.fs = new FileSystem_1.FileSystem(this.id, this.clientConfig, this.toolboxApi, async () => await this.getRootDir());
|
|
103
103
|
this.git = new Git_1.Git(this.id, this.toolboxApi, async () => await this.getRootDir());
|
|
104
|
-
this.process = new Process_1.Process(this.id, this.clientConfig, this.codeToolbox, this.toolboxApi, async () => await this.getRootDir());
|
|
104
|
+
this.process = new Process_1.Process(this.id, this.clientConfig, this.codeToolbox, this.toolboxApi, async () => await this.getRootDir(), async (port) => await this.getPreviewLink(port));
|
|
105
105
|
this.computerUse = new ComputerUse_1.ComputerUse(this.id, this.toolboxApi);
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
@@ -389,6 +389,33 @@ class Sandbox {
|
|
|
389
389
|
await this.sandboxApi.archiveSandbox(this.id);
|
|
390
390
|
await this.refreshData();
|
|
391
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Creates an SSH access token for the sandbox.
|
|
394
|
+
*
|
|
395
|
+
* @param {number} expiresInMinutes - The number of minutes the SSH access token will be valid for.
|
|
396
|
+
* @returns {Promise<SshAccessDto>} The SSH access token.
|
|
397
|
+
*/
|
|
398
|
+
async createSshAccess(expiresInMinutes) {
|
|
399
|
+
return (await this.sandboxApi.createSshAccess(this.id, undefined, expiresInMinutes)).data;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Revokes an SSH access token for the sandbox.
|
|
403
|
+
*
|
|
404
|
+
* @param {string} token - The token to revoke.
|
|
405
|
+
* @returns {Promise<void>}
|
|
406
|
+
*/
|
|
407
|
+
async revokeSshAccess(token) {
|
|
408
|
+
await this.sandboxApi.revokeSshAccess(this.id, undefined, token);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Validates an SSH access token for the sandbox.
|
|
412
|
+
*
|
|
413
|
+
* @param {string} token - The token to validate.
|
|
414
|
+
* @returns {Promise<SshAccessValidationDto>} The SSH access validation result.
|
|
415
|
+
*/
|
|
416
|
+
async validateSshAccess(token) {
|
|
417
|
+
return (await this.sandboxApi.validateSshAccess(token)).data;
|
|
418
|
+
}
|
|
392
419
|
async getRootDir() {
|
|
393
420
|
if (!this.rootDir) {
|
|
394
421
|
this.rootDir = (await this.getUserRootDir()) || '';
|
package/src/Sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sandbox.js","sourceRoot":"","sources":["../../../../libs/sdk-typescript/src/Sandbox.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"Sandbox.js","sourceRoot":"","sources":["../../../../libs/sdk-typescript/src/Sandbox.ts"],"names":[],"mappings":"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"}
|
package/src/utils/Stream.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import WebSocket from 'isomorphic-ws';
|
|
2
|
+
export declare const STDOUT_PREFIX = 1;
|
|
3
|
+
export declare const STDERR_PREFIX = 2;
|
|
1
4
|
/**
|
|
2
5
|
* Process a streaming response from fetch(), where getStream() returns a Fetch Response.
|
|
3
6
|
*
|
|
@@ -8,3 +11,11 @@
|
|
|
8
11
|
* @param requireConsecutiveTermination – whether you need two time-outs in a row to break
|
|
9
12
|
*/
|
|
10
13
|
export declare function processStreamingResponse(getStream: () => Promise<Response>, onChunk: (chunk: string) => void, shouldTerminate: () => Promise<boolean>, chunkTimeout?: number, requireConsecutiveTermination?: boolean): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Demultiplexes a WebSocket stream into separate stdout and stderr streams.
|
|
16
|
+
*
|
|
17
|
+
* @param socket - The WebSocket instance to demultiplex.
|
|
18
|
+
* @param onStdout - Callback function for stdout messages.
|
|
19
|
+
* @param onStderr - Callback function for stderr messages.
|
|
20
|
+
*/
|
|
21
|
+
export declare function stdDemuxStream(ws: WebSocket, onStdout: (data: string) => void, onStderr: (data: string) => void): Promise<void>;
|
package/src/utils/Stream.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2025 Daytona Platforms Inc.
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STDERR_PREFIX = exports.STDOUT_PREFIX = void 0;
|
|
7
4
|
exports.processStreamingResponse = processStreamingResponse;
|
|
5
|
+
exports.stdDemuxStream = stdDemuxStream;
|
|
6
|
+
const DaytonaError_1 = require("../errors/DaytonaError");
|
|
7
|
+
exports.STDOUT_PREFIX = 1;
|
|
8
|
+
exports.STDERR_PREFIX = 2;
|
|
8
9
|
/**
|
|
9
10
|
* Process a streaming response from fetch(), where getStream() returns a Fetch Response.
|
|
10
11
|
*
|
|
@@ -63,4 +64,157 @@ async function processStreamingResponse(getStream, onChunk, shouldTerminate, chu
|
|
|
63
64
|
await reader.cancel();
|
|
64
65
|
}
|
|
65
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Demultiplexes a WebSocket stream into separate stdout and stderr streams.
|
|
69
|
+
*
|
|
70
|
+
* @param socket - The WebSocket instance to demultiplex.
|
|
71
|
+
* @param onStdout - Callback function for stdout messages.
|
|
72
|
+
* @param onStderr - Callback function for stderr messages.
|
|
73
|
+
*/
|
|
74
|
+
function stdDemuxStream(ws, onStdout, onStderr) {
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
// If running in a browser or any WebSocket supporting binaryType, use ArrayBuffer for binary data
|
|
77
|
+
if ('binaryType' in ws) {
|
|
78
|
+
ws.binaryType = 'arraybuffer'; // ensure binary frames yield ArrayBuffer, not Blob
|
|
79
|
+
}
|
|
80
|
+
const textDecoder = new TextDecoder(); // for decoding UTF-8 bytes to string
|
|
81
|
+
// Event handler for incoming messages (Node: Buffer/ArrayBuffer/String; Browser: event.data etc.)
|
|
82
|
+
const handleMessage = (event) => {
|
|
83
|
+
// Normalize event/data between Node (ws) and browser WebSocket
|
|
84
|
+
const data = event && event instanceof Object && 'data' in event ? event.data : event;
|
|
85
|
+
try {
|
|
86
|
+
// Prepare a Uint8Array for the message data (so we can inspect the first byte and decode the rest)
|
|
87
|
+
let bytes;
|
|
88
|
+
if (typeof data === 'string') {
|
|
89
|
+
// If a text message is received (e.g., older ws or if server sent text), first char is the prefix byte
|
|
90
|
+
const prefix = data.charCodeAt(0);
|
|
91
|
+
const contentText = data.substring(1);
|
|
92
|
+
// Deliver to appropriate stream based on prefix
|
|
93
|
+
if (prefix === exports.STDOUT_PREFIX) {
|
|
94
|
+
onStdout(contentText);
|
|
95
|
+
}
|
|
96
|
+
else if (prefix === exports.STDERR_PREFIX) {
|
|
97
|
+
onStderr(contentText);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
throw new DaytonaError_1.DaytonaError(`Unknown data prefix: '${prefix}'`);
|
|
101
|
+
}
|
|
102
|
+
return; // done handling this message
|
|
103
|
+
}
|
|
104
|
+
else if (data instanceof ArrayBuffer) {
|
|
105
|
+
bytes = new Uint8Array(data);
|
|
106
|
+
}
|
|
107
|
+
else if (ArrayBuffer.isView(data)) {
|
|
108
|
+
// Covers Node.js Buffer (Uint8Array subclass) and other TypedArrays
|
|
109
|
+
bytes = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
110
|
+
}
|
|
111
|
+
else if (data instanceof Blob) {
|
|
112
|
+
// Browser binary frames might be Blob if binaryType wasn't set in time. Convert to ArrayBuffer asynchronously.
|
|
113
|
+
data.arrayBuffer().then((buf) => {
|
|
114
|
+
try {
|
|
115
|
+
processBytes(new Uint8Array(buf));
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
handleError(err);
|
|
119
|
+
}
|
|
120
|
+
}, (err) => {
|
|
121
|
+
handleError(err);
|
|
122
|
+
});
|
|
123
|
+
return; // will continue asynchronously once blob is read
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
throw new Error(`Unsupported message data type: ${Object.prototype.toString.call(data)}`);
|
|
127
|
+
}
|
|
128
|
+
// We have a Uint8Array 'bytes' representing the full message.
|
|
129
|
+
processBytes(bytes);
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
// On any synchronous error in processing, clean up and reject.
|
|
133
|
+
cleanup();
|
|
134
|
+
try {
|
|
135
|
+
ws.close();
|
|
136
|
+
}
|
|
137
|
+
catch (_) {
|
|
138
|
+
/* ignore if already closed */
|
|
139
|
+
}
|
|
140
|
+
reject(err);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
// Process a Uint8Array message: demux by prefix and decode the content
|
|
144
|
+
const processBytes = (bytes) => {
|
|
145
|
+
if (bytes.length < 1)
|
|
146
|
+
return;
|
|
147
|
+
const prefix = bytes[0];
|
|
148
|
+
const contentBytes = bytes.subarray(1);
|
|
149
|
+
// Decode remaining bytes to UTF-8 string (TextDecoder handles multi-byte chars properly)
|
|
150
|
+
const text = textDecoder.decode(contentBytes);
|
|
151
|
+
if (prefix === exports.STDOUT_PREFIX) {
|
|
152
|
+
onStdout(text);
|
|
153
|
+
}
|
|
154
|
+
else if (prefix === exports.STDERR_PREFIX) {
|
|
155
|
+
onStderr(text);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
throw new DaytonaError_1.DaytonaError(`Unknown data prefix: '${prefix}'`);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
// Event handler for errors
|
|
162
|
+
const handleError = (error) => {
|
|
163
|
+
// Convert Event or plain error to Error instance for consistency
|
|
164
|
+
const err = error && error instanceof Event ? new Error('WebSocket error') : error;
|
|
165
|
+
cleanup();
|
|
166
|
+
try {
|
|
167
|
+
ws.close();
|
|
168
|
+
}
|
|
169
|
+
catch (_) {
|
|
170
|
+
/* ignore if already closed */
|
|
171
|
+
}
|
|
172
|
+
reject(err);
|
|
173
|
+
};
|
|
174
|
+
// Event handler for socket closure
|
|
175
|
+
const handleClose = () => {
|
|
176
|
+
cleanup();
|
|
177
|
+
resolve();
|
|
178
|
+
};
|
|
179
|
+
// Cleanup function to remove all listeners to avoid memory leaks
|
|
180
|
+
const cleanup = () => {
|
|
181
|
+
if (ws.removeEventListener) {
|
|
182
|
+
// Browser (EventTarget) style cleanup
|
|
183
|
+
ws.removeEventListener('message', handleMessage);
|
|
184
|
+
ws.removeEventListener('error', handleError);
|
|
185
|
+
ws.removeEventListener('close', handleClose);
|
|
186
|
+
}
|
|
187
|
+
if (ws.off) {
|
|
188
|
+
// Node.js ws (EventEmitter) style cleanup (supported in Node 14+)
|
|
189
|
+
ws.off('message', handleMessage);
|
|
190
|
+
ws.off('error', handleError);
|
|
191
|
+
ws.off('close', handleClose);
|
|
192
|
+
}
|
|
193
|
+
else if (ws.removeListener) {
|
|
194
|
+
// Node.js ws fallback for older Node versions
|
|
195
|
+
;
|
|
196
|
+
ws.removeListener('message', handleMessage);
|
|
197
|
+
ws.removeListener('error', handleError);
|
|
198
|
+
ws.removeListener('close', handleClose);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
// Attach event listeners in a way compatible with both Node (EventEmitter) and browser (EventTarget):
|
|
202
|
+
if (ws.addEventListener) {
|
|
203
|
+
// Browser or WebSocket implementation with EventTarget interface
|
|
204
|
+
ws.addEventListener('message', handleMessage);
|
|
205
|
+
ws.addEventListener('error', handleError);
|
|
206
|
+
ws.addEventListener('close', handleClose);
|
|
207
|
+
}
|
|
208
|
+
else if (ws.on) {
|
|
209
|
+
// Node.js ws library (EventEmitter) interface
|
|
210
|
+
ws.on('message', handleMessage); // ws@8+ yields Buffer for text frames, which we handle via TextDecoder
|
|
211
|
+
ws.on('error', handleError);
|
|
212
|
+
ws.on('close', handleClose);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Unknown WebSocket interface - should not happen with isomorphic-ws
|
|
216
|
+
throw new Error('Unsupported WebSocket implementation');
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
66
220
|
//# sourceMappingURL=Stream.js.map
|
package/src/utils/Stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Stream.ts"],"names":[],"mappings":"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"}
|