@vercel/sandbox 1.0.3 → 1.0.4
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +18 -0
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +12 -0
- package/LICENSE +21 -0
- package/dist/api-client/api-client.d.ts +5 -2
- package/dist/api-client/api-client.js +5 -1
- package/dist/api-client/api-client.js.map +1 -0
- package/dist/api-client/api-error.js +1 -0
- package/dist/api-client/api-error.js.map +1 -0
- package/dist/api-client/base-client.js +1 -0
- package/dist/api-client/base-client.js.map +1 -0
- package/dist/api-client/file-writer.js +1 -0
- package/dist/api-client/file-writer.js.map +1 -0
- package/dist/api-client/index.js +1 -0
- package/dist/api-client/index.js.map +1 -0
- package/dist/api-client/validators.d.ts +23 -0
- package/dist/api-client/validators.js +2 -0
- package/dist/api-client/validators.js.map +1 -0
- package/dist/api-client/with-retry.js +11 -0
- package/dist/api-client/with-retry.js.map +1 -0
- package/dist/command.js +1 -0
- package/dist/command.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/sandbox.d.ts +8 -1
- package/dist/sandbox.js +24 -5
- package/dist/sandbox.js.map +1 -0
- package/dist/utils/array.js +1 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/consume-readable.js +1 -0
- package/dist/utils/consume-readable.js.map +1 -0
- package/dist/utils/decode-base64-url.js +1 -0
- package/dist/utils/decode-base64-url.js.map +1 -0
- package/dist/utils/get-credentials.js +1 -0
- package/dist/utils/get-credentials.js.map +1 -0
- package/dist/utils/jwt-expiry.js +1 -0
- package/dist/utils/jwt-expiry.js.map +1 -0
- package/dist/utils/normalizePath.js +1 -0
- package/dist/utils/normalizePath.js.map +1 -0
- package/dist/utils/resolveSignal.js +1 -0
- package/dist/utils/resolveSignal.js.map +1 -0
- package/dist/utils/types.js +1 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -0
- package/package.json +2 -2
- package/src/api-client/api-client.ts +7 -2
- package/src/api-client/validators.ts +1 -0
- package/src/api-client/with-retry.ts +11 -0
- package/src/command.test.ts +81 -77
- package/src/sandbox.test.ts +60 -58
- package/src/sandbox.ts +24 -6
- package/src/version.ts +1 -1
- package/tsconfig.json +1 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
> @vercel/sandbox@1.0.4 test /home/runner/work/sandbox-sdk/sandbox-sdk/packages/vercel-sandbox
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
[1m[46m RUN [49m[22m [36mv3.2.1 [39m[90m/home/runner/work/sandbox-sdk/sandbox-sdk/packages/vercel-sandbox[39m
|
|
7
|
+
|
|
8
|
+
[32m✓[39m src/utils/jwt-expiry.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 24[2mms[22m[39m
|
|
9
|
+
[2m[90m↓[39m[22m src/sandbox.test.ts [2m([22m[2m4 tests[22m[2m | [22m[33m4 skipped[39m[2m)[22m
|
|
10
|
+
[32m✓[39m src/utils/normalizePath.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 25[2mms[22m[39m
|
|
11
|
+
[2m[90m↓[39m[22m src/command.test.ts [2m([22m[2m5 tests[22m[2m | [22m[33m5 skipped[39m[2m)[22m
|
|
12
|
+
[32m✓[39m src/utils/types.test.js [2m([22m[2m1 test[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
13
|
+
|
|
14
|
+
[2m Test Files [22m [1m[32m3 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (5)[39m
|
|
15
|
+
[2m Tests [22m [1m[32m17 passed[39m[22m[2m | [22m[33m9 skipped[39m[90m (26)[39m
|
|
16
|
+
[2m Start at [22m 13:42:43
|
|
17
|
+
[2m Duration [22m 4.89s[2m (transform 478ms, setup 193ms, collect 1.50s, tests 60ms, environment 2ms, prepare 1.27s)[22m
|
|
18
|
+
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @vercel/sandbox
|
|
2
2
|
|
|
3
|
+
## 1.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- add jsdoc example for sandbox.extendTimeout ([#171](https://github.com/vercel/sandbox-sdk/pull/171))
|
|
8
|
+
|
|
9
|
+
- change license to MIT (more permissive, therefore not breaking change) ([#169](https://github.com/vercel/sandbox-sdk/pull/169))
|
|
10
|
+
|
|
11
|
+
- when streaming stdout/stderr on command creation, don't throw AbortError when AbortSignal is done. Instead silently exit the loop. It's fine. ([#172](https://github.com/vercel/sandbox-sdk/pull/172))
|
|
12
|
+
|
|
13
|
+
- Make interactive sandbox command execution use WebSocket instead of WebRTC to support more diverse network conditions. ([#164](https://github.com/vercel/sandbox-sdk/pull/164))
|
|
14
|
+
|
|
3
15
|
## 1.0.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Vercel
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -13,10 +13,10 @@ export declare class APIClient extends BaseClient {
|
|
|
13
13
|
});
|
|
14
14
|
private ensureValidToken;
|
|
15
15
|
protected request(path: string, params?: RequestParams): Promise<Response>;
|
|
16
|
-
getSandbox(params: {
|
|
16
|
+
getSandbox(params: WithPrivate<{
|
|
17
17
|
sandboxId: string;
|
|
18
18
|
signal?: AbortSignal;
|
|
19
|
-
}): Promise<Parsed<{
|
|
19
|
+
}>): Promise<Parsed<{
|
|
20
20
|
sandbox: {
|
|
21
21
|
region: string;
|
|
22
22
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -33,6 +33,7 @@ export declare class APIClient extends BaseClient {
|
|
|
33
33
|
startedAt?: number | undefined;
|
|
34
34
|
requestedStopAt?: number | undefined;
|
|
35
35
|
stoppedAt?: number | undefined;
|
|
36
|
+
interactivePort?: number | undefined;
|
|
36
37
|
};
|
|
37
38
|
routes: {
|
|
38
39
|
url: string;
|
|
@@ -77,6 +78,7 @@ export declare class APIClient extends BaseClient {
|
|
|
77
78
|
startedAt?: number | undefined;
|
|
78
79
|
requestedStopAt?: number | undefined;
|
|
79
80
|
stoppedAt?: number | undefined;
|
|
81
|
+
interactivePort?: number | undefined;
|
|
80
82
|
};
|
|
81
83
|
routes: {
|
|
82
84
|
url: string;
|
|
@@ -168,6 +170,7 @@ export declare class APIClient extends BaseClient {
|
|
|
168
170
|
startedAt?: number | undefined;
|
|
169
171
|
requestedStopAt?: number | undefined;
|
|
170
172
|
stoppedAt?: number | undefined;
|
|
173
|
+
interactivePort?: number | undefined;
|
|
171
174
|
}[];
|
|
172
175
|
pagination: {
|
|
173
176
|
count: number;
|
|
@@ -53,7 +53,10 @@ class APIClient extends base_client_1.BaseClient {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
async getSandbox(params) {
|
|
56
|
-
|
|
56
|
+
const privateParams = (0, types_1.getPrivateParams)(params);
|
|
57
|
+
let querystring = new URLSearchParams(privateParams).toString();
|
|
58
|
+
querystring = querystring ? `?${querystring}` : "";
|
|
59
|
+
return (0, base_client_1.parseOrThrow)(validators_1.SandboxAndRoutesResponse, await this.request(`/v1/sandboxes/${params.sandboxId}${querystring}`, {
|
|
57
60
|
signal: params.signal,
|
|
58
61
|
}));
|
|
59
62
|
}
|
|
@@ -259,3 +262,4 @@ function mergeSignals(...signals) {
|
|
|
259
262
|
}
|
|
260
263
|
return controller.signal;
|
|
261
264
|
}
|
|
265
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/api-client/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-error.js","sourceRoot":"","sources":["../../src/api-client/api-error.ts"],"names":[],"mappings":";;;AAMA,MAAa,QAAoB,SAAQ,KAAK;IAM5C,YAAY,QAAkB,EAAE,OAA4B;QAC1D,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC5B,CAAC;CACF;AAjBD,4BAiBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-client.js","sourceRoot":"","sources":["../../src/api-client/base-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-writer.js","sourceRoot":"","sources":["../../src/api-client/file-writer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4DAA4C;AAC5C,mCAAkC;AA6BlC;;;;GAIG;AACH,MAAa,UAAU;IAIrB;QACE,MAAM,IAAI,GAAG,cAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,oBAAG,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAC3B,MAAM,IAAI,IAAI;gBACZ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACtC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAClD,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CACF,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,YAAY,iBAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArDD,gCAqDC"}
|
package/dist/api-client/index.js
CHANGED
|
@@ -18,3 +18,4 @@ exports.APIClient = void 0;
|
|
|
18
18
|
var api_client_1 = require("./api-client");
|
|
19
19
|
Object.defineProperty(exports, "APIClient", { enumerable: true, get: function () { return api_client_1.APIClient; } });
|
|
20
20
|
__exportStar(require("./validators"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api-client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6B"}
|
|
@@ -16,6 +16,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
16
16
|
createdAt: z.ZodNumber;
|
|
17
17
|
cwd: z.ZodString;
|
|
18
18
|
updatedAt: z.ZodNumber;
|
|
19
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
19
20
|
}, "strip", z.ZodTypeAny, {
|
|
20
21
|
region: string;
|
|
21
22
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -32,6 +33,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
32
33
|
startedAt?: number | undefined;
|
|
33
34
|
requestedStopAt?: number | undefined;
|
|
34
35
|
stoppedAt?: number | undefined;
|
|
36
|
+
interactivePort?: number | undefined;
|
|
35
37
|
}, {
|
|
36
38
|
region: string;
|
|
37
39
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -48,6 +50,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
48
50
|
startedAt?: number | undefined;
|
|
49
51
|
requestedStopAt?: number | undefined;
|
|
50
52
|
stoppedAt?: number | undefined;
|
|
53
|
+
interactivePort?: number | undefined;
|
|
51
54
|
}>;
|
|
52
55
|
export type SandboxRouteData = z.infer<typeof SandboxRoute>;
|
|
53
56
|
export declare const SandboxRoute: z.ZodObject<{
|
|
@@ -131,6 +134,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
131
134
|
createdAt: z.ZodNumber;
|
|
132
135
|
cwd: z.ZodString;
|
|
133
136
|
updatedAt: z.ZodNumber;
|
|
137
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
134
138
|
}, "strip", z.ZodTypeAny, {
|
|
135
139
|
region: string;
|
|
136
140
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -147,6 +151,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
147
151
|
startedAt?: number | undefined;
|
|
148
152
|
requestedStopAt?: number | undefined;
|
|
149
153
|
stoppedAt?: number | undefined;
|
|
154
|
+
interactivePort?: number | undefined;
|
|
150
155
|
}, {
|
|
151
156
|
region: string;
|
|
152
157
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -163,6 +168,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
163
168
|
startedAt?: number | undefined;
|
|
164
169
|
requestedStopAt?: number | undefined;
|
|
165
170
|
stoppedAt?: number | undefined;
|
|
171
|
+
interactivePort?: number | undefined;
|
|
166
172
|
}>;
|
|
167
173
|
}, "strip", z.ZodTypeAny, {
|
|
168
174
|
sandbox: {
|
|
@@ -181,6 +187,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
181
187
|
startedAt?: number | undefined;
|
|
182
188
|
requestedStopAt?: number | undefined;
|
|
183
189
|
stoppedAt?: number | undefined;
|
|
190
|
+
interactivePort?: number | undefined;
|
|
184
191
|
};
|
|
185
192
|
}, {
|
|
186
193
|
sandbox: {
|
|
@@ -199,6 +206,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
199
206
|
startedAt?: number | undefined;
|
|
200
207
|
requestedStopAt?: number | undefined;
|
|
201
208
|
stoppedAt?: number | undefined;
|
|
209
|
+
interactivePort?: number | undefined;
|
|
202
210
|
};
|
|
203
211
|
}>;
|
|
204
212
|
export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
@@ -218,6 +226,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
218
226
|
createdAt: z.ZodNumber;
|
|
219
227
|
cwd: z.ZodString;
|
|
220
228
|
updatedAt: z.ZodNumber;
|
|
229
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
221
230
|
}, "strip", z.ZodTypeAny, {
|
|
222
231
|
region: string;
|
|
223
232
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -234,6 +243,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
234
243
|
startedAt?: number | undefined;
|
|
235
244
|
requestedStopAt?: number | undefined;
|
|
236
245
|
stoppedAt?: number | undefined;
|
|
246
|
+
interactivePort?: number | undefined;
|
|
237
247
|
}, {
|
|
238
248
|
region: string;
|
|
239
249
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -250,6 +260,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
250
260
|
startedAt?: number | undefined;
|
|
251
261
|
requestedStopAt?: number | undefined;
|
|
252
262
|
stoppedAt?: number | undefined;
|
|
263
|
+
interactivePort?: number | undefined;
|
|
253
264
|
}>;
|
|
254
265
|
} & {
|
|
255
266
|
routes: z.ZodArray<z.ZodObject<{
|
|
@@ -282,6 +293,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
282
293
|
startedAt?: number | undefined;
|
|
283
294
|
requestedStopAt?: number | undefined;
|
|
284
295
|
stoppedAt?: number | undefined;
|
|
296
|
+
interactivePort?: number | undefined;
|
|
285
297
|
};
|
|
286
298
|
routes: {
|
|
287
299
|
url: string;
|
|
@@ -305,6 +317,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
305
317
|
startedAt?: number | undefined;
|
|
306
318
|
requestedStopAt?: number | undefined;
|
|
307
319
|
stoppedAt?: number | undefined;
|
|
320
|
+
interactivePort?: number | undefined;
|
|
308
321
|
};
|
|
309
322
|
routes: {
|
|
310
323
|
url: string;
|
|
@@ -435,6 +448,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
435
448
|
createdAt: z.ZodNumber;
|
|
436
449
|
cwd: z.ZodString;
|
|
437
450
|
updatedAt: z.ZodNumber;
|
|
451
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
438
452
|
}, "strip", z.ZodTypeAny, {
|
|
439
453
|
region: string;
|
|
440
454
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -451,6 +465,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
451
465
|
startedAt?: number | undefined;
|
|
452
466
|
requestedStopAt?: number | undefined;
|
|
453
467
|
stoppedAt?: number | undefined;
|
|
468
|
+
interactivePort?: number | undefined;
|
|
454
469
|
}, {
|
|
455
470
|
region: string;
|
|
456
471
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -467,6 +482,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
467
482
|
startedAt?: number | undefined;
|
|
468
483
|
requestedStopAt?: number | undefined;
|
|
469
484
|
stoppedAt?: number | undefined;
|
|
485
|
+
interactivePort?: number | undefined;
|
|
470
486
|
}>, "many">;
|
|
471
487
|
pagination: z.ZodObject<{
|
|
472
488
|
/**
|
|
@@ -510,6 +526,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
510
526
|
startedAt?: number | undefined;
|
|
511
527
|
requestedStopAt?: number | undefined;
|
|
512
528
|
stoppedAt?: number | undefined;
|
|
529
|
+
interactivePort?: number | undefined;
|
|
513
530
|
}[];
|
|
514
531
|
pagination: {
|
|
515
532
|
count: number;
|
|
@@ -533,6 +550,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
533
550
|
startedAt?: number | undefined;
|
|
534
551
|
requestedStopAt?: number | undefined;
|
|
535
552
|
stoppedAt?: number | undefined;
|
|
553
|
+
interactivePort?: number | undefined;
|
|
536
554
|
}[];
|
|
537
555
|
pagination: {
|
|
538
556
|
count: number;
|
|
@@ -557,6 +575,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
557
575
|
createdAt: z.ZodNumber;
|
|
558
576
|
cwd: z.ZodString;
|
|
559
577
|
updatedAt: z.ZodNumber;
|
|
578
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
560
579
|
}, "strip", z.ZodTypeAny, {
|
|
561
580
|
region: string;
|
|
562
581
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -573,6 +592,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
573
592
|
startedAt?: number | undefined;
|
|
574
593
|
requestedStopAt?: number | undefined;
|
|
575
594
|
stoppedAt?: number | undefined;
|
|
595
|
+
interactivePort?: number | undefined;
|
|
576
596
|
}, {
|
|
577
597
|
region: string;
|
|
578
598
|
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
@@ -589,6 +609,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
589
609
|
startedAt?: number | undefined;
|
|
590
610
|
requestedStopAt?: number | undefined;
|
|
591
611
|
stoppedAt?: number | undefined;
|
|
612
|
+
interactivePort?: number | undefined;
|
|
592
613
|
}>;
|
|
593
614
|
}, "strip", z.ZodTypeAny, {
|
|
594
615
|
sandbox: {
|
|
@@ -607,6 +628,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
607
628
|
startedAt?: number | undefined;
|
|
608
629
|
requestedStopAt?: number | undefined;
|
|
609
630
|
stoppedAt?: number | undefined;
|
|
631
|
+
interactivePort?: number | undefined;
|
|
610
632
|
};
|
|
611
633
|
}, {
|
|
612
634
|
sandbox: {
|
|
@@ -625,5 +647,6 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
625
647
|
startedAt?: number | undefined;
|
|
626
648
|
requestedStopAt?: number | undefined;
|
|
627
649
|
stoppedAt?: number | undefined;
|
|
650
|
+
interactivePort?: number | undefined;
|
|
628
651
|
};
|
|
629
652
|
}>;
|
|
@@ -18,6 +18,7 @@ exports.Sandbox = zod_1.z.object({
|
|
|
18
18
|
createdAt: zod_1.z.number(),
|
|
19
19
|
cwd: zod_1.z.string(),
|
|
20
20
|
updatedAt: zod_1.z.number(),
|
|
21
|
+
interactivePort: zod_1.z.number().optional(),
|
|
21
22
|
});
|
|
22
23
|
exports.SandboxRoute = zod_1.z.object({
|
|
23
24
|
url: zod_1.z.string(),
|
|
@@ -77,3 +78,4 @@ exports.SandboxesResponse = zod_1.z.object({
|
|
|
77
78
|
exports.ExtendTimeoutResponse = zod_1.z.object({
|
|
78
79
|
sandbox: exports.Sandbox,
|
|
79
80
|
});
|
|
81
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/api-client/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,9 @@ function withRetry(rawFetch) {
|
|
|
38
38
|
try {
|
|
39
39
|
return (await (0, async_retry_1.default)(async (bail) => {
|
|
40
40
|
try {
|
|
41
|
+
if (opts.signal?.aborted) {
|
|
42
|
+
return bail(opts.signal.reason || new Error("Request aborted"));
|
|
43
|
+
}
|
|
41
44
|
const response = await rawFetch(url, opts);
|
|
42
45
|
/**
|
|
43
46
|
* When the response is 429 we will try to parse the Retry-After
|
|
@@ -73,6 +76,13 @@ function withRetry(rawFetch) {
|
|
|
73
76
|
if (isAbortError(error)) {
|
|
74
77
|
return bail(error);
|
|
75
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* If the signal was aborted meanwhile we were
|
|
81
|
+
* waiting, we bail from retrying.
|
|
82
|
+
*/
|
|
83
|
+
if (opts.signal?.aborted) {
|
|
84
|
+
return bail(opts.signal.reason || new Error("Request aborted"));
|
|
85
|
+
}
|
|
76
86
|
throw error;
|
|
77
87
|
}
|
|
78
88
|
}, retryOpts));
|
|
@@ -95,3 +105,4 @@ function isAbortError(error) {
|
|
|
95
105
|
error !== null &&
|
|
96
106
|
error.name === "AbortError");
|
|
97
107
|
}
|
|
108
|
+
//# sourceMappingURL=with-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-retry.js","sourceRoot":"","sources":["../../src/api-client/with-retry.ts"],"names":[],"mappings":";;;;;AAkBA,8BAwGC;AAzHD,2CAAuC;AACvC,8CAA6C;AAC7C,8DAAgC;AAOhC;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,QAA4D;IAE5D,OAAO,KAAK,EACV,GAAiB,EACjB,OAA+C,EAAE,EACjD,EAAE;QACF;;;WAGG;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B;YACE,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,aAAa,EAAE,EAAE;SAClB,EACD,IAAI,CAAC,KAAK,CACX,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,SAAS,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACtC,IAAI,CAAC,OAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAA,qBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAClE,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAE3C;;;;;;uBAMG;oBACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBAC5B,MAAM,UAAU,GAAG,QAAQ,CACzB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,EACzC,EAAE,CACH,CAAC;wBAEF,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;4BACrC,IAAI,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;gCACzC,OAAO,QAAQ,CAAC;4BAClB,CAAC;4BAED,MAAM,IAAA,qBAAU,EAAC,UAAU,GAAG,GAAG,CAAC,CAAC;wBACrC,CAAC;wBAED,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/B,CAAC;oBAED;;;uBAGG;oBACH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACpD,MAAM,IAAI,oBAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/B,CAAC;oBAED,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf;;;uBAGG;oBACH,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;oBAED;;;uBAGG;oBACH,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAClE,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,EAAE,SAAS,CAAC,CAAa,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf;;;;eAIG;YACH,IAAI,KAAK,YAAY,oBAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC;YACxB,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACb,KAAe,CAAC,IAAI,KAAK,YAAY,CACvC,CAAC;AACJ,CAAC"}
|
package/dist/command.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,3 +6,4 @@ Object.defineProperty(exports, "Sandbox", { enumerable: true, get: function () {
|
|
|
6
6
|
var command_1 = require("./command");
|
|
7
7
|
Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return command_1.Command; } });
|
|
8
8
|
Object.defineProperty(exports, "CommandFinished", { enumerable: true, get: function () { return command_1.CommandFinished; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAAqD;AAA5C,kGAAA,OAAO,OAAA;AAAE,0GAAA,eAAe,OAAA"}
|
package/dist/sandbox.d.ts
CHANGED
|
@@ -126,6 +126,7 @@ export declare class Sandbox {
|
|
|
126
126
|
* Unique ID of this sandbox.
|
|
127
127
|
*/
|
|
128
128
|
get sandboxId(): string;
|
|
129
|
+
get interactivePort(): number | undefined;
|
|
129
130
|
/**
|
|
130
131
|
* The status of the sandbox.
|
|
131
132
|
*/
|
|
@@ -160,6 +161,7 @@ export declare class Sandbox {
|
|
|
160
161
|
startedAt?: number | undefined;
|
|
161
162
|
requestedStopAt?: number | undefined;
|
|
162
163
|
stoppedAt?: number | undefined;
|
|
164
|
+
interactivePort?: number | undefined;
|
|
163
165
|
}[];
|
|
164
166
|
pagination: {
|
|
165
167
|
count: number;
|
|
@@ -180,7 +182,7 @@ export declare class Sandbox {
|
|
|
180
182
|
* @param params - Get parameters and optional credentials.
|
|
181
183
|
* @returns A promise resolving to the {@link Sandbox}.
|
|
182
184
|
*/
|
|
183
|
-
static get(params: GetSandboxParams | (GetSandboxParams & Credentials)): Promise<Sandbox>;
|
|
185
|
+
static get(params: WithPrivate<GetSandboxParams | (GetSandboxParams & Credentials)>): Promise<Sandbox>;
|
|
184
186
|
/**
|
|
185
187
|
* Create a new Sandbox instance.
|
|
186
188
|
*
|
|
@@ -308,6 +310,11 @@ export declare class Sandbox {
|
|
|
308
310
|
* @param opts - Optional parameters.
|
|
309
311
|
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
310
312
|
* @returns A promise that resolves when the timeout is extended
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* const sandbox = await Sandbox.create({ timeout: ms('10m') });
|
|
316
|
+
* // Extends timeout by 5 minutes, to a total of 15 minutes.
|
|
317
|
+
* await sandbox.extendTimeout(ms('5m'));
|
|
311
318
|
*/
|
|
312
319
|
extendTimeout(duration: number, opts?: {
|
|
313
320
|
signal?: AbortSignal;
|
package/dist/sandbox.js
CHANGED
|
@@ -18,6 +18,9 @@ class Sandbox {
|
|
|
18
18
|
get sandboxId() {
|
|
19
19
|
return this.sandbox.id;
|
|
20
20
|
}
|
|
21
|
+
get interactivePort() {
|
|
22
|
+
return this.sandbox.interactivePort ?? undefined;
|
|
23
|
+
}
|
|
21
24
|
/**
|
|
22
25
|
* The status of the sandbox.
|
|
23
26
|
*/
|
|
@@ -87,9 +90,11 @@ class Sandbox {
|
|
|
87
90
|
teamId: credentials.teamId,
|
|
88
91
|
token: credentials.token,
|
|
89
92
|
});
|
|
93
|
+
const privateParams = (0, types_1.getPrivateParams)(params);
|
|
90
94
|
const sandbox = await client.getSandbox({
|
|
91
95
|
sandboxId: params.sandboxId,
|
|
92
96
|
signal: params.signal,
|
|
97
|
+
...privateParams,
|
|
93
98
|
});
|
|
94
99
|
return new Sandbox({
|
|
95
100
|
client,
|
|
@@ -158,13 +163,21 @@ class Sandbox {
|
|
|
158
163
|
});
|
|
159
164
|
if (params.stdout || params.stderr) {
|
|
160
165
|
(async () => {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
166
|
+
try {
|
|
167
|
+
for await (const log of command.logs({ signal: params.signal })) {
|
|
168
|
+
if (log.stream === "stdout") {
|
|
169
|
+
params.stdout?.write(log.data);
|
|
170
|
+
}
|
|
171
|
+
else if (log.stream === "stderr") {
|
|
172
|
+
params.stderr?.write(log.data);
|
|
173
|
+
}
|
|
164
174
|
}
|
|
165
|
-
|
|
166
|
-
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
if (params.signal?.aborted) {
|
|
178
|
+
return;
|
|
167
179
|
}
|
|
180
|
+
throw err;
|
|
168
181
|
}
|
|
169
182
|
})();
|
|
170
183
|
}
|
|
@@ -258,6 +271,11 @@ class Sandbox {
|
|
|
258
271
|
* @param opts - Optional parameters.
|
|
259
272
|
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
260
273
|
* @returns A promise that resolves when the timeout is extended
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* const sandbox = await Sandbox.create({ timeout: ms('10m') });
|
|
277
|
+
* // Extends timeout by 5 minutes, to a total of 15 minutes.
|
|
278
|
+
* await sandbox.extendTimeout(ms('5m'));
|
|
261
279
|
*/
|
|
262
280
|
async extendTimeout(duration, opts) {
|
|
263
281
|
const response = await this.client.extendTimeout({
|
|
@@ -270,3 +288,4 @@ class Sandbox {
|
|
|
270
288
|
}
|
|
271
289
|
}
|
|
272
290
|
exports.Sandbox = Sandbox;
|
|
291
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/array.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;AAQA,sBAMC;AAdD;;;;;;;GAOG;AACH,SAAgB,KAAK,CAAI,IAAqB;IAC5C,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consume-readable.js","sourceRoot":"","sources":["../../src/utils/consume-readable.ts"],"names":[],"mappings":";;AAIA,0CAOC;AAXD;;;GAGG;AACH,SAAgB,eAAe,CAAC,QAA+B;IAC7D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-base64-url.js","sourceRoot":"","sources":["../../src/utils/decode-base64-url.ts"],"names":[],"mappings":";;AAMA,0CAOC;AAbD;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC/C,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,CAAC,IAAI,CACT,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAC/C,QAAQ,CACT,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-credentials.js","sourceRoot":"","sources":["../../src/utils/get-credentials.ts"],"names":[],"mappings":";;;AA8BA,wCAeC;AA7CD,uCAAkD;AAClD,2DAAsD;AACtD,6BAAwB;AAkBxB;;;;;;;;;GASG;AACI,KAAK,UAAU,cAAc,CAAC,MAAgB;IACnD,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,yBAAkB,GAAE,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0DAA0D;QACxD,kFAAkF,CACrF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,MAAe;IAC/C,uCAAuC;IACvC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG;QACd,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QACtE,QAAQ,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;QACzE,WAAW,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YAC3D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW;KAChB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAG,MAAc,CAAC,KAAK;YAC5B,SAAS,EAAG,MAAc,CAAC,SAAS;YACpC,MAAM,EAAG,MAAc,CAAC,MAAM;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,4DAA4D,OAAO;aAChE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACU,QAAA,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC7E,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAAC,KAAa;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,cAAM,CAAC,KAAK,CAAC,IAAA,mCAAe,EAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO;YACL,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,MAAM,EAAE,OAAO,CAAC,QAAQ;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/utils/jwt-expiry.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-expiry.js","sourceRoot":"","sources":["../../src/utils/jwt-expiry.ts"],"names":[],"mappings":";;;;;;AACA,2DAAsD;AACtD,uDAA2C;AAC3C,uCAAkD;AAClD,4CAAoB;AAEpB,+EAA+E;AAC/E,MAAM,SAAS,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,CAAC;AAE3B,MAAa,gBAAiB,SAAQ,KAAK;IAA3C;;QACE,SAAI,GAAG,kBAAkB,CAAC;IAC5B,CAAC;CAAA;AAFD,4CAEC;AAED;;;GAGG;AACH,MAAa,SAAS;IAIpB,MAAM,CAAC,SAAS,CAAC,KAAa;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAChC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,wBAAM,CAAC,KAAK,CAAC,IAAA,mCAAe,EAAC,aAAa,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,CAAC,gCAAgC;QAChD,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;QAChC,OAAO,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAkB,GAAE,CAAC;YAC9C,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,EAAE;gBACzD,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF;AA7ED,8BA6EC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizePath.js","sourceRoot":"","sources":["../../src/utils/normalizePath.ts"],"names":[],"mappings":";;;;;AAcA,sCAkBC;AAhCD,gDAAwB;AAExB;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,MAI7B;IACC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjD,OAAO,cAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveSignal.js","sourceRoot":"","sources":["../../src/utils/resolveSignal.ts"],"names":[],"mappings":";;AAcA,sCASC;AAvBD,MAAM,kBAAkB,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;CACH,CAAC;AAMX,SAAgB,aAAa,CAAC,MAAc;IAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/utils/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,EAAE;IAClD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CACnB,CAAC;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,cAAc,CAIvC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.0.
|
|
1
|
+
export declare const VERSION = "1.0.4";
|
package/dist/version.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACxB,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vercel/sandbox",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"private": false,
|
|
8
8
|
"keywords": [],
|
|
9
9
|
"author": "",
|
|
10
|
-
"license": "
|
|
10
|
+
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@vercel/oidc": "^3.0.5",
|
|
13
13
|
"async-retry": "1.3.3",
|
|
@@ -72,10 +72,15 @@ export class APIClient extends BaseClient {
|
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
async getSandbox(
|
|
75
|
+
async getSandbox(
|
|
76
|
+
params: WithPrivate<{ sandboxId: string; signal?: AbortSignal }>,
|
|
77
|
+
) {
|
|
78
|
+
const privateParams = getPrivateParams(params);
|
|
79
|
+
let querystring = new URLSearchParams(privateParams).toString();
|
|
80
|
+
querystring = querystring ? `?${querystring}` : "";
|
|
76
81
|
return parseOrThrow(
|
|
77
82
|
SandboxAndRoutesResponse,
|
|
78
|
-
await this.request(`/v1/sandboxes/${params.sandboxId}`, {
|
|
83
|
+
await this.request(`/v1/sandboxes/${params.sandboxId}${querystring}`, {
|
|
79
84
|
signal: params.signal,
|
|
80
85
|
}),
|
|
81
86
|
);
|
|
@@ -49,6 +49,9 @@ export function withRetry<T extends RequestInit>(
|
|
|
49
49
|
try {
|
|
50
50
|
return (await retry(async (bail) => {
|
|
51
51
|
try {
|
|
52
|
+
if (opts.signal?.aborted) {
|
|
53
|
+
return bail(opts.signal.reason || new Error("Request aborted"));
|
|
54
|
+
}
|
|
52
55
|
const response = await rawFetch(url, opts);
|
|
53
56
|
|
|
54
57
|
/**
|
|
@@ -93,6 +96,14 @@ export function withRetry<T extends RequestInit>(
|
|
|
93
96
|
return bail(error);
|
|
94
97
|
}
|
|
95
98
|
|
|
99
|
+
/**
|
|
100
|
+
* If the signal was aborted meanwhile we were
|
|
101
|
+
* waiting, we bail from retrying.
|
|
102
|
+
*/
|
|
103
|
+
if (opts.signal?.aborted) {
|
|
104
|
+
return bail(opts.signal.reason || new Error("Request aborted"));
|
|
105
|
+
}
|
|
106
|
+
|
|
96
107
|
throw error;
|
|
97
108
|
}
|
|
98
109
|
}, retryOpts)) as Response;
|
package/src/command.test.ts
CHANGED
|
@@ -1,99 +1,103 @@
|
|
|
1
|
-
import { expect, it, vi, beforeEach, afterEach } from "vitest";
|
|
1
|
+
import { expect, it, vi, beforeEach, afterEach, describe } from "vitest";
|
|
2
2
|
import { Sandbox } from "./sandbox";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
describe.skipIf(process.env.RUN_INTEGRATION_TESTS !== "1")("Command", () => {
|
|
5
|
+
let sandbox: Sandbox;
|
|
5
6
|
|
|
6
|
-
beforeEach(async () => {
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
afterEach(async () => {
|
|
11
|
-
await sandbox.stop();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it("supports more than one logs consumer", async () => {
|
|
15
|
-
const stdoutSpy = vi
|
|
16
|
-
.spyOn(process.stdout, "write")
|
|
17
|
-
.mockImplementation(() => true);
|
|
18
|
-
|
|
19
|
-
const cmd = await sandbox.runCommand({
|
|
20
|
-
cmd: "echo",
|
|
21
|
-
args: ["Hello World!"],
|
|
22
|
-
stdout: process.stdout,
|
|
7
|
+
beforeEach(async () => {
|
|
8
|
+
sandbox = await Sandbox.create();
|
|
23
9
|
});
|
|
24
10
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it("does not warn when there is only one logs consumer", async () => {
|
|
30
|
-
const warnSpy = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
31
|
-
|
|
32
|
-
const cmd = await sandbox.runCommand({
|
|
33
|
-
cmd: "echo",
|
|
34
|
-
args: ["Hello World!"],
|
|
11
|
+
afterEach(async () => {
|
|
12
|
+
await sandbox.stop();
|
|
35
13
|
});
|
|
36
14
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
it("Kills a command with a SIGINT", async () => {
|
|
42
|
-
const cmd = await sandbox.runCommand({
|
|
43
|
-
cmd: "sleep",
|
|
44
|
-
args: ["200000"],
|
|
45
|
-
detached: true,
|
|
46
|
-
});
|
|
15
|
+
it("supports more than one logs consumer", async () => {
|
|
16
|
+
const stdoutSpy = vi
|
|
17
|
+
.spyOn(process.stdout, "write")
|
|
18
|
+
.mockImplementation(() => true);
|
|
47
19
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
20
|
+
const cmd = await sandbox.runCommand({
|
|
21
|
+
cmd: "echo",
|
|
22
|
+
args: ["Hello World!"],
|
|
23
|
+
stdout: process.stdout,
|
|
24
|
+
});
|
|
52
25
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
cmd: "sleep",
|
|
56
|
-
args: ["200000"],
|
|
57
|
-
detached: true,
|
|
26
|
+
expect(await cmd.stdout()).toEqual("Hello World!\n");
|
|
27
|
+
expect(stdoutSpy).toHaveBeenCalledWith("Hello World!\n");
|
|
58
28
|
});
|
|
59
29
|
|
|
60
|
-
|
|
30
|
+
it("does not warn when there is only one logs consumer", async () => {
|
|
31
|
+
const warnSpy = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
61
32
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
33
|
+
const cmd = await sandbox.runCommand({
|
|
34
|
+
cmd: "echo",
|
|
35
|
+
args: ["Hello World!"],
|
|
36
|
+
});
|
|
65
37
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
cmd: "env",
|
|
69
|
-
sudo: true,
|
|
70
|
-
env: {
|
|
71
|
-
FOO: "bar",
|
|
72
|
-
},
|
|
38
|
+
expect(await cmd.stdout()).toEqual("Hello World!\n");
|
|
39
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
73
40
|
});
|
|
74
41
|
|
|
75
|
-
|
|
42
|
+
it("Kills a command with a SIGINT", async () => {
|
|
43
|
+
const cmd = await sandbox.runCommand({
|
|
44
|
+
cmd: "sleep",
|
|
45
|
+
args: ["200000"],
|
|
46
|
+
detached: true,
|
|
47
|
+
});
|
|
76
48
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
49
|
+
await cmd.kill("SIGINT");
|
|
50
|
+
const result = await cmd.wait();
|
|
51
|
+
expect(result.exitCode).toBe(130); // 128 + 2
|
|
52
|
+
});
|
|
81
53
|
|
|
82
|
-
|
|
83
|
-
|
|
54
|
+
it("Kills a command with a SIGTERM", async () => {
|
|
55
|
+
const cmd = await sandbox.runCommand({
|
|
56
|
+
cmd: "sleep",
|
|
57
|
+
args: ["200000"],
|
|
58
|
+
detached: true,
|
|
59
|
+
});
|
|
84
60
|
|
|
85
|
-
|
|
86
|
-
expect(pathSegments).toContain("/vercel/bin");
|
|
87
|
-
expect(pathSegments).toContain("/vercel/runtimes/node22/bin");
|
|
61
|
+
await cmd.kill("SIGTERM");
|
|
88
62
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
args: ["install", "-y", "golang"],
|
|
92
|
-
sudo: true,
|
|
63
|
+
const result = await cmd.wait();
|
|
64
|
+
expect(result.exitCode).toBe(143); // 128 + 15
|
|
93
65
|
});
|
|
94
66
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
67
|
+
it("can execute commands with sudo", async () => {
|
|
68
|
+
const cmd = await sandbox.runCommand({
|
|
69
|
+
cmd: "env",
|
|
70
|
+
sudo: true,
|
|
71
|
+
env: {
|
|
72
|
+
FOO: "bar",
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
expect(cmd.exitCode).toBe(0);
|
|
77
|
+
|
|
78
|
+
const output = await cmd.stdout();
|
|
79
|
+
expect(output).toContain("FOO=bar\n");
|
|
80
|
+
expect(output).toContain("USER=root\n");
|
|
81
|
+
expect(output).toContain("SUDO_USER=vercel-sandbox\n");
|
|
82
|
+
|
|
83
|
+
const pathLine = output
|
|
84
|
+
.split("\n")
|
|
85
|
+
.find((line) => line.startsWith("PATH="));
|
|
86
|
+
expect(pathLine).toBeDefined();
|
|
87
|
+
|
|
88
|
+
const pathSegments = pathLine!.slice(5).split(":");
|
|
89
|
+
expect(pathSegments).toContain("/vercel/bin");
|
|
90
|
+
expect(pathSegments).toContain("/vercel/runtimes/node22/bin");
|
|
91
|
+
|
|
92
|
+
const dnf = await sandbox.runCommand({
|
|
93
|
+
cmd: "dnf",
|
|
94
|
+
args: ["install", "-y", "golang"],
|
|
95
|
+
sudo: true,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
expect(dnf.exitCode).toBe(0);
|
|
99
|
+
|
|
100
|
+
const which = await sandbox.runCommand("which", ["go"]);
|
|
101
|
+
expect(await which.output()).toContain("/usr/bin/go");
|
|
102
|
+
});
|
|
99
103
|
});
|
package/src/sandbox.test.ts
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { it, beforeEach, afterEach, expect } from "vitest";
|
|
1
|
+
import { it, beforeEach, afterEach, expect, describe } from "vitest";
|
|
2
2
|
import { consumeReadable } from "./utils/consume-readable";
|
|
3
3
|
import { Sandbox } from "./sandbox";
|
|
4
4
|
import { APIError } from "./api-client/api-error";
|
|
5
5
|
import ms from "ms";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
describe.skipIf(process.env.RUN_INTEGRATION_TESTS !== "1")("Sandbox", () => {
|
|
8
|
+
const PORTS = [3000, 4000];
|
|
9
|
+
let sandbox: Sandbox;
|
|
9
10
|
|
|
10
|
-
beforeEach(async () => {
|
|
11
|
-
|
|
12
|
-
});
|
|
11
|
+
beforeEach(async () => {
|
|
12
|
+
sandbox = await Sandbox.create({ ports: PORTS });
|
|
13
|
+
});
|
|
13
14
|
|
|
14
|
-
afterEach(async () => {
|
|
15
|
-
|
|
16
|
-
});
|
|
15
|
+
afterEach(async () => {
|
|
16
|
+
await sandbox.stop();
|
|
17
|
+
});
|
|
17
18
|
|
|
18
|
-
it("allows to write files and then read them", async () => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
it("allows to write files and then read them", async () => {
|
|
20
|
+
await sandbox.writeFiles([
|
|
21
|
+
{ path: "hello1.txt", content: Buffer.from("Hello 1") },
|
|
22
|
+
{ path: "hello2.txt", content: Buffer.from("Hello 2") },
|
|
23
|
+
]);
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
});
|
|
25
|
+
const content1 = await sandbox.readFile({ path: "hello1.txt" });
|
|
26
|
+
const content2 = await sandbox.readFile({ path: "hello2.txt" });
|
|
27
|
+
expect((await consumeReadable(content1!)).toString()).toBe("Hello 1");
|
|
28
|
+
expect((await consumeReadable(content2!)).toString()).toBe("Hello 2");
|
|
29
|
+
});
|
|
29
30
|
|
|
30
|
-
it("verifies port forwarding works correctly", async () => {
|
|
31
|
-
|
|
31
|
+
it("verifies port forwarding works correctly", async () => {
|
|
32
|
+
const serverScript = `
|
|
32
33
|
const http = require('http');
|
|
33
34
|
const ports = process.argv.slice(2);
|
|
34
35
|
|
|
@@ -44,48 +45,49 @@ for (const port of ports) {
|
|
|
44
45
|
}
|
|
45
46
|
`;
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
await sandbox.writeFiles([
|
|
49
|
+
{ path: "server.js", content: Buffer.from(serverScript) },
|
|
50
|
+
]);
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
const server = await sandbox.runCommand({
|
|
53
|
+
cmd: "node",
|
|
54
|
+
args: ["server.js", ...PORTS.map(String)],
|
|
55
|
+
detached: true,
|
|
56
|
+
stdout: process.stdout,
|
|
57
|
+
stderr: process.stderr,
|
|
58
|
+
});
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
for (const port of PORTS) {
|
|
63
|
+
const response = await fetch(sandbox.domain(port));
|
|
64
|
+
const text = await response.text();
|
|
65
|
+
expect(text).toBe(`hello port ${port}`);
|
|
66
|
+
}
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
});
|
|
68
|
+
await server.kill();
|
|
69
|
+
});
|
|
69
70
|
|
|
70
|
-
it("allows extending the sandbox timeout", async () => {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
it("allows extending the sandbox timeout", async () => {
|
|
72
|
+
const originalTimeout = sandbox.timeout;
|
|
73
|
+
const extensionDuration = ms("5m");
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
75
|
+
await sandbox.extendTimeout(extensionDuration);
|
|
76
|
+
expect(sandbox.timeout).toEqual(originalTimeout + extensionDuration);
|
|
77
|
+
});
|
|
77
78
|
|
|
78
|
-
it("raises an error when the timeout cannot be updated", async () => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
79
|
+
it("raises an error when the timeout cannot be updated", async () => {
|
|
80
|
+
try {
|
|
81
|
+
await sandbox.extendTimeout(ms("5d"));
|
|
82
|
+
expect.fail("Expected extendTimeout to throw an error");
|
|
83
|
+
} catch (error) {
|
|
84
|
+
expect(error).toBeInstanceOf(APIError);
|
|
85
|
+
expect(error).toMatchObject({
|
|
86
|
+
response: { status: 400 },
|
|
87
|
+
json: {
|
|
88
|
+
error: { code: "sandbox_timeout_invalid" },
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
91
93
|
});
|
package/src/sandbox.ts
CHANGED
|
@@ -135,6 +135,10 @@ export class Sandbox {
|
|
|
135
135
|
return this.sandbox.id;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
public get interactivePort(): number | undefined {
|
|
139
|
+
return this.sandbox.interactivePort ?? undefined;
|
|
140
|
+
}
|
|
141
|
+
|
|
138
142
|
/**
|
|
139
143
|
* The status of the sandbox.
|
|
140
144
|
*/
|
|
@@ -216,7 +220,7 @@ export class Sandbox {
|
|
|
216
220
|
* @returns A promise resolving to the {@link Sandbox}.
|
|
217
221
|
*/
|
|
218
222
|
static async get(
|
|
219
|
-
params: GetSandboxParams | (GetSandboxParams & Credentials)
|
|
223
|
+
params: WithPrivate<GetSandboxParams | (GetSandboxParams & Credentials)>,
|
|
220
224
|
): Promise<Sandbox> {
|
|
221
225
|
const credentials = await getCredentials(params);
|
|
222
226
|
const client = new APIClient({
|
|
@@ -224,9 +228,11 @@ export class Sandbox {
|
|
|
224
228
|
token: credentials.token,
|
|
225
229
|
});
|
|
226
230
|
|
|
231
|
+
const privateParams = getPrivateParams(params);
|
|
227
232
|
const sandbox = await client.getSandbox({
|
|
228
233
|
sandboxId: params.sandboxId,
|
|
229
234
|
signal: params.signal,
|
|
235
|
+
...privateParams,
|
|
230
236
|
});
|
|
231
237
|
|
|
232
238
|
return new Sandbox({
|
|
@@ -351,12 +357,19 @@ export class Sandbox {
|
|
|
351
357
|
|
|
352
358
|
if (params.stdout || params.stderr) {
|
|
353
359
|
(async () => {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
360
|
+
try {
|
|
361
|
+
for await (const log of command.logs({ signal: params.signal })) {
|
|
362
|
+
if (log.stream === "stdout") {
|
|
363
|
+
params.stdout?.write(log.data);
|
|
364
|
+
} else if (log.stream === "stderr") {
|
|
365
|
+
params.stderr?.write(log.data);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
} catch (err) {
|
|
369
|
+
if (params.signal?.aborted) {
|
|
370
|
+
return;
|
|
359
371
|
}
|
|
372
|
+
throw err;
|
|
360
373
|
}
|
|
361
374
|
})();
|
|
362
375
|
}
|
|
@@ -462,6 +475,11 @@ export class Sandbox {
|
|
|
462
475
|
* @param opts - Optional parameters.
|
|
463
476
|
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
464
477
|
* @returns A promise that resolves when the timeout is extended
|
|
478
|
+
*
|
|
479
|
+
* @example
|
|
480
|
+
* const sandbox = await Sandbox.create({ timeout: ms('10m') });
|
|
481
|
+
* // Extends timeout by 5 minutes, to a total of 15 minutes.
|
|
482
|
+
* await sandbox.extendTimeout(ms('5m'));
|
|
465
483
|
*/
|
|
466
484
|
async extendTimeout(
|
|
467
485
|
duration: number,
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Autogenerated by inject-version.ts
|
|
2
|
-
export const VERSION = "1.0.
|
|
2
|
+
export const VERSION = "1.0.4";
|