@daytonaio/sdk 0.173.0 → 0.175.1-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.js.map +1 -0
- package/{src → cjs}/ComputerUse.d.ts +1 -0
- package/cjs/ComputerUse.js.map +1 -0
- package/{src → cjs}/Daytona.d.ts +1 -0
- package/{src → cjs}/Daytona.js +19 -17
- package/cjs/Daytona.js.map +1 -0
- package/{src → cjs}/FileSystem.d.ts +88 -5
- package/{src → cjs}/FileSystem.js +121 -35
- package/cjs/FileSystem.js.map +1 -0
- package/{src → cjs}/Git.d.ts +1 -0
- package/cjs/Git.js.map +1 -0
- package/{src → cjs}/Image.d.ts +1 -0
- package/cjs/Image.js.map +1 -0
- package/{src → cjs}/LspServer.d.ts +1 -0
- package/cjs/LspServer.js.map +1 -0
- package/{src → cjs}/ObjectStorage.d.ts +1 -0
- package/cjs/ObjectStorage.js.map +1 -0
- package/{src → cjs}/Process.d.ts +1 -0
- package/cjs/Process.js.map +1 -0
- package/{src → cjs}/PtyHandle.d.ts +1 -0
- package/cjs/PtyHandle.js.map +1 -0
- package/cjs/README.md +180 -0
- package/{src → cjs}/Sandbox.d.ts +1 -0
- package/cjs/Sandbox.js.map +1 -0
- package/{src → cjs}/Snapshot.d.ts +1 -0
- package/cjs/Snapshot.js.map +1 -0
- package/{src → cjs}/Volume.d.ts +1 -0
- package/cjs/Volume.js.map +1 -0
- package/{src → cjs}/errors/DaytonaError.d.ts +1 -0
- package/cjs/errors/DaytonaError.js.map +1 -0
- package/{src → cjs}/index.d.ts +2 -1
- 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.js.map +1 -0
- package/{src → cjs}/types/CodeInterpreter.d.ts +1 -0
- package/cjs/types/CodeInterpreter.js.map +1 -0
- package/{src → cjs}/types/ExecuteResponse.d.ts +1 -0
- package/cjs/types/ExecuteResponse.js.map +1 -0
- package/{src → cjs}/types/Pty.d.ts +1 -0
- package/cjs/types/Pty.js.map +1 -0
- package/{src → cjs}/utils/Binary.d.ts +1 -1
- package/{src → cjs}/utils/Binary.js +8 -2
- package/cjs/utils/Binary.js.map +1 -0
- package/cjs/utils/FileTransfer.d.ts +39 -0
- package/cjs/utils/FileTransfer.js +521 -0
- package/cjs/utils/FileTransfer.js.map +1 -0
- package/cjs/utils/Import.d.ts +40 -0
- package/cjs/utils/Import.js +155 -0
- package/cjs/utils/Import.js.map +1 -0
- package/{src → cjs}/utils/Multipart.d.ts +1 -0
- package/cjs/utils/Multipart.js.map +1 -0
- package/{src → cjs}/utils/Runtime.d.ts +1 -0
- package/cjs/utils/Runtime.js.map +1 -0
- package/{src → cjs}/utils/Stream.d.ts +1 -0
- package/cjs/utils/Stream.js.map +1 -0
- package/{src → cjs}/utils/WebSocket.d.ts +1 -0
- package/cjs/utils/WebSocket.js.map +1 -0
- package/{src → cjs}/utils/otel.decorator.d.ts +1 -0
- package/cjs/utils/otel.decorator.js.map +1 -0
- package/esm/CodeInterpreter.d.ts +95 -0
- package/esm/CodeInterpreter.js +292 -0
- package/esm/CodeInterpreter.js.map +1 -0
- package/esm/ComputerUse.d.ts +539 -0
- package/esm/ComputerUse.js +799 -0
- package/esm/ComputerUse.js.map +1 -0
- package/esm/Daytona.d.ts +357 -0
- package/esm/Daytona.js +530 -0
- package/esm/Daytona.js.map +1 -0
- package/esm/FileSystem.d.ts +453 -0
- package/esm/FileSystem.js +571 -0
- package/esm/FileSystem.js.map +1 -0
- package/esm/Git.d.ts +203 -0
- package/esm/Git.js +322 -0
- package/esm/Git.js.map +1 -0
- package/esm/Image.d.ts +265 -0
- package/esm/Image.js +581 -0
- package/esm/Image.js.map +1 -0
- package/esm/LspServer.d.ts +172 -0
- package/esm/LspServer.js +255 -0
- package/esm/LspServer.js.map +1 -0
- package/esm/ObjectStorage.d.ts +79 -0
- package/esm/ObjectStorage.js +195 -0
- package/esm/ObjectStorage.js.map +1 -0
- package/esm/Process.d.ts +490 -0
- package/esm/Process.js +642 -0
- package/esm/Process.js.map +1 -0
- package/esm/PtyHandle.d.ts +155 -0
- package/esm/PtyHandle.js +412 -0
- package/esm/PtyHandle.js.map +1 -0
- package/esm/README.md +180 -0
- package/esm/Sandbox.d.ts +476 -0
- package/esm/Sandbox.js +901 -0
- package/esm/Sandbox.js.map +1 -0
- package/esm/Snapshot.d.ts +140 -0
- package/esm/Snapshot.js +244 -0
- package/esm/Snapshot.js.map +1 -0
- package/esm/Volume.d.ts +84 -0
- package/esm/Volume.js +115 -0
- package/esm/Volume.js.map +1 -0
- package/esm/errors/DaytonaError.d.ts +171 -0
- package/esm/errors/DaytonaError.js +243 -0
- package/esm/errors/DaytonaError.js.map +1 -0
- package/esm/index.d.ts +22 -0
- package/esm/index.js +21 -0
- package/esm/index.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/types/Charts.d.ts +38 -0
- package/esm/types/Charts.js +33 -0
- package/esm/types/Charts.js.map +1 -0
- package/esm/types/CodeInterpreter.d.ts +77 -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.js +6 -0
- package/esm/types/ExecuteResponse.js.map +1 -0
- package/esm/types/Pty.d.ts +48 -0
- package/esm/types/Pty.js +6 -0
- package/esm/types/Pty.js.map +1 -0
- package/esm/utils/Binary.d.ts +38 -0
- package/esm/utils/Binary.js +163 -0
- package/esm/utils/Binary.js.map +1 -0
- package/esm/utils/FileTransfer.d.ts +39 -0
- package/esm/utils/FileTransfer.js +512 -0
- package/esm/utils/FileTransfer.js.map +1 -0
- package/esm/utils/Import.d.ts +40 -0
- package/esm/utils/Import.js +119 -0
- package/esm/utils/Import.js.map +1 -0
- package/esm/utils/Multipart.d.ts +29 -0
- package/esm/utils/Multipart.js +109 -0
- package/esm/utils/Multipart.js.map +1 -0
- package/esm/utils/Runtime.d.ts +44 -0
- package/esm/utils/Runtime.js +89 -0
- package/esm/utils/Runtime.js.map +1 -0
- package/esm/utils/Stream.d.ts +20 -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.js +22 -0
- package/esm/utils/WebSocket.js.map +1 -0
- package/esm/utils/otel.decorator.d.ts +83 -0
- package/esm/utils/otel.decorator.js +136 -0
- package/esm/utils/otel.decorator.js.map +1 -0
- package/package.json +55 -15
- 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/__tests__/helpers.d.ts +0 -5
- package/src/__tests__/helpers.js +0 -26
- package/src/__tests__/helpers.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/Binary.js.map +0 -1
- package/src/utils/FileTransfer.d.ts +0 -14
- package/src/utils/FileTransfer.js +0 -261
- package/src/utils/FileTransfer.js.map +0 -1
- package/src/utils/Import.d.ts +0 -97
- package/src/utils/Import.js +0 -79
- 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/utils/otel.decorator.js.map +0 -1
- /package/{src → cjs}/CodeInterpreter.js +0 -0
- /package/{src → cjs}/ComputerUse.js +0 -0
- /package/{src → cjs}/Git.js +0 -0
- /package/{src → cjs}/Image.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}/Sandbox.js +0 -0
- /package/{src → cjs}/Snapshot.js +0 -0
- /package/{src → cjs}/Volume.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/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/{src → cjs}/utils/otel.decorator.js +0 -0
|
@@ -0,0 +1,521 @@
|
|
|
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.abortStream = abortStream;
|
|
8
|
+
exports.normalizeResponseStream = normalizeResponseStream;
|
|
9
|
+
exports.processDownloadFilesResponseWithBusboy = processDownloadFilesResponseWithBusboy;
|
|
10
|
+
exports.processDownloadFilesResponseWithBuffered = processDownloadFilesResponseWithBuffered;
|
|
11
|
+
exports.createAbortError = createAbortError;
|
|
12
|
+
exports.coerceUploadSource = coerceUploadSource;
|
|
13
|
+
exports.wrapWithUploadProgress = wrapWithUploadProgress;
|
|
14
|
+
const DaytonaError_1 = require("../errors/DaytonaError");
|
|
15
|
+
const Import_1 = require("./Import");
|
|
16
|
+
const Binary_1 = require("./Binary");
|
|
17
|
+
const Multipart_1 = require("./Multipart");
|
|
18
|
+
const Multipart_2 = require("./Multipart");
|
|
19
|
+
/**
|
|
20
|
+
* Parses a bulk-download error part into the legacy message and structured metadata.
|
|
21
|
+
*/
|
|
22
|
+
function parseDownloadErrorPart(data, contentType) {
|
|
23
|
+
let message = new TextDecoder('utf-8').decode(data).trim();
|
|
24
|
+
if (!contentType || !/application\/json/i.test(contentType)) {
|
|
25
|
+
return { message };
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const payload = JSON.parse(message);
|
|
29
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
|
|
30
|
+
return { message };
|
|
31
|
+
}
|
|
32
|
+
const payloadObject = payload;
|
|
33
|
+
const structuredMessage = payloadObject.message;
|
|
34
|
+
const statusCode = payloadObject.statusCode ?? payloadObject.status_code;
|
|
35
|
+
const errorCode = payloadObject.code ?? payloadObject.error_code;
|
|
36
|
+
if (typeof structuredMessage === 'string') {
|
|
37
|
+
message = structuredMessage;
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
message,
|
|
41
|
+
errorDetails: {
|
|
42
|
+
message,
|
|
43
|
+
statusCode: typeof statusCode === 'number' ? statusCode : undefined,
|
|
44
|
+
errorCode: typeof errorCode === 'string' ? errorCode : undefined,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return { message };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Records a per-file error part on the corresponding download metadata entry.
|
|
54
|
+
*/
|
|
55
|
+
function assignDownloadErrorPart(metadata, data, contentType) {
|
|
56
|
+
const { message, errorDetails } = parseDownloadErrorPart(data, contentType);
|
|
57
|
+
metadata.error = message;
|
|
58
|
+
metadata.errorDetails = errorDetails;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Safely aborts a stream
|
|
62
|
+
*/
|
|
63
|
+
function abortStream(stream) {
|
|
64
|
+
if (stream && typeof stream.destroy === 'function') {
|
|
65
|
+
stream.destroy();
|
|
66
|
+
}
|
|
67
|
+
else if (stream && typeof stream.cancel === 'function') {
|
|
68
|
+
stream.cancel();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Normalizes response data to extract the actual stream
|
|
73
|
+
*/
|
|
74
|
+
function normalizeResponseStream(responseData) {
|
|
75
|
+
if (!responseData || typeof responseData !== 'object') {
|
|
76
|
+
return responseData;
|
|
77
|
+
}
|
|
78
|
+
// WHATWG ReadableStream
|
|
79
|
+
if (responseData.body && typeof responseData.body.getReader === 'function') {
|
|
80
|
+
return responseData.body;
|
|
81
|
+
}
|
|
82
|
+
// Some adapters use .stream
|
|
83
|
+
if (responseData.stream) {
|
|
84
|
+
return responseData.stream;
|
|
85
|
+
}
|
|
86
|
+
return responseData;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Side-channel parser that runs alongside busboy. Busboy 1.x only exposes
|
|
90
|
+
* `{ filename, encoding, mimeType }` for each file part and discards the
|
|
91
|
+
* remaining headers, so it cannot surface `Content-Length` for progress
|
|
92
|
+
* reporting. This observer scans the raw byte stream — fed in lockstep via a
|
|
93
|
+
* `Transform` tap — and queues each part's `Content-Length`. The `'file'`
|
|
94
|
+
* event handler pops one value per emitted part, keeping the queue aligned
|
|
95
|
+
* with busboy's event order.
|
|
96
|
+
*/
|
|
97
|
+
class MultipartHeaderObserver {
|
|
98
|
+
boundary;
|
|
99
|
+
closingBoundary;
|
|
100
|
+
buffer = Buffer.alloc(0);
|
|
101
|
+
state = 'preamble';
|
|
102
|
+
queue = [];
|
|
103
|
+
constructor(boundary) {
|
|
104
|
+
this.boundary = Buffer.from(`--${boundary}`);
|
|
105
|
+
this.closingBoundary = Buffer.concat([Buffer.from('\r\n'), this.boundary]);
|
|
106
|
+
}
|
|
107
|
+
observe(chunk) {
|
|
108
|
+
if (this.state === 'done')
|
|
109
|
+
return;
|
|
110
|
+
this.buffer = Buffer.concat([this.buffer, chunk]);
|
|
111
|
+
while (this.advance()) {
|
|
112
|
+
/* drive the state machine until it stalls awaiting more bytes */
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/** Returns and removes the next part's Content-Length value (undefined when header was absent). */
|
|
116
|
+
next() {
|
|
117
|
+
return this.queue.shift();
|
|
118
|
+
}
|
|
119
|
+
advance() {
|
|
120
|
+
switch (this.state) {
|
|
121
|
+
case 'preamble':
|
|
122
|
+
return this.consumeBoundary(0);
|
|
123
|
+
case 'headers':
|
|
124
|
+
return this.consumeHeaders();
|
|
125
|
+
case 'body':
|
|
126
|
+
return this.consumeBodyToBoundary();
|
|
127
|
+
default:
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
consumeHeaders() {
|
|
132
|
+
const sepIdx = this.buffer.indexOf(HEADER_SEPARATOR);
|
|
133
|
+
if (sepIdx < 0) {
|
|
134
|
+
this.retainTail(HEADER_SEPARATOR.length - 1);
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
this.queue.push(parseContentLength(this.buffer.subarray(0, sepIdx)));
|
|
138
|
+
this.buffer = this.buffer.subarray(sepIdx + HEADER_SEPARATOR.length);
|
|
139
|
+
this.state = 'body';
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
consumeBodyToBoundary() {
|
|
143
|
+
const idx = this.buffer.indexOf(this.closingBoundary);
|
|
144
|
+
if (idx < 0) {
|
|
145
|
+
this.retainTail(this.closingBoundary.length - 1);
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
// Skip the leading CRLF; the rest is a regular boundary line.
|
|
149
|
+
return this.consumeBoundary(idx + 2);
|
|
150
|
+
}
|
|
151
|
+
// Given a buffer position at-or-after "--boundary", advance past the boundary
|
|
152
|
+
// and its trailing CRLF (next part follows) or "--" (multipart terminator).
|
|
153
|
+
// Returns true to drive the outer loop, false when more bytes are needed.
|
|
154
|
+
consumeBoundary(searchFrom) {
|
|
155
|
+
const idx = this.buffer.indexOf(this.boundary, searchFrom);
|
|
156
|
+
if (idx < 0) {
|
|
157
|
+
this.retainTail(this.boundary.length - 1);
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
const after = idx + this.boundary.length;
|
|
161
|
+
if (this.buffer.length < after + 2) {
|
|
162
|
+
this.buffer = this.buffer.subarray(idx);
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
if (this.buffer[after] === 0x2d /* '-' */ && this.buffer[after + 1] === 0x2d /* '-' */) {
|
|
166
|
+
this.state = 'done';
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
if (this.buffer[after] === 0x0d /* CR */ && this.buffer[after + 1] === 0x0a /* LF */) {
|
|
170
|
+
this.buffer = this.buffer.subarray(after + 2);
|
|
171
|
+
this.state = 'headers';
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
// The matched substring was not a real boundary delimiter — skip it.
|
|
175
|
+
return this.consumeBoundary(after);
|
|
176
|
+
}
|
|
177
|
+
retainTail(keep) {
|
|
178
|
+
if (keep > 0 && this.buffer.length > keep) {
|
|
179
|
+
this.buffer = this.buffer.subarray(this.buffer.length - keep);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const HEADER_SEPARATOR = Buffer.from('\r\n\r\n');
|
|
184
|
+
function parseContentLength(headersBlock) {
|
|
185
|
+
const text = headersBlock.toString('latin1');
|
|
186
|
+
for (const line of text.split('\r\n')) {
|
|
187
|
+
const colon = line.indexOf(':');
|
|
188
|
+
if (colon <= 0)
|
|
189
|
+
continue;
|
|
190
|
+
if (line.slice(0, colon).trim().toLowerCase() !== 'content-length')
|
|
191
|
+
continue;
|
|
192
|
+
const value = Number.parseInt(line.slice(colon + 1).trim(), 10);
|
|
193
|
+
return Number.isFinite(value) && value >= 0 ? value : undefined;
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Processes multipart response using busboy (Node.js path).
|
|
199
|
+
*
|
|
200
|
+
* Once the file stream has been handed off via `onFileStream`, errors from the
|
|
201
|
+
* busboy stream are the consumer's concern — they arrive via the file stream's
|
|
202
|
+
* own 'error' event. The inner Promise resolves cleanly in that case to avoid
|
|
203
|
+
* surfacing late teardown errors (busboy's `_final`, premature pipe close)
|
|
204
|
+
* after the caller has already started consuming the file.
|
|
205
|
+
*/
|
|
206
|
+
async function processDownloadFilesResponseWithBusboy(stream, headers, metadataMap, onFileStream) {
|
|
207
|
+
const errPrefix = '"downloadFiles" is not supported: ';
|
|
208
|
+
const busboy = (0, Import_1.dynamicRequire)('busboy', errPrefix);
|
|
209
|
+
const Buffer = (0, Import_1.dynamicRequire)('buffer', errPrefix).Buffer;
|
|
210
|
+
const fileTasks = [];
|
|
211
|
+
const boundary = (0, Multipart_1.extractBoundary)((0, Multipart_1.getHeader)(headers, 'content-type') || '');
|
|
212
|
+
const observer = boundary ? new MultipartHeaderObserver(boundary) : null;
|
|
213
|
+
await new Promise((resolve, reject) => {
|
|
214
|
+
const bb = busboy({
|
|
215
|
+
headers,
|
|
216
|
+
preservePath: true,
|
|
217
|
+
});
|
|
218
|
+
let consumerHandedOff = false;
|
|
219
|
+
bb.on('file', (fieldName, fileStream, fileInfo) => {
|
|
220
|
+
// Pop one queued Content-Length for every emitted part to keep the
|
|
221
|
+
// observer's queue aligned with busboy's event order.
|
|
222
|
+
const totalBytes = observer?.next();
|
|
223
|
+
const source = fileInfo?.filename;
|
|
224
|
+
if (!source) {
|
|
225
|
+
abortStream(stream);
|
|
226
|
+
reject(new DaytonaError_1.DaytonaError(`Received unexpected file "${fileInfo?.filename}".`));
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const metadata = metadataMap.get(source);
|
|
230
|
+
if (!metadata) {
|
|
231
|
+
abortStream(stream);
|
|
232
|
+
reject(new DaytonaError_1.DaytonaError(`Target metadata missing for valid source: ${source}`));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (fieldName === 'error') {
|
|
236
|
+
// Collect per-file error metadata.
|
|
237
|
+
const chunks = [];
|
|
238
|
+
fileStream.on('data', (chunk) => chunks.push(chunk));
|
|
239
|
+
fileStream.on('end', () => {
|
|
240
|
+
assignDownloadErrorPart(metadata, Buffer.concat(chunks), fileInfo?.mimeType);
|
|
241
|
+
});
|
|
242
|
+
fileStream.on('error', (err) => {
|
|
243
|
+
metadata.error = `Stream error: ${err.message}`;
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
else if (fieldName === 'file') {
|
|
247
|
+
if (onFileStream) {
|
|
248
|
+
consumerHandedOff = true;
|
|
249
|
+
fileStream.on('error', () => {
|
|
250
|
+
return;
|
|
251
|
+
});
|
|
252
|
+
onFileStream(source, fileStream, totalBytes);
|
|
253
|
+
}
|
|
254
|
+
else if (metadata.destination) {
|
|
255
|
+
// Stream to file
|
|
256
|
+
fileTasks.push(new Promise((resolveTask) => {
|
|
257
|
+
(0, Import_1.dynamicImport)('fs', 'Downloading files to local files is not supported: ').then((fs) => {
|
|
258
|
+
const writeStream = fs.createWriteStream(metadata.destination, { autoClose: true });
|
|
259
|
+
fileStream.pipe(writeStream);
|
|
260
|
+
writeStream.on('finish', () => {
|
|
261
|
+
metadata.result = metadata.destination;
|
|
262
|
+
resolveTask();
|
|
263
|
+
});
|
|
264
|
+
writeStream.on('error', (err) => {
|
|
265
|
+
metadata.error = `Write stream failed: ${err.message}`;
|
|
266
|
+
resolveTask();
|
|
267
|
+
});
|
|
268
|
+
fileStream.on('error', (err) => {
|
|
269
|
+
metadata.error = `Read stream failed: ${err.message}`;
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
}));
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
// Collect to buffer
|
|
276
|
+
const chunks = [];
|
|
277
|
+
fileStream.on('data', (chunk) => {
|
|
278
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
279
|
+
});
|
|
280
|
+
fileStream.on('end', () => {
|
|
281
|
+
metadata.result = Buffer.concat(chunks);
|
|
282
|
+
});
|
|
283
|
+
fileStream.on('error', (err) => {
|
|
284
|
+
metadata.error = `Read failed: ${err.message}`;
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
// Unknown field, drain it
|
|
290
|
+
fileStream.resume();
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
bb.on('error', (err) => {
|
|
294
|
+
if (consumerHandedOff) {
|
|
295
|
+
resolve();
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
abortStream(stream);
|
|
299
|
+
reject(err);
|
|
300
|
+
});
|
|
301
|
+
bb.on('finish', resolve);
|
|
302
|
+
// Feed stream into busboy
|
|
303
|
+
feedStreamToBusboy(stream, bb, observer).catch((err) => bb.destroy(err));
|
|
304
|
+
});
|
|
305
|
+
await Promise.all(fileTasks);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Feeds various stream types into busboy. When an observer is supplied, every
|
|
309
|
+
* chunk is also handed to the observer before being forwarded to busboy so
|
|
310
|
+
* per-part Content-Length can be queued in lockstep with busboy events.
|
|
311
|
+
*/
|
|
312
|
+
async function feedStreamToBusboy(stream, bb, observer) {
|
|
313
|
+
const tap = (chunk) => {
|
|
314
|
+
if (observer)
|
|
315
|
+
observer.observe(chunk);
|
|
316
|
+
return chunk;
|
|
317
|
+
};
|
|
318
|
+
// Node.js stream (piping). pipe() does NOT propagate errors from source to
|
|
319
|
+
// downstream, so we manually forward them so that mid-stream cancellations
|
|
320
|
+
// (e.g. AbortSignal firing after the response has started streaming) reach
|
|
321
|
+
// busboy and cause the outer Promise to reject correctly.
|
|
322
|
+
//
|
|
323
|
+
// Errors are normalized at the forwarding site so that axios "CanceledError"
|
|
324
|
+
// is already wrapped as DaytonaError by the time busboy's internal cleanup
|
|
325
|
+
// destroys the file stream — ensuring the stream returned to the caller
|
|
326
|
+
// always emits DaytonaError, not a raw library error.
|
|
327
|
+
if (typeof stream?.pipe === 'function') {
|
|
328
|
+
if (observer) {
|
|
329
|
+
const { Transform } = require('stream');
|
|
330
|
+
const tapStream = new Transform({
|
|
331
|
+
transform(chunk, _encoding, callback) {
|
|
332
|
+
const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
333
|
+
observer.observe(buf);
|
|
334
|
+
callback(null, buf);
|
|
335
|
+
},
|
|
336
|
+
});
|
|
337
|
+
stream.on('error', (err) => {
|
|
338
|
+
if (!tapStream.destroyed)
|
|
339
|
+
tapStream.destroy(normalizeDownloadStreamError(err));
|
|
340
|
+
});
|
|
341
|
+
tapStream.on('error', (err) => {
|
|
342
|
+
if (!bb.destroyed)
|
|
343
|
+
bb.destroy(err);
|
|
344
|
+
});
|
|
345
|
+
stream.pipe(tapStream).pipe(bb);
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
stream.on('error', (err) => {
|
|
349
|
+
if (!bb.destroyed)
|
|
350
|
+
bb.destroy(normalizeDownloadStreamError(err));
|
|
351
|
+
});
|
|
352
|
+
stream.pipe(bb);
|
|
353
|
+
}
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
// Direct buffer-like data
|
|
357
|
+
if (typeof stream === 'string' || stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {
|
|
358
|
+
const data = (0, Binary_1.toUint8Array)(stream);
|
|
359
|
+
const buf = tap(Buffer.from(data));
|
|
360
|
+
bb.write(buf);
|
|
361
|
+
bb.end();
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
// WHATWG ReadableStream
|
|
365
|
+
if (typeof stream?.getReader === 'function') {
|
|
366
|
+
const reader = stream.getReader();
|
|
367
|
+
while (true) {
|
|
368
|
+
const { done, value } = await reader.read();
|
|
369
|
+
if (done)
|
|
370
|
+
break;
|
|
371
|
+
bb.write(tap(Buffer.from(value)));
|
|
372
|
+
}
|
|
373
|
+
bb.end();
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
// AsyncIterable
|
|
377
|
+
if (stream?.[Symbol.asyncIterator]) {
|
|
378
|
+
for await (const chunk of stream) {
|
|
379
|
+
const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from((0, Binary_1.toUint8Array)(chunk));
|
|
380
|
+
bb.write(tap(buffer));
|
|
381
|
+
}
|
|
382
|
+
bb.end();
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
// Unsupported stream type
|
|
386
|
+
throw new DaytonaError_1.DaytonaError(`Unsupported stream type: ${stream?.constructor?.name || typeof stream}`);
|
|
387
|
+
}
|
|
388
|
+
async function processDownloadFilesResponseWithBuffered(stream, headers, metadataMap) {
|
|
389
|
+
const contentType = (0, Multipart_1.getHeader)(headers, 'content-type') || '';
|
|
390
|
+
const bodyBytes = await (0, Binary_1.collectStreamBytes)(stream);
|
|
391
|
+
// Try native FormData parsing for multipart/form-data
|
|
392
|
+
if (/^multipart\/form-data/i.test(contentType) && typeof Response !== 'undefined') {
|
|
393
|
+
try {
|
|
394
|
+
const formDataParts = await (0, Multipart_1.parseMultipartWithFormData)(bodyBytes, contentType);
|
|
395
|
+
for (const part of formDataParts) {
|
|
396
|
+
const metadata = metadataMap.get(part.filename);
|
|
397
|
+
if (!metadata) {
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
if (part.fieldName === 'error') {
|
|
401
|
+
assignDownloadErrorPart(metadata, part.data, part.contentType);
|
|
402
|
+
}
|
|
403
|
+
else {
|
|
404
|
+
metadata.result = (0, Binary_1.toBuffer)(part.data);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
// Fall through to manual parsing
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// Manual multipart parsing (handles multipart/mixed, etc.)
|
|
414
|
+
const boundary = (0, Multipart_1.extractBoundary)(contentType);
|
|
415
|
+
if (!boundary) {
|
|
416
|
+
throw new DaytonaError_1.DaytonaError(`Missing multipart boundary in Content-Type: "${contentType}"`);
|
|
417
|
+
}
|
|
418
|
+
const parts = (0, Multipart_2.parseMultipart)(bodyBytes, boundary);
|
|
419
|
+
for (const part of parts) {
|
|
420
|
+
if (!part.filename)
|
|
421
|
+
continue;
|
|
422
|
+
const metadata = metadataMap.get(part.filename);
|
|
423
|
+
if (!metadata)
|
|
424
|
+
continue;
|
|
425
|
+
if (part.name === 'error') {
|
|
426
|
+
assignDownloadErrorPart(metadata, part.data, part.headers['content-type']);
|
|
427
|
+
}
|
|
428
|
+
else if (part.name === 'file') {
|
|
429
|
+
metadata.result = (0, Binary_1.toBuffer)(part.data);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Normalizes errors that arrive from the HTTP transport layer to ensure
|
|
436
|
+
* callers always see a consistent error type. Axios emits "CanceledError"
|
|
437
|
+
* when an AbortSignal fires; we normalize it here (at the source stream's
|
|
438
|
+
* error boundary) so that DaytonaError propagates through all downstream
|
|
439
|
+
* pipe stages rather than the raw library error.
|
|
440
|
+
*/
|
|
441
|
+
function normalizeDownloadStreamError(err) {
|
|
442
|
+
const e = err;
|
|
443
|
+
if (e.code === 'ERR_CANCELED' || e.name === 'CanceledError' || e.name === 'AbortError') {
|
|
444
|
+
return new DaytonaError_1.DaytonaError('Download cancelled');
|
|
445
|
+
}
|
|
446
|
+
return err;
|
|
447
|
+
}
|
|
448
|
+
/** Construct the cancellation error thrown when an upload is aborted. */
|
|
449
|
+
function createAbortError(remotePath) {
|
|
450
|
+
return new DaytonaError_1.DaytonaError(`Upload cancelled: ${remotePath}`);
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Coerces every accepted upload source shape into a Node ``Readable`` so the
|
|
454
|
+
* downstream multipart writer has a uniform input type. Web ``ReadableStream``
|
|
455
|
+
* is bridged via ``Readable.fromWeb``; in-memory bytes via ``Readable.from``;
|
|
456
|
+
* local paths via ``fs.createReadStream``; existing ``Readable`` is passed
|
|
457
|
+
* through unchanged.
|
|
458
|
+
*/
|
|
459
|
+
async function coerceUploadSource(source) {
|
|
460
|
+
const errPrefix = 'Uploading files is not supported: ';
|
|
461
|
+
const stream = await (0, Import_1.dynamicImport)('stream', errPrefix);
|
|
462
|
+
if (Buffer.isBuffer(source) || source instanceof Uint8Array) {
|
|
463
|
+
return stream.Readable.from(Buffer.from(source));
|
|
464
|
+
}
|
|
465
|
+
if (typeof source === 'string') {
|
|
466
|
+
const fs = await (0, Import_1.dynamicImport)('fs', 'Uploading file from local file system is not supported: ');
|
|
467
|
+
return fs.createReadStream(source);
|
|
468
|
+
}
|
|
469
|
+
if (source instanceof stream.Readable)
|
|
470
|
+
return source;
|
|
471
|
+
if (typeof source.getReader === 'function') {
|
|
472
|
+
return stream.Readable.fromWeb(source);
|
|
473
|
+
}
|
|
474
|
+
throw new DaytonaError_1.DaytonaError(`Unsupported upload source: ${source.constructor?.name ?? typeof source}`);
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Wraps an upload source in a pass-through that counts bytes and invokes
|
|
478
|
+
* ``onProgress`` per chunk. When ``onProgress`` is omitted the source is
|
|
479
|
+
* returned unchanged so there is zero overhead in the no-progress path.
|
|
480
|
+
*/
|
|
481
|
+
function wrapWithUploadProgress(source, onProgress, signal) {
|
|
482
|
+
if (!onProgress && !signal)
|
|
483
|
+
return source;
|
|
484
|
+
const errPrefix = 'Uploading files is not supported: ';
|
|
485
|
+
const { Transform, pipeline } = (0, Import_1.dynamicRequire)('stream', errPrefix);
|
|
486
|
+
let bytesSent = 0;
|
|
487
|
+
const tracker = new Transform({
|
|
488
|
+
transform(chunk, _encoding, callback) {
|
|
489
|
+
const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
490
|
+
bytesSent += buf.length;
|
|
491
|
+
onProgress?.({ bytesSent });
|
|
492
|
+
callback(null, buf);
|
|
493
|
+
},
|
|
494
|
+
});
|
|
495
|
+
pipeline(source, tracker, (err) => {
|
|
496
|
+
if (!err)
|
|
497
|
+
return;
|
|
498
|
+
if (!source.destroyed)
|
|
499
|
+
source.destroy(err);
|
|
500
|
+
if (!tracker.destroyed)
|
|
501
|
+
tracker.destroy(err);
|
|
502
|
+
});
|
|
503
|
+
if (signal) {
|
|
504
|
+
const onAbort = () => {
|
|
505
|
+
const abortError = new Error('aborted');
|
|
506
|
+
if (!source.destroyed)
|
|
507
|
+
source.destroy(abortError);
|
|
508
|
+
if (!tracker.destroyed)
|
|
509
|
+
tracker.destroy(abortError);
|
|
510
|
+
};
|
|
511
|
+
if (signal.aborted) {
|
|
512
|
+
queueMicrotask(onAbort);
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
516
|
+
tracker.on('close', () => signal.removeEventListener('abort', onAbort));
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
return tracker;
|
|
520
|
+
}
|
|
521
|
+
//# sourceMappingURL=FileTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTransfer.js","sourceRoot":"","sources":["../../../../../../libs/sdk-typescript/src/utils/FileTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
declare const loaderMap: {
|
|
2
|
+
'fast-glob': () => Promise<any>;
|
|
3
|
+
'@iarna/toml': () => Promise<any>;
|
|
4
|
+
stream: () => Promise<any>;
|
|
5
|
+
tar: () => Promise<any>;
|
|
6
|
+
'expand-tilde': () => Promise<any>;
|
|
7
|
+
ObjectStorage: () => Promise<any>;
|
|
8
|
+
fs: () => Promise<any>;
|
|
9
|
+
'form-data': () => Promise<any>;
|
|
10
|
+
util: () => Promise<any>;
|
|
11
|
+
};
|
|
12
|
+
declare const requireMap: {
|
|
13
|
+
'fast-glob': () => any;
|
|
14
|
+
'@iarna/toml': () => any;
|
|
15
|
+
stream: () => any;
|
|
16
|
+
tar: () => any;
|
|
17
|
+
'expand-tilde': () => any;
|
|
18
|
+
fs: () => any;
|
|
19
|
+
'form-data': () => any;
|
|
20
|
+
buffer: () => any;
|
|
21
|
+
busboy: () => any;
|
|
22
|
+
'@opentelemetry/api': () => any;
|
|
23
|
+
'@opentelemetry/sdk-node': () => any;
|
|
24
|
+
'@opentelemetry/instrumentation-http': () => any;
|
|
25
|
+
'@opentelemetry/sdk-trace-base': () => any;
|
|
26
|
+
'@opentelemetry/exporter-trace-otlp-http': () => any;
|
|
27
|
+
'@opentelemetry/otlp-exporter-base': () => any;
|
|
28
|
+
'@opentelemetry/semantic-conventions': () => any;
|
|
29
|
+
'@opentelemetry/resources': () => any;
|
|
30
|
+
};
|
|
31
|
+
type ModuleMap = typeof loaderMap;
|
|
32
|
+
export declare function dynamicImport<K extends keyof ModuleMap>(name: K, errorPrefix?: string): Promise<Awaited<ReturnType<ModuleMap[K]>>>;
|
|
33
|
+
type RequireMap = typeof requireMap;
|
|
34
|
+
export declare function dynamicRequire<K extends keyof RequireMap>(name: K, errorPrefix?: string): ReturnType<RequireMap[K]>;
|
|
35
|
+
export declare function getPackageInfo(): {
|
|
36
|
+
name: string;
|
|
37
|
+
version: string;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=Import.d.ts.map
|