@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
|
@@ -6,12 +6,17 @@
|
|
|
6
6
|
* the session's filesystem, so a path is a CFS path. `xxd` and `strings`
|
|
7
7
|
* are bounded and say what they showed.
|
|
8
8
|
*
|
|
9
|
+
* Each is declared in one record (`fileCommand`, `xxdCommand`, …); `file`
|
|
10
|
+
* reads where the store keeps a path (`storePath_resolve`), through any link.
|
|
11
|
+
*
|
|
9
12
|
* @module
|
|
10
13
|
*/
|
|
11
14
|
import { createHash } from 'node:crypto';
|
|
12
15
|
import { files_cat, files_catBinary } from '@fnndsc/chili/commands/fs/cat.js';
|
|
13
16
|
import chalk from 'chalk';
|
|
14
|
-
import { path_resolve, error_stripDebugPrefix } from '../utils.js';
|
|
17
|
+
import { path_resolve, storePath_resolve, error_stripDebugPrefix } from '../utils.js';
|
|
18
|
+
import { command_declare } from '../../core/commandDeclaration.js';
|
|
19
|
+
import { declaredCommand_run } from '../../core/commandParse.js';
|
|
15
20
|
import { errorStack } from '@fnndsc/fond';
|
|
16
21
|
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
17
22
|
/** Bytes `xxd` shows when not told. */
|
|
@@ -113,9 +118,17 @@ export function strings_find(bytes, min = 4) {
|
|
|
113
118
|
out.push(run);
|
|
114
119
|
return out;
|
|
115
120
|
}
|
|
116
|
-
/**
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Reads a CFS file's bytes, or answers why not.
|
|
123
|
+
*
|
|
124
|
+
* @param pathArg - The path as typed.
|
|
125
|
+
* @param name - The command, for the refusal.
|
|
126
|
+
* @param resolve - Where the path is read: the session's path by default;
|
|
127
|
+
* `file` reads where the store keeps it, through any link.
|
|
128
|
+
* @returns The path read and its bytes, or the refusal.
|
|
129
|
+
*/
|
|
130
|
+
async function bytes_read(pathArg, name, resolve = path_resolve) {
|
|
131
|
+
const target = await resolve(pathArg);
|
|
119
132
|
const result = await files_catBinary(target);
|
|
120
133
|
if (result.ok)
|
|
121
134
|
return { path: target, bytes: result.value };
|
|
@@ -130,33 +143,53 @@ async function bytes_read(pathArg, name) {
|
|
|
130
143
|
const why = last === undefined ? 'cannot read' : error_stripDebugPrefix(last.message);
|
|
131
144
|
return { error: envelope_error('', undefined, `${name}: ${pathArg}: ${why}\n`) };
|
|
132
145
|
}
|
|
133
|
-
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
146
|
+
/** What a `file` line may hold: ChRIS paths, a wildcard matching them. */
|
|
147
|
+
const FILE_GRAMMAR = {
|
|
148
|
+
operands: [
|
|
149
|
+
{ name: 'path', kind: 'cfsPath', repeat: true, glob: true, summary: 'The ChRIS files to name; a wildcard matches paths' },
|
|
150
|
+
],
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* `file <path…>`: the declaration.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* commands_register({ declarations: [fileCommand] }, 'backend');
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export const fileCommand = command_declare({
|
|
161
|
+
name: 'file',
|
|
162
|
+
grammar: FILE_GRAMMAR,
|
|
163
|
+
help: {
|
|
164
|
+
summary: 'What a file is, by its first bytes',
|
|
165
|
+
description: 'Reads a CFS file\'s head and names it by its magic: DICOM, NIfTI, gzip, PNG, JPEG, PDF, ZIP, JSON, text and more, with its size.',
|
|
166
|
+
category: 'Files',
|
|
167
|
+
posix: { group: 'Files', differs: 'names a CFS file by its first bytes (DICOM, NIfTI, …)' },
|
|
168
|
+
examples: ['file 0001.dcm', 'file ~/data/*'],
|
|
169
|
+
},
|
|
170
|
+
holds: [],
|
|
171
|
+
handler: async (args) => file_run(args.operands.path),
|
|
172
|
+
});
|
|
173
|
+
/**
|
|
174
|
+
* `file` over words already split: the declaration's parse and handler.
|
|
175
|
+
*
|
|
176
|
+
* @param args - The words after `file`.
|
|
177
|
+
* @returns What each file is, or the refusal of a bad line.
|
|
178
|
+
*/
|
|
153
179
|
export async function builtin_file(args) {
|
|
154
|
-
|
|
155
|
-
|
|
180
|
+
return declaredCommand_run(fileCommand, args);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Names each file by its first bytes, reading it where the store keeps it.
|
|
184
|
+
*
|
|
185
|
+
* @param paths - The paths, as typed or matched.
|
|
186
|
+
* @returns A line per file, and the model; the first unreadable one's refusal.
|
|
187
|
+
*/
|
|
188
|
+
async function file_run(paths) {
|
|
156
189
|
const lines = [];
|
|
157
190
|
const data = [];
|
|
158
|
-
for (const arg of
|
|
159
|
-
const read = await bytes_read(arg, 'file');
|
|
191
|
+
for (const arg of paths) {
|
|
192
|
+
const read = await bytes_read(arg, 'file', storePath_resolve);
|
|
160
193
|
if ('error' in read)
|
|
161
194
|
return read.error;
|
|
162
195
|
const kind = magic_derive(read.bytes, read.path);
|
|
@@ -165,46 +198,150 @@ export async function builtin_file(args) {
|
|
|
165
198
|
}
|
|
166
199
|
return envelope_ok(`${lines.join('\n')}\n`, { kind: 'games.file', data: { files: data } });
|
|
167
200
|
}
|
|
168
|
-
/** `xxd
|
|
201
|
+
/** What an `xxd` line may hold: a file, where to start, how much to show. */
|
|
202
|
+
const XXD_GRAMMAR = {
|
|
203
|
+
operands: [{ name: 'path', kind: 'cfsPath', glob: true, summary: 'The file' }],
|
|
204
|
+
options: {
|
|
205
|
+
offset: { short: 's', summary: 'Start at this byte (default 0)', value: { name: 'OFFSET', kind: 'int', min: 0 } },
|
|
206
|
+
length: { short: 'l', summary: `Show this many bytes (default ${XXD_DEFAULT})`, value: { name: 'LENGTH', kind: 'int', min: 0 } },
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* `xxd [-s OFFSET] [-l LENGTH] <path>`: the declaration.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* commands_register({ declarations: [xxdCommand] });
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
export const xxdCommand = command_declare({
|
|
218
|
+
name: 'xxd',
|
|
219
|
+
grammar: XXD_GRAMMAR,
|
|
220
|
+
help: {
|
|
221
|
+
summary: 'A hex dump of a file',
|
|
222
|
+
description: 'The canonical hex dump — offset, sixteen bytes in pairs, the text beside — of a CFS file. 256 bytes unless -l asks for more; -s starts further in. Says how much of the file it showed.',
|
|
223
|
+
posix: { group: 'Text', differs: 'reads a CFS file' },
|
|
224
|
+
examples: ['xxd 0001.dcm', 'xxd -s 128 -l 16 0001.dcm', 'xxd -l 4096 image.nii'],
|
|
225
|
+
},
|
|
226
|
+
holds: [],
|
|
227
|
+
handler: async (args) => xxd_run(args.operands.path, args.options.offset, args.options.length),
|
|
228
|
+
});
|
|
229
|
+
/**
|
|
230
|
+
* `xxd` over words already split: the declaration's parse and handler.
|
|
231
|
+
*
|
|
232
|
+
* @param args - The words after `xxd`.
|
|
233
|
+
* @returns The dump, or the refusal of a bad line.
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```ts
|
|
237
|
+
* await builtin_xxd(['-l', '16', 'a.txt']);
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
169
240
|
export async function builtin_xxd(args) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
241
|
+
return declaredCommand_run(xxdCommand, args);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Dumps a file's bytes in hex.
|
|
245
|
+
*
|
|
246
|
+
* @param path - The CFS path.
|
|
247
|
+
* @param start - Where to start; absent for the beginning.
|
|
248
|
+
* @param span - How many bytes to show; absent for the default.
|
|
249
|
+
* @returns The dump and how much it showed, or why the file cannot be read.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* await xxd_run('a.txt', 0, 16);
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
export async function xxd_run(path, start, span) {
|
|
257
|
+
const read = await bytes_read(path, 'xxd');
|
|
176
258
|
if ('error' in read)
|
|
177
259
|
return read.error;
|
|
178
|
-
const offset =
|
|
179
|
-
const length =
|
|
260
|
+
const offset = start ?? 0;
|
|
261
|
+
const length = span ?? XXD_DEFAULT;
|
|
180
262
|
const shown = read.bytes.subarray(offset, offset + length);
|
|
181
263
|
const more = read.bytes.length - offset - shown.length;
|
|
182
264
|
const note = more > 0 ? chalk.gray(`\nxxd: ${shown.length} of ${read.bytes.length.toLocaleString('en-US')} bytes shown (-l ${length}; -s to start elsewhere)`) : '';
|
|
183
265
|
return envelope_ok(`${hexdump_render(shown, offset)}${note}\n`, { kind: 'games.xxd', data: { path: read.path, offset, shown: shown.length, total: read.bytes.length } });
|
|
184
266
|
}
|
|
185
|
-
/** `strings
|
|
267
|
+
/** What a `strings` line may hold: a file, the shortest run, how many to show. */
|
|
268
|
+
const STRINGS_GRAMMAR = {
|
|
269
|
+
operands: [{ name: 'path', kind: 'cfsPath', glob: true, summary: 'The file' }],
|
|
270
|
+
options: {
|
|
271
|
+
min: { short: 'n', summary: 'Shortest run to show (default 4)', value: { name: 'MIN', kind: 'int', min: 0 } },
|
|
272
|
+
limit: { short: 'l', summary: `Most runs to show (default ${STRINGS_DEFAULT})`, value: { name: 'LIMIT', kind: 'int', min: 0 } },
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* `strings [-n MIN] [-l LIMIT] <path>`: the declaration.
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```ts
|
|
280
|
+
* commands_register({ declarations: [stringsCommand] });
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
export const stringsCommand = command_declare({
|
|
284
|
+
name: 'strings',
|
|
285
|
+
grammar: STRINGS_GRAMMAR,
|
|
286
|
+
help: {
|
|
287
|
+
summary: 'The readable runs in a file',
|
|
288
|
+
description: 'Prints the runs of printable characters, MIN (4) or longer, in a CFS file — the way to see what a binary carries. 200 lines unless -l asks for more; says how many there were.',
|
|
289
|
+
posix: { group: 'Text', differs: 'reads a CFS file' },
|
|
290
|
+
examples: ['strings 0001.dcm', 'strings -n 8 report.pdf'],
|
|
291
|
+
},
|
|
292
|
+
holds: [],
|
|
293
|
+
handler: async (args) => strings_run(args.operands.path, args.options.min, args.options.limit),
|
|
294
|
+
});
|
|
295
|
+
/**
|
|
296
|
+
* `strings` over words already split: the declaration's parse and handler.
|
|
297
|
+
*
|
|
298
|
+
* @param args - The words after `strings`.
|
|
299
|
+
* @returns The runs, or the refusal of a bad line.
|
|
300
|
+
*
|
|
301
|
+
* @example
|
|
302
|
+
* ```ts
|
|
303
|
+
* await builtin_strings(['-n', '8', 'a.bin']);
|
|
304
|
+
* ```
|
|
305
|
+
*/
|
|
186
306
|
export async function builtin_strings(args) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
307
|
+
return declaredCommand_run(stringsCommand, args);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Lists the printable runs in a file.
|
|
311
|
+
*
|
|
312
|
+
* @param path - The CFS path.
|
|
313
|
+
* @param shortest - The shortest run to show; absent for 4.
|
|
314
|
+
* @param most - The most runs to show; absent for the default.
|
|
315
|
+
* @returns The runs and how many there were, or why the file cannot be read.
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* ```ts
|
|
319
|
+
* await strings_run('a.bin', 8, 50);
|
|
320
|
+
* ```
|
|
321
|
+
*/
|
|
322
|
+
export async function strings_run(path, shortest, most) {
|
|
323
|
+
const read = await bytes_read(path, 'strings');
|
|
193
324
|
if ('error' in read)
|
|
194
325
|
return read.error;
|
|
195
|
-
const min = Math.max(1,
|
|
196
|
-
const limit =
|
|
326
|
+
const min = Math.max(1, shortest ?? 4);
|
|
327
|
+
const limit = most ?? STRINGS_DEFAULT;
|
|
197
328
|
const found = strings_find(read.bytes, min);
|
|
198
329
|
const shown = found.slice(0, limit);
|
|
199
330
|
const note = found.length > shown.length ? chalk.gray(`\nstrings: ${shown.length} of ${found.length} shown (-l for more)`) : '';
|
|
200
331
|
return envelope_ok(`${shown.join('\n')}${note}\n`, { kind: 'games.strings', data: { path: read.path, shown: shown.length, total: found.length } });
|
|
201
332
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
333
|
+
/**
|
|
334
|
+
* Digests each file with an algorithm, as the coreutils tools print.
|
|
335
|
+
*
|
|
336
|
+
* @param paths - The CFS paths.
|
|
337
|
+
* @param algorithm - The digest.
|
|
338
|
+
* @param name - The command's name, for refusals and the model kind.
|
|
339
|
+
* @returns A line per file, or why one cannot be read.
|
|
340
|
+
*/
|
|
341
|
+
async function digest_run(paths, algorithm, name) {
|
|
205
342
|
const lines = [];
|
|
206
343
|
const data = [];
|
|
207
|
-
for (const arg of
|
|
344
|
+
for (const arg of paths) {
|
|
208
345
|
const read = await bytes_read(arg, name);
|
|
209
346
|
if ('error' in read)
|
|
210
347
|
return read.error;
|
|
@@ -214,12 +351,76 @@ async function digest_run(args, algorithm, name) {
|
|
|
214
351
|
}
|
|
215
352
|
return envelope_ok(`${lines.join('\n')}\n`, { kind: `games.${name}`, data: { algorithm, files: data } });
|
|
216
353
|
}
|
|
217
|
-
/**
|
|
354
|
+
/** What a digest line may hold: the files. */
|
|
355
|
+
const DIGEST_GRAMMAR = {
|
|
356
|
+
operands: [{ name: 'paths', kind: 'cfsPath', glob: true, repeat: true, summary: 'The files' }],
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* `sha256sum <path>...`: the declaration.
|
|
360
|
+
*
|
|
361
|
+
* @example
|
|
362
|
+
* ```ts
|
|
363
|
+
* commands_register({ declarations: [sha256sumCommand] });
|
|
364
|
+
* ```
|
|
365
|
+
*/
|
|
366
|
+
export const sha256sumCommand = command_declare({
|
|
367
|
+
name: 'sha256sum',
|
|
368
|
+
grammar: DIGEST_GRAMMAR,
|
|
369
|
+
help: {
|
|
370
|
+
summary: 'The SHA-256 digest of a file',
|
|
371
|
+
description: "Prints each CFS file's SHA-256 as hex, then its name, in the format the coreutils tool uses.",
|
|
372
|
+
posix: { group: 'Text', differs: 'hashes a CFS file' },
|
|
373
|
+
examples: ['sha256sum image.nii.gz', 'sha256sum ~/uploads/*'],
|
|
374
|
+
},
|
|
375
|
+
holds: [],
|
|
376
|
+
handler: async (args) => digest_run(args.operands.paths, 'sha256', 'sha256sum'),
|
|
377
|
+
});
|
|
378
|
+
/**
|
|
379
|
+
* `md5sum <path>...`: the declaration.
|
|
380
|
+
*
|
|
381
|
+
* @example
|
|
382
|
+
* ```ts
|
|
383
|
+
* commands_register({ declarations: [md5sumCommand] });
|
|
384
|
+
* ```
|
|
385
|
+
*/
|
|
386
|
+
export const md5sumCommand = command_declare({
|
|
387
|
+
name: 'md5sum',
|
|
388
|
+
grammar: DIGEST_GRAMMAR,
|
|
389
|
+
help: {
|
|
390
|
+
summary: 'The MD5 digest of a file',
|
|
391
|
+
description: "Prints each CFS file's MD5 as hex, then its name.",
|
|
392
|
+
posix: { group: 'Text', differs: 'hashes a CFS file' },
|
|
393
|
+
examples: ['md5sum image.nii.gz'],
|
|
394
|
+
},
|
|
395
|
+
holds: [],
|
|
396
|
+
handler: async (args) => digest_run(args.operands.paths, 'md5', 'md5sum'),
|
|
397
|
+
});
|
|
398
|
+
/**
|
|
399
|
+
* `sha256sum` over words already split: the declaration's parse and handler.
|
|
400
|
+
*
|
|
401
|
+
* @param args - The words after `sha256sum`.
|
|
402
|
+
* @returns The digests, or the refusal of a bad line.
|
|
403
|
+
*
|
|
404
|
+
* @example
|
|
405
|
+
* ```ts
|
|
406
|
+
* await builtin_sha256sum(['a.txt']);
|
|
407
|
+
* ```
|
|
408
|
+
*/
|
|
218
409
|
export async function builtin_sha256sum(args) {
|
|
219
|
-
return
|
|
410
|
+
return declaredCommand_run(sha256sumCommand, args);
|
|
220
411
|
}
|
|
221
|
-
/**
|
|
412
|
+
/**
|
|
413
|
+
* `md5sum` over words already split: the declaration's parse and handler.
|
|
414
|
+
*
|
|
415
|
+
* @param args - The words after `md5sum`.
|
|
416
|
+
* @returns The digests, or the refusal of a bad line.
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* ```ts
|
|
420
|
+
* await builtin_md5sum(['a.txt']);
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
222
423
|
export async function builtin_md5sum(args) {
|
|
223
|
-
return
|
|
424
|
+
return declaredCommand_run(md5sumCommand, args);
|
|
224
425
|
}
|
|
225
426
|
//# sourceMappingURL=bytes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/builtins/games/bytes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/builtins/games/bytes.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,15 +38,192 @@ export declare function chimes_cancel(which: number | Chime['source'] | 'all'):
|
|
|
38
38
|
export declare function duration_parse(text: string): number | null;
|
|
39
39
|
/** A span in words: `1h 05m`, `4m 30s`, `12s`. */
|
|
40
40
|
export declare function span_words(ms: number): string;
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* `timer`: the declaration.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* commands_register({ declarations: [timerCommand] });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare const timerCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
50
|
+
readonly operands: readonly [{
|
|
51
|
+
readonly name: "duration";
|
|
52
|
+
readonly kind: "word";
|
|
53
|
+
readonly optional: true;
|
|
54
|
+
readonly summary: "How long: 90s, 5m, 1h30m, 2:30, or a bare number of minutes";
|
|
55
|
+
}, {
|
|
56
|
+
readonly name: "words";
|
|
57
|
+
readonly kind: "word";
|
|
58
|
+
readonly optional: true;
|
|
59
|
+
readonly repeat: true;
|
|
60
|
+
readonly summary: "What the chime says";
|
|
61
|
+
}];
|
|
62
|
+
readonly subcommands: {
|
|
63
|
+
readonly cancel: {
|
|
64
|
+
readonly summary: "End the waiting timers, one by id or all of them";
|
|
65
|
+
readonly operands: readonly [{
|
|
66
|
+
readonly name: "which";
|
|
67
|
+
readonly kind: "word";
|
|
68
|
+
readonly optional: true;
|
|
69
|
+
readonly summary: "A chime id, or all (default: every timer)";
|
|
70
|
+
}];
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
readonly bare: {
|
|
74
|
+
readonly summary: "Set a chime after a duration, or list the chimes waiting";
|
|
75
|
+
};
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* `timer` over words already split: the declaration's parse and handler.
|
|
79
|
+
*
|
|
80
|
+
* @param args - The words after `timer`.
|
|
81
|
+
* @returns The chime set or listed, or the refusal of a bad line.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* await builtin_timer(['5m', 'tea']);
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
42
88
|
export declare function builtin_timer(args: string[]): Promise<CommandEnvelope>;
|
|
89
|
+
/**
|
|
90
|
+
* Ends the waiting timers.
|
|
91
|
+
*
|
|
92
|
+
* @param which - A chime id, `all`, or nothing for every timer.
|
|
93
|
+
* @returns How many were cancelled, or a refusal for a word that is neither an id nor `all`.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* await timerCancel_run('all');
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function timerCancel_run(which: string | undefined): Promise<CommandEnvelope>;
|
|
101
|
+
/**
|
|
102
|
+
* Sets a timer, or lists the chimes waiting when no duration is given.
|
|
103
|
+
*
|
|
104
|
+
* @param duration - How long, as `duration_parse` reads it; absent to list.
|
|
105
|
+
* @param words - What the chime says; empty for the default.
|
|
106
|
+
* @returns The chime set or the list, or a refusal for a bad duration.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* await timer_run('5m', ['tea']);
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function timer_run(duration: string | undefined, words: readonly string[]): Promise<CommandEnvelope>;
|
|
43
114
|
/** Reads `+hhmm` (from now) or `hhmm` (a clock time, today or tomorrow) as a delay. */
|
|
44
115
|
export declare function leave_delay(text: string, now?: Date): number | null;
|
|
45
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* `leave`: the declaration.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* commands_register({ declarations: [leaveCommand] });
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare const leaveCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
125
|
+
readonly operands: readonly [{
|
|
126
|
+
readonly name: "time";
|
|
127
|
+
readonly kind: "word";
|
|
128
|
+
readonly optional: true;
|
|
129
|
+
readonly summary: "+hhmm from now, or hhmm as a clock time";
|
|
130
|
+
}];
|
|
131
|
+
readonly subcommands: {
|
|
132
|
+
readonly cancel: {
|
|
133
|
+
readonly summary: "Forget the leave";
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
readonly bare: {
|
|
137
|
+
readonly summary: "Say when you leave, or set it to a time";
|
|
138
|
+
};
|
|
139
|
+
}>;
|
|
140
|
+
/**
|
|
141
|
+
* `leave` over words already split: the declaration's parse and handler.
|
|
142
|
+
*
|
|
143
|
+
* @param args - The words after `leave`.
|
|
144
|
+
* @returns The alarm set, shown or cancelled, or the refusal of a bad line.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* await builtin_leave(['+0030']);
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
46
151
|
export declare function builtin_leave(args: string[]): Promise<CommandEnvelope>;
|
|
152
|
+
/**
|
|
153
|
+
* Forgets the leave.
|
|
154
|
+
*
|
|
155
|
+
* @returns How many chimes were cancelled.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* await leaveCancel_run();
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export declare function leaveCancel_run(): Promise<CommandEnvelope>;
|
|
163
|
+
/**
|
|
164
|
+
* Says when the operator leaves, or sets it to a time.
|
|
165
|
+
*
|
|
166
|
+
* @param time - `+hhmm` or `hhmm`; absent to say when.
|
|
167
|
+
* @returns The alarm, or a refusal for a word that is not a time.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* await leave_run('1730');
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
export declare function leave_run(time: string | undefined): Promise<CommandEnvelope>;
|
|
47
175
|
/** The stopwatch's elapsed time now. */
|
|
48
176
|
export declare function stopwatch_elapsed(now?: number): number;
|
|
49
177
|
/** Resets the stopwatch (a test's seam, and `stopwatch reset`). */
|
|
50
178
|
export declare function stopwatch_reset(): void;
|
|
51
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* `stopwatch`: the declaration.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* commands_register({ declarations: [stopwatchCommand] });
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
export declare const stopwatchCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
188
|
+
readonly subcommands: {
|
|
189
|
+
readonly start: {
|
|
190
|
+
readonly summary: "Start the stopwatch, or resume it";
|
|
191
|
+
};
|
|
192
|
+
readonly stop: {
|
|
193
|
+
readonly summary: "Stop it, keeping the time";
|
|
194
|
+
};
|
|
195
|
+
readonly lap: {
|
|
196
|
+
readonly summary: "Mark a lap";
|
|
197
|
+
};
|
|
198
|
+
readonly reset: {
|
|
199
|
+
readonly summary: "Stop it and clear the time and the laps";
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
readonly bare: {
|
|
203
|
+
readonly summary: "Show the time and the laps";
|
|
204
|
+
};
|
|
205
|
+
}>;
|
|
206
|
+
/**
|
|
207
|
+
* `stopwatch` over words already split: the declaration's parse and handler.
|
|
208
|
+
*
|
|
209
|
+
* @param args - The words after `stopwatch`.
|
|
210
|
+
* @returns The stopwatch's state, or the refusal of a bad line.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* await builtin_stopwatch(['start']);
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
52
217
|
export declare function builtin_stopwatch(args: string[]): Promise<CommandEnvelope>;
|
|
218
|
+
/**
|
|
219
|
+
* Does one thing to the session's stopwatch.
|
|
220
|
+
*
|
|
221
|
+
* @param verb - `start`, `stop`, `lap`, `reset`, or `show` for the time.
|
|
222
|
+
* @returns The stopwatch's state, or a refusal for a lap while it is stopped.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```ts
|
|
226
|
+
* await stopwatch_run('lap');
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
export declare function stopwatch_run(verb: 'start' | 'stop' | 'lap' | 'reset' | 'show'): Promise<CommandEnvelope>;
|