@fnndsc/brasa 0.31.4 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/fs/pull.js +16 -0
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +21 -0
- package/dist/builtins/games/bytes.js +224 -0
- package/dist/builtins/games/bytes.js.map +1 -0
- package/dist/builtins/games/chimes.d.ts +64 -0
- package/dist/builtins/games/chimes.js +223 -0
- package/dist/builtins/games/chimes.js.map +1 -0
- package/dist/builtins/games/cowsay.d.ts +36 -0
- package/dist/builtins/games/cowsay.js +127 -0
- package/dist/builtins/games/cowsay.js.map +1 -0
- package/dist/builtins/games/figlet.d.ts +25 -0
- package/dist/builtins/games/figlet.js +109 -0
- package/dist/builtins/games/figlet.js.map +1 -0
- package/dist/builtins/games/lab.d.ts +51 -0
- package/dist/builtins/games/lab.js +161 -0
- package/dist/builtins/games/lab.js.map +1 -0
- package/dist/builtins/games/lolcat.d.ts +26 -0
- package/dist/builtins/games/lolcat.js +71 -0
- package/dist/builtins/games/lolcat.js.map +1 -0
- package/dist/builtins/games/morse.d.ts +18 -0
- package/dist/builtins/games/morse.js +46 -0
- package/dist/builtins/games/morse.js.map +1 -0
- package/dist/builtins/games/numbers.d.ts +55 -0
- package/dist/builtins/games/numbers.js +270 -0
- package/dist/builtins/games/numbers.js.map +1 -0
- package/dist/builtins/games/play.d.ts +53 -0
- package/dist/builtins/games/play.js +228 -0
- package/dist/builtins/games/play.js.map +1 -0
- package/dist/builtins/games/qr.d.ts +40 -0
- package/dist/builtins/games/qr.js +336 -0
- package/dist/builtins/games/qr.js.map +1 -0
- package/dist/builtins/games/shelf.d.ts +27 -0
- package/dist/builtins/games/shelf.js +71 -0
- package/dist/builtins/games/shelf.js.map +1 -0
- package/dist/builtins/games/show.d.ts +32 -0
- package/dist/builtins/games/show.js +68 -0
- package/dist/builtins/games/show.js.map +1 -0
- package/dist/builtins/games/sky.d.ts +69 -0
- package/dist/builtins/games/sky.js +190 -0
- package/dist/builtins/games/sky.js.map +1 -0
- package/dist/builtins/games/stdin.d.ts +34 -0
- package/dist/builtins/games/stdin.js +48 -0
- package/dist/builtins/games/stdin.js.map +1 -0
- package/dist/builtins/games/text.d.ts +46 -0
- package/dist/builtins/games/text.js +133 -0
- package/dist/builtins/games/text.js.map +1 -0
- package/dist/builtins/games/wtf.d.ts +13 -0
- package/dist/builtins/games/wtf.data.d.ts +12 -0
- package/dist/builtins/games/wtf.data.js +70 -0
- package/dist/builtins/games/wtf.data.js.map +1 -0
- package/dist/builtins/games/wtf.js +45 -0
- package/dist/builtins/games/wtf.js.map +1 -0
- package/dist/builtins/help.d.ts +8 -0
- package/dist/builtins/help.js +296 -0
- package/dist/builtins/help.js.map +1 -1
- package/dist/core/dispatch.js +125 -9
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/engine.js +1 -0
- package/dist/core/engine.js.map +1 -1
- package/dist/core/surface.d.ts +14 -0
- package/dist/core/surface.js.map +1 -1
- package/dist/lib/vfs/providers/static.js +15 -1
- package/dist/lib/vfs/providers/static.js.map +1 -1
- package/dist/lib/vfs/providers/static_content.js +2 -2
- package/dist/lib/vfs/providers/static_content.js.map +1 -1
- package/package.json +4 -4
package/dist/buildinfo.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"ff1316"}
|
package/dist/builtins/fs/pull.js
CHANGED
|
@@ -22,6 +22,7 @@ import { pacs_seriesCollect, pacsServer_resolve, } from '../net/pacsUtils.js';
|
|
|
22
22
|
import { builtin_cubepath } from '../net/cubepath.js';
|
|
23
23
|
import { pullArgs_parse } from './pull.args.js';
|
|
24
24
|
import { sink_get, sink_dataLine, sink_errLine } from '../../core/sink.js';
|
|
25
|
+
import { repl_confirm } from '../../core/question.js';
|
|
25
26
|
import { newFeed_cacheAdd, run_follow } from '../feedCreation.js';
|
|
26
27
|
import { builtin_pipeline } from '../res/pipeline.js';
|
|
27
28
|
import { executableArguments_parse } from '../argumentTokens.js';
|
|
@@ -41,6 +42,7 @@ function pullProgress_emit(task, status, phase = 'watching') {
|
|
|
41
42
|
unit: 'files',
|
|
42
43
|
status: status ?? retrieveProgress_classify(task),
|
|
43
44
|
...(task.cubePathDir !== null ? { path: task.cubePathDir } : {}),
|
|
45
|
+
...(task.reason !== undefined ? { reason: task.reason } : {}),
|
|
44
46
|
});
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
@@ -77,6 +79,18 @@ async function pulledFolders_announce(allTasks) {
|
|
|
77
79
|
*/
|
|
78
80
|
function pullEvents_make() {
|
|
79
81
|
return {
|
|
82
|
+
// A silent PACS is the operator's call, not a timer's: CUBE has been
|
|
83
|
+
// checked already, and the question says what it found.
|
|
84
|
+
stillWaiting: async (waiting, waitedS) => {
|
|
85
|
+
const which = waiting.length === 1 ? waiting[0].label : `${waiting.length} series`;
|
|
86
|
+
try {
|
|
87
|
+
return await repl_confirm(`No files from the PACS yet for ${which} after ${waitedS}s, and none in CUBE. Keep waiting? (y/n)`);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Nobody to ask (a script, a pipe): wait the longer window, then stop.
|
|
91
|
+
return waitedS < 60;
|
|
92
|
+
}
|
|
93
|
+
},
|
|
80
94
|
task: (task, status, phase) => pullProgress_emit(task, status, phase),
|
|
81
95
|
retryRound: (attempt, retryMax, count) => sink_dataLine(chalk.yellow(`\nRetry ${attempt}/${retryMax} for ${count} unconfirmed series...`)),
|
|
82
96
|
// Said out loud: a silent reconnection during a long pull is
|
|
@@ -196,6 +210,8 @@ function pullSummary_print(allTasks, totalFiringErrors) {
|
|
|
196
210
|
}
|
|
197
211
|
else {
|
|
198
212
|
sink_dataLine(chalk.yellow(` ✗ ${f.label} [${f.status.toUpperCase()} — verify with: pacs status]`));
|
|
213
|
+
if (f.reason !== undefined)
|
|
214
|
+
sink_dataLine(chalk.yellow(` ${f.reason}`));
|
|
199
215
|
}
|
|
200
216
|
}
|
|
201
217
|
for (const u of unconfirmed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/builtins/fs/pull.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/builtins/fs/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
2
|
+
/** Bytes `xxd` shows when not told. */
|
|
3
|
+
export declare const XXD_DEFAULT: number;
|
|
4
|
+
/** Strings `strings` shows when not told. */
|
|
5
|
+
export declare const STRINGS_DEFAULT: number;
|
|
6
|
+
/** What a file is, by its first bytes. */
|
|
7
|
+
export declare function magic_of(bytes: Buffer, name?: string): string;
|
|
8
|
+
/** The canonical hex dump of some bytes, offsets from `base`. */
|
|
9
|
+
export declare function hexdump_render(bytes: Buffer, base?: number): string;
|
|
10
|
+
/** The printable runs of at least `min` characters in some bytes. */
|
|
11
|
+
export declare function strings_find(bytes: Buffer, min?: number): string[];
|
|
12
|
+
/** `file <path>...` */
|
|
13
|
+
export declare function builtin_file(args: string[]): Promise<CommandEnvelope>;
|
|
14
|
+
/** `xxd [-s OFFSET] [-l LENGTH] <path>` */
|
|
15
|
+
export declare function builtin_xxd(args: string[]): Promise<CommandEnvelope>;
|
|
16
|
+
/** `strings [-n MIN] [-l LIMIT] <path>` */
|
|
17
|
+
export declare function builtin_strings(args: string[]): Promise<CommandEnvelope>;
|
|
18
|
+
/** `sha256sum <path>...` */
|
|
19
|
+
export declare function builtin_sha256sum(args: string[]): Promise<CommandEnvelope>;
|
|
20
|
+
/** `md5sum <path>...` */
|
|
21
|
+
export declare function builtin_md5sum(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Bytes of a CFS file: `file`, `xxd`, `strings`, `sha256sum`, `md5sum`.
|
|
3
|
+
*
|
|
4
|
+
* The way people learn what a file is: by its magic, in hex, by the words
|
|
5
|
+
* in it, by its digest. Each reads the file the way `cat` does, through
|
|
6
|
+
* the session's filesystem, so a path is a CFS path. `xxd` and `strings`
|
|
7
|
+
* are bounded and say what they showed.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
12
|
+
import { envelope_ok, envelope_error, errorStack } from '@fnndsc/cumin';
|
|
13
|
+
import { files_cat, files_catBinary } from '@fnndsc/chili/commands/fs/cat.js';
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
import { path_resolve, error_stripDebugPrefix } from '../utils.js';
|
|
16
|
+
/** Bytes `xxd` shows when not told. */
|
|
17
|
+
export const XXD_DEFAULT = 256;
|
|
18
|
+
/** Strings `strings` shows when not told. */
|
|
19
|
+
export const STRINGS_DEFAULT = 200;
|
|
20
|
+
/** What a file is, by its first bytes. */
|
|
21
|
+
export function magic_of(bytes, name = '') {
|
|
22
|
+
const at = (i) => bytes[i] ?? -1;
|
|
23
|
+
const ascii = (from, to) => bytes.subarray(from, to).toString('latin1');
|
|
24
|
+
if (bytes.length === 0)
|
|
25
|
+
return 'empty';
|
|
26
|
+
if (bytes.length > 132 && ascii(128, 132) === 'DICM')
|
|
27
|
+
return 'DICOM medical image (part 10, with preamble)';
|
|
28
|
+
if (at(0) === 0x1f && at(1) === 0x8b)
|
|
29
|
+
return /\.nii\.gz$/i.test(name) ? 'gzip compressed data, a NIfTI volume by its name' : 'gzip compressed data';
|
|
30
|
+
if (bytes.length >= 348 && (ascii(344, 348) === 'n+1\0' || ascii(344, 348) === 'ni1\0'))
|
|
31
|
+
return 'NIfTI-1 neuroimaging volume';
|
|
32
|
+
if (bytes.length >= 8 && ascii(4, 8) === 'n+2\0')
|
|
33
|
+
return 'NIfTI-2 neuroimaging volume';
|
|
34
|
+
if (ascii(0, 4) === '\x89PNG')
|
|
35
|
+
return 'PNG image';
|
|
36
|
+
if (at(0) === 0xff && at(1) === 0xd8)
|
|
37
|
+
return 'JPEG image';
|
|
38
|
+
if (ascii(0, 4) === 'GIF8')
|
|
39
|
+
return 'GIF image';
|
|
40
|
+
if (ascii(0, 4) === '%PDF')
|
|
41
|
+
return 'PDF document';
|
|
42
|
+
if (ascii(0, 2) === 'PK')
|
|
43
|
+
return 'ZIP archive';
|
|
44
|
+
if (ascii(0, 4) === 'MThd')
|
|
45
|
+
return 'MIDI';
|
|
46
|
+
if (ascii(0, 4) === 'RIFF')
|
|
47
|
+
return 'RIFF (WAV or AVI)';
|
|
48
|
+
if (ascii(0, 2) === 'BM')
|
|
49
|
+
return 'BMP image';
|
|
50
|
+
if (ascii(0, 7) === '!<arch>')
|
|
51
|
+
return 'ar archive';
|
|
52
|
+
if (ascii(0, 4) === '\x7fELF')
|
|
53
|
+
return 'ELF executable';
|
|
54
|
+
if (ascii(0, 5) === 'ustar' || ascii(257, 262) === 'ustar')
|
|
55
|
+
return 'tar archive';
|
|
56
|
+
if (at(0) === 0x42 && at(1) === 0x5a && at(2) === 0x68)
|
|
57
|
+
return 'bzip2 compressed data';
|
|
58
|
+
if (ascii(0, 6) === '\xfd7zXZ\0')
|
|
59
|
+
return 'xz compressed data';
|
|
60
|
+
const head = bytes.subarray(0, 4096);
|
|
61
|
+
let printable = 0;
|
|
62
|
+
for (const b of head)
|
|
63
|
+
if (b === 9 || b === 10 || b === 13 || (b >= 32 && b < 127) || b >= 128)
|
|
64
|
+
printable++;
|
|
65
|
+
if (printable / head.length > 0.95) {
|
|
66
|
+
const text = head.toString('utf-8');
|
|
67
|
+
if (/^\s*[{[]/.test(text))
|
|
68
|
+
return 'JSON text';
|
|
69
|
+
if (/^#!/.test(text))
|
|
70
|
+
return `script text (${text.split('\n')[0]?.slice(2).trim() ?? ''})`;
|
|
71
|
+
if (/^\s*<\?xml/i.test(text))
|
|
72
|
+
return 'XML text';
|
|
73
|
+
if (/^\s*<(!doctype html|html)/i.test(text))
|
|
74
|
+
return 'HTML text';
|
|
75
|
+
const lines = text.split('\n').slice(0, 5);
|
|
76
|
+
if (lines.length > 1 && lines.every((l) => l.split(',').length > 1))
|
|
77
|
+
return 'CSV text';
|
|
78
|
+
return head.some((b) => b >= 128) ? 'UTF-8 text' : 'ASCII text';
|
|
79
|
+
}
|
|
80
|
+
return 'data';
|
|
81
|
+
}
|
|
82
|
+
/** The canonical hex dump of some bytes, offsets from `base`. */
|
|
83
|
+
export function hexdump_render(bytes, base = 0) {
|
|
84
|
+
const lines = [];
|
|
85
|
+
for (let off = 0; off < bytes.length; off += 16) {
|
|
86
|
+
const chunk = bytes.subarray(off, off + 16);
|
|
87
|
+
const hex = [];
|
|
88
|
+
for (let i = 0; i < 16; i += 2) {
|
|
89
|
+
const a = chunk[i];
|
|
90
|
+
const b = chunk[i + 1];
|
|
91
|
+
hex.push(a === undefined ? ' ' : b === undefined ? `${a.toString(16).padStart(2, '0')} ` : `${a.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`);
|
|
92
|
+
}
|
|
93
|
+
const text = [...chunk].map((b) => (b >= 32 && b < 127 ? String.fromCharCode(b) : '.')).join('');
|
|
94
|
+
lines.push(`${(base + off).toString(16).padStart(8, '0')}: ${hex.join(' ')} ${text}`);
|
|
95
|
+
}
|
|
96
|
+
return lines.join('\n');
|
|
97
|
+
}
|
|
98
|
+
/** The printable runs of at least `min` characters in some bytes. */
|
|
99
|
+
export function strings_find(bytes, min = 4) {
|
|
100
|
+
const out = [];
|
|
101
|
+
let run = '';
|
|
102
|
+
for (const b of bytes) {
|
|
103
|
+
if (b >= 32 && b < 127) {
|
|
104
|
+
run += String.fromCharCode(b);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (run.length >= min)
|
|
108
|
+
out.push(run);
|
|
109
|
+
run = '';
|
|
110
|
+
}
|
|
111
|
+
if (run.length >= min)
|
|
112
|
+
out.push(run);
|
|
113
|
+
return out;
|
|
114
|
+
}
|
|
115
|
+
/** Reads a CFS file's bytes, or answers why not. */
|
|
116
|
+
async function bytes_read(pathArg, name) {
|
|
117
|
+
const target = await path_resolve(pathArg);
|
|
118
|
+
const result = await files_catBinary(target);
|
|
119
|
+
if (result.ok)
|
|
120
|
+
return { path: target, bytes: result.value };
|
|
121
|
+
// A projected file (/etc/cube, a /proc log) has words but no bytes of its
|
|
122
|
+
// own: its text is read instead, and the refusal of the first read is
|
|
123
|
+
// dropped — it was a question, not a failure.
|
|
124
|
+
const first = errorStack.stack_pop();
|
|
125
|
+
const text = await files_cat(target);
|
|
126
|
+
if (text.ok)
|
|
127
|
+
return { path: target, bytes: Buffer.from(text.value, 'utf-8') };
|
|
128
|
+
const last = errorStack.stack_pop() ?? first;
|
|
129
|
+
const why = last === undefined ? 'cannot read' : error_stripDebugPrefix(last.message);
|
|
130
|
+
return { error: envelope_error('', undefined, `${name}: ${pathArg}: ${why}\n`) };
|
|
131
|
+
}
|
|
132
|
+
/** Takes `-FLAG N` pairs off the arguments. */
|
|
133
|
+
function numberFlags_take(args, flags) {
|
|
134
|
+
const values = {};
|
|
135
|
+
const rest = [];
|
|
136
|
+
for (let i = 0; i < args.length; i++) {
|
|
137
|
+
const a = args[i];
|
|
138
|
+
if (flags.includes(a)) {
|
|
139
|
+
const n = Number(args[i + 1]);
|
|
140
|
+
if (!Number.isInteger(n) || n < 0)
|
|
141
|
+
return { refusal: `${a} wants a whole number` };
|
|
142
|
+
values[a] = n;
|
|
143
|
+
i++;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
rest.push(a);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return { values, rest };
|
|
150
|
+
}
|
|
151
|
+
/** `file <path>...` */
|
|
152
|
+
export async function builtin_file(args) {
|
|
153
|
+
if (args.length === 0)
|
|
154
|
+
return envelope_error('', undefined, 'file: usage: file <path>...\n');
|
|
155
|
+
const lines = [];
|
|
156
|
+
const data = [];
|
|
157
|
+
for (const arg of args) {
|
|
158
|
+
const read = await bytes_read(arg, 'file');
|
|
159
|
+
if ('error' in read)
|
|
160
|
+
return read.error;
|
|
161
|
+
const kind = magic_of(read.bytes, read.path);
|
|
162
|
+
lines.push(`${arg}: ${kind}${read.bytes.length > 0 ? chalk.gray(` (${read.bytes.length.toLocaleString('en-US')} bytes)`) : ''}`);
|
|
163
|
+
data.push({ path: read.path, kind, bytes: read.bytes.length });
|
|
164
|
+
}
|
|
165
|
+
return envelope_ok(`${lines.join('\n')}\n`, { kind: 'games.file', data: { files: data } });
|
|
166
|
+
}
|
|
167
|
+
/** `xxd [-s OFFSET] [-l LENGTH] <path>` */
|
|
168
|
+
export async function builtin_xxd(args) {
|
|
169
|
+
const parsed = numberFlags_take(args, ['-s', '-l']);
|
|
170
|
+
if ('refusal' in parsed)
|
|
171
|
+
return envelope_error('', undefined, `xxd: ${parsed.refusal}\n`);
|
|
172
|
+
if (parsed.rest.length !== 1)
|
|
173
|
+
return envelope_error('', undefined, 'xxd: usage: xxd [-s OFFSET] [-l LENGTH] <path>\n');
|
|
174
|
+
const read = await bytes_read(parsed.rest[0], 'xxd');
|
|
175
|
+
if ('error' in read)
|
|
176
|
+
return read.error;
|
|
177
|
+
const offset = parsed.values['-s'] ?? 0;
|
|
178
|
+
const length = parsed.values['-l'] ?? XXD_DEFAULT;
|
|
179
|
+
const shown = read.bytes.subarray(offset, offset + length);
|
|
180
|
+
const more = read.bytes.length - offset - shown.length;
|
|
181
|
+
const note = more > 0 ? chalk.gray(`\nxxd: ${shown.length} of ${read.bytes.length.toLocaleString('en-US')} bytes shown (-l ${length}; -s to start elsewhere)`) : '';
|
|
182
|
+
return envelope_ok(`${hexdump_render(shown, offset)}${note}\n`, { kind: 'games.xxd', data: { path: read.path, offset, shown: shown.length, total: read.bytes.length } });
|
|
183
|
+
}
|
|
184
|
+
/** `strings [-n MIN] [-l LIMIT] <path>` */
|
|
185
|
+
export async function builtin_strings(args) {
|
|
186
|
+
const parsed = numberFlags_take(args, ['-n', '-l']);
|
|
187
|
+
if ('refusal' in parsed)
|
|
188
|
+
return envelope_error('', undefined, `strings: ${parsed.refusal}\n`);
|
|
189
|
+
if (parsed.rest.length !== 1)
|
|
190
|
+
return envelope_error('', undefined, 'strings: usage: strings [-n MIN] [-l LIMIT] <path>\n');
|
|
191
|
+
const read = await bytes_read(parsed.rest[0], 'strings');
|
|
192
|
+
if ('error' in read)
|
|
193
|
+
return read.error;
|
|
194
|
+
const min = Math.max(1, parsed.values['-n'] ?? 4);
|
|
195
|
+
const limit = parsed.values['-l'] ?? STRINGS_DEFAULT;
|
|
196
|
+
const found = strings_find(read.bytes, min);
|
|
197
|
+
const shown = found.slice(0, limit);
|
|
198
|
+
const note = found.length > shown.length ? chalk.gray(`\nstrings: ${shown.length} of ${found.length} shown (-l for more)`) : '';
|
|
199
|
+
return envelope_ok(`${shown.join('\n')}${note}\n`, { kind: 'games.strings', data: { path: read.path, shown: shown.length, total: found.length } });
|
|
200
|
+
}
|
|
201
|
+
async function digest_run(args, algorithm, name) {
|
|
202
|
+
if (args.length === 0)
|
|
203
|
+
return envelope_error('', undefined, `${name}: usage: ${name} <path>...\n`);
|
|
204
|
+
const lines = [];
|
|
205
|
+
const data = [];
|
|
206
|
+
for (const arg of args) {
|
|
207
|
+
const read = await bytes_read(arg, name);
|
|
208
|
+
if ('error' in read)
|
|
209
|
+
return read.error;
|
|
210
|
+
const digest = createHash(algorithm).update(read.bytes).digest('hex');
|
|
211
|
+
lines.push(`${digest} ${arg}`);
|
|
212
|
+
data.push({ path: read.path, digest });
|
|
213
|
+
}
|
|
214
|
+
return envelope_ok(`${lines.join('\n')}\n`, { kind: `games.${name}`, data: { algorithm, files: data } });
|
|
215
|
+
}
|
|
216
|
+
/** `sha256sum <path>...` */
|
|
217
|
+
export async function builtin_sha256sum(args) {
|
|
218
|
+
return digest_run(args, 'sha256', 'sha256sum');
|
|
219
|
+
}
|
|
220
|
+
/** `md5sum <path>...` */
|
|
221
|
+
export async function builtin_md5sum(args) {
|
|
222
|
+
return digest_run(args, 'md5', 'md5sum');
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=bytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/builtins/games/bytes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Chimes: `timer`, `leave` and `stopwatch`.
|
|
3
|
+
*
|
|
4
|
+
* A chime is a word said later. The kernel keeps it on a clock and, when
|
|
5
|
+
* the time comes, publishes it on the ambient channel as an envelope of
|
|
6
|
+
* its own — the same road a refreshed listing takes — so every surface on
|
|
7
|
+
* the session hears it: ARGUS notes it in the console and speaks it, a
|
|
8
|
+
* remote chell prints it. Nothing holds the lane while it waits. A chime
|
|
9
|
+
* lives as long as the process: a session's chimes end with it.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
14
|
+
/** A chime waiting its turn. */
|
|
15
|
+
export interface Chime {
|
|
16
|
+
id: number;
|
|
17
|
+
/** When it sounds, epoch ms. */
|
|
18
|
+
at: number;
|
|
19
|
+
text: string;
|
|
20
|
+
/** What set it. */
|
|
21
|
+
source: 'timer' | 'leave';
|
|
22
|
+
}
|
|
23
|
+
/** The longest a chime may wait. */
|
|
24
|
+
export declare const CHIME_MAX_MS: number;
|
|
25
|
+
/** What sounding a chime does; a test hands in its own ear. */
|
|
26
|
+
export type ChimeSound = (chime: Chime) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Sets a chime.
|
|
29
|
+
*
|
|
30
|
+
* @param delayMs - How long from now.
|
|
31
|
+
* @param text - What it says.
|
|
32
|
+
* @param source - What set it.
|
|
33
|
+
* @param sound - How it sounds (the ambient channel by default).
|
|
34
|
+
* @returns The chime.
|
|
35
|
+
*/
|
|
36
|
+
export declare function chime_set(delayMs: number, text: string, source: Chime['source'], sound?: ChimeSound): Chime;
|
|
37
|
+
/** The chimes still waiting, soonest first. */
|
|
38
|
+
export declare function chimes_list(): Chime[];
|
|
39
|
+
/**
|
|
40
|
+
* Cancels one chime, or every chime of a source, or all of them.
|
|
41
|
+
*
|
|
42
|
+
* @returns How many were cancelled.
|
|
43
|
+
*/
|
|
44
|
+
export declare function chimes_cancel(which: number | Chime['source'] | 'all'): number;
|
|
45
|
+
/**
|
|
46
|
+
* Reads a duration: `90s`, `5m`, `1h30m`, `2:30` (m:ss), `1:00:00`, or a bare number of minutes.
|
|
47
|
+
*
|
|
48
|
+
* @returns Milliseconds, or null when the words are not a duration.
|
|
49
|
+
*/
|
|
50
|
+
export declare function duration_parse(text: string): number | null;
|
|
51
|
+
/** A span in words: `1h 05m`, `4m 30s`, `12s`. */
|
|
52
|
+
export declare function span_words(ms: number): string;
|
|
53
|
+
/** `timer <duration> [words] | timer | timer cancel [id|all]` */
|
|
54
|
+
export declare function builtin_timer(args: string[]): Promise<CommandEnvelope>;
|
|
55
|
+
/** Reads `+hhmm` (from now) or `hhmm` (a clock time, today or tomorrow) as a delay. */
|
|
56
|
+
export declare function leave_delay(text: string, now?: Date): number | null;
|
|
57
|
+
/** `leave [+hhmm | hhmm] | leave cancel` — BSD's leave: a word five minutes before, one at the time, and one after. */
|
|
58
|
+
export declare function builtin_leave(args: string[]): Promise<CommandEnvelope>;
|
|
59
|
+
/** The stopwatch's elapsed time now. */
|
|
60
|
+
export declare function stopwatch_elapsed(now?: number): number;
|
|
61
|
+
/** Resets the stopwatch (a test's seam, and `stopwatch reset`). */
|
|
62
|
+
export declare function stopwatch_reset(): void;
|
|
63
|
+
/** `stopwatch [start|stop|lap|reset]` — bare, it shows the time. */
|
|
64
|
+
export declare function builtin_stopwatch(args: string[]): Promise<CommandEnvelope>;
|