@daytonaio/sdk 0.24.2 → 0.24.3
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 +6 -2
- package/src/Daytona.d.ts +1 -0
- package/src/Daytona.js +26 -18
- package/src/Daytona.js.map +1 -1
- package/src/FileSystem.d.ts +2 -0
- package/src/FileSystem.js +24 -9
- package/src/FileSystem.js.map +1 -1
- package/src/Image.d.ts +6 -6
- package/src/Image.js +33 -20
- package/src/Image.js.map +1 -1
- package/src/ObjectStorage.js +10 -5
- package/src/ObjectStorage.js.map +1 -1
- package/src/Process.d.ts +3 -2
- package/src/Process.js +8 -6
- package/src/Process.js.map +1 -1
- package/src/Sandbox.d.ts +3 -2
- package/src/Sandbox.js +4 -2
- package/src/Sandbox.js.map +1 -1
- package/src/Snapshot.d.ts +3 -2
- package/src/Snapshot.js +8 -4
- package/src/Snapshot.js.map +1 -1
- package/src/code-toolbox/SandboxPythonCodeToolbox.js +4 -3
- package/src/code-toolbox/SandboxPythonCodeToolbox.js.map +1 -1
- package/src/code-toolbox/SandboxTsCodeToolbox.js +2 -1
- package/src/code-toolbox/SandboxTsCodeToolbox.js.map +1 -1
- package/src/index.d.ts +1 -1
- package/src/utils/Import.d.ts +189 -0
- package/src/utils/Import.js +40 -0
- package/src/utils/Import.js.map +1 -0
- package/src/utils/Path.js +1 -1
- package/src/utils/Path.js.map +1 -1
- package/src/utils/Runtime.d.ts +33 -0
- package/src/utils/Runtime.js +35 -0
- package/src/utils/Runtime.js.map +1 -0
- package/src/utils/Stream.d.ts +7 -10
- package/src/utils/Stream.js +45 -61
- package/src/utils/Stream.js.map +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
/**
|
|
3
|
+
* In Deno this global exists and has a `version.deno` string;
|
|
4
|
+
* in all other runtimes it will be `undefined`.
|
|
5
|
+
*/
|
|
6
|
+
var Deno: {
|
|
7
|
+
version: {
|
|
8
|
+
deno: string;
|
|
9
|
+
};
|
|
10
|
+
env: {
|
|
11
|
+
get(name: string): string | undefined;
|
|
12
|
+
toObject(): Record<string, string>;
|
|
13
|
+
};
|
|
14
|
+
} | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* In Bun this global exists and has a `version.bun` string;
|
|
17
|
+
* in all other runtimes it will be `undefined`.
|
|
18
|
+
*/
|
|
19
|
+
var Bun: {
|
|
20
|
+
version: {
|
|
21
|
+
bun: string;
|
|
22
|
+
};
|
|
23
|
+
} | undefined;
|
|
24
|
+
}
|
|
25
|
+
export declare enum Runtime {
|
|
26
|
+
NODE = "node",
|
|
27
|
+
DENO = "deno",
|
|
28
|
+
BUN = "bun",
|
|
29
|
+
BROWSER = "browser",
|
|
30
|
+
UNKNOWN = "unknown"
|
|
31
|
+
}
|
|
32
|
+
export declare const RUNTIME: Runtime;
|
|
33
|
+
export declare function getEnvVar(name: string): string | undefined;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2025 Daytona Platforms Inc.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RUNTIME = exports.Runtime = void 0;
|
|
8
|
+
exports.getEnvVar = getEnvVar;
|
|
9
|
+
var Runtime;
|
|
10
|
+
(function (Runtime) {
|
|
11
|
+
Runtime["NODE"] = "node";
|
|
12
|
+
Runtime["DENO"] = "deno";
|
|
13
|
+
Runtime["BUN"] = "bun";
|
|
14
|
+
Runtime["BROWSER"] = "browser";
|
|
15
|
+
Runtime["UNKNOWN"] = "unknown";
|
|
16
|
+
})(Runtime || (exports.Runtime = Runtime = {}));
|
|
17
|
+
exports.RUNTIME = typeof Deno !== 'undefined'
|
|
18
|
+
? Runtime.DENO
|
|
19
|
+
: typeof Bun !== 'undefined' && !!Bun.version
|
|
20
|
+
? Runtime.BUN
|
|
21
|
+
: typeof process !== 'undefined' && !!process.versions?.node
|
|
22
|
+
? Runtime.NODE
|
|
23
|
+
: typeof window !== 'undefined'
|
|
24
|
+
? Runtime.BROWSER
|
|
25
|
+
: Runtime.UNKNOWN;
|
|
26
|
+
function getEnvVar(name) {
|
|
27
|
+
if (exports.RUNTIME === Runtime.NODE || exports.RUNTIME === Runtime.BUN) {
|
|
28
|
+
return process.env[name];
|
|
29
|
+
}
|
|
30
|
+
if (exports.RUNTIME === Runtime.DENO) {
|
|
31
|
+
return Deno.env.get(name);
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=Runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Runtime.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAyCH,8BASC;AA5BD,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,sBAAW,CAAA;IACX,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;AACrB,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB;AAEY,QAAA,OAAO,GAClB,OAAO,IAAI,KAAK,WAAW;IACzB,CAAC,CAAC,OAAO,CAAC,IAAI;IACd,CAAC,CAAC,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO;QAC3C,CAAC,CAAC,OAAO,CAAC,GAAG;QACb,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI;YAC1D,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;gBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;AAE3B,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,eAAO,KAAK,OAAO,CAAC,IAAI,IAAI,eAAO,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QACxD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,eAAO,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/src/utils/Stream.d.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Process a streaming response from
|
|
3
|
-
* ends or if the shouldTerminate function returns True.
|
|
2
|
+
* Process a streaming response from fetch(), where getStream() returns a Fetch Response.
|
|
4
3
|
*
|
|
5
|
-
* @param getStream -
|
|
6
|
-
* @param onChunk
|
|
7
|
-
* @param shouldTerminate
|
|
8
|
-
* @param chunkTimeout
|
|
9
|
-
* @param requireConsecutiveTermination
|
|
10
|
-
* to terminate the stream.
|
|
4
|
+
* @param getStream – zero-arg function that does `await fetch(...)` and returns the Response
|
|
5
|
+
* @param onChunk – called with each decoded UTF-8 chunk
|
|
6
|
+
* @param shouldTerminate – pollable; if true for two consecutive timeouts (or once if requireConsecutiveTermination=false), the loop breaks
|
|
7
|
+
* @param chunkTimeout – milliseconds to wait for a new chunk before calling shouldTerminate()
|
|
8
|
+
* @param requireConsecutiveTermination – whether you need two time-outs in a row to break
|
|
11
9
|
*/
|
|
12
|
-
export declare function processStreamingResponse(getStream: () => Promise<
|
|
13
|
-
onChunk: (chunk: string) => void, shouldTerminate: () => Promise<boolean>, chunkTimeout?: number, requireConsecutiveTermination?: boolean): Promise<void>;
|
|
10
|
+
export declare function processStreamingResponse(getStream: () => Promise<Response>, onChunk: (chunk: string) => void, shouldTerminate: () => Promise<boolean>, chunkTimeout?: number, requireConsecutiveTermination?: boolean): Promise<void>;
|
package/src/utils/Stream.js
CHANGED
|
@@ -6,77 +6,61 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.processStreamingResponse = processStreamingResponse;
|
|
8
8
|
/**
|
|
9
|
-
* Process a streaming response from
|
|
10
|
-
* ends or if the shouldTerminate function returns True.
|
|
9
|
+
* Process a streaming response from fetch(), where getStream() returns a Fetch Response.
|
|
11
10
|
*
|
|
12
|
-
* @param getStream -
|
|
13
|
-
* @param onChunk
|
|
14
|
-
* @param shouldTerminate
|
|
15
|
-
* @param chunkTimeout
|
|
16
|
-
* @param requireConsecutiveTermination
|
|
17
|
-
* to terminate the stream.
|
|
11
|
+
* @param getStream – zero-arg function that does `await fetch(...)` and returns the Response
|
|
12
|
+
* @param onChunk – called with each decoded UTF-8 chunk
|
|
13
|
+
* @param shouldTerminate – pollable; if true for two consecutive timeouts (or once if requireConsecutiveTermination=false), the loop breaks
|
|
14
|
+
* @param chunkTimeout – milliseconds to wait for a new chunk before calling shouldTerminate()
|
|
15
|
+
* @param requireConsecutiveTermination – whether you need two time-outs in a row to break
|
|
18
16
|
*/
|
|
19
|
-
async function processStreamingResponse(getStream,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
async function processStreamingResponse(getStream, onChunk, shouldTerminate, chunkTimeout = 2000, requireConsecutiveTermination = true) {
|
|
18
|
+
const res = await getStream();
|
|
19
|
+
if (!res.body)
|
|
20
|
+
throw new Error('No streaming support');
|
|
21
|
+
const reader = res.body.getReader();
|
|
22
|
+
const decoder = new TextDecoder();
|
|
23
|
+
const TIMEOUT = Symbol();
|
|
24
24
|
let exitCheckStreak = 0;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const cleanup = () => {
|
|
33
|
-
stream.off('data', onData);
|
|
34
|
-
};
|
|
35
|
-
stream.once('data', onData);
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
const terminationPromise = new Promise((resolve, reject) => {
|
|
39
|
-
stream.on('end', () => {
|
|
40
|
-
terminated = true;
|
|
41
|
-
resolve();
|
|
42
|
-
});
|
|
43
|
-
stream.on('close', () => {
|
|
44
|
-
terminated = true;
|
|
45
|
-
resolve();
|
|
46
|
-
});
|
|
47
|
-
stream.on('error', (err) => {
|
|
48
|
-
terminated = true;
|
|
49
|
-
reject(err);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
const processLoop = async () => {
|
|
53
|
-
while (!terminated) {
|
|
54
|
-
if (!nextChunkPromise) {
|
|
55
|
-
nextChunkPromise = readNext();
|
|
25
|
+
// Only one pending read promise at a time:
|
|
26
|
+
let readPromise = null;
|
|
27
|
+
try {
|
|
28
|
+
while (true) {
|
|
29
|
+
// Start a read if none in flight
|
|
30
|
+
if (!readPromise) {
|
|
31
|
+
readPromise = reader.read().then((r) => (r.done ? null : r.value ?? new Uint8Array(0)));
|
|
56
32
|
}
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (shouldEnd) {
|
|
67
|
-
exitCheckStreak += 1;
|
|
68
|
-
if (!requireConsecutiveTermination || exitCheckStreak > 1) {
|
|
33
|
+
// Race that single read against your timeout
|
|
34
|
+
const timeoutPromise = new Promise((r) => setTimeout(() => r(TIMEOUT), chunkTimeout));
|
|
35
|
+
const result = await Promise.race([readPromise, timeoutPromise]);
|
|
36
|
+
if (result === TIMEOUT) {
|
|
37
|
+
// no data yet, but the readPromise is still pending
|
|
38
|
+
const stop = await shouldTerminate();
|
|
39
|
+
if (stop) {
|
|
40
|
+
exitCheckStreak++;
|
|
41
|
+
if (!requireConsecutiveTermination || exitCheckStreak > 1)
|
|
69
42
|
break;
|
|
70
|
-
}
|
|
71
43
|
}
|
|
72
44
|
else {
|
|
73
45
|
exitCheckStreak = 0;
|
|
74
46
|
}
|
|
47
|
+
// loop again—but do NOT overwrite readPromise!
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// readPromise has resolved
|
|
51
|
+
readPromise = null;
|
|
52
|
+
if (result === null) {
|
|
53
|
+
// stream closed
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
// valid chunk
|
|
57
|
+
onChunk(decoder.decode(result));
|
|
58
|
+
exitCheckStreak = 0;
|
|
75
59
|
}
|
|
76
60
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
await reader.cancel();
|
|
64
|
+
}
|
|
81
65
|
}
|
|
82
66
|
//# 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":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/utils/Stream.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,4DAqDC;AA9DD;;;;;;;;GAQG;AACI,KAAK,UAAU,wBAAwB,CAC5C,SAAkC,EAClC,OAAgC,EAChC,eAAuC,EACvC,YAAY,GAAG,IAAI,EACnB,6BAA6B,GAAG,IAAI;IAEpC,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAA;IAC7B,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,IAAI,eAAe,GAAG,CAAC,CAAA;IAEvB,2CAA2C;IAC3C,IAAI,WAAW,GAAsC,IAAI,CAAA;IAEzD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,iCAAiC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,CAAC;YAED,6CAA6C;YAC7C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;YACrG,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;YAEhE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,oDAAoD;gBACpD,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAA;gBACpC,IAAI,IAAI,EAAE,CAAC;oBACT,eAAe,EAAE,CAAA;oBACjB,IAAI,CAAC,6BAA6B,IAAI,eAAe,GAAG,CAAC;wBAAE,MAAK;gBAClE,CAAC;qBAAM,CAAC;oBACN,eAAe,GAAG,CAAC,CAAA;gBACrB,CAAC;gBACD,+CAA+C;YACjD,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,WAAW,GAAG,IAAI,CAAA;gBAClB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,gBAAgB;oBAChB,MAAK;gBACP,CAAC;gBACD,cAAc;gBACd,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC/B,eAAe,GAAG,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;IACvB,CAAC;AACH,CAAC"}
|