@jsbot-tellus/core 2.5.0 → 2.6.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/README.md +8 -5
- package/dist/app/cli.d.ts +10 -0
- package/dist/app/cli.d.ts.map +1 -0
- package/dist/app/cli.js +37 -0
- package/dist/app/cli.js.map +1 -0
- package/dist/app/runtime.d.ts +121 -0
- package/dist/app/runtime.d.ts.map +1 -0
- package/dist/app/runtime.js +296 -0
- package/dist/app/runtime.js.map +1 -0
- package/dist/app.js +63 -273
- package/dist/app.js.map +1 -1
- package/dist/core/plugin/command-params.d.ts +3 -37
- package/dist/core/plugin/command-params.d.ts.map +1 -1
- package/dist/core/plugin/command-params.js +2 -580
- package/dist/core/plugin/command-params.js.map +1 -1
- package/dist/core/plugin/install/paths.d.ts +7 -0
- package/dist/core/plugin/install/paths.d.ts.map +1 -0
- package/dist/core/plugin/install/paths.js +49 -0
- package/dist/core/plugin/install/paths.js.map +1 -0
- package/dist/core/plugin/install/state.d.ts +23 -0
- package/dist/core/plugin/install/state.d.ts.map +1 -0
- package/dist/core/plugin/install/state.js +129 -0
- package/dist/core/plugin/install/state.js.map +1 -0
- package/dist/core/plugin/install/validate-script.d.ts +3 -0
- package/dist/core/plugin/install/validate-script.d.ts.map +1 -0
- package/dist/core/plugin/install/validate-script.js +154 -0
- package/dist/core/plugin/install/validate-script.js.map +1 -0
- package/dist/core/plugin/install-dir.d.ts +3 -28
- package/dist/core/plugin/install-dir.d.ts.map +1 -1
- package/dist/core/plugin/install-dir.js +3 -326
- package/dist/core/plugin/install-dir.js.map +1 -1
- package/dist/core/plugin/installer/checks.d.ts +6 -0
- package/dist/core/plugin/installer/checks.d.ts.map +1 -0
- package/dist/core/plugin/installer/checks.js +99 -0
- package/dist/core/plugin/installer/checks.js.map +1 -0
- package/dist/core/plugin/installer/support.d.ts +37 -0
- package/dist/core/plugin/installer/support.d.ts.map +1 -0
- package/dist/core/plugin/installer/support.js +67 -0
- package/dist/core/plugin/installer/support.js.map +1 -0
- package/dist/core/plugin/installer/warnings.d.ts +5 -0
- package/dist/core/plugin/installer/warnings.d.ts.map +1 -0
- package/dist/core/plugin/installer/warnings.js +28 -0
- package/dist/core/plugin/installer/warnings.js.map +1 -0
- package/dist/core/plugin/installer.d.ts +4 -30
- package/dist/core/plugin/installer.d.ts.map +1 -1
- package/dist/core/plugin/installer.js +21 -202
- package/dist/core/plugin/installer.js.map +1 -1
- package/dist/core/plugin/params/compile.d.ts +3 -0
- package/dist/core/plugin/params/compile.d.ts.map +1 -0
- package/dist/core/plugin/params/compile.js +23 -0
- package/dist/core/plugin/params/compile.js.map +1 -0
- package/dist/core/plugin/params/declaration.d.ts +9 -0
- package/dist/core/plugin/params/declaration.d.ts.map +1 -0
- package/dist/core/plugin/params/declaration.js +286 -0
- package/dist/core/plugin/params/declaration.js.map +1 -0
- package/dist/core/plugin/params/input.d.ts +5 -0
- package/dist/core/plugin/params/input.d.ts.map +1 -0
- package/dist/core/plugin/params/input.js +196 -0
- package/dist/core/plugin/params/input.js.map +1 -0
- package/dist/core/plugin/params/reply.d.ts +3 -0
- package/dist/core/plugin/params/reply.d.ts.map +1 -0
- package/dist/core/plugin/params/reply.js +49 -0
- package/dist/core/plugin/params/reply.js.map +1 -0
- package/dist/core/plugin/params/type-level.d.ts +24 -0
- package/dist/core/plugin/params/type-level.d.ts.map +1 -0
- package/dist/core/plugin/params/type-level.js +2 -0
- package/dist/core/plugin/params/type-level.js.map +1 -0
- package/dist/core/plugin/params/types.d.ts +33 -0
- package/dist/core/plugin/params/types.d.ts.map +1 -0
- package/dist/core/plugin/params/types.js +12 -0
- package/dist/core/plugin/params/types.js.map +1 -0
- package/dist/core/plugin/params/values.d.ts +7 -0
- package/dist/core/plugin/params/values.d.ts.map +1 -0
- package/dist/core/plugin/params/values.js +111 -0
- package/dist/core/plugin/params/values.js.map +1 -0
- package/dist/core/web/api.d.ts +2 -14
- package/dist/core/web/api.d.ts.map +1 -1
- package/dist/core/web/api.js +8 -500
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/routes/actions.d.ts +4 -0
- package/dist/core/web/routes/actions.d.ts.map +1 -0
- package/dist/core/web/routes/actions.js +33 -0
- package/dist/core/web/routes/actions.js.map +1 -0
- package/dist/core/web/routes/config.d.ts +5 -0
- package/dist/core/web/routes/config.d.ts.map +1 -0
- package/dist/core/web/routes/config.js +30 -0
- package/dist/core/web/routes/config.js.map +1 -0
- package/dist/core/web/routes/kv.d.ts +6 -0
- package/dist/core/web/routes/kv.d.ts.map +1 -0
- package/dist/core/web/routes/kv.js +80 -0
- package/dist/core/web/routes/kv.js.map +1 -0
- package/dist/core/web/routes/plugins.d.ts +5 -0
- package/dist/core/web/routes/plugins.d.ts.map +1 -0
- package/dist/core/web/routes/plugins.js +98 -0
- package/dist/core/web/routes/plugins.js.map +1 -0
- package/dist/core/web/routes/sessions.d.ts +8 -0
- package/dist/core/web/routes/sessions.d.ts.map +1 -0
- package/dist/core/web/routes/sessions.js +130 -0
- package/dist/core/web/routes/sessions.js.map +1 -0
- package/dist/core/web/routes/shared.d.ts +18 -0
- package/dist/core/web/routes/shared.d.ts.map +1 -0
- package/dist/core/web/routes/shared.js +19 -0
- package/dist/core/web/routes/shared.js.map +1 -0
- package/dist/core/web/routes/status.d.ts +6 -0
- package/dist/core/web/routes/status.d.ts.map +1 -0
- package/dist/core/web/routes/status.js +132 -0
- package/dist/core/web/routes/status.js.map +1 -0
- package/dist/core/web/server/auth.d.ts +17 -0
- package/dist/core/web/server/auth.d.ts.map +1 -0
- package/dist/core/web/server/auth.js +68 -0
- package/dist/core/web/server/auth.js.map +1 -0
- package/dist/core/web/server/csp.d.ts +11 -0
- package/dist/core/web/server/csp.d.ts.map +1 -0
- package/dist/core/web/server/csp.js +31 -0
- package/dist/core/web/server/csp.js.map +1 -0
- package/dist/core/web/server/request.d.ts +6 -0
- package/dist/core/web/server/request.d.ts.map +1 -0
- package/dist/core/web/server/request.js +33 -0
- package/dist/core/web/server/request.js.map +1 -0
- package/dist/core/web/server/security.d.ts +4 -0
- package/dist/core/web/server/security.d.ts.map +1 -0
- package/dist/core/web/server/security.js +12 -0
- package/dist/core/web/server/security.js.map +1 -0
- package/dist/core/web/server/sse.d.ts +18 -0
- package/dist/core/web/server/sse.d.ts.map +1 -0
- package/dist/core/web/server/sse.js +49 -0
- package/dist/core/web/server/sse.js.map +1 -0
- package/dist/core/web/server/static.d.ts +16 -0
- package/dist/core/web/server/static.d.ts.map +1 -0
- package/dist/core/web/server/static.js +80 -0
- package/dist/core/web/server/static.js.map +1 -0
- package/dist/core/web/server.d.ts +0 -7
- package/dist/core/web/server.d.ts.map +1 -1
- package/dist/core/web/server.js +41 -263
- package/dist/core/web/server.js.map +1 -1
- package/docs/architecture.md +28 -11
- package/docs/configuration.md +1 -1
- package/docs/migration.md +2 -2
- package/docs/plugin-api.md +24 -11
- package/docs/plugin-development.md +1 -1
- package/package.json +19 -17
- package/src/app/cli.ts +47 -0
- package/src/app/runtime.ts +522 -0
- package/src/app.ts +87 -395
- package/src/core/plugin/command-params.ts +8 -871
- package/src/core/plugin/install/paths.ts +72 -0
- package/src/core/plugin/install/state.ts +196 -0
- package/src/core/plugin/install/validate-script.ts +154 -0
- package/src/core/plugin/install-dir.ts +19 -427
- package/src/core/plugin/installer/checks.ts +137 -0
- package/src/core/plugin/installer/support.ts +120 -0
- package/src/core/plugin/installer/warnings.ts +52 -0
- package/src/core/plugin/installer.ts +52 -301
- package/src/core/plugin/params/compile.ts +41 -0
- package/src/core/plugin/params/declaration.ts +394 -0
- package/src/core/plugin/params/input.ts +281 -0
- package/src/core/plugin/params/reply.ts +59 -0
- package/src/core/plugin/params/type-level.ts +75 -0
- package/src/core/plugin/params/types.ts +55 -0
- package/src/core/plugin/params/values.ts +150 -0
- package/src/core/web/api.ts +33 -759
- package/src/core/web/routes/actions.ts +43 -0
- package/src/core/web/routes/config.ts +42 -0
- package/src/core/web/routes/kv.ts +122 -0
- package/src/core/web/routes/plugins.ts +151 -0
- package/src/core/web/routes/sessions.ts +188 -0
- package/src/core/web/routes/shared.ts +42 -0
- package/src/core/web/routes/status.ts +191 -0
- package/src/core/web/server/auth.ts +126 -0
- package/src/core/web/server/csp.ts +33 -0
- package/src/core/web/server/request.ts +38 -0
- package/src/core/web/server/security.ts +14 -0
- package/src/core/web/server/sse.ts +74 -0
- package/src/core/web/server/static.ts +112 -0
- package/src/core/web/server.ts +41 -383
package/dist/app.js
CHANGED
|
@@ -1,178 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { dirname, join, resolve } from 'node:path';
|
|
4
|
-
import { parseArgs } from 'node:util';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
5
3
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { parseCli, pick, USAGE } from './app/cli.js';
|
|
5
|
+
import { createAppLogging, createExclusiveRunner, createRestartRequester, createRuntime, createSerialRunner, createShutdown, createWebUiDeps, credentialSignature, describeError, loadRuntimeSpec, readVersion, registerShutdownSignals, resolveRuntimeSettings, resolveStaticDir, restartDrainTimeout, startInitialRuntime, } from './app/runtime.js';
|
|
6
|
+
import { ConfigError } from './core/config/loader.js';
|
|
9
7
|
import { ConfigStore } from './core/web/config-store.js';
|
|
10
|
-
import { EventFeed } from './core/web/event-feed.js';
|
|
11
|
-
import { LogBuffer } from './core/logging/log-buffer.js';
|
|
12
|
-
import { createLogger, defaultLogSink, parseLogLevel, } from './core/logging/logger.js';
|
|
13
|
-
import { NpmPluginInstaller } from './core/plugin/installer.js';
|
|
14
|
-
import { loadLocalPlugins } from './core/plugin/loader.js';
|
|
15
|
-
import { openDatabase } from './core/storage/database.js';
|
|
16
8
|
import { WebUiServer } from './core/web/server.js';
|
|
17
|
-
|
|
18
|
-
const LOCAL_PLUGIN_DIR = 'plugins';
|
|
19
|
-
const USAGE = `Usage: jsbot [options]
|
|
20
|
-
|
|
21
|
-
Options:
|
|
22
|
-
--config <path> Config file path (env: BOT_CONFIG)
|
|
23
|
-
--data-dir <path> Data directory (env: BOT_DATA_DIR)
|
|
24
|
-
--log-level <level> debug, info, warn or error (env: BOT_LOG_LEVEL)
|
|
25
|
-
--help Show this help
|
|
26
|
-
|
|
27
|
-
Config precedence: CLI > environment > ./bot.config.json.
|
|
28
|
-
Data precedence: CLI > environment > ./data.
|
|
29
|
-
Local plugins: ./${LOCAL_PLUGIN_DIR}/<id>/dist (auto-built when missing).
|
|
30
|
-
`;
|
|
31
|
-
function pick(value) {
|
|
32
|
-
return typeof value === 'string' && value.trim().length > 0
|
|
33
|
-
? value
|
|
34
|
-
: undefined;
|
|
35
|
-
}
|
|
36
|
-
function mergePlugins(sources, logger) {
|
|
37
|
-
const seen = new Set();
|
|
38
|
-
const plugins = [];
|
|
39
|
-
for (const source of sources) {
|
|
40
|
-
for (const plugin of source.plugins) {
|
|
41
|
-
const id = plugin.manifest.id;
|
|
42
|
-
if (seen.has(id)) {
|
|
43
|
-
logger.warn(`skipping ${source.label} plugin ${id}: plugin id already loaded`);
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
seen.add(id);
|
|
47
|
-
plugins.push(plugin);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return plugins;
|
|
51
|
-
}
|
|
52
|
-
async function loadRuntimeSpec(settings) {
|
|
53
|
-
const { logger } = settings;
|
|
54
|
-
logger.info('loading config', settings.configPath);
|
|
55
|
-
const config = await loadConfig(settings.configPath);
|
|
56
|
-
const pluginDir = resolve(LOCAL_PLUGIN_DIR);
|
|
57
|
-
logger.info('loading plugins from', pluginDir);
|
|
58
|
-
const localPlugins = await loadLocalPlugins(pluginDir, logger, {
|
|
59
|
-
buildTimeoutMs: config.installer.timeoutMs,
|
|
60
|
-
});
|
|
61
|
-
if (localPlugins.length > 0) {
|
|
62
|
-
logger.info(`loaded ${localPlugins.length} plugin(s) from ${pluginDir}`);
|
|
63
|
-
}
|
|
64
|
-
const plugins = mergePlugins([
|
|
65
|
-
{ label: 'built-in', plugins: builtinPlugins },
|
|
66
|
-
{ label: 'plugins', plugins: localPlugins },
|
|
67
|
-
], logger);
|
|
68
|
-
return {
|
|
69
|
-
config,
|
|
70
|
-
dataDir: settings.dataDir,
|
|
71
|
-
pluginDir,
|
|
72
|
-
plugins,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
function createRuntime(spec, settings, onRestart, onEvent) {
|
|
76
|
-
const { logger } = settings;
|
|
77
|
-
const installer = new NpmPluginInstaller({
|
|
78
|
-
dir: spec.pluginDir,
|
|
79
|
-
config: spec.config.installer,
|
|
80
|
-
logger: logger.child('installer'),
|
|
81
|
-
reservedIds: () => new Set(spec.plugins.map((plugin) => plugin.manifest.id)),
|
|
82
|
-
configuredPluginIds: () => new Set(Object.keys(spec.config.plugins)),
|
|
83
|
-
});
|
|
84
|
-
const database = openDatabase({ dataDir: spec.dataDir });
|
|
85
|
-
const client = createBotClient({
|
|
86
|
-
url: spec.config.url,
|
|
87
|
-
...(spec.config.accessToken
|
|
88
|
-
? { accessToken: spec.config.accessToken }
|
|
89
|
-
: {}),
|
|
90
|
-
});
|
|
91
|
-
const kernel = new Kernel({
|
|
92
|
-
config: spec.config,
|
|
93
|
-
client,
|
|
94
|
-
logger,
|
|
95
|
-
database,
|
|
96
|
-
plugins: spec.plugins,
|
|
97
|
-
installer,
|
|
98
|
-
onRestart,
|
|
99
|
-
onEvent,
|
|
100
|
-
});
|
|
101
|
-
return { spec, kernel, database, installer };
|
|
102
|
-
}
|
|
103
|
-
function describeError(error) {
|
|
104
|
-
if (error instanceof Error) {
|
|
105
|
-
return error.stack ?? `${error.name}: ${error.message}`;
|
|
106
|
-
}
|
|
107
|
-
return String(error);
|
|
108
|
-
}
|
|
109
|
-
function credentialSignature(config) {
|
|
110
|
-
const webui = config.webui;
|
|
111
|
-
return [webui.username ?? '', webui.password ?? ''].join(':');
|
|
112
|
-
}
|
|
113
|
-
function resolveStaticDir() {
|
|
114
|
-
const scriptDir = dirname(fileURLToPath(import.meta.url));
|
|
115
|
-
const candidates = [
|
|
116
|
-
join(scriptDir, 'webui'),
|
|
117
|
-
resolve(process.cwd(), 'dist/webui'),
|
|
118
|
-
];
|
|
119
|
-
for (const candidate of candidates) {
|
|
120
|
-
if (existsSync(join(candidate, 'index.html')))
|
|
121
|
-
return candidate;
|
|
122
|
-
}
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
function readVersion() {
|
|
126
|
-
try {
|
|
127
|
-
const pkgPath = new URL('../package.json', import.meta.url);
|
|
128
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
129
|
-
return pkg.version ?? 'unknown';
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
return 'unknown';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
9
|
+
const SCRIPT_DIR = dirname(fileURLToPath(import.meta.url));
|
|
135
10
|
async function main() {
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
config: { type: 'string' },
|
|
139
|
-
'data-dir': { type: 'string' },
|
|
140
|
-
'log-level': { type: 'string' },
|
|
141
|
-
help: { type: 'boolean', short: 'h' },
|
|
142
|
-
},
|
|
143
|
-
allowPositionals: false,
|
|
144
|
-
});
|
|
145
|
-
if (values.help) {
|
|
11
|
+
const cli = parseCli();
|
|
12
|
+
if (cli.help) {
|
|
146
13
|
process.stdout.write(USAGE);
|
|
147
14
|
return;
|
|
148
15
|
}
|
|
149
|
-
const logs =
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
};
|
|
154
|
-
const sink = (record) => {
|
|
155
|
-
defaultLogSink(record);
|
|
156
|
-
logs.push(record);
|
|
157
|
-
};
|
|
158
|
-
const logger = createLogger({
|
|
159
|
-
level: parseLogLevel(pick(values['log-level']) ?? process.env.BOT_LOG_LEVEL),
|
|
160
|
-
scope: 'app',
|
|
161
|
-
sink,
|
|
162
|
-
});
|
|
163
|
-
const configPath = resolveConfigPath({
|
|
164
|
-
config: pick(values.config),
|
|
165
|
-
env: process.env,
|
|
166
|
-
});
|
|
167
|
-
const dataDir = resolveDataDir({
|
|
168
|
-
dataDir: pick(values['data-dir']),
|
|
16
|
+
const { logs, events, logger, tapEvents } = createAppLogging(pick(cli.logLevel) ?? process.env.BOT_LOG_LEVEL);
|
|
17
|
+
const settings = resolveRuntimeSettings(logger, {
|
|
18
|
+
config: pick(cli.config),
|
|
19
|
+
dataDir: pick(cli.dataDir),
|
|
169
20
|
env: process.env,
|
|
170
21
|
});
|
|
171
|
-
const
|
|
172
|
-
logger,
|
|
173
|
-
configPath,
|
|
174
|
-
dataDir,
|
|
175
|
-
};
|
|
22
|
+
const { configPath, dataDir } = settings;
|
|
176
23
|
// Config file errors remain fatal: there is nothing the WebUI can restore
|
|
177
24
|
// from when the config cannot even be parsed.
|
|
178
25
|
const initialSpec = await loadRuntimeSpec(settings);
|
|
@@ -183,15 +30,8 @@ async function main() {
|
|
|
183
30
|
let shuttingDown = false;
|
|
184
31
|
let restarting = false;
|
|
185
32
|
let restartPending = false;
|
|
186
|
-
let restartTimer = null;
|
|
187
|
-
let restartTail = Promise.resolve(true);
|
|
188
|
-
let exclusiveTail = Promise.resolve();
|
|
189
33
|
let boundWebUi = null;
|
|
190
34
|
let credentials = credentialSignature(initialSpec.config);
|
|
191
|
-
const restartDrainTimeout = (previous) => {
|
|
192
|
-
const installTimeout = previous?.spec.config.installer.timeoutMs ?? 5_000;
|
|
193
|
-
return Math.max(installTimeout, 5_000) * 2 + 5_000;
|
|
194
|
-
};
|
|
195
35
|
const restartRuntimeOnce = async () => {
|
|
196
36
|
if (shuttingDown)
|
|
197
37
|
return false;
|
|
@@ -243,107 +83,59 @@ async function main() {
|
|
|
243
83
|
}
|
|
244
84
|
}
|
|
245
85
|
};
|
|
246
|
-
const restartRuntime = ()
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
const requestRestart = () => {
|
|
252
|
-
if (shuttingDown)
|
|
253
|
-
return;
|
|
254
|
-
if (restarting) {
|
|
86
|
+
const restartRuntime = createSerialRunner(restartRuntimeOnce);
|
|
87
|
+
const restartRequester = createRestartRequester({
|
|
88
|
+
isShuttingDown: () => shuttingDown,
|
|
89
|
+
isRestarting: () => restarting,
|
|
90
|
+
markPending: () => {
|
|
255
91
|
restartPending = true;
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
restartTimer = setTimeout(() => {
|
|
261
|
-
restartTimer = null;
|
|
262
|
-
void restartRuntime();
|
|
263
|
-
}, 250);
|
|
264
|
-
};
|
|
92
|
+
},
|
|
93
|
+
restart: () => restartRuntime(),
|
|
94
|
+
});
|
|
95
|
+
const requestRestart = restartRequester.request;
|
|
265
96
|
const store = new ConfigStore({
|
|
266
97
|
configPath,
|
|
267
98
|
getPlugins: () => runtime?.spec.plugins ?? [],
|
|
268
99
|
restart: () => restartRuntime(),
|
|
269
100
|
});
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
version: readVersion(),
|
|
101
|
+
const runExclusive = createExclusiveRunner();
|
|
102
|
+
const deps = createWebUiDeps({
|
|
103
|
+
logger,
|
|
104
|
+
configPath,
|
|
105
|
+
dataDir,
|
|
106
|
+
pluginDir: initialSpec.pluginDir,
|
|
107
|
+
staticDir: resolveStaticDir(SCRIPT_DIR),
|
|
108
|
+
version: readVersion(SCRIPT_DIR),
|
|
279
109
|
logs,
|
|
280
110
|
events,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
111
|
+
store,
|
|
112
|
+
getCurrentConfig: () => currentConfig,
|
|
113
|
+
getRuntime: () => runtime,
|
|
114
|
+
getGeneration: () => generation,
|
|
285
115
|
restart: () => restartRuntime(),
|
|
286
116
|
requestRestart,
|
|
287
|
-
pause: () => runtime?.kernel.pause(),
|
|
288
|
-
resume: () => runtime?.kernel.resume(),
|
|
289
117
|
getListening: () => server.address,
|
|
290
118
|
invalidateSessions: () => server.invalidateSessions(),
|
|
291
|
-
runExclusive
|
|
292
|
-
const run = exclusiveTail.then(task, task);
|
|
293
|
-
exclusiveTail = run.then(() => undefined, () => undefined);
|
|
294
|
-
return run;
|
|
295
|
-
},
|
|
296
|
-
getRuntime: () => runtime === null
|
|
297
|
-
? null
|
|
298
|
-
: {
|
|
299
|
-
generation,
|
|
300
|
-
config: runtime.spec.config,
|
|
301
|
-
kernel: runtime.kernel,
|
|
302
|
-
api: runtime.kernel.api,
|
|
303
|
-
database: runtime.database,
|
|
304
|
-
installer: runtime.installer,
|
|
305
|
-
plugins: runtime.spec.plugins,
|
|
306
|
-
},
|
|
119
|
+
runExclusive,
|
|
307
120
|
isRestarting: () => restarting,
|
|
308
121
|
getStartupError: () => startupError,
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if (boundWebUi === null)
|
|
312
|
-
return webui.enabled;
|
|
313
|
-
if (!webui.enabled)
|
|
314
|
-
return true;
|
|
315
|
-
return (webui.host !== boundWebUi.host || webui.port !== boundWebUi.port);
|
|
316
|
-
},
|
|
317
|
-
};
|
|
122
|
+
getBoundWebUi: () => boundWebUi,
|
|
123
|
+
});
|
|
318
124
|
const server = new WebUiServer({
|
|
319
125
|
config: initialSpec.config.webui,
|
|
320
126
|
deps,
|
|
321
127
|
});
|
|
322
|
-
const shutdown =
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
try {
|
|
332
|
-
await runtime?.kernel.stop();
|
|
333
|
-
await server.stop();
|
|
334
|
-
process.exit(exitCode);
|
|
335
|
-
}
|
|
336
|
-
catch (error) {
|
|
337
|
-
logger.error('shutdown failed', error);
|
|
338
|
-
process.exit(1);
|
|
339
|
-
}
|
|
340
|
-
};
|
|
341
|
-
process.once('SIGINT', () => {
|
|
342
|
-
void shutdown('SIGINT');
|
|
343
|
-
});
|
|
344
|
-
process.once('SIGTERM', () => {
|
|
345
|
-
void shutdown('SIGTERM');
|
|
128
|
+
const shutdown = createShutdown({
|
|
129
|
+
logger,
|
|
130
|
+
isShuttingDown: () => shuttingDown,
|
|
131
|
+
onBegin: () => {
|
|
132
|
+
shuttingDown = true;
|
|
133
|
+
restartRequester.clear();
|
|
134
|
+
},
|
|
135
|
+
getRuntime: () => runtime,
|
|
136
|
+
stopServer: () => server.stop(),
|
|
346
137
|
});
|
|
138
|
+
registerShutdownSignals(shutdown);
|
|
347
139
|
// Start the WebUI before the kernel so it stays online when startup fails.
|
|
348
140
|
if (initialSpec.config.webui.enabled) {
|
|
349
141
|
const address = await server.start(initialSpec.config.webui);
|
|
@@ -354,25 +146,23 @@ async function main() {
|
|
|
354
146
|
};
|
|
355
147
|
}
|
|
356
148
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
}
|
|
375
|
-
}
|
|
149
|
+
const started = await startInitialRuntime({
|
|
150
|
+
spec: initialSpec,
|
|
151
|
+
settings,
|
|
152
|
+
requestRestart,
|
|
153
|
+
onEvent: tapEvents,
|
|
154
|
+
getCurrentConfig: () => currentConfig,
|
|
155
|
+
hasWebUi: boundWebUi !== null,
|
|
156
|
+
onFailure: () => shutdown('startup failure', 1),
|
|
157
|
+
setRuntime: (value) => {
|
|
158
|
+
runtime = value;
|
|
159
|
+
},
|
|
160
|
+
generation,
|
|
161
|
+
credentials,
|
|
162
|
+
});
|
|
163
|
+
generation = started.generation;
|
|
164
|
+
startupError = started.startupError;
|
|
165
|
+
credentials = started.credentials;
|
|
376
166
|
}
|
|
377
167
|
await main().catch((error) => {
|
|
378
168
|
if (error instanceof ConfigError) {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
args: unknown[];
|
|
5
|
-
ignored: string[];
|
|
6
|
-
}
|
|
7
|
-
export interface CompiledCommandParams {
|
|
8
|
-
usage: string;
|
|
9
|
-
parse(input: string, event?: OneBotMessageEvent): ParsedCommandParams;
|
|
10
|
-
}
|
|
11
|
-
export declare class CommandParamsError extends Error {
|
|
12
|
-
readonly usage: string;
|
|
13
|
-
constructor(message: string, usage: string);
|
|
14
|
-
}
|
|
15
|
-
export declare function compileCommandParams(declaration: string): CompiledCommandParams;
|
|
16
|
-
type Whitespace = ' ' | '\n' | '\r' | '\t' | '\v' | '\f';
|
|
17
|
-
type TrimLeft<Source extends string> = Source extends `${Whitespace}${infer Rest}` ? TrimLeft<Rest> : Source;
|
|
18
|
-
type TrimRight<Source extends string> = Source extends `${infer Rest}${Whitespace}` ? TrimRight<Rest> : Source;
|
|
19
|
-
type Trim<Source extends string> = TrimLeft<TrimRight<Source>>;
|
|
20
|
-
type ParamValue<Type extends string> = Trim<Type> extends 'string' | 'text' ? string : Trim<Type> extends 'number' | 'integer' | 'at' | 'reply' | 'time' ? number : Trim<Type> extends 'boolean' ? boolean : unknown;
|
|
21
|
-
interface VariadicParam {
|
|
22
|
-
readonly variadic: true;
|
|
23
|
-
}
|
|
24
|
-
type ParamType<Head extends string> = Head extends `${string}:${infer Type}` ? ParamValue<Type> : string;
|
|
25
|
-
type ParamElement<Body extends string, Required extends boolean> = Trim<Body> extends `...${string}` ? VariadicParam : Trim<Body> extends `${infer Head}=${string}` ? ParamType<Head> : Required extends true ? ParamType<Body> : ParamType<Body> | undefined;
|
|
26
|
-
type AppendParam<Acc extends unknown[], Element> = [Element] extends [
|
|
27
|
-
VariadicParam
|
|
28
|
-
] ? [...Acc, ...string[]] : [...Acc, Element];
|
|
29
|
-
type ParseCommandParams<Source extends string, Acc extends unknown[] = []> = Trim<Source> extends '' ? Acc : Trim<Source> extends `<${infer Body}>${infer Rest}` ? ParamElement<Body, true> extends VariadicParam ? any[] : ParseCommandParams<Rest, AppendParam<Acc, ParamElement<Body, true>>> : Trim<Source> extends `[${infer Body}]${infer Rest}` ? ParamElement<Body, false> extends VariadicParam ? Trim<Rest> extends '' ? [...Acc, ...string[]] : any[] : ParseCommandParams<Rest, AppendParam<Acc, ParamElement<Body, false>>> : any[];
|
|
30
|
-
/**
|
|
31
|
-
* 把 `params` 声明字符串推导成 handler 的位置参数 tuple。
|
|
32
|
-
*
|
|
33
|
-
* 非字面量声明(例如运行时拼接的 `string`)或无法解析的声明会回退为
|
|
34
|
-
* `any[]`,以保证现有插件仍然可以编译。
|
|
35
|
-
*/
|
|
36
|
-
export type CommandParamArgs<Declaration extends string> = string extends Declaration ? any[] : ParseCommandParams<Declaration>;
|
|
37
|
-
export {};
|
|
1
|
+
export { CommandParamsError, type CommandParamType, type CompiledCommandParams, type ParsedCommandParams, } from './params/types.js';
|
|
2
|
+
export { compileCommandParams } from './params/compile.js';
|
|
3
|
+
export type { CommandParamArgs } from './params/type-level.js';
|
|
38
4
|
//# sourceMappingURL=command-params.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-params.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/command-params.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command-params.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/command-params.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}
|