@vercel/sandbox 1.1.0 → 1.1.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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +6 -6
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/api-client/api-client.d.ts +19 -4
- package/dist/api-client/api-client.js +12 -0
- package/dist/api-client/api-client.js.map +1 -1
- package/dist/api-client/validators.d.ts +244 -23
- package/dist/api-client/validators.js +26 -2
- package/dist/api-client/validators.js.map +1 -1
- package/dist/sandbox.d.ts +22 -2
- package/dist/sandbox.js +23 -1
- package/dist/sandbox.js.map +1 -1
- package/dist/snapshot.d.ts +67 -0
- package/dist/snapshot.js +78 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/api-client/api-client.ts +37 -1
- package/src/api-client/validators.ts +30 -1
- package/src/sandbox.ts +33 -2
- package/src/snapshot.ts +110 -0
- package/src/version.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
> @vercel/sandbox@1.1.
|
|
2
|
+
> @vercel/sandbox@1.1.1 test /home/runner/work/sandbox-sdk/sandbox-sdk/packages/vercel-sandbox
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.1 [39m[90m/home/runner/work/sandbox-sdk/sandbox-sdk/packages/vercel-sandbox[39m
|
|
7
7
|
|
|
8
|
-
[32m✓[39m src/utils/jwt-expiry.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m
|
|
8
|
+
[32m✓[39m src/utils/jwt-expiry.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
9
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
|
|
10
|
+
[32m✓[39m src/utils/normalizePath.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 25[2mms[22m[39m
|
|
11
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
|
|
12
|
+
[32m✓[39m src/utils/types.test.js [2m([22m[2m1 test[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
13
13
|
|
|
14
14
|
[2m Test Files [22m [1m[32m3 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (5)[39m
|
|
15
15
|
[2m Tests [22m [1m[32m17 passed[39m[22m[2m | [22m[33m9 skipped[39m[90m (26)[39m
|
|
16
|
-
[2m Start at [22m
|
|
17
|
-
[2m Duration [22m 6.
|
|
16
|
+
[2m Start at [22m 21:19:50
|
|
17
|
+
[2m Duration [22m 6.65s[2m (transform 581ms, setup 194ms, collect 1.90s, tests 50ms, environment 4ms, prepare 1.53s)[22m
|
|
18
18
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseClient, type Parsed, type RequestParams } from "./base-client";
|
|
2
|
-
import { SandboxResponse, CommandResponse, CommandFinishedResponse, LogLine, ExtendTimeoutResponse } from "./validators";
|
|
2
|
+
import { SandboxResponse, CommandResponse, CommandFinishedResponse, LogLine, ExtendTimeoutResponse, SnapshotResponse, CreateSnapshotResponse } from "./validators";
|
|
3
3
|
import { FileWriter } from "./file-writer";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { WithPrivate } from "../utils/types";
|
|
@@ -24,7 +24,7 @@ export declare class APIClient extends BaseClient {
|
|
|
24
24
|
}>): Promise<Parsed<{
|
|
25
25
|
sandbox: {
|
|
26
26
|
region: string;
|
|
27
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
27
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
28
28
|
timeout: number;
|
|
29
29
|
cwd: string;
|
|
30
30
|
id: string;
|
|
@@ -59,6 +59,9 @@ export declare class APIClient extends BaseClient {
|
|
|
59
59
|
} | {
|
|
60
60
|
type: "tarball";
|
|
61
61
|
url: string;
|
|
62
|
+
} | {
|
|
63
|
+
type: "snapshot";
|
|
64
|
+
snapshotId: string;
|
|
62
65
|
};
|
|
63
66
|
timeout?: number;
|
|
64
67
|
resources?: {
|
|
@@ -69,7 +72,7 @@ export declare class APIClient extends BaseClient {
|
|
|
69
72
|
}>): Promise<Parsed<{
|
|
70
73
|
sandbox: {
|
|
71
74
|
region: string;
|
|
72
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
75
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
73
76
|
timeout: number;
|
|
74
77
|
cwd: string;
|
|
75
78
|
id: string;
|
|
@@ -161,7 +164,7 @@ export declare class APIClient extends BaseClient {
|
|
|
161
164
|
}): Promise<Parsed<{
|
|
162
165
|
sandboxes: {
|
|
163
166
|
region: string;
|
|
164
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
167
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
165
168
|
timeout: number;
|
|
166
169
|
cwd: string;
|
|
167
170
|
id: string;
|
|
@@ -231,4 +234,16 @@ export declare class APIClient extends BaseClient {
|
|
|
231
234
|
duration: number;
|
|
232
235
|
signal?: AbortSignal;
|
|
233
236
|
}): Promise<Parsed<z.infer<typeof ExtendTimeoutResponse>>>;
|
|
237
|
+
createSnapshot(params: {
|
|
238
|
+
sandboxId: string;
|
|
239
|
+
signal?: AbortSignal;
|
|
240
|
+
}): Promise<Parsed<z.infer<typeof CreateSnapshotResponse>>>;
|
|
241
|
+
deleteSnapshot(params: {
|
|
242
|
+
snapshotId: string;
|
|
243
|
+
signal?: AbortSignal;
|
|
244
|
+
}): Promise<Parsed<z.infer<typeof SnapshotResponse>>>;
|
|
245
|
+
getSnapshot(params: {
|
|
246
|
+
snapshotId: string;
|
|
247
|
+
signal?: AbortSignal;
|
|
248
|
+
}): Promise<Parsed<z.infer<typeof SnapshotResponse>>>;
|
|
234
249
|
}
|
|
@@ -224,6 +224,18 @@ class APIClient extends base_client_1.BaseClient {
|
|
|
224
224
|
signal: params.signal,
|
|
225
225
|
}));
|
|
226
226
|
}
|
|
227
|
+
async createSnapshot(params) {
|
|
228
|
+
const url = `/v1/sandboxes/${params.sandboxId}/snapshot`;
|
|
229
|
+
return (0, base_client_1.parseOrThrow)(validators_1.CreateSnapshotResponse, await this.request(url, { method: "POST", signal: params.signal }));
|
|
230
|
+
}
|
|
231
|
+
async deleteSnapshot(params) {
|
|
232
|
+
const url = `/v1/sandboxes/snapshots/${params.snapshotId}`;
|
|
233
|
+
return (0, base_client_1.parseOrThrow)(validators_1.SnapshotResponse, await this.request(url, { method: "DELETE", signal: params.signal }));
|
|
234
|
+
}
|
|
235
|
+
async getSnapshot(params) {
|
|
236
|
+
const url = `/v1/sandboxes/snapshots/${params.snapshotId}`;
|
|
237
|
+
return (0, base_client_1.parseOrThrow)(validators_1.SnapshotResponse, await this.request(url, { signal: params.signal }));
|
|
238
|
+
}
|
|
227
239
|
}
|
|
228
240
|
exports.APIClient = APIClient;
|
|
229
241
|
async function pipe(readable, output) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/api-client/api-client.ts"],"names":[],"mappings":";;;;;;AAAA,+CAKuB;AACvB,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/api-client/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
7
7
|
region: z.ZodString;
|
|
8
8
|
runtime: z.ZodString;
|
|
9
9
|
timeout: z.ZodNumber;
|
|
10
|
-
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed"]>;
|
|
10
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
11
11
|
requestedAt: z.ZodNumber;
|
|
12
12
|
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
13
13
|
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
@@ -19,7 +19,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
19
19
|
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
21
21
|
region: string;
|
|
22
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
22
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
23
23
|
timeout: number;
|
|
24
24
|
cwd: string;
|
|
25
25
|
id: string;
|
|
@@ -36,7 +36,7 @@ export declare const Sandbox: z.ZodObject<{
|
|
|
36
36
|
interactivePort?: number | undefined;
|
|
37
37
|
}, {
|
|
38
38
|
region: string;
|
|
39
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
39
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
40
40
|
timeout: number;
|
|
41
41
|
cwd: string;
|
|
42
42
|
id: string;
|
|
@@ -66,6 +66,35 @@ export declare const SandboxRoute: z.ZodObject<{
|
|
|
66
66
|
port: number;
|
|
67
67
|
subdomain: string;
|
|
68
68
|
}>;
|
|
69
|
+
export type SnapshotMetadata = z.infer<typeof Snapshot>;
|
|
70
|
+
export declare const Snapshot: z.ZodObject<{
|
|
71
|
+
id: z.ZodString;
|
|
72
|
+
sourceSandboxId: z.ZodString;
|
|
73
|
+
region: z.ZodString;
|
|
74
|
+
status: z.ZodEnum<["created", "deleted", "failed"]>;
|
|
75
|
+
sizeBytes: z.ZodNumber;
|
|
76
|
+
expiresAt: z.ZodNumber;
|
|
77
|
+
createdAt: z.ZodNumber;
|
|
78
|
+
updatedAt: z.ZodNumber;
|
|
79
|
+
}, "strip", z.ZodTypeAny, {
|
|
80
|
+
region: string;
|
|
81
|
+
status: "failed" | "created" | "deleted";
|
|
82
|
+
id: string;
|
|
83
|
+
createdAt: number;
|
|
84
|
+
updatedAt: number;
|
|
85
|
+
sourceSandboxId: string;
|
|
86
|
+
sizeBytes: number;
|
|
87
|
+
expiresAt: number;
|
|
88
|
+
}, {
|
|
89
|
+
region: string;
|
|
90
|
+
status: "failed" | "created" | "deleted";
|
|
91
|
+
id: string;
|
|
92
|
+
createdAt: number;
|
|
93
|
+
updatedAt: number;
|
|
94
|
+
sourceSandboxId: string;
|
|
95
|
+
sizeBytes: number;
|
|
96
|
+
expiresAt: number;
|
|
97
|
+
}>;
|
|
69
98
|
export declare const Pagination: z.ZodObject<{
|
|
70
99
|
/**
|
|
71
100
|
* Amount of items in the current page.
|
|
@@ -125,7 +154,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
125
154
|
region: z.ZodString;
|
|
126
155
|
runtime: z.ZodString;
|
|
127
156
|
timeout: z.ZodNumber;
|
|
128
|
-
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed"]>;
|
|
157
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
129
158
|
requestedAt: z.ZodNumber;
|
|
130
159
|
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
131
160
|
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
@@ -137,7 +166,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
137
166
|
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
138
167
|
}, "strip", z.ZodTypeAny, {
|
|
139
168
|
region: string;
|
|
140
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
169
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
141
170
|
timeout: number;
|
|
142
171
|
cwd: string;
|
|
143
172
|
id: string;
|
|
@@ -154,7 +183,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
154
183
|
interactivePort?: number | undefined;
|
|
155
184
|
}, {
|
|
156
185
|
region: string;
|
|
157
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
186
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
158
187
|
timeout: number;
|
|
159
188
|
cwd: string;
|
|
160
189
|
id: string;
|
|
@@ -173,7 +202,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
173
202
|
}, "strip", z.ZodTypeAny, {
|
|
174
203
|
sandbox: {
|
|
175
204
|
region: string;
|
|
176
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
205
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
177
206
|
timeout: number;
|
|
178
207
|
cwd: string;
|
|
179
208
|
id: string;
|
|
@@ -192,7 +221,7 @@ export declare const SandboxResponse: z.ZodObject<{
|
|
|
192
221
|
}, {
|
|
193
222
|
sandbox: {
|
|
194
223
|
region: string;
|
|
195
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
224
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
196
225
|
timeout: number;
|
|
197
226
|
cwd: string;
|
|
198
227
|
id: string;
|
|
@@ -217,7 +246,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
217
246
|
region: z.ZodString;
|
|
218
247
|
runtime: z.ZodString;
|
|
219
248
|
timeout: z.ZodNumber;
|
|
220
|
-
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed"]>;
|
|
249
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
221
250
|
requestedAt: z.ZodNumber;
|
|
222
251
|
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
223
252
|
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
@@ -229,7 +258,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
229
258
|
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
230
259
|
}, "strip", z.ZodTypeAny, {
|
|
231
260
|
region: string;
|
|
232
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
261
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
233
262
|
timeout: number;
|
|
234
263
|
cwd: string;
|
|
235
264
|
id: string;
|
|
@@ -246,7 +275,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
246
275
|
interactivePort?: number | undefined;
|
|
247
276
|
}, {
|
|
248
277
|
region: string;
|
|
249
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
278
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
250
279
|
timeout: number;
|
|
251
280
|
cwd: string;
|
|
252
281
|
id: string;
|
|
@@ -279,7 +308,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
279
308
|
}, "strip", z.ZodTypeAny, {
|
|
280
309
|
sandbox: {
|
|
281
310
|
region: string;
|
|
282
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
311
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
283
312
|
timeout: number;
|
|
284
313
|
cwd: string;
|
|
285
314
|
id: string;
|
|
@@ -303,7 +332,7 @@ export declare const SandboxAndRoutesResponse: z.ZodObject<{
|
|
|
303
332
|
}, {
|
|
304
333
|
sandbox: {
|
|
305
334
|
region: string;
|
|
306
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
335
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
307
336
|
timeout: number;
|
|
308
337
|
cwd: string;
|
|
309
338
|
id: string;
|
|
@@ -439,7 +468,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
439
468
|
region: z.ZodString;
|
|
440
469
|
runtime: z.ZodString;
|
|
441
470
|
timeout: z.ZodNumber;
|
|
442
|
-
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed"]>;
|
|
471
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
443
472
|
requestedAt: z.ZodNumber;
|
|
444
473
|
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
445
474
|
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
@@ -451,7 +480,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
451
480
|
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
452
481
|
}, "strip", z.ZodTypeAny, {
|
|
453
482
|
region: string;
|
|
454
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
483
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
455
484
|
timeout: number;
|
|
456
485
|
cwd: string;
|
|
457
486
|
id: string;
|
|
@@ -468,7 +497,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
468
497
|
interactivePort?: number | undefined;
|
|
469
498
|
}, {
|
|
470
499
|
region: string;
|
|
471
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
500
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
472
501
|
timeout: number;
|
|
473
502
|
cwd: string;
|
|
474
503
|
id: string;
|
|
@@ -512,7 +541,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
512
541
|
}, "strip", z.ZodTypeAny, {
|
|
513
542
|
sandboxes: {
|
|
514
543
|
region: string;
|
|
515
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
544
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
516
545
|
timeout: number;
|
|
517
546
|
cwd: string;
|
|
518
547
|
id: string;
|
|
@@ -536,7 +565,7 @@ export declare const SandboxesResponse: z.ZodObject<{
|
|
|
536
565
|
}, {
|
|
537
566
|
sandboxes: {
|
|
538
567
|
region: string;
|
|
539
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
568
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
540
569
|
timeout: number;
|
|
541
570
|
cwd: string;
|
|
542
571
|
id: string;
|
|
@@ -566,7 +595,127 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
566
595
|
region: z.ZodString;
|
|
567
596
|
runtime: z.ZodString;
|
|
568
597
|
timeout: z.ZodNumber;
|
|
569
|
-
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed"]>;
|
|
598
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
599
|
+
requestedAt: z.ZodNumber;
|
|
600
|
+
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
601
|
+
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
602
|
+
stoppedAt: z.ZodOptional<z.ZodNumber>;
|
|
603
|
+
duration: z.ZodOptional<z.ZodNumber>;
|
|
604
|
+
createdAt: z.ZodNumber;
|
|
605
|
+
cwd: z.ZodString;
|
|
606
|
+
updatedAt: z.ZodNumber;
|
|
607
|
+
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
608
|
+
}, "strip", z.ZodTypeAny, {
|
|
609
|
+
region: string;
|
|
610
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
611
|
+
timeout: number;
|
|
612
|
+
cwd: string;
|
|
613
|
+
id: string;
|
|
614
|
+
memory: number;
|
|
615
|
+
vcpus: number;
|
|
616
|
+
runtime: string;
|
|
617
|
+
requestedAt: number;
|
|
618
|
+
createdAt: number;
|
|
619
|
+
updatedAt: number;
|
|
620
|
+
duration?: number | undefined;
|
|
621
|
+
startedAt?: number | undefined;
|
|
622
|
+
requestedStopAt?: number | undefined;
|
|
623
|
+
stoppedAt?: number | undefined;
|
|
624
|
+
interactivePort?: number | undefined;
|
|
625
|
+
}, {
|
|
626
|
+
region: string;
|
|
627
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
628
|
+
timeout: number;
|
|
629
|
+
cwd: string;
|
|
630
|
+
id: string;
|
|
631
|
+
memory: number;
|
|
632
|
+
vcpus: number;
|
|
633
|
+
runtime: string;
|
|
634
|
+
requestedAt: number;
|
|
635
|
+
createdAt: number;
|
|
636
|
+
updatedAt: number;
|
|
637
|
+
duration?: number | undefined;
|
|
638
|
+
startedAt?: number | undefined;
|
|
639
|
+
requestedStopAt?: number | undefined;
|
|
640
|
+
stoppedAt?: number | undefined;
|
|
641
|
+
interactivePort?: number | undefined;
|
|
642
|
+
}>;
|
|
643
|
+
}, "strip", z.ZodTypeAny, {
|
|
644
|
+
sandbox: {
|
|
645
|
+
region: string;
|
|
646
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
647
|
+
timeout: number;
|
|
648
|
+
cwd: string;
|
|
649
|
+
id: string;
|
|
650
|
+
memory: number;
|
|
651
|
+
vcpus: number;
|
|
652
|
+
runtime: string;
|
|
653
|
+
requestedAt: number;
|
|
654
|
+
createdAt: number;
|
|
655
|
+
updatedAt: number;
|
|
656
|
+
duration?: number | undefined;
|
|
657
|
+
startedAt?: number | undefined;
|
|
658
|
+
requestedStopAt?: number | undefined;
|
|
659
|
+
stoppedAt?: number | undefined;
|
|
660
|
+
interactivePort?: number | undefined;
|
|
661
|
+
};
|
|
662
|
+
}, {
|
|
663
|
+
sandbox: {
|
|
664
|
+
region: string;
|
|
665
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
666
|
+
timeout: number;
|
|
667
|
+
cwd: string;
|
|
668
|
+
id: string;
|
|
669
|
+
memory: number;
|
|
670
|
+
vcpus: number;
|
|
671
|
+
runtime: string;
|
|
672
|
+
requestedAt: number;
|
|
673
|
+
createdAt: number;
|
|
674
|
+
updatedAt: number;
|
|
675
|
+
duration?: number | undefined;
|
|
676
|
+
startedAt?: number | undefined;
|
|
677
|
+
requestedStopAt?: number | undefined;
|
|
678
|
+
stoppedAt?: number | undefined;
|
|
679
|
+
interactivePort?: number | undefined;
|
|
680
|
+
};
|
|
681
|
+
}>;
|
|
682
|
+
export declare const CreateSnapshotResponse: z.ZodObject<{
|
|
683
|
+
snapshot: z.ZodObject<{
|
|
684
|
+
id: z.ZodString;
|
|
685
|
+
sourceSandboxId: z.ZodString;
|
|
686
|
+
region: z.ZodString;
|
|
687
|
+
status: z.ZodEnum<["created", "deleted", "failed"]>;
|
|
688
|
+
sizeBytes: z.ZodNumber;
|
|
689
|
+
expiresAt: z.ZodNumber;
|
|
690
|
+
createdAt: z.ZodNumber;
|
|
691
|
+
updatedAt: z.ZodNumber;
|
|
692
|
+
}, "strip", z.ZodTypeAny, {
|
|
693
|
+
region: string;
|
|
694
|
+
status: "failed" | "created" | "deleted";
|
|
695
|
+
id: string;
|
|
696
|
+
createdAt: number;
|
|
697
|
+
updatedAt: number;
|
|
698
|
+
sourceSandboxId: string;
|
|
699
|
+
sizeBytes: number;
|
|
700
|
+
expiresAt: number;
|
|
701
|
+
}, {
|
|
702
|
+
region: string;
|
|
703
|
+
status: "failed" | "created" | "deleted";
|
|
704
|
+
id: string;
|
|
705
|
+
createdAt: number;
|
|
706
|
+
updatedAt: number;
|
|
707
|
+
sourceSandboxId: string;
|
|
708
|
+
sizeBytes: number;
|
|
709
|
+
expiresAt: number;
|
|
710
|
+
}>;
|
|
711
|
+
sandbox: z.ZodObject<{
|
|
712
|
+
id: z.ZodString;
|
|
713
|
+
memory: z.ZodNumber;
|
|
714
|
+
vcpus: z.ZodNumber;
|
|
715
|
+
region: z.ZodString;
|
|
716
|
+
runtime: z.ZodString;
|
|
717
|
+
timeout: z.ZodNumber;
|
|
718
|
+
status: z.ZodEnum<["pending", "running", "stopping", "stopped", "failed", "snapshotting"]>;
|
|
570
719
|
requestedAt: z.ZodNumber;
|
|
571
720
|
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
572
721
|
requestedStopAt: z.ZodOptional<z.ZodNumber>;
|
|
@@ -578,7 +727,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
578
727
|
interactivePort: z.ZodOptional<z.ZodNumber>;
|
|
579
728
|
}, "strip", z.ZodTypeAny, {
|
|
580
729
|
region: string;
|
|
581
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
730
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
582
731
|
timeout: number;
|
|
583
732
|
cwd: string;
|
|
584
733
|
id: string;
|
|
@@ -595,7 +744,7 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
595
744
|
interactivePort?: number | undefined;
|
|
596
745
|
}, {
|
|
597
746
|
region: string;
|
|
598
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
747
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
599
748
|
timeout: number;
|
|
600
749
|
cwd: string;
|
|
601
750
|
id: string;
|
|
@@ -612,9 +761,19 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
612
761
|
interactivePort?: number | undefined;
|
|
613
762
|
}>;
|
|
614
763
|
}, "strip", z.ZodTypeAny, {
|
|
764
|
+
snapshot: {
|
|
765
|
+
region: string;
|
|
766
|
+
status: "failed" | "created" | "deleted";
|
|
767
|
+
id: string;
|
|
768
|
+
createdAt: number;
|
|
769
|
+
updatedAt: number;
|
|
770
|
+
sourceSandboxId: string;
|
|
771
|
+
sizeBytes: number;
|
|
772
|
+
expiresAt: number;
|
|
773
|
+
};
|
|
615
774
|
sandbox: {
|
|
616
775
|
region: string;
|
|
617
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
776
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
618
777
|
timeout: number;
|
|
619
778
|
cwd: string;
|
|
620
779
|
id: string;
|
|
@@ -631,9 +790,19 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
631
790
|
interactivePort?: number | undefined;
|
|
632
791
|
};
|
|
633
792
|
}, {
|
|
793
|
+
snapshot: {
|
|
794
|
+
region: string;
|
|
795
|
+
status: "failed" | "created" | "deleted";
|
|
796
|
+
id: string;
|
|
797
|
+
createdAt: number;
|
|
798
|
+
updatedAt: number;
|
|
799
|
+
sourceSandboxId: string;
|
|
800
|
+
sizeBytes: number;
|
|
801
|
+
expiresAt: number;
|
|
802
|
+
};
|
|
634
803
|
sandbox: {
|
|
635
804
|
region: string;
|
|
636
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
805
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
637
806
|
timeout: number;
|
|
638
807
|
cwd: string;
|
|
639
808
|
id: string;
|
|
@@ -650,3 +819,55 @@ export declare const ExtendTimeoutResponse: z.ZodObject<{
|
|
|
650
819
|
interactivePort?: number | undefined;
|
|
651
820
|
};
|
|
652
821
|
}>;
|
|
822
|
+
export declare const SnapshotResponse: z.ZodObject<{
|
|
823
|
+
snapshot: z.ZodObject<{
|
|
824
|
+
id: z.ZodString;
|
|
825
|
+
sourceSandboxId: z.ZodString;
|
|
826
|
+
region: z.ZodString;
|
|
827
|
+
status: z.ZodEnum<["created", "deleted", "failed"]>;
|
|
828
|
+
sizeBytes: z.ZodNumber;
|
|
829
|
+
expiresAt: z.ZodNumber;
|
|
830
|
+
createdAt: z.ZodNumber;
|
|
831
|
+
updatedAt: z.ZodNumber;
|
|
832
|
+
}, "strip", z.ZodTypeAny, {
|
|
833
|
+
region: string;
|
|
834
|
+
status: "failed" | "created" | "deleted";
|
|
835
|
+
id: string;
|
|
836
|
+
createdAt: number;
|
|
837
|
+
updatedAt: number;
|
|
838
|
+
sourceSandboxId: string;
|
|
839
|
+
sizeBytes: number;
|
|
840
|
+
expiresAt: number;
|
|
841
|
+
}, {
|
|
842
|
+
region: string;
|
|
843
|
+
status: "failed" | "created" | "deleted";
|
|
844
|
+
id: string;
|
|
845
|
+
createdAt: number;
|
|
846
|
+
updatedAt: number;
|
|
847
|
+
sourceSandboxId: string;
|
|
848
|
+
sizeBytes: number;
|
|
849
|
+
expiresAt: number;
|
|
850
|
+
}>;
|
|
851
|
+
}, "strip", z.ZodTypeAny, {
|
|
852
|
+
snapshot: {
|
|
853
|
+
region: string;
|
|
854
|
+
status: "failed" | "created" | "deleted";
|
|
855
|
+
id: string;
|
|
856
|
+
createdAt: number;
|
|
857
|
+
updatedAt: number;
|
|
858
|
+
sourceSandboxId: string;
|
|
859
|
+
sizeBytes: number;
|
|
860
|
+
expiresAt: number;
|
|
861
|
+
};
|
|
862
|
+
}, {
|
|
863
|
+
snapshot: {
|
|
864
|
+
region: string;
|
|
865
|
+
status: "failed" | "created" | "deleted";
|
|
866
|
+
id: string;
|
|
867
|
+
createdAt: number;
|
|
868
|
+
updatedAt: number;
|
|
869
|
+
sourceSandboxId: string;
|
|
870
|
+
sizeBytes: number;
|
|
871
|
+
expiresAt: number;
|
|
872
|
+
};
|
|
873
|
+
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExtendTimeoutResponse = exports.SandboxesResponse = exports.LogLine = exports.EmptyResponse = exports.CommandFinishedResponse = exports.CommandResponse = exports.SandboxAndRoutesResponse = exports.SandboxResponse = exports.Command = exports.Pagination = exports.SandboxRoute = exports.Sandbox = void 0;
|
|
3
|
+
exports.SnapshotResponse = exports.CreateSnapshotResponse = exports.ExtendTimeoutResponse = exports.SandboxesResponse = exports.LogLine = exports.EmptyResponse = exports.CommandFinishedResponse = exports.CommandResponse = exports.SandboxAndRoutesResponse = exports.SandboxResponse = exports.Command = exports.Pagination = exports.Snapshot = exports.SandboxRoute = exports.Sandbox = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.Sandbox = zod_1.z.object({
|
|
6
6
|
id: zod_1.z.string(),
|
|
@@ -9,7 +9,14 @@ exports.Sandbox = zod_1.z.object({
|
|
|
9
9
|
region: zod_1.z.string(),
|
|
10
10
|
runtime: zod_1.z.string(),
|
|
11
11
|
timeout: zod_1.z.number(),
|
|
12
|
-
status: zod_1.z.enum([
|
|
12
|
+
status: zod_1.z.enum([
|
|
13
|
+
"pending",
|
|
14
|
+
"running",
|
|
15
|
+
"stopping",
|
|
16
|
+
"stopped",
|
|
17
|
+
"failed",
|
|
18
|
+
"snapshotting",
|
|
19
|
+
]),
|
|
13
20
|
requestedAt: zod_1.z.number(),
|
|
14
21
|
startedAt: zod_1.z.number().optional(),
|
|
15
22
|
requestedStopAt: zod_1.z.number().optional(),
|
|
@@ -25,6 +32,16 @@ exports.SandboxRoute = zod_1.z.object({
|
|
|
25
32
|
subdomain: zod_1.z.string(),
|
|
26
33
|
port: zod_1.z.number(),
|
|
27
34
|
});
|
|
35
|
+
exports.Snapshot = zod_1.z.object({
|
|
36
|
+
id: zod_1.z.string(),
|
|
37
|
+
sourceSandboxId: zod_1.z.string(),
|
|
38
|
+
region: zod_1.z.string(),
|
|
39
|
+
status: zod_1.z.enum(["created", "deleted", "failed"]),
|
|
40
|
+
sizeBytes: zod_1.z.number(),
|
|
41
|
+
expiresAt: zod_1.z.number(),
|
|
42
|
+
createdAt: zod_1.z.number(),
|
|
43
|
+
updatedAt: zod_1.z.number(),
|
|
44
|
+
});
|
|
28
45
|
exports.Pagination = zod_1.z.object({
|
|
29
46
|
/**
|
|
30
47
|
* Amount of items in the current page.
|
|
@@ -78,4 +95,11 @@ exports.SandboxesResponse = zod_1.z.object({
|
|
|
78
95
|
exports.ExtendTimeoutResponse = zod_1.z.object({
|
|
79
96
|
sandbox: exports.Sandbox,
|
|
80
97
|
});
|
|
98
|
+
exports.CreateSnapshotResponse = zod_1.z.object({
|
|
99
|
+
snapshot: exports.Snapshot,
|
|
100
|
+
sandbox: exports.Sandbox,
|
|
101
|
+
});
|
|
102
|
+
exports.SnapshotResponse = zod_1.z.object({
|
|
103
|
+
snapshot: exports.Snapshot,
|
|
104
|
+
});
|
|
81
105
|
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/api-client/validators.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAIX,QAAA,OAAO,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/api-client/validators.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ import { type Credentials } from "./utils/get-credentials";
|
|
|
6
6
|
import { WithPrivate } from "./utils/types";
|
|
7
7
|
import { WithFetchOptions } from "./api-client/api-client";
|
|
8
8
|
import { RUNTIMES } from "./constants";
|
|
9
|
+
import { Snapshot } from "./snapshot";
|
|
9
10
|
/** @inline */
|
|
10
|
-
export interface
|
|
11
|
+
export interface BaseCreateSandboxParams {
|
|
11
12
|
/**
|
|
12
13
|
* The source of the sandbox.
|
|
13
14
|
*
|
|
@@ -61,6 +62,12 @@ export interface CreateSandboxParams {
|
|
|
61
62
|
*/
|
|
62
63
|
signal?: AbortSignal;
|
|
63
64
|
}
|
|
65
|
+
export type CreateSandboxParams = BaseCreateSandboxParams | (Omit<BaseCreateSandboxParams, "runtime" | "source"> & {
|
|
66
|
+
source: {
|
|
67
|
+
type: "snapshot";
|
|
68
|
+
snapshotId: string;
|
|
69
|
+
};
|
|
70
|
+
});
|
|
64
71
|
/** @inline */
|
|
65
72
|
interface GetSandboxParams {
|
|
66
73
|
/**
|
|
@@ -149,7 +156,7 @@ export declare class Sandbox {
|
|
|
149
156
|
static list(params: Parameters<APIClient["listSandboxes"]>[0] & Partial<Credentials> & WithFetchOptions): Promise<import("./api-client/base-client").Parsed<{
|
|
150
157
|
sandboxes: {
|
|
151
158
|
region: string;
|
|
152
|
-
status: "pending" | "running" | "stopping" | "stopped" | "failed";
|
|
159
|
+
status: "pending" | "running" | "stopping" | "stopped" | "failed" | "snapshotting";
|
|
153
160
|
timeout: number;
|
|
154
161
|
cwd: string;
|
|
155
162
|
id: string;
|
|
@@ -321,5 +328,18 @@ export declare class Sandbox {
|
|
|
321
328
|
extendTimeout(duration: number, opts?: {
|
|
322
329
|
signal?: AbortSignal;
|
|
323
330
|
}): Promise<void>;
|
|
331
|
+
/**
|
|
332
|
+
* Create a snapshot from this currently running sandbox. New sandboxes can
|
|
333
|
+
* then be created from this snapshot using {@link Sandbox.createFromSnapshot}.
|
|
334
|
+
*
|
|
335
|
+
* Note: this sandbox will be stopped as part of the snapshot creation process.
|
|
336
|
+
*
|
|
337
|
+
* @param opts - Optional parameters.
|
|
338
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
339
|
+
* @returns A promise that resolves to the Snapshot instance
|
|
340
|
+
*/
|
|
341
|
+
snapshot(opts?: {
|
|
342
|
+
signal?: AbortSignal;
|
|
343
|
+
}): Promise<Snapshot>;
|
|
324
344
|
}
|
|
325
345
|
export {};
|
package/dist/sandbox.js
CHANGED
|
@@ -5,6 +5,7 @@ const api_client_1 = require("./api-client");
|
|
|
5
5
|
const command_1 = require("./command");
|
|
6
6
|
const get_credentials_1 = require("./utils/get-credentials");
|
|
7
7
|
const types_1 = require("./utils/types");
|
|
8
|
+
const snapshot_1 = require("./snapshot");
|
|
8
9
|
/**
|
|
9
10
|
* A Sandbox is an isolated Linux MicroVM to run commands in.
|
|
10
11
|
*
|
|
@@ -70,7 +71,7 @@ class Sandbox {
|
|
|
70
71
|
ports: params?.ports ?? [],
|
|
71
72
|
timeout: params?.timeout,
|
|
72
73
|
resources: params?.resources,
|
|
73
|
-
runtime: params?.runtime,
|
|
74
|
+
runtime: params && "runtime" in params ? params?.runtime : undefined,
|
|
74
75
|
signal: params?.signal,
|
|
75
76
|
...privateParams,
|
|
76
77
|
});
|
|
@@ -289,6 +290,27 @@ class Sandbox {
|
|
|
289
290
|
// Update the internal sandbox metadata with the new timeout value
|
|
290
291
|
this.sandbox = response.json.sandbox;
|
|
291
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Create a snapshot from this currently running sandbox. New sandboxes can
|
|
295
|
+
* then be created from this snapshot using {@link Sandbox.createFromSnapshot}.
|
|
296
|
+
*
|
|
297
|
+
* Note: this sandbox will be stopped as part of the snapshot creation process.
|
|
298
|
+
*
|
|
299
|
+
* @param opts - Optional parameters.
|
|
300
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
301
|
+
* @returns A promise that resolves to the Snapshot instance
|
|
302
|
+
*/
|
|
303
|
+
async snapshot(opts) {
|
|
304
|
+
const response = await this.client.createSnapshot({
|
|
305
|
+
sandboxId: this.sandbox.id,
|
|
306
|
+
signal: opts?.signal,
|
|
307
|
+
});
|
|
308
|
+
this.sandbox = response.json.sandbox;
|
|
309
|
+
return new snapshot_1.Snapshot({
|
|
310
|
+
client: this.client,
|
|
311
|
+
snapshot: response.json.snapshot,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
292
314
|
}
|
|
293
315
|
exports.Sandbox = Sandbox;
|
|
294
316
|
//# sourceMappingURL=sandbox.js.map
|
package/dist/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AACzC,uCAA0D;AAC1D,6DAA2E;AAC3E,yCAA8D;
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { SnapshotMetadata } from "./api-client";
|
|
2
|
+
import { APIClient } from "./api-client";
|
|
3
|
+
import { Credentials } from "./utils/get-credentials";
|
|
4
|
+
/** @inline */
|
|
5
|
+
interface GetSnapshotParams {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier of the snapshot.
|
|
8
|
+
*/
|
|
9
|
+
snapshotId: string;
|
|
10
|
+
/**
|
|
11
|
+
* An AbortSignal to cancel the operation.
|
|
12
|
+
*/
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A Snapshot is a saved state of a Sandbox that can be used to create new Sandboxes
|
|
17
|
+
*
|
|
18
|
+
* Use {@link Sandbox.snapshot} or {@link Snapshot.get} to construct.
|
|
19
|
+
* @hideconstructor
|
|
20
|
+
*/
|
|
21
|
+
export declare class Snapshot {
|
|
22
|
+
private readonly client;
|
|
23
|
+
/**
|
|
24
|
+
* Unique ID of this snapshot.
|
|
25
|
+
*/
|
|
26
|
+
get snapshotId(): string;
|
|
27
|
+
/**
|
|
28
|
+
* The ID the sandbox from which this snapshot was created.
|
|
29
|
+
*/
|
|
30
|
+
get sourceSandboxId(): string;
|
|
31
|
+
/**
|
|
32
|
+
* The status of the snapshot.
|
|
33
|
+
*/
|
|
34
|
+
get status(): SnapshotMetadata["status"];
|
|
35
|
+
/**
|
|
36
|
+
* Internal metadata about this snapshot.
|
|
37
|
+
*/
|
|
38
|
+
private snapshot;
|
|
39
|
+
/**
|
|
40
|
+
* Create a new Snapshot instance.
|
|
41
|
+
*
|
|
42
|
+
* @param client - API client used to communicate with the backend
|
|
43
|
+
* @param snapshot - Snapshot metadata
|
|
44
|
+
*/
|
|
45
|
+
constructor({ client, snapshot, }: {
|
|
46
|
+
client: APIClient;
|
|
47
|
+
snapshot: SnapshotMetadata;
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Retrieve an existing snapshot.
|
|
51
|
+
*
|
|
52
|
+
* @param params - Get parameters and optional credentials.
|
|
53
|
+
* @returns A promise resolving to the {@link Sandbox}.
|
|
54
|
+
*/
|
|
55
|
+
static get(params: GetSnapshotParams | (GetSnapshotParams & Credentials)): Promise<Snapshot>;
|
|
56
|
+
/**
|
|
57
|
+
* Delete this snapshot.
|
|
58
|
+
*
|
|
59
|
+
* @param opts - Optional parameters.
|
|
60
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
61
|
+
* @returns A promise that resolves once the snapshot has been deleted.
|
|
62
|
+
*/
|
|
63
|
+
delete(opts?: {
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
package/dist/snapshot.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Snapshot = void 0;
|
|
4
|
+
const api_client_1 = require("./api-client");
|
|
5
|
+
const get_credentials_1 = require("./utils/get-credentials");
|
|
6
|
+
/**
|
|
7
|
+
* A Snapshot is a saved state of a Sandbox that can be used to create new Sandboxes
|
|
8
|
+
*
|
|
9
|
+
* Use {@link Sandbox.snapshot} or {@link Snapshot.get} to construct.
|
|
10
|
+
* @hideconstructor
|
|
11
|
+
*/
|
|
12
|
+
class Snapshot {
|
|
13
|
+
/**
|
|
14
|
+
* Unique ID of this snapshot.
|
|
15
|
+
*/
|
|
16
|
+
get snapshotId() {
|
|
17
|
+
return this.snapshot.id;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The ID the sandbox from which this snapshot was created.
|
|
21
|
+
*/
|
|
22
|
+
get sourceSandboxId() {
|
|
23
|
+
return this.snapshot.sourceSandboxId;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The status of the snapshot.
|
|
27
|
+
*/
|
|
28
|
+
get status() {
|
|
29
|
+
return this.snapshot.status;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a new Snapshot instance.
|
|
33
|
+
*
|
|
34
|
+
* @param client - API client used to communicate with the backend
|
|
35
|
+
* @param snapshot - Snapshot metadata
|
|
36
|
+
*/
|
|
37
|
+
constructor({ client, snapshot, }) {
|
|
38
|
+
this.client = client;
|
|
39
|
+
this.snapshot = snapshot;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve an existing snapshot.
|
|
43
|
+
*
|
|
44
|
+
* @param params - Get parameters and optional credentials.
|
|
45
|
+
* @returns A promise resolving to the {@link Sandbox}.
|
|
46
|
+
*/
|
|
47
|
+
static async get(params) {
|
|
48
|
+
const credentials = await (0, get_credentials_1.getCredentials)(params);
|
|
49
|
+
const client = new api_client_1.APIClient({
|
|
50
|
+
teamId: credentials.teamId,
|
|
51
|
+
token: credentials.token,
|
|
52
|
+
});
|
|
53
|
+
const sandbox = await client.getSnapshot({
|
|
54
|
+
snapshotId: params.snapshotId,
|
|
55
|
+
signal: params.signal,
|
|
56
|
+
});
|
|
57
|
+
return new Snapshot({
|
|
58
|
+
client,
|
|
59
|
+
snapshot: sandbox.json.snapshot,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Delete this snapshot.
|
|
64
|
+
*
|
|
65
|
+
* @param opts - Optional parameters.
|
|
66
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
67
|
+
* @returns A promise that resolves once the snapshot has been deleted.
|
|
68
|
+
*/
|
|
69
|
+
async delete(opts) {
|
|
70
|
+
const response = await this.client.deleteSnapshot({
|
|
71
|
+
snapshotId: this.snapshot.id,
|
|
72
|
+
signal: opts?.signal,
|
|
73
|
+
});
|
|
74
|
+
this.snapshot = response.json.snapshot;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.Snapshot = Snapshot;
|
|
78
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AACzC,6DAAsE;AActE;;;;;GAKG;AACH,MAAa,QAAQ;IAGnB;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAOD;;;;;OAKG;IACH,YAAY,EACV,MAAM,EACN,QAAQ,GAIT;QACC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,MAA6D;QAE7D,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAc,EAAC,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC;YAC3B,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACvC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO,IAAI,QAAQ,CAAC;YAClB,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,IAA+B;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAChD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzC,CAAC;CACF;AAvFD,4BAuFC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.1.
|
|
1
|
+
export declare const VERSION = "1.1.1";
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -13,6 +13,8 @@ import {
|
|
|
13
13
|
LogLine,
|
|
14
14
|
SandboxesResponse,
|
|
15
15
|
ExtendTimeoutResponse,
|
|
16
|
+
SnapshotResponse,
|
|
17
|
+
CreateSnapshotResponse,
|
|
16
18
|
} from "./validators";
|
|
17
19
|
import { APIError } from "./api-error";
|
|
18
20
|
import { FileWriter } from "./file-writer";
|
|
@@ -110,7 +112,8 @@ export class APIClient extends BaseClient {
|
|
|
110
112
|
username?: string;
|
|
111
113
|
password?: string;
|
|
112
114
|
}
|
|
113
|
-
| { type: "tarball"; url: string }
|
|
115
|
+
| { type: "tarball"; url: string }
|
|
116
|
+
| { type: "snapshot"; snapshotId: string };
|
|
114
117
|
timeout?: number;
|
|
115
118
|
resources?: { vcpus: number };
|
|
116
119
|
runtime?: RUNTIMES | (string & {});
|
|
@@ -426,6 +429,39 @@ export class APIClient extends BaseClient {
|
|
|
426
429
|
}),
|
|
427
430
|
);
|
|
428
431
|
}
|
|
432
|
+
|
|
433
|
+
async createSnapshot(params: {
|
|
434
|
+
sandboxId: string;
|
|
435
|
+
signal?: AbortSignal;
|
|
436
|
+
}): Promise<Parsed<z.infer<typeof CreateSnapshotResponse>>> {
|
|
437
|
+
const url = `/v1/sandboxes/${params.sandboxId}/snapshot`;
|
|
438
|
+
return parseOrThrow(
|
|
439
|
+
CreateSnapshotResponse,
|
|
440
|
+
await this.request(url, { method: "POST", signal: params.signal }),
|
|
441
|
+
);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
async deleteSnapshot(params: {
|
|
445
|
+
snapshotId: string;
|
|
446
|
+
signal?: AbortSignal;
|
|
447
|
+
}): Promise<Parsed<z.infer<typeof SnapshotResponse>>> {
|
|
448
|
+
const url = `/v1/sandboxes/snapshots/${params.snapshotId}`;
|
|
449
|
+
return parseOrThrow(
|
|
450
|
+
SnapshotResponse,
|
|
451
|
+
await this.request(url, { method: "DELETE", signal: params.signal }),
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
async getSnapshot(params: {
|
|
456
|
+
snapshotId: string;
|
|
457
|
+
signal?: AbortSignal;
|
|
458
|
+
}): Promise<Parsed<z.infer<typeof SnapshotResponse>>> {
|
|
459
|
+
const url = `/v1/sandboxes/snapshots/${params.snapshotId}`;
|
|
460
|
+
return parseOrThrow(
|
|
461
|
+
SnapshotResponse,
|
|
462
|
+
await this.request(url, { signal: params.signal }),
|
|
463
|
+
);
|
|
464
|
+
}
|
|
429
465
|
}
|
|
430
466
|
|
|
431
467
|
async function pipe(
|
|
@@ -9,7 +9,14 @@ export const Sandbox = z.object({
|
|
|
9
9
|
region: z.string(),
|
|
10
10
|
runtime: z.string(),
|
|
11
11
|
timeout: z.number(),
|
|
12
|
-
status: z.enum([
|
|
12
|
+
status: z.enum([
|
|
13
|
+
"pending",
|
|
14
|
+
"running",
|
|
15
|
+
"stopping",
|
|
16
|
+
"stopped",
|
|
17
|
+
"failed",
|
|
18
|
+
"snapshotting",
|
|
19
|
+
]),
|
|
13
20
|
requestedAt: z.number(),
|
|
14
21
|
startedAt: z.number().optional(),
|
|
15
22
|
requestedStopAt: z.number().optional(),
|
|
@@ -29,6 +36,19 @@ export const SandboxRoute = z.object({
|
|
|
29
36
|
port: z.number(),
|
|
30
37
|
});
|
|
31
38
|
|
|
39
|
+
export type SnapshotMetadata = z.infer<typeof Snapshot>;
|
|
40
|
+
|
|
41
|
+
export const Snapshot = z.object({
|
|
42
|
+
id: z.string(),
|
|
43
|
+
sourceSandboxId: z.string(),
|
|
44
|
+
region: z.string(),
|
|
45
|
+
status: z.enum(["created", "deleted", "failed"]),
|
|
46
|
+
sizeBytes: z.number(),
|
|
47
|
+
expiresAt: z.number(),
|
|
48
|
+
createdAt: z.number(),
|
|
49
|
+
updatedAt: z.number(),
|
|
50
|
+
});
|
|
51
|
+
|
|
32
52
|
export const Pagination = z.object({
|
|
33
53
|
/**
|
|
34
54
|
* Amount of items in the current page.
|
|
@@ -94,3 +114,12 @@ export const SandboxesResponse = z.object({
|
|
|
94
114
|
export const ExtendTimeoutResponse = z.object({
|
|
95
115
|
sandbox: Sandbox,
|
|
96
116
|
});
|
|
117
|
+
|
|
118
|
+
export const CreateSnapshotResponse = z.object({
|
|
119
|
+
snapshot: Snapshot,
|
|
120
|
+
sandbox: Sandbox,
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
export const SnapshotResponse = z.object({
|
|
124
|
+
snapshot: Snapshot,
|
|
125
|
+
});
|
package/src/sandbox.ts
CHANGED
|
@@ -6,9 +6,10 @@ import { type Credentials, getCredentials } from "./utils/get-credentials";
|
|
|
6
6
|
import { getPrivateParams, WithPrivate } from "./utils/types";
|
|
7
7
|
import { WithFetchOptions } from "./api-client/api-client";
|
|
8
8
|
import { RUNTIMES } from "./constants";
|
|
9
|
+
import { Snapshot } from "./snapshot";
|
|
9
10
|
|
|
10
11
|
/** @inline */
|
|
11
|
-
export interface
|
|
12
|
+
export interface BaseCreateSandboxParams {
|
|
12
13
|
/**
|
|
13
14
|
* The source of the sandbox.
|
|
14
15
|
*
|
|
@@ -63,6 +64,12 @@ export interface CreateSandboxParams {
|
|
|
63
64
|
signal?: AbortSignal;
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
export type CreateSandboxParams =
|
|
68
|
+
| BaseCreateSandboxParams
|
|
69
|
+
| (Omit<BaseCreateSandboxParams, "runtime" | "source"> & {
|
|
70
|
+
source: { type: "snapshot"; snapshotId: string };
|
|
71
|
+
});
|
|
72
|
+
|
|
66
73
|
/** @inline */
|
|
67
74
|
interface GetSandboxParams {
|
|
68
75
|
/**
|
|
@@ -208,7 +215,7 @@ export class Sandbox {
|
|
|
208
215
|
ports: params?.ports ?? [],
|
|
209
216
|
timeout: params?.timeout,
|
|
210
217
|
resources: params?.resources,
|
|
211
|
-
runtime: params?.runtime,
|
|
218
|
+
runtime: params && "runtime" in params ? params?.runtime : undefined,
|
|
212
219
|
signal: params?.signal,
|
|
213
220
|
...privateParams,
|
|
214
221
|
});
|
|
@@ -503,4 +510,28 @@ export class Sandbox {
|
|
|
503
510
|
// Update the internal sandbox metadata with the new timeout value
|
|
504
511
|
this.sandbox = response.json.sandbox;
|
|
505
512
|
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Create a snapshot from this currently running sandbox. New sandboxes can
|
|
516
|
+
* then be created from this snapshot using {@link Sandbox.createFromSnapshot}.
|
|
517
|
+
*
|
|
518
|
+
* Note: this sandbox will be stopped as part of the snapshot creation process.
|
|
519
|
+
*
|
|
520
|
+
* @param opts - Optional parameters.
|
|
521
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
522
|
+
* @returns A promise that resolves to the Snapshot instance
|
|
523
|
+
*/
|
|
524
|
+
async snapshot(opts?: { signal?: AbortSignal }): Promise<Snapshot> {
|
|
525
|
+
const response = await this.client.createSnapshot({
|
|
526
|
+
sandboxId: this.sandbox.id,
|
|
527
|
+
signal: opts?.signal,
|
|
528
|
+
});
|
|
529
|
+
|
|
530
|
+
this.sandbox = response.json.sandbox;
|
|
531
|
+
|
|
532
|
+
return new Snapshot({
|
|
533
|
+
client: this.client,
|
|
534
|
+
snapshot: response.json.snapshot,
|
|
535
|
+
});
|
|
536
|
+
}
|
|
506
537
|
}
|
package/src/snapshot.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { SnapshotMetadata } from "./api-client";
|
|
2
|
+
import { APIClient } from "./api-client";
|
|
3
|
+
import { Credentials, getCredentials } from "./utils/get-credentials";
|
|
4
|
+
|
|
5
|
+
/** @inline */
|
|
6
|
+
interface GetSnapshotParams {
|
|
7
|
+
/**
|
|
8
|
+
* Unique identifier of the snapshot.
|
|
9
|
+
*/
|
|
10
|
+
snapshotId: string;
|
|
11
|
+
/**
|
|
12
|
+
* An AbortSignal to cancel the operation.
|
|
13
|
+
*/
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A Snapshot is a saved state of a Sandbox that can be used to create new Sandboxes
|
|
19
|
+
*
|
|
20
|
+
* Use {@link Sandbox.snapshot} or {@link Snapshot.get} to construct.
|
|
21
|
+
* @hideconstructor
|
|
22
|
+
*/
|
|
23
|
+
export class Snapshot {
|
|
24
|
+
private readonly client: APIClient;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Unique ID of this snapshot.
|
|
28
|
+
*/
|
|
29
|
+
public get snapshotId(): string {
|
|
30
|
+
return this.snapshot.id;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The ID the sandbox from which this snapshot was created.
|
|
35
|
+
*/
|
|
36
|
+
public get sourceSandboxId(): string {
|
|
37
|
+
return this.snapshot.sourceSandboxId;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The status of the snapshot.
|
|
42
|
+
*/
|
|
43
|
+
public get status(): SnapshotMetadata["status"] {
|
|
44
|
+
return this.snapshot.status;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Internal metadata about this snapshot.
|
|
49
|
+
*/
|
|
50
|
+
private snapshot: SnapshotMetadata;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Create a new Snapshot instance.
|
|
54
|
+
*
|
|
55
|
+
* @param client - API client used to communicate with the backend
|
|
56
|
+
* @param snapshot - Snapshot metadata
|
|
57
|
+
*/
|
|
58
|
+
constructor({
|
|
59
|
+
client,
|
|
60
|
+
snapshot,
|
|
61
|
+
}: {
|
|
62
|
+
client: APIClient;
|
|
63
|
+
snapshot: SnapshotMetadata;
|
|
64
|
+
}) {
|
|
65
|
+
this.client = client;
|
|
66
|
+
this.snapshot = snapshot;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Retrieve an existing snapshot.
|
|
71
|
+
*
|
|
72
|
+
* @param params - Get parameters and optional credentials.
|
|
73
|
+
* @returns A promise resolving to the {@link Sandbox}.
|
|
74
|
+
*/
|
|
75
|
+
static async get(
|
|
76
|
+
params: GetSnapshotParams | (GetSnapshotParams & Credentials),
|
|
77
|
+
): Promise<Snapshot> {
|
|
78
|
+
const credentials = await getCredentials(params);
|
|
79
|
+
const client = new APIClient({
|
|
80
|
+
teamId: credentials.teamId,
|
|
81
|
+
token: credentials.token,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
const sandbox = await client.getSnapshot({
|
|
85
|
+
snapshotId: params.snapshotId,
|
|
86
|
+
signal: params.signal,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
return new Snapshot({
|
|
90
|
+
client,
|
|
91
|
+
snapshot: sandbox.json.snapshot,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Delete this snapshot.
|
|
97
|
+
*
|
|
98
|
+
* @param opts - Optional parameters.
|
|
99
|
+
* @param opts.signal - An AbortSignal to cancel the operation.
|
|
100
|
+
* @returns A promise that resolves once the snapshot has been deleted.
|
|
101
|
+
*/
|
|
102
|
+
async delete(opts?: { signal?: AbortSignal }): Promise<void> {
|
|
103
|
+
const response = await this.client.deleteSnapshot({
|
|
104
|
+
snapshotId: this.snapshot.id,
|
|
105
|
+
signal: opts?.signal,
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
this.snapshot = response.json.snapshot;
|
|
109
|
+
}
|
|
110
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Autogenerated by inject-version.ts
|
|
2
|
-
export const VERSION = "1.1.
|
|
2
|
+
export const VERSION = "1.1.1";
|