@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.
Files changed (46) hide show
  1. package/README.md +2 -2
  2. package/dist/src/datasets.d.ts +73 -4
  3. package/dist/src/datasets.d.ts.map +1 -1
  4. package/dist/src/datasets.js +197 -19
  5. package/dist/src/datasets.js.map +1 -1
  6. package/dist/src/executions.d.ts +74 -11
  7. package/dist/src/executions.d.ts.map +1 -1
  8. package/dist/src/executions.js +184 -36
  9. package/dist/src/executions.js.map +1 -1
  10. package/dist/src/http.d.ts +60 -12
  11. package/dist/src/http.d.ts.map +1 -1
  12. package/dist/src/http.js +135 -34
  13. package/dist/src/http.js.map +1 -1
  14. package/dist/src/index.d.ts +8 -5
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +10 -4
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/packages.d.ts +12 -27
  19. package/dist/src/packages.d.ts.map +1 -1
  20. package/dist/src/packages.js +139 -39
  21. package/dist/src/packages.js.map +1 -1
  22. package/dist/src/platform.d.ts +553 -1343
  23. package/dist/src/platform.d.ts.map +1 -1
  24. package/dist/src/platform.js +123 -915
  25. package/dist/src/platform.js.map +1 -1
  26. package/dist/src/repos.d.ts +16 -0
  27. package/dist/src/repos.d.ts.map +1 -0
  28. package/dist/src/repos.js +19 -0
  29. package/dist/src/repos.js.map +1 -0
  30. package/dist/src/repository.d.ts +67 -5
  31. package/dist/src/repository.d.ts.map +1 -1
  32. package/dist/src/repository.js +94 -10
  33. package/dist/src/repository.js.map +1 -1
  34. package/dist/src/tasks.d.ts +25 -3
  35. package/dist/src/tasks.d.ts.map +1 -1
  36. package/dist/src/tasks.js +29 -8
  37. package/dist/src/tasks.js.map +1 -1
  38. package/dist/src/types.d.ts +1360 -716
  39. package/dist/src/types.d.ts.map +1 -1
  40. package/dist/src/types.js +235 -2
  41. package/dist/src/types.js.map +1 -1
  42. package/dist/src/workspaces.d.ts +36 -7
  43. package/dist/src/workspaces.d.ts.map +1 -1
  44. package/dist/src/workspaces.js +43 -22
  45. package/dist/src/workspaces.js.map +1 -1
  46. package/package.json +4 -4
@@ -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 { repoStatus, repoGc } from './repository.js';
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 { dataflowStart, dataflowExecute, dataflowGraph, taskLogs, type DataflowOptions, type LogOptions, } from './executions.js';
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
@@ -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,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGrD,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,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,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"}
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 { dataflowStart, dataflowExecute, dataflowGraph, taskLogs, } from './executions.js';
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
@@ -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;AAuBtC,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAErD,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,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/C,aAAa;AACb,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,GAGT,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"}
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"}
@@ -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 type { PackageListItem, PackageImportResult } from './types.js';
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
- * @param url - Base URL of the e3 API server
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
- * @param url - Base URL of the e3 API server
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,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIvE;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAG9B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAOf"}
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"}
@@ -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, BlobType, NullType } from '@elaraai/east';
5
+ import { ArrayType, NullType, encodeBeast2For, decodeBeast2For } from '@elaraai/east';
6
6
  import { PackageObjectType } from '@elaraai/e3-types';
7
- import { PackageListItemType, PackageImportResultType } from './types.js';
8
- import { get, post, del, unwrap } from './http.js';
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
- const response = await get(url, '/api/packages', ArrayType(PackageListItemType));
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
- const response = await get(url, `/api/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}`, PackageObjectType);
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
- * @param url - Base URL of the e3 API server
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 response = await post(url, '/api/packages', archive, BlobType, PackageImportResultType);
40
- return unwrap(response);
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
- * @param url - Base URL of the e3 API server
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 response = await get(url, `/api/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}/export`, BlobType);
52
- return unwrap(response);
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
- const response = await del(url, `/api/packages/${encodeURIComponent(name)}/${encodeURIComponent(version)}`, NullType);
63
- unwrap(response);
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
@@ -1 +1 @@
1
- {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAsB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAY,EACZ,OAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB,GAAG,EACH,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC1E,iBAAiB,CAClB,CAAC;IACF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,OAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC9F,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAAY,EACZ,OAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB,GAAG,EACH,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,SAAS,EACjF,QAAQ,CACT,CAAC;IACF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAAY,EACZ,OAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB,GAAG,EACH,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC1E,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../src/packages.ts"],"names":[],"mappings":"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"}