@daytonaio/sdk 0.127.0 → 0.128.0-alpha.1
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/LICENSE +190 -0
- package/{src → cjs}/CodeInterpreter.d.ts +1 -0
- package/cjs/CodeInterpreter.d.ts.map +1 -0
- package/cjs/CodeInterpreter.js.map +1 -0
- package/{src → cjs}/ComputerUse.d.ts +1 -0
- package/cjs/ComputerUse.d.ts.map +1 -0
- package/cjs/ComputerUse.js.map +1 -0
- package/{src → cjs}/Daytona.d.ts +1 -0
- package/cjs/Daytona.d.ts.map +1 -0
- package/{src → cjs}/Daytona.js +1 -0
- package/cjs/Daytona.js.map +1 -0
- package/{src → cjs}/FileSystem.d.ts +1 -0
- package/cjs/FileSystem.d.ts.map +1 -0
- package/cjs/FileSystem.js.map +1 -0
- package/{src → cjs}/Git.d.ts +1 -0
- package/cjs/Git.d.ts.map +1 -0
- package/cjs/Git.js.map +1 -0
- package/{src → cjs}/Image.d.ts +21 -0
- package/cjs/Image.d.ts.map +1 -0
- package/{src → cjs}/Image.js +123 -91
- package/cjs/Image.js.map +1 -0
- package/{src → cjs}/LspServer.d.ts +1 -0
- package/cjs/LspServer.d.ts.map +1 -0
- package/cjs/LspServer.js.map +1 -0
- package/{src → cjs}/ObjectStorage.d.ts +1 -0
- package/cjs/ObjectStorage.d.ts.map +1 -0
- package/cjs/ObjectStorage.js.map +1 -0
- package/{src → cjs}/Process.d.ts +1 -0
- package/cjs/Process.d.ts.map +1 -0
- package/cjs/Process.js.map +1 -0
- package/{src → cjs}/PtyHandle.d.ts +1 -0
- package/cjs/PtyHandle.d.ts.map +1 -0
- package/cjs/PtyHandle.js.map +1 -0
- package/cjs/README.md +147 -0
- package/{src → cjs}/Sandbox.d.ts +2 -17
- package/cjs/Sandbox.d.ts.map +1 -0
- package/{src → cjs}/Sandbox.js +1 -27
- package/cjs/Sandbox.js.map +1 -0
- package/{src → cjs}/Snapshot.d.ts +2 -0
- package/cjs/Snapshot.d.ts.map +1 -0
- package/{src → cjs}/Snapshot.js +9 -1
- package/cjs/Snapshot.js.map +1 -0
- package/{src → cjs}/Volume.d.ts +1 -0
- package/cjs/Volume.d.ts.map +1 -0
- package/cjs/Volume.js.map +1 -0
- package/{src → cjs}/code-toolbox/SandboxJsCodeToolbox.d.ts +1 -0
- package/cjs/code-toolbox/SandboxJsCodeToolbox.d.ts.map +1 -0
- package/cjs/code-toolbox/SandboxJsCodeToolbox.js.map +1 -0
- package/{src → cjs}/code-toolbox/SandboxPythonCodeToolbox.d.ts +1 -0
- package/cjs/code-toolbox/SandboxPythonCodeToolbox.d.ts.map +1 -0
- package/cjs/code-toolbox/SandboxPythonCodeToolbox.js.map +1 -0
- package/{src → cjs}/code-toolbox/SandboxTsCodeToolbox.d.ts +1 -0
- package/cjs/code-toolbox/SandboxTsCodeToolbox.d.ts.map +1 -0
- package/cjs/code-toolbox/SandboxTsCodeToolbox.js.map +1 -0
- package/{src → cjs}/errors/DaytonaError.d.ts +1 -0
- package/cjs/errors/DaytonaError.d.ts.map +1 -0
- package/cjs/errors/DaytonaError.js.map +1 -0
- package/{src → cjs}/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js.map +1 -0
- package/cjs/package.json +3 -0
- package/{src → cjs}/types/Charts.d.ts +1 -0
- package/cjs/types/Charts.d.ts.map +1 -0
- package/cjs/types/Charts.js.map +1 -0
- package/{src → cjs}/types/CodeInterpreter.d.ts +1 -0
- package/cjs/types/CodeInterpreter.d.ts.map +1 -0
- package/cjs/types/CodeInterpreter.js.map +1 -0
- package/{src → cjs}/types/ExecuteResponse.d.ts +1 -0
- package/cjs/types/ExecuteResponse.d.ts.map +1 -0
- package/cjs/types/ExecuteResponse.js.map +1 -0
- package/{src → cjs}/types/Pty.d.ts +1 -0
- package/cjs/types/Pty.d.ts.map +1 -0
- package/cjs/types/Pty.js.map +1 -0
- package/{src → cjs}/utils/ArtifactParser.d.ts +1 -0
- package/cjs/utils/ArtifactParser.d.ts.map +1 -0
- package/cjs/utils/ArtifactParser.js.map +1 -0
- package/{src → cjs}/utils/Binary.d.ts +1 -0
- package/cjs/utils/Binary.d.ts.map +1 -0
- package/cjs/utils/Binary.js.map +1 -0
- package/{src → cjs}/utils/FileTransfer.d.ts +1 -0
- package/cjs/utils/FileTransfer.d.ts.map +1 -0
- package/cjs/utils/FileTransfer.js.map +1 -0
- package/{src → cjs}/utils/Import.d.ts +2 -15
- package/cjs/utils/Import.d.ts.map +1 -0
- package/cjs/utils/Import.js +81 -0
- package/cjs/utils/Import.js.map +1 -0
- package/{src → cjs}/utils/Multipart.d.ts +1 -0
- package/cjs/utils/Multipart.d.ts.map +1 -0
- package/cjs/utils/Multipart.js.map +1 -0
- package/{src → cjs}/utils/Runtime.d.ts +1 -0
- package/cjs/utils/Runtime.d.ts.map +1 -0
- package/cjs/utils/Runtime.js.map +1 -0
- package/{src → cjs}/utils/Stream.d.ts +1 -0
- package/cjs/utils/Stream.d.ts.map +1 -0
- package/cjs/utils/Stream.js.map +1 -0
- package/{src → cjs}/utils/WebSocket.d.ts +1 -0
- package/cjs/utils/WebSocket.d.ts.map +1 -0
- package/cjs/utils/WebSocket.js.map +1 -0
- package/esm/CodeInterpreter.d.ts +96 -0
- package/esm/CodeInterpreter.d.ts.map +1 -0
- package/esm/CodeInterpreter.js +295 -0
- package/esm/CodeInterpreter.js.map +1 -0
- package/esm/ComputerUse.d.ts +443 -0
- package/esm/ComputerUse.d.ts.map +1 -0
- package/esm/ComputerUse.js +509 -0
- package/esm/ComputerUse.js.map +1 -0
- package/esm/Daytona.d.ts +354 -0
- package/esm/Daytona.d.ts.map +1 -0
- package/esm/Daytona.js +410 -0
- package/esm/Daytona.js.map +1 -0
- package/esm/FileSystem.d.ts +328 -0
- package/esm/FileSystem.d.ts.map +1 -0
- package/esm/FileSystem.js +331 -0
- package/esm/FileSystem.js.map +1 -0
- package/esm/Git.d.ts +203 -0
- package/esm/Git.d.ts.map +1 -0
- package/esm/Git.js +260 -0
- package/esm/Git.js.map +1 -0
- package/esm/Image.d.ts +285 -0
- package/esm/Image.d.ts.map +1 -0
- package/esm/Image.js +569 -0
- package/esm/Image.js.map +1 -0
- package/esm/LspServer.d.ts +172 -0
- package/esm/LspServer.d.ts.map +1 -0
- package/esm/LspServer.js +204 -0
- package/esm/LspServer.js.map +1 -0
- package/esm/ObjectStorage.d.ts +79 -0
- package/esm/ObjectStorage.d.ts.map +1 -0
- package/esm/ObjectStorage.js +187 -0
- package/esm/ObjectStorage.js.map +1 -0
- package/esm/Process.d.ts +442 -0
- package/esm/Process.d.ts.map +1 -0
- package/esm/Process.js +644 -0
- package/esm/Process.js.map +1 -0
- package/esm/PtyHandle.d.ts +155 -0
- package/esm/PtyHandle.d.ts.map +1 -0
- package/esm/PtyHandle.js +374 -0
- package/esm/PtyHandle.js.map +1 -0
- package/esm/README.md +147 -0
- package/esm/Sandbox.d.ts +359 -0
- package/esm/Sandbox.d.ts.map +1 -0
- package/esm/Sandbox.js +532 -0
- package/esm/Sandbox.js.map +1 -0
- package/esm/Snapshot.d.ts +138 -0
- package/esm/Snapshot.d.ts.map +1 -0
- package/esm/Snapshot.js +207 -0
- package/esm/Snapshot.js.map +1 -0
- package/esm/Volume.d.ts +84 -0
- package/esm/Volume.d.ts.map +1 -0
- package/esm/Volume.js +95 -0
- package/esm/Volume.js.map +1 -0
- package/esm/code-toolbox/SandboxJsCodeToolbox.d.ts +6 -0
- package/esm/code-toolbox/SandboxJsCodeToolbox.d.ts.map +1 -0
- package/esm/code-toolbox/SandboxJsCodeToolbox.js +13 -0
- package/esm/code-toolbox/SandboxJsCodeToolbox.js.map +1 -0
- package/esm/code-toolbox/SandboxPythonCodeToolbox.d.ts +12 -0
- package/esm/code-toolbox/SandboxPythonCodeToolbox.d.ts.map +1 -0
- package/esm/code-toolbox/SandboxPythonCodeToolbox.js +355 -0
- package/esm/code-toolbox/SandboxPythonCodeToolbox.js.map +1 -0
- package/esm/code-toolbox/SandboxTsCodeToolbox.d.ts +6 -0
- package/esm/code-toolbox/SandboxTsCodeToolbox.d.ts.map +1 -0
- package/esm/code-toolbox/SandboxTsCodeToolbox.js +14 -0
- package/esm/code-toolbox/SandboxTsCodeToolbox.js.map +1 -0
- package/esm/errors/DaytonaError.d.ts +32 -0
- package/esm/errors/DaytonaError.d.ts.map +1 -0
- package/esm/errors/DaytonaError.js +44 -0
- package/esm/errors/DaytonaError.js.map +1 -0
- package/esm/index.d.ts +22 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +22 -0
- package/esm/index.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/types/Charts.d.ts +152 -0
- package/esm/types/Charts.d.ts.map +1 -0
- package/esm/types/Charts.js +42 -0
- package/esm/types/Charts.js.map +1 -0
- package/esm/types/CodeInterpreter.d.ts +77 -0
- package/esm/types/CodeInterpreter.d.ts.map +1 -0
- package/esm/types/CodeInterpreter.js +6 -0
- package/esm/types/CodeInterpreter.js.map +1 -0
- package/esm/types/ExecuteResponse.d.ts +26 -0
- package/esm/types/ExecuteResponse.d.ts.map +1 -0
- package/esm/types/ExecuteResponse.js +6 -0
- package/esm/types/ExecuteResponse.js.map +1 -0
- package/esm/types/Pty.d.ts +48 -0
- package/esm/types/Pty.d.ts.map +1 -0
- package/esm/types/Pty.js +6 -0
- package/esm/types/Pty.js.map +1 -0
- package/esm/utils/ArtifactParser.d.ts +14 -0
- package/esm/utils/ArtifactParser.d.ts.map +1 -0
- package/esm/utils/ArtifactParser.js +51 -0
- package/esm/utils/ArtifactParser.js.map +1 -0
- package/esm/utils/Binary.d.ts +39 -0
- package/esm/utils/Binary.d.ts.map +1 -0
- package/esm/utils/Binary.js +157 -0
- package/esm/utils/Binary.js.map +1 -0
- package/esm/utils/FileTransfer.d.ts +15 -0
- package/esm/utils/FileTransfer.d.ts.map +1 -0
- package/esm/utils/FileTransfer.js +209 -0
- package/esm/utils/FileTransfer.js.map +1 -0
- package/esm/utils/Import.d.ts +211 -0
- package/esm/utils/Import.d.ts.map +1 -0
- package/esm/utils/Import.js +45 -0
- package/esm/utils/Import.js.map +1 -0
- package/esm/utils/Multipart.d.ts +27 -0
- package/esm/utils/Multipart.d.ts.map +1 -0
- package/esm/utils/Multipart.js +107 -0
- package/esm/utils/Multipart.js.map +1 -0
- package/esm/utils/Runtime.d.ts +37 -0
- package/esm/utils/Runtime.d.ts.map +1 -0
- package/esm/utils/Runtime.js +57 -0
- package/esm/utils/Runtime.js.map +1 -0
- package/esm/utils/Stream.d.ts +20 -0
- package/esm/utils/Stream.d.ts.map +1 -0
- package/esm/utils/Stream.js +360 -0
- package/esm/utils/Stream.js.map +1 -0
- package/esm/utils/WebSocket.d.ts +10 -0
- package/esm/utils/WebSocket.d.ts.map +1 -0
- package/esm/utils/WebSocket.js +22 -0
- package/esm/utils/WebSocket.js.map +1 -0
- package/package.json +20 -8
- package/src/CodeInterpreter.js.map +0 -1
- package/src/ComputerUse.js.map +0 -1
- package/src/Daytona.js.map +0 -1
- package/src/FileSystem.js.map +0 -1
- package/src/Git.js.map +0 -1
- package/src/Image.js.map +0 -1
- package/src/LspServer.js.map +0 -1
- package/src/ObjectStorage.js.map +0 -1
- package/src/Process.js.map +0 -1
- package/src/PtyHandle.js.map +0 -1
- package/src/Sandbox.js.map +0 -1
- package/src/Snapshot.js.map +0 -1
- package/src/Volume.js.map +0 -1
- package/src/code-toolbox/SandboxJsCodeToolbox.js.map +0 -1
- package/src/code-toolbox/SandboxPythonCodeToolbox.js.map +0 -1
- package/src/code-toolbox/SandboxTsCodeToolbox.js.map +0 -1
- package/src/errors/DaytonaError.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/types/Charts.js.map +0 -1
- package/src/types/CodeInterpreter.js.map +0 -1
- package/src/types/ExecuteResponse.js.map +0 -1
- package/src/types/Pty.js.map +0 -1
- package/src/utils/ArtifactParser.js.map +0 -1
- package/src/utils/Binary.js.map +0 -1
- package/src/utils/FileTransfer.js.map +0 -1
- package/src/utils/Import.js +0 -77
- package/src/utils/Import.js.map +0 -1
- package/src/utils/Multipart.js.map +0 -1
- package/src/utils/Runtime.js.map +0 -1
- package/src/utils/Stream.js.map +0 -1
- package/src/utils/WebSocket.js.map +0 -1
- /package/{src → cjs}/CodeInterpreter.js +0 -0
- /package/{src → cjs}/ComputerUse.js +0 -0
- /package/{src → cjs}/FileSystem.js +0 -0
- /package/{src → cjs}/Git.js +0 -0
- /package/{src → cjs}/LspServer.js +0 -0
- /package/{src → cjs}/ObjectStorage.js +0 -0
- /package/{src → cjs}/Process.js +0 -0
- /package/{src → cjs}/PtyHandle.js +0 -0
- /package/{src → cjs}/Volume.js +0 -0
- /package/{src → cjs}/code-toolbox/SandboxJsCodeToolbox.js +0 -0
- /package/{src → cjs}/code-toolbox/SandboxPythonCodeToolbox.js +0 -0
- /package/{src → cjs}/code-toolbox/SandboxTsCodeToolbox.js +0 -0
- /package/{src → cjs}/errors/DaytonaError.js +0 -0
- /package/{src → cjs}/index.js +0 -0
- /package/{src → cjs}/types/Charts.js +0 -0
- /package/{src → cjs}/types/CodeInterpreter.js +0 -0
- /package/{src → cjs}/types/ExecuteResponse.js +0 -0
- /package/{src → cjs}/types/Pty.js +0 -0
- /package/{src → cjs}/utils/ArtifactParser.js +0 -0
- /package/{src → cjs}/utils/Binary.js +0 -0
- /package/{src → cjs}/utils/FileTransfer.js +0 -0
- /package/{src → cjs}/utils/Multipart.js +0 -0
- /package/{src → cjs}/utils/Runtime.js +0 -0
- /package/{src → cjs}/utils/Stream.js +0 -0
- /package/{src → cjs}/utils/WebSocket.js +0 -0
package/esm/Daytona.js
ADDED
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Daytona Platforms Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Configuration, SnapshotsApi, ObjectStorageApi, SandboxApi, SandboxState, VolumesApi, ConfigApi, } from '@daytonaio/api-client';
|
|
6
|
+
import axios, { AxiosError } from 'axios';
|
|
7
|
+
import { SandboxPythonCodeToolbox } from './code-toolbox/SandboxPythonCodeToolbox.js';
|
|
8
|
+
import { SandboxTsCodeToolbox } from './code-toolbox/SandboxTsCodeToolbox.js';
|
|
9
|
+
import { SandboxJsCodeToolbox } from './code-toolbox/SandboxJsCodeToolbox.js';
|
|
10
|
+
import { DaytonaError, DaytonaNotFoundError, DaytonaRateLimitError } from './errors/DaytonaError.js';
|
|
11
|
+
import { Image } from './Image.js';
|
|
12
|
+
import { Sandbox } from './Sandbox.js';
|
|
13
|
+
import { SnapshotService } from './Snapshot.js';
|
|
14
|
+
import { VolumeService } from './Volume.js';
|
|
15
|
+
import * as packageJson from '../package.json';
|
|
16
|
+
import { processStreamingResponse } from './utils/Stream.js';
|
|
17
|
+
import { getEnvVar, RUNTIME, Runtime } from './utils/Runtime.js';
|
|
18
|
+
/**
|
|
19
|
+
* Supported programming languages for code execution
|
|
20
|
+
*
|
|
21
|
+
* Python is used as the default sandbox language when no language is explicitly specified.
|
|
22
|
+
*/
|
|
23
|
+
export var CodeLanguage;
|
|
24
|
+
(function (CodeLanguage) {
|
|
25
|
+
CodeLanguage["PYTHON"] = "python";
|
|
26
|
+
CodeLanguage["TYPESCRIPT"] = "typescript";
|
|
27
|
+
CodeLanguage["JAVASCRIPT"] = "javascript";
|
|
28
|
+
})(CodeLanguage || (CodeLanguage = {}));
|
|
29
|
+
/**
|
|
30
|
+
* Main class for interacting with the Daytona API.
|
|
31
|
+
* Provides methods for creating, managing, and interacting with Daytona Sandboxes.
|
|
32
|
+
* Can be initialized either with explicit configuration or using environment variables.
|
|
33
|
+
*
|
|
34
|
+
* @property {VolumeService} volume - Service for managing Daytona Volumes
|
|
35
|
+
* @property {SnapshotService} snapshot - Service for managing Daytona Snapshots
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Using environment variables
|
|
39
|
+
* // Uses DAYTONA_API_KEY, DAYTONA_API_URL, DAYTONA_TARGET
|
|
40
|
+
* const daytona = new Daytona();
|
|
41
|
+
* const sandbox = await daytona.create();
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* // Using explicit configuration
|
|
45
|
+
* const config: DaytonaConfig = {
|
|
46
|
+
* apiKey: "your-api-key",
|
|
47
|
+
* apiUrl: "https://your-api.com",
|
|
48
|
+
* target: "us"
|
|
49
|
+
* };
|
|
50
|
+
* const daytona = new Daytona(config);
|
|
51
|
+
*
|
|
52
|
+
* @class
|
|
53
|
+
*/
|
|
54
|
+
export class Daytona {
|
|
55
|
+
clientConfig;
|
|
56
|
+
sandboxApi;
|
|
57
|
+
objectStorageApi;
|
|
58
|
+
configApi;
|
|
59
|
+
target;
|
|
60
|
+
apiKey;
|
|
61
|
+
jwtToken;
|
|
62
|
+
organizationId;
|
|
63
|
+
apiUrl;
|
|
64
|
+
proxyToolboxUrl;
|
|
65
|
+
volume;
|
|
66
|
+
snapshot;
|
|
67
|
+
/**
|
|
68
|
+
* Creates a new Daytona client instance.
|
|
69
|
+
*
|
|
70
|
+
* @param {DaytonaConfig} [config] - Configuration options
|
|
71
|
+
* @throws {DaytonaError} - `DaytonaError` - When API key is missing
|
|
72
|
+
*/
|
|
73
|
+
constructor(config) {
|
|
74
|
+
let apiUrl;
|
|
75
|
+
if (config) {
|
|
76
|
+
this.apiKey = !config?.apiKey && config?.jwtToken ? undefined : config?.apiKey;
|
|
77
|
+
this.jwtToken = config?.jwtToken;
|
|
78
|
+
this.organizationId = config?.organizationId;
|
|
79
|
+
apiUrl = config?.apiUrl || config?.serverUrl;
|
|
80
|
+
this.target = config?.target;
|
|
81
|
+
}
|
|
82
|
+
if ((!config ||
|
|
83
|
+
(!(this.apiKey && apiUrl && this.target) &&
|
|
84
|
+
!(this.jwtToken && this.organizationId && apiUrl && this.target))) &&
|
|
85
|
+
RUNTIME !== Runtime.BROWSER) {
|
|
86
|
+
if (RUNTIME === Runtime.NODE && typeof require !== 'undefined') {
|
|
87
|
+
const dotenv = require('dotenv');
|
|
88
|
+
dotenv.config({ quiet: true });
|
|
89
|
+
dotenv.config({ path: '.env.local', override: true, quiet: true });
|
|
90
|
+
}
|
|
91
|
+
this.apiKey = this.apiKey || (this.jwtToken ? undefined : getEnvVar('DAYTONA_API_KEY'));
|
|
92
|
+
this.jwtToken = this.jwtToken || getEnvVar('DAYTONA_JWT_TOKEN');
|
|
93
|
+
this.organizationId = this.organizationId || getEnvVar('DAYTONA_ORGANIZATION_ID');
|
|
94
|
+
apiUrl = apiUrl || getEnvVar('DAYTONA_API_URL') || getEnvVar('DAYTONA_SERVER_URL');
|
|
95
|
+
this.target = this.target || getEnvVar('DAYTONA_TARGET');
|
|
96
|
+
if (getEnvVar('DAYTONA_SERVER_URL') && !getEnvVar('DAYTONA_API_URL')) {
|
|
97
|
+
console.warn('[Deprecation Warning] Environment variable `DAYTONA_SERVER_URL` is deprecated and will be removed in future versions. Use `DAYTONA_API_URL` instead.');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
this.apiUrl = apiUrl || 'https://app.daytona.io/api';
|
|
101
|
+
const orgHeader = {};
|
|
102
|
+
if (!this.apiKey) {
|
|
103
|
+
if (!this.organizationId) {
|
|
104
|
+
throw new DaytonaError('Organization ID is required when using JWT token');
|
|
105
|
+
}
|
|
106
|
+
orgHeader['X-Daytona-Organization-ID'] = this.organizationId;
|
|
107
|
+
}
|
|
108
|
+
const configuration = new Configuration({
|
|
109
|
+
basePath: this.apiUrl,
|
|
110
|
+
baseOptions: {
|
|
111
|
+
headers: {
|
|
112
|
+
Authorization: `Bearer ${this.apiKey || this.jwtToken}`,
|
|
113
|
+
'X-Daytona-Source': 'typescript-sdk',
|
|
114
|
+
'X-Daytona-SDK-Version': packageJson.version,
|
|
115
|
+
...orgHeader,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
const axiosInstance = this.createAxiosInstance();
|
|
120
|
+
this.sandboxApi = new SandboxApi(configuration, '', axiosInstance);
|
|
121
|
+
this.objectStorageApi = new ObjectStorageApi(configuration, '', axiosInstance);
|
|
122
|
+
this.configApi = new ConfigApi(configuration, '', axiosInstance);
|
|
123
|
+
this.volume = new VolumeService(new VolumesApi(configuration, '', axiosInstance));
|
|
124
|
+
this.snapshot = new SnapshotService(configuration, new SnapshotsApi(configuration, '', axiosInstance), this.objectStorageApi);
|
|
125
|
+
this.clientConfig = configuration;
|
|
126
|
+
}
|
|
127
|
+
async create(params, options = { timeout: 60 }) {
|
|
128
|
+
const startTime = Date.now();
|
|
129
|
+
options = typeof options === 'number' ? { timeout: options } : { ...options };
|
|
130
|
+
if (options.timeout == undefined || options.timeout == null) {
|
|
131
|
+
options.timeout = 60;
|
|
132
|
+
}
|
|
133
|
+
if (params == null) {
|
|
134
|
+
params = { language: 'python' };
|
|
135
|
+
}
|
|
136
|
+
const labels = params.labels || {};
|
|
137
|
+
if (params.language) {
|
|
138
|
+
labels['code-toolbox-language'] = params.language;
|
|
139
|
+
}
|
|
140
|
+
if (options.timeout < 0) {
|
|
141
|
+
throw new DaytonaError('Timeout must be a non-negative number');
|
|
142
|
+
}
|
|
143
|
+
if (params.autoStopInterval !== undefined &&
|
|
144
|
+
(!Number.isInteger(params.autoStopInterval) || params.autoStopInterval < 0)) {
|
|
145
|
+
throw new DaytonaError('autoStopInterval must be a non-negative integer');
|
|
146
|
+
}
|
|
147
|
+
if (params.ephemeral) {
|
|
148
|
+
if (params.autoDeleteInterval !== undefined && params.autoDeleteInterval !== 0) {
|
|
149
|
+
console.warn("'ephemeral' and 'autoDeleteInterval' cannot be used together. If ephemeral is true, autoDeleteInterval will be ignored and set to 0.");
|
|
150
|
+
}
|
|
151
|
+
params.autoDeleteInterval = 0;
|
|
152
|
+
}
|
|
153
|
+
if (params.autoArchiveInterval !== undefined &&
|
|
154
|
+
(!Number.isInteger(params.autoArchiveInterval) || params.autoArchiveInterval < 0)) {
|
|
155
|
+
throw new DaytonaError('autoArchiveInterval must be a non-negative integer');
|
|
156
|
+
}
|
|
157
|
+
const codeToolbox = this.getCodeToolbox(params.language);
|
|
158
|
+
try {
|
|
159
|
+
let buildInfo;
|
|
160
|
+
let snapshot;
|
|
161
|
+
let resources;
|
|
162
|
+
if ('snapshot' in params) {
|
|
163
|
+
snapshot = params.snapshot;
|
|
164
|
+
}
|
|
165
|
+
if ('image' in params) {
|
|
166
|
+
if (typeof params.image === 'string') {
|
|
167
|
+
buildInfo = {
|
|
168
|
+
dockerfileContent: Image.base(params.image).dockerfile,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
else if (params.image instanceof Image) {
|
|
172
|
+
const contextHashes = await SnapshotService.processImageContext(this.objectStorageApi, params.image);
|
|
173
|
+
buildInfo = {
|
|
174
|
+
contextHashes,
|
|
175
|
+
dockerfileContent: params.image.dockerfile,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if ('resources' in params) {
|
|
180
|
+
resources = params.resources;
|
|
181
|
+
}
|
|
182
|
+
const response = await this.sandboxApi.createSandbox({
|
|
183
|
+
name: params.name,
|
|
184
|
+
snapshot: snapshot,
|
|
185
|
+
buildInfo,
|
|
186
|
+
user: params.user,
|
|
187
|
+
env: params.envVars || {},
|
|
188
|
+
labels: labels,
|
|
189
|
+
public: params.public,
|
|
190
|
+
target: this.target,
|
|
191
|
+
cpu: resources?.cpu,
|
|
192
|
+
gpu: resources?.gpu,
|
|
193
|
+
memory: resources?.memory,
|
|
194
|
+
disk: resources?.disk,
|
|
195
|
+
autoStopInterval: params.autoStopInterval,
|
|
196
|
+
autoArchiveInterval: params.autoArchiveInterval,
|
|
197
|
+
autoDeleteInterval: params.autoDeleteInterval,
|
|
198
|
+
volumes: params.volumes,
|
|
199
|
+
networkBlockAll: params.networkBlockAll,
|
|
200
|
+
networkAllowList: params.networkAllowList,
|
|
201
|
+
}, undefined, {
|
|
202
|
+
timeout: options.timeout * 1000,
|
|
203
|
+
});
|
|
204
|
+
let sandboxInstance = response.data;
|
|
205
|
+
if (sandboxInstance.state === SandboxState.PENDING_BUILD && options.onSnapshotCreateLogs) {
|
|
206
|
+
const terminalStates = [
|
|
207
|
+
SandboxState.STARTED,
|
|
208
|
+
SandboxState.STARTING,
|
|
209
|
+
SandboxState.ERROR,
|
|
210
|
+
SandboxState.BUILD_FAILED,
|
|
211
|
+
];
|
|
212
|
+
while (sandboxInstance.state === SandboxState.PENDING_BUILD) {
|
|
213
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
214
|
+
sandboxInstance = (await this.sandboxApi.getSandbox(sandboxInstance.id)).data;
|
|
215
|
+
}
|
|
216
|
+
const url = `${this.clientConfig.basePath}/sandbox/${sandboxInstance.id}/build-logs?follow=true`;
|
|
217
|
+
await processStreamingResponse(() => fetch(url, { method: 'GET', headers: this.clientConfig.baseOptions.headers }), (chunk) => options.onSnapshotCreateLogs?.(chunk.trimEnd()), async () => {
|
|
218
|
+
sandboxInstance = (await this.sandboxApi.getSandbox(sandboxInstance.id)).data;
|
|
219
|
+
return sandboxInstance.state !== undefined && terminalStates.includes(sandboxInstance.state);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
const sandbox = new Sandbox(sandboxInstance, new Configuration(structuredClone(this.clientConfig)), this.createAxiosInstance(), this.sandboxApi, codeToolbox, this.getProxyToolboxUrl.bind(this));
|
|
223
|
+
if (sandbox.state !== 'started') {
|
|
224
|
+
const timeElapsed = Date.now() - startTime;
|
|
225
|
+
await sandbox.waitUntilStarted(options.timeout ? Math.max(0.001, options.timeout - timeElapsed / 1000) : options.timeout);
|
|
226
|
+
}
|
|
227
|
+
return sandbox;
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
if (error instanceof DaytonaError && error.message.includes('Operation timed out')) {
|
|
231
|
+
const errMsg = `Failed to create and start sandbox within ${options.timeout} seconds. Operation timed out.`;
|
|
232
|
+
throw new DaytonaError(errMsg);
|
|
233
|
+
}
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Gets a Sandbox by its ID or name.
|
|
239
|
+
*
|
|
240
|
+
* @param {string} sandboxIdOrName - The ID or name of the Sandbox to retrieve
|
|
241
|
+
* @returns {Promise<Sandbox>} The Sandbox
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* const sandbox = await daytona.get('my-sandbox-id-or-name');
|
|
245
|
+
* console.log(`Sandbox state: ${sandbox.state}`);
|
|
246
|
+
*/
|
|
247
|
+
async get(sandboxIdOrName) {
|
|
248
|
+
const response = await this.sandboxApi.getSandbox(sandboxIdOrName);
|
|
249
|
+
const sandboxInstance = response.data;
|
|
250
|
+
const language = sandboxInstance.labels && sandboxInstance.labels['code-toolbox-language'];
|
|
251
|
+
const codeToolbox = this.getCodeToolbox(language);
|
|
252
|
+
return new Sandbox(sandboxInstance, structuredClone(this.clientConfig), this.createAxiosInstance(), this.sandboxApi, codeToolbox, this.getProxyToolboxUrl.bind(this));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Finds a Sandbox by its ID or name or labels.
|
|
256
|
+
*
|
|
257
|
+
* @param {SandboxFilter} filter - Filter for Sandboxes
|
|
258
|
+
* @returns {Promise<Sandbox>} First Sandbox that matches the ID or name or labels.
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* const sandbox = await daytona.findOne({ labels: { 'my-label': 'my-value' } });
|
|
262
|
+
* console.log(`Sandbox ID: ${sandbox.id}, State: ${sandbox.state}`);
|
|
263
|
+
*/
|
|
264
|
+
async findOne(filter) {
|
|
265
|
+
if (filter.idOrName) {
|
|
266
|
+
return this.get(filter.idOrName);
|
|
267
|
+
}
|
|
268
|
+
const result = await this.list(filter.labels, 1, 1);
|
|
269
|
+
if (result.items.length === 0) {
|
|
270
|
+
const errMsg = `No sandbox found with labels ${JSON.stringify(filter.labels)}`;
|
|
271
|
+
throw new DaytonaError(errMsg);
|
|
272
|
+
}
|
|
273
|
+
return result.items[0];
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Returns paginated list of Sandboxes filtered by labels.
|
|
277
|
+
*
|
|
278
|
+
* @param {Record<string, string>} [labels] - Labels to filter Sandboxes
|
|
279
|
+
* @param {number} [page] - Page number for pagination (starting from 1)
|
|
280
|
+
* @param {number} [limit] - Maximum number of items per page
|
|
281
|
+
* @returns {Promise<PaginatedSandboxes>} Paginated list of Sandboxes that match the labels.
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* const result = await daytona.list({ 'my-label': 'my-value' }, 2, 10);
|
|
285
|
+
* for (const sandbox of result.items) {
|
|
286
|
+
* console.log(`${sandbox.id}: ${sandbox.state}`);
|
|
287
|
+
* }
|
|
288
|
+
*/
|
|
289
|
+
async list(labels, page, limit) {
|
|
290
|
+
const response = await this.sandboxApi.listSandboxesPaginated(undefined, page, limit, undefined, undefined, labels ? JSON.stringify(labels) : undefined);
|
|
291
|
+
return {
|
|
292
|
+
items: response.data.items.map((sandbox) => {
|
|
293
|
+
const language = sandbox.labels?.['code-toolbox-language'];
|
|
294
|
+
return new Sandbox(sandbox, structuredClone(this.clientConfig), this.createAxiosInstance(), this.sandboxApi, this.getCodeToolbox(language), this.getProxyToolboxUrl.bind(this));
|
|
295
|
+
}),
|
|
296
|
+
total: response.data.total,
|
|
297
|
+
page: response.data.page,
|
|
298
|
+
totalPages: response.data.totalPages,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Starts a Sandbox and waits for it to be ready.
|
|
303
|
+
*
|
|
304
|
+
* @param {Sandbox} sandbox - The Sandbox to start
|
|
305
|
+
* @param {number} [timeout] - Optional timeout in seconds (0 means no timeout)
|
|
306
|
+
* @returns {Promise<void>}
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* const sandbox = await daytona.get('my-sandbox-id');
|
|
310
|
+
* // Wait up to 60 seconds for the sandbox to start
|
|
311
|
+
* await daytona.start(sandbox, 60);
|
|
312
|
+
*/
|
|
313
|
+
async start(sandbox, timeout) {
|
|
314
|
+
await sandbox.start(timeout);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Stops a Sandbox.
|
|
318
|
+
*
|
|
319
|
+
* @param {Sandbox} sandbox - The Sandbox to stop
|
|
320
|
+
* @returns {Promise<void>}
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* const sandbox = await daytona.get('my-sandbox-id');
|
|
324
|
+
* await daytona.stop(sandbox);
|
|
325
|
+
*/
|
|
326
|
+
async stop(sandbox) {
|
|
327
|
+
await sandbox.stop();
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Deletes a Sandbox.
|
|
331
|
+
*
|
|
332
|
+
* @param {Sandbox} sandbox - The Sandbox to delete
|
|
333
|
+
* @param {number} timeout - Timeout in seconds (0 means no timeout, default is 60)
|
|
334
|
+
* @returns {Promise<void>}
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* const sandbox = await daytona.get('my-sandbox-id');
|
|
338
|
+
* await daytona.delete(sandbox);
|
|
339
|
+
*/
|
|
340
|
+
async delete(sandbox, timeout = 60) {
|
|
341
|
+
await sandbox.delete(timeout);
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Gets the appropriate code toolbox based on language.
|
|
345
|
+
*
|
|
346
|
+
* @private
|
|
347
|
+
* @param {CodeLanguage} [language] - Programming language for the toolbox
|
|
348
|
+
* @returns {SandboxCodeToolbox} The appropriate code toolbox instance
|
|
349
|
+
* @throws {DaytonaError} - `DaytonaError` - When an unsupported language is specified
|
|
350
|
+
*/
|
|
351
|
+
getCodeToolbox(language) {
|
|
352
|
+
switch (language) {
|
|
353
|
+
case CodeLanguage.JAVASCRIPT:
|
|
354
|
+
return new SandboxJsCodeToolbox();
|
|
355
|
+
case CodeLanguage.TYPESCRIPT:
|
|
356
|
+
return new SandboxTsCodeToolbox();
|
|
357
|
+
case CodeLanguage.PYTHON:
|
|
358
|
+
case undefined:
|
|
359
|
+
return new SandboxPythonCodeToolbox();
|
|
360
|
+
default: {
|
|
361
|
+
const errMsg = `Unsupported language: ${language}, supported languages: ${Object.values(CodeLanguage).join(', ')}`;
|
|
362
|
+
throw new DaytonaError(errMsg);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
createAxiosInstance() {
|
|
367
|
+
const axiosInstance = axios.create({
|
|
368
|
+
timeout: 24 * 60 * 60 * 1000, // 24 hours
|
|
369
|
+
});
|
|
370
|
+
axiosInstance.interceptors.response.use((response) => {
|
|
371
|
+
return response;
|
|
372
|
+
}, (error) => {
|
|
373
|
+
console.log('error', error);
|
|
374
|
+
let errorMessage;
|
|
375
|
+
if (error instanceof AxiosError && error.message.includes('timeout of')) {
|
|
376
|
+
errorMessage = 'Operation timed out';
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
errorMessage = error.response?.data?.message || error.response?.data || error.message || String(error);
|
|
380
|
+
}
|
|
381
|
+
if (typeof errorMessage === 'object') {
|
|
382
|
+
try {
|
|
383
|
+
errorMessage = JSON.stringify(errorMessage);
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
errorMessage = String(errorMessage);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
const statusCode = error.response?.status;
|
|
390
|
+
const headers = error.response?.headers;
|
|
391
|
+
switch (statusCode) {
|
|
392
|
+
case 404:
|
|
393
|
+
throw new DaytonaNotFoundError(errorMessage, statusCode, headers);
|
|
394
|
+
case 429:
|
|
395
|
+
throw new DaytonaRateLimitError(errorMessage, statusCode, headers);
|
|
396
|
+
default:
|
|
397
|
+
throw new DaytonaError(errorMessage, statusCode, headers);
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
return axiosInstance;
|
|
401
|
+
}
|
|
402
|
+
async getProxyToolboxUrl() {
|
|
403
|
+
if (this.proxyToolboxUrl) {
|
|
404
|
+
return this.proxyToolboxUrl;
|
|
405
|
+
}
|
|
406
|
+
this.proxyToolboxUrl = (await this.configApi.configControllerGetConfig()).data.proxyToolboxUrl;
|
|
407
|
+
return this.proxyToolboxUrl;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=Daytona.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Daytona.js","sourceRoot":"","sources":["../../../../../libs/sdk-typescript/src/Daytona.ts"],"names":[],"mappings":"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"}
|