@fnndsc/brasa 0.56.2 → 0.56.4
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/buildinfo.json +1 -1
- package/dist/builtins/berth/berth.d.ts +11 -0
- package/dist/builtins/berth/berth.js +53 -22
- package/dist/builtins/berth/berth.js.map +1 -1
- package/dist/builtins/berth/berthCube.d.ts +17 -2
- package/dist/builtins/berth/berthCube.js +22 -10
- package/dist/builtins/berth/berthCube.js.map +1 -1
- package/dist/builtins/debug.d.ts +24 -3
- package/dist/builtins/debug.js +66 -13
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/fs/acl.args.d.ts +5 -38
- package/dist/builtins/fs/acl.args.js +6 -72
- package/dist/builtins/fs/acl.args.js.map +1 -1
- package/dist/builtins/fs/acl.d.ts +100 -10
- package/dist/builtins/fs/acl.js +222 -68
- package/dist/builtins/fs/acl.js.map +1 -1
- package/dist/builtins/fs/cat.args.d.ts +14 -15
- package/dist/builtins/fs/cat.args.js +13 -40
- package/dist/builtins/fs/cat.args.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +40 -3
- package/dist/builtins/fs/cat.js +89 -10
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +24 -6
- package/dist/builtins/fs/cd.js +71 -18
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/configWrite.d.ts +24 -8
- package/dist/builtins/fs/configWrite.js +77 -36
- package/dist/builtins/fs/configWrite.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +39 -4
- package/dist/builtins/fs/cp.js +120 -55
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +12 -1
- package/dist/builtins/fs/download.js +24 -4
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +59 -33
- package/dist/builtins/fs/du.js +111 -79
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +19 -4
- package/dist/builtins/fs/edit.js +77 -16
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/find.d.ts +25 -0
- package/dist/builtins/fs/find.js +76 -5
- package/dist/builtins/fs/find.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +28 -18
- package/dist/builtins/fs/mkdir.js +95 -66
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +34 -4
- package/dist/builtins/fs/mv.js +129 -64
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.args.d.ts +56 -17
- package/dist/builtins/fs/pull.args.js +16 -66
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +62 -0
- package/dist/builtins/fs/pull.js +86 -22
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +19 -5
- package/dist/builtins/fs/pwd.js +62 -8
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +58 -21
- package/dist/builtins/fs/rm.js +99 -82
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/rmdir.d.ts +29 -11
- package/dist/builtins/fs/rmdir.js +87 -36
- package/dist/builtins/fs/rmdir.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +44 -9
- package/dist/builtins/fs/touch.js +91 -27
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/transferJobs.d.ts +64 -0
- package/dist/builtins/fs/transferJobs.js +98 -0
- package/dist/builtins/fs/transferJobs.js.map +1 -0
- package/dist/builtins/fs/tree.d.ts +36 -9
- package/dist/builtins/fs/tree.js +126 -36
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +35 -3
- package/dist/builtins/fs/upload.js +99 -14
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/fs/xattr.args.d.ts +12 -33
- package/dist/builtins/fs/xattr.args.js +17 -95
- package/dist/builtins/fs/xattr.args.js.map +1 -1
- package/dist/builtins/fs/xattr.d.ts +98 -8
- package/dist/builtins/fs/xattr.js +163 -24
- package/dist/builtins/fs/xattr.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +201 -5
- package/dist/builtins/games/bytes.js +255 -54
- package/dist/builtins/games/bytes.js.map +1 -1
- package/dist/builtins/games/chimes.d.ts +180 -3
- package/dist/builtins/games/chimes.js +203 -26
- package/dist/builtins/games/chimes.js.map +1 -1
- package/dist/builtins/games/chrislab.d.ts +101 -3
- package/dist/builtins/games/chrislab.js +117 -17
- package/dist/builtins/games/chrislab.js.map +1 -1
- package/dist/builtins/games/cowsay.d.ts +93 -2
- package/dist/builtins/games/cowsay.js +90 -31
- package/dist/builtins/games/cowsay.js.map +1 -1
- package/dist/builtins/games/figlet.d.ts +70 -2
- package/dist/builtins/games/figlet.js +83 -6
- package/dist/builtins/games/figlet.js.map +1 -1
- package/dist/builtins/games/lab.d.ts +104 -5
- package/dist/builtins/games/lab.js +144 -6
- package/dist/builtins/games/lab.js.map +1 -1
- package/dist/builtins/games/lolcat.d.ts +61 -1
- package/dist/builtins/games/lolcat.js +59 -24
- package/dist/builtins/games/lolcat.js.map +1 -1
- package/dist/builtins/games/morse.d.ts +36 -1
- package/dist/builtins/games/morse.js +50 -2
- package/dist/builtins/games/morse.js.map +1 -1
- package/dist/builtins/games/numbers.d.ts +241 -5
- package/dist/builtins/games/numbers.js +298 -23
- package/dist/builtins/games/numbers.js.map +1 -1
- package/dist/builtins/games/play.d.ts +96 -6
- package/dist/builtins/games/play.js +137 -6
- package/dist/builtins/games/play.js.map +1 -1
- package/dist/builtins/games/qr.d.ts +40 -1
- package/dist/builtins/games/qr.js +51 -2
- package/dist/builtins/games/qr.js.map +1 -1
- package/dist/builtins/games/show.d.ts +131 -6
- package/dist/builtins/games/show.js +208 -20
- package/dist/builtins/games/show.js.map +1 -1
- package/dist/builtins/games/sky.d.ts +178 -4
- package/dist/builtins/games/sky.js +228 -12
- package/dist/builtins/games/sky.js.map +1 -1
- package/dist/builtins/games/text.d.ts +258 -7
- package/dist/builtins/games/text.js +310 -29
- package/dist/builtins/games/text.js.map +1 -1
- package/dist/builtins/games/trek.d.ts +67 -3
- package/dist/builtins/games/trek.js +63 -10
- package/dist/builtins/games/trek.js.map +1 -1
- package/dist/builtins/games/wtf.d.ts +58 -1
- package/dist/builtins/games/wtf.js +67 -6
- package/dist/builtins/games/wtf.js.map +1 -1
- package/dist/builtins/help.d.ts +38 -2
- package/dist/builtins/help.js +76 -769
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/helpSections.js +4 -1
- package/dist/builtins/helpSections.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +36 -3
- package/dist/builtins/net/connect.js +84 -26
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +49 -5
- package/dist/builtins/net/cubepath.js +69 -27
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +13 -4
- package/dist/builtins/net/logout.js +49 -3
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/netstat.d.ts +29 -4
- package/dist/builtins/net/netstat.js +64 -23
- package/dist/builtins/net/netstat.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +169 -15
- package/dist/builtins/net/pacs.js +92 -33
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/query.args.d.ts +95 -0
- package/dist/builtins/net/query.args.js +26 -0
- package/dist/builtins/net/query.args.js.map +1 -0
- package/dist/builtins/net/query.d.ts +98 -5
- package/dist/builtins/net/query.js +89 -83
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +5 -3
- package/dist/builtins/net/status.js +5 -12
- package/dist/builtins/net/status.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +82 -3
- package/dist/builtins/parametersofplugin.js +79 -23
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/proc.d.ts +210 -3
- package/dist/builtins/proc.js +210 -119
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +67 -3
- package/dist/builtins/res/compute.js +121 -35
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/dicom.d.ts +52 -3
- package/dist/builtins/res/dicom.js +82 -34
- package/dist/builtins/res/dicom.js.map +1 -1
- package/dist/builtins/res/expect.d.ts +52 -3
- package/dist/builtins/res/expect.js +92 -29
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +475 -3
- package/dist/builtins/res/feed.js +253 -158
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.d.ts +517 -3
- package/dist/builtins/res/files.js +124 -44
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +113 -3
- package/dist/builtins/res/gather.js +153 -44
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.process.d.ts +27 -19
- package/dist/builtins/res/gather.process.js +29 -59
- package/dist/builtins/res/gather.process.js.map +1 -1
- package/dist/builtins/res/group.d.ts +284 -3
- package/dist/builtins/res/group.js +147 -76
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/image.d.ts +30 -2
- package/dist/builtins/res/image.js +62 -10
- package/dist/builtins/res/image.js.map +1 -1
- package/dist/builtins/res/play.d.ts +71 -9
- package/dist/builtins/res/play.js +124 -82
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +307 -2
- package/dist/builtins/res/plugininstance.js +122 -50
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +244 -2
- package/dist/builtins/res/pluginmeta.js +98 -40
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/record.d.ts +37 -3
- package/dist/builtins/res/record.js +127 -57
- package/dist/builtins/res/record.js.map +1 -1
- package/dist/builtins/res/resourceList.d.ts +136 -0
- package/dist/builtins/res/resourceList.js +51 -0
- package/dist/builtins/res/resourceList.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +244 -3
- package/dist/builtins/res/tag.js +97 -41
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +122 -3
- package/dist/builtins/res/user.js +83 -21
- package/dist/builtins/res/user.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +244 -2
- package/dist/builtins/res/workflow.js +97 -40
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +85 -3
- package/dist/builtins/store.js +135 -68
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/apropos.d.ts +80 -5
- package/dist/builtins/sys/apropos.js +121 -15
- package/dist/builtins/sys/apropos.js.map +1 -1
- package/dist/builtins/sys/cal.d.ts +44 -5
- package/dist/builtins/sys/cal.js +57 -10
- package/dist/builtins/sys/cal.js.map +1 -1
- package/dist/builtins/sys/command.d.ts +20 -0
- package/dist/builtins/sys/command.js +31 -0
- package/dist/builtins/sys/command.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +13 -3
- package/dist/builtins/sys/context.js +51 -4
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/builtins/sys/date.d.ts +56 -5
- package/dist/builtins/sys/date.js +63 -9
- package/dist/builtins/sys/date.js.map +1 -1
- package/dist/builtins/sys/echo.d.ts +63 -2
- package/dist/builtins/sys/echo.js +87 -8
- package/dist/builtins/sys/echo.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +27 -2
- package/dist/builtins/sys/fortune.js +44 -2
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/grep.d.ts +245 -11
- package/dist/builtins/sys/grep.js +418 -131
- package/dist/builtins/sys/grep.js.map +1 -1
- package/dist/builtins/sys/joblets.d.ts +66 -7
- package/dist/builtins/sys/joblets.js +101 -14
- package/dist/builtins/sys/joblets.js.map +1 -1
- package/dist/builtins/sys/motd.d.ts +37 -3
- package/dist/builtins/sys/motd.js +49 -8
- package/dist/builtins/sys/motd.js.map +1 -1
- package/dist/builtins/sys/notes.d.ts +75 -3
- package/dist/builtins/sys/notes.js +90 -29
- package/dist/builtins/sys/notes.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +24 -3
- package/dist/builtins/sys/physicalmode.js +68 -14
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/tasks.d.ts +74 -5
- package/dist/builtins/sys/tasks.js +102 -14
- package/dist/builtins/sys/tasks.js.map +1 -1
- package/dist/builtins/sys/textFilters.d.ts +673 -41
- package/dist/builtins/sys/textFilters.js +718 -263
- package/dist/builtins/sys/textFilters.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +24 -3
- package/dist/builtins/sys/timing.js +67 -14
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/variables.d.ts +70 -4
- package/dist/builtins/sys/variables.js +103 -31
- package/dist/builtins/sys/variables.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +27 -2
- package/dist/builtins/sys/version.js +48 -3
- package/dist/builtins/sys/version.js.map +1 -1
- package/dist/builtins/sys/weather.d.ts +92 -15
- package/dist/builtins/sys/weather.js +71 -45
- package/dist/builtins/sys/weather.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +38 -18
- package/dist/builtins/sys/whoami.js +112 -8
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +0 -37
- package/dist/builtins/utils.js +0 -86
- package/dist/builtins/utils.js.map +1 -1
- package/dist/chris/chrisCommands.js +58 -152
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/commandFallback.d.ts +12 -0
- package/dist/chris/commandFallback.js +47 -0
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/filesystem.js +7 -5
- package/dist/chris/filesystem.js.map +1 -1
- package/dist/chris/help.js +0 -1018
- package/dist/chris/help.js.map +1 -1
- package/dist/chris/kinds.d.ts +21 -0
- package/dist/chris/kinds.js +114 -2
- package/dist/chris/kinds.js.map +1 -1
- package/dist/chris/mounts.d.ts +4 -4
- package/dist/chris/mounts.js +9 -16
- package/dist/chris/mounts.js.map +1 -1
- package/dist/chris/navigation.d.ts +2 -3
- package/dist/chris/navigation.js +6 -20
- package/dist/chris/navigation.js.map +1 -1
- package/dist/chris/pacsResources.d.ts +259 -0
- package/dist/chris/pacsResources.js +168 -0
- package/dist/chris/pacsResources.js.map +1 -0
- package/dist/core/commandDeclaration.d.ts +97 -7
- package/dist/core/commandDeclaration.js +21 -0
- package/dist/core/commandDeclaration.js.map +1 -1
- package/dist/core/commandParse.js +65 -17
- package/dist/core/commandParse.js.map +1 -1
- package/dist/core/commandRegistry.d.ts +4 -3
- package/dist/core/commandRegistry.js +36 -8
- package/dist/core/commandRegistry.js.map +1 -1
- package/dist/core/commandSchema.js +5 -2
- package/dist/core/commandSchema.js.map +1 -1
- package/dist/core/commandUsage.d.ts +15 -0
- package/dist/core/commandUsage.js +59 -7
- package/dist/core/commandUsage.js.map +1 -1
- package/dist/core/coreCommands.js +63 -212
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/paths.d.ts +29 -1
- package/dist/core/paths.js +15 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/preprocess.d.ts +3 -4
- package/dist/core/preprocess.js +4 -5
- package/dist/core/preprocess.js.map +1 -1
- package/dist/lib/completer/declared.js +7 -4
- package/dist/lib/completer/declared.js.map +1 -1
- package/dist/lib/completer/index.js +2 -7
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/parser.d.ts +0 -8
- package/dist/lib/parser.js +0 -11
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +2 -1
- package/dist/lib/vfs/vfs.js +5 -4
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { command_declare } from '../core/commandDeclaration.js';
|
|
2
|
+
import { chiliCommand_run } from './chiliDelegate.js';
|
|
3
|
+
/** A resource listing's options, as chili's `list` takes them. */
|
|
4
|
+
const LIST_OPTIONS = {
|
|
5
|
+
page: { short: 'p', long: 'page', summary: 'Page size (default 20)', value: { name: 'size', kind: 'int', min: 1 } },
|
|
6
|
+
fields: { short: 'f', long: 'fields', summary: 'Comma-separated fields to display', value: { name: 'fields', kind: 'word' } },
|
|
7
|
+
search: { short: 's', long: 'search', summary: 'Search by comma-separated key:value pairs', value: { name: 'terms', kind: 'word' } },
|
|
8
|
+
sort: { long: 'sort', summary: 'Sort by field (name, size, date, owner, …)', value: { name: 'field', kind: 'word' } },
|
|
9
|
+
reverse: { short: 'r', long: 'reverse', summary: 'Reverse the sort order' },
|
|
10
|
+
table: { long: 'table', summary: 'Tabular output, with headers' },
|
|
11
|
+
csv: { long: 'csv', summary: 'CSV output (over --table)' },
|
|
12
|
+
};
|
|
13
|
+
/** A PACS server, as `--pacsserver` names one. */
|
|
14
|
+
const PACSSERVER_OPTION = { long: 'pacsserver', summary: 'The PACS server, by id or identifier (default: the context\'s)', value: { name: 'id', kind: 'word' } };
|
|
15
|
+
/**
|
|
16
|
+
* A parsed line written back as chili's words: the subcommand, each option
|
|
17
|
+
* given (`--long`, with its value), then the operands in order.
|
|
18
|
+
*
|
|
19
|
+
* @param grammar - The command's grammar.
|
|
20
|
+
* @param line - The line, parsed.
|
|
21
|
+
* @returns chili's words after the command.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* chiliWords_write(PACSQUERIES_GRAMMAR, { subcommand: 'decode', operands: { queryId: 7 }, options: { raw: true } }); // ['decode', '--raw', '7']
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function chiliWords_write(grammar, line) {
|
|
29
|
+
const scope = line.subcommand === null ? undefined : grammar.subcommands?.[line.subcommand];
|
|
30
|
+
const words = line.subcommand === null ? [] : [line.subcommand];
|
|
31
|
+
const options = Object.entries({ ...(scope?.options ?? {}), ...(grammar.options ?? {}) });
|
|
32
|
+
for (const [key, option] of options) {
|
|
33
|
+
const value = line.options[key];
|
|
34
|
+
const name = option.long !== undefined ? `--${option.long}` : `-${option.short ?? ''}`;
|
|
35
|
+
if (value === true)
|
|
36
|
+
words.push(name);
|
|
37
|
+
else if (typeof value === 'string' || typeof value === 'number')
|
|
38
|
+
words.push(name, String(value));
|
|
39
|
+
}
|
|
40
|
+
for (const operand of scope?.operands ?? grammar.operands ?? []) {
|
|
41
|
+
const value = line.operands[operand.name];
|
|
42
|
+
if (Array.isArray(value))
|
|
43
|
+
words.push(...value.map(String));
|
|
44
|
+
else if (value !== undefined)
|
|
45
|
+
words.push(String(value));
|
|
46
|
+
}
|
|
47
|
+
return words;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Runs a declared line through chili.
|
|
51
|
+
*
|
|
52
|
+
* @param name - The chili command.
|
|
53
|
+
* @param grammar - Its grammar.
|
|
54
|
+
* @param line - The line, parsed.
|
|
55
|
+
* @returns chili's captured output.
|
|
56
|
+
*/
|
|
57
|
+
function chiliLine_run(name, grammar, line) {
|
|
58
|
+
return chiliCommand_run(name, ['-s', ...chiliWords_write(grammar, line)]);
|
|
59
|
+
}
|
|
60
|
+
/** What a `pacsservers` line may hold. */
|
|
61
|
+
const PACSSERVERS_GRAMMAR = {
|
|
62
|
+
subcommands: {
|
|
63
|
+
list: { summary: 'List the PACS servers CUBE registers', options: LIST_OPTIONS },
|
|
64
|
+
fieldslist: { summary: 'List the fields a PACS server has' },
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* `pacsservers <list [options] | fieldslist>`: the declaration.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* commands_register({ declarations: [pacsserversCommand] }, 'backend');
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export const pacsserversCommand = command_declare({
|
|
76
|
+
name: 'pacsservers',
|
|
77
|
+
grammar: PACSSERVERS_GRAMMAR,
|
|
78
|
+
help: {
|
|
79
|
+
summary: 'List or inspect available PACS servers (context-aware)',
|
|
80
|
+
description: 'The PACS servers CUBE registers, as a resource listing: list them, or list the fields a server has.',
|
|
81
|
+
category: 'PACS',
|
|
82
|
+
examples: [
|
|
83
|
+
'pacsservers list # List PACS servers',
|
|
84
|
+
'pacsservers list --table # Table view',
|
|
85
|
+
'pacsservers fieldslist # Show fields',
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
// Listing servers changes nothing of the session.
|
|
89
|
+
holds: [],
|
|
90
|
+
handler: (line) => chiliLine_run('pacsservers', PACSSERVERS_GRAMMAR, line),
|
|
91
|
+
});
|
|
92
|
+
/** What a `pacsqueries` line may hold. */
|
|
93
|
+
const PACSQUERIES_GRAMMAR = {
|
|
94
|
+
subcommands: {
|
|
95
|
+
list: { summary: 'List the queries asked of the PACS server', options: { ...LIST_OPTIONS, pacsserver: PACSSERVER_OPTION } },
|
|
96
|
+
fieldslist: { summary: 'List the fields a PACS query has' },
|
|
97
|
+
create: {
|
|
98
|
+
summary: 'Create a PACS query against the current or given server',
|
|
99
|
+
operands: [{ name: 'query', kind: 'word', summary: 'The question: JSON, or comma-separated Key:Value pairs' }],
|
|
100
|
+
options: {
|
|
101
|
+
title: { long: 'title', summary: 'Title for the query', value: { name: 'title', kind: 'word' } },
|
|
102
|
+
description: { long: 'description', summary: 'A description for the query', value: { name: 'description', kind: 'word' } },
|
|
103
|
+
pacsserver: PACSSERVER_OPTION,
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
decode: {
|
|
107
|
+
summary: 'Decode the result payload of a PACS query',
|
|
108
|
+
operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }],
|
|
109
|
+
options: { raw: { long: 'raw', summary: 'Print the raw decoded JSON' } },
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* `pacsqueries <list | fieldslist | create <query> | decode <queryId>>`: the declaration.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* commands_register({ declarations: [pacsqueriesCommand] }, 'backend');
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export const pacsqueriesCommand = command_declare({
|
|
122
|
+
name: 'pacsqueries',
|
|
123
|
+
grammar: PACSQUERIES_GRAMMAR,
|
|
124
|
+
help: {
|
|
125
|
+
summary: 'Create or list PACS queries (uses current pacsserver context unless overridden)',
|
|
126
|
+
description: 'The queries asked of a PACS, as a resource listing: list them (for the context\'s server unless --pacsserver names one), list their fields, create one, or decode one\'s answer.',
|
|
127
|
+
category: 'PACS',
|
|
128
|
+
examples: [
|
|
129
|
+
'pacsqueries list # List for current pacsserver',
|
|
130
|
+
'pacsqueries list --pacsserver PACSDCM # Override server',
|
|
131
|
+
'pacsqueries create "PatientID:1234" --title "PID 1234"',
|
|
132
|
+
'pacsqueries decode <id> # Decode a query result',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
handler: (line) => chiliLine_run('pacsqueries', PACSQUERIES_GRAMMAR, line),
|
|
136
|
+
});
|
|
137
|
+
/** What a `pacsretrieve` line may hold. */
|
|
138
|
+
const PACSRETRIEVE_GRAMMAR = {
|
|
139
|
+
subcommands: {
|
|
140
|
+
pull: { summary: 'Retrieve a query\'s DICOM data into ChRIS', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
|
|
141
|
+
report: { summary: 'Show the status of a query\'s retrieve', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
|
|
142
|
+
cancel: { summary: 'Cancel (delete) a retrieve', operands: [{ name: 'retrieveId', kind: 'int', min: 1, summary: 'The retrieve\'s id' }] },
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* `pacsretrieve <pull <queryId> | report <queryId> | cancel <retrieveId>>`: the declaration.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```ts
|
|
150
|
+
* commands_register({ declarations: [pacsretrieveCommand] }, 'backend');
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export const pacsretrieveCommand = command_declare({
|
|
154
|
+
name: 'pacsretrieve',
|
|
155
|
+
grammar: PACSRETRIEVE_GRAMMAR,
|
|
156
|
+
help: {
|
|
157
|
+
summary: 'Pull or inspect DICOM retrieves for PACS queries',
|
|
158
|
+
description: 'A PACS query\'s retrieves: pull its DICOM data into ChRIS, report how far a retrieve has come, or cancel one.',
|
|
159
|
+
category: 'PACS',
|
|
160
|
+
examples: [
|
|
161
|
+
'pacsretrieve pull <queryId> # Pull data for a query',
|
|
162
|
+
'pacsretrieve report <queryId> # Show retrieve status',
|
|
163
|
+
'pacsretrieve cancel <retrieveId> # Cancel a retrieve',
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
handler: (line) => chiliLine_run('pacsretrieve', PACSRETRIEVE_GRAMMAR, line),
|
|
167
|
+
});
|
|
168
|
+
//# sourceMappingURL=pacsResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pacsResources.js","sourceRoot":"","sources":["../../src/chris/pacsResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* Key components:
|
|
19
19
|
* - CommandGrammar: subcommands, operands and options, as a value.
|
|
20
|
+
* - BareGrammar: the line with no subcommand, and its own options.
|
|
20
21
|
* - CommandDeclaration: the whole record for a parsed command.
|
|
21
22
|
* - ExpressionDeclaration: the record for an expression-grammar command.
|
|
22
23
|
* - CommandArguments: the typed object a handler receives.
|
|
@@ -82,11 +83,23 @@ export interface OperandGrammar extends ArgumentGrammar {
|
|
|
82
83
|
readonly optional?: boolean;
|
|
83
84
|
/** It takes every word left over: at most one operand of a grammar repeats. */
|
|
84
85
|
readonly repeat?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* It stands only when this option (by its property) is not given: grep's
|
|
88
|
+
* pattern operand is gone once `-e` gives the pattern, and every word is a
|
|
89
|
+
* file. Such an operand is optional.
|
|
90
|
+
*/
|
|
91
|
+
readonly unless?: string;
|
|
85
92
|
}
|
|
86
93
|
/** An option's value: an argument with the word usage shows for it (`<field>`). */
|
|
87
94
|
export interface OptionValueGrammar extends ArgumentGrammar {
|
|
88
95
|
/** The word usage shows: `--sort <field>`. */
|
|
89
96
|
readonly name: string;
|
|
97
|
+
/**
|
|
98
|
+
* The value may be left out (GNU's `optional_argument`): it is given only
|
|
99
|
+
* in the same word, `--highlight=python` or `-hpython`, and the option
|
|
100
|
+
* alone (`--highlight`) reads as the empty value.
|
|
101
|
+
*/
|
|
102
|
+
readonly optional?: boolean;
|
|
90
103
|
}
|
|
91
104
|
/**
|
|
92
105
|
* One option: `-l`, `--long`, or both; a switch, or one that takes a value.
|
|
@@ -107,6 +120,17 @@ export interface OptionGrammar {
|
|
|
107
120
|
readonly value?: OptionValueGrammar;
|
|
108
121
|
/** A value option given more than once keeps every value; otherwise the last one counts. */
|
|
109
122
|
readonly repeat?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* A value option given no value (last on the line, or before another
|
|
125
|
+
* option) is a question, not a refusal: the handler reads `null` and asks
|
|
126
|
+
* for the value (`query … --csv-to`).
|
|
127
|
+
*/
|
|
128
|
+
readonly asks?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* A word of digits after a dash (`-5`) is this option with that value, as
|
|
131
|
+
* `head -5` is `head -n 5`. At most one option of a line says so.
|
|
132
|
+
*/
|
|
133
|
+
readonly numeral?: boolean;
|
|
110
134
|
}
|
|
111
135
|
/** A grammar's options, by the property the handler reads them as. */
|
|
112
136
|
export type OptionsGrammar = {
|
|
@@ -148,9 +172,23 @@ export interface CommandGrammar {
|
|
|
148
172
|
readonly [word: string]: SubcommandGrammar;
|
|
149
173
|
};
|
|
150
174
|
/** What the command does with no subcommand; absent, a command with subcommands needs one. */
|
|
151
|
-
readonly bare?:
|
|
152
|
-
|
|
153
|
-
|
|
175
|
+
readonly bare?: BareGrammar;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* A command's line with no subcommand, when it has subcommands: what it does,
|
|
179
|
+
* and the options it takes of its own (`jobs --all`, as `jobs list --all`).
|
|
180
|
+
* The command's own options hold beside them.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* const bare: BareGrammar = { summary: 'List the first page', options: { all: { long: 'all', summary: 'Every page' } } };
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
export interface BareGrammar {
|
|
188
|
+
/** One line for help and the schema. */
|
|
189
|
+
readonly summary: string;
|
|
190
|
+
/** Its options. */
|
|
191
|
+
readonly options?: OptionsGrammar;
|
|
154
192
|
}
|
|
155
193
|
/**
|
|
156
194
|
* A command's help prose: what `help` shows beside the usage the grammar
|
|
@@ -208,12 +246,14 @@ type GlobNamesOf<G> = G extends {
|
|
|
208
246
|
type ExpandedOf<G> = {
|
|
209
247
|
readonly [N in GlobNamesOf<G>]: boolean;
|
|
210
248
|
};
|
|
211
|
-
/** An option's value: a switch is a boolean; a value option its value, or every value when it repeats. */
|
|
249
|
+
/** An option's value: a switch is a boolean; a value option its value, or every value when it repeats; null when it asks. */
|
|
212
250
|
type OptionValue<O> = O extends {
|
|
213
251
|
readonly value: infer V;
|
|
214
252
|
} ? O extends {
|
|
215
253
|
readonly repeat: true;
|
|
216
|
-
} ? KindValue<V>[] : KindValue<V> | undefined
|
|
254
|
+
} ? KindValue<V>[] : KindValue<V> | undefined | (O extends {
|
|
255
|
+
readonly asks: true;
|
|
256
|
+
} ? null : never) : boolean;
|
|
217
257
|
/** The options a grammar declares, by property. */
|
|
218
258
|
type OptionsOf<G> = G extends {
|
|
219
259
|
readonly options: infer M;
|
|
@@ -229,6 +269,23 @@ interface ParsedLine<S, G> {
|
|
|
229
269
|
/** For each operand that globs, whether its words came from pathname expansion. */
|
|
230
270
|
readonly expanded: ExpandedOf<S>;
|
|
231
271
|
}
|
|
272
|
+
/** The options the bare command takes of its own. */
|
|
273
|
+
type BareOptionsOf<G> = G extends {
|
|
274
|
+
readonly bare: {
|
|
275
|
+
readonly options: infer M;
|
|
276
|
+
};
|
|
277
|
+
} ? {
|
|
278
|
+
readonly [K in keyof M]: OptionValue<M[K]>;
|
|
279
|
+
} : Record<never, never>;
|
|
280
|
+
/** The bare command's parsed line: the grammar's operands, its own options and the command's. */
|
|
281
|
+
interface BareParsedLine<G> {
|
|
282
|
+
/** The operands, by name. */
|
|
283
|
+
readonly operands: OperandsOf<G>;
|
|
284
|
+
/** The options, by property: the bare command's and the command's. */
|
|
285
|
+
readonly options: BareOptionsOf<G> & OptionsOf<G>;
|
|
286
|
+
/** For each operand that globs, whether its words came from pathname expansion. */
|
|
287
|
+
readonly expanded: ExpandedOf<G>;
|
|
288
|
+
}
|
|
232
289
|
/** The bare command's line, when the grammar allows one. */
|
|
233
290
|
type BareLine<G> = G extends {
|
|
234
291
|
readonly subcommands: object;
|
|
@@ -236,9 +293,9 @@ type BareLine<G> = G extends {
|
|
|
236
293
|
readonly bare: object;
|
|
237
294
|
} ? {
|
|
238
295
|
readonly subcommand: null;
|
|
239
|
-
} &
|
|
296
|
+
} & BareParsedLine<G> : never : {
|
|
240
297
|
readonly subcommand: null;
|
|
241
|
-
} &
|
|
298
|
+
} & BareParsedLine<G>;
|
|
242
299
|
/** Each subcommand's line. */
|
|
243
300
|
type SubcommandLine<G> = G extends {
|
|
244
301
|
readonly subcommands: infer S;
|
|
@@ -269,6 +326,20 @@ export type CommandArguments<G extends CommandGrammar> = BareLine<G> | Subcomman
|
|
|
269
326
|
export type SubcommandArguments<G extends CommandGrammar, K extends string> = Extract<CommandArguments<G>, {
|
|
270
327
|
readonly subcommand: K;
|
|
271
328
|
}>;
|
|
329
|
+
/**
|
|
330
|
+
* Another word that runs a command: the word alone, holding what the command
|
|
331
|
+
* holds, or the word with what it holds when that differs (`feeds`, a read,
|
|
332
|
+
* holds nothing while `feed` may create one).
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```ts
|
|
336
|
+
* const aliases: readonly CommandAlias[] = [{ name: feeds, holds: [] }, job];
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
export type CommandAlias = string | {
|
|
340
|
+
readonly name: string;
|
|
341
|
+
readonly holds: readonly SessionPiece[];
|
|
342
|
+
};
|
|
272
343
|
/**
|
|
273
344
|
* A command parsed against its grammar: the one record that is its help,
|
|
274
345
|
* its completion, its schema and its dispatch.
|
|
@@ -285,6 +356,8 @@ export interface CommandDeclaration<G extends CommandGrammar = CommandGrammar> {
|
|
|
285
356
|
readonly grammar: G;
|
|
286
357
|
/** What `help` says of it. */
|
|
287
358
|
readonly help: CommandProse;
|
|
359
|
+
/** Other words that run it (`feeds` for `feed`): parsed, completed, listed and described as the command, usage and refusals saying the word typed. */
|
|
360
|
+
readonly aliases?: readonly CommandAlias[];
|
|
288
361
|
/** The pieces of the session it changes while it runs; absent, it holds the whole session. */
|
|
289
362
|
readonly holds?: readonly SessionPiece[];
|
|
290
363
|
/**
|
|
@@ -314,6 +387,8 @@ export interface ExpressionDeclaration {
|
|
|
314
387
|
readonly help: CommandProse & {
|
|
315
388
|
readonly usage: string;
|
|
316
389
|
};
|
|
390
|
+
/** Other words that run it, answered as the command. */
|
|
391
|
+
readonly aliases?: readonly CommandAlias[];
|
|
317
392
|
/** The pieces of the session it changes while it runs. */
|
|
318
393
|
readonly holds?: readonly SessionPiece[];
|
|
319
394
|
/**
|
|
@@ -347,6 +422,21 @@ export type AnyCommandDeclaration = CommandDeclaration | ExpressionDeclaration;
|
|
|
347
422
|
* ```
|
|
348
423
|
*/
|
|
349
424
|
export declare function command_declare<const G extends CommandGrammar>(declaration: CommandDeclaration<G>): CommandDeclaration<G>;
|
|
425
|
+
/**
|
|
426
|
+
* The command under each of its other words: the same grammar, help and
|
|
427
|
+
* handler, named as typed, holding what that word holds. The registry
|
|
428
|
+
* answers each word with one of these; the schema and the migration count
|
|
429
|
+
* read the command once.
|
|
430
|
+
*
|
|
431
|
+
* @param declaration - The command.
|
|
432
|
+
* @returns One record per alias, in the order declared; none without aliases.
|
|
433
|
+
*
|
|
434
|
+
* @example
|
|
435
|
+
* ```ts
|
|
436
|
+
* commandAliases_list(feedCommand).map((alias) => alias.name); // [feeds]
|
|
437
|
+
* ```
|
|
438
|
+
*/
|
|
439
|
+
export declare function commandAliases_list<D extends AnyCommandDeclaration>(declaration: D): D[];
|
|
350
440
|
/**
|
|
351
441
|
* Whether a declaration parses its line against a grammar (rather than an
|
|
352
442
|
* expression language of its own).
|
|
@@ -13,6 +13,27 @@
|
|
|
13
13
|
export function command_declare(declaration) {
|
|
14
14
|
return declaration;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* The command under each of its other words: the same grammar, help and
|
|
18
|
+
* handler, named as typed, holding what that word holds. The registry
|
|
19
|
+
* answers each word with one of these; the schema and the migration count
|
|
20
|
+
* read the command once.
|
|
21
|
+
*
|
|
22
|
+
* @param declaration - The command.
|
|
23
|
+
* @returns One record per alias, in the order declared; none without aliases.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* commandAliases_list(feedCommand).map((alias) => alias.name); // [feeds]
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function commandAliases_list(declaration) {
|
|
31
|
+
return (declaration.aliases ?? []).map((alias) => {
|
|
32
|
+
const { aliases: _aliases, ...command } = declaration;
|
|
33
|
+
// The same record under another word: only the name and the holds differ.
|
|
34
|
+
return (typeof alias === 'string' ? { ...command, name: alias } : { ...command, name: alias.name, holds: alias.holds });
|
|
35
|
+
});
|
|
36
|
+
}
|
|
16
37
|
/**
|
|
17
38
|
* Whether a declaration parses its line against a grammar (rather than an
|
|
18
39
|
* expression language of its own).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandDeclaration.js","sourceRoot":"","sources":["../../src/core/commandDeclaration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commandDeclaration.js","sourceRoot":"","sources":["../../src/core/commandDeclaration.ts"],"names":[],"mappings":"AA8YA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAiC,WAAkC;IAChG,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAkC,WAAc;IACjF,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAmB,EAAK,EAAE;QAChE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC;QACtD,0EAA0E;QAC1E,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAM,CAAC;IAC/H,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAkC;IACrE,OAAO,WAAW,CAAC,OAAO,KAAK,YAAY,CAAC;AAC9C,CAAC"}
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
* 1. The line's shape is parsed, GNU `getopt_long` for every command: `-f`,
|
|
6
6
|
* bundled short switches (`-rf`), `--force`; `--name x` and `--name=x`;
|
|
7
7
|
* `--` ends the options; options may stand anywhere among the operands;
|
|
8
|
-
* a word like `-3` is an operand when an operand of the line is numeric
|
|
8
|
+
* a word like `-3` is an operand when an operand of the line is numeric,
|
|
9
|
+
* or the value of the option that says `numeral` (`head -3`); a value
|
|
10
|
+
* that may be left out (`--highlight[=lang]`) is only in its own word;
|
|
11
|
+
* a value option that `asks`, given no value, is a question (null).
|
|
9
12
|
* Subcommand words and option names are literal and never globbed.
|
|
10
13
|
* 2. Operands expand by kind: only a path operand that declares `glob` has
|
|
11
14
|
* its wildcards matched.
|
|
@@ -36,6 +39,8 @@ import { commandUsage_render } from './commandUsage.js';
|
|
|
36
39
|
import { exitCode_set } from './handlerRun.js';
|
|
37
40
|
/** A word that reads as a negative number. */
|
|
38
41
|
const NEGATIVE_NUMBER = /^-\d+(?:\.\d+)?$/;
|
|
42
|
+
/** A dash and digits: an option that says `numeral` with that value (`head -5`). */
|
|
43
|
+
const DASH_DIGITS = /^-\d+$/;
|
|
39
44
|
/** A refusal raised while a line is parsed: its words, after `<command>: `. */
|
|
40
45
|
class LineRefusal extends Error {
|
|
41
46
|
/** The subcommand the line chose by then, for the usage that follows. */
|
|
@@ -50,14 +55,15 @@ class LineRefusal extends Error {
|
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
/**
|
|
53
|
-
* The options in reach once a subcommand is chosen: its own
|
|
58
|
+
* The options in reach once a subcommand is chosen, or none is: its own (the
|
|
59
|
+
* bare command's for none), then the command's.
|
|
54
60
|
*
|
|
55
61
|
* @param grammar - The command's grammar.
|
|
56
|
-
* @param subcommand - The subcommand's grammar, or null.
|
|
62
|
+
* @param subcommand - The subcommand's grammar, or null for the bare command.
|
|
57
63
|
* @returns The options.
|
|
58
64
|
*/
|
|
59
65
|
function optionEntries_list(grammar, subcommand) {
|
|
60
|
-
const own = subcommand?.options ?? {};
|
|
66
|
+
const own = subcommand === null ? (grammar.bare?.options ?? {}) : (subcommand.options ?? {});
|
|
61
67
|
const command = grammar.options ?? {};
|
|
62
68
|
return [...Object.entries(own), ...Object.entries(command)]
|
|
63
69
|
.map(([key, option]) => ({ key, option }));
|
|
@@ -86,6 +92,19 @@ function option_record(options, entry, value) {
|
|
|
86
92
|
const held = options.get(entry.key);
|
|
87
93
|
options.set(entry.key, [...(Array.isArray(held) ? held : []), value]);
|
|
88
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Whether a value option stands with no value: nothing follows it, or, for
|
|
97
|
+
* one that asks, another option does.
|
|
98
|
+
*
|
|
99
|
+
* @param option - The option.
|
|
100
|
+
* @param next - The word after it, if any.
|
|
101
|
+
* @returns True when it has no value.
|
|
102
|
+
*/
|
|
103
|
+
function value_isAbsent(option, next) {
|
|
104
|
+
if (next === undefined)
|
|
105
|
+
return true;
|
|
106
|
+
return option.asks === true && next.value.startsWith('-') && next.value.length > 1;
|
|
107
|
+
}
|
|
89
108
|
/**
|
|
90
109
|
* Reads one long option word, `--name` or `--name=value`, taking its value
|
|
91
110
|
* from the next word when it wants one.
|
|
@@ -111,13 +130,18 @@ function longOption_read(words, at, walk, options) {
|
|
|
111
130
|
option_record(options, entry, null);
|
|
112
131
|
return at + 1;
|
|
113
132
|
}
|
|
114
|
-
if (inline !== null) {
|
|
115
|
-
|
|
133
|
+
if (inline !== null || entry.option.value.optional === true) {
|
|
134
|
+
// An optional value is only ever in the option's own word.
|
|
135
|
+
option_record(options, entry, inline ?? '');
|
|
116
136
|
return at + 1;
|
|
117
137
|
}
|
|
118
138
|
const next = words[at + 1];
|
|
119
|
-
if (next
|
|
120
|
-
|
|
139
|
+
if (value_isAbsent(entry.option, next)) {
|
|
140
|
+
if (entry.option.asks !== true)
|
|
141
|
+
throw new LineRefusal(`option '--${name}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
|
|
142
|
+
options.set(entry.key, null);
|
|
143
|
+
return at + 1;
|
|
144
|
+
}
|
|
121
145
|
option_record(options, entry, next.value);
|
|
122
146
|
return at + 2;
|
|
123
147
|
}
|
|
@@ -144,13 +168,17 @@ function shortOptions_read(words, at, walk, options) {
|
|
|
144
168
|
continue;
|
|
145
169
|
}
|
|
146
170
|
const rest = text.slice(index + 1);
|
|
147
|
-
if (rest !== '') {
|
|
171
|
+
if (rest !== '' || entry.option.value.optional === true) {
|
|
148
172
|
option_record(options, entry, rest);
|
|
149
173
|
return at + 1;
|
|
150
174
|
}
|
|
151
175
|
const next = words[at + 1];
|
|
152
|
-
if (next
|
|
153
|
-
|
|
176
|
+
if (value_isAbsent(entry.option, next)) {
|
|
177
|
+
if (entry.option.asks !== true)
|
|
178
|
+
throw new LineRefusal(`option '-${letter}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
|
|
179
|
+
options.set(entry.key, null);
|
|
180
|
+
return at + 1;
|
|
181
|
+
}
|
|
154
182
|
option_record(options, entry, next.value);
|
|
155
183
|
return at + 2;
|
|
156
184
|
}
|
|
@@ -164,16 +192,26 @@ function shortOptions_read(words, at, walk, options) {
|
|
|
164
192
|
* @param word - The word.
|
|
165
193
|
* @param walk - Where the parse stands.
|
|
166
194
|
* @param operands - The operands so far.
|
|
167
|
-
* @
|
|
195
|
+
* @param options - The options so far, which a chosen subcommand must take.
|
|
196
|
+
* @throws {LineRefusal} For a word that names no subcommand of a command that takes no bare operand, or a subcommand that does not take an option given before it.
|
|
168
197
|
*/
|
|
169
|
-
function plainWord_take(grammar, word, walk, operands) {
|
|
198
|
+
function plainWord_take(grammar, word, walk, operands, options) {
|
|
170
199
|
const subcommands = grammar.subcommands;
|
|
171
200
|
if (subcommands !== undefined && walk.subcommand === null && operands.length === 0 && !walk.optionsEnded) {
|
|
172
201
|
const chosen = Object.hasOwn(subcommands, word.value) ? subcommands[word.value] : undefined;
|
|
173
202
|
if (chosen !== undefined) {
|
|
203
|
+
const entries = optionEntries_list(grammar, chosen);
|
|
204
|
+
// An option the bare command takes, given before a subcommand that does not take it, is refused, not dropped.
|
|
205
|
+
for (const key of options.keys()) {
|
|
206
|
+
if (entries.some((entry) => entry.key === key))
|
|
207
|
+
continue;
|
|
208
|
+
const given = walk.entries.find((entry) => entry.key === key)?.option;
|
|
209
|
+
const name = given?.long !== undefined ? `--${given.long}` : `-${given?.short ?? key}`;
|
|
210
|
+
throw new LineRefusal(`option '${name}' is not one ${word.value} takes`, word.value);
|
|
211
|
+
}
|
|
174
212
|
walk.subcommand = word.value;
|
|
175
213
|
walk.scope = chosen;
|
|
176
|
-
walk.entries =
|
|
214
|
+
walk.entries = entries;
|
|
177
215
|
return;
|
|
178
216
|
}
|
|
179
217
|
if ((grammar.operands ?? []).length === 0) {
|
|
@@ -201,7 +239,7 @@ function lineShape_parse(grammar, words) {
|
|
|
201
239
|
const text = word.value;
|
|
202
240
|
const reach = walk.scope?.operands ?? grammar.operands ?? [];
|
|
203
241
|
if (walk.optionsEnded) {
|
|
204
|
-
plainWord_take(grammar, word, walk, operands);
|
|
242
|
+
plainWord_take(grammar, word, walk, operands, options);
|
|
205
243
|
at += 1;
|
|
206
244
|
}
|
|
207
245
|
else if (text === '--') {
|
|
@@ -211,11 +249,15 @@ function lineShape_parse(grammar, words) {
|
|
|
211
249
|
else if (text.startsWith('--')) {
|
|
212
250
|
at = longOption_read(words, at, walk, options);
|
|
213
251
|
}
|
|
252
|
+
else if (DASH_DIGITS.test(text) && walk.entries.some((entry) => entry.option.numeral === true)) {
|
|
253
|
+
option_record(options, walk.entries.find((entry) => entry.option.numeral === true), text.slice(1));
|
|
254
|
+
at += 1;
|
|
255
|
+
}
|
|
214
256
|
else if (text.startsWith('-') && text.length > 1 && !(NEGATIVE_NUMBER.test(text) && operands_takeNumbers(reach))) {
|
|
215
257
|
at = shortOptions_read(words, at, walk, options);
|
|
216
258
|
}
|
|
217
259
|
else {
|
|
218
|
-
plainWord_take(grammar, word, walk, operands);
|
|
260
|
+
plainWord_take(grammar, word, walk, operands, options);
|
|
219
261
|
at += 1;
|
|
220
262
|
}
|
|
221
263
|
}
|
|
@@ -319,6 +361,10 @@ function optionValues_check(entries, given, subcommand) {
|
|
|
319
361
|
values[key] = held === true;
|
|
320
362
|
continue;
|
|
321
363
|
}
|
|
364
|
+
if (held === null) {
|
|
365
|
+
values[key] = option.repeat === true ? [] : null;
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
322
368
|
const where = option.long !== undefined ? `'--${option.long}'` : `'-${option.short ?? ''}'`;
|
|
323
369
|
const checked = (Array.isArray(held) ? held : []).map((word) => word_check(option.value, word, where, subcommand));
|
|
324
370
|
values[key] = option.repeat === true ? checked : checked.at(-1);
|
|
@@ -343,7 +389,9 @@ export async function commandLine_parse(declaration, words) {
|
|
|
343
389
|
try {
|
|
344
390
|
const shape = lineShape_parse(grammar, words);
|
|
345
391
|
const scope = shape.subcommand === null ? null : (grammar.subcommands?.[shape.subcommand] ?? null);
|
|
346
|
-
|
|
392
|
+
// An operand that stands only without an option is gone when the option is given.
|
|
393
|
+
const operandGrammars = (scope !== null ? (scope.operands ?? []) : (grammar.operands ?? []))
|
|
394
|
+
.filter((operand) => operand.unless === undefined || !shape.options.has(operand.unless));
|
|
347
395
|
const assigned = operandWords_assign(operandGrammars, shape.operands, shape.subcommand);
|
|
348
396
|
const operands = {};
|
|
349
397
|
const expanded = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandParse.js","sourceRoot":"","sources":["../../src/core/commandParse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commandParse.js","sourceRoot":"","sources":["../../src/core/commandParse.ts"],"names":[],"mappings":"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"}
|