@elaraai/e3-cli 0.0.2-beta.9 → 1.0.0
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/LICENSE.md +4 -0
- package/README.md +169 -46
- package/dist/src/cli.js +197 -73
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/auth.d.ts +23 -0
- package/dist/src/commands/auth.d.ts.map +1 -0
- package/dist/src/commands/auth.js +200 -0
- package/dist/src/commands/auth.js.map +1 -0
- package/dist/src/commands/complete.d.ts +14 -0
- package/dist/src/commands/complete.d.ts.map +1 -0
- package/dist/src/commands/complete.js +166 -0
- package/dist/src/commands/complete.js.map +1 -0
- package/dist/src/commands/complete.spec.d.ts +6 -0
- package/dist/src/commands/complete.spec.d.ts.map +1 -0
- package/dist/src/commands/complete.spec.js +63 -0
- package/dist/src/commands/complete.spec.js.map +1 -0
- package/dist/src/commands/completion-install.d.ts +47 -0
- package/dist/src/commands/completion-install.d.ts.map +1 -0
- package/dist/src/commands/completion-install.js +141 -0
- package/dist/src/commands/completion-install.js.map +1 -0
- package/dist/src/commands/completion-install.spec.d.ts +6 -0
- package/dist/src/commands/completion-install.spec.d.ts.map +1 -0
- package/dist/src/commands/completion-install.spec.js +136 -0
- package/dist/src/commands/completion-install.spec.js.map +1 -0
- package/dist/src/commands/completion.d.ts +12 -0
- package/dist/src/commands/completion.d.ts.map +1 -0
- package/dist/src/commands/completion.js +75 -0
- package/dist/src/commands/completion.js.map +1 -0
- package/dist/src/commands/completion.spec.d.ts +6 -0
- package/dist/src/commands/completion.spec.d.ts.map +1 -0
- package/dist/src/commands/completion.spec.js +48 -0
- package/dist/src/commands/completion.spec.js.map +1 -0
- package/dist/src/commands/convert.impl.spec.d.ts +6 -0
- package/dist/src/commands/convert.impl.spec.d.ts.map +1 -0
- package/dist/src/commands/convert.impl.spec.js +245 -0
- package/dist/src/commands/convert.impl.spec.js.map +1 -0
- package/dist/src/commands/dataset-status.d.ts +9 -0
- package/dist/src/commands/dataset-status.d.ts.map +1 -0
- package/dist/src/commands/dataset-status.js +77 -0
- package/dist/src/commands/dataset-status.js.map +1 -0
- package/dist/src/commands/find.d.ts +17 -0
- package/dist/src/commands/find.d.ts.map +1 -0
- package/dist/src/commands/find.js +59 -0
- package/dist/src/commands/find.js.map +1 -0
- package/dist/src/commands/find.spec.d.ts +6 -0
- package/dist/src/commands/find.spec.d.ts.map +1 -0
- package/dist/src/commands/find.spec.js +43 -0
- package/dist/src/commands/find.spec.js.map +1 -0
- package/dist/src/commands/get.d.ts +3 -0
- package/dist/src/commands/get.d.ts.map +1 -1
- package/dist/src/commands/get.js +43 -20
- package/dist/src/commands/get.js.map +1 -1
- package/dist/src/commands/get.spec.d.ts +6 -0
- package/dist/src/commands/get.spec.d.ts.map +1 -0
- package/dist/src/commands/get.spec.js +28 -0
- package/dist/src/commands/get.spec.js.map +1 -0
- package/dist/src/commands/list.d.ts +6 -2
- package/dist/src/commands/list.d.ts.map +1 -1
- package/dist/src/commands/list.js +189 -30
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/commands/logs.d.ts.map +1 -1
- package/dist/src/commands/logs.js +96 -70
- package/dist/src/commands/logs.js.map +1 -1
- package/dist/src/commands/package.d.ts.map +1 -1
- package/dist/src/commands/package.js +78 -18
- package/dist/src/commands/package.js.map +1 -1
- package/dist/src/commands/repo.d.ts +44 -0
- package/dist/src/commands/repo.d.ts.map +1 -0
- package/dist/src/commands/repo.js +278 -0
- package/dist/src/commands/repo.js.map +1 -0
- package/dist/src/commands/run.d.ts +12 -0
- package/dist/src/commands/run.d.ts.map +1 -1
- package/dist/src/commands/run.js +21 -13
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/run.spec.d.ts +6 -0
- package/dist/src/commands/run.spec.d.ts.map +1 -0
- package/dist/src/commands/run.spec.js +39 -0
- package/dist/src/commands/run.spec.js.map +1 -0
- package/dist/src/commands/set.d.ts +1 -0
- package/dist/src/commands/set.d.ts.map +1 -1
- package/dist/src/commands/set.js +33 -32
- package/dist/src/commands/set.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +270 -52
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/watch.d.ts +5 -2
- package/dist/src/commands/watch.d.ts.map +1 -1
- package/dist/src/commands/watch.js +32 -26
- package/dist/src/commands/watch.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +12 -1
- package/dist/src/commands/workspace.d.ts.map +1 -1
- package/dist/src/commands/workspace.js +332 -38
- package/dist/src/commands/workspace.js.map +1 -1
- package/dist/src/credentials.d.ts +123 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +213 -0
- package/dist/src/credentials.js.map +1 -0
- package/dist/src/format.d.ts +18 -0
- package/dist/src/format.d.ts.map +1 -0
- package/dist/src/format.js +43 -0
- package/dist/src/format.js.map +1 -0
- package/dist/src/path-resolver.d.ts +86 -0
- package/dist/src/path-resolver.d.ts.map +1 -0
- package/dist/src/path-resolver.js +241 -0
- package/dist/src/path-resolver.js.map +1 -0
- package/dist/src/path-resolver.spec.d.ts +6 -0
- package/dist/src/path-resolver.spec.d.ts.map +1 -0
- package/dist/src/path-resolver.spec.js +247 -0
- package/dist/src/path-resolver.spec.js.map +1 -0
- package/dist/src/utils.d.ts +76 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +104 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/src/utils.spec.d.ts +6 -0
- package/dist/src/utils.spec.d.ts.map +1 -0
- package/dist/src/utils.spec.js +199 -0
- package/dist/src/utils.spec.js.map +1 -0
- package/package.json +22 -18
- package/scripts/postinstall.cjs +26 -0
- package/dist/src/commands/gc.d.ts +0 -12
- package/dist/src/commands/gc.d.ts.map +0 -1
- package/dist/src/commands/gc.js +0 -44
- package/dist/src/commands/gc.js.map +0 -1
- package/dist/src/commands/init.d.ts +0 -9
- package/dist/src/commands/init.d.ts.map +0 -1
- package/dist/src/commands/init.js +0 -33
- package/dist/src/commands/init.js.map +0 -1
- package/dist/src/commands/status.d.ts +0 -9
- package/dist/src/commands/status.d.ts.map +0 -1
- package/dist/src/commands/status.js +0 -157
- package/dist/src/commands/status.js.map +0 -1
- package/dist/src/commands/tree.d.ts +0 -14
- package/dist/src/commands/tree.d.ts.map +0 -1
- package/dist/src/commands/tree.js +0 -77
- package/dist/src/commands/tree.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it } from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { makeMatcher } from './find.js';
|
|
8
|
+
function matchAll(pattern, names) {
|
|
9
|
+
const m = makeMatcher(pattern);
|
|
10
|
+
return names.filter(m);
|
|
11
|
+
}
|
|
12
|
+
describe('makeMatcher', () => {
|
|
13
|
+
it('empty pattern matches nothing', () => {
|
|
14
|
+
assert.deepStrictEqual(matchAll('', ['anything', 'else']), []);
|
|
15
|
+
});
|
|
16
|
+
it('plain pattern does literal substring match', () => {
|
|
17
|
+
assert.deepStrictEqual(matchAll('dev', ['developer', 'devops', 'production']), ['developer', 'devops']);
|
|
18
|
+
});
|
|
19
|
+
it('plain pattern does NOT treat regex meta-chars as regex', () => {
|
|
20
|
+
// dot is regex-meta but as a substring pattern it must match literally
|
|
21
|
+
assert.deepStrictEqual(matchAll('data.csv', ['data.csv', 'dataXcsv']), ['data.csv']);
|
|
22
|
+
});
|
|
23
|
+
it('glob `*` expands to "any sequence"', () => {
|
|
24
|
+
assert.deepStrictEqual(matchAll('*output*', ['greet.output', 'shout.output', 'input.name']), ['greet.output', 'shout.output']);
|
|
25
|
+
});
|
|
26
|
+
it('glob `?` expands to "any single character"', () => {
|
|
27
|
+
assert.deepStrictEqual(matchAll('?reet', ['greet', 'treet', 'greeting']), ['greet', 'treet']);
|
|
28
|
+
});
|
|
29
|
+
it('glob anchors at both ends (no implicit substring)', () => {
|
|
30
|
+
// 'foo' without globs is substring; 'foo' as glob would be anchored.
|
|
31
|
+
// We only enable anchored mode when the pattern contains * or ?.
|
|
32
|
+
assert.deepStrictEqual(matchAll('foo*', ['foo', 'foobar', 'xfoo']), ['foo', 'foobar']);
|
|
33
|
+
assert.deepStrictEqual(matchAll('*foo', ['foo', 'foobar', 'xfoo']), ['foo', 'xfoo']);
|
|
34
|
+
});
|
|
35
|
+
it('escapes regex meta-chars inside a glob pattern', () => {
|
|
36
|
+
// Pattern: 'data.csv*' — the dot must remain literal even in glob mode.
|
|
37
|
+
assert.deepStrictEqual(matchAll('data.csv*', ['data.csv', 'data.csv.bak', 'dataXcsv']), ['data.csv', 'data.csv.bak']);
|
|
38
|
+
});
|
|
39
|
+
it('escapes brackets and parens inside a glob pattern', () => {
|
|
40
|
+
assert.deepStrictEqual(matchAll('(a)*', ['(a)', '(a)1', 'a']), ['(a)', '(a)1']);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=find.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.spec.js","sourceRoot":"","sources":["../../../src/commands/find.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAe;IAChD,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,EACtD,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,uEAAuE;QACvE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,EACpE,CAAC,cAAc,EAAE,cAAc,CAAC,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EACjD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,wEAAwE;QACxE,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,EAC/D,CAAC,UAAU,EAAE,cAAc,CAAC,CAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,eAAe,CACpB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EACtC,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
+
/** Supported output formats for `e3 dataset get`. */
|
|
6
|
+
export type GetFormat = 'east' | 'json' | 'beast2';
|
|
7
|
+
export declare function parseGetFormat(value: string | undefined): GetFormat;
|
|
5
8
|
/**
|
|
6
9
|
* Get dataset value at a path.
|
|
7
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAInD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMnE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Df"}
|
package/dist/src/commands/get.js
CHANGED
|
@@ -6,34 +6,57 @@
|
|
|
6
6
|
* e3 get command - Get dataset value
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* e3 get . ws.
|
|
10
|
-
* e3 get . ws.
|
|
9
|
+
* e3 dataset get . ws.name
|
|
10
|
+
* e3 dataset get . ws.name -f json
|
|
11
|
+
* e3 dataset get https://server/repos/myrepo ws.name
|
|
12
|
+
*
|
|
13
|
+
* Paths use the flat form `<ws>.<name>`. The resolver maps `<name>` to
|
|
14
|
+
* its storage location (input or task output) automatically.
|
|
11
15
|
*/
|
|
12
|
-
import { workspaceGetDatasetHash,
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
16
|
+
import { datasetRead, workspaceGetDatasetHash, LocalStorage } from '@elaraai/e3-core';
|
|
17
|
+
import { datasetGet as datasetGetRemote } from '@elaraai/e3-api-client';
|
|
18
|
+
import { printFor, toJSONFor, decodeBeast2, toEastTypeValue, isVariant } from '@elaraai/east';
|
|
19
|
+
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
20
|
+
import { resolveDatasetPath } from '../path-resolver.js';
|
|
21
|
+
const GET_FORMATS = ['east', 'json', 'beast2'];
|
|
22
|
+
export function parseGetFormat(value) {
|
|
23
|
+
if (value === undefined)
|
|
24
|
+
return 'east';
|
|
25
|
+
if (GET_FORMATS.includes(value)) {
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
throw new Error(`Unknown format: '${value}'. Use one of: ${GET_FORMATS.join(', ')}`);
|
|
29
|
+
}
|
|
15
30
|
/**
|
|
16
31
|
* Get dataset value at a path.
|
|
17
32
|
*/
|
|
18
33
|
export async function getCommand(repoArg, pathSpec, options) {
|
|
19
34
|
try {
|
|
20
|
-
const
|
|
21
|
-
const { ws, path } =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const location = await parseRepoLocation(repoArg);
|
|
36
|
+
const { ws, path } = await resolveDatasetPath(location, pathSpec);
|
|
37
|
+
const format = parseGetFormat(options.format);
|
|
38
|
+
let type;
|
|
39
|
+
let value;
|
|
40
|
+
if (location.type === 'local') {
|
|
41
|
+
const storage = new LocalStorage();
|
|
42
|
+
const { refType, hash } = await workspaceGetDatasetHash(storage, location.path, ws, path);
|
|
43
|
+
if (refType === 'unassigned') {
|
|
44
|
+
exitError(`'${pathSpec}' is unassigned (no value has been set or produced yet)`);
|
|
45
|
+
}
|
|
46
|
+
if (refType === 'null' || hash === null) {
|
|
47
|
+
console.log('null');
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const dataset = await datasetRead(storage, location.path, hash);
|
|
51
|
+
type = isVariant(dataset.type) ? dataset.type : toEastTypeValue(dataset.type);
|
|
52
|
+
value = dataset.value;
|
|
29
53
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
else {
|
|
55
|
+
const { data: beast2Data } = await datasetGetRemote(location.baseUrl, location.repo, ws, path, { token: location.token });
|
|
56
|
+
const decoded = decodeBeast2(beast2Data);
|
|
57
|
+
type = decoded.type;
|
|
58
|
+
value = decoded.value;
|
|
33
59
|
}
|
|
34
|
-
// Read the dataset to get both value and type
|
|
35
|
-
const { type, value } = await datasetRead(repoPath, hash);
|
|
36
|
-
const format = options.format ?? 'east';
|
|
37
60
|
switch (format) {
|
|
38
61
|
case 'east': {
|
|
39
62
|
const printer = printFor(type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.spec.d.ts","sourceRoot":"","sources":["../../../src/commands/get.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it } from 'node:test';
|
|
6
|
+
import assert from 'node:assert/strict';
|
|
7
|
+
import { parseGetFormat } from './get.js';
|
|
8
|
+
describe('parseGetFormat', () => {
|
|
9
|
+
it('defaults to east when value is undefined', () => {
|
|
10
|
+
assert.strictEqual(parseGetFormat(undefined), 'east');
|
|
11
|
+
});
|
|
12
|
+
it('accepts east', () => {
|
|
13
|
+
assert.strictEqual(parseGetFormat('east'), 'east');
|
|
14
|
+
});
|
|
15
|
+
it('accepts json', () => {
|
|
16
|
+
assert.strictEqual(parseGetFormat('json'), 'json');
|
|
17
|
+
});
|
|
18
|
+
it('accepts beast2', () => {
|
|
19
|
+
assert.strictEqual(parseGetFormat('beast2'), 'beast2');
|
|
20
|
+
});
|
|
21
|
+
it('throws on unknown format, naming the supported set', () => {
|
|
22
|
+
assert.throws(() => parseGetFormat('xml'), /Unknown format: 'xml'.*east, json, beast2/);
|
|
23
|
+
});
|
|
24
|
+
it('throws on empty string', () => {
|
|
25
|
+
assert.throws(() => parseGetFormat(''), /Unknown format: ''/);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=get.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.spec.js","sourceRoot":"","sources":["../../../src/commands/get.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,2CAA2C,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
+
interface ListOptions {
|
|
6
|
+
long?: boolean;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
|
-
* List workspaces or
|
|
9
|
+
* List workspaces (no path) or flat dataset paths in a workspace.
|
|
7
10
|
*/
|
|
8
|
-
export declare function listCommand(repoArg: string, pathSpec
|
|
11
|
+
export declare function listCommand(repoArg: string, pathSpec: string | undefined, options: ListOptions): Promise<void>;
|
|
12
|
+
export {};
|
|
9
13
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAUD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCpH"}
|
|
@@ -3,52 +3,211 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* e3 list command - List workspaces or
|
|
6
|
+
* e3 list command - List workspaces or dataset paths in a workspace
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* e3 list .
|
|
10
|
-
* e3 list . ws
|
|
11
|
-
* e3 list . ws
|
|
9
|
+
* e3 list . # List all workspaces
|
|
10
|
+
* e3 list . ws # List all dataset paths in workspace (flat form)
|
|
11
|
+
* e3 list . ws -l # Same, with type/kind/status/size columns
|
|
12
12
|
*/
|
|
13
|
-
import { workspaceList,
|
|
14
|
-
import {
|
|
13
|
+
import { workspaceList, workspaceGetState, workspaceGetTree, LocalStorage, } from '@elaraai/e3-core';
|
|
14
|
+
import { workspaceList as workspaceListRemote, datasetListRecursive as datasetListRecursiveRemote, } from '@elaraai/e3-api-client';
|
|
15
|
+
import { printFor, EastTypeType } from '@elaraai/east';
|
|
16
|
+
import { parseRepoLocation, formatError, exitError } from '../utils.js';
|
|
17
|
+
import { formatSize } from '../format.js';
|
|
18
|
+
const printTypeValue = printFor(EastTypeType);
|
|
15
19
|
/**
|
|
16
|
-
* List workspaces or
|
|
20
|
+
* List workspaces (no path) or flat dataset paths in a workspace.
|
|
17
21
|
*/
|
|
18
|
-
export async function listCommand(repoArg, pathSpec) {
|
|
22
|
+
export async function listCommand(repoArg, pathSpec, options) {
|
|
19
23
|
try {
|
|
20
|
-
const
|
|
21
|
-
|
|
24
|
+
const location = await parseRepoLocation(repoArg);
|
|
25
|
+
const long = options.long ?? false;
|
|
22
26
|
if (!pathSpec) {
|
|
23
|
-
|
|
24
|
-
if (workspaces.length === 0) {
|
|
25
|
-
console.log('No workspaces');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
for (const ws of workspaces) {
|
|
29
|
-
const state = await workspaceGetState(repoPath, ws);
|
|
30
|
-
if (state) {
|
|
31
|
-
console.log(`${ws} (${state.packageName}@${state.packageVersion})`);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
console.log(`${ws} (not deployed)`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
27
|
+
await listWorkspaces(location);
|
|
37
28
|
return;
|
|
38
29
|
}
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
const ws = pathSpec;
|
|
31
|
+
const rows = location.type === 'local'
|
|
32
|
+
? await collectRowsLocal(location.path, ws)
|
|
33
|
+
: await collectRowsRemote(location.baseUrl, location.repo, ws, location.token);
|
|
34
|
+
if (rows.length === 0) {
|
|
43
35
|
console.log('(empty)');
|
|
44
36
|
return;
|
|
45
37
|
}
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
rows.sort((a, b) => a.name.localeCompare(b.name));
|
|
39
|
+
if (long) {
|
|
40
|
+
printTable(rows);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
for (const row of rows) {
|
|
44
|
+
console.log(row.name);
|
|
45
|
+
}
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
48
|
catch (err) {
|
|
51
49
|
exitError(formatError(err));
|
|
52
50
|
}
|
|
53
51
|
}
|
|
52
|
+
async function listWorkspaces(location) {
|
|
53
|
+
if (location.type === 'local') {
|
|
54
|
+
const storage = new LocalStorage();
|
|
55
|
+
const workspaces = await workspaceList(storage, location.path);
|
|
56
|
+
if (workspaces.length === 0) {
|
|
57
|
+
console.log('No workspaces');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
for (const ws of workspaces) {
|
|
61
|
+
const state = await workspaceGetState(storage, location.path, ws);
|
|
62
|
+
if (state) {
|
|
63
|
+
console.log(`${ws} (${state.packageName}@${state.packageVersion})`);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.log(`${ws} (not deployed)`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const workspaces = await workspaceListRemote(location.baseUrl, location.repo, { token: location.token });
|
|
72
|
+
if (workspaces.length === 0) {
|
|
73
|
+
console.log('No workspaces');
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
for (const ws of workspaces) {
|
|
77
|
+
if (ws.deployed && ws.packageName.type === 'some' && ws.packageVersion.type === 'some') {
|
|
78
|
+
console.log(`${ws.name} (${ws.packageName.value}@${ws.packageVersion.value})`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log(`${ws.name} (not deployed)`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function collectRowsLocal(repoPath, ws) {
|
|
86
|
+
const storage = new LocalStorage();
|
|
87
|
+
const tree = await workspaceGetTree(storage, repoPath, ws, [], {
|
|
88
|
+
includeTypes: true,
|
|
89
|
+
includeStatus: true,
|
|
90
|
+
});
|
|
91
|
+
const rows = [];
|
|
92
|
+
for (const top of tree) {
|
|
93
|
+
if (top.kind !== 'tree')
|
|
94
|
+
continue;
|
|
95
|
+
if (top.name !== 'inputs' && top.name !== 'tasks')
|
|
96
|
+
continue;
|
|
97
|
+
if (top.name === 'inputs') {
|
|
98
|
+
for (const leaf of top.children) {
|
|
99
|
+
if (leaf.kind !== 'dataset')
|
|
100
|
+
continue;
|
|
101
|
+
rows.push(leafToRow(ws, leaf.name, 'input', leaf));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
for (const child of top.children) {
|
|
106
|
+
if (child.kind === 'dataset') {
|
|
107
|
+
// flat task output: tasks/<name>
|
|
108
|
+
rows.push(leafToRow(ws, child.name, 'task', child));
|
|
109
|
+
}
|
|
110
|
+
else if (child.kind === 'tree') {
|
|
111
|
+
// customTask output: tasks/<name>/output
|
|
112
|
+
for (const leaf of child.children) {
|
|
113
|
+
if (leaf.kind !== 'dataset' || leaf.name !== 'output')
|
|
114
|
+
continue;
|
|
115
|
+
rows.push(leafToRow(ws, child.name, 'task', leaf));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return rows;
|
|
122
|
+
}
|
|
123
|
+
async function collectRowsRemote(baseUrl, repo, ws, token) {
|
|
124
|
+
const items = await datasetListRecursiveRemote(baseUrl, repo, ws, [], { token });
|
|
125
|
+
const rows = [];
|
|
126
|
+
for (const item of items) {
|
|
127
|
+
if (item.type !== 'dataset')
|
|
128
|
+
continue;
|
|
129
|
+
const segments = item.value.path.split('.').filter(s => s.length > 0);
|
|
130
|
+
if (segments.length !== 2)
|
|
131
|
+
continue;
|
|
132
|
+
const [head, name] = segments;
|
|
133
|
+
if (head !== 'inputs' && head !== 'tasks')
|
|
134
|
+
continue;
|
|
135
|
+
const kind = head === 'inputs' ? 'input' : 'task';
|
|
136
|
+
rows.push(remoteEntryToRow(ws, name, kind, item));
|
|
137
|
+
}
|
|
138
|
+
return rows;
|
|
139
|
+
}
|
|
140
|
+
function leafToRow(ws, name, kind, node) {
|
|
141
|
+
return {
|
|
142
|
+
name: `${ws}.${name}`,
|
|
143
|
+
kind,
|
|
144
|
+
type: node.datasetType ? safePrintType(node.datasetType) : '-',
|
|
145
|
+
status: leafStatus(node.refType),
|
|
146
|
+
size: leafSize(node.refType, node.size),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function remoteEntryToRow(ws, name, kind, entry) {
|
|
150
|
+
const v = entry.value;
|
|
151
|
+
const hasHash = v.hash.type === 'some';
|
|
152
|
+
const hasSize = v.size.type === 'some';
|
|
153
|
+
let status;
|
|
154
|
+
let size;
|
|
155
|
+
if (!hasHash && !hasSize) {
|
|
156
|
+
status = 'unset';
|
|
157
|
+
size = '-';
|
|
158
|
+
}
|
|
159
|
+
else if (hasSize && v.size.value === 0n) {
|
|
160
|
+
status = 'set';
|
|
161
|
+
size = '0 B';
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
status = 'set';
|
|
165
|
+
size = hasSize ? formatSize(Number(v.size.value)) : '-';
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
name: `${ws}.${name}`,
|
|
169
|
+
kind,
|
|
170
|
+
type: safePrintType(v.type),
|
|
171
|
+
status,
|
|
172
|
+
size,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function leafStatus(refType) {
|
|
176
|
+
if (refType === undefined)
|
|
177
|
+
return '-';
|
|
178
|
+
if (refType === 'unassigned')
|
|
179
|
+
return 'unset';
|
|
180
|
+
if (refType === 'null')
|
|
181
|
+
return 'set';
|
|
182
|
+
return 'set';
|
|
183
|
+
}
|
|
184
|
+
function leafSize(refType, size) {
|
|
185
|
+
if (refType === 'unassigned')
|
|
186
|
+
return '-';
|
|
187
|
+
if (refType === 'null')
|
|
188
|
+
return '0 B';
|
|
189
|
+
if (size !== undefined)
|
|
190
|
+
return formatSize(size);
|
|
191
|
+
return '-';
|
|
192
|
+
}
|
|
193
|
+
function safePrintType(type) {
|
|
194
|
+
try {
|
|
195
|
+
return printTypeValue(type);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return '?';
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function printTable(rows) {
|
|
202
|
+
const nameW = Math.max(4, ...rows.map(r => r.name.length));
|
|
203
|
+
const kindW = Math.max(4, ...rows.map(r => r.kind.length));
|
|
204
|
+
const typeW = Math.max(4, ...rows.map(r => r.type.length));
|
|
205
|
+
const statusW = Math.max(6, ...rows.map(r => r.status.length));
|
|
206
|
+
const sizeW = Math.max(4, ...rows.map(r => r.size.length));
|
|
207
|
+
const pad = (s, w) => s.padEnd(w);
|
|
208
|
+
console.log(`${pad('PATH', nameW)} ${pad('KIND', kindW)} ${pad('TYPE', typeW)} ${pad('STATUS', statusW)} ${pad('SIZE', sizeW)}`);
|
|
209
|
+
for (const r of rows) {
|
|
210
|
+
console.log(`${pad(r.name, nameW)} ${pad(r.kind, kindW)} ${pad(r.type, typeW)} ${pad(r.status, statusW)} ${pad(r.size, sizeW)}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
54
213
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0NH;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAqEf"}
|