@elaraai/e3-cli 0.0.2-beta.9 → 1.0.1

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 (135) hide show
  1. package/LICENSE.md +4 -0
  2. package/README.md +169 -46
  3. package/dist/src/cli.js +197 -73
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/commands/auth.d.ts +23 -0
  6. package/dist/src/commands/auth.d.ts.map +1 -0
  7. package/dist/src/commands/auth.js +200 -0
  8. package/dist/src/commands/auth.js.map +1 -0
  9. package/dist/src/commands/complete.d.ts +14 -0
  10. package/dist/src/commands/complete.d.ts.map +1 -0
  11. package/dist/src/commands/complete.js +166 -0
  12. package/dist/src/commands/complete.js.map +1 -0
  13. package/dist/src/commands/complete.spec.d.ts +6 -0
  14. package/dist/src/commands/complete.spec.d.ts.map +1 -0
  15. package/dist/src/commands/complete.spec.js +63 -0
  16. package/dist/src/commands/complete.spec.js.map +1 -0
  17. package/dist/src/commands/completion-install.d.ts +47 -0
  18. package/dist/src/commands/completion-install.d.ts.map +1 -0
  19. package/dist/src/commands/completion-install.js +141 -0
  20. package/dist/src/commands/completion-install.js.map +1 -0
  21. package/dist/src/commands/completion-install.spec.d.ts +6 -0
  22. package/dist/src/commands/completion-install.spec.d.ts.map +1 -0
  23. package/dist/src/commands/completion-install.spec.js +136 -0
  24. package/dist/src/commands/completion-install.spec.js.map +1 -0
  25. package/dist/src/commands/completion.d.ts +12 -0
  26. package/dist/src/commands/completion.d.ts.map +1 -0
  27. package/dist/src/commands/completion.js +75 -0
  28. package/dist/src/commands/completion.js.map +1 -0
  29. package/dist/src/commands/completion.spec.d.ts +6 -0
  30. package/dist/src/commands/completion.spec.d.ts.map +1 -0
  31. package/dist/src/commands/completion.spec.js +48 -0
  32. package/dist/src/commands/completion.spec.js.map +1 -0
  33. package/dist/src/commands/convert.impl.spec.d.ts +6 -0
  34. package/dist/src/commands/convert.impl.spec.d.ts.map +1 -0
  35. package/dist/src/commands/convert.impl.spec.js +245 -0
  36. package/dist/src/commands/convert.impl.spec.js.map +1 -0
  37. package/dist/src/commands/dataset-status.d.ts +9 -0
  38. package/dist/src/commands/dataset-status.d.ts.map +1 -0
  39. package/dist/src/commands/dataset-status.js +77 -0
  40. package/dist/src/commands/dataset-status.js.map +1 -0
  41. package/dist/src/commands/find.d.ts +17 -0
  42. package/dist/src/commands/find.d.ts.map +1 -0
  43. package/dist/src/commands/find.js +59 -0
  44. package/dist/src/commands/find.js.map +1 -0
  45. package/dist/src/commands/find.spec.d.ts +6 -0
  46. package/dist/src/commands/find.spec.d.ts.map +1 -0
  47. package/dist/src/commands/find.spec.js +43 -0
  48. package/dist/src/commands/find.spec.js.map +1 -0
  49. package/dist/src/commands/get.d.ts +3 -0
  50. package/dist/src/commands/get.d.ts.map +1 -1
  51. package/dist/src/commands/get.js +43 -20
  52. package/dist/src/commands/get.js.map +1 -1
  53. package/dist/src/commands/get.spec.d.ts +6 -0
  54. package/dist/src/commands/get.spec.d.ts.map +1 -0
  55. package/dist/src/commands/get.spec.js +28 -0
  56. package/dist/src/commands/get.spec.js.map +1 -0
  57. package/dist/src/commands/list.d.ts +6 -2
  58. package/dist/src/commands/list.d.ts.map +1 -1
  59. package/dist/src/commands/list.js +189 -30
  60. package/dist/src/commands/list.js.map +1 -1
  61. package/dist/src/commands/logs.d.ts.map +1 -1
  62. package/dist/src/commands/logs.js +96 -70
  63. package/dist/src/commands/logs.js.map +1 -1
  64. package/dist/src/commands/package.d.ts.map +1 -1
  65. package/dist/src/commands/package.js +78 -18
  66. package/dist/src/commands/package.js.map +1 -1
  67. package/dist/src/commands/repo.d.ts +44 -0
  68. package/dist/src/commands/repo.d.ts.map +1 -0
  69. package/dist/src/commands/repo.js +278 -0
  70. package/dist/src/commands/repo.js.map +1 -0
  71. package/dist/src/commands/run.d.ts +12 -0
  72. package/dist/src/commands/run.d.ts.map +1 -1
  73. package/dist/src/commands/run.js +21 -13
  74. package/dist/src/commands/run.js.map +1 -1
  75. package/dist/src/commands/run.spec.d.ts +6 -0
  76. package/dist/src/commands/run.spec.d.ts.map +1 -0
  77. package/dist/src/commands/run.spec.js +39 -0
  78. package/dist/src/commands/run.spec.js.map +1 -0
  79. package/dist/src/commands/set.d.ts +1 -0
  80. package/dist/src/commands/set.d.ts.map +1 -1
  81. package/dist/src/commands/set.js +33 -32
  82. package/dist/src/commands/set.js.map +1 -1
  83. package/dist/src/commands/start.d.ts.map +1 -1
  84. package/dist/src/commands/start.js +270 -52
  85. package/dist/src/commands/start.js.map +1 -1
  86. package/dist/src/commands/watch.d.ts +5 -2
  87. package/dist/src/commands/watch.d.ts.map +1 -1
  88. package/dist/src/commands/watch.js +32 -26
  89. package/dist/src/commands/watch.js.map +1 -1
  90. package/dist/src/commands/workspace.d.ts +12 -1
  91. package/dist/src/commands/workspace.d.ts.map +1 -1
  92. package/dist/src/commands/workspace.js +332 -38
  93. package/dist/src/commands/workspace.js.map +1 -1
  94. package/dist/src/credentials.d.ts +123 -0
  95. package/dist/src/credentials.d.ts.map +1 -0
  96. package/dist/src/credentials.js +213 -0
  97. package/dist/src/credentials.js.map +1 -0
  98. package/dist/src/format.d.ts +18 -0
  99. package/dist/src/format.d.ts.map +1 -0
  100. package/dist/src/format.js +43 -0
  101. package/dist/src/format.js.map +1 -0
  102. package/dist/src/path-resolver.d.ts +86 -0
  103. package/dist/src/path-resolver.d.ts.map +1 -0
  104. package/dist/src/path-resolver.js +241 -0
  105. package/dist/src/path-resolver.js.map +1 -0
  106. package/dist/src/path-resolver.spec.d.ts +6 -0
  107. package/dist/src/path-resolver.spec.d.ts.map +1 -0
  108. package/dist/src/path-resolver.spec.js +247 -0
  109. package/dist/src/path-resolver.spec.js.map +1 -0
  110. package/dist/src/utils.d.ts +76 -1
  111. package/dist/src/utils.d.ts.map +1 -1
  112. package/dist/src/utils.js +104 -1
  113. package/dist/src/utils.js.map +1 -1
  114. package/dist/src/utils.spec.d.ts +6 -0
  115. package/dist/src/utils.spec.d.ts.map +1 -0
  116. package/dist/src/utils.spec.js +199 -0
  117. package/dist/src/utils.spec.js.map +1 -0
  118. package/package.json +22 -18
  119. package/scripts/postinstall.cjs +26 -0
  120. package/dist/src/commands/gc.d.ts +0 -12
  121. package/dist/src/commands/gc.d.ts.map +0 -1
  122. package/dist/src/commands/gc.js +0 -44
  123. package/dist/src/commands/gc.js.map +0 -1
  124. package/dist/src/commands/init.d.ts +0 -9
  125. package/dist/src/commands/init.d.ts.map +0 -1
  126. package/dist/src/commands/init.js +0 -33
  127. package/dist/src/commands/init.js.map +0 -1
  128. package/dist/src/commands/status.d.ts +0 -9
  129. package/dist/src/commands/status.d.ts.map +0 -1
  130. package/dist/src/commands/status.js +0 -157
  131. package/dist/src/commands/status.js.map +0 -1
  132. package/dist/src/commands/tree.d.ts +0 -14
  133. package/dist/src/commands/tree.d.ts.map +0 -1
  134. package/dist/src/commands/tree.js +0 -77
  135. 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;AAcH;;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,CA+Cf"}
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"}
@@ -6,34 +6,57 @@
6
6
  * e3 get command - Get dataset value
7
7
  *
8
8
  * Usage:
9
- * e3 get . ws.path.to.dataset
10
- * e3 get . ws.path.to.dataset -f json
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, datasetRead } from '@elaraai/e3-core';
13
- import { printFor, toJSONFor } from '@elaraai/east';
14
- import { resolveRepo, parseDatasetPath, formatError, exitError } from '../utils.js';
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 repoPath = resolveRepo(repoArg);
21
- const { ws, path } = parseDatasetPath(pathSpec);
22
- if (path.length === 0) {
23
- exitError('Path must include at least one field (e.g., ws.field)');
24
- }
25
- // Get the hash first, then read with type info
26
- const { refType, hash } = await workspaceGetDatasetHash(repoPath, ws, path);
27
- if (refType === 'unassigned') {
28
- exitError('Dataset is unassigned (pending task output)');
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
- if (refType === 'null' || hash === null) {
31
- console.log('null');
32
- return;
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;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,QAAgB,EAChB,OAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,uDAAuD,CAAC,CAAC;QACrE,CAAC;QAED,+CAA+C;QAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,SAAS,CAAC,6CAA6C,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QAExC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,SAAS,CAAC,0DAA0D,CAAC,CAAC;gBACtE,MAAM;YACR;gBACE,SAAS,CAAC,mBAAmB,MAAM,2BAA2B,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/get.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=get.spec.d.ts.map
@@ -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 tree contents at a path.
9
+ * List workspaces (no path) or flat dataset paths in a workspace.
7
10
  */
8
- export declare function listCommand(repoArg: string, pathSpec?: string): Promise<void>;
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;AAkBH;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnF"}
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 tree contents
6
+ * e3 list command - List workspaces or dataset paths in a workspace
7
7
  *
8
8
  * Usage:
9
- * e3 list . # List all workspaces
10
- * e3 list . ws # List root tree of workspace
11
- * e3 list . ws.inputs # List fields under inputs
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, workspaceListTree, workspaceGetState, } from '@elaraai/e3-core';
14
- import { resolveRepo, parseDatasetPath, formatError, exitError } from '../utils.js';
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 tree contents at a path.
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 repoPath = resolveRepo(repoArg);
21
- // If no path, list workspaces
24
+ const location = await parseRepoLocation(repoArg);
25
+ const long = options.long ?? false;
22
26
  if (!pathSpec) {
23
- const workspaces = await workspaceList(repoPath);
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
- // Parse path and list tree contents
40
- const { ws, path } = parseDatasetPath(pathSpec);
41
- const fields = await workspaceListTree(repoPath, ws, path);
42
- if (fields.length === 0) {
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
- for (const field of fields) {
47
- console.log(field);
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,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,QAAiB;IAClE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
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,gBAAgB,EAChB,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,IAAI,mBAAmB,EACpC,oBAAoB,IAAI,0BAA0B,GAEnD,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAc9C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,QAA4B,EAAE,OAAoB;IACnG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,OAAO;YACpC,CAAC,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,CAAC,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEjF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAElD,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAuD;IACnF,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClE,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACzG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,EAAU;IAC1D,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7D,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QAC5D,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,SAAS;gBACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC7B,iCAAiC;oBACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjC,yCAAyC;oBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;4BAAE,SAAS;wBAChE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,IAAY,EAAE,EAAU,EAAE,KAAa;IACvF,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACpC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC9B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;YAAE,SAAS;QACpD,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,EAAU,EAAE,IAAY,EAAE,IAAsB,EAAE,IAAoC;IACvG,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG;QAC9D,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,IAAY,EAAE,IAAsB,EAAE,KAAsC;IAChH,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IACvC,IAAI,MAAc,CAAC;IACnB,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,OAAO,CAAC;QACjB,IAAI,GAAG,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,KAAK,CAAC;QACf,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,KAAK,CAAC;QACf,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,CAAC;IACD,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI;QACJ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,MAAM;QACN,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,OAA2B;IAC7C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,OAA2B,EAAE,IAAwB;IACrE,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAW;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACrI,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2MH;;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,CAgCf"}
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"}