@vercel/sandbox 1.0.4 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AACzC,uCAA0D;AAC1D,6DAA2E;AAC3E,yCAA8D;AAG9D,yCAAsC;AAoHtC;;;;;GAKG;AACH,MAAa,OAAO;IASlB;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,SAAS,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAOD;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,MAEkB;QAElB,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;YACxB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,aAAa,CAAC;YAC1B,GAAG,MAAM;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,MAGkB;QAElB,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;YACxB,KAAK,EAAE,MAAM,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YACzC,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1B,OAAO,EAAE,MAAM,EAAE,OAAO;YACxB,SAAS,EAAE,MAAM,EAAE,SAAS;YAC5B,OAAO,EAAE,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;YACpE,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,GAAG,aAAa;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC;YACjB,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC7B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,MACkB;QAElB,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;YACxB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YACtC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,aAAa;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC;YACjB,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC7B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,YAAY,EACV,MAAM,EACN,MAAM,EACN,OAAO,GAKR;QACC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,KAAa,EACb,IAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,KAAK;YACL,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,iBAAO,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;SAC1B,CAAC,CAAC;IACL,CAAC;IAmCD,KAAK,CAAC,UAAU,CACd,eAA0C,EAC1C,IAAe,EACf,IAA+B;QAE/B,OAAO,OAAO,eAAe,KAAK,QAAQ;YACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACxE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,EAAE,MAAM,CAAC,GAAG;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,CAAC,KAAK,IAAI,EAAE;gBACV,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC5B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACjC,CAAC;6BAAM,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACnC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC3B,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAA+B;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACtB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAoC,EACpC,IAA+B;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,KAA0C,EAC1C,IAA+B;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YACrB,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,CAAS;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,WAAW,KAAK,CAAC,SAAS,aAAa,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,IAA+B;QACxC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,IAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,QAAQ;YACR,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,kEAAkE;QAClE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ,CAAC,IAA+B;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAErC,OAAO,IAAI,mBAAQ,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AAtZD,0BAsZC"}
@@ -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 {};
@@ -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.0.4";
1
+ export declare const VERSION = "1.1.1";
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Autogenerated by inject-version.ts
5
- exports.VERSION = "1.0.4";
5
+ exports.VERSION = "1.1.1";
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/sandbox",
3
- "version": "1.0.4",
3
+ "version": "1.1.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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";
@@ -25,16 +27,27 @@ import { Readable } from "stream";
25
27
  import { normalizePath } from "../utils/normalizePath";
26
28
  import { JwtExpiry } from "../utils/jwt-expiry";
27
29
  import { getPrivateParams, WithPrivate } from "../utils/types";
30
+ import { RUNTIMES } from "../constants";
31
+
32
+ export interface WithFetchOptions {
33
+ fetch?: typeof globalThis.fetch;
34
+ }
28
35
 
29
36
  export class APIClient extends BaseClient {
30
37
  private teamId: string;
31
38
  private tokenExpiry: JwtExpiry | null;
32
39
 
33
- constructor(params: { baseUrl?: string; teamId: string; token: string }) {
40
+ constructor(params: {
41
+ baseUrl?: string;
42
+ teamId: string;
43
+ token: string;
44
+ fetch?: typeof globalThis.fetch;
45
+ }) {
34
46
  super({
35
47
  baseUrl: params.baseUrl ?? "https://vercel.com/api",
36
48
  token: params.token,
37
49
  debug: false,
50
+ fetch: params.fetch,
38
51
  });
39
52
 
40
53
  this.teamId = params.teamId;
@@ -99,10 +112,11 @@ export class APIClient extends BaseClient {
99
112
  username?: string;
100
113
  password?: string;
101
114
  }
102
- | { type: "tarball"; url: string };
115
+ | { type: "tarball"; url: string }
116
+ | { type: "snapshot"; snapshotId: string };
103
117
  timeout?: number;
104
118
  resources?: { vcpus: number };
105
- runtime?: "node22" | "python3.13" | (string & {});
119
+ runtime?: RUNTIMES | (string & {});
106
120
  signal?: AbortSignal;
107
121
  }>,
108
122
  ) {
@@ -415,6 +429,39 @@ export class APIClient extends BaseClient {
415
429
  }),
416
430
  );
417
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
+ }
418
465
  }
419
466
 
420
467
  async function pipe(
@@ -25,8 +25,13 @@ export class BaseClient {
25
25
  private baseUrl: string;
26
26
  private agent: Agent;
27
27
 
28
- constructor(params: { debug?: boolean; baseUrl: string; token?: string }) {
29
- this.fetch = withRetry(globalThis.fetch);
28
+ constructor(params: {
29
+ debug?: boolean;
30
+ baseUrl: string;
31
+ token?: string;
32
+ fetch?: typeof globalThis.fetch;
33
+ }) {
34
+ this.fetch = withRetry(params.fetch ?? globalThis.fetch);
30
35
  this.baseUrl = params.baseUrl;
31
36
  this.debug = params.debug ?? process.env.DEBUG_FETCH === "true";
32
37
  this.token = params.token;
@@ -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(["pending", "running", "stopping", "stopped", "failed"]),
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
+ });
@@ -0,0 +1 @@
1
+ export type RUNTIMES = "node24" | "node22" | "python3.13";
package/src/sandbox.ts CHANGED
@@ -4,9 +4,12 @@ import { APIClient } from "./api-client";
4
4
  import { Command, type CommandFinished } from "./command";
5
5
  import { type Credentials, getCredentials } from "./utils/get-credentials";
6
6
  import { getPrivateParams, WithPrivate } from "./utils/types";
7
+ import { WithFetchOptions } from "./api-client/api-client";
8
+ import { RUNTIMES } from "./constants";
9
+ import { Snapshot } from "./snapshot";
7
10
 
8
11
  /** @inline */
9
- export interface CreateSandboxParams {
12
+ export interface BaseCreateSandboxParams {
10
13
  /**
11
14
  * The source of the sandbox.
12
15
  *
@@ -50,10 +53,10 @@ export interface CreateSandboxParams {
50
53
  resources?: { vcpus: number };
51
54
 
52
55
  /**
53
- * The runtime of the sandbox, currently only `node22` and `python3.13` are supported.
56
+ * The runtime of the sandbox, currently only `node24`, `node22` and `python3.13` are supported.
54
57
  * If not specified, the default runtime `node22` will be used.
55
58
  */
56
- runtime?: "node22" | "python3.13" | (string & {});
59
+ runtime?: RUNTIMES | (string & {});
57
60
 
58
61
  /**
59
62
  * An AbortSignal to cancel sandbox creation.
@@ -61,6 +64,12 @@ export interface CreateSandboxParams {
61
64
  signal?: AbortSignal;
62
65
  }
63
66
 
67
+ export type CreateSandboxParams =
68
+ | BaseCreateSandboxParams
69
+ | (Omit<BaseCreateSandboxParams, "runtime" | "source"> & {
70
+ source: { type: "snapshot"; snapshotId: string };
71
+ });
72
+
64
73
  /** @inline */
65
74
  interface GetSandboxParams {
66
75
  /**
@@ -164,12 +173,15 @@ export class Sandbox {
164
173
  * the next page of results.
165
174
  */
166
175
  static async list(
167
- params: Parameters<APIClient["listSandboxes"]>[0] & Partial<Credentials>,
176
+ params: Parameters<APIClient["listSandboxes"]>[0] &
177
+ Partial<Credentials> &
178
+ WithFetchOptions,
168
179
  ) {
169
180
  const credentials = await getCredentials(params);
170
181
  const client = new APIClient({
171
182
  teamId: credentials.teamId,
172
183
  token: credentials.token,
184
+ fetch: params.fetch,
173
185
  });
174
186
  return client.listSandboxes({
175
187
  ...params,
@@ -186,12 +198,14 @@ export class Sandbox {
186
198
  static async create(
187
199
  params?: WithPrivate<
188
200
  CreateSandboxParams | (CreateSandboxParams & Credentials)
189
- >,
201
+ > &
202
+ WithFetchOptions,
190
203
  ): Promise<Sandbox> {
191
204
  const credentials = await getCredentials(params);
192
205
  const client = new APIClient({
193
206
  teamId: credentials.teamId,
194
207
  token: credentials.token,
208
+ fetch: params?.fetch,
195
209
  });
196
210
 
197
211
  const privateParams = getPrivateParams(params);
@@ -201,7 +215,7 @@ export class Sandbox {
201
215
  ports: params?.ports ?? [],
202
216
  timeout: params?.timeout,
203
217
  resources: params?.resources,
204
- runtime: params?.runtime,
218
+ runtime: params && "runtime" in params ? params?.runtime : undefined,
205
219
  signal: params?.signal,
206
220
  ...privateParams,
207
221
  });
@@ -220,12 +234,14 @@ export class Sandbox {
220
234
  * @returns A promise resolving to the {@link Sandbox}.
221
235
  */
222
236
  static async get(
223
- params: WithPrivate<GetSandboxParams | (GetSandboxParams & Credentials)>,
237
+ params: WithPrivate<GetSandboxParams | (GetSandboxParams & Credentials)> &
238
+ WithFetchOptions,
224
239
  ): Promise<Sandbox> {
225
240
  const credentials = await getCredentials(params);
226
241
  const client = new APIClient({
227
242
  teamId: credentials.teamId,
228
243
  token: credentials.token,
244
+ fetch: params.fetch,
229
245
  });
230
246
 
231
247
  const privateParams = getPrivateParams(params);
@@ -494,4 +510,28 @@ export class Sandbox {
494
510
  // Update the internal sandbox metadata with the new timeout value
495
511
  this.sandbox = response.json.sandbox;
496
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
+ }
497
537
  }
@@ -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.0.4";
2
+ export const VERSION = "1.1.1";