@elaraai/e3-api-client 0.0.2-beta.4 → 0.0.2-beta.41
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 -2
- package/dist/src/datasets.d.ts +73 -4
- package/dist/src/datasets.d.ts.map +1 -1
- package/dist/src/datasets.js +197 -19
- package/dist/src/datasets.js.map +1 -1
- package/dist/src/executions.d.ts +74 -11
- package/dist/src/executions.d.ts.map +1 -1
- package/dist/src/executions.js +184 -36
- package/dist/src/executions.js.map +1 -1
- package/dist/src/http.d.ts +60 -12
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +135 -34
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +8 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/packages.d.ts +12 -27
- package/dist/src/packages.d.ts.map +1 -1
- package/dist/src/packages.js +139 -39
- package/dist/src/packages.js.map +1 -1
- package/dist/src/platform.d.ts +553 -1343
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +123 -915
- package/dist/src/platform.js.map +1 -1
- package/dist/src/repos.d.ts +16 -0
- package/dist/src/repos.d.ts.map +1 -0
- package/dist/src/repos.js +19 -0
- package/dist/src/repos.js.map +1 -0
- package/dist/src/repository.d.ts +67 -5
- package/dist/src/repository.d.ts.map +1 -1
- package/dist/src/repository.js +94 -10
- package/dist/src/repository.js.map +1 -1
- package/dist/src/tasks.d.ts +25 -3
- package/dist/src/tasks.d.ts.map +1 -1
- package/dist/src/tasks.js +29 -8
- package/dist/src/tasks.js.map +1 -1
- package/dist/src/types.d.ts +1360 -716
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +235 -2
- package/dist/src/types.js.map +1 -1
- package/dist/src/workspaces.d.ts +36 -7
- package/dist/src/workspaces.d.ts.map +1 -1
- package/dist/src/workspaces.js +43 -22
- package/dist/src/workspaces.js.map +1 -1
- package/package.json +4 -4
package/dist/src/index.d.ts
CHANGED
|
@@ -9,12 +9,15 @@
|
|
|
9
9
|
* Uses BEAST2 serialization for request/response bodies.
|
|
10
10
|
*/
|
|
11
11
|
export { ApiTypes } from './types.js';
|
|
12
|
-
export type { RepositoryStatus, GcRequest, GcResult, PackageListItem, PackageImportResult, WorkspaceInfo, WorkspaceStatusResult, DatasetStatus, DatasetStatusInfo, TaskStatus, TaskStatusInfo, WorkspaceStatusSummary, TaskListItem, TaskDetails, DataflowGraph, GraphTask, LogChunk, TaskExecutionResult, DataflowResult, } from './types.js';
|
|
13
|
-
export {
|
|
12
|
+
export type { RepositoryStatus, GcRequest, GcResult, GcStartResult, GcStatusResult, AsyncOperationStatus, PackageListItem, PackageImportResult, WorkspaceInfo, WorkspaceStatusResult, DatasetStatus, DatasetStatusInfo, TaskStatus, TaskStatusInfo, WorkspaceStatusSummary, TaskListItem, TaskDetails, DataflowGraph, GraphTask, LogChunk, TaskExecutionResult, DataflowResult, DataflowEvent, ExecutionStatus, DataflowExecutionSummary, DataflowExecutionState, ExecutionListItem, ExecutionHistoryStatus, TreeKind, ListEntry, DatasetStatusDetail, } from './types.js';
|
|
13
|
+
export { ApiError, AuthError, fetchWithAuth, get, post, put, del, putEmpty, unwrap } from './http.js';
|
|
14
|
+
export type { RequestOptions, Response } from './http.js';
|
|
15
|
+
export { repoStatus, repoGc, repoGcStart, repoGcStatus, repoCreate, repoRemove, } from './repository.js';
|
|
16
|
+
export { repoList } from './repos.js';
|
|
14
17
|
export { packageList, packageGet, packageImport, packageExport, packageRemove, } from './packages.js';
|
|
15
18
|
export { workspaceList, workspaceCreate, workspaceGet, workspaceStatus, workspaceRemove, workspaceDeploy, workspaceExport, } from './workspaces.js';
|
|
16
|
-
export { datasetList, datasetListAt, datasetGet, datasetSet, } from './datasets.js';
|
|
17
|
-
export { taskList, taskGet } from './tasks.js';
|
|
18
|
-
export {
|
|
19
|
+
export { datasetList, datasetListAt, datasetListRecursive, datasetListRecursivePaths, datasetListWithStatus, datasetGet, datasetGetStatus, datasetSet, } from './datasets.js';
|
|
20
|
+
export { taskList, taskGet, taskExecutionList } from './tasks.js';
|
|
21
|
+
export { dataflowExecute, dataflowExecuteLaunch, dataflowExecutePoll, dataflowGraph, dataflowCancel, taskLogs, dataflowStart, dataflowExecution, type DataflowOptions, type DataflowPollOptions, type LogOptions, type ExecutionStateOptions, } from './executions.js';
|
|
19
22
|
export { Platform, PlatformImpl, LogOptionsType, platform_repo_status, platform_repo_gc, platform_package_list, platform_package_get, platform_package_import, platform_package_export, platform_package_remove, platform_workspace_list, platform_workspace_create, platform_workspace_get, platform_workspace_status, platform_workspace_remove, platform_workspace_deploy, platform_workspace_export, platform_dataset_list, platform_dataset_list_at, platform_dataset_get, platform_dataset_set, platform_task_list, platform_task_get, platform_dataflow_start, platform_dataflow_execute, platform_dataflow_graph, platform_task_logs, } from './platform.js';
|
|
20
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EACR,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACtG,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EACL,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGlE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,QAAQ,EAER,aAAa,EACb,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -10,18 +10,24 @@
|
|
|
10
10
|
*/
|
|
11
11
|
// Types
|
|
12
12
|
export { ApiTypes } from './types.js';
|
|
13
|
+
// HTTP utilities and auth
|
|
14
|
+
export { ApiError, AuthError, fetchWithAuth, get, post, put, del, putEmpty, unwrap } from './http.js';
|
|
13
15
|
// Repository
|
|
14
|
-
export { repoStatus, repoGc } from './repository.js';
|
|
16
|
+
export { repoStatus, repoGc, repoGcStart, repoGcStatus, repoCreate, repoRemove, } from './repository.js';
|
|
17
|
+
// Repos (multi-repo operations)
|
|
18
|
+
export { repoList } from './repos.js';
|
|
15
19
|
// Packages
|
|
16
20
|
export { packageList, packageGet, packageImport, packageExport, packageRemove, } from './packages.js';
|
|
17
21
|
// Workspaces
|
|
18
22
|
export { workspaceList, workspaceCreate, workspaceGet, workspaceStatus, workspaceRemove, workspaceDeploy, workspaceExport, } from './workspaces.js';
|
|
19
23
|
// Datasets
|
|
20
|
-
export { datasetList, datasetListAt, datasetGet, datasetSet, } from './datasets.js';
|
|
24
|
+
export { datasetList, datasetListAt, datasetListRecursive, datasetListRecursivePaths, datasetListWithStatus, datasetGet, datasetGetStatus, datasetSet, } from './datasets.js';
|
|
21
25
|
// Tasks
|
|
22
|
-
export { taskList, taskGet } from './tasks.js';
|
|
26
|
+
export { taskList, taskGet, taskExecutionList } from './tasks.js';
|
|
23
27
|
// Executions
|
|
24
|
-
export {
|
|
28
|
+
export { dataflowExecute, dataflowExecuteLaunch, dataflowExecutePoll, dataflowGraph, dataflowCancel, taskLogs,
|
|
29
|
+
// Backward compatibility aliases
|
|
30
|
+
dataflowStart, dataflowExecution, } from './executions.js';
|
|
25
31
|
// Platform functions
|
|
26
32
|
export { Platform, PlatformImpl, LogOptionsType, platform_repo_status, platform_repo_gc, platform_package_list, platform_package_get, platform_package_import, platform_package_export, platform_package_remove, platform_workspace_list, platform_workspace_create, platform_workspace_get, platform_workspace_status, platform_workspace_remove, platform_workspace_deploy, platform_workspace_export, platform_dataset_list, platform_dataset_list_at, platform_dataset_get, platform_dataset_set, platform_task_list, platform_task_get, platform_dataflow_start, platform_dataflow_execute, platform_dataflow_graph, platform_task_logs, } from './platform.js';
|
|
27
33
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmCtC,0BAA0B;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGtG,aAAa;AACb,OAAO,EACL,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,gCAAgC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,WAAW;AACX,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,aAAa;AACb,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,WAAW;AACX,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE,aAAa;AACb,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,QAAQ;AACR,iCAAiC;AACjC,aAAa,EACb,iBAAiB,GAKlB,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/src/packages.d.ts
CHANGED
|
@@ -3,46 +3,31 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
import { type PackageObject } from '@elaraai/e3-types';
|
|
6
|
-
import
|
|
6
|
+
import { type PackageImportResult } from '@elaraai/e3-types';
|
|
7
|
+
import type { PackageListItem } from './types.js';
|
|
8
|
+
import { type RequestOptions } from './http.js';
|
|
7
9
|
/**
|
|
8
10
|
* List all packages in the repository.
|
|
9
|
-
*
|
|
10
|
-
* @param url - Base URL of the e3 API server
|
|
11
|
-
* @returns Array of package info (name, version)
|
|
12
11
|
*/
|
|
13
|
-
export declare function packageList(url: string): Promise<PackageListItem[]>;
|
|
12
|
+
export declare function packageList(url: string, repo: string, options: RequestOptions): Promise<PackageListItem[]>;
|
|
14
13
|
/**
|
|
15
14
|
* Get package object.
|
|
16
|
-
*
|
|
17
|
-
* @param url - Base URL of the e3 API server
|
|
18
|
-
* @param name - Package name
|
|
19
|
-
* @param version - Package version
|
|
20
|
-
* @returns Package object
|
|
21
15
|
*/
|
|
22
|
-
export declare function packageGet(url: string, name: string, version: string): Promise<PackageObject>;
|
|
16
|
+
export declare function packageGet(url: string, repo: string, name: string, version: string, options: RequestOptions): Promise<PackageObject>;
|
|
23
17
|
/**
|
|
24
|
-
* Import a package from a zip archive.
|
|
18
|
+
* Import a package from a zip archive using the transfer protocol.
|
|
25
19
|
*
|
|
26
|
-
*
|
|
27
|
-
* @param archive - Zip archive as bytes
|
|
28
|
-
* @returns Imported package info
|
|
20
|
+
* Flow: init upload → upload zip → trigger import → poll for result
|
|
29
21
|
*/
|
|
30
|
-
export declare function packageImport(url: string, archive: Uint8Array): Promise<PackageImportResult>;
|
|
22
|
+
export declare function packageImport(url: string, repo: string, archive: Uint8Array, options: RequestOptions): Promise<PackageImportResult>;
|
|
31
23
|
/**
|
|
32
|
-
* Export a package as a zip archive.
|
|
24
|
+
* Export a package as a zip archive using the transfer protocol.
|
|
33
25
|
*
|
|
34
|
-
*
|
|
35
|
-
* @param name - Package name
|
|
36
|
-
* @param version - Package version
|
|
37
|
-
* @returns Zip archive as bytes
|
|
26
|
+
* Flow: trigger export → poll for result → download zip
|
|
38
27
|
*/
|
|
39
|
-
export declare function packageExport(url: string, name: string, version: string): Promise<Uint8Array>;
|
|
28
|
+
export declare function packageExport(url: string, repo: string, name: string, version: string, options: RequestOptions): Promise<Uint8Array>;
|
|
40
29
|
/**
|
|
41
30
|
* Remove a package from the repository.
|
|
42
|
-
*
|
|
43
|
-
* @param url - Base URL of the e3 API server
|
|
44
|
-
* @param name - Package name
|
|
45
|
-
* @param version - Package version
|
|
46
31
|
*/
|
|
47
|
-
export declare function packageRemove(url: string, name: string, version: string): Promise<void>;
|
|
32
|
+
export declare function packageRemove(url: string, repo: string, name: string, version: string, options: RequestOptions): Promise<void>;
|
|
48
33
|
//# sourceMappingURL=packages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAML,KAAK,mBAAmB,EAGzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAqC,KAAK,cAAc,EAAiB,MAAM,WAAW,CAAC;AAElG;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEhH;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAuD9B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
package/dist/src/packages.js
CHANGED
|
@@ -2,64 +2,164 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
import { ArrayType,
|
|
5
|
+
import { ArrayType, NullType, encodeBeast2For, decodeBeast2For } from '@elaraai/east';
|
|
6
6
|
import { PackageObjectType } from '@elaraai/e3-types';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { PackageTransferInitRequestType, PackageTransferInitResponseType, PackageJobResponseType, PackageImportStatusType, PackageExportStatusType, } from '@elaraai/e3-types';
|
|
8
|
+
import { BEAST2_CONTENT_TYPE } from '@elaraai/e3-core';
|
|
9
|
+
import { PackageListItemType } from './types.js';
|
|
10
|
+
import { ResponseType } from './types.js';
|
|
11
|
+
import { get, del, fetchWithAuth, ApiError } from './http.js';
|
|
9
12
|
/**
|
|
10
13
|
* List all packages in the repository.
|
|
11
|
-
*
|
|
12
|
-
* @param url - Base URL of the e3 API server
|
|
13
|
-
* @returns Array of package info (name, version)
|
|
14
14
|
*/
|
|
15
|
-
export async function packageList(url) {
|
|
16
|
-
|
|
17
|
-
return unwrap(response);
|
|
15
|
+
export async function packageList(url, repo, options) {
|
|
16
|
+
return get(url, `/repos/${encodeURIComponent(repo)}/packages`, ArrayType(PackageListItemType), options);
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
20
19
|
* Get package object.
|
|
21
|
-
*
|
|
22
|
-
* @param url - Base URL of the e3 API server
|
|
23
|
-
* @param name - Package name
|
|
24
|
-
* @param version - Package version
|
|
25
|
-
* @returns Package object
|
|
26
20
|
*/
|
|
27
|
-
export async function packageGet(url, name, version) {
|
|
28
|
-
|
|
29
|
-
return unwrap(response);
|
|
21
|
+
export async function packageGet(url, repo, name, version, options) {
|
|
22
|
+
return get(url, `/repos/${encodeURIComponent(repo)}/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}`, PackageObjectType, options);
|
|
30
23
|
}
|
|
31
24
|
/**
|
|
32
|
-
* Import a package from a zip archive.
|
|
25
|
+
* Import a package from a zip archive using the transfer protocol.
|
|
33
26
|
*
|
|
34
|
-
*
|
|
35
|
-
* @param archive - Zip archive as bytes
|
|
36
|
-
* @returns Imported package info
|
|
27
|
+
* Flow: init upload → upload zip → trigger import → poll for result
|
|
37
28
|
*/
|
|
38
|
-
export async function packageImport(url, archive) {
|
|
39
|
-
const
|
|
40
|
-
|
|
29
|
+
export async function packageImport(url, repo, archive, options) {
|
|
30
|
+
const repoEncoded = encodeURIComponent(repo);
|
|
31
|
+
// 1. Init transfer
|
|
32
|
+
const encodeInit = encodeBeast2For(PackageTransferInitRequestType);
|
|
33
|
+
const initRes = await fetchWithAuth(`${url}/api/repos/${repoEncoded}/import`, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': BEAST2_CONTENT_TYPE,
|
|
37
|
+
'Accept': BEAST2_CONTENT_TYPE,
|
|
38
|
+
},
|
|
39
|
+
body: encodeInit({ size: BigInt(archive.byteLength) }),
|
|
40
|
+
}, options);
|
|
41
|
+
if (!initRes.ok)
|
|
42
|
+
throw new Error(`Transfer init failed: ${initRes.status} ${initRes.statusText}`);
|
|
43
|
+
const initBuffer = new Uint8Array(await initRes.arrayBuffer());
|
|
44
|
+
const decodeInit = decodeBeast2For(ResponseType(PackageTransferInitResponseType));
|
|
45
|
+
const initResult = decodeInit(initBuffer);
|
|
46
|
+
if (initResult.type === 'error')
|
|
47
|
+
throw new ApiError(initResult.value.type, initResult.value.value);
|
|
48
|
+
const { id, uploadUrl } = initResult.value;
|
|
49
|
+
// 2. Upload zip bytes (no auth — URL may be a presigned S3 URL)
|
|
50
|
+
const uploadRes = await fetch(uploadUrl, {
|
|
51
|
+
method: 'PUT',
|
|
52
|
+
headers: { 'Content-Type': 'application/zip' },
|
|
53
|
+
body: archive,
|
|
54
|
+
});
|
|
55
|
+
if (!uploadRes.ok)
|
|
56
|
+
throw new Error(`Transfer upload failed: ${uploadRes.status} ${uploadRes.statusText}`);
|
|
57
|
+
// 3. Trigger import
|
|
58
|
+
const importRes = await fetchWithAuth(`${url}/api/repos/${repoEncoded}/import/${id}`, {
|
|
59
|
+
method: 'POST',
|
|
60
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
61
|
+
}, options);
|
|
62
|
+
if (!importRes.ok)
|
|
63
|
+
throw new Error(`Transfer import failed: ${importRes.status} ${importRes.statusText}`);
|
|
64
|
+
const importBuffer = new Uint8Array(await importRes.arrayBuffer());
|
|
65
|
+
const decodeImport = decodeBeast2For(ResponseType(PackageJobResponseType));
|
|
66
|
+
const importResult = decodeImport(importBuffer);
|
|
67
|
+
if (importResult.type === 'error')
|
|
68
|
+
throw new ApiError(importResult.value.type, importResult.value.value);
|
|
69
|
+
// 4. Poll for result
|
|
70
|
+
const status = await pollImport(url, repoEncoded, importResult.value.id, options);
|
|
71
|
+
if (status.type === 'failed') {
|
|
72
|
+
throw new Error(`Package import failed: ${status.value.message}`);
|
|
73
|
+
}
|
|
74
|
+
if (status.type === 'completed') {
|
|
75
|
+
return status.value;
|
|
76
|
+
}
|
|
77
|
+
throw new Error('Unexpected job status');
|
|
41
78
|
}
|
|
42
79
|
/**
|
|
43
|
-
* Export a package as a zip archive.
|
|
80
|
+
* Export a package as a zip archive using the transfer protocol.
|
|
44
81
|
*
|
|
45
|
-
*
|
|
46
|
-
* @param name - Package name
|
|
47
|
-
* @param version - Package version
|
|
48
|
-
* @returns Zip archive as bytes
|
|
82
|
+
* Flow: trigger export → poll for result → download zip
|
|
49
83
|
*/
|
|
50
|
-
export async function packageExport(url, name, version) {
|
|
51
|
-
const
|
|
52
|
-
|
|
84
|
+
export async function packageExport(url, repo, name, version, options) {
|
|
85
|
+
const repoEncoded = encodeURIComponent(repo);
|
|
86
|
+
// 1. Trigger export (name/version in URL, no body)
|
|
87
|
+
const exportRes = await fetchWithAuth(`${url}/api/repos/${repoEncoded}/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}/export`, {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
90
|
+
}, options);
|
|
91
|
+
if (!exportRes.ok)
|
|
92
|
+
throw new Error(`Transfer export failed: ${exportRes.status} ${exportRes.statusText}`);
|
|
93
|
+
const exportBuffer = new Uint8Array(await exportRes.arrayBuffer());
|
|
94
|
+
const decodeExport = decodeBeast2For(ResponseType(PackageJobResponseType));
|
|
95
|
+
const exportResult = decodeExport(exportBuffer);
|
|
96
|
+
if (exportResult.type === 'error')
|
|
97
|
+
throw new ApiError(exportResult.value.type, exportResult.value.value);
|
|
98
|
+
// 2. Poll for result
|
|
99
|
+
const status = await pollExport(url, repoEncoded, exportResult.value.id, options);
|
|
100
|
+
if (status.type === 'failed') {
|
|
101
|
+
throw new Error(`Package export failed: ${status.value.message}`);
|
|
102
|
+
}
|
|
103
|
+
if (status.type !== 'completed') {
|
|
104
|
+
throw new Error('Unexpected job status');
|
|
105
|
+
}
|
|
106
|
+
const { downloadUrl } = status.value;
|
|
107
|
+
// 3. Download zip (no auth — URL may be a presigned S3 URL)
|
|
108
|
+
const downloadRes = await fetch(downloadUrl, { method: 'GET' });
|
|
109
|
+
if (!downloadRes.ok)
|
|
110
|
+
throw new Error(`Download failed: ${downloadRes.status} ${downloadRes.statusText}`);
|
|
111
|
+
return new Uint8Array(await downloadRes.arrayBuffer());
|
|
53
112
|
}
|
|
54
113
|
/**
|
|
55
114
|
* Remove a package from the repository.
|
|
56
|
-
*
|
|
57
|
-
* @param url - Base URL of the e3 API server
|
|
58
|
-
* @param name - Package name
|
|
59
|
-
* @param version - Package version
|
|
60
115
|
*/
|
|
61
|
-
export async function packageRemove(url, name, version) {
|
|
62
|
-
|
|
63
|
-
|
|
116
|
+
export async function packageRemove(url, repo, name, version, options) {
|
|
117
|
+
await del(url, `/repos/${encodeURIComponent(repo)}/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}`, NullType, options);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Poll a package import job until it completes or fails.
|
|
121
|
+
*/
|
|
122
|
+
async function pollImport(url, repoEncoded, id, options, maxAttempts = 120, intervalMs = 500) {
|
|
123
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
124
|
+
const res = await fetchWithAuth(`${url}/api/repos/${repoEncoded}/import/${id}`, {
|
|
125
|
+
method: 'GET',
|
|
126
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
127
|
+
}, options);
|
|
128
|
+
if (!res.ok)
|
|
129
|
+
throw new Error(`Import poll failed: ${res.status} ${res.statusText}`);
|
|
130
|
+
const buffer = new Uint8Array(await res.arrayBuffer());
|
|
131
|
+
const decode = decodeBeast2For(ResponseType(PackageImportStatusType));
|
|
132
|
+
const result = decode(buffer);
|
|
133
|
+
if (result.type === 'error')
|
|
134
|
+
throw new ApiError(result.value.type, result.value.value);
|
|
135
|
+
if (result.value.type !== 'processing') {
|
|
136
|
+
return result.value;
|
|
137
|
+
}
|
|
138
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
139
|
+
}
|
|
140
|
+
throw new Error('Package import timed out');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Poll a package export job until it completes or fails.
|
|
144
|
+
*/
|
|
145
|
+
async function pollExport(url, repoEncoded, id, options, maxAttempts = 120, intervalMs = 500) {
|
|
146
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
147
|
+
const res = await fetchWithAuth(`${url}/api/repos/${repoEncoded}/export/${id}`, {
|
|
148
|
+
method: 'GET',
|
|
149
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
150
|
+
}, options);
|
|
151
|
+
if (!res.ok)
|
|
152
|
+
throw new Error(`Export poll failed: ${res.status} ${res.statusText}`);
|
|
153
|
+
const buffer = new Uint8Array(await res.arrayBuffer());
|
|
154
|
+
const decode = decodeBeast2For(ResponseType(PackageExportStatusType));
|
|
155
|
+
const result = decode(buffer);
|
|
156
|
+
if (result.type === 'error')
|
|
157
|
+
throw new ApiError(result.value.type, result.value.value);
|
|
158
|
+
if (result.value.type !== 'processing') {
|
|
159
|
+
return result.value;
|
|
160
|
+
}
|
|
161
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
162
|
+
}
|
|
163
|
+
throw new Error('Package export timed out');
|
|
64
164
|
}
|
|
65
165
|
//# sourceMappingURL=packages.js.map
|
package/dist/src/packages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"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"}
|