@elaraai/e3-api-client 1.0.87 → 1.0.88
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/dist/src/executions.d.ts +28 -2
- package/dist/src/executions.d.ts.map +1 -1
- package/dist/src/executions.js +65 -7
- package/dist/src/executions.js.map +1 -1
- package/dist/src/http.d.ts +67 -1
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +87 -3
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +5 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/repository.d.ts +24 -5
- package/dist/src/repository.d.ts.map +1 -1
- package/dist/src/repository.js +47 -8
- package/dist/src/repository.js.map +1 -1
- package/dist/src/repository.spec.d.ts +6 -0
- package/dist/src/repository.spec.d.ts.map +1 -0
- package/dist/src/repository.spec.js +95 -0
- package/dist/src/repository.spec.js.map +1 -0
- package/dist/src/stopping-run.spec.d.ts +6 -0
- package/dist/src/stopping-run.spec.d.ts.map +1 -0
- package/dist/src/stopping-run.spec.js +145 -0
- package/dist/src/stopping-run.spec.js.map +1 -0
- package/dist/src/types.d.ts +11 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +3 -2
- package/dist/src/types.js.map +1 -1
- package/dist/src/workspaces.d.ts +9 -1
- package/dist/src/workspaces.d.ts.map +1 -1
- package/dist/src/workspaces.js +13 -5
- package/dist/src/workspaces.js.map +1 -1
- package/package.json +4 -4
package/dist/src/workspaces.js
CHANGED
|
@@ -6,7 +6,7 @@ import { ArrayType, NullType, OptionType, encodeBeast2For, decodeBeast2For, some
|
|
|
6
6
|
import { WorkspaceStateType, PackageJobResponseType, pathToString, } from '@elaraai/e3-types';
|
|
7
7
|
import { WorkspaceInfoType, WorkspaceCreateRequestType, WorkspaceCopyRequestType, WorkspaceDeployRequestType, WorkspaceDeployStatusType, WorkspaceStatusResultType, WorkspaceExportRequestType, LockStatusType, ResponseType, } from './types.js';
|
|
8
8
|
import { BEAST2_CONTENT_TYPE } from '@elaraai/e3-types';
|
|
9
|
-
import { get, post, del, fetchWithAuth, fetchWithProgress, ApiError } from './http.js';
|
|
9
|
+
import { get, post, del, fetchWithAuth, fetchWithProgress, retryingRefusal, ApiError } from './http.js';
|
|
10
10
|
import { JOB_POLL_MAX_MS, JOB_POLL_MIN_MS, pollExport } from './packages.js';
|
|
11
11
|
/**
|
|
12
12
|
* List all workspaces in the repository.
|
|
@@ -125,15 +125,20 @@ export async function workspaceLockStatus(url, repo, name, options) {
|
|
|
125
125
|
/**
|
|
126
126
|
* Remove a workspace.
|
|
127
127
|
*
|
|
128
|
+
* @remarks
|
|
129
|
+
* A workspace a run that is stopping still holds is refused with a
|
|
130
|
+
* `Retry-After`, which the client waits out ({@link retryingRefusal}).
|
|
131
|
+
*
|
|
128
132
|
* @param url - Base URL of the e3 API server
|
|
129
133
|
* @param repo - Repository name
|
|
130
134
|
* @param name - Workspace name
|
|
131
135
|
* @param options - Request options including auth token
|
|
132
|
-
* @throws {ApiError} On application-level errors
|
|
136
|
+
* @throws {ApiError} On application-level errors: `workspace_locked` while
|
|
137
|
+
* something else holds the workspace
|
|
133
138
|
* @throws {AuthError} On 401 Unauthorized
|
|
134
139
|
*/
|
|
135
140
|
export async function workspaceRemove(url, repo, name, options) {
|
|
136
|
-
await del(url, `/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(name)}`, NullType, options);
|
|
141
|
+
await retryingRefusal('workspace_locked', () => del(url, `/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(name)}`, NullType, options), options);
|
|
137
142
|
}
|
|
138
143
|
/**
|
|
139
144
|
* Deploy a package to a workspace.
|
|
@@ -142,6 +147,9 @@ export async function workspaceRemove(url, repo, name, options) {
|
|
|
142
147
|
* The server runs the deploy as a job, since one that migrates a record, or
|
|
143
148
|
* builds an index over one, can outlast a request. This starts the job and
|
|
144
149
|
* polls it until it answers: 100 ms apart at first, backing off to a second.
|
|
150
|
+
* A workspace a run that is stopping still holds is refused with a
|
|
151
|
+
* `Retry-After`, which the client waits out before it starts the job
|
|
152
|
+
* ({@link retryingRefusal}).
|
|
145
153
|
*
|
|
146
154
|
* @param url - Base URL of the e3 API server
|
|
147
155
|
* @param repo - Repository name
|
|
@@ -160,13 +168,13 @@ export async function workspaceRemove(url, repo, name, options) {
|
|
|
160
168
|
*/
|
|
161
169
|
export async function workspaceDeploy(url, repo, name, packageRef, options, deployOptions = {}) {
|
|
162
170
|
const path = `/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(name)}/deploy`;
|
|
163
|
-
const { id } = await post(url, path, {
|
|
171
|
+
const { id } = await retryingRefusal('workspace_locked', () => post(url, path, {
|
|
164
172
|
packageRef,
|
|
165
173
|
schema: variant(deployOptions.schema ?? 'migrate', null),
|
|
166
174
|
inputs: variant(deployOptions.inputs ?? 'reset', null),
|
|
167
175
|
allowDropRecords: deployOptions.allowDropRecords ?? false,
|
|
168
176
|
plan: deployOptions.plan ?? false,
|
|
169
|
-
}, WorkspaceDeployRequestType, PackageJobResponseType, options);
|
|
177
|
+
}, WorkspaceDeployRequestType, PackageJobResponseType, options), options);
|
|
170
178
|
for (let wait = JOB_POLL_MIN_MS;; wait = Math.min(wait * 2, JOB_POLL_MAX_MS)) {
|
|
171
179
|
deployOptions.signal?.throwIfAborted();
|
|
172
180
|
const status = await get(url, `${path}/${encodeURIComponent(id)}`, WorkspaceDeployStatusType, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/workspaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EACL,kBAAkB,EAElB,sBAAsB,EACtB,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAuB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/workspaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EACL,kBAAkB,EAElB,sBAAsB,EACtB,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAuB,MAAM,WAAW,CAAC;AAC7H,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,OAAuB;IACpF,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,OAAuB;IACpG,OAAO,IAAI,CACT,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAC/C,EAAE,IAAI,EAAE,EACR,0BAA0B,EAC1B,iBAAiB,EACjB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,EAAU,EAAE,OAAuB;IAC9G,OAAO,IAAI,CACT,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAChF,EAAE,EAAE,EAAE,EACN,wBAAwB,EACxB,iBAAiB,EACjB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,OAAuB;IACjG,OAAO,GAAG,CACR,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC3E,kBAAkB,EAClB,OAAO,CACR,CAAC;AACJ,CAAC;AAcD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,OAAuB,EACvB,QAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;QAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACjC,OAAO,GAAG,CACR,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,UAAU,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,EACtH,yBAAyB,EACzB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,OAAuB;IACxG,MAAM,MAAM,GAAG,MAAM,GAAG,CACtB,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAChF,UAAU,CAAC,cAAc,CAAC,EAC1B,OAAO,CACR,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,OAAuB;IACpG,MAAM,eAAe,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,CACjD,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC3E,QAAQ,EACR,OAAO,CACR,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,UAAkB,EAClB,OAAuB,EACvB,gBAAwC,EAAE;IAE1C,MAAM,IAAI,GAAG,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;IAChG,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,eAAe,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CACjE,GAAG,EACH,IAAI,EACJ;QACE,UAAU;QACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC;QACxD,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,OAAO,EAAE,IAAI,CAAC;QACtD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,KAAK;QACzD,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,KAAK;KAClC,EACD,0BAA0B,EAC1B,sBAAsB,EACtB,OAAO,CACR,EAAE,OAAO,CAAC,CAAC;IAEZ,KAAK,IAAI,IAAI,GAAG,eAAe,GAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;QAC9E,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;QACvG,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClG,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAaD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,OAAuB,EACvB,aAAsC;IAEtC,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC;IAErC,8BAA8B;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,0BAA0B,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3D,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KACrE,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,GAAG,GAAG,cAAc,WAAW,eAAe,SAAS,SAAS,EAAE;QACvG,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,mBAAmB;YACnC,QAAQ,EAAE,mBAAmB;SAC9B;QACD,IAAI;QACJ,MAAM;KACP,EAAE,OAAO,CAAC,CAAC;IAEZ,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IAE9G,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAA2G,CAAC;IAC7J,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE5G,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAEtH,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAErC,4DAA4D;IAC5D,OAAO,iBAAiB,CAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAClG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elaraai/e3-api-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.88",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "East Execution Engine API Client - TypeScript client library for e3 API server",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"directory": "libs/e3/packages/e3-api-client"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@elaraai/e3-types": "1.0.
|
|
33
|
+
"@elaraai/e3-types": "1.0.88"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@elaraai/east": "1.0.
|
|
36
|
+
"@elaraai/east": "1.0.88"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^22.0.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"eslint": "^9.0.0",
|
|
43
43
|
"eslint-plugin-headers": "^1.3.3",
|
|
44
44
|
"typescript": "^5.6.0",
|
|
45
|
-
"@elaraai/east-node-std": "1.0.
|
|
45
|
+
"@elaraai/east-node-std": "1.0.88"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "tsc",
|