@fnndsc/chell 4.2.8
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/LICENSE +21 -0
- package/README.md +325 -0
- package/dist/builtins/debug.d.ts +6 -0
- package/dist/builtins/debug.js +47 -0
- package/dist/builtins/debug.js.map +1 -0
- package/dist/builtins/executable.d.ts +22 -0
- package/dist/builtins/executable.js +115 -0
- package/dist/builtins/executable.js.map +1 -0
- package/dist/builtins/fs/cat.d.ts +16 -0
- package/dist/builtins/fs/cat.js +249 -0
- package/dist/builtins/fs/cat.js.map +1 -0
- package/dist/builtins/fs/cd.d.ts +41 -0
- package/dist/builtins/fs/cd.js +178 -0
- package/dist/builtins/fs/cd.js.map +1 -0
- package/dist/builtins/fs/cp.d.ts +7 -0
- package/dist/builtins/fs/cp.js +73 -0
- package/dist/builtins/fs/cp.js.map +1 -0
- package/dist/builtins/fs/download.d.ts +6 -0
- package/dist/builtins/fs/download.js +41 -0
- package/dist/builtins/fs/download.js.map +1 -0
- package/dist/builtins/fs/du.d.ts +58 -0
- package/dist/builtins/fs/du.js +210 -0
- package/dist/builtins/fs/du.js.map +1 -0
- package/dist/builtins/fs/edit.d.ts +7 -0
- package/dist/builtins/fs/edit.js +86 -0
- package/dist/builtins/fs/edit.js.map +1 -0
- package/dist/builtins/fs/ls.d.ts +8 -0
- package/dist/builtins/fs/ls.js +68 -0
- package/dist/builtins/fs/ls.js.map +1 -0
- package/dist/builtins/fs/mkdir.d.ts +6 -0
- package/dist/builtins/fs/mkdir.js +38 -0
- package/dist/builtins/fs/mkdir.js.map +1 -0
- package/dist/builtins/fs/mv.d.ts +7 -0
- package/dist/builtins/fs/mv.js +75 -0
- package/dist/builtins/fs/mv.js.map +1 -0
- package/dist/builtins/fs/pull.args.d.ts +22 -0
- package/dist/builtins/fs/pull.args.js +30 -0
- package/dist/builtins/fs/pull.args.js.map +1 -0
- package/dist/builtins/fs/pull.d.ts +26 -0
- package/dist/builtins/fs/pull.js +413 -0
- package/dist/builtins/fs/pull.js.map +1 -0
- package/dist/builtins/fs/pwd.d.ts +7 -0
- package/dist/builtins/fs/pwd.js +75 -0
- package/dist/builtins/fs/pwd.js.map +1 -0
- package/dist/builtins/fs/rm.d.ts +31 -0
- package/dist/builtins/fs/rm.js +148 -0
- package/dist/builtins/fs/rm.js.map +1 -0
- package/dist/builtins/fs/touch.d.ts +6 -0
- package/dist/builtins/fs/touch.js +64 -0
- package/dist/builtins/fs/touch.js.map +1 -0
- package/dist/builtins/fs/tree.d.ts +15 -0
- package/dist/builtins/fs/tree.js +84 -0
- package/dist/builtins/fs/tree.js.map +1 -0
- package/dist/builtins/fs/upload.d.ts +6 -0
- package/dist/builtins/fs/upload.js +45 -0
- package/dist/builtins/fs/upload.js.map +1 -0
- package/dist/builtins/help.d.ts +74 -0
- package/dist/builtins/help.js +1217 -0
- package/dist/builtins/help.js.map +1 -0
- package/dist/builtins/index.d.ts +45 -0
- package/dist/builtins/index.js +45 -0
- package/dist/builtins/index.js.map +1 -0
- package/dist/builtins/net/connect.d.ts +7 -0
- package/dist/builtins/net/connect.js +42 -0
- package/dist/builtins/net/connect.js.map +1 -0
- package/dist/builtins/net/cubepath.d.ts +18 -0
- package/dist/builtins/net/cubepath.js +102 -0
- package/dist/builtins/net/cubepath.js.map +1 -0
- package/dist/builtins/net/logout.d.ts +6 -0
- package/dist/builtins/net/logout.js +24 -0
- package/dist/builtins/net/logout.js.map +1 -0
- package/dist/builtins/net/pacs.d.ts +24 -0
- package/dist/builtins/net/pacs.js +121 -0
- package/dist/builtins/net/pacs.js.map +1 -0
- package/dist/builtins/net/pacsUtils.d.ts +85 -0
- package/dist/builtins/net/pacsUtils.js +184 -0
- package/dist/builtins/net/pacsUtils.js.map +1 -0
- package/dist/builtins/net/query.d.ts +60 -0
- package/dist/builtins/net/query.js +304 -0
- package/dist/builtins/net/query.js.map +1 -0
- package/dist/builtins/parametersofplugin.d.ts +13 -0
- package/dist/builtins/parametersofplugin.js +43 -0
- package/dist/builtins/parametersofplugin.js.map +1 -0
- package/dist/builtins/pluginExecute.d.ts +27 -0
- package/dist/builtins/pluginExecute.js +165 -0
- package/dist/builtins/pluginExecute.js.map +1 -0
- package/dist/builtins/proc.d.ts +6 -0
- package/dist/builtins/proc.helpers.d.ts +68 -0
- package/dist/builtins/proc.helpers.js +102 -0
- package/dist/builtins/proc.helpers.js.map +1 -0
- package/dist/builtins/proc.js +289 -0
- package/dist/builtins/proc.js.map +1 -0
- package/dist/builtins/res/compute.d.ts +6 -0
- package/dist/builtins/res/compute.js +55 -0
- package/dist/builtins/res/compute.js.map +1 -0
- package/dist/builtins/res/feed.d.ts +6 -0
- package/dist/builtins/res/feed.js +244 -0
- package/dist/builtins/res/feed.js.map +1 -0
- package/dist/builtins/res/feed.notes.d.ts +28 -0
- package/dist/builtins/res/feed.notes.js +24 -0
- package/dist/builtins/res/feed.notes.js.map +1 -0
- package/dist/builtins/res/files.d.ts +18 -0
- package/dist/builtins/res/files.js +85 -0
- package/dist/builtins/res/files.js.map +1 -0
- package/dist/builtins/res/group.d.ts +6 -0
- package/dist/builtins/res/group.js +54 -0
- package/dist/builtins/res/group.js.map +1 -0
- package/dist/builtins/res/pipeline.args.d.ts +22 -0
- package/dist/builtins/res/pipeline.args.js +28 -0
- package/dist/builtins/res/pipeline.args.js.map +1 -0
- package/dist/builtins/res/pipeline.d.ts +20 -0
- package/dist/builtins/res/pipeline.js +252 -0
- package/dist/builtins/res/pipeline.js.map +1 -0
- package/dist/builtins/res/plugin.d.ts +13 -0
- package/dist/builtins/res/plugin.js +140 -0
- package/dist/builtins/res/plugin.js.map +1 -0
- package/dist/builtins/res/plugininstance.d.ts +6 -0
- package/dist/builtins/res/plugininstance.js +53 -0
- package/dist/builtins/res/plugininstance.js.map +1 -0
- package/dist/builtins/res/pluginmeta.d.ts +6 -0
- package/dist/builtins/res/pluginmeta.js +53 -0
- package/dist/builtins/res/pluginmeta.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +6 -0
- package/dist/builtins/res/tag.js +53 -0
- package/dist/builtins/res/tag.js.map +1 -0
- package/dist/builtins/res/workflow.d.ts +6 -0
- package/dist/builtins/res/workflow.js +53 -0
- package/dist/builtins/res/workflow.js.map +1 -0
- package/dist/builtins/store.d.ts +6 -0
- package/dist/builtins/store.js +108 -0
- package/dist/builtins/store.js.map +1 -0
- package/dist/builtins/sys/context.d.ts +6 -0
- package/dist/builtins/sys/context.js +50 -0
- package/dist/builtins/sys/context.js.map +1 -0
- package/dist/builtins/sys/physicalmode.d.ts +6 -0
- package/dist/builtins/sys/physicalmode.js +41 -0
- package/dist/builtins/sys/physicalmode.js.map +1 -0
- package/dist/builtins/sys/prompt.d.ts +13 -0
- package/dist/builtins/sys/prompt.helpers.d.ts +31 -0
- package/dist/builtins/sys/prompt.helpers.js +36 -0
- package/dist/builtins/sys/prompt.helpers.js.map +1 -0
- package/dist/builtins/sys/prompt.js +182 -0
- package/dist/builtins/sys/prompt.js.map +1 -0
- package/dist/builtins/sys/timing.d.ts +6 -0
- package/dist/builtins/sys/timing.js +41 -0
- package/dist/builtins/sys/timing.js.map +1 -0
- package/dist/builtins/sys/whoami.d.ts +12 -0
- package/dist/builtins/sys/whoami.js +37 -0
- package/dist/builtins/sys/whoami.js.map +1 -0
- package/dist/builtins/utils.d.ts +55 -0
- package/dist/builtins/utils.js +145 -0
- package/dist/builtins/utils.js.map +1 -0
- package/dist/builtins/wildcard.d.ts +26 -0
- package/dist/builtins/wildcard.js +120 -0
- package/dist/builtins/wildcard.js.map +1 -0
- package/dist/chell.d.ts +16 -0
- package/dist/chell.js +1193 -0
- package/dist/chell.js.map +1 -0
- package/dist/command-keys.d.ts +8 -0
- package/dist/command-keys.js +32 -0
- package/dist/command-keys.js.map +1 -0
- package/dist/config/settings.d.ts +39 -0
- package/dist/config/settings.js +93 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/core/bootFlags.d.ts +32 -0
- package/dist/core/bootFlags.js +25 -0
- package/dist/core/bootFlags.js.map +1 -0
- package/dist/core/cli.d.ts +58 -0
- package/dist/core/cli.js +251 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/prompt/index.d.ts +80 -0
- package/dist/core/prompt/index.js +29 -0
- package/dist/core/prompt/index.js.map +1 -0
- package/dist/core/prompt/theme_default.d.ts +19 -0
- package/dist/core/prompt/theme_default.js +47 -0
- package/dist/core/prompt/theme_default.js.map +1 -0
- package/dist/core/prompt/theme_p10k.d.ts +22 -0
- package/dist/core/prompt/theme_p10k.js +164 -0
- package/dist/core/prompt/theme_p10k.js.map +1 -0
- package/dist/core/prompt/utils.d.ts +23 -0
- package/dist/core/prompt/utils.js +40 -0
- package/dist/core/prompt/utils.js.map +1 -0
- package/dist/core/question.d.ts +34 -0
- package/dist/core/question.js +76 -0
- package/dist/core/question.js.map +1 -0
- package/dist/core/repl.d.ts +31 -0
- package/dist/core/repl.js +146 -0
- package/dist/core/repl.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/bootsequence.d.ts +62 -0
- package/dist/lib/bootsequence.js +222 -0
- package/dist/lib/bootsequence.js.map +1 -0
- package/dist/lib/completer/index.d.ts +15 -0
- package/dist/lib/completer/index.js +212 -0
- package/dist/lib/completer/index.js.map +1 -0
- package/dist/lib/completer/pathComplete.helpers.d.ts +22 -0
- package/dist/lib/completer/pathComplete.helpers.js +49 -0
- package/dist/lib/completer/pathComplete.helpers.js.map +1 -0
- package/dist/lib/logo.d.ts +47 -0
- package/dist/lib/logo.js +313 -0
- package/dist/lib/logo.js.map +1 -0
- package/dist/lib/parser.d.ts +13 -0
- package/dist/lib/parser.js +52 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/pipe.d.ts +11 -0
- package/dist/lib/pipe.js +90 -0
- package/dist/lib/pipe.js.map +1 -0
- package/dist/lib/prefetch.d.ts +25 -0
- package/dist/lib/prefetch.js +64 -0
- package/dist/lib/prefetch.js.map +1 -0
- package/dist/lib/semicolonParser.d.ts +22 -0
- package/dist/lib/semicolonParser.js +53 -0
- package/dist/lib/semicolonParser.js.map +1 -0
- package/dist/lib/spinner.d.ts +23 -0
- package/dist/lib/spinner.js +68 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/vfs/providers/static.d.ts +65 -0
- package/dist/lib/vfs/providers/static.js +164 -0
- package/dist/lib/vfs/providers/static.js.map +1 -0
- package/dist/lib/vfs/providers/static_content.d.ts +27 -0
- package/dist/lib/vfs/providers/static_content.js +180 -0
- package/dist/lib/vfs/providers/static_content.js.map +1 -0
- package/dist/lib/vfs/vfs.d.ts +59 -0
- package/dist/lib/vfs/vfs.js +198 -0
- package/dist/lib/vfs/vfs.js.map +1 -0
- package/dist/session/index.d.ts +76 -0
- package/dist/session/index.js +120 -0
- package/dist/session/index.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file REPL Logic.
|
|
3
|
+
*
|
|
4
|
+
* Manages the Read-Eval-Print Loop using Node.js readline.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import * as readline from 'readline';
|
|
9
|
+
import * as fs from 'fs';
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import { session } from '../session/index.js';
|
|
12
|
+
import { input_complete } from '../lib/completer/index.js';
|
|
13
|
+
import { settings } from '../config/settings.js';
|
|
14
|
+
import { context_getSingle } from '@fnndsc/salsa';
|
|
15
|
+
import { prompt_render } from './prompt/index.js';
|
|
16
|
+
import { repl_questionRegister } from './question.js';
|
|
17
|
+
import { procCache_get } from '@fnndsc/cumin';
|
|
18
|
+
/**
|
|
19
|
+
* Handles the Read-Eval-Print Loop (REPL) interaction.
|
|
20
|
+
*/
|
|
21
|
+
export class REPL {
|
|
22
|
+
rl;
|
|
23
|
+
isOpen = true;
|
|
24
|
+
lastCommandDurationMs = 0;
|
|
25
|
+
lastExitCode = 0;
|
|
26
|
+
/**
|
|
27
|
+
* Initializes the REPL interface.
|
|
28
|
+
*/
|
|
29
|
+
constructor() {
|
|
30
|
+
this.rl = readline.createInterface({
|
|
31
|
+
input: process.stdin,
|
|
32
|
+
output: process.stdout,
|
|
33
|
+
prompt: '> ',
|
|
34
|
+
completer: input_complete,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Starts the REPL loop.
|
|
39
|
+
* @param commandHandler - Async function to process each input line.
|
|
40
|
+
*/
|
|
41
|
+
async start(commandHandler) {
|
|
42
|
+
repl_questionRegister((prompt) => new Promise((resolve) => {
|
|
43
|
+
this.rl.question(prompt, (answer) => resolve(answer.trim()));
|
|
44
|
+
}), (prompt) => {
|
|
45
|
+
const rlInternal = this.rl;
|
|
46
|
+
const origWrite = rlInternal._writeToOutput.bind(this.rl);
|
|
47
|
+
rlInternal._writeToOutput = (_str) => { };
|
|
48
|
+
process.stdout.write(prompt);
|
|
49
|
+
return new Promise((resolve) => {
|
|
50
|
+
this.rl.question('', (answer) => {
|
|
51
|
+
rlInternal._writeToOutput = origWrite;
|
|
52
|
+
process.stdout.write('\n');
|
|
53
|
+
resolve(answer.trim());
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
await this.history_load();
|
|
58
|
+
await this.prompt_update();
|
|
59
|
+
this.rl.on('line', async (line) => {
|
|
60
|
+
await this.history_append(line);
|
|
61
|
+
const startMs = Date.now();
|
|
62
|
+
process.exitCode = 0;
|
|
63
|
+
await commandHandler(line);
|
|
64
|
+
this.lastCommandDurationMs = Date.now() - startMs;
|
|
65
|
+
this.lastExitCode = process.exitCode ?? 0;
|
|
66
|
+
if (this.isOpen) {
|
|
67
|
+
await this.prompt_update();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
this.rl.on('SIGINT', () => {
|
|
71
|
+
// Ctrl+C cancels the current input line and re-prompts — does not exit.
|
|
72
|
+
process.stdout.write('\n');
|
|
73
|
+
readline.clearLine(process.stdout, 0);
|
|
74
|
+
this.prompt_update();
|
|
75
|
+
});
|
|
76
|
+
this.rl.on('close', () => {
|
|
77
|
+
this.isOpen = false;
|
|
78
|
+
console.log(chalk.cyan('Exiting ChELL. Goodbye!'));
|
|
79
|
+
process.exit(0);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Updates and redisplays the prompt based on current session state.
|
|
84
|
+
*/
|
|
85
|
+
async prompt_update() {
|
|
86
|
+
if (!this.isOpen)
|
|
87
|
+
return;
|
|
88
|
+
const context = await context_getSingle();
|
|
89
|
+
const cwd = await session.getCWD();
|
|
90
|
+
const isOffline = session.offline;
|
|
91
|
+
const warmupRaw = procCache_get().warmupProgress_get();
|
|
92
|
+
const procWarmup = warmupRaw.active ? { loaded: warmupRaw.loaded } : undefined;
|
|
93
|
+
const ctx = {
|
|
94
|
+
user: isOffline ? 'disconnected' : (context.user ?? 'disconnected'),
|
|
95
|
+
uri: isOffline ? 'no-cube' : (context.URL ?? 'no-cube'),
|
|
96
|
+
cwd: isOffline ? '/' : cwd,
|
|
97
|
+
pacsserver: context.pacsserver ?? null,
|
|
98
|
+
physicalMode: session.physicalMode_get(),
|
|
99
|
+
terminalWidth: process.stdout.columns || 80,
|
|
100
|
+
lastExitCode: this.lastExitCode,
|
|
101
|
+
lastCommandDurationMs: this.lastCommandDurationMs,
|
|
102
|
+
p10kSegments: settings.config.p10kSegments,
|
|
103
|
+
procWarmup,
|
|
104
|
+
};
|
|
105
|
+
this.rl.setPrompt(prompt_render(settings.config.promptTheme, ctx));
|
|
106
|
+
try {
|
|
107
|
+
this.rl.prompt();
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
// Interface might be closed
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Loads command history from file.
|
|
115
|
+
*/
|
|
116
|
+
async history_load() {
|
|
117
|
+
const file = settings.config.historyFile;
|
|
118
|
+
if (fs.existsSync(file)) {
|
|
119
|
+
try {
|
|
120
|
+
const content = await fs.promises.readFile(file, 'utf-8');
|
|
121
|
+
const lines = content.split('\n').filter((l) => l.trim()).reverse();
|
|
122
|
+
const limit = settings.config.historySize;
|
|
123
|
+
this.rl.history = lines.slice(0, limit);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
// Silently fail if history cannot be loaded
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Appends a command to the history file.
|
|
132
|
+
* @param line - The command line to append.
|
|
133
|
+
*/
|
|
134
|
+
async history_append(line) {
|
|
135
|
+
if (!line.trim())
|
|
136
|
+
return;
|
|
137
|
+
const file = settings.config.historyFile;
|
|
138
|
+
try {
|
|
139
|
+
await fs.promises.appendFile(file, line + '\n');
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
// Silently fail if history cannot be saved
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=repl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/core/repl.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @file ChELL Entry Point
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
// Suppress DEP0169 warning from axios/proxy-from-env dependency.
|
|
8
|
+
// proxy-from-env 1.1.0 (pulled via axios) still uses url.parse(), which triggers
|
|
9
|
+
// a deprecation warning in Node. This suppression is safe to remove once that
|
|
10
|
+
// dependency migrates to the WHATWG URL API or axios drops it.
|
|
11
|
+
const originalEmitWarning = process.emitWarning;
|
|
12
|
+
process.emitWarning = function (warning, ...args) {
|
|
13
|
+
if (typeof warning === 'string' &&
|
|
14
|
+
(warning.includes('DEP0169') || warning.includes('url.parse()'))) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
return originalEmitWarning.call(process, warning, ...args);
|
|
18
|
+
};
|
|
19
|
+
import { fileURLToPath } from 'url';
|
|
20
|
+
import { realpathSync } from 'fs';
|
|
21
|
+
import { chell_start } from './chell.js';
|
|
22
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
23
|
+
// Compare real paths to handle symlinks (e.g. global install)
|
|
24
|
+
let isMain = false;
|
|
25
|
+
try {
|
|
26
|
+
isMain = realpathSync(process.argv[1]) === realpathSync(currentFile);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
// Fallback or ignore
|
|
30
|
+
}
|
|
31
|
+
if (isMain) {
|
|
32
|
+
chell_start();
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,iEAAiE;AACjE,iFAAiF;AACjF,8EAA8E;AAC9E,+DAA+D;AAC/D,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;AAChD,OAAO,CAAC,WAAW,GAAG,UAAU,OAAuB,EAAE,GAAG,IAAW;IACrE,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAChE,CAAC;QACD,OAAO;IACT,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3D,8DAA8D;AAC9D,IAAI,MAAM,GAAY,KAAK,CAAC;AAC5B,IAAI,CAAC;IACH,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,WAAW,CAAC,CAAC;AACvE,CAAC;AAAC,OAAO,CAAU,EAAE,CAAC;IACpB,qBAAqB;AACvB,CAAC;AAED,IAAI,MAAM,EAAE,CAAC;IACX,WAAW,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Boot-sequence logging and intro-panel rendering for chell startup.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A single labeled boot-info line.
|
|
8
|
+
*/
|
|
9
|
+
export interface BootInfoItem {
|
|
10
|
+
label: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A three-column boot-info line.
|
|
15
|
+
*/
|
|
16
|
+
export interface BootInfoItem3 {
|
|
17
|
+
app: string;
|
|
18
|
+
name: string;
|
|
19
|
+
version: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Grouped boot-info panels (header, local, chris).
|
|
23
|
+
*/
|
|
24
|
+
export interface BootPanels {
|
|
25
|
+
header: BootInfoItem3[];
|
|
26
|
+
local: BootInfoItem[];
|
|
27
|
+
chris: BootInfoItem[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Status of a boot step: ok, skip, or fail.
|
|
31
|
+
*/
|
|
32
|
+
export type BootStatus = 'ok' | 'skip' | 'fail';
|
|
33
|
+
/**
|
|
34
|
+
* Creates a boot logger that renders a titled status box.
|
|
35
|
+
*
|
|
36
|
+
* @param title - Box title.
|
|
37
|
+
* @param useAscii - Use ASCII (vs unicode) box characters.
|
|
38
|
+
* @returns A boot logger exposing status-logging helpers.
|
|
39
|
+
*/
|
|
40
|
+
export declare function bootLogger_create(title: string, useAscii: boolean): {
|
|
41
|
+
header_print(): void;
|
|
42
|
+
footer_print(): void;
|
|
43
|
+
log(status: BootStatus, label: string, message: string): void;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Prints the intro panels side-by-side with the logo.
|
|
47
|
+
*
|
|
48
|
+
* @param logoLines - Rendered logo lines.
|
|
49
|
+
* @param panels - Boot-info panels.
|
|
50
|
+
* @param useColor - Whether to colorize output.
|
|
51
|
+
* @param useAscii - Use ASCII box characters.
|
|
52
|
+
*/
|
|
53
|
+
export declare function bootsequence_printIntroPanels(logoLines: string[], panels: BootPanels, useColor: boolean, useAscii: boolean): void;
|
|
54
|
+
/**
|
|
55
|
+
* Prints the intro panels stacked vertically with the logo.
|
|
56
|
+
*
|
|
57
|
+
* @param logoLines - Rendered logo lines.
|
|
58
|
+
* @param panels - Boot-info panels.
|
|
59
|
+
* @param useColor - Whether to colorize output.
|
|
60
|
+
* @param useAscii - Use ASCII box characters.
|
|
61
|
+
*/
|
|
62
|
+
export declare function bootsequence_printIntroPanelsStacked(logoLines: string[], panels: BootPanels, useColor: boolean, useAscii: boolean): void;
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Boot-sequence logging and intro-panel rendering for chell startup.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
function text_visibleLength(text) {
|
|
8
|
+
// Strip all ANSI escape sequences robustly to calculate correct visible width
|
|
9
|
+
return text.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '').length;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates a boot logger that renders a titled status box.
|
|
13
|
+
*
|
|
14
|
+
* @param title - Box title.
|
|
15
|
+
* @param useAscii - Use ASCII (vs unicode) box characters.
|
|
16
|
+
* @returns A boot logger exposing status-logging helpers.
|
|
17
|
+
*/
|
|
18
|
+
export function bootLogger_create(title, useAscii) {
|
|
19
|
+
const horiz = useAscii ? '-' : '─';
|
|
20
|
+
const cornerTL = useAscii ? '+' : '┌';
|
|
21
|
+
const cornerTR = useAscii ? '+' : '┐';
|
|
22
|
+
const cornerBL = useAscii ? '+' : '└';
|
|
23
|
+
const cornerBR = useAscii ? '+' : '┘';
|
|
24
|
+
const bar = horiz.repeat(Math.max(title.length + 8, 30));
|
|
25
|
+
const lineTop = `${cornerTL}${bar}${cornerTR}`;
|
|
26
|
+
const lineBot = `${cornerBL}${bar}${cornerBR}`;
|
|
27
|
+
const statusPad = (label) => label.padEnd(12);
|
|
28
|
+
const statusTag = (status) => {
|
|
29
|
+
switch (status) {
|
|
30
|
+
case 'ok': return chalk.green('[ OK ]');
|
|
31
|
+
case 'skip': return chalk.yellow('[SKIP]');
|
|
32
|
+
case 'fail': return chalk.red('[FAIL]');
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
header_print() { console.log(lineTop); },
|
|
37
|
+
footer_print() { console.log(lineBot); },
|
|
38
|
+
log(status, label, message) {
|
|
39
|
+
console.log(`${statusTag(status)} ${statusPad(label)} ${message}`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function box_render(title, rows, useColor, useAscii) {
|
|
44
|
+
if (rows.length === 0)
|
|
45
|
+
return [];
|
|
46
|
+
const horiz = useAscii ? '-' : '─';
|
|
47
|
+
const vert = useAscii ? '|' : '│';
|
|
48
|
+
const cornerTL = useAscii ? '+' : '┌';
|
|
49
|
+
const cornerTR = useAscii ? '+' : '┐';
|
|
50
|
+
const cornerBL = useAscii ? '+' : '└';
|
|
51
|
+
const cornerBR = useAscii ? '+' : '┘';
|
|
52
|
+
const maxLabel = rows.reduce((max, item) => Math.max(max, item.label.length), title.length);
|
|
53
|
+
const maxValue = rows.reduce((max, item) => Math.max(max, text_visibleLength(item.value)), 0);
|
|
54
|
+
const innerWidth = Math.max(maxLabel + maxValue + 3, title.length + 2);
|
|
55
|
+
const line = horiz.repeat(innerWidth);
|
|
56
|
+
const titlePadded = title.padEnd(innerWidth);
|
|
57
|
+
const lines = [];
|
|
58
|
+
lines.push(`${cornerTL}${line}${cornerTR}`);
|
|
59
|
+
lines.push(`${vert}${useColor ? chalk.cyan(titlePadded) : titlePadded}${vert}`);
|
|
60
|
+
rows.forEach((item) => {
|
|
61
|
+
const rawContent = `${item.label.padEnd(maxLabel)} ${item.value}`;
|
|
62
|
+
const visLen = text_visibleLength(rawContent);
|
|
63
|
+
const padCount = Math.max(0, innerWidth - visLen);
|
|
64
|
+
const label = useColor ? chalk.yellow(item.label.padEnd(maxLabel)) : item.label.padEnd(maxLabel);
|
|
65
|
+
const value = useColor ? chalk.white(item.value) : item.value;
|
|
66
|
+
const paddedLine = `${label} ${value}${' '.repeat(padCount)}`;
|
|
67
|
+
lines.push(`${vert}${paddedLine}${vert}`);
|
|
68
|
+
});
|
|
69
|
+
lines.push(`${cornerBL}${line}${cornerBR}`);
|
|
70
|
+
return lines;
|
|
71
|
+
}
|
|
72
|
+
function box_minWidth(title, rows) {
|
|
73
|
+
const maxLabel = rows.reduce((max, item) => Math.max(max, item.label.length), title.length);
|
|
74
|
+
const maxValue = rows.reduce((max, item) => Math.max(max, text_visibleLength(item.value)), 0);
|
|
75
|
+
return Math.max(maxLabel + maxValue + 3, title.length + 2);
|
|
76
|
+
}
|
|
77
|
+
function box_minWidth3Col(title, rows) {
|
|
78
|
+
const c1 = rows.reduce((max, r) => Math.max(max, r.app.length), 0);
|
|
79
|
+
const c2 = rows.reduce((max, r) => Math.max(max, r.name.length), 0);
|
|
80
|
+
const c3 = rows.reduce((max, r) => Math.max(max, r.version.length), 0);
|
|
81
|
+
return Math.max(c1 + 2 + c2 + 2 + c3, title.length + 2);
|
|
82
|
+
}
|
|
83
|
+
function box_render3Col_withMin(title, rows, useColor, useAscii, minInner) {
|
|
84
|
+
if (rows.length === 0)
|
|
85
|
+
return [];
|
|
86
|
+
const horiz = useAscii ? '-' : '─';
|
|
87
|
+
const vert = useAscii ? '|' : '│';
|
|
88
|
+
const cornerTL = useAscii ? '+' : '┌';
|
|
89
|
+
const cornerTR = useAscii ? '+' : '┐';
|
|
90
|
+
const cornerBL = useAscii ? '+' : '└';
|
|
91
|
+
const cornerBR = useAscii ? '+' : '┘';
|
|
92
|
+
const c1Width = rows.reduce((max, r) => Math.max(max, r.app.length), 0);
|
|
93
|
+
const c2NatWidth = rows.reduce((max, r) => Math.max(max, r.name.length), 0);
|
|
94
|
+
const c3Width = rows.reduce((max, r) => Math.max(max, r.version.length), 0);
|
|
95
|
+
const naturalInner = c1Width + 2 + c2NatWidth + 2 + c3Width;
|
|
96
|
+
const innerWidth = Math.max(naturalInner, title.length + 2, minInner);
|
|
97
|
+
// Stretch col2 to absorb any extra width
|
|
98
|
+
const c2Width = c2NatWidth + (innerWidth - naturalInner);
|
|
99
|
+
const line = horiz.repeat(innerWidth);
|
|
100
|
+
const titlePadded = title.padEnd(innerWidth);
|
|
101
|
+
const lines = [];
|
|
102
|
+
lines.push(`${cornerTL}${line}${cornerTR}`);
|
|
103
|
+
lines.push(`${vert}${useColor ? chalk.cyan(titlePadded) : titlePadded}${vert}`);
|
|
104
|
+
rows.forEach((item) => {
|
|
105
|
+
const c1 = useColor ? chalk.yellow(item.app.padEnd(c1Width)) : item.app.padEnd(c1Width);
|
|
106
|
+
const c2 = useColor ? chalk.white(item.name.padEnd(c2Width)) : item.name.padEnd(c2Width);
|
|
107
|
+
const c3 = useColor ? chalk.gray(item.version.padStart(c3Width)) : item.version.padStart(c3Width);
|
|
108
|
+
lines.push(`${vert}${c1} ${c2} ${c3}${vert}`);
|
|
109
|
+
});
|
|
110
|
+
lines.push(`${cornerBL}${line}${cornerBR}`);
|
|
111
|
+
return lines;
|
|
112
|
+
}
|
|
113
|
+
function box_render_withMin(title, rows, useColor, useAscii, minInner) {
|
|
114
|
+
if (rows.length === 0)
|
|
115
|
+
return [];
|
|
116
|
+
const horiz = useAscii ? '-' : '─';
|
|
117
|
+
const vert = useAscii ? '|' : '│';
|
|
118
|
+
const cornerTL = useAscii ? '+' : '┌';
|
|
119
|
+
const cornerTR = useAscii ? '+' : '┐';
|
|
120
|
+
const cornerBL = useAscii ? '+' : '└';
|
|
121
|
+
const cornerBR = useAscii ? '+' : '┘';
|
|
122
|
+
const maxLabel = rows.reduce((max, item) => Math.max(max, item.label.length), title.length);
|
|
123
|
+
const maxValue = rows.reduce((max, item) => Math.max(max, text_visibleLength(item.value)), 0);
|
|
124
|
+
const innerWidth = Math.max(maxLabel + maxValue + 3, title.length + 2, minInner);
|
|
125
|
+
const line = horiz.repeat(innerWidth);
|
|
126
|
+
const titlePadded = title.padEnd(innerWidth);
|
|
127
|
+
const lines = [];
|
|
128
|
+
lines.push(`${cornerTL}${line}${cornerTR}`);
|
|
129
|
+
lines.push(`${vert}${useColor ? chalk.cyan(titlePadded) : titlePadded}${vert}`);
|
|
130
|
+
rows.forEach((item) => {
|
|
131
|
+
const rawContent = `${item.label.padEnd(maxLabel)} ${item.value}`;
|
|
132
|
+
const visLen = text_visibleLength(rawContent);
|
|
133
|
+
const padCount = Math.max(0, innerWidth - visLen);
|
|
134
|
+
const label = useColor ? chalk.yellow(item.label.padEnd(maxLabel)) : item.label.padEnd(maxLabel);
|
|
135
|
+
const value = useColor ? chalk.white(item.value) : item.value;
|
|
136
|
+
const paddedLine = `${label} ${value}${' '.repeat(padCount)}`;
|
|
137
|
+
lines.push(`${vert}${paddedLine}${vert}`);
|
|
138
|
+
});
|
|
139
|
+
lines.push(`${cornerBL}${line}${cornerBR}`);
|
|
140
|
+
return lines;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Prints the intro panels side-by-side with the logo.
|
|
144
|
+
*
|
|
145
|
+
* @param logoLines - Rendered logo lines.
|
|
146
|
+
* @param panels - Boot-info panels.
|
|
147
|
+
* @param useColor - Whether to colorize output.
|
|
148
|
+
* @param useAscii - Use ASCII box characters.
|
|
149
|
+
*/
|
|
150
|
+
export function bootsequence_printIntroPanels(logoLines, panels, useColor, useAscii) {
|
|
151
|
+
const leftPad = ' ';
|
|
152
|
+
const minInner = Math.max(box_minWidth3Col('ChELL', panels.header), box_minWidth('Local', panels.local), box_minWidth('ChRIS', panels.chris));
|
|
153
|
+
const headerBox = box_render3Col_withMin('ChELL', panels.header, useColor, useAscii, minInner);
|
|
154
|
+
const localBox = box_render_withMin('Local', panels.local, useColor, useAscii, minInner);
|
|
155
|
+
const chrisBox = box_render_withMin('ChRIS', panels.chris, useColor, useAscii, minInner);
|
|
156
|
+
const rightLinesRaw = [...headerBox, '', ...localBox, '', ...chrisBox];
|
|
157
|
+
const rightWidth = rightLinesRaw.reduce((max, line) => Math.max(max, text_visibleLength(line)), 0);
|
|
158
|
+
const rightLines = rightLinesRaw.map((line) => {
|
|
159
|
+
const currentLen = text_visibleLength(line);
|
|
160
|
+
if (currentLen >= rightWidth)
|
|
161
|
+
return line;
|
|
162
|
+
if (line.startsWith('┌') || line.startsWith('└') || line.startsWith('+') || line.startsWith('│') || line.startsWith('|')) {
|
|
163
|
+
const padCount = rightWidth - currentLen;
|
|
164
|
+
const lastChar = line.slice(-1);
|
|
165
|
+
const body = line.slice(0, -1);
|
|
166
|
+
return `${body}${' '.repeat(padCount)}${lastChar}`;
|
|
167
|
+
}
|
|
168
|
+
return line.padEnd(line.length + (rightWidth - currentLen), ' ');
|
|
169
|
+
});
|
|
170
|
+
const logoWidth = logoLines.reduce((max, line) => Math.max(max, text_visibleLength(line)), 0);
|
|
171
|
+
const paddingBetween = 3;
|
|
172
|
+
const logoBlock = ['', ...logoLines, ''].map((l) => l.padEnd(logoWidth, ' '));
|
|
173
|
+
const totalWidth = logoWidth + paddingBetween + rightWidth;
|
|
174
|
+
const lineChar = useAscii ? '-' : '─';
|
|
175
|
+
const titleText = useColor ? chalk.bold.cyan('ChELL neofetch') : 'ChELL neofetch';
|
|
176
|
+
const titleLine = `${leftPad}${titleText} ${lineChar.repeat(Math.max(0, totalWidth - text_visibleLength(titleText) - 1))}`;
|
|
177
|
+
const rows = Math.max(logoBlock.length, rightLines.length);
|
|
178
|
+
console.log(titleLine);
|
|
179
|
+
for (let i = 0; i < rows; i++) {
|
|
180
|
+
const logoSegment = logoBlock[i] ?? ''.padEnd(logoWidth, ' ');
|
|
181
|
+
const rightSegment = rightLines[i] ?? '';
|
|
182
|
+
const line = `${logoSegment}${' '.repeat(paddingBetween)}${rightSegment}`.trimEnd();
|
|
183
|
+
console.log(`${leftPad}${line}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Prints the intro panels stacked vertically with the logo.
|
|
188
|
+
*
|
|
189
|
+
* @param logoLines - Rendered logo lines.
|
|
190
|
+
* @param panels - Boot-info panels.
|
|
191
|
+
* @param useColor - Whether to colorize output.
|
|
192
|
+
* @param useAscii - Use ASCII box characters.
|
|
193
|
+
*/
|
|
194
|
+
export function bootsequence_printIntroPanelsStacked(logoLines, panels, useColor, useAscii) {
|
|
195
|
+
const leftPad = ' ';
|
|
196
|
+
const minInner = Math.max(box_minWidth3Col('ChELL', panels.header), box_minWidth('Local', panels.local), box_minWidth('ChRIS', panels.chris));
|
|
197
|
+
const headerBox = box_render3Col_withMin('ChELL', panels.header, useColor, useAscii, minInner);
|
|
198
|
+
const localBox = box_render_withMin('Local', panels.local, useColor, useAscii, minInner);
|
|
199
|
+
const chrisBox = box_render_withMin('ChRIS', panels.chris, useColor, useAscii, minInner);
|
|
200
|
+
const stackLines = [...headerBox, '', ...localBox, '', ...chrisBox];
|
|
201
|
+
const boxesWidth = stackLines.reduce((max, line) => Math.max(max, text_visibleLength(line)), 0);
|
|
202
|
+
const logoWidth = logoLines.reduce((max, line) => Math.max(max, text_visibleLength(line)), 0);
|
|
203
|
+
const contentWidth = Math.max(boxesWidth, logoWidth);
|
|
204
|
+
const lineChar = useAscii ? '-' : '─';
|
|
205
|
+
const titleText = useColor ? chalk.bold.cyan('ChELL neofetch') : 'ChELL neofetch';
|
|
206
|
+
const titleLine = `${leftPad}${titleText} ${lineChar.repeat(Math.max(0, contentWidth - text_visibleLength(titleText) - 1))}`;
|
|
207
|
+
const padVisible = (line) => {
|
|
208
|
+
const diff = contentWidth - text_visibleLength(line);
|
|
209
|
+
return diff > 0 ? `${line}${' '.repeat(diff)}` : line;
|
|
210
|
+
};
|
|
211
|
+
console.log(titleLine);
|
|
212
|
+
stackLines.forEach((line) => {
|
|
213
|
+
console.log(line === '' ? '' : `${leftPad}${padVisible(line)}`);
|
|
214
|
+
});
|
|
215
|
+
if (logoLines.length > 0) {
|
|
216
|
+
console.log('');
|
|
217
|
+
logoLines.forEach((line) => {
|
|
218
|
+
console.log(`${leftPad}${padVisible(line)}`);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=bootsequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootsequence.js","sourceRoot":"","sources":["../../src/lib/bootsequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callback function type for autocomplete results.
|
|
3
|
+
* @param err - Error if completion failed, null otherwise.
|
|
4
|
+
* @param result - Tuple of [matches array, original input string].
|
|
5
|
+
*/
|
|
6
|
+
type CompleterCallback = (err: Error | null, result: [string[], string]) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Computes autocomplete suggestions for a given input line.
|
|
9
|
+
* Uses the callback style to support asynchronous operations (fetching files).
|
|
10
|
+
*
|
|
11
|
+
* @param line - The current input line.
|
|
12
|
+
* @param callback - The callback function to return results.
|
|
13
|
+
*/
|
|
14
|
+
export declare function input_complete(line: string, callback: CompleterCallback): void;
|
|
15
|
+
export {};
|