@blaxel/core 0.2.86-dev.162 → 0.2.86-preview.163
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/README.md +2 -37
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/client/sdk.gen.js +12 -63
- package/dist/cjs/common/settings.js +3 -3
- package/dist/cjs/common/settings.test.js +3 -3
- package/dist/cjs/drive/index.js +3 -39
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/jobs/jobs.js +9 -42
- package/dist/cjs/sandbox/sandbox.js +15 -41
- package/dist/cjs/types/client/sdk.gen.d.ts +19 -34
- package/dist/cjs/types/client/types.gen.d.ts +21 -614
- package/dist/cjs/types/drive/index.d.ts +4 -34
- package/dist/cjs/types/index.d.ts +0 -1
- package/dist/cjs/types/jobs/jobs.d.ts +3 -33
- package/dist/cjs/types/sandbox/sandbox.d.ts +4 -36
- package/dist/cjs/types/sandbox/types.d.ts +3 -0
- package/dist/cjs/types/volume/index.d.ts +4 -36
- package/dist/cjs/volume/index.js +3 -41
- package/dist/cjs-browser/.tsbuildinfo +1 -1
- package/dist/cjs-browser/client/sdk.gen.js +12 -63
- package/dist/cjs-browser/common/settings.js +3 -3
- package/dist/cjs-browser/common/settings.test.js +3 -3
- package/dist/cjs-browser/drive/index.js +3 -39
- package/dist/cjs-browser/index.js +0 -1
- package/dist/cjs-browser/jobs/jobs.js +9 -42
- package/dist/cjs-browser/sandbox/sandbox.js +15 -41
- package/dist/cjs-browser/types/client/sdk.gen.d.ts +19 -34
- package/dist/cjs-browser/types/client/types.gen.d.ts +21 -614
- package/dist/cjs-browser/types/drive/index.d.ts +4 -34
- package/dist/cjs-browser/types/index.d.ts +0 -1
- package/dist/cjs-browser/types/jobs/jobs.d.ts +3 -33
- package/dist/cjs-browser/types/sandbox/sandbox.d.ts +4 -36
- package/dist/cjs-browser/types/sandbox/types.d.ts +3 -0
- package/dist/cjs-browser/types/volume/index.d.ts +4 -36
- package/dist/cjs-browser/volume/index.js +3 -41
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/client/sdk.gen.js +9 -57
- package/dist/esm/common/settings.js +3 -3
- package/dist/esm/common/settings.test.js +3 -3
- package/dist/esm/drive/index.js +3 -39
- package/dist/esm/index.js +0 -1
- package/dist/esm/jobs/jobs.js +9 -42
- package/dist/esm/sandbox/sandbox.js +15 -41
- package/dist/esm/volume/index.js +3 -41
- package/dist/esm-browser/.tsbuildinfo +1 -1
- package/dist/esm-browser/client/sdk.gen.js +9 -57
- package/dist/esm-browser/common/settings.js +3 -3
- package/dist/esm-browser/common/settings.test.js +3 -3
- package/dist/esm-browser/drive/index.js +3 -39
- package/dist/esm-browser/index.js +0 -1
- package/dist/esm-browser/jobs/jobs.js +9 -42
- package/dist/esm-browser/sandbox/sandbox.js +15 -41
- package/dist/esm-browser/volume/index.js +3 -41
- package/package.json +1 -1
- package/dist/cjs/common/pagination.js +0 -87
- package/dist/cjs/common/pagination.test.js +0 -62
- package/dist/cjs/types/common/pagination.d.ts +0 -35
- package/dist/cjs/types/common/pagination.test.d.ts +0 -1
- package/dist/cjs-browser/common/pagination.js +0 -87
- package/dist/cjs-browser/common/pagination.test.js +0 -62
- package/dist/cjs-browser/types/common/pagination.d.ts +0 -35
- package/dist/cjs-browser/types/common/pagination.test.d.ts +0 -1
- package/dist/esm/common/pagination.js +0 -83
- package/dist/esm/common/pagination.test.js +0 -60
- package/dist/esm-browser/common/pagination.js +0 -83
- package/dist/esm-browser/common/pagination.test.js +0 -60
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { client as _heyApiClient } from "./client.gen.js";
|
|
3
3
|
/**
|
|
4
4
|
* List all agents
|
|
5
|
-
* Returns AI agents deployed in the workspace. Each agent includes its deployment status, runtime configuration, and global inference endpoint URL.
|
|
5
|
+
* Returns all AI agents deployed in the workspace. Each agent includes its deployment status, runtime configuration, and global inference endpoint URL.
|
|
6
6
|
*/
|
|
7
7
|
export const listAgents = (options) => {
|
|
8
8
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -221,7 +221,7 @@ export const verifyCustomDomain = (options) => {
|
|
|
221
221
|
};
|
|
222
222
|
/**
|
|
223
223
|
* List drives
|
|
224
|
-
* Returns all drives in the workspace. Drives provide persistent storage that can be attached to agents, functions, and sandboxes.
|
|
224
|
+
* Returns all drives in the workspace. Drives provide persistent storage that can be attached to agents, functions, and sandboxes.
|
|
225
225
|
*/
|
|
226
226
|
export const listDrives = (options) => {
|
|
227
227
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -348,22 +348,6 @@ export const listAllEgressGateways = (options) => {
|
|
|
348
348
|
...options
|
|
349
349
|
});
|
|
350
350
|
};
|
|
351
|
-
/**
|
|
352
|
-
* Egress gateway sandbox attachments
|
|
353
|
-
* Returns the inverse map (gateway → sandbox names) for the workspace. Used by the egress-IPs UI to render attachment counts without fetching the sandboxes listing full client-side.
|
|
354
|
-
*/
|
|
355
|
-
export const getEgressGatewayUsage = (options) => {
|
|
356
|
-
return (options?.client ?? _heyApiClient).get({
|
|
357
|
-
security: [
|
|
358
|
-
{
|
|
359
|
-
scheme: 'bearer',
|
|
360
|
-
type: 'http'
|
|
361
|
-
}
|
|
362
|
-
],
|
|
363
|
-
url: '/egressgateways/usage',
|
|
364
|
-
...options
|
|
365
|
-
});
|
|
366
|
-
};
|
|
367
351
|
/**
|
|
368
352
|
* List all egress IPs across all VPCs and gateways in the workspace
|
|
369
353
|
*/
|
|
@@ -413,7 +397,7 @@ export const testFeatureFlag = (options) => {
|
|
|
413
397
|
};
|
|
414
398
|
/**
|
|
415
399
|
* List all MCP servers
|
|
416
|
-
* Returns MCP server functions deployed in the workspace. Each function includes its deployment status, transport protocol (websocket or http-stream), and endpoint URL.
|
|
400
|
+
* Returns all MCP server functions deployed in the workspace. Each function includes its deployment status, transport protocol (websocket or http-stream), and endpoint URL.
|
|
417
401
|
*/
|
|
418
402
|
export const listFunctions = (options) => {
|
|
419
403
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -821,7 +805,7 @@ export const getIntegrationConnectionModel = (options) => {
|
|
|
821
805
|
};
|
|
822
806
|
/**
|
|
823
807
|
* List batch jobs
|
|
824
|
-
* Returns batch job definitions in the workspace. Each job can be triggered to run multiple parallel tasks with configurable concurrency and retry settings.
|
|
808
|
+
* Returns all batch job definitions in the workspace. Each job can be triggered to run multiple parallel tasks with configurable concurrency and retry settings.
|
|
825
809
|
*/
|
|
826
810
|
export const listJobs = (options) => {
|
|
827
811
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -909,7 +893,7 @@ export const updateJob = (options) => {
|
|
|
909
893
|
};
|
|
910
894
|
/**
|
|
911
895
|
* List job executions
|
|
912
|
-
* Returns executions for a batch job
|
|
896
|
+
* Returns paginated list of executions for a batch job, sorted by creation time. Each execution contains status, task counts, and timing information.
|
|
913
897
|
*/
|
|
914
898
|
export const listJobExecutions = (options) => {
|
|
915
899
|
return (options.client ?? _heyApiClient).get({
|
|
@@ -975,22 +959,6 @@ export const getJobExecution = (options) => {
|
|
|
975
959
|
...options
|
|
976
960
|
});
|
|
977
961
|
};
|
|
978
|
-
/**
|
|
979
|
-
* List execution tasks
|
|
980
|
-
* Returns one cursor-paginated page of an execution's tasks. Tasks are derived from event history each request; only the in-memory slicing is paginated, the events scan still fetches the whole event log behind the scenes. Available starting with API version 2026-04-28.
|
|
981
|
-
*/
|
|
982
|
-
export const listJobExecutionTasks = (options) => {
|
|
983
|
-
return (options.client ?? _heyApiClient).get({
|
|
984
|
-
security: [
|
|
985
|
-
{
|
|
986
|
-
scheme: 'bearer',
|
|
987
|
-
type: 'http'
|
|
988
|
-
}
|
|
989
|
-
],
|
|
990
|
-
url: '/jobs/{jobId}/executions/{executionId}/tasks',
|
|
991
|
-
...options
|
|
992
|
-
});
|
|
993
|
-
};
|
|
994
962
|
/**
|
|
995
963
|
* List job revisions
|
|
996
964
|
* Returns revisions for a job by name.
|
|
@@ -1041,7 +1009,7 @@ export const listMcpHubDefinitions = (options) => {
|
|
|
1041
1009
|
};
|
|
1042
1010
|
/**
|
|
1043
1011
|
* List model endpoints
|
|
1044
|
-
* Returns model gateway endpoints configured in the workspace. Each model represents a proxy to an external LLM provider (OpenAI, Anthropic, etc.) with unified access control.
|
|
1012
|
+
* Returns all model gateway endpoints configured in the workspace. Each model represents a proxy to an external LLM provider (OpenAI, Anthropic, etc.) with unified access control.
|
|
1045
1013
|
*/
|
|
1046
1014
|
export const listModels = (options) => {
|
|
1047
1015
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -1193,7 +1161,7 @@ export const declineImageShare = (options) => {
|
|
|
1193
1161
|
};
|
|
1194
1162
|
/**
|
|
1195
1163
|
* List governance policies
|
|
1196
|
-
* Returns governance policies in the workspace. Policies control deployment locations, hardware flavors, and token limits for agents, functions, and models.
|
|
1164
|
+
* Returns all governance policies in the workspace. Policies control deployment locations, hardware flavors, and token limits for agents, functions, and models.
|
|
1197
1165
|
*/
|
|
1198
1166
|
export const listPolicies = (options) => {
|
|
1199
1167
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -1279,22 +1247,6 @@ export const updatePolicy = (options) => {
|
|
|
1279
1247
|
}
|
|
1280
1248
|
});
|
|
1281
1249
|
};
|
|
1282
|
-
/**
|
|
1283
|
-
* List resources using a policy
|
|
1284
|
-
* Returns the names of every resource (agent, function, model, sandbox, job) currently referencing the given policy. Replaces the client-side fan-out the policies UI used to do over the listings.
|
|
1285
|
-
*/
|
|
1286
|
-
export const getPolicyUsages = (options) => {
|
|
1287
|
-
return (options.client ?? _heyApiClient).get({
|
|
1288
|
-
security: [
|
|
1289
|
-
{
|
|
1290
|
-
scheme: 'bearer',
|
|
1291
|
-
type: 'http'
|
|
1292
|
-
}
|
|
1293
|
-
],
|
|
1294
|
-
url: '/policies/{policyName}/usages',
|
|
1295
|
-
...options
|
|
1296
|
-
});
|
|
1297
|
-
};
|
|
1298
1250
|
/**
|
|
1299
1251
|
* List public ips
|
|
1300
1252
|
* Returns a list of all public ips used in Blaxel..
|
|
@@ -1329,7 +1281,7 @@ export const listSandboxHubDefinitions = (options) => {
|
|
|
1329
1281
|
};
|
|
1330
1282
|
/**
|
|
1331
1283
|
* List sandboxes
|
|
1332
|
-
* Returns sandboxes in the workspace. Each sandbox includes its configuration, status, and endpoint URL.
|
|
1284
|
+
* Returns all sandboxes in the workspace. Each sandbox includes its configuration, status, and endpoint URL.
|
|
1333
1285
|
*/
|
|
1334
1286
|
export const listSandboxes = (options) => {
|
|
1335
1287
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -1889,7 +1841,7 @@ export const deleteVolumeTemplateVersion = (options) => {
|
|
|
1889
1841
|
};
|
|
1890
1842
|
/**
|
|
1891
1843
|
* List persistent volumes
|
|
1892
|
-
* Returns persistent storage volumes in the workspace. Volumes can be attached to sandboxes for durable file storage that persists across sessions and sandbox deletions.
|
|
1844
|
+
* Returns all persistent storage volumes in the workspace. Volumes can be attached to sandboxes for durable file storage that persists across sessions and sandbox deletions.
|
|
1893
1845
|
*/
|
|
1894
1846
|
export const listVolumes = (options) => {
|
|
1895
1847
|
return (options?.client ?? _heyApiClient).get({
|
|
@@ -5,10 +5,10 @@ import { authentication } from "../authentication/index.js";
|
|
|
5
5
|
import { env } from "../common/env.js";
|
|
6
6
|
import { fs, os, path } from "../common/node.js";
|
|
7
7
|
// Build info - these placeholders are replaced at build time by build:replace-imports
|
|
8
|
-
const BUILD_VERSION = "0.2.86-
|
|
9
|
-
const BUILD_COMMIT = "
|
|
8
|
+
const BUILD_VERSION = "0.2.86-preview.163";
|
|
9
|
+
const BUILD_COMMIT = "e78918cc0a9d6da05b5a83895f6d4d2c08e51b5b";
|
|
10
10
|
const BUILD_SENTRY_DSN = "https://fd5e60e1c9820e1eef5ccebb84a07127@o4508714045276160.ingest.us.sentry.io/4510465864564736";
|
|
11
|
-
const BLAXEL_API_VERSION = "2026-04-
|
|
11
|
+
const BLAXEL_API_VERSION = "2026-04-16";
|
|
12
12
|
// Cache for config.yaml tracking value
|
|
13
13
|
let configTrackingValue = null;
|
|
14
14
|
let configTrackingLoaded = false;
|
|
@@ -7,14 +7,14 @@ describe('Settings.apiVersion', () => {
|
|
|
7
7
|
afterEach(() => {
|
|
8
8
|
delete env.BL_API_VERSION;
|
|
9
9
|
});
|
|
10
|
-
it('defaults to 2026-04-
|
|
10
|
+
it('defaults to 2026-04-16 when BL_API_VERSION is not set', async () => {
|
|
11
11
|
delete env.BL_API_VERSION;
|
|
12
12
|
const { settings } = await import('./settings.js');
|
|
13
|
-
expect(settings.apiVersion).toBe('2026-04-
|
|
13
|
+
expect(settings.apiVersion).toBe('2026-04-16');
|
|
14
14
|
});
|
|
15
15
|
it('headers include Blaxel-Version set to the default', async () => {
|
|
16
16
|
delete env.BL_API_VERSION;
|
|
17
17
|
const { settings } = await import('./settings.js');
|
|
18
|
-
expect(settings.headers['Blaxel-Version']).toBe('2026-04-
|
|
18
|
+
expect(settings.headers['Blaxel-Version']).toBe('2026-04-16');
|
|
19
19
|
});
|
|
20
20
|
});
|
package/dist/esm/drive/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
2
|
import { createDrive, deleteDrive, getDrive, listDrives, updateDrive } from "../client/index.js";
|
|
3
|
-
import { createPaginatedList } from "../common/pagination.js";
|
|
4
3
|
import { settings } from "../common/settings.js";
|
|
5
4
|
export class DriveInstance {
|
|
6
5
|
drive;
|
|
@@ -84,44 +83,9 @@ export class DriveInstance {
|
|
|
84
83
|
});
|
|
85
84
|
return new DriveInstance(data);
|
|
86
85
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
* The returned page exposes `data` for the current page, `meta` for cursor
|
|
91
|
-
* metadata, and helpers to fetch more pages only when you need them.
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```ts
|
|
95
|
-
* const page = await DriveInstance.list({ limit: 50 });
|
|
96
|
-
*
|
|
97
|
-
* for (const drive of page.data) {
|
|
98
|
-
* console.log(drive.name);
|
|
99
|
-
* }
|
|
100
|
-
*
|
|
101
|
-
* const nextPage = await page.nextPage();
|
|
102
|
-
* ```
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```ts
|
|
106
|
-
* const allDrives = await (await DriveInstance.list()).autoPagingToArray({
|
|
107
|
-
* limit: 1000,
|
|
108
|
-
* });
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
static async list(query) {
|
|
112
|
-
const fetchPage = async (pageQuery) => {
|
|
113
|
-
const { data } = await listDrives({
|
|
114
|
-
query: pageQuery,
|
|
115
|
-
throwOnError: true,
|
|
116
|
-
});
|
|
117
|
-
return data;
|
|
118
|
-
};
|
|
119
|
-
return createPaginatedList({
|
|
120
|
-
response: await fetchPage(query),
|
|
121
|
-
fetchPage,
|
|
122
|
-
mapItem: (drive) => new DriveInstance(drive),
|
|
123
|
-
query,
|
|
124
|
-
});
|
|
86
|
+
static async list() {
|
|
87
|
+
const { data } = await listDrives({ throwOnError: true });
|
|
88
|
+
return data.map((drive) => new DriveInstance(drive));
|
|
125
89
|
}
|
|
126
90
|
static async delete(driveName) {
|
|
127
91
|
const { data } = await deleteDrive({
|
package/dist/esm/index.js
CHANGED
|
@@ -7,7 +7,6 @@ export * from "./common/node.js";
|
|
|
7
7
|
export * from "./common/errors.js";
|
|
8
8
|
export * from "./common/internal.js";
|
|
9
9
|
export * from "./common/logger.js";
|
|
10
|
-
export * from "./common/pagination.js";
|
|
11
10
|
export * from "./common/settings.js";
|
|
12
11
|
export * from "./common/webhook.js";
|
|
13
12
|
export * from "./drive/index.js";
|
package/dist/esm/jobs/jobs.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { createJobExecution, deleteJobExecution, getJobExecution, listJobExecutions, } from "../client/index.js";
|
|
2
2
|
import { logger } from "../common/logger.js";
|
|
3
|
-
import { createPaginatedList } from "../common/pagination.js";
|
|
4
3
|
import { settings } from "../common/settings.js";
|
|
5
4
|
import { startSpan } from "../telemetry/telemetry.js";
|
|
6
5
|
class BlJob {
|
|
@@ -76,50 +75,18 @@ class BlJob {
|
|
|
76
75
|
return data;
|
|
77
76
|
}
|
|
78
77
|
/**
|
|
79
|
-
* List
|
|
80
|
-
*
|
|
81
|
-
* The returned page exposes `data` for the current page, `meta` for cursor
|
|
82
|
-
* metadata, and helpers to fetch more pages only when you need them.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```ts
|
|
86
|
-
* const job = blJob("daily-import");
|
|
87
|
-
* const page = await job.listExecutions({ limit: 50 });
|
|
88
|
-
*
|
|
89
|
-
* for (const execution of page.data) {
|
|
90
|
-
* console.log(execution.status);
|
|
91
|
-
* }
|
|
92
|
-
*
|
|
93
|
-
* const nextPage = await page.nextPage();
|
|
94
|
-
* ```
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* ```ts
|
|
98
|
-
* const job = blJob("daily-import");
|
|
99
|
-
* const executions = await (await job.listExecutions()).autoPagingToArray({
|
|
100
|
-
* limit: 1000,
|
|
101
|
-
* });
|
|
102
|
-
* ```
|
|
78
|
+
* List all executions for this job
|
|
103
79
|
*/
|
|
104
|
-
async listExecutions(
|
|
80
|
+
async listExecutions() {
|
|
105
81
|
logger.debug(`Listing executions for job: ${this.jobName}`);
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
headers: settings.headers,
|
|
113
|
-
throwOnError: true,
|
|
114
|
-
});
|
|
115
|
-
return data;
|
|
116
|
-
};
|
|
117
|
-
return createPaginatedList({
|
|
118
|
-
response: await fetchPage(query),
|
|
119
|
-
fetchPage,
|
|
120
|
-
mapItem: (execution) => execution,
|
|
121
|
-
query,
|
|
82
|
+
const { data } = await listJobExecutions({
|
|
83
|
+
path: {
|
|
84
|
+
jobId: this.jobName,
|
|
85
|
+
},
|
|
86
|
+
headers: settings.headers,
|
|
87
|
+
throwOnError: true,
|
|
122
88
|
});
|
|
89
|
+
return data ?? [];
|
|
123
90
|
}
|
|
124
91
|
/**
|
|
125
92
|
* Get the status of a specific execution
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
2
|
import { createSandbox, deleteSandbox, getSandbox, listSandboxes, updateSandbox } from "../client/index.js";
|
|
3
3
|
import { logger } from "../common/logger.js";
|
|
4
|
-
import { createPaginatedList } from "../common/pagination.js";
|
|
5
4
|
import { settings } from "../common/settings.js";
|
|
6
5
|
import { SandboxCodegen } from "./codegen/index.js";
|
|
7
6
|
import { SandboxDrive } from "./drive/index.js";
|
|
@@ -220,46 +219,10 @@ export class SandboxInstance {
|
|
|
220
219
|
const instance = new SandboxInstance(data);
|
|
221
220
|
return SandboxInstance.attachH2Session(instance);
|
|
222
221
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
* metadata, and helpers to fetch more pages only when you need them.
|
|
228
|
-
*
|
|
229
|
-
* @example
|
|
230
|
-
* ```ts
|
|
231
|
-
* const page = await SandboxInstance.list({ limit: 50 });
|
|
232
|
-
*
|
|
233
|
-
* for (const sandbox of page.data) {
|
|
234
|
-
* console.log(sandbox.metadata.name);
|
|
235
|
-
* }
|
|
236
|
-
*
|
|
237
|
-
* const nextPage = await page.nextPage();
|
|
238
|
-
* ```
|
|
239
|
-
*
|
|
240
|
-
* @example
|
|
241
|
-
* ```ts
|
|
242
|
-
* const page = await SandboxInstance.list({ limit: 100 });
|
|
243
|
-
*
|
|
244
|
-
* for await (const sandbox of page) {
|
|
245
|
-
* console.log(sandbox.metadata.name);
|
|
246
|
-
* }
|
|
247
|
-
* ```
|
|
248
|
-
*/
|
|
249
|
-
static async list(query) {
|
|
250
|
-
const fetchPage = async (pageQuery) => {
|
|
251
|
-
const { data } = await listSandboxes({
|
|
252
|
-
query: pageQuery,
|
|
253
|
-
throwOnError: true,
|
|
254
|
-
});
|
|
255
|
-
return data;
|
|
256
|
-
};
|
|
257
|
-
return createPaginatedList({
|
|
258
|
-
response: await fetchPage(query),
|
|
259
|
-
fetchPage,
|
|
260
|
-
mapItem: (sandbox) => SandboxInstance.attachH2Session(new SandboxInstance(sandbox)),
|
|
261
|
-
query,
|
|
262
|
-
});
|
|
222
|
+
static async list() {
|
|
223
|
+
const { data } = await listSandboxes({ throwOnError: true });
|
|
224
|
+
const instances = data.map((sandbox) => new SandboxInstance(sandbox));
|
|
225
|
+
return Promise.all(instances.map((instance) => SandboxInstance.attachH2Session(instance)));
|
|
263
226
|
}
|
|
264
227
|
static async delete(sandboxName) {
|
|
265
228
|
const { data } = await deleteSandbox({
|
|
@@ -310,6 +273,17 @@ export class SandboxInstance {
|
|
|
310
273
|
const instance = new SandboxInstance(data);
|
|
311
274
|
return SandboxInstance.attachH2Session(instance);
|
|
312
275
|
}
|
|
276
|
+
static async updateNetwork(sandboxName, network) {
|
|
277
|
+
const sandbox = await SandboxInstance.get(sandboxName);
|
|
278
|
+
const body = { ...sandbox.sandbox, spec: { ...sandbox.spec, network: network.network } };
|
|
279
|
+
const { data } = await updateSandbox({
|
|
280
|
+
path: { sandboxName },
|
|
281
|
+
body,
|
|
282
|
+
throwOnError: true,
|
|
283
|
+
});
|
|
284
|
+
const instance = new SandboxInstance(data);
|
|
285
|
+
return SandboxInstance.attachH2Session(instance);
|
|
286
|
+
}
|
|
313
287
|
static async createIfNotExists(sandbox) {
|
|
314
288
|
const ATTEMPTS = 3;
|
|
315
289
|
for (let i = 0; i < ATTEMPTS; ++i) {
|
package/dist/esm/volume/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
2
|
import { createVolume, deleteVolume, getVolume, listVolumes, updateVolume } from "../client/index.js";
|
|
3
|
-
import { createPaginatedList } from "../common/pagination.js";
|
|
4
3
|
import { settings } from "../common/settings.js";
|
|
5
4
|
export class VolumeInstance {
|
|
6
5
|
volume;
|
|
@@ -86,46 +85,9 @@ export class VolumeInstance {
|
|
|
86
85
|
});
|
|
87
86
|
return new VolumeInstance(data);
|
|
88
87
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
* The returned page exposes `data` for the current page, `meta` for cursor
|
|
93
|
-
* metadata, and helpers to fetch more pages only when you need them.
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```ts
|
|
97
|
-
* const page = await VolumeInstance.list({ limit: 50 });
|
|
98
|
-
*
|
|
99
|
-
* for (const volume of page.data) {
|
|
100
|
-
* console.log(volume.name);
|
|
101
|
-
* }
|
|
102
|
-
*
|
|
103
|
-
* const nextPage = await page.nextPage();
|
|
104
|
-
* ```
|
|
105
|
-
*
|
|
106
|
-
* @example
|
|
107
|
-
* ```ts
|
|
108
|
-
* const page = await VolumeInstance.list({ limit: 100 });
|
|
109
|
-
*
|
|
110
|
-
* for await (const volume of page) {
|
|
111
|
-
* console.log(volume.name);
|
|
112
|
-
* }
|
|
113
|
-
* ```
|
|
114
|
-
*/
|
|
115
|
-
static async list(query) {
|
|
116
|
-
const fetchPage = async (pageQuery) => {
|
|
117
|
-
const { data } = await listVolumes({
|
|
118
|
-
query: pageQuery,
|
|
119
|
-
throwOnError: true,
|
|
120
|
-
});
|
|
121
|
-
return data;
|
|
122
|
-
};
|
|
123
|
-
return createPaginatedList({
|
|
124
|
-
response: await fetchPage(query),
|
|
125
|
-
fetchPage,
|
|
126
|
-
mapItem: (volume) => new VolumeInstance(volume),
|
|
127
|
-
query,
|
|
128
|
-
});
|
|
88
|
+
static async list() {
|
|
89
|
+
const { data } = await listVolumes({ throwOnError: true });
|
|
90
|
+
return data.map((volume) => new VolumeInstance(volume));
|
|
129
91
|
}
|
|
130
92
|
static async delete(volumeName) {
|
|
131
93
|
const { data } = await deleteVolume({
|