@elaraai/e3-api-client 1.0.86 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,cAAc,EACf,MAAM,YAAY,CAAC;AAOpB,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE9G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE9G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAElI;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAOnI;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,WAAW,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,QAAQ,CAAC,CAyBnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpG;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,cAAc,EACf,MAAM,YAAY,CAAC;AAQpB,OAAO,EAAkD,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhG;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE9G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE9G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAElI;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAOnI;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,WAAW,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,QAAQ,CAAC,CAyBnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpG;AAUD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;4CACwC;IACxC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,aAAa,GAAE,iBAAsB,GACpC,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { StringType, NullType } from '@elaraai/east';
6
6
  import { RepositoryRecordType } from '@elaraai/e3-types';
7
- import { RepositoryStatusType, GcRequestType, GcStartResultType, GcStatusResultType, } from './types.js';
8
- import { get, post, del, putEmpty } from './http.js';
7
+ import { RepositoryStatusType, RepositoryRemovalType, GcRequestType, GcStartResultType, GcStatusResultType, } from './types.js';
8
+ import { ApiError, get, post, putEmpty, requestAnswered } from './http.js';
9
9
  /**
10
10
  * Get repository status.
11
11
  *
@@ -117,19 +117,58 @@ export async function repoGc(url, repo, gcOptions, options, pollOptions = {}) {
117
117
  export async function repoCreate(url, name, options) {
118
118
  return putEmpty(url, `/repos/${encodeURIComponent(name)}`, StringType, options);
119
119
  }
120
+ /** How long {@link repoRemove} waits between asks of a removal under way
121
+ * when its server names no `Retry-After`, in milliseconds. */
122
+ const REMOVAL_POLL_MS = 1_000;
123
+ /** The longest {@link repoRemove} waits between asks of a removal under way,
124
+ * whatever its server's `Retry-After`, in milliseconds. */
125
+ const REMOVAL_POLL_MAX_MS = 30_000;
120
126
  /**
121
- * Remove a repository.
127
+ * Remove a repository, and answer once it is gone.
122
128
  *
123
- * Deletion is synchronous - refs are deleted immediately and orphaned objects
124
- * are cleaned up by GC later.
129
+ * @remarks
130
+ * A server that removes the repository within the request answers 200, as
131
+ * the local one does. One whose removal outlasts a request answers
132
+ * `202 Accepted`, naming in `Location` the route that says how the removal
133
+ * goes ({@link RepositoryRemovalType}) and in `Retry-After` when to ask: the
134
+ * client asks it, as each answer's `Retry-After` says, until it answers
135
+ * `removed` or `repository_not_found`, and raises the reason it gives when it
136
+ * answers `failed`. So a repository removed and then created again under its
137
+ * name is created once the removal is done. A 202 that names no route is taken
138
+ * as done, as every answer was before servers named one.
125
139
  *
126
140
  * @param url - Base URL of the e3 API server
127
141
  * @param name - Repository name to remove
128
142
  * @param options - Request options including auth token
129
- * @throws {ApiError} On application-level errors
143
+ * @param removeOptions - What hears that the removal is under way
144
+ * @throws {ApiError} On application-level errors; `repository_removal_failed`,
145
+ * with its reason, when the removal stopped
130
146
  * @throws {AuthError} On 401 Unauthorized
131
147
  */
132
- export async function repoRemove(url, name, options) {
133
- await del(url, `/repos/${encodeURIComponent(name)}`, NullType, options);
148
+ export async function repoRemove(url, name, options, removeOptions = {}) {
149
+ const removing = await requestAnswered(`${url}/api/repos/${encodeURIComponent(name)}`, 'DELETE', NullType, options);
150
+ if (!removing.accepted || removing.location === null)
151
+ return;
152
+ removeOptions.onWaiting?.();
153
+ let wait = removing.retryAfterMs;
154
+ for (;;) {
155
+ await new Promise((resolve) => setTimeout(resolve, Math.min(wait ?? REMOVAL_POLL_MS, REMOVAL_POLL_MAX_MS)));
156
+ let removal;
157
+ try {
158
+ const asked = await requestAnswered(removing.location, 'GET', RepositoryRemovalType, options);
159
+ removal = asked.value;
160
+ wait = asked.retryAfterMs;
161
+ }
162
+ catch (err) {
163
+ // A route of a repository that is gone may say so.
164
+ if (err instanceof ApiError && err.code === 'repository_not_found')
165
+ return;
166
+ throw err;
167
+ }
168
+ if (removal.type === 'removed')
169
+ return;
170
+ if (removal.type === 'failed')
171
+ throw new ApiError('repository_removal_failed', removal.value.message);
172
+ }
134
173
  }
135
174
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=repository.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.spec.d.ts","sourceRoot":"","sources":["../../src/repository.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Tests for removing a repository whose server finishes the removal after it
7
+ * answers (#1285): `repoRemove` follows the route a `202 Accepted` names until
8
+ * the repository is gone, through a stand-in server given as the `fetch`.
9
+ */
10
+ import { describe, it } from 'node:test';
11
+ import assert from 'node:assert/strict';
12
+ import { NullType, encodeBeast2For, variant } from '@elaraai/east';
13
+ import { BEAST2_CONTENT_TYPE, RepositoryRemovalType, ResponseType } from '@elaraai/e3-types';
14
+ import { ApiError } from './http.js';
15
+ import { repoRemove } from './repository.js';
16
+ const BASE = 'https://e3.test';
17
+ /** A BEAST2 success, as the server sends one. */
18
+ function success(type, value, status = 200, headers = {}) {
19
+ const body = encodeBeast2For(ResponseType(type))(variant('success', value));
20
+ return new Response(body, { status, headers: { 'Content-Type': BEAST2_CONTENT_TYPE, ...headers } });
21
+ }
22
+ /** A BEAST2 refusal, as the server sends one. */
23
+ function refusal(type, error) {
24
+ const body = encodeBeast2For(ResponseType(type))(variant('error', error));
25
+ return new Response(body, { status: 200, headers: { 'Content-Type': BEAST2_CONTENT_TYPE } });
26
+ }
27
+ /**
28
+ * A server that removes repository `r`: within the request when `answers` is
29
+ * empty, or else answering 202 — naming its removal's route, unless `named` is
30
+ * false — whose route then answers each of `answers` in turn, `gone` as
31
+ * `repository_not_found`.
32
+ *
33
+ * @returns The requests, as `METHOD /path`, and the `fetch` the server answers
34
+ */
35
+ function server(answers, named = true) {
36
+ const requests = [];
37
+ let asked = 0;
38
+ const fetch = (async (input, init) => {
39
+ const url = new URL(String(input));
40
+ const method = init?.method ?? 'GET';
41
+ requests.push(`${method} ${url.pathname}`);
42
+ if (requests.length > 10)
43
+ return new Response('the client asked on past the removal\'s end', { status: 500 });
44
+ if (method === 'DELETE' && url.pathname === '/api/repos/r') {
45
+ if (answers.length === 0)
46
+ return success(NullType, null);
47
+ return success(NullType, null, 202, { 'Retry-After': '0', ...(named && { Location: '/api/repos/r/removal/job-1' }) });
48
+ }
49
+ if (method === 'GET' && url.pathname === '/api/repos/r/removal/job-1') {
50
+ const answer = answers[asked++];
51
+ if ('gone' in answer)
52
+ return refusal(RepositoryRemovalType, variant('repository_not_found', { repo: 'r' }));
53
+ return success(RepositoryRemovalType, answer.removal, 200, { 'Retry-After': '0' });
54
+ }
55
+ return new Response(`unexpected ${method} ${url.href}`, { status: 500 });
56
+ });
57
+ return { requests, fetch };
58
+ }
59
+ describe('removing a repository (#1285)', () => {
60
+ it('answers once a server that removes the repository within the request answers 200', async () => {
61
+ const { requests, fetch } = server([]);
62
+ let waited = false;
63
+ await repoRemove(BASE, 'r', { token: null, fetch }, { onWaiting: () => { waited = true; } });
64
+ assert.deepEqual(requests, ['DELETE /api/repos/r']);
65
+ assert.equal(waited, false);
66
+ });
67
+ it('follows a 202 to the route it names, as each answer\'s Retry-After says, until the repository is removed', async () => {
68
+ const removing = { removal: variant('removing', null) };
69
+ const { requests, fetch } = server([removing, removing, { removal: variant('removed', null) }]);
70
+ let waits = 0;
71
+ await repoRemove(BASE, 'r', { token: null, fetch }, { onWaiting: () => { waits++; } });
72
+ assert.deepEqual(requests, ['DELETE /api/repos/r', ...Array(3).fill('GET /api/repos/r/removal/job-1')]);
73
+ assert.equal(waits, 1, 'told once that it waits');
74
+ });
75
+ it('takes a route that answers repository_not_found as the repository gone', async () => {
76
+ const { requests, fetch } = server([{ removal: variant('removing', null) }, { gone: true }]);
77
+ await repoRemove(BASE, 'r', { token: null, fetch });
78
+ assert.equal(requests.length, 3);
79
+ });
80
+ it('raises a removal that failed, with its reason', async () => {
81
+ const { fetch } = server([{ removal: variant('removing', null) }, { removal: variant('failed', { message: 'the objects could not be deleted' }) }]);
82
+ await assert.rejects(repoRemove(BASE, 'r', { token: null, fetch }), (err) => {
83
+ assert.ok(err instanceof ApiError);
84
+ assert.equal(err.code, 'repository_removal_failed');
85
+ assert.equal(err.details, 'the objects could not be deleted');
86
+ return true;
87
+ });
88
+ });
89
+ it('takes a 202 that names no route as done, as a client before servers named one did', async () => {
90
+ const { requests, fetch } = server([{ removal: variant('removing', null) }], false);
91
+ await repoRemove(BASE, 'r', { token: null, fetch });
92
+ assert.deepEqual(requests, ['DELETE /api/repos/r']);
93
+ });
94
+ });
95
+ //# sourceMappingURL=repository.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../../src/repository.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=stopping-run.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopping-run.spec.d.ts","sourceRoot":"","sources":["../../src/stopping-run.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Tests for a run that stops after its cancel answers (#1286):
7
+ * `dataflowCancel` follows the run it cancelled until it has stopped, and a
8
+ * start, a deploy or a workspace's removal the workspace's lock refuses with a
9
+ * `Retry-After` — as a server refuses one while a stopping run holds the
10
+ * workspace — waits as the server says and asks again. Through a stand-in
11
+ * server given as the `fetch`.
12
+ */
13
+ import { describe, it } from 'node:test';
14
+ import assert from 'node:assert/strict';
15
+ import { NullType, encodeBeast2For, none, some, variant } from '@elaraai/east';
16
+ import { ApiDataflowExecutionStateType, BEAST2_CONTENT_TYPE, PackageJobResponseType, ResponseType, WorkspaceDeployStatusType, } from '@elaraai/e3-types';
17
+ import { dataflowCancel, dataflowExecuteLaunch } from './executions.js';
18
+ import { ApiError } from './http.js';
19
+ import { workspaceDeploy, workspaceRemove } from './workspaces.js';
20
+ const BASE = 'https://e3.test';
21
+ const AT = '2026-10-13T00:00:00.000Z';
22
+ /** A BEAST2 success, as the server sends one. */
23
+ function success(type, value, status = 200) {
24
+ const body = encodeBeast2For(ResponseType(type))(variant('success', value));
25
+ return new Response(body, { status, headers: { 'Content-Type': BEAST2_CONTENT_TYPE } });
26
+ }
27
+ /** A BEAST2 refusal, as the server sends one, with its headers. */
28
+ function refusal(type, error, headers = {}) {
29
+ const body = encodeBeast2For(ResponseType(type))(variant('error', error));
30
+ return new Response(body, { status: 200, headers: { 'Content-Type': BEAST2_CONTENT_TYPE, ...headers } });
31
+ }
32
+ /** The refusal of a workspace something holds. */
33
+ const locked = variant('workspace_locked', { workspace: 'ws', holder: variant('unknown', null) });
34
+ /** A run's state, as its poll answers it. */
35
+ function run(runId, status) {
36
+ return {
37
+ runId, status: variant(status, null), startedAt: AT, completedAt: status === 'aborted' ? some(AT) : none, summary: none,
38
+ events: [], nextSeq: 0n, lastSeq: 0n, budget: none, waiting: [], splits: [],
39
+ };
40
+ }
41
+ /**
42
+ * A server that answers each request by the first of `routes` it matches —
43
+ * `METHOD /path` — with that route's answers in turn, its last again.
44
+ *
45
+ * @returns The requests, as `METHOD /path`, and the `fetch` the server answers
46
+ */
47
+ function server(routes) {
48
+ const requests = [];
49
+ const served = new Map();
50
+ const fetch = (async (input, init) => {
51
+ const url = new URL(String(input));
52
+ const key = `${init?.method ?? 'GET'} ${url.pathname}`;
53
+ requests.push(key);
54
+ if (requests.length > 20)
55
+ return new Response('the client asked on and on', { status: 500 });
56
+ const answers = routes[key];
57
+ if (answers === undefined)
58
+ return new Response(`unexpected ${key}`, { status: 500 });
59
+ const at = served.get(key) ?? 0;
60
+ served.set(key, at + 1);
61
+ return answers[Math.min(at, answers.length - 1)]();
62
+ });
63
+ return { requests, fetch };
64
+ }
65
+ const POLL = 'GET /api/repos/r/workspaces/ws/dataflow/execution';
66
+ const CANCEL = 'POST /api/repos/r/workspaces/ws/dataflow/cancel';
67
+ describe('a cancel that answers before its run has stopped (#1286)', () => {
68
+ it('follows the run it cancelled while it is stopping, and answers once it has stopped', async () => {
69
+ const { requests, fetch } = server({
70
+ [POLL]: [
71
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'running')),
72
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'stopping')),
73
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'stopping')),
74
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'aborted')),
75
+ ],
76
+ [CANCEL]: [() => success(NullType, null)],
77
+ });
78
+ let told = 0;
79
+ await dataflowCancel(BASE, 'r', 'ws', { token: null, fetch }, { onStopping: () => { told++; } });
80
+ assert.deepEqual(requests, [POLL, CANCEL, POLL, POLL, POLL]);
81
+ assert.equal(told, 1, 'told once that the run is stopping');
82
+ });
83
+ it('answers at once when the cancel answers once its run has ended, as a local server\'s does', async () => {
84
+ const { requests, fetch } = server({
85
+ [POLL]: [
86
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'running')),
87
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'aborted')),
88
+ ],
89
+ [CANCEL]: [() => success(NullType, null)],
90
+ });
91
+ await dataflowCancel(BASE, 'r', 'ws', { token: null, fetch });
92
+ assert.deepEqual(requests, [POLL, CANCEL, POLL]);
93
+ });
94
+ it('stops following once another run has followed the one it cancelled', async () => {
95
+ const { requests, fetch } = server({
96
+ [POLL]: [
97
+ () => success(ApiDataflowExecutionStateType, run('run-1', 'running')),
98
+ () => success(ApiDataflowExecutionStateType, run('run-2', 'running')),
99
+ ],
100
+ [CANCEL]: [() => success(NullType, null)],
101
+ });
102
+ await dataflowCancel(BASE, 'r', 'ws', { token: null, fetch });
103
+ assert.deepEqual(requests, [POLL, CANCEL, POLL]);
104
+ });
105
+ it('raises a cancel of a workspace that has never run as the server refuses it', async () => {
106
+ const { fetch } = server({
107
+ [POLL]: [() => refusal(ApiDataflowExecutionStateType, variant('execution_not_found', { task: 'ws' }))],
108
+ [CANCEL]: [() => refusal(NullType, variant('dataflow_error', { message: 'No active execution for this workspace' }))],
109
+ });
110
+ await assert.rejects(dataflowCancel(BASE, 'r', 'ws', { token: null, fetch }), (err) => err instanceof ApiError && err.code === 'dataflow_error');
111
+ });
112
+ });
113
+ describe('a workspace a stopping run still holds (#1286)', () => {
114
+ const hinted = (type) => () => refusal(type, locked, { 'Retry-After': '0' });
115
+ it('removes the workspace once the run lets it go, asking again as each refusal\'s Retry-After says', async () => {
116
+ const { requests, fetch } = server({
117
+ 'DELETE /api/repos/r/workspaces/ws': [hinted(NullType), hinted(NullType), () => success(NullType, null)],
118
+ });
119
+ await workspaceRemove(BASE, 'r', 'ws', { token: null, fetch });
120
+ assert.equal(requests.length, 3);
121
+ });
122
+ it('raises a refusal that names no Retry-After at once: something else holds the workspace', async () => {
123
+ const { requests, fetch } = server({ 'DELETE /api/repos/r/workspaces/ws': [() => refusal(NullType, locked)] });
124
+ await assert.rejects(workspaceRemove(BASE, 'r', 'ws', { token: null, fetch }), (err) => err instanceof ApiError && err.code === 'workspace_locked' && err.retryAfterMs === undefined);
125
+ assert.equal(requests.length, 1);
126
+ });
127
+ it('starts the dataflow once the run lets the workspace go', async () => {
128
+ const { requests, fetch } = server({
129
+ 'POST /api/repos/r/workspaces/ws/dataflow': [hinted(NullType), hinted(NullType), () => success(NullType, null, 202)],
130
+ });
131
+ await dataflowExecuteLaunch(BASE, 'r', 'ws', {}, { token: null, fetch });
132
+ assert.equal(requests.length, 3);
133
+ });
134
+ it('deploys once the run lets the workspace go', async () => {
135
+ const { requests, fetch } = server({
136
+ 'POST /api/repos/r/workspaces/ws/deploy': [hinted(PackageJobResponseType), () => success(PackageJobResponseType, { id: 'job-1' })],
137
+ 'GET /api/repos/r/workspaces/ws/deploy/job-1': [() => success(WorkspaceDeployStatusType, variant('completed', { records: [], indexes: [], inputs: [], warnings: [] }))],
138
+ });
139
+ await workspaceDeploy(BASE, 'r', 'ws', 'p@1.0.0', { token: null, fetch });
140
+ assert.deepEqual(requests, [
141
+ 'POST /api/repos/r/workspaces/ws/deploy', 'POST /api/repos/r/workspaces/ws/deploy', 'GET /api/repos/r/workspaces/ws/deploy/job-1',
142
+ ]);
143
+ });
144
+ });
145
+ //# sourceMappingURL=stopping-run.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopping-run.spec.js","sourceRoot":"","sources":["../../src/stopping-run.spec.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@
9
9
  * Types with "Api" prefix in e3-types are re-exported here with shorter names
10
10
  * since API consumers don't see the conflicting domain types.
11
11
  */
12
- export { WorkspaceNotFoundErrorType, WorkspaceNotDeployedErrorType, WorkspaceExistsErrorType, LockHolderType, WorkspaceLockedErrorType, PackageNotFoundErrorType, PackageExistsErrorType, PackageInvalidErrorType, DatasetNotFoundErrorType, TaskNotFoundErrorType, ExecutionNotFoundErrorType, ObjectNotFoundErrorType, DataflowErrorType, PermissionDeniedErrorType, InternalErrorType, RepositoryNotFoundErrorType, ErrorType, ResponseType, RepositoryStatusType, GcRequestType, GcResultType, AsyncOperationStatusType, GcStartResultType, GcStatusResultType, PackageListItemType, PackageImportResultType, PackageInfoType, PackageDetailsType, WorkspaceCreateRequestType, WorkspaceInfoType, SchemaPolicyType, WorkspaceDeployRequestType, RecordPlanType, RecordIndexPlanType, WorkspaceDeployResultType, WorkspaceDeployProgressType, WorkspaceDeployStatusType, WorkspaceExportRequestType, LockStatusType, DatasetStatusType, TaskStatusUpToDateType, TaskStatusWaitingType, TaskStatusInProgressType, TaskStatusFailedType, TaskStatusErrorType, TaskStatusStaleRunningType, TaskStatusType, DatasetStatusInfoType, TaskStatusInfoType, WorkspaceStatusSummaryType, WorkspaceStatusResultType, TaskListItemType, TaskDetailsType, DataflowRequestType, LogChunkType, TaskLogChunkType, TaskExecutionResultType, DataflowResultType, DataflowEventType, ApiExecutionStatusType as ExecutionStatusType, DataflowExecutionSummaryType, DataflowBudgetType, UnitWaitType, SplitProgressType, ApiDataflowExecutionStateType as DataflowExecutionStateType, ExecutionHistoryStatusType, ExecutionListItemType, TASK_EXECUTIONS_PAGE_DEFAULT, TASK_EXECUTIONS_PAGE_MAX, TreeKindType, ListEntryType, DatasetStatusDetailType, TransferUploadRequestType, TransferUploadResponseType, TransferPartResponseType, TransferDoneResponseType, PackageImportStatusType, PackageExportStatusType, RunnerType, ExecuteLimitsType, DiagnosticType, ExecuteResultType, CallArgType, FunctionCallRequestType, FunctionSignatureType, OneShotRequestType, SplitCallArgType, SplitCallRequestType, SplitCallProgressType, SplitCallStatusType, SplitCallPlanType, MutationCallRequestType, MutationResultType, RecordMigrationAppliedType, RecordSignatureType, RecordCommitInfoType, RecordArgPreviewType, RecordCommitArgsType, RecordHistoryCommitType, RecordHistoryResultType, RECORD_ARG_TEXT_CHARS, RECORD_ARG_TEXT_BYTES, RECORD_ARGS_READ_BYTES, DataflowGraphType, DataflowGraphTaskType, } from '@elaraai/e3-types';
13
- export type { Error, RepositoryStatus, GcRequest, GcResult, AsyncOperationStatus, GcStartResult, GcStatusResult, PackageListItem, PackageImportResult, PackageInfo, PackageDetails, WorkspaceInfo, WorkspaceCreateRequest, WorkspaceDeployRequest, SchemaPolicy, RecordPlan, RecordIndexPlan, WorkspaceDeployResult, WorkspaceDeployProgress, WorkspaceDeployStatus, LockStatus, LockProgress, DeployProgress, RecordDeployState, RecordDeployStep, IntakeFile, IntakeStep, DatasetStatus, ApiTaskStatus as TaskStatus, DatasetStatusInfo, TaskStatusInfo, WorkspaceStatusSummary, WorkspaceStatusResult, TaskListItem, TaskDetails, DataflowRequest, LogChunk, TaskLogChunk, TaskExecutionResult, DataflowResult, DataflowEvent, ApiExecutionStatus as ExecutionStatus, DataflowExecutionSummary, DataflowBudget, UnitWait, SplitProgress, StageUnit, RequeueReason, ApiDataflowExecutionState as DataflowExecutionState, ExecutionHistoryStatus, ExecutionListItem, TreeKind, ListEntry, DatasetStatusDetail, TransferUploadRequest, TransferUploadResponse, TransferPartResponse, TransferDoneResponse, PackageImportStatus, PackageExportStatus, RunnerValue, ExecuteLimits, Diagnostic, ExecuteResult, CallArg, FunctionCallRequest, FunctionSignature, OneShotRequest, SplitCallArg, SplitCallRequest, SplitCallProgress, SplitCallStatus, SplitCallPlan, MutationCallRequest, MutationResult, RecordMigrationApplied, RecordSignature, RecordCommitInfo, RecordArgPreview, RecordCommitArgs, RecordHistoryCommit, RecordHistoryResult, DataflowGraph, DataflowGraphTask, } from '@elaraai/e3-types';
12
+ export { WorkspaceNotFoundErrorType, WorkspaceNotDeployedErrorType, WorkspaceExistsErrorType, LockHolderType, WorkspaceLockedErrorType, PackageNotFoundErrorType, PackageExistsErrorType, PackageInvalidErrorType, DatasetNotFoundErrorType, TaskNotFoundErrorType, ExecutionNotFoundErrorType, ObjectNotFoundErrorType, DataflowErrorType, PermissionDeniedErrorType, InternalErrorType, RepositoryNotFoundErrorType, ErrorType, ResponseType, RepositoryStatusType, GcRequestType, GcResultType, AsyncOperationStatusType, GcStartResultType, GcStatusResultType, RepositoryRemovalType, PackageListItemType, PackageImportResultType, PackageInfoType, PackageDetailsType, WorkspaceCreateRequestType, WorkspaceCopyRequestType, WorkspaceInfoType, SchemaPolicyType, InputPolicyType, WorkspaceDeployRequestType, RecordPlanType, RecordIndexPlanType, InputPlanType, WorkspaceDeployResultType, WorkspaceDeployProgressType, WorkspaceDeployStatusType, WorkspaceExportRequestType, LockStatusType, DatasetStatusType, TaskStatusUpToDateType, TaskStatusWaitingType, TaskStatusInProgressType, TaskStatusFailedType, TaskStatusErrorType, TaskStatusStaleRunningType, TaskStatusType, DatasetStatusInfoType, TaskStatusInfoType, WorkspaceStatusSummaryType, WorkspaceStatusResultType, TaskListItemType, TaskDetailsType, DataflowRequestType, LogChunkType, TaskLogChunkType, TaskExecutionResultType, DataflowResultType, DataflowEventType, ApiExecutionStatusType as ExecutionStatusType, DataflowExecutionSummaryType, DataflowBudgetType, UnitWaitType, SplitProgressType, ApiDataflowExecutionStateType as DataflowExecutionStateType, ExecutionHistoryStatusType, ExecutionListItemType, TASK_EXECUTIONS_PAGE_DEFAULT, TASK_EXECUTIONS_PAGE_MAX, TreeKindType, ListEntryType, DatasetStatusDetailType, TransferUploadRequestType, TransferUploadResponseType, TransferPartResponseType, TransferDoneResponseType, PackageImportStatusType, PackageExportStatusType, RunnerType, ExecuteLimitsType, DiagnosticType, ExecuteResultType, CallArgType, FunctionCallRequestType, FunctionSignatureType, OneShotRequestType, SplitCallArgType, SplitCallRequestType, SplitCallProgressType, SplitCallStatusType, SplitCallPlanType, MutationCallRequestType, MutationResultType, RecordMigrationAppliedType, RecordSignatureType, RecordCommitInfoType, RecordArgPreviewType, RecordCommitArgsType, RecordHistoryCommitType, RecordHistoryResultType, RECORD_ARG_TEXT_CHARS, RECORD_ARG_TEXT_BYTES, RECORD_ARGS_READ_BYTES, DataflowGraphType, DataflowGraphTaskType, } from '@elaraai/e3-types';
13
+ export type { Error, RepositoryStatus, GcRequest, GcResult, AsyncOperationStatus, GcStartResult, GcStatusResult, RepositoryRemoval, PackageListItem, PackageImportResult, PackageInfo, PackageDetails, WorkspaceInfo, WorkspaceCreateRequest, WorkspaceCopyRequest, WorkspaceDeployRequest, SchemaPolicy, InputPolicy, RecordPlan, RecordIndexPlan, InputPlan, WorkspaceDeployResult, WorkspaceDeployProgress, WorkspaceDeployStatus, LockStatus, LockProgress, DeployProgress, RecordDeployState, RecordDeployStep, IntakeFile, IntakeStep, DatasetStatus, ApiTaskStatus as TaskStatus, DatasetStatusInfo, TaskStatusInfo, WorkspaceStatusSummary, WorkspaceStatusResult, TaskListItem, TaskDetails, DataflowRequest, LogChunk, TaskLogChunk, TaskExecutionResult, DataflowResult, DataflowEvent, ApiExecutionStatus as ExecutionStatus, DataflowExecutionSummary, DataflowBudget, UnitWait, SplitProgress, StageUnit, RequeueReason, ApiDataflowExecutionState as DataflowExecutionState, ExecutionHistoryStatus, ExecutionListItem, TreeKind, ListEntry, DatasetStatusDetail, TransferUploadRequest, TransferUploadResponse, TransferPartResponse, TransferDoneResponse, PackageImportStatus, PackageExportStatus, RunnerValue, ExecuteLimits, Diagnostic, ExecuteResult, CallArg, FunctionCallRequest, FunctionSignature, OneShotRequest, SplitCallArg, SplitCallRequest, SplitCallProgress, SplitCallStatus, SplitCallPlan, MutationCallRequest, MutationResult, RecordMigrationApplied, RecordSignature, RecordCommitInfo, RecordArgPreview, RecordCommitArgs, RecordHistoryCommit, RecordHistoryResult, DataflowGraph, DataflowGraphTask, } from '@elaraai/e3-types';
14
14
  export declare const ApiTypes: {
15
15
  readonly ErrorType: import("@elaraai/east").VariantType<{
16
16
  readonly repository_not_found: import("@elaraai/east").StructType<{
@@ -264,6 +264,13 @@ export declare const ApiTypes: {
264
264
  }>>;
265
265
  readonly error: import("@elaraai/east").OptionType<import("@elaraai/east").StringType>;
266
266
  }>;
267
+ readonly RepositoryRemovalType: import("@elaraai/east").VariantType<{
268
+ readonly removing: import("@elaraai/east").NullType;
269
+ readonly removed: import("@elaraai/east").NullType;
270
+ readonly failed: import("@elaraai/east").StructType<{
271
+ readonly message: import("@elaraai/east").StringType;
272
+ }>;
273
+ }>;
267
274
  readonly PackageListItemType: import("@elaraai/east").StructType<{
268
275
  readonly name: import("@elaraai/east").StringType;
269
276
  readonly version: import("@elaraai/east").StringType;
@@ -336,6 +343,9 @@ export declare const ApiTypes: {
336
343
  readonly WorkspaceCreateRequestType: import("@elaraai/east").StructType<{
337
344
  readonly name: import("@elaraai/east").StringType;
338
345
  }>;
346
+ readonly WorkspaceCopyRequestType: import("@elaraai/east").StructType<{
347
+ readonly to: import("@elaraai/east").StringType;
348
+ }>;
339
349
  readonly WorkspaceInfoType: import("@elaraai/east").StructType<{
340
350
  readonly name: import("@elaraai/east").StringType;
341
351
  readonly deployed: import("@elaraai/east").BooleanType;
@@ -347,6 +357,10 @@ export declare const ApiTypes: {
347
357
  readonly fail: import("@elaraai/east").NullType;
348
358
  readonly reset: import("@elaraai/east").NullType;
349
359
  }>;
360
+ readonly InputPolicyType: import("@elaraai/east").VariantType<{
361
+ readonly 'keep-edited': import("@elaraai/east").NullType;
362
+ readonly reset: import("@elaraai/east").NullType;
363
+ }>;
350
364
  readonly WorkspaceDeployRequestType: import("@elaraai/east").StructType<{
351
365
  readonly packageRef: import("@elaraai/east").StringType;
352
366
  readonly schema: import("@elaraai/east").VariantType<{
@@ -354,6 +368,10 @@ export declare const ApiTypes: {
354
368
  readonly fail: import("@elaraai/east").NullType;
355
369
  readonly reset: import("@elaraai/east").NullType;
356
370
  }>;
371
+ readonly inputs: import("@elaraai/east").VariantType<{
372
+ readonly "keep-edited": import("@elaraai/east").NullType;
373
+ readonly reset: import("@elaraai/east").NullType;
374
+ }>;
357
375
  readonly allowDropRecords: import("@elaraai/east").BooleanType;
358
376
  readonly plan: import("@elaraai/east").BooleanType;
359
377
  }>;
@@ -385,6 +403,22 @@ export declare const ApiTypes: {
385
403
  readonly keep: import("@elaraai/east").NullType;
386
404
  }>;
387
405
  }>;
406
+ readonly InputPlanType: import("@elaraai/east").StructType<{
407
+ readonly input: import("@elaraai/east").StringType;
408
+ readonly action: import("@elaraai/east").VariantType<{
409
+ readonly package: import("@elaraai/east").NullType;
410
+ readonly keep: import("@elaraai/east").NullType;
411
+ readonly reset: import("@elaraai/east").StructType<{
412
+ readonly reason: import("@elaraai/east").StringType;
413
+ readonly policy: import("@elaraai/east").BooleanType;
414
+ }>;
415
+ readonly file: import("@elaraai/east").StructType<{
416
+ readonly path: import("@elaraai/east").StringType;
417
+ readonly taken: import("@elaraai/east").BooleanType;
418
+ }>;
419
+ readonly drop: import("@elaraai/east").NullType;
420
+ }>;
421
+ }>;
388
422
  readonly WorkspaceDeployResultType: import("@elaraai/east").StructType<{
389
423
  readonly records: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
390
424
  readonly record: import("@elaraai/east").StringType;
@@ -414,6 +448,22 @@ export declare const ApiTypes: {
414
448
  readonly keep: import("@elaraai/east").NullType;
415
449
  }>;
416
450
  }>>;
451
+ readonly inputs: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
452
+ readonly input: import("@elaraai/east").StringType;
453
+ readonly action: import("@elaraai/east").VariantType<{
454
+ readonly package: import("@elaraai/east").NullType;
455
+ readonly keep: import("@elaraai/east").NullType;
456
+ readonly reset: import("@elaraai/east").StructType<{
457
+ readonly reason: import("@elaraai/east").StringType;
458
+ readonly policy: import("@elaraai/east").BooleanType;
459
+ }>;
460
+ readonly file: import("@elaraai/east").StructType<{
461
+ readonly path: import("@elaraai/east").StringType;
462
+ readonly taken: import("@elaraai/east").BooleanType;
463
+ }>;
464
+ readonly drop: import("@elaraai/east").NullType;
465
+ }>;
466
+ }>>;
417
467
  readonly warnings: import("@elaraai/east").ArrayType<import("@elaraai/east").StringType>;
418
468
  }>;
419
469
  readonly WorkspaceDeployProgressType: import("@elaraai/east").VariantType<{
@@ -574,6 +624,22 @@ export declare const ApiTypes: {
574
624
  readonly keep: import("@elaraai/east").NullType;
575
625
  }>;
576
626
  }>>;
627
+ readonly inputs: import("@elaraai/east").ArrayType<import("@elaraai/east").StructType<{
628
+ readonly input: import("@elaraai/east").StringType;
629
+ readonly action: import("@elaraai/east").VariantType<{
630
+ readonly package: import("@elaraai/east").NullType;
631
+ readonly keep: import("@elaraai/east").NullType;
632
+ readonly reset: import("@elaraai/east").StructType<{
633
+ readonly reason: import("@elaraai/east").StringType;
634
+ readonly policy: import("@elaraai/east").BooleanType;
635
+ }>;
636
+ readonly file: import("@elaraai/east").StructType<{
637
+ readonly path: import("@elaraai/east").StringType;
638
+ readonly taken: import("@elaraai/east").BooleanType;
639
+ }>;
640
+ readonly drop: import("@elaraai/east").NullType;
641
+ }>;
642
+ }>>;
577
643
  readonly warnings: import("@elaraai/east").ArrayType<import("@elaraai/east").StringType>;
578
644
  }>;
579
645
  readonly failed: import("@elaraai/east").StructType<{
@@ -592,6 +658,7 @@ export declare const ApiTypes: {
592
658
  readonly removal: import("@elaraai/east").NullType;
593
659
  readonly dataset_write: import("@elaraai/east").NullType;
594
660
  readonly export: import("@elaraai/east").NullType;
661
+ readonly workspace_copy: import("@elaraai/east").NullType;
595
662
  }>;
596
663
  readonly holder: import("@elaraai/east").VariantType<{
597
664
  readonly process: import("@elaraai/east").StructType<{
@@ -1102,6 +1169,7 @@ export declare const ApiTypes: {
1102
1169
  }>;
1103
1170
  readonly ExecutionStatusType: import("@elaraai/east").VariantType<{
1104
1171
  readonly running: import("@elaraai/east").NullType;
1172
+ readonly stopping: import("@elaraai/east").NullType;
1105
1173
  readonly completed: import("@elaraai/east").NullType;
1106
1174
  readonly failed: import("@elaraai/east").NullType;
1107
1175
  readonly aborted: import("@elaraai/east").NullType;
@@ -1145,6 +1213,7 @@ export declare const ApiTypes: {
1145
1213
  readonly runId: import("@elaraai/east").StringType;
1146
1214
  readonly status: import("@elaraai/east").VariantType<{
1147
1215
  readonly running: import("@elaraai/east").NullType;
1216
+ readonly stopping: import("@elaraai/east").NullType;
1148
1217
  readonly completed: import("@elaraai/east").NullType;
1149
1218
  readonly failed: import("@elaraai/east").NullType;
1150
1219
  readonly aborted: import("@elaraai/east").NullType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAGH,OAAO,EAEL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,EACT,YAAY,EAEZ,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAElB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAElB,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EAEd,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EAEzB,gBAAgB,EAChB,eAAe,EAEf,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAElB,iBAAiB,EACjB,sBAAsB,IAAI,mBAAmB,EAC7C,4BAA4B,EAC5B,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,IAAI,0BAA0B,EAE3D,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EAExB,YAAY,EACZ,aAAa,EAEb,uBAAuB,EAEvB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EAEvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAElB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EAEtB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,IAAI,UAAU,EAC3B,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,IAAI,eAAe,EACrC,wBAAwB,EACxB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,SAAS,EACT,aAAa,EACb,yBAAyB,IAAI,sBAAsB,EACnD,sBAAsB,EACtB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAoG3B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HX,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HX,CAAC"}