@fnndsc/brasa 0.10.1 → 0.11.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.
- package/dist/api/index.d.ts +120 -0
- package/dist/api/index.js +87 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/models.d.ts +73 -0
- package/dist/api/models.js +15 -0
- package/dist/api/models.js.map +1 -0
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/fs/cat.d.ts +17 -0
- package/dist/builtins/fs/cat.js +11 -1
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +13 -0
- package/dist/builtins/fs/cd.js +11 -1
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +30 -0
- package/dist/builtins/fs/cp.js +20 -5
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/ls.d.ts +42 -0
- package/dist/builtins/fs/ls.js +33 -5
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +20 -2
- package/dist/builtins/fs/mkdir.js +14 -3
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +28 -0
- package/dist/builtins/fs/mv.js +18 -4
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +13 -0
- package/dist/builtins/fs/pwd.js +11 -1
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +14 -0
- package/dist/builtins/fs/rm.js +11 -1
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +24 -2
- package/dist/builtins/fs/touch.js +26 -13
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/net/pacsUtils.d.ts +4 -8
- package/dist/builtins/net/pacsUtils.js +14 -47
- package/dist/builtins/net/pacsUtils.js.map +1 -1
- package/dist/builtins/net/query.d.ts +3 -1
- package/dist/builtins/net/query.js +5 -7
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/builtins/fs/ls.js
CHANGED
|
@@ -16,7 +16,6 @@ import { vfs } from '../../lib/vfs/vfs.js';
|
|
|
16
16
|
*/
|
|
17
17
|
export async function builtin_ls(args) {
|
|
18
18
|
const parsed = commandArgs_process(args);
|
|
19
|
-
const pathArgsRaw = parsed._;
|
|
20
19
|
let sortBy = 'name';
|
|
21
20
|
if (parsed['sort']) {
|
|
22
21
|
const sortValue = String(parsed['sort']);
|
|
@@ -24,15 +23,35 @@ export async function builtin_ls(args) {
|
|
|
24
23
|
sortBy = sortValue;
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const options = {
|
|
26
|
+
return ls_run({
|
|
27
|
+
paths: parsed._,
|
|
30
28
|
long: !!parsed['l'],
|
|
31
29
|
human: !!parsed['h'],
|
|
32
30
|
oneColumn: !!parsed['1'],
|
|
33
31
|
sort: sortBy,
|
|
34
32
|
reverse: !!parsed['reverse'] || !!parsed['r'],
|
|
35
|
-
directory: !!parsed['d']
|
|
33
|
+
directory: !!parsed['d'],
|
|
34
|
+
refresh: !!parsed['refresh'] || !!parsed['f'],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Lists directories: the shared typed core behind the parsed builtin and
|
|
39
|
+
* the typed API.
|
|
40
|
+
*
|
|
41
|
+
* @param runOptions - Target paths, sorting, and presentation flags.
|
|
42
|
+
* @returns An envelope whose rendered text carries the listing and whose
|
|
43
|
+
* `fs.listing` model carries the entries per target.
|
|
44
|
+
*/
|
|
45
|
+
export async function ls_run(runOptions) {
|
|
46
|
+
const pathArgs = runOptions.paths ?? [];
|
|
47
|
+
const shouldRefresh = runOptions.refresh ?? false;
|
|
48
|
+
const options = {
|
|
49
|
+
long: runOptions.long ?? false,
|
|
50
|
+
human: runOptions.human ?? false,
|
|
51
|
+
oneColumn: runOptions.oneColumn ?? false,
|
|
52
|
+
sort: runOptions.sort ?? 'name',
|
|
53
|
+
reverse: runOptions.reverse ?? false,
|
|
54
|
+
directory: runOptions.directory ?? false,
|
|
36
55
|
};
|
|
37
56
|
let rendered = '';
|
|
38
57
|
let renderedErr = '';
|
|
@@ -64,6 +83,7 @@ export async function builtin_ls(args) {
|
|
|
64
83
|
}
|
|
65
84
|
}
|
|
66
85
|
let anyFailed = false;
|
|
86
|
+
const listings = [];
|
|
67
87
|
for (const target of targets) {
|
|
68
88
|
const envelope = await vfs.list(target, options);
|
|
69
89
|
rendered += envelope.rendered;
|
|
@@ -72,6 +92,13 @@ export async function builtin_ls(args) {
|
|
|
72
92
|
}
|
|
73
93
|
if (envelope.status === 'error') {
|
|
74
94
|
anyFailed = true;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Collect the entries for the model; vfs.list just populated the
|
|
98
|
+
// listing cache, so this second read is served from it.
|
|
99
|
+
const items = await vfs.data_get(target, options);
|
|
100
|
+
if (items.ok) {
|
|
101
|
+
listings.push({ path: target ?? await session.getCWD(), items: items.value });
|
|
75
102
|
}
|
|
76
103
|
}
|
|
77
104
|
// A failed listing is a failed command: aggregating error envelopes into an
|
|
@@ -80,6 +107,7 @@ export async function builtin_ls(args) {
|
|
|
80
107
|
process.exitCode = 1;
|
|
81
108
|
}
|
|
82
109
|
const result = { status: anyFailed ? 'error' : 'ok', rendered };
|
|
110
|
+
result.model = { kind: 'fs.listing', data: listings };
|
|
83
111
|
if (renderedErr.length > 0) {
|
|
84
112
|
result.renderedErr = renderedErr;
|
|
85
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/builtins/fs/ls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/builtins/fs/ls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
2
|
+
/** Outcome of one mkdir target, for the envelope model. */
|
|
3
|
+
export interface MkdirOutcome {
|
|
4
|
+
path: string;
|
|
5
|
+
created: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Typed invocation options for mkdir. */
|
|
8
|
+
export interface MkdirOptions {
|
|
9
|
+
/** Directory paths to create, absolute or relative to the session cwd. */
|
|
10
|
+
paths: string[];
|
|
11
|
+
}
|
|
2
12
|
/**
|
|
3
|
-
* Creates directories
|
|
13
|
+
* Creates directories: the shared typed core behind the parsed builtin and
|
|
14
|
+
* the typed API.
|
|
4
15
|
*
|
|
5
|
-
* @param
|
|
16
|
+
* @param options - The directories to create.
|
|
6
17
|
* @returns An envelope whose rendered text reports each directory and whose
|
|
7
18
|
* model lists per-target outcomes.
|
|
8
19
|
*/
|
|
20
|
+
export declare function mkdir_run(options: MkdirOptions): Promise<CommandEnvelope>;
|
|
21
|
+
/**
|
|
22
|
+
* Creates directories from parsed command-line arguments.
|
|
23
|
+
*
|
|
24
|
+
* @param args - Command line arguments (directory paths).
|
|
25
|
+
* @returns The envelope from {@link mkdir_run}.
|
|
26
|
+
*/
|
|
9
27
|
export declare function builtin_mkdir(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -8,13 +8,15 @@ import { path_resolve } from '../utils.js';
|
|
|
8
8
|
import { files_mkdir as chefs_mkdir_cmd } from '@fnndsc/chili/commands/fs/mkdir.js';
|
|
9
9
|
import { mkdir_render } from '@fnndsc/chili/views/fs.js';
|
|
10
10
|
/**
|
|
11
|
-
* Creates directories
|
|
11
|
+
* Creates directories: the shared typed core behind the parsed builtin and
|
|
12
|
+
* the typed API.
|
|
12
13
|
*
|
|
13
|
-
* @param
|
|
14
|
+
* @param options - The directories to create.
|
|
14
15
|
* @returns An envelope whose rendered text reports each directory and whose
|
|
15
16
|
* model lists per-target outcomes.
|
|
16
17
|
*/
|
|
17
|
-
export async function
|
|
18
|
+
export async function mkdir_run(options) {
|
|
19
|
+
const args = options.paths;
|
|
18
20
|
if (args.length === 0) {
|
|
19
21
|
return envelope_error('', undefined, `${chalk.red('Usage: mkdir <directory> [directory...]')}\n`);
|
|
20
22
|
}
|
|
@@ -49,4 +51,13 @@ export async function builtin_mkdir(args) {
|
|
|
49
51
|
}
|
|
50
52
|
return envelope_ok(rendered, model);
|
|
51
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates directories from parsed command-line arguments.
|
|
56
|
+
*
|
|
57
|
+
* @param args - Command line arguments (directory paths).
|
|
58
|
+
* @returns The envelope from {@link mkdir_run}.
|
|
59
|
+
*/
|
|
60
|
+
export async function builtin_mkdir(args) {
|
|
61
|
+
return mkdir_run({ paths: args });
|
|
62
|
+
}
|
|
52
63
|
//# sourceMappingURL=mkdir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mkdir.js","sourceRoot":"","sources":["../../../src/builtins/fs/mkdir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"mkdir.js","sourceRoot":"","sources":["../../../src/builtins/fs/mkdir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAczD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAqB;IACnD,MAAM,IAAI,GAAa,OAAO,CAAC,KAAK,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,IAAI,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,QAAQ,GAAW,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,OAAO,GAAY,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;YAC3D,QAAQ,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAEtD,wCAAwC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAW,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;gBACtF,MAAM,SAAS,GAAc,aAAa,EAAE,CAAC;gBAC7C,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,WAAW,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAqB,EAAW,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,MAAM,KAAK,GAA2C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3F,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAoB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QAChG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/builtins/fs/mv.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
2
|
+
/** Outcome of one move source, for the envelope model. */
|
|
3
|
+
export interface MvOutcome {
|
|
4
|
+
source: string;
|
|
5
|
+
moved: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Model payload for the fs.mv envelope. */
|
|
8
|
+
export interface MvModelData {
|
|
9
|
+
dest: string;
|
|
10
|
+
outcomes: MvOutcome[];
|
|
11
|
+
moved: number;
|
|
12
|
+
failed: number;
|
|
13
|
+
}
|
|
2
14
|
/**
|
|
3
15
|
* Moves or renames a file or directory.
|
|
4
16
|
* Supports multiple sources when destination is a directory.
|
|
@@ -8,3 +20,19 @@ import { CommandEnvelope } from '@fnndsc/cumin';
|
|
|
8
20
|
* whose model carries per-source outcomes.
|
|
9
21
|
*/
|
|
10
22
|
export declare function builtin_mv(args: string[]): Promise<CommandEnvelope>;
|
|
23
|
+
/** Typed invocation options for mv. */
|
|
24
|
+
export interface MvOptions {
|
|
25
|
+
/** Source paths, absolute or relative to the session cwd. */
|
|
26
|
+
sources: string[];
|
|
27
|
+
/** Destination path (a directory when several sources are given). */
|
|
28
|
+
dest: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Moves or renames files or directories: the shared typed core behind the
|
|
32
|
+
* parsed builtin and the typed API.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Sources and destination.
|
|
35
|
+
* @returns An envelope whose rendered text reports results and whose
|
|
36
|
+
* `fs.mv` model carries per-source outcomes.
|
|
37
|
+
*/
|
|
38
|
+
export declare function mv_run(options: MvOptions): Promise<CommandEnvelope>;
|
package/dist/builtins/fs/mv.js
CHANGED
|
@@ -19,12 +19,26 @@ import { mv_render } from '@fnndsc/chili/views/fs.js';
|
|
|
19
19
|
export async function builtin_mv(args) {
|
|
20
20
|
const parsed = commandArgs_process(args);
|
|
21
21
|
const pathArgs = parsed._;
|
|
22
|
-
|
|
22
|
+
// Last arg is destination, all others are sources
|
|
23
|
+
return mv_run({
|
|
24
|
+
sources: pathArgs.slice(0, -1),
|
|
25
|
+
dest: pathArgs.length > 0 ? pathArgs[pathArgs.length - 1] : '',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Moves or renames files or directories: the shared typed core behind the
|
|
30
|
+
* parsed builtin and the typed API.
|
|
31
|
+
*
|
|
32
|
+
* @param options - Sources and destination.
|
|
33
|
+
* @returns An envelope whose rendered text reports results and whose
|
|
34
|
+
* `fs.mv` model carries per-source outcomes.
|
|
35
|
+
*/
|
|
36
|
+
export async function mv_run(options) {
|
|
37
|
+
const sources = options.sources;
|
|
38
|
+
const dest = options.dest;
|
|
39
|
+
if (sources.length === 0 || dest === '') {
|
|
23
40
|
return envelope_error(`${chalk.red('Usage: mv <source...> <dest>')}\n`);
|
|
24
41
|
}
|
|
25
|
-
// Last arg is destination, all others are sources
|
|
26
|
-
const dest = pathArgs[pathArgs.length - 1];
|
|
27
|
-
const sources = pathArgs.slice(0, -1);
|
|
28
42
|
const destPath = await path_resolve(dest);
|
|
29
43
|
const listCache = listCache_get();
|
|
30
44
|
let successCount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mv.js","sourceRoot":"","sources":["../../../src/builtins/fs/mv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAc,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAgBtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,MAAM,GAAe,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAa,MAAM,CAAC,CAAa,CAAC;IAEhD,
|
|
1
|
+
{"version":3,"file":"mv.js","sourceRoot":"","sources":["../../../src/builtins/fs/mv.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,3 +8,16 @@ import { CommandEnvelope } from '@fnndsc/cumin';
|
|
|
8
8
|
* carries the raw path.
|
|
9
9
|
*/
|
|
10
10
|
export declare function builtin_pwd(args?: string[]): Promise<CommandEnvelope>;
|
|
11
|
+
/** Typed invocation options for pwd. */
|
|
12
|
+
export interface PwdOptions {
|
|
13
|
+
/** Replace feed/plugin path segments with their human titles. */
|
|
14
|
+
titles?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Reports the current working directory: the shared typed core behind the
|
|
18
|
+
* parsed builtin and the typed API.
|
|
19
|
+
*
|
|
20
|
+
* @param options - Title substitution preference.
|
|
21
|
+
* @returns An envelope carrying the fs.cwd model.
|
|
22
|
+
*/
|
|
23
|
+
export declare function pwd_run(options?: PwdOptions): Promise<CommandEnvelope>;
|
package/dist/builtins/fs/pwd.js
CHANGED
|
@@ -14,7 +14,17 @@ import { feeds_list, pluginInstances_list } from '@fnndsc/salsa';
|
|
|
14
14
|
* carries the raw path.
|
|
15
15
|
*/
|
|
16
16
|
export async function builtin_pwd(args = []) {
|
|
17
|
-
|
|
17
|
+
return pwd_run({ titles: args.includes('--title') });
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Reports the current working directory: the shared typed core behind the
|
|
21
|
+
* parsed builtin and the typed API.
|
|
22
|
+
*
|
|
23
|
+
* @param options - Title substitution preference.
|
|
24
|
+
* @returns An envelope carrying the fs.cwd model.
|
|
25
|
+
*/
|
|
26
|
+
export async function pwd_run(options = {}) {
|
|
27
|
+
const showTitles = options.titles ?? false;
|
|
18
28
|
const cwd = await session.getCWD();
|
|
19
29
|
const shown = showTitles ? await path_withTitles(cwd) : cwd;
|
|
20
30
|
return envelope_ok(`${shown}\n`, { kind: 'fs.cwd', data: { path: cwd, shown } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAyC,WAAW,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAiB,EAAE;IACnD,MAAM,
|
|
1
|
+
{"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAyC,WAAW,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAiB,EAAE;IACnD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAsB,EAAE;IACpD,MAAM,UAAU,GAAY,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACpD,MAAM,GAAG,GAAW,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAW,UAAU,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,OAAO,WAAW,CAAC,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,KAAK,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAa,MAAM,OAAO,CAAC,GAAG,CAC/C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAY,EAAmB,EAAE;QAChD,uBAAuB;QACvB,MAAM,SAAS,GAA4B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAgC,MAAM,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzF,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpE,MAAM,IAAI,GAA4B,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5D,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC1C,OAAO,IAAI,CAAC,IAAI,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,yBAAyB;YAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAA4B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3E,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,gBAAgB,GAAW,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,YAAY,GAAgC,MAAM,oBAAoB,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjH,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChF,MAAM,QAAQ,GAA4B,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACpE,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,UAAU,GAAW,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChG,MAAM,aAAa,GAAW,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzG,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;oBACxE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,yBAAyB;YAC3B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,+BAA+B;IAC9C,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/builtins/fs/rm.d.ts
CHANGED
|
@@ -24,6 +24,12 @@ export declare function rmArgs_parse(args: string[]): RmArgs;
|
|
|
24
24
|
* @returns The summary string, or null if there is nothing to summarise.
|
|
25
25
|
*/
|
|
26
26
|
export declare function rmSummary_format(successCount: number, failCount: number): string | null;
|
|
27
|
+
/** Outcome of one removal target, for the envelope model. */
|
|
28
|
+
export interface RmOutcome {
|
|
29
|
+
path: string;
|
|
30
|
+
removed: boolean;
|
|
31
|
+
skipped: boolean;
|
|
32
|
+
}
|
|
27
33
|
/**
|
|
28
34
|
* Removes one or more files or directories.
|
|
29
35
|
*
|
|
@@ -35,3 +41,11 @@ export declare function rmSummary_format(successCount: number, failCount: number
|
|
|
35
41
|
* @returns An envelope whose model lists per-target outcomes.
|
|
36
42
|
*/
|
|
37
43
|
export declare function builtin_rm(args: string[]): Promise<CommandEnvelope>;
|
|
44
|
+
/**
|
|
45
|
+
* Removes files or directories: the shared typed core behind the parsed
|
|
46
|
+
* builtin and the typed API.
|
|
47
|
+
*
|
|
48
|
+
* @param runArgs - Flags and target paths.
|
|
49
|
+
* @returns An envelope whose model lists per-target outcomes.
|
|
50
|
+
*/
|
|
51
|
+
export declare function rm_run(runArgs: RmArgs): Promise<CommandEnvelope>;
|
package/dist/builtins/fs/rm.js
CHANGED
|
@@ -96,7 +96,17 @@ export function rmSummary_format(successCount, failCount) {
|
|
|
96
96
|
* @returns An envelope whose model lists per-target outcomes.
|
|
97
97
|
*/
|
|
98
98
|
export async function builtin_rm(args) {
|
|
99
|
-
|
|
99
|
+
return rm_run(rmArgs_parse(args));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Removes files or directories: the shared typed core behind the parsed
|
|
103
|
+
* builtin and the typed API.
|
|
104
|
+
*
|
|
105
|
+
* @param runArgs - Flags and target paths.
|
|
106
|
+
* @returns An envelope whose model lists per-target outcomes.
|
|
107
|
+
*/
|
|
108
|
+
export async function rm_run(runArgs) {
|
|
109
|
+
const { recursive, force, interactive, paths } = runArgs;
|
|
100
110
|
if (paths.length === 0) {
|
|
101
111
|
return envelope_error('', undefined, `${chalk.red('Usage: rm [-rf] <path> [path...]')}\n`);
|
|
102
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
2
|
+
/** Outcome of one touch target, for the envelope model. */
|
|
3
|
+
export interface TouchOutcome {
|
|
4
|
+
path: string;
|
|
5
|
+
created: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Typed invocation options for touch. */
|
|
8
|
+
export interface TouchRunOptions {
|
|
9
|
+
/** File paths to create or update, absolute or relative to the session cwd. */
|
|
10
|
+
paths: string[];
|
|
11
|
+
/** Literal content to write into the (single) target file. */
|
|
12
|
+
contents?: string;
|
|
13
|
+
/** Local file whose content is uploaded into the (single) target file. */
|
|
14
|
+
contentsFromFile?: string;
|
|
15
|
+
}
|
|
2
16
|
/**
|
|
3
|
-
* Creates empty files or updates timestamps
|
|
17
|
+
* Creates empty files or updates timestamps: the shared typed core behind
|
|
18
|
+
* the parsed builtin and the typed API.
|
|
4
19
|
*
|
|
5
|
-
* @param
|
|
20
|
+
* @param runOptions - Target paths and optional content source.
|
|
6
21
|
* @returns An envelope whose rendered text reports each created file and
|
|
7
22
|
* whose model lists per-target outcomes.
|
|
8
23
|
*/
|
|
24
|
+
export declare function touch_run(runOptions: TouchRunOptions): Promise<CommandEnvelope>;
|
|
25
|
+
/**
|
|
26
|
+
* Creates files from parsed command-line arguments.
|
|
27
|
+
*
|
|
28
|
+
* @param args - Command line arguments (paths and --withContents flags).
|
|
29
|
+
* @returns The envelope from {@link touch_run}.
|
|
30
|
+
*/
|
|
9
31
|
export declare function builtin_touch(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -9,30 +9,29 @@ import { commandArgs_process, path_resolve, error_stripDebugPrefix } from '../ut
|
|
|
9
9
|
import { files_touch as chefs_touch_cmd } from '@fnndsc/chili/commands/fs/touch.js';
|
|
10
10
|
import { touch_render } from '@fnndsc/chili/views/fs.js';
|
|
11
11
|
/**
|
|
12
|
-
* Creates empty files or updates timestamps
|
|
12
|
+
* Creates empty files or updates timestamps: the shared typed core behind
|
|
13
|
+
* the parsed builtin and the typed API.
|
|
13
14
|
*
|
|
14
|
-
* @param
|
|
15
|
+
* @param runOptions - Target paths and optional content source.
|
|
15
16
|
* @returns An envelope whose rendered text reports each created file and
|
|
16
17
|
* whose model lists per-target outcomes.
|
|
17
18
|
*/
|
|
18
|
-
export async function
|
|
19
|
-
const
|
|
20
|
-
const pathArgs = parsed._;
|
|
19
|
+
export async function touch_run(runOptions) {
|
|
20
|
+
const pathArgs = runOptions.paths;
|
|
21
21
|
if (pathArgs.length === 0) {
|
|
22
22
|
return envelope_error('', undefined, `${chalk.red('Usage: touch [--withContents <string>] [--withContentsFromFile <file>] <file>')}\n`);
|
|
23
23
|
}
|
|
24
|
-
// Build options from parsed flags
|
|
25
24
|
const options = {};
|
|
26
|
-
if (
|
|
27
|
-
options.withContents =
|
|
25
|
+
if (runOptions.contents) {
|
|
26
|
+
options.withContents = runOptions.contents;
|
|
28
27
|
}
|
|
29
|
-
if (
|
|
30
|
-
options.withContentsFromFile =
|
|
28
|
+
if (runOptions.contentsFromFile) {
|
|
29
|
+
options.withContentsFromFile = runOptions.contentsFromFile;
|
|
31
30
|
}
|
|
32
|
-
// Only process the first file argument when
|
|
31
|
+
// Only process the first file argument when injecting content
|
|
33
32
|
const filesToTouch = (options.withContents || options.withContentsFromFile)
|
|
34
|
-
? [pathArgs[0]]
|
|
35
|
-
: pathArgs;
|
|
33
|
+
? [pathArgs[0]]
|
|
34
|
+
: pathArgs;
|
|
36
35
|
let rendered = '';
|
|
37
36
|
let renderedErr = '';
|
|
38
37
|
const outcomes = [];
|
|
@@ -73,4 +72,18 @@ export async function builtin_touch(args) {
|
|
|
73
72
|
}
|
|
74
73
|
return envelope_ok(rendered, model);
|
|
75
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Creates files from parsed command-line arguments.
|
|
77
|
+
*
|
|
78
|
+
* @param args - Command line arguments (paths and --withContents flags).
|
|
79
|
+
* @returns The envelope from {@link touch_run}.
|
|
80
|
+
*/
|
|
81
|
+
export async function builtin_touch(args) {
|
|
82
|
+
const parsed = commandArgs_process(args);
|
|
83
|
+
return touch_run({
|
|
84
|
+
paths: parsed._,
|
|
85
|
+
contents: parsed['withContents'] !== undefined ? String(parsed['withContents']) : undefined,
|
|
86
|
+
contentsFromFile: parsed['withContentsFromFile'] !== undefined ? String(parsed['withContentsFromFile']) : undefined,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
76
89
|
//# sourceMappingURL=touch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAmB,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAExG,OAAO,EAAc,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAgB,MAAM,oCAAoC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
+
import { folderUID_get } from '@fnndsc/salsa';
|
|
9
|
+
export { folderUID_get };
|
|
10
|
+
/** Compatibility alias for cumin's tag_extractValue, the one tag unwrapper. */
|
|
11
|
+
export declare const pacs_tagValueExtract: (val: unknown) => string;
|
|
8
12
|
/**
|
|
9
13
|
* Minimal series info collected from a decoded PACS query result.
|
|
10
14
|
*/
|
|
@@ -25,14 +29,6 @@ export interface SeriesCubePath {
|
|
|
25
29
|
folderPath: string;
|
|
26
30
|
fileCount: number;
|
|
27
31
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Safely unwraps a DICOM tag value (may be `{value: ...}` wrapper or plain string/number).
|
|
30
|
-
*/
|
|
31
|
-
export declare function pacs_tagValueExtract(val: unknown): string;
|
|
32
|
-
/**
|
|
33
|
-
* Extracts the UID portion of a VFS folder name (`<prefix>_<uid>_<label>`).
|
|
34
|
-
*/
|
|
35
|
-
export declare function folderUID_get(folder: string, prefix: string): string;
|
|
36
32
|
/**
|
|
37
33
|
* Resolves a PACS server identifier string from a numeric ID or context.
|
|
38
34
|
*
|
|
@@ -5,28 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { errorStack, pacsQuery_resultDecode, pacsServers_list, chrisContext, Context, seriesStorage_resolve } from '@fnndsc/cumin';
|
|
9
|
-
import { queryId_extractFromFolder } from '@fnndsc/salsa';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export function pacs_tagValueExtract(val) {
|
|
14
|
-
if (val && typeof val === 'object') {
|
|
15
|
-
const r = val;
|
|
16
|
-
if ('value' in r)
|
|
17
|
-
return String(r.value ?? '');
|
|
18
|
-
if ('Value' in r && Array.isArray(r.Value) && r.Value.length > 0)
|
|
19
|
-
return String(r.Value[0] ?? '');
|
|
20
|
-
}
|
|
21
|
-
return String(val ?? '');
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Extracts the UID portion of a VFS folder name (`<prefix>_<uid>_<label>`).
|
|
25
|
-
*/
|
|
26
|
-
export function folderUID_get(folder, prefix) {
|
|
27
|
-
const withoutPrefix = folder.replace(new RegExp(`^${prefix}_`), '');
|
|
28
|
-
return withoutPrefix.split('_')[0];
|
|
29
|
-
}
|
|
8
|
+
import { errorStack, pacsQuery_resultDecode, pacsServers_list, chrisContext, Context, seriesStorage_resolve, tag_extractValue, studies_extractFromDecoded, series_extractFromStudy, } from '@fnndsc/cumin';
|
|
9
|
+
import { queryId_extractFromFolder, queryLabel_extractFromFolder, folderUID_get } from '@fnndsc/salsa';
|
|
10
|
+
export { folderUID_get };
|
|
11
|
+
/** Compatibility alias for cumin's tag_extractValue, the one tag unwrapper. */
|
|
12
|
+
export const pacs_tagValueExtract = tag_extractValue;
|
|
30
13
|
/**
|
|
31
14
|
* Resolves a PACS server identifier string from a numeric ID or context.
|
|
32
15
|
*
|
|
@@ -78,26 +61,13 @@ export async function pacs_seriesCollect(pathStr, fallbackPacsName, callerTag =
|
|
|
78
61
|
errorStack.stack_push('error', `${callerTag}: Cannot parse query ID from: ${queryFolder}`);
|
|
79
62
|
return [];
|
|
80
63
|
}
|
|
81
|
-
const queryLabel = queryFolder
|
|
64
|
+
const queryLabel = queryLabel_extractFromFolder(queryFolder);
|
|
82
65
|
const decodedResult = await pacsQuery_resultDecode(queryId);
|
|
83
66
|
if (!decodedResult.ok || !decodedResult.value.json) {
|
|
84
67
|
errorStack.stack_push('error', `${callerTag}: Failed to decode results for query ${queryId}`);
|
|
85
68
|
return [];
|
|
86
69
|
}
|
|
87
|
-
const
|
|
88
|
-
let studiesSource;
|
|
89
|
-
if (raw && typeof raw === 'object') {
|
|
90
|
-
const r = raw;
|
|
91
|
-
studiesSource =
|
|
92
|
-
'studies' in r ? r.studies :
|
|
93
|
-
'Studies' in r ? r.Studies :
|
|
94
|
-
'results' in r ? r.results :
|
|
95
|
-
raw;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
studiesSource = raw;
|
|
99
|
-
}
|
|
100
|
-
const studies = (Array.isArray(studiesSource) ? studiesSource : [studiesSource]);
|
|
70
|
+
const studies = studies_extractFromDecoded(decodedResult.value.json);
|
|
101
71
|
const targetStudyUID = parts.length >= 5
|
|
102
72
|
? folderUID_get(parts[4], 'Study')
|
|
103
73
|
: null;
|
|
@@ -108,26 +78,23 @@ export async function pacs_seriesCollect(pathStr, fallbackPacsName, callerTag =
|
|
|
108
78
|
for (const studyObj of studies) {
|
|
109
79
|
if (!studyObj || typeof studyObj !== 'object')
|
|
110
80
|
continue;
|
|
111
|
-
const studyUID =
|
|
81
|
+
const studyUID = tag_extractValue(studyObj.StudyInstanceUID ?? studyObj.uid);
|
|
112
82
|
if (targetStudyUID && studyUID !== targetStudyUID)
|
|
113
83
|
continue;
|
|
114
|
-
const studyLabel =
|
|
115
|
-
const retrieveAETitle =
|
|
84
|
+
const studyLabel = tag_extractValue(studyObj.StudyDescription ?? 'Study').replace(/[\s/]/g, '_');
|
|
85
|
+
const retrieveAETitle = tag_extractValue(studyObj.RetrieveAETitle ?? '');
|
|
116
86
|
const pacsName = retrieveAETitle || fallbackPacsName;
|
|
117
|
-
const seriesArr = (
|
|
118
|
-
Array.isArray(studyObj.Series) ? studyObj.Series :
|
|
119
|
-
Array.isArray(studyObj.results) ? studyObj.results :
|
|
120
|
-
[]);
|
|
87
|
+
const seriesArr = series_extractFromStudy(studyObj);
|
|
121
88
|
for (const seriesObj of seriesArr) {
|
|
122
89
|
if (!seriesObj || typeof seriesObj !== 'object')
|
|
123
90
|
continue;
|
|
124
|
-
const seriesUID =
|
|
91
|
+
const seriesUID = tag_extractValue(seriesObj.SeriesInstanceUID ?? seriesObj.uid);
|
|
125
92
|
if (!seriesUID)
|
|
126
93
|
continue;
|
|
127
94
|
if (targetSeriesUID && seriesUID !== targetSeriesUID)
|
|
128
95
|
continue;
|
|
129
|
-
const seriesLabel =
|
|
130
|
-
const expectedFiles = Number(
|
|
96
|
+
const seriesLabel = tag_extractValue(seriesObj.SeriesDescription ?? 'Series').replace(/[\s/]/g, '_');
|
|
97
|
+
const expectedFiles = Number(tag_extractValue(seriesObj.NumberOfSeriesRelatedInstances ?? '0')) || 0;
|
|
131
98
|
infos.push({
|
|
132
99
|
label: `${queryLabel}|${studyLabel}|${seriesLabel}`,
|
|
133
100
|
seriesLabel,
|