@sfmc-bds/cli 0.2.0-beta.8 → 0.2.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/LICENSE +663 -0
- package/README.md +4 -5
- package/dist/bds-runtime-version.d.ts +3 -0
- package/dist/bds-runtime-version.d.ts.map +1 -0
- package/dist/bds-runtime-version.js +15 -0
- package/dist/bds-runtime-version.js.map +7 -0
- package/dist/command-surface.js +3 -3
- package/dist/command-surface.js.map +2 -2
- package/dist/commands.d.ts +57 -4
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +184 -68
- package/dist/commands.js.map +2 -2
- package/dist/directory-picker.d.ts +27 -0
- package/dist/directory-picker.d.ts.map +1 -0
- package/dist/directory-picker.js +112 -0
- package/dist/directory-picker.js.map +7 -0
- package/dist/help-text.d.ts.map +1 -1
- package/dist/help-text.js +1 -5
- package/dist/help-text.js.map +2 -2
- package/dist/i18n/locales/en.d.ts +49 -14
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +49 -15
- package/dist/i18n/locales/en.js.map +2 -2
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/i18n/locales/zh-CN.js +50 -16
- package/dist/i18n/locales/zh-CN.js.map +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +2 -2
- package/dist/interactive-prompts.d.ts +1 -2
- package/dist/interactive-prompts.d.ts.map +1 -1
- package/dist/interactive-prompts.js +12 -23
- package/dist/interactive-prompts.js.map +3 -3
- package/dist/llbot-launch.d.ts +20 -0
- package/dist/llbot-launch.d.ts.map +1 -0
- package/dist/llbot-launch.js +40 -0
- package/dist/llbot-launch.js.map +7 -0
- package/dist/log-filter.d.ts +18 -2
- package/dist/log-filter.d.ts.map +1 -1
- package/dist/log-filter.js +54 -4
- package/dist/log-filter.js.map +2 -2
- package/dist/log-translator.d.ts +36 -0
- package/dist/log-translator.d.ts.map +1 -0
- package/dist/log-translator.js +279 -0
- package/dist/log-translator.js.map +7 -0
- package/dist/logs.d.ts +2 -0
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +24 -11
- package/dist/logs.js.map +2 -2
- package/dist/main.js +9 -6
- package/dist/main.js.map +2 -2
- package/dist/module-commands.d.ts.map +1 -1
- package/dist/module-commands.js +22 -8
- package/dist/module-commands.js.map +2 -2
- package/dist/module-fingerprint.d.ts.map +1 -1
- package/dist/module-fingerprint.js +1 -0
- package/dist/module-fingerprint.js.map +2 -2
- package/dist/module-pack-build.d.ts +14 -4
- package/dist/module-pack-build.d.ts.map +1 -1
- package/dist/module-pack-build.js +81 -108
- package/dist/module-pack-build.js.map +2 -2
- package/dist/module-toggle.d.ts +1 -1
- package/dist/module-toggle.d.ts.map +1 -1
- package/dist/module-toggle.js.map +1 -1
- package/dist/node-service-probe.d.ts +18 -0
- package/dist/node-service-probe.d.ts.map +1 -0
- package/dist/node-service-probe.js +97 -0
- package/dist/node-service-probe.js.map +7 -0
- package/dist/pack-lifecycle.d.ts +15 -1
- package/dist/pack-lifecycle.d.ts.map +1 -1
- package/dist/pack-lifecycle.js +249 -16
- package/dist/pack-lifecycle.js.map +2 -2
- package/dist/player-session.d.ts +13 -0
- package/dist/player-session.d.ts.map +1 -0
- package/dist/player-session.js +26 -0
- package/dist/player-session.js.map +7 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +4 -1
- package/dist/registry.js.map +2 -2
- package/dist/repl-windows/format-display.d.ts.map +1 -1
- package/dist/repl-windows/format-display.js +5 -1
- package/dist/repl-windows/format-display.js.map +2 -2
- package/dist/repl-windows/host.d.ts +6 -3
- package/dist/repl-windows/host.d.ts.map +1 -1
- package/dist/repl-windows/host.js +12 -6
- package/dist/repl-windows/host.js.map +2 -2
- package/dist/repl-windows/index.d.ts +1 -0
- package/dist/repl-windows/index.d.ts.map +1 -1
- package/dist/repl-windows/index.js +3 -0
- package/dist/repl-windows/index.js.map +2 -2
- package/dist/repl-windows/service-window.d.ts +1 -1
- package/dist/repl-windows/service-window.d.ts.map +1 -1
- package/dist/repl-windows/service-window.js +9 -1
- package/dist/repl-windows/service-window.js.map +2 -2
- package/dist/repl-windows/sfmc-window.d.ts +7 -0
- package/dist/repl-windows/sfmc-window.d.ts.map +1 -0
- package/dist/repl-windows/sfmc-window.js +28 -0
- package/dist/repl-windows/sfmc-window.js.map +7 -0
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +37 -22
- package/dist/repl.js.map +2 -2
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +15 -2
- package/dist/runtime.js.map +2 -2
- package/dist/send-target.d.ts +2 -0
- package/dist/send-target.d.ts.map +1 -1
- package/dist/send-target.js +12 -2
- package/dist/send-target.js.map +2 -2
- package/dist/services.d.ts +58 -5
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +273 -50
- package/dist/services.js.map +2 -2
- package/dist/sfmc-modules-root.d.ts.map +1 -1
- package/dist/sfmc-modules-root.js +6 -2
- package/dist/sfmc-modules-root.js.map +2 -2
- package/dist/ui-command.d.ts +6 -0
- package/dist/ui-command.d.ts.map +1 -0
- package/dist/ui-command.js +68 -0
- package/dist/ui-command.js.map +7 -0
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +95 -32
- package/dist/wizard.js.map +2 -2
- package/dist/world-packs.d.ts +2 -0
- package/dist/world-packs.d.ts.map +1 -1
- package/dist/world-packs.js +161 -18
- package/dist/world-packs.js.map +2 -2
- package/package.json +21 -15
- package/scripts/module-install/check-modules.mjs +178 -0
- package/scripts/module-install/fetch-module.mjs +1083 -0
- package/scripts/module-install/lib/catalog.mjs +96 -0
- package/scripts/module-install/lib/config-seeding.mjs +128 -0
- package/scripts/module-install/lib/io.mjs +37 -0
- package/scripts/module-install/lib/link-from.mjs +80 -0
- package/scripts/module-install/lib/lock.mjs +78 -0
- package/scripts/module-install/lib/npm-resolver.mjs +55 -0
- package/scripts/module-install/lib/packages.mjs +136 -0
- package/scripts/module-install/lib/paths.mjs +48 -0
- package/scripts/module-install/lib/registry-index.mjs +50 -0
- package/dist/cmd-remote.d.ts +0 -13
- package/dist/cmd-remote.d.ts.map +0 -1
- package/dist/cmd-remote.js +0 -38
- package/dist/cmd-remote.js.map +0 -7
- package/dist/remote-agent.d.ts +0 -18
- package/dist/remote-agent.d.ts.map +0 -1
- package/dist/remote-agent.js +0 -198
- package/dist/remote-agent.js.map +0 -7
package/dist/commands.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/commands.ts"],
|
|
4
|
-
"sourcesContent": ["import { killBedrockServerByImage, probeBdsStatus, clearBdsPidFile } from \"@sfmc-bds/bds-tools/process-probe\";\nimport { pushLog as pushUnifiedLog } from \"./logs.js\";\nimport { t } from \"./i18n/index.js\";\nimport { spawnService } from \"./runtime.js\";\nimport { ROOT, SERVICE_NAMES, queryServicesRuntime, services, type ServiceName } from \"./services.js\";\nimport { c, DIVIDER, highlightLogLine, padRight } from \"./theme.js\";\nimport { stripTaskbarOsc } from \"@sfmc-bds/bds-tools/taskbar\";\nimport { didUpdateDeploy } from \"@sfmc-bds/bds-tools/update-result\";\n\nfunction parseService(raw: string): ServiceName | null {\n const s = raw.toLowerCase() as ServiceName;\n if (SERVICE_NAMES.includes(s)) return s;\n return null;\n}\n\nfunction statusLine(\n name: string,\n running: boolean,\n pid: number,\n uptime: string,\n ownership?: \"managed\" | \"external\"\n): string {\n const dot = running ? c.green(\"\u25CF\") : c.dim(\"\u25CB\");\n const state = running ? c.green(t(\"svc.state.running\")) : c.dim(t(\"svc.state.stopped\"));\n let owner = c.dim(t(\"svc.owner.none\"));\n if (running && ownership === \"managed\") owner = c.cyan(t(\"svc.owner.managed\"));\n else if (running && ownership === \"external\") owner = c.yellow(t(\"svc.owner.external\"));\n const pidStr = pid ? c.dim(String(pid)) : c.dim(\"\u2014\");\n const upStr = uptime !== \"\u2014\" ? c.dim(uptime) : c.dim(\"\u2014\");\n return ` ${dot} ${c.bold(padRight(name, 9))} ${padRight(state, 8)} ${padRight(owner, 6)} ${padRight(pidStr, 8)} ${upStr}`;\n}\n\nexport async function cmdStatus(): Promise<string> {\n const rows = await queryServicesRuntime();\n const lines = rows.map((row) => statusLine(row.title, row.running, row.pid, row.uptime, row.ownership));\n const nameH = t(\"svc.col.name\");\n const statusH = t(\"svc.col.status\");\n const ownerH = t(\"svc.col.owner\");\n const pidH = t(\"svc.col.pid\");\n const upH = t(\"svc.col.uptime\");\n const header =\n ` ${padRight(nameH, 11)}${padRight(statusH, 8)}${padRight(ownerH, 6)}${padRight(pidH, 8)}${upH}`;\n return (\n `\\n${c.bold(t(\"svc.header\"))}\\n` +\n c.dim(header) +\n \"\\n\" +\n DIVIDER +\n \"\\n\" +\n lines.join(\"\\n\") +\n \"\\n\"\n );\n}\n\nexport function cmdLogs(args: string[], onFollow?: (serviceName: ServiceName) => void): string {\n let n = 20;\n let follow = false;\n const positional: string[] = [];\n\n for (const a of args) {\n if (a === \"-n\") continue; /* handled below */\n if (a === \"-f\") {\n follow = true;\n continue;\n }\n positional.push(a);\n }\n\n /* -n takes the next argument as value */\n const nIdx = args.indexOf(\"-n\");\n if (nIdx >= 0 && nIdx + 1 < args.length) n = parseInt(args[nIdx + 1] ?? \"0\", 10);\n\n const svcRaw = positional[0];\n if (!svcRaw) return c.yellow(t(\"svc.logs.usage\"));\n\n const svc = parseService(svcRaw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: svcRaw, list: SERVICE_NAMES.join(\", \") }));\n\n const svcObj = services[svc];\n\n const lines = svcObj.getRecentLogs(n);\n if (lines.length === 0) return c.dim(t(\"svc.logs.empty\"));\n\n const header = `\\n${c.bold(t(\"svc.logs.header\", { title: svcObj.title, count: lines.length }))}`;\n const body = lines\n .map((l) => {\n const ts = c.dim(l.time.toLocaleTimeString());\n const text = highlightLogLine(l.text);\n const prefix = l.stream === \"stderr\" ? c.red(\"!\") : c.dim(\" \");\n return `${ts} ${prefix} ${text}`;\n })\n .join(\"\\n\");\n\n const result = header + \"\\n\" + DIVIDER + \"\\n\" + body + \"\\n\";\n\n if (follow && onFollow) {\n onFollow(svc);\n return \"\";\n }\n\n return result;\n}\n\nconst STARTING = new Set<ServiceName>();\nconst STOPPING = new Set<ServiceName>();\n\nexport async function cmdStart(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n const svcObj = services[svc];\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({ rootDir: ROOT });\n if (probe.state !== \"stopped\") {\n return c.yellow(\n t(\"svc.bdsAlreadyRunning\", {\n pid: String(probe.pid),\n kind: probe.state === \"managed\" ? t(\"svc.running\") : t(\"svc.runningExternal\"),\n })\n );\n }\n }\n if (svcObj.running) return c.yellow(t(\"svc.alreadyRunning\", { title: svcObj.title, pid: svcObj.pid }));\n if (STARTING.has(svc)) return c.dim(t(\"svc.alreadyStarting\", { title: svcObj.title }));\n STARTING.add(svc);\n try {\n await svcObj.start();\n return c.green(t(\"svc.started\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.startFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STARTING.delete(svc);\n }\n}\n\nexport async function cmdStop(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n const svcObj = services[svc];\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({\n managedPid: svcObj.pid,\n hasStdin: Boolean(svcObj.proc?.stdin),\n rootDir: ROOT,\n });\n if (probe.state === \"external\") {\n if (STOPPING.has(svc)) return c.dim(t(\"svc.alreadyStopping\", { title: svcObj.title }));\n STOPPING.add(svc);\n try {\n await killBedrockServerByImage();\n clearBdsPidFile(ROOT);\n return c.dim(t(\"svc.stoppedExternal\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.stopFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STOPPING.delete(svc);\n }\n }\n }\n if (!svcObj.running) return c.yellow(t(\"svc.alreadyStopped\", { title: svcObj.title }));\n if (STOPPING.has(svc)) return c.dim(t(\"svc.alreadyStopping\", { title: svcObj.title }));\n STOPPING.add(svc);\n try {\n await svcObj.stop();\n return c.dim(t(\"svc.stoppedMsg\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.stopFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STOPPING.delete(svc);\n }\n}\n\nexport async function cmdSend(raw: string, message: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n if (!message) return c.yellow(t(\"svc.send.usage\"));\n const svcObj = services[svc];\n /* \u5148\u7EDF\u4E00\u63A2\u6D4B\uFF0C\u907F\u514D\u5185\u5B58 running \u4E0E\u771F\u5B9E\u8FDB\u7A0B\u8131\u8282 */\n await queryServicesRuntime();\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({\n managedPid: svcObj.pid,\n hasStdin: Boolean(svcObj.proc?.stdin),\n rootDir: ROOT,\n });\n if (probe.state === \"external\") {\n return c.yellow(t(\"svc.stdinUnavailable\", { title: svcObj.title }));\n }\n }\n if (!svcObj.running || !svcObj.proc?.stdin) return c.yellow(t(\"svc.notRunning\", { title: svcObj.title }));\n try {\n svcObj.proc.stdin.write(message + \"\\n\");\n return \"\";\n } catch {\n return c.red(t(\"svc.writeFailed\"));\n }\n}\n\nexport async function cmdRestart(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n if (svc === \"bds\") {\n await cmdStop(\"bds\");\n return cmdStart(\"bds\");\n }\n const svcObj = services[svc];\n try {\n await svcObj.restart();\n return c.green(t(\"svc.restarted\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.restartFailed\", { title: svcObj.title, message: (e as Error).message }));\n }\n}\n\nexport async function cmdStartAll(): Promise<string> {\n const { startAll } = await import(\"./services.js\");\n await startAll();\n return c.green(t(\"svc.allStarted\"));\n}\n\nexport async function cmdStopAll(): Promise<string> {\n const { stopAll } = await import(\"./services.js\");\n await stopAll();\n return c.dim(t(\"svc.allStopped\"));\n}\n\n/**\n * BDS \u66F4\u65B0\uFF1A\u5B50\u8FDB\u7A0B\u59CB\u7EC8 --no-start\uFF0C\u7531 sfmc \u76D1\u7763\u5668\u63A5\u7BA1\u542F\u505C\u4E0E\u65E5\u5FD7\u3002\n * \uFF08updater \u5185 detached \u81EA\u542F\u4F1A\u5BFC\u81F4 REPL \u4E22 PID / \u65E0 stdout\uFF09\n *\n * \u4E0D\u505C\u670D\u9884\u64CD\u4F5C\uFF1A\u771F\u6B63\u9700\u8981\u66F4\u65B0\u65F6\u7531 updater \u505C\u670D\uFF1B\u5DF2\u662F\u6700\u65B0\u5219\u4E0D\u5F71\u54CD\u6B63\u5728\u8DD1\u7684 BDS\u3002\n * \u66F4\u65B0\u6210\u529F\u540E\u82E5\u672A\u6307\u5B9A --no-start\uFF0C\u518D\u7531\u76D1\u7763\u5668 `start bds`\uFF08\u63A5\u7BA1 PID + \u65E5\u5FD7\u7BA1\u9053\uFF09\u3002\n */\nexport async function cmdUpdate(args: string[] = []): Promise<string> {\n const userNoStart = args.includes(\"--no-start\");\n const checkOnly = args.includes(\"--check-only\");\n const spawnArgs = userNoStart ? [...args] : [...args, \"--no-start\"];\n\n const bds = services.bds;\n const bdsProbe = await probeBdsStatus({\n managedPid: bds.pid,\n hasStdin: Boolean(bds.proc?.stdin),\n rootDir: ROOT,\n });\n const bdsWasRunning = bdsProbe.state !== \"stopped\";\n\n const result = await new Promise<{ code: number | null; out: string }>((resolve) => {\n const proc = spawnService(\"update\", spawnArgs, {\n cwd: ROOT,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let out = \"\";\n const pushChunk = (raw: string, level: \"info\" | \"error\"): void => {\n // \u5265\u79BB Windows Terminal \u4EFB\u52A1\u680F OSC\uFF0C\u907F\u514D pipe \u65E5\u5FD7\u7A7A\u767D\u884C\uFF08\u6743\u5A01\uFF1Abds-tools/taskbar\uFF09\n const s = stripTaskbarOsc(raw);\n out += s;\n for (const line of s\n .split(/\\r?\\n/)\n .map((l) => l.trimEnd())\n .filter((l) => l.length > 0)) {\n pushUnifiedLog(line, \"update\", level);\n }\n };\n proc.stdout?.on(\"data\", (d: Buffer) => pushChunk(d.toString(), \"info\"));\n proc.stderr?.on(\"data\", (d: Buffer) => pushChunk(d.toString(), \"error\"));\n proc.on(\"exit\", (code) => {\n if (code === 0) {\n pushUnifiedLog(t(\"svc.updateComplete\"), \"system\", \"success\");\n resolve({ code: 0, out: (out ? out + \"\\n\" : \"\") + t(\"svc.updateComplete\") });\n } else {\n resolve({ code, out: out || t(\"svc.updateExited\", { code: String(code) }) });\n }\n });\n proc.on(\"error\", (e) => {\n pushUnifiedLog(t(\"svc.updateError\", { message: e.message }), \"system\", \"error\");\n resolve({ code: 1, out: t(\"svc.updateError\", { message: e.message }) });\n });\n });\n\n /* \u4EC5\u5728\u771F\u6B63\u5B8C\u6210\u90E8\u7F72\u540E\u62C9\u8D77 BDS\uFF1B\u300C\u5DF2\u662F\u6700\u65B0\u300D\u4E0D\u6253\u6270\u5F53\u524D\u72B6\u6001\u3002\n * \u4EE5 updater \u8F93\u51FA\u7684 SFMC_UPDATE_RESULT=deployed \u673A\u5668\u6807\u8BB0\u4E3A\u51C6\uFF08\u52FF\u5339\u914D\u672C\u5730\u5316\u65E5\u5FD7\uFF09\u3002 */\n const didDeploy = didUpdateDeploy(result.out);\n if (result.code === 0 && didDeploy && !userNoStart && !checkOnly) {\n const afterProbe = await probeBdsStatus({\n managedPid: bds.pid,\n hasStdin: Boolean(bds.proc?.stdin),\n rootDir: ROOT,\n });\n if (afterProbe.state !== \"stopped\") {\n return result.out;\n }\n try {\n pushUnifiedLog(t(\"svc.updateStartBds\"), \"system\", \"info\");\n await bds.start();\n return result.out + \"\\n\" + c.green(t(\"svc.bdsStarted\"));\n } catch (e) {\n return result.out + \"\\n\" + c.red(t(\"svc.bdsStartFailed\", { message: (e as Error).message }));\n }\n }\n\n if (result.code === 0 && didDeploy && userNoStart && bdsWasRunning) {\n const afterProbe = await probeBdsStatus({ rootDir: ROOT });\n if (afterProbe.state === \"stopped\") {\n return result.out + \"\\n\" + c.yellow(t(\"svc.bdsStoppedForUpdate\"));\n }\n }\n\n return result.out;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\n * commands.ts \u2014 CLI \u6838\u5FC3\u8FD0\u7EF4\u547D\u4EE4\u5B9E\u73B0\n *\n * \u63D0\u4F9B\u547D\u4EE4\u884C\u4E0E REPL \u5171\u4EAB\u7684\u7CFB\u7EDF\u7EA7\u8FD0\u7EF4\u6307\u4EE4\uFF1A\n * - `status`\uFF1A\u67E5\u8BE2\u5168\u90E8\u670D\u52A1\uFF08BDS\u3001db-server\u3001qq-bridge\u3001LLBot\uFF09\u8FD0\u884C\u72B6\u6001\u3001PID\u3001\u8FD0\u884C\u65F6\u957F\u4E0E\u6240\u6709\u6743\n * - `start` / `stop` / `restart`\uFF1A\u6309\u4F9D\u8D56\u987A\u5E8F\u6216\u5355\u4E2A\u63A7\u5236\u670D\u52A1\u542F\u505C\n * - `startAll` / `stopAll`\uFF1A\u6279\u91CF\u7F16\u6392\u63A7\u5236\u6240\u6709\u540E\u53F0\u670D\u52A1\n * - `logs`\uFF1A\u68C0\u7D22\u5E76\u5B9E\u65F6\u8FFD\u8E2A\u6307\u5B9A\u670D\u52A1\u7684\u6700\u8FD1\u65E5\u5FD7\u6D41\n * - `update`\uFF1A\u89E6\u53D1 BDS \u6838\u5FC3\u7248\u672C\u66F4\u65B0\u68C0\u67E5\u4E0E\u70ED\u5347\u7EA7\n */\n\nimport { clearBdsPidFile, killBedrockServerByImage, probeBdsStatus } from \"@sfmc-bds/bds-tools/process-probe\";\nimport { stripTaskbarOsc } from \"@sfmc-bds/bds-tools/taskbar\";\nimport { didUpdateDeploy } from \"@sfmc-bds/bds-tools/update-result\";\nimport {\n DEFAULT_QQ_CONFIG,\n loadEnsuredConfig,\n qqRuntimeStatusPath,\n type QQBridgeConfig,\n} from \"@sfmc-bds/sdk/node/config\";\nimport fs from \"node:fs\";\nimport { t } from \"./i18n/index.js\";\nimport { pushLog as pushUnifiedLog } from \"./logs.js\";\nimport { findNodeServicePids, killNodeServiceByScript, type NodeServiceName } from \"./node-service-probe.js\";\nimport { spawnService } from \"./runtime.js\";\nimport { queryServicesRuntime, ROOT, SERVICE_NAMES, services, type ServiceName } from \"./services.js\";\nimport { c, DIVIDER, highlightLogLine, padRight } from \"./theme.js\";\n\nfunction parseService(raw: string): ServiceName | null {\n const s = raw.toLowerCase() as ServiceName;\n if (SERVICE_NAMES.includes(s)) return s;\n return null;\n}\n\nfunction statusLine(\n name: string,\n running: boolean,\n pid: number,\n uptime: string,\n ownership?: \"managed\" | \"external\"\n): string {\n const dot = running ? c.green(\"\u25CF\") : c.dim(\"\u25CB\");\n const state = running ? c.green(t(\"svc.state.running\")) : c.dim(t(\"svc.state.stopped\"));\n let owner = c.dim(t(\"svc.owner.none\"));\n if (running && ownership === \"managed\") owner = c.cyan(t(\"svc.owner.managed\"));\n else if (running && ownership === \"external\") owner = c.yellow(t(\"svc.owner.external\"));\n const pidStr = pid ? c.dim(String(pid)) : c.dim(\"\u2014\");\n const upStr = uptime !== \"\u2014\" ? c.dim(uptime) : c.dim(\"\u2014\");\n return ` ${dot} ${c.bold(padRight(name, 14))} ${padRight(state, 8)} ${padRight(owner, 6)} ${padRight(pidStr, 8)} ${upStr}`;\n}\n\n/** status \u9875\u811A\uFF1AQQ \u540E\u7AEF\u4E0E\u5173\u952E\u6458\u8981\uFF08\u5BC6\u94A5\u8131\u654F\uFF09 */\nfunction qqBridgeStatusFooter(): string {\n const qqCfg = loadEnsuredConfig(ROOT, \"qq_config.json\", \"qq_config\", { ...DEFAULT_QQ_CONFIG } as Record<\n string,\n unknown\n >) as QQBridgeConfig;\n const backend = qqCfg.qq_backend === \"llbot\" ? \"llbot\" : \"official\";\n const enabled = qqCfg.qq_enabled !== false;\n if (backend === \"llbot\") {\n const group = qqCfg.llbot?.group_id || \"\u2014\";\n const pathHint = qqCfg.llbot?.path ? String(qqCfg.llbot.path) : \"\u2014\";\n return `\\n${c.dim(t(\"svc.qq.footer.llbot\", { enabled: enabled ? \"on\" : \"off\", group, path: pathHint }))}\\n`;\n }\n const appId = String(qqCfg.official?.app_id ?? \"\").trim();\n const appIdHint = appId ? (appId.length > 8 ? `${appId.slice(0, 4)}\u2026${appId.slice(-4)}` : appId) : \"\u2014\";\n const openid = String(qqCfg.official?.group_openid ?? \"\").trim() || \"\u2014\";\n const sandbox = qqCfg.official?.sandbox ? \"sandbox\" : \"prod\";\n const creds = appId && String(qqCfg.official?.app_secret ?? \"\").trim() ? \"ok\" : \"missing\";\n return `\\n${c.dim(t(\"svc.qq.footer.official\", { enabled: enabled ? \"on\" : \"off\", appId: appIdHint, openid, sandbox, creds }))}\\n`;\n}\n\n/**\n * \u67E5\u8BE2\u5E76\u683C\u5F0F\u5316\u5C55\u793A\u6240\u6709\u540E\u53F0\u670D\u52A1\u7684\u5F53\u524D\u8FD0\u884C\u72B6\u6001\u77E9\u9635\u3002\n *\n * @returns \u683C\u5F0F\u5316\u540E\u7684\u72B6\u6001\u6458\u8981\u6587\u672C\u8868\u683C\u3002\n */\nexport async function cmdStatus(): Promise<string> {\n const rows = await queryServicesRuntime();\n const lines = rows.map((row) => statusLine(row.title, row.running, row.pid, row.uptime, row.ownership));\n const nameH = t(\"svc.col.name\");\n const statusH = t(\"svc.col.status\");\n const ownerH = t(\"svc.col.owner\");\n const pidH = t(\"svc.col.pid\");\n const upH = t(\"svc.col.uptime\");\n const header = ` ${padRight(nameH, 16)}${padRight(statusH, 8)}${padRight(ownerH, 6)}${padRight(pidH, 8)}${upH}`;\n return (\n `\\n${c.bold(t(\"svc.header\"))}\\n` + c.dim(header) + \"\\n\" + DIVIDER + \"\\n\" + lines.join(\"\\n\") + qqBridgeStatusFooter()\n );\n}\n\n/**\n * \u68C0\u7D22\u5E76\u683C\u5F0F\u5316\u6307\u5B9A\u670D\u52A1\u7684\u6700\u8FD1\u5386\u53F2\u65E5\u5FD7\u884C\uFF08\u652F\u6301 `-n <\u884C\u6570>` \u53CA `-f` \u5B9E\u65F6\u8FFD\u8E2A\uFF09\u3002\n *\n * @param args \u53C2\u6570\u5217\u8868\u3002\n * @param onFollow \u53EF\u9009\u7684\u8DDF\u968F\u6A21\u5F0F\u56DE\u8C03\u3002\n * @returns \u683C\u5F0F\u5316\u540E\u7684\u65E5\u5FD7\u8F93\u51FA\u6587\u672C\u3002\n */\nexport function cmdLogs(args: string[], onFollow?: (serviceName: ServiceName) => void): string {\n let n = 20;\n let follow = false;\n const positional: string[] = [];\n\n for (const a of args) {\n if (a === \"-n\") continue; /* handled below */\n if (a === \"-f\") {\n follow = true;\n continue;\n }\n positional.push(a);\n }\n\n /* -n takes the next argument as value */\n const nIdx = args.indexOf(\"-n\");\n if (nIdx >= 0 && nIdx + 1 < args.length) n = parseInt(args[nIdx + 1] ?? \"0\", 10);\n\n const svcRaw = positional[0];\n if (!svcRaw) return c.yellow(t(\"svc.logs.usage\"));\n\n const svc = parseService(svcRaw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: svcRaw, list: SERVICE_NAMES.join(\", \") }));\n\n const svcObj = services[svc];\n\n const lines = svcObj.getRecentLogs(n);\n if (lines.length === 0) return c.dim(t(\"svc.logs.empty\"));\n\n const header = `\\n${c.bold(t(\"svc.logs.header\", { title: svcObj.title, count: lines.length }))}`;\n const body = lines\n .map((l) => {\n const ts = c.dim(l.time.toLocaleTimeString());\n const text = highlightLogLine(l.text);\n const prefix = l.stream === \"stderr\" ? c.red(\"!\") : c.dim(\" \");\n return `${ts} ${prefix} ${text}`;\n })\n .join(\"\\n\");\n\n const result = header + \"\\n\" + DIVIDER + \"\\n\" + body + \"\\n\";\n\n if (follow && onFollow) {\n onFollow(svc);\n return \"\";\n }\n\n return result;\n}\n\nconst STARTING = new Set<ServiceName>();\nconst STOPPING = new Set<ServiceName>();\n\nfunction isNodeSvc(name: ServiceName): name is NodeServiceName {\n return name === \"db\" || name === \"qq\";\n}\n\nfunction clearQqRuntimeFile(): void {\n try {\n const file = qqRuntimeStatusPath(ROOT);\n if (fs.existsSync(file)) fs.unlinkSync(file);\n } catch {\n /* ignore */\n }\n}\n\n/**\n * \u542F\u52A8\u6307\u5B9A\u7684\u5355\u9879\u540E\u53F0\u670D\u52A1\uFF08bds / db / qq / llbot\uFF09\u3002\n *\n * @param raw \u76EE\u6807\u670D\u52A1\u540D\u79F0\u5B57\u7B26\u4E32\u3002\n * @returns \u542F\u52A8\u7ED3\u679C\u63CF\u8FF0\u6587\u672C\u3002\n */\nexport async function cmdStart(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n const svcObj = services[svc];\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({ rootDir: ROOT });\n if (probe.state !== \"stopped\") {\n return c.yellow(\n t(\"svc.bdsAlreadyRunning\", {\n pid: String(probe.pid),\n kind: probe.state === \"managed\" ? t(\"svc.running\") : t(\"svc.runningExternal\"),\n })\n );\n }\n }\n // \u5916\u90E8\u5DF2\u5728\u8DD1\uFF1A\u7981\u6B62\u518D spawn\uFF08\u907F\u514D\u53CC db / \u53CC qq\uFF09\n if (isNodeSvc(svc)) {\n const external = await findNodeServicePids(svc);\n if (external.length > 0) {\n return c.yellow(t(\"svc.alreadyRunning\", { title: svcObj.title, pid: String(external.join(\",\")) }));\n }\n }\n if (svcObj.running) return c.yellow(t(\"svc.alreadyRunning\", { title: svcObj.title, pid: svcObj.pid }));\n if (STARTING.has(svc)) return c.dim(t(\"svc.alreadyStarting\", { title: svcObj.title }));\n STARTING.add(svc);\n try {\n const outcome = await svcObj.start();\n if (outcome.status === \"skipped\") {\n return c.yellow(t(\"svc.skipped\", { title: svcObj.title, reason: outcome.reason }));\n }\n if (outcome.status === \"already\") {\n return c.yellow(t(\"svc.alreadyRunning\", { title: svcObj.title, pid: svcObj.pid }));\n }\n return c.green(t(\"svc.started\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.startFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STARTING.delete(svc);\n }\n}\n\n/**\n * \u505C\u6B62\u6307\u5B9A\u7684\u5355\u9879\u540E\u53F0\u670D\u52A1\uFF08\u652F\u6301\u5BF9\u5916\u90E8\u975E\u6258\u7BA1\u5B9E\u4F8B\u6267\u884C\u7CBE\u51C6\u6E05\u7406\uFF09\u3002\n *\n * @param raw \u76EE\u6807\u670D\u52A1\u540D\u79F0\u5B57\u7B26\u4E32\u3002\n * @returns \u505C\u6B62\u64CD\u4F5C\u7ED3\u679C\u6587\u672C\u3002\n */\nexport async function cmdStop(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n const svcObj = services[svc];\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({\n managedPid: svcObj.pid,\n hasStdin: Boolean(svcObj.proc?.stdin),\n rootDir: ROOT,\n });\n if (probe.state === \"external\") {\n if (STOPPING.has(svc)) return c.dim(t(\"svc.alreadyStopping\", { title: svcObj.title }));\n STOPPING.add(svc);\n try {\n await killBedrockServerByImage();\n clearBdsPidFile(ROOT);\n return c.dim(t(\"svc.stoppedExternal\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.stopFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STOPPING.delete(svc);\n }\n }\n }\n\n // db / qq\uFF1A\u6258\u7BA1\u6216\u5916\u90E8\u90FD\u8981\u80FD\u505C\u5E72\u51C0\n if (isNodeSvc(svc)) {\n if (STOPPING.has(svc)) return c.dim(t(\"svc.alreadyStopping\", { title: svcObj.title }));\n STOPPING.add(svc);\n try {\n const managed = svcObj.running;\n if (managed) {\n await svcObj.stop();\n }\n const killed = await killNodeServiceByScript(svc);\n if (svc === \"qq\") clearQqRuntimeFile();\n if (!managed && killed.length === 0) {\n return c.yellow(t(\"svc.alreadyStopped\", { title: svcObj.title }));\n }\n if (!managed && killed.length > 0) {\n return c.dim(t(\"svc.stoppedExternal\", { title: svcObj.title }));\n }\n return c.dim(t(\"svc.stoppedMsg\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.stopFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STOPPING.delete(svc);\n }\n }\n\n if (!svcObj.running) {\n if (svc === \"tunnel\") await svcObj.stop(); // \u53D6\u6D88\u7B49\u5F85\u4E2D\u7684\u65AD\u7EBF\u91CD\u8BD5\n return c.yellow(t(\"svc.alreadyStopped\", { title: svcObj.title }));\n }\n if (STOPPING.has(svc)) return c.dim(t(\"svc.alreadyStopping\", { title: svcObj.title }));\n STOPPING.add(svc);\n try {\n await svcObj.stop();\n return c.dim(t(\"svc.stoppedMsg\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.stopFailed\", { title: svcObj.title, message: (e as Error).message }));\n } finally {\n STOPPING.delete(svc);\n }\n}\n\nexport async function cmdSend(raw: string, message: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n if (svc === \"tunnel\") return c.yellow(t(\"svc.stdinUnavailable\", { title: services[svc].title }));\n if (!message) return c.yellow(t(\"svc.send.usage\"));\n const svcObj = services[svc];\n /* \u5148\u7EDF\u4E00\u63A2\u6D4B\uFF0C\u907F\u514D\u5185\u5B58 running \u4E0E\u771F\u5B9E\u8FDB\u7A0B\u8131\u8282 */\n await queryServicesRuntime();\n if (svc === \"bds\") {\n const probe = await probeBdsStatus({\n managedPid: svcObj.pid,\n hasStdin: Boolean(svcObj.proc?.stdin),\n rootDir: ROOT,\n });\n if (probe.state === \"external\") {\n return c.yellow(t(\"svc.stdinUnavailable\", { title: svcObj.title }));\n }\n }\n if (!svcObj.running || !svcObj.proc?.stdin) return c.yellow(t(\"svc.notRunning\", { title: svcObj.title }));\n try {\n svcObj.proc.stdin.write(message + \"\\n\");\n return \"\";\n } catch {\n return c.red(t(\"svc.writeFailed\"));\n }\n}\n\n/**\n * \u91CD\u542F\u6307\u5B9A\u7684\u5355\u9879\u540E\u53F0\u670D\u52A1\uFF08\u9075\u5FAA stop \u2192 start \u4E25\u8C28\u65F6\u5E8F\uFF09\u3002\n *\n * @param raw \u76EE\u6807\u670D\u52A1\u540D\u79F0\u5B57\u7B26\u4E32\u3002\n * @returns \u91CD\u542F\u64CD\u4F5C\u7ED3\u679C\u6587\u672C\u3002\n */\nexport async function cmdRestart(raw: string): Promise<string> {\n const svc = parseService(raw);\n if (!svc) return c.red(t(\"svc.unknown\", { name: raw, list: SERVICE_NAMES.join(\", \") }));\n // bds / db / qq\uFF1A\u7EDF\u4E00\u8D70 stop\u2192start\uFF0C\u786E\u4FDD\u5916\u90E8\u5B9E\u4F8B\u4E5F\u88AB\u6E05\u6389\n if (svc === \"bds\" || isNodeSvc(svc)) {\n const stopMsg = await cmdStop(svc);\n const startMsg = await cmdStart(svc);\n // \u82E5 stop \u5DF2\u62A5\u9519\u6587\u6848\u542B\u300C\u5931\u8D25\u300D\uFF0C\u539F\u6837\u5E26\u56DE\n if (/\u5931\u8D25|failed/i.test(stopMsg) && !/\u5DF2\u505C\u6B62|stopped|already/i.test(stopMsg)) {\n return stopMsg;\n }\n if (/\u5931\u8D25|failed/i.test(startMsg)) return startMsg;\n return c.green(t(\"svc.restarted\", { title: services[svc].title }));\n }\n const svcObj = services[svc];\n try {\n const outcome = await svcObj.restart();\n if (outcome.status === \"skipped\") {\n return c.yellow(t(\"svc.skipped\", { title: svcObj.title, reason: outcome.reason }));\n }\n return c.green(t(\"svc.restarted\", { title: svcObj.title }));\n } catch (e) {\n return c.red(t(\"svc.restartFailed\", { title: svcObj.title, message: (e as Error).message }));\n }\n}\n\n/**\n * \u6309\u670D\u52A1\u62D3\u6251\u4F9D\u8D56\u6B21\u5E8F\u6279\u91CF\u542F\u52A8\u6240\u6709\u5DF2\u542F\u7528\u7684\u540E\u53F0\u670D\u52A1\u3002\n *\n * @returns \u6279\u91CF\u542F\u52A8\u7ED3\u679C\u7EDF\u8BA1\u62A5\u544A\u6587\u672C\u3002\n */\nexport async function cmdStartAll(): Promise<string> {\n const { startAll } = await import(\"./services.js\");\n const result = await startAll();\n const parts: string[] = [];\n if (result.started.length > 0) {\n parts.push(c.green(t(\"svc.startAll.started\", { list: result.started.join(\", \") })));\n }\n if (result.skipped.length > 0) {\n parts.push(\n c.dim(\n t(\"svc.startAll.skipped\", {\n list: result.skipped.map((s) => `${s.name}(${s.reason})`).join(\"; \"),\n })\n )\n );\n }\n if (result.failed.length > 0) {\n parts.push(\n c.red(\n t(\"svc.startAll.failed\", {\n list: result.failed.map((s) => `${s.name}: ${s.reason}`).join(\"; \"),\n })\n )\n );\n }\n if (parts.length === 0) return c.dim(t(\"svc.startAll.empty\"));\n if (result.failed.length === 0 && result.skipped.length === 0) {\n return c.green(t(\"svc.allStarted\"));\n }\n return parts.join(\"\\n\");\n}\n\n/**\n * \u6279\u91CF\u505C\u6B62\u6240\u6709\u5F53\u524D\u5904\u4E8E\u8FD0\u884C\u6001\u7684\u540E\u53F0\u670D\u52A1\u3002\n *\n * @returns \u6279\u91CF\u505C\u6B62\u786E\u8BA4\u6587\u672C\u3002\n */\nexport async function cmdStopAll(): Promise<string> {\n const { stopAll } = await import(\"./services.js\");\n await stopAll();\n return c.dim(t(\"svc.allStopped\"));\n}\n\n/**\n * \u89E6\u53D1 BDS \u6838\u5FC3\u7248\u672C\u66F4\u65B0\u68C0\u67E5\u4E0E\u70ED\u5347\u7EA7\u6D41\u7A0B\u3002\n *\n * \u8FDB\u7A0B\u7BA1\u7406\u4E0E\u7F16\u6392\u7EA6\u675F\uFF1A\n * - updater \u5B50\u8FDB\u7A0B\u59CB\u7EC8\u9644\u52A0 `--no-start` \u53C2\u6570\uFF0C\u907F\u514D\u7531\u4E8E\u8FDB\u7A0B\u8131\u79BB\u5BFC\u81F4 REPL \u4E22\u5931 PID \u8DDF\u8E2A\u53CA\u6807\u51C6\u8F93\u51FA\n * - \u82E5\u66F4\u65B0\u524D BDS \u5904\u4E8E\u8FD0\u884C\u72B6\u6001\uFF0C\u4E14\u672A\u663E\u5F0F\u6307\u5B9A `--no-start`\uFF0C\u5728\u66F4\u65B0\u843D\u76D8\u90E8\u7F72\u5B8C\u6210\u540E\u7531\u76D1\u7763\u5668\u91CD\u65B0\u5524\u8D77 BDS\n *\n * @param args \u4F20\u9012\u7ED9\u66F4\u65B0\u5668\u7684\u547D\u4EE4\u884C\u53C2\u6570\u3002\n * @returns \u66F4\u65B0\u6267\u884C\u7ED3\u679C\u6458\u8981\u6587\u672C\u3002\n */\nexport async function cmdUpdate(args: string[] = []): Promise<string> {\n const userNoStart = args.includes(\"--no-start\");\n const checkOnly = args.includes(\"--check-only\");\n const spawnArgs = userNoStart ? [...args] : [...args, \"--no-start\"];\n\n const bds = services.bds;\n // \u66F4\u65B0\u5668\u548C CLI \u5206\u5C5E\u4E0D\u540C\u8FDB\u7A0B\uFF1B\u5148\u6682\u505C CLI \u7684\u5D29\u6E83\u81EA\u542F\uFF0C\u518D\u4EA4\u7ED9\u66F4\u65B0\u5668\u505C\u670D\u3002\n bds.beginUpdate();\n try {\n const bdsProbe = await probeBdsStatus({\n managedPid: bds.pid,\n hasStdin: Boolean(bds.proc?.stdin),\n rootDir: ROOT,\n });\n const bdsWasRunning = bdsProbe.state !== \"stopped\";\n\n const result = await new Promise<{ code: number | null; out: string }>((resolve) => {\n const proc = spawnService(\"update\", spawnArgs, {\n cwd: ROOT,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let out = \"\";\n const pushChunk = (raw: string, level: \"info\" | \"error\"): void => {\n // \u5265\u79BB Windows Terminal \u4EFB\u52A1\u680F OSC\uFF0C\u907F\u514D pipe \u65E5\u5FD7\u7A7A\u767D\u884C\uFF08\u6743\u5A01\uFF1Abds-tools/taskbar\uFF09\n const s = stripTaskbarOsc(raw);\n out += s;\n for (const line of s\n .split(/\\r?\\n/)\n .map((l) => l.trimEnd())\n .filter((l) => l.length > 0)) {\n pushUnifiedLog(line, \"update\", level);\n }\n };\n proc.stdout?.on(\"data\", (d: Buffer) => pushChunk(d.toString(), \"info\"));\n proc.stderr?.on(\"data\", (d: Buffer) => pushChunk(d.toString(), \"error\"));\n proc.on(\"exit\", (code) => {\n if (code === 0) {\n pushUnifiedLog(t(\"svc.updateComplete\"), \"system\", \"success\");\n resolve({ code: 0, out: (out ? out + \"\\n\" : \"\") + t(\"svc.updateComplete\") });\n } else {\n resolve({ code, out: out || t(\"svc.updateExited\", { code: String(code) }) });\n }\n });\n proc.on(\"error\", (e) => {\n pushUnifiedLog(t(\"svc.updateError\", { message: e.message }), \"system\", \"error\");\n resolve({ code: 1, out: t(\"svc.updateError\", { message: e.message }) });\n });\n });\n\n /* \u4EC5\u5728\u771F\u6B63\u5B8C\u6210\u90E8\u7F72\u540E\u62C9\u8D77 BDS\uFF1B\u300C\u5DF2\u662F\u6700\u65B0\u300D\u4E0D\u6253\u6270\u5F53\u524D\u72B6\u6001\u3002\n * \u4EE5 updater \u8F93\u51FA\u7684 SFMC_UPDATE_RESULT=deployed \u673A\u5668\u6807\u8BB0\u4E3A\u51C6\uFF08\u52FF\u5339\u914D\u672C\u5730\u5316\u65E5\u5FD7\uFF09\u3002 */\n const didDeploy = didUpdateDeploy(result.out);\n if (result.code === 0 && didDeploy && !userNoStart && !checkOnly) {\n const afterProbe = await probeBdsStatus({\n managedPid: bds.pid,\n hasStdin: Boolean(bds.proc?.stdin),\n rootDir: ROOT,\n });\n if (afterProbe.state !== \"stopped\") {\n return result.out;\n }\n try {\n pushUnifiedLog(t(\"svc.updateStartBds\"), \"system\", \"info\");\n bds.endUpdate();\n await bds.start();\n return result.out + \"\\n\" + c.green(t(\"svc.bdsStarted\"));\n } catch (e) {\n return result.out + \"\\n\" + c.red(t(\"svc.bdsStartFailed\", { message: (e as Error).message }));\n }\n }\n\n if (result.code === 0 && didDeploy && userNoStart && bdsWasRunning) {\n const afterProbe = await probeBdsStatus({ rootDir: ROOT });\n if (afterProbe.state === \"stopped\") {\n return result.out + \"\\n\" + c.yellow(t(\"svc.bdsStoppedForUpdate\"));\n }\n }\n\n return result.out;\n } finally {\n bds.endUpdate();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type DirectoryPickerResult = {
|
|
2
|
+
status: "selected";
|
|
3
|
+
path: string;
|
|
4
|
+
} | {
|
|
5
|
+
status: "cancelled";
|
|
6
|
+
} | {
|
|
7
|
+
status: "unavailable";
|
|
8
|
+
};
|
|
9
|
+
export type PickerCommand = {
|
|
10
|
+
command: string;
|
|
11
|
+
args: string[];
|
|
12
|
+
};
|
|
13
|
+
/** PowerShell 单引号字符串转义。 */
|
|
14
|
+
export declare function escapePowerShellSingleQuoted(value: string): string;
|
|
15
|
+
/** AppleScript 双引号字符串转义。 */
|
|
16
|
+
export declare function escapeAppleScriptString(value: string): string;
|
|
17
|
+
/** 选择器起始目录:默认路径不存在时回退到父目录或 cwd。 */
|
|
18
|
+
export declare function resolvePickerStartDir(defaultDirectory: string): string;
|
|
19
|
+
export declare function buildWindowsPickerScript(title: string, defaultDirectory: string): string;
|
|
20
|
+
export declare function buildMacOsPickerScript(title: string, defaultDirectory: string): string;
|
|
21
|
+
/** 按平台生成原生目录选择器命令候选(先试桌面默认,再试通用工具)。 */
|
|
22
|
+
export declare function buildDirectoryPickerCandidates(platform: NodeJS.Platform, title: string, defaultDirectory: string): PickerCommand[];
|
|
23
|
+
/** 执行单次原生目录选择;命令不存在时返回 unavailable。 */
|
|
24
|
+
export declare function runDirectoryPickerCommand(candidate: PickerCommand): DirectoryPickerResult;
|
|
25
|
+
/** 跨平台系统文件夹选择器(zenity / kdialog / osascript / PowerShell)。 */
|
|
26
|
+
export declare function pickDirectoryDialog(title: string, defaultDirectory: string): DirectoryPickerResult;
|
|
27
|
+
//# sourceMappingURL=directory-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-picker.d.ts","sourceRoot":"","sources":["../src/directory-picker.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEhE,2BAA2B;AAC3B,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,4BAA4B;AAC5B,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,mCAAmC;AACnC,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CASxF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAWtF;AAED,uCAAuC;AACvC,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,GACvB,aAAa,EAAE,CA8BjB;AAYD,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,GAAG,qBAAqB,CAgBzF;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,qBAAqB,CAUlG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
function escapePowerShellSingleQuoted(value) {
|
|
5
|
+
return value.replace(/'/g, "''");
|
|
6
|
+
}
|
|
7
|
+
function escapeAppleScriptString(value) {
|
|
8
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
9
|
+
}
|
|
10
|
+
function resolvePickerStartDir(defaultDirectory) {
|
|
11
|
+
const resolved = path.resolve(defaultDirectory);
|
|
12
|
+
if (fs.existsSync(resolved) && fs.statSync(resolved).isDirectory()) return resolved;
|
|
13
|
+
const parent = path.dirname(resolved);
|
|
14
|
+
if (fs.existsSync(parent) && fs.statSync(parent).isDirectory()) return parent;
|
|
15
|
+
return process.cwd();
|
|
16
|
+
}
|
|
17
|
+
function buildWindowsPickerScript(title, defaultDirectory) {
|
|
18
|
+
const escape = escapePowerShellSingleQuoted;
|
|
19
|
+
return [
|
|
20
|
+
"Add-Type -AssemblyName System.Windows.Forms",
|
|
21
|
+
"$dialog = New-Object System.Windows.Forms.FolderBrowserDialog",
|
|
22
|
+
`$dialog.Description = '${escape(title)}'`,
|
|
23
|
+
`$dialog.SelectedPath = '${escape(defaultDirectory)}'`,
|
|
24
|
+
"if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { Write-Output $dialog.SelectedPath }"
|
|
25
|
+
].join("; ");
|
|
26
|
+
}
|
|
27
|
+
function buildMacOsPickerScript(title, defaultDirectory) {
|
|
28
|
+
const escTitle = escapeAppleScriptString(title);
|
|
29
|
+
const escPath = escapeAppleScriptString(defaultDirectory.replace(/\\/g, "/"));
|
|
30
|
+
return [
|
|
31
|
+
`set defaultFolder to POSIX file "${escPath}"`,
|
|
32
|
+
"try",
|
|
33
|
+
` POSIX path of (choose folder with prompt "${escTitle}" default location defaultFolder)`,
|
|
34
|
+
"on error number -128",
|
|
35
|
+
' error "User cancelled"',
|
|
36
|
+
"end try"
|
|
37
|
+
].join("\n");
|
|
38
|
+
}
|
|
39
|
+
function buildDirectoryPickerCandidates(platform, title, defaultDirectory) {
|
|
40
|
+
const startDir = resolvePickerStartDir(defaultDirectory);
|
|
41
|
+
if (platform === "win32") {
|
|
42
|
+
const script = buildWindowsPickerScript(title, startDir);
|
|
43
|
+
return [
|
|
44
|
+
{ command: "powershell.exe", args: ["-NoProfile", "-STA", "-Command", script] },
|
|
45
|
+
{ command: "pwsh", args: ["-NoProfile", "-STA", "-Command", script] }
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
if (platform === "darwin") {
|
|
49
|
+
return [{ command: "osascript", args: ["-e", buildMacOsPickerScript(title, startDir)] }];
|
|
50
|
+
}
|
|
51
|
+
if (platform === "linux") {
|
|
52
|
+
const desktop = process.env.XDG_CURRENT_DESKTOP ?? "";
|
|
53
|
+
const kdeFirst = /KDE/i.test(desktop);
|
|
54
|
+
const zenity = {
|
|
55
|
+
command: "zenity",
|
|
56
|
+
args: ["--file-selection", "--directory", `--title=${title}`, `--filename=${startDir}/`]
|
|
57
|
+
};
|
|
58
|
+
const kdialog = {
|
|
59
|
+
command: "kdialog",
|
|
60
|
+
args: ["--getexistingdirectory", startDir, "--title", title]
|
|
61
|
+
};
|
|
62
|
+
return kdeFirst ? [kdialog, zenity] : [zenity, kdialog];
|
|
63
|
+
}
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
function isPickerCancelled(error) {
|
|
67
|
+
if (!error || typeof error !== "object") return false;
|
|
68
|
+
const err = error;
|
|
69
|
+
if (err.status === 1) return true;
|
|
70
|
+
const stderr = typeof err.stderr === "string" ? err.stderr : err.stderr?.toString("utf-8") ?? "";
|
|
71
|
+
if (/cancelled|-128|User cancelled/i.test(stderr)) return true;
|
|
72
|
+
const message = err.message ?? "";
|
|
73
|
+
return /cancelled|-128/i.test(message);
|
|
74
|
+
}
|
|
75
|
+
function runDirectoryPickerCommand(candidate) {
|
|
76
|
+
try {
|
|
77
|
+
const output = execFileSync(candidate.command, candidate.args, {
|
|
78
|
+
encoding: "utf-8",
|
|
79
|
+
windowsHide: true,
|
|
80
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
81
|
+
});
|
|
82
|
+
const trimmed = output.trim();
|
|
83
|
+
if (!trimmed) return { status: "cancelled" };
|
|
84
|
+
return { status: "selected", path: trimmed };
|
|
85
|
+
} catch (error) {
|
|
86
|
+
const err = error;
|
|
87
|
+
if (err.code === "ENOENT") return { status: "unavailable" };
|
|
88
|
+
if (isPickerCancelled(error)) return { status: "cancelled" };
|
|
89
|
+
return { status: "unavailable" };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function pickDirectoryDialog(title, defaultDirectory) {
|
|
93
|
+
const candidates = buildDirectoryPickerCandidates(process.platform, title, defaultDirectory);
|
|
94
|
+
if (candidates.length === 0) return { status: "unavailable" };
|
|
95
|
+
for (const candidate of candidates) {
|
|
96
|
+
const result = runDirectoryPickerCommand(candidate);
|
|
97
|
+
if (result.status === "unavailable") continue;
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
return { status: "unavailable" };
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
buildDirectoryPickerCandidates,
|
|
104
|
+
buildMacOsPickerScript,
|
|
105
|
+
buildWindowsPickerScript,
|
|
106
|
+
escapeAppleScriptString,
|
|
107
|
+
escapePowerShellSingleQuoted,
|
|
108
|
+
pickDirectoryDialog,
|
|
109
|
+
resolvePickerStartDir,
|
|
110
|
+
runDirectoryPickerCommand
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=directory-picker.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/directory-picker.ts"],
|
|
4
|
+
"sourcesContent": ["import { execFileSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\nexport type DirectoryPickerResult =\n | { status: \"selected\"; path: string }\n | { status: \"cancelled\" }\n | { status: \"unavailable\" };\n\nexport type PickerCommand = { command: string; args: string[] };\n\n/** PowerShell \u5355\u5F15\u53F7\u5B57\u7B26\u4E32\u8F6C\u4E49\u3002 */\nexport function escapePowerShellSingleQuoted(value: string): string {\n return value.replace(/'/g, \"''\");\n}\n\n/** AppleScript \u53CC\u5F15\u53F7\u5B57\u7B26\u4E32\u8F6C\u4E49\u3002 */\nexport function escapeAppleScriptString(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n\n/** \u9009\u62E9\u5668\u8D77\u59CB\u76EE\u5F55\uFF1A\u9ED8\u8BA4\u8DEF\u5F84\u4E0D\u5B58\u5728\u65F6\u56DE\u9000\u5230\u7236\u76EE\u5F55\u6216 cwd\u3002 */\nexport function resolvePickerStartDir(defaultDirectory: string): string {\n const resolved = path.resolve(defaultDirectory);\n if (fs.existsSync(resolved) && fs.statSync(resolved).isDirectory()) return resolved;\n const parent = path.dirname(resolved);\n if (fs.existsSync(parent) && fs.statSync(parent).isDirectory()) return parent;\n return process.cwd();\n}\n\nexport function buildWindowsPickerScript(title: string, defaultDirectory: string): string {\n const escape = escapePowerShellSingleQuoted;\n return [\n \"Add-Type -AssemblyName System.Windows.Forms\",\n \"$dialog = New-Object System.Windows.Forms.FolderBrowserDialog\",\n `$dialog.Description = '${escape(title)}'`,\n `$dialog.SelectedPath = '${escape(defaultDirectory)}'`,\n \"if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { Write-Output $dialog.SelectedPath }\",\n ].join(\"; \");\n}\n\nexport function buildMacOsPickerScript(title: string, defaultDirectory: string): string {\n const escTitle = escapeAppleScriptString(title);\n const escPath = escapeAppleScriptString(defaultDirectory.replace(/\\\\/g, \"/\"));\n return [\n `set defaultFolder to POSIX file \"${escPath}\"`,\n \"try\",\n ` POSIX path of (choose folder with prompt \"${escTitle}\" default location defaultFolder)`,\n \"on error number -128\",\n ' error \"User cancelled\"',\n \"end try\",\n ].join(\"\\n\");\n}\n\n/** \u6309\u5E73\u53F0\u751F\u6210\u539F\u751F\u76EE\u5F55\u9009\u62E9\u5668\u547D\u4EE4\u5019\u9009\uFF08\u5148\u8BD5\u684C\u9762\u9ED8\u8BA4\uFF0C\u518D\u8BD5\u901A\u7528\u5DE5\u5177\uFF09\u3002 */\nexport function buildDirectoryPickerCandidates(\n platform: NodeJS.Platform,\n title: string,\n defaultDirectory: string\n): PickerCommand[] {\n const startDir = resolvePickerStartDir(defaultDirectory);\n\n if (platform === \"win32\") {\n const script = buildWindowsPickerScript(title, startDir);\n return [\n { command: \"powershell.exe\", args: [\"-NoProfile\", \"-STA\", \"-Command\", script] },\n { command: \"pwsh\", args: [\"-NoProfile\", \"-STA\", \"-Command\", script] },\n ];\n }\n\n if (platform === \"darwin\") {\n return [{ command: \"osascript\", args: [\"-e\", buildMacOsPickerScript(title, startDir)] }];\n }\n\n if (platform === \"linux\") {\n const desktop = process.env.XDG_CURRENT_DESKTOP ?? \"\";\n const kdeFirst = /KDE/i.test(desktop);\n const zenity: PickerCommand = {\n command: \"zenity\",\n args: [\"--file-selection\", \"--directory\", `--title=${title}`, `--filename=${startDir}/`],\n };\n const kdialog: PickerCommand = {\n command: \"kdialog\",\n args: [\"--getexistingdirectory\", startDir, \"--title\", title],\n };\n return kdeFirst ? [kdialog, zenity] : [zenity, kdialog];\n }\n\n return [];\n}\n\nfunction isPickerCancelled(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const err = error as NodeJS.ErrnoException & { status?: number | null; stderr?: Buffer | string };\n if (err.status === 1) return true;\n const stderr = typeof err.stderr === \"string\" ? err.stderr : err.stderr?.toString(\"utf-8\") ?? \"\";\n if (/cancelled|-128|User cancelled/i.test(stderr)) return true;\n const message = err.message ?? \"\";\n return /cancelled|-128/i.test(message);\n}\n\n/** \u6267\u884C\u5355\u6B21\u539F\u751F\u76EE\u5F55\u9009\u62E9\uFF1B\u547D\u4EE4\u4E0D\u5B58\u5728\u65F6\u8FD4\u56DE unavailable\u3002 */\nexport function runDirectoryPickerCommand(candidate: PickerCommand): DirectoryPickerResult {\n try {\n const output = execFileSync(candidate.command, candidate.args, {\n encoding: \"utf-8\",\n windowsHide: true,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const trimmed = output.trim();\n if (!trimmed) return { status: \"cancelled\" };\n return { status: \"selected\", path: trimmed };\n } catch (error) {\n const err = error as NodeJS.ErrnoException;\n if (err.code === \"ENOENT\") return { status: \"unavailable\" };\n if (isPickerCancelled(error)) return { status: \"cancelled\" };\n return { status: \"unavailable\" };\n }\n}\n\n/** \u8DE8\u5E73\u53F0\u7CFB\u7EDF\u6587\u4EF6\u5939\u9009\u62E9\u5668\uFF08zenity / kdialog / osascript / PowerShell\uFF09\u3002 */\nexport function pickDirectoryDialog(title: string, defaultDirectory: string): DirectoryPickerResult {\n const candidates = buildDirectoryPickerCandidates(process.platform, title, defaultDirectory);\n if (candidates.length === 0) return { status: \"unavailable\" };\n\n for (const candidate of candidates) {\n const result = runDirectoryPickerCommand(candidate);\n if (result.status === \"unavailable\") continue;\n return result;\n }\n return { status: \"unavailable\" };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/help-text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help-text.d.ts","sourceRoot":"","sources":["../src/help-text.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAqDxG,wBAAgB,OAAO,CAAC,IAAI,GAAE,WAAoB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"help-text.d.ts","sourceRoot":"","sources":["../src/help-text.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAqDxG,wBAAgB,OAAO,CAAC,IAAI,GAAE,WAAoB,GAAG,MAAM,CA2I1D"}
|
package/dist/help-text.js
CHANGED
|
@@ -85,10 +85,6 @@ ${helpLine(c.dim("sfmc -p <sub> \u2026"), t("help.addon.compat"))}
|
|
|
85
85
|
const update = show("update") ? `
|
|
86
86
|
${c.bold(t("help.section.update"))}
|
|
87
87
|
${helpLine(`${p(mode, "update")} [--check-only] [--channel=\u2026]`, t("help.update"))}
|
|
88
|
-
` : "";
|
|
89
|
-
const remote = show("remote") ? `
|
|
90
|
-
${c.bold(t("help.section.remote"))} ${c.dim("[beta]")}
|
|
91
|
-
${helpLine(`${p(mode, "remote")} status|enroll|disable`, "")}
|
|
92
88
|
` : "";
|
|
93
89
|
const debug = show("debug") ? `
|
|
94
90
|
${c.bold(t("help.section.debug"))}
|
|
@@ -106,7 +102,7 @@ ${c.bold("\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25
|
|
|
106
102
|
${usage}${options}
|
|
107
103
|
${c.bold(t("help.section.service"))}
|
|
108
104
|
${service2}
|
|
109
|
-
${update}${
|
|
105
|
+
${update}${debug}${install}${addon2}
|
|
110
106
|
${c.bold(t("help.section.general"))}
|
|
111
107
|
${general2}
|
|
112
108
|
`;
|
package/dist/help-text.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/help-text.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * help-text.ts \u2014 argv / REPL \u5E2E\u52A9\u6587\u6848\uFF08\u6309 command-surface \u901A\u9053\u8FC7\u6EE4\uFF09\n */\nimport {\n getVisibleModuleSubcommands,\n isDeveloperSubcommand,\n} from \"./module-commands.js\";\nimport { listVisiblePacksSubs, listVisibleTopLevelNames, type CommandMode } from \"./command-surface.js\";\nimport { t } from \"./i18n/index.js\";\nimport { c, padRight } from \"./theme.js\";\n\nconst MODULE_HELP_ENTRIES: ReadonlyArray<{ sub: string; suffix: string; key: string }> = [\n { sub: \"list\", suffix: \"\", key: \"help.module.list\" },\n { sub: \"search\", suffix: \" [id]\", key: \"help.module.search\" },\n { sub: \"install\", suffix: \" <id> [--from <path> --link]\", key: \"help.module.install\" },\n { sub: \"uninstall\", suffix: \" <id>\", key: \"help.module.uninstall\" },\n { sub: \"verify\", suffix: \" [id]\", key: \"help.module.verify\" },\n { sub: \"info\", suffix: \" <id>\", key: \"help.module.info\" },\n { sub: \"enable\", suffix: \"|disable <id>\", key: \"help.module.toggle\" },\n { sub: \"build\", suffix: \"\", key: \"help.module.build\" },\n { sub: \"reload\", suffix: \" [--build-only]\", key: \"help.module.reload\" },\n];\n\n/** \u547D\u4EE4\u5217\u76EE\u6807\u5BBD\u5EA6\uFF08\u8D85\u51FA\u5219\u8BF4\u660E\u6362\u884C\uFF09 */\nconst HELP_CMD_COL = 36;\n\nfunction hasTop(mode: CommandMode, name: string): boolean {\n return listVisibleTopLevelNames(mode).includes(name);\n}\n\n/** \u5355\u884C\u300C\u547D\u4EE4 + \u8BF4\u660E\u300D\uFF1B\u547D\u4EE4\u8FC7\u957F\u5219\u8BF4\u660E\u53E6\u8D77\u4E00\u884C */\nfunction helpLine(cmdPainted: string, desc: string, col: number = HELP_CMD_COL): string {\n const plainLen = cmdPainted.replace(/\\x1b\\[[0-9;]*m/g, \"\").length;\n if (plainLen >= col) {\n return ` ${cmdPainted}\\n ${c.dim(desc)}`;\n }\n return ` ${padRight(cmdPainted, col)}${desc}`;\n}\n\nfunction moduleHelpBlock(mode: CommandMode): string {\n const visible = new Set(getVisibleModuleSubcommands(mode));\n const entries = MODULE_HELP_ENTRIES.filter(({ sub }) => visible.has(sub));\n return entries\n .map(({ sub, suffix, key }) => {\n const paint = isDeveloperSubcommand(sub) ? c.blue : c.green;\n const plain = mode === \"argv\" ? `sfmc module ${sub}${suffix}` : `/module ${sub}${suffix}`;\n return helpLine(paint(plain), t(key as never));\n })\n .join(\"\\n\");\n}\n\nfunction p(mode: CommandMode, cmd: string, paint: (s: string) => string = c.green): string {\n return mode === \"argv\" ? paint(`sfmc ${cmd}`) : paint(`/${cmd}`);\n}\n\n/** \u5E26\u53C2\u6570\u540E\u7F00\u7684\u547D\u4EE4\u884C */\nfunction pArgs(mode: CommandMode, cmd: string, args: string, paint: (s: string) => string = c.green): string {\n return mode === \"argv\" ? paint(`sfmc ${cmd}`) + args : paint(`/${cmd}`) + args;\n}\n\nexport function getHelp(mode: CommandMode = \"argv\"): string {\n const show = (name: string) => hasTop(mode, name);\n const packsSubs = listVisiblePacksSubs(mode);\n\n if (mode === \"argv\") {\n const usage = `${c.bold(t(\"help.usage\"))}\\n ${c.green(\"sfmc\")} [options] <command> [args]\\n`;\n const options = `\n${c.bold(t(\"help.section.options\"))}\n${helpLine(`${c.green(\"-p\")}, ${c.green(\"--packs\")}`, t(\"help.opt.packs\"))}\n${helpLine(`${c.green(\"--lang\")}, ${c.green(\"--locale\")}`, t(\"help.opt.lang\"))}\n${helpLine(`${c.green(\"-h\")}, ${c.green(\"--help\")}`, t(\"help.help\"))}\n${helpLine(`${c.green(\"-v\")}, ${c.green(\"--version\")}`, t(\"help.version\"))}\n`;\n const service = [\n show(\"status\") ? helpLine(p(mode, \"status\"), t(\"help.status\")) : \"\",\n show(\"logs\") ? helpLine(p(mode, \"logs\"), t(\"help.logs\")) : \"\",\n show(\"start\") ? helpLine(pArgs(mode, \"start\", \" <svc>|-all\"), t(\"help.start\")) : \"\",\n show(\"stop\") ? helpLine(pArgs(mode, \"stop\", \" <svc>|-all\"), t(\"help.stop\")) : \"\",\n show(\"restart\") ? helpLine(pArgs(mode, \"restart\", \" <svc>|-all\"), t(\"help.restart\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const install = `\n${c.bold(t(\"help.section.module\"))}\n${helpLine(`${c.green(\"sfmc mod install\")} <id>`, t(\"help.module.install\"))}\n${helpLine(`${c.green(\"sfmc mod install\")} <id> --from <path> --link`, t(\"help.module.install\"))}\n${helpLine(`${c.green(\"sfmc mod uninstall\")} <id>`, t(\"help.module.uninstall\"))}\n${helpLine(`${c.green(\"sfmc mod search\")} [id]`, t(\"help.module.search\"))}\n${helpLine(`${c.green(\"sfmc mod verify\")} [id]`, t(\"help.module.verify\"))}\n${moduleHelpBlock(\"argv\")}\n`;\n\n const packsLines = packsSubs\n .map((sub) => {\n const short = sub === \"install\" ? \"i|install\" : sub;\n return helpLine(c.green(`sfmc packs ${short}`), \"\");\n })\n .join(\"\\n\");\n const addon =\n packsSubs.length > 0\n ? `\n${c.bold(t(\"help.section.addon\"))}\n${packsLines}\n${helpLine(c.dim(\"sfmc -p <sub> \u2026\"), t(\"help.addon.compat\"))}\n`\n : \"\";\n\n const update = show(\"update\")\n ? `\n${c.bold(t(\"help.section.update\"))}\n${helpLine(`${p(mode, \"update\")} [--check-only] [--channel=\u2026]`, t(\"help.update\"))}\n`\n : \"\";\n const remote = show(\"remote\")\n ? `\n${c.bold(t(\"help.section.remote\"))} ${c.dim(\"[beta]\")}\n${helpLine(`${p(mode, \"remote\")} status|enroll|disable`, \"\")}\n`\n : \"\";\n const debug = show(\"debug\")\n ? `\n${c.bold(t(\"help.section.debug\"))}\n${helpLine(`${c.blue(\"sfmc debug\")} status|enable|disable|sentry \u2026`, \"\")}\n`\n : \"\";\n const general = [\n show(\"init\") ? helpLine(p(mode, \"init\"), t(\"help.init\")) : \"\",\n show(\"locale\") ? helpLine(pArgs(mode, \"locale\", \" [zh|en]\"), t(\"help.locale\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n return `\n${c.bold(\"\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E\")}\n${c.bold(\"\u2502\")} ${c.green(t(\"help.title\"))}${\" \".repeat(Math.max(1, 56 - t(\"help.title\").length))}${c.bold(\"\u2502\")}\n${c.bold(\"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F\")}\n\n${usage}${options}\n${c.bold(t(\"help.section.service\"))}\n${service}\n${update}${remote}${debug}${install}${addon}\n${c.bold(t(\"help.section.general\"))}\n${general}\n`;\n }\n\n const service = [\n show(\"status\") ? helpLine(p(mode, \"status\"), t(\"help.status\")) : \"\",\n show(\"logs\") ? helpLine(p(mode, \"logs\"), t(\"help.logs\")) : \"\",\n show(\"start\") ? helpLine(pArgs(mode, \"start\", \" <svc>|-all\"), t(\"help.start\")) : \"\",\n show(\"stop\") ? helpLine(pArgs(mode, \"stop\", \" <svc>|-all\"), t(\"help.stop\")) : \"\",\n show(\"restart\") ? helpLine(pArgs(mode, \"restart\", \" <svc>|-all\"), t(\"help.restart\")) : \"\",\n show(\"send\") ? helpLine(pArgs(mode, \"send\", \" <svc> <msg>\"), t(\"help.send\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const moduleSec = `\n${c.bold(t(\"help.section.module\"))}\n${moduleHelpBlock(\"repl\")}\n`;\n\n const packsLines = packsSubs.map((sub) => helpLine(c.green(`/packs ${sub}`), \"\")).join(\"\\n\");\n const addon =\n packsSubs.length > 0\n ? `\n${c.bold(t(\"help.section.addon\"))}\n${packsLines}\n`\n : \"\";\n\n const general = [\n show(\"version\") ? helpLine(p(mode, \"version\"), t(\"help.version\")) : \"\",\n show(\"help\") ? helpLine(p(mode, \"help\"), t(\"help.help\")) : \"\",\n show(\"quit\") ? helpLine(p(mode, \"quit\"), t(\"help.quit\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const shortcuts = `\n${c.dim(\"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\")}\n${c.dim(t(\"help.shortcuts\"))}\n${helpLine(c.dim(\"/\"), t(\"help.shortcut.slash\"), 12)}\n${helpLine(c.dim(\"Ctrl+P\"), t(\"help.shortcut.ctrlp\"), 12)}\n${helpLine(c.dim(\"Tab\"), t(\"help.shortcut.tab\"), 12)}\n${helpLine(c.dim(\"\u2190\u2192\"), t(\"help.shortcut.cursor\"), 12)}\n${helpLine(c.dim(\"\u2192\"), t(\"help.shortcut.right\"), 12)}\n${helpLine(c.dim(\"Ctrl+L\"), t(\"help.shortcut.ctrll\"), 12)}\n${helpLine(c.dim(\"\u2191\u2193\"), t(\"help.shortcut.history\"), 12)}\n`;\n\n return `\n${c.bold(\"\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E\")}\n${c.bold(\"\u2502\")} ${c.green(t(\"help.title.repl\"))}${\" \".repeat(Math.max(1, 56 - t(\"help.title.repl\").length))}${c.bold(\"\u2502\")}\n${c.bold(\"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F\")}\n\n${c.dim(t(\"help.slash.hint\"))}\n\n${c.bold(t(\"help.section.service\"))}\n${service}\n${moduleSec}${addon}\n${c.bold(t(\"help.section.general\"))}\n${general}\n${shortcuts}`;\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * help-text.ts \u2014 argv / REPL \u5E2E\u52A9\u6587\u6848\uFF08\u6309 command-surface \u901A\u9053\u8FC7\u6EE4\uFF09\n */\nimport {\n getVisibleModuleSubcommands,\n isDeveloperSubcommand,\n} from \"./module-commands.js\";\nimport { listVisiblePacksSubs, listVisibleTopLevelNames, type CommandMode } from \"./command-surface.js\";\nimport { t } from \"./i18n/index.js\";\nimport { c, padRight } from \"./theme.js\";\n\nconst MODULE_HELP_ENTRIES: ReadonlyArray<{ sub: string; suffix: string; key: string }> = [\n { sub: \"list\", suffix: \"\", key: \"help.module.list\" },\n { sub: \"search\", suffix: \" [id]\", key: \"help.module.search\" },\n { sub: \"install\", suffix: \" <id> [--from <path> --link]\", key: \"help.module.install\" },\n { sub: \"uninstall\", suffix: \" <id>\", key: \"help.module.uninstall\" },\n { sub: \"verify\", suffix: \" [id]\", key: \"help.module.verify\" },\n { sub: \"info\", suffix: \" <id>\", key: \"help.module.info\" },\n { sub: \"enable\", suffix: \"|disable <id>\", key: \"help.module.toggle\" },\n { sub: \"build\", suffix: \"\", key: \"help.module.build\" },\n { sub: \"reload\", suffix: \" [--build-only]\", key: \"help.module.reload\" },\n];\n\n/** \u547D\u4EE4\u5217\u76EE\u6807\u5BBD\u5EA6\uFF08\u8D85\u51FA\u5219\u8BF4\u660E\u6362\u884C\uFF09 */\nconst HELP_CMD_COL = 36;\n\nfunction hasTop(mode: CommandMode, name: string): boolean {\n return listVisibleTopLevelNames(mode).includes(name);\n}\n\n/** \u5355\u884C\u300C\u547D\u4EE4 + \u8BF4\u660E\u300D\uFF1B\u547D\u4EE4\u8FC7\u957F\u5219\u8BF4\u660E\u53E6\u8D77\u4E00\u884C */\nfunction helpLine(cmdPainted: string, desc: string, col: number = HELP_CMD_COL): string {\n const plainLen = cmdPainted.replace(/\\x1b\\[[0-9;]*m/g, \"\").length;\n if (plainLen >= col) {\n return ` ${cmdPainted}\\n ${c.dim(desc)}`;\n }\n return ` ${padRight(cmdPainted, col)}${desc}`;\n}\n\nfunction moduleHelpBlock(mode: CommandMode): string {\n const visible = new Set(getVisibleModuleSubcommands(mode));\n const entries = MODULE_HELP_ENTRIES.filter(({ sub }) => visible.has(sub));\n return entries\n .map(({ sub, suffix, key }) => {\n const paint = isDeveloperSubcommand(sub) ? c.blue : c.green;\n const plain = mode === \"argv\" ? `sfmc module ${sub}${suffix}` : `/module ${sub}${suffix}`;\n return helpLine(paint(plain), t(key as never));\n })\n .join(\"\\n\");\n}\n\nfunction p(mode: CommandMode, cmd: string, paint: (s: string) => string = c.green): string {\n return mode === \"argv\" ? paint(`sfmc ${cmd}`) : paint(`/${cmd}`);\n}\n\n/** \u5E26\u53C2\u6570\u540E\u7F00\u7684\u547D\u4EE4\u884C */\nfunction pArgs(mode: CommandMode, cmd: string, args: string, paint: (s: string) => string = c.green): string {\n return mode === \"argv\" ? paint(`sfmc ${cmd}`) + args : paint(`/${cmd}`) + args;\n}\n\nexport function getHelp(mode: CommandMode = \"argv\"): string {\n const show = (name: string) => hasTop(mode, name);\n const packsSubs = listVisiblePacksSubs(mode);\n\n if (mode === \"argv\") {\n const usage = `${c.bold(t(\"help.usage\"))}\\n ${c.green(\"sfmc\")} [options] <command> [args]\\n`;\n const options = `\n${c.bold(t(\"help.section.options\"))}\n${helpLine(`${c.green(\"-p\")}, ${c.green(\"--packs\")}`, t(\"help.opt.packs\"))}\n${helpLine(`${c.green(\"--lang\")}, ${c.green(\"--locale\")}`, t(\"help.opt.lang\"))}\n${helpLine(`${c.green(\"-h\")}, ${c.green(\"--help\")}`, t(\"help.help\"))}\n${helpLine(`${c.green(\"-v\")}, ${c.green(\"--version\")}`, t(\"help.version\"))}\n`;\n const service = [\n show(\"status\") ? helpLine(p(mode, \"status\"), t(\"help.status\")) : \"\",\n show(\"logs\") ? helpLine(p(mode, \"logs\"), t(\"help.logs\")) : \"\",\n show(\"start\") ? helpLine(pArgs(mode, \"start\", \" <svc>|-all\"), t(\"help.start\")) : \"\",\n show(\"stop\") ? helpLine(pArgs(mode, \"stop\", \" <svc>|-all\"), t(\"help.stop\")) : \"\",\n show(\"restart\") ? helpLine(pArgs(mode, \"restart\", \" <svc>|-all\"), t(\"help.restart\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const install = `\n${c.bold(t(\"help.section.module\"))}\n${helpLine(`${c.green(\"sfmc mod install\")} <id>`, t(\"help.module.install\"))}\n${helpLine(`${c.green(\"sfmc mod install\")} <id> --from <path> --link`, t(\"help.module.install\"))}\n${helpLine(`${c.green(\"sfmc mod uninstall\")} <id>`, t(\"help.module.uninstall\"))}\n${helpLine(`${c.green(\"sfmc mod search\")} [id]`, t(\"help.module.search\"))}\n${helpLine(`${c.green(\"sfmc mod verify\")} [id]`, t(\"help.module.verify\"))}\n${moduleHelpBlock(\"argv\")}\n`;\n\n const packsLines = packsSubs\n .map((sub) => {\n const short = sub === \"install\" ? \"i|install\" : sub;\n return helpLine(c.green(`sfmc packs ${short}`), \"\");\n })\n .join(\"\\n\");\n const addon =\n packsSubs.length > 0\n ? `\n${c.bold(t(\"help.section.addon\"))}\n${packsLines}\n${helpLine(c.dim(\"sfmc -p <sub> \u2026\"), t(\"help.addon.compat\"))}\n`\n : \"\";\n\n const update = show(\"update\")\n ? `\n${c.bold(t(\"help.section.update\"))}\n${helpLine(`${p(mode, \"update\")} [--check-only] [--channel=\u2026]`, t(\"help.update\"))}\n`\n : \"\";\n const debug = show(\"debug\")\n ? `\n${c.bold(t(\"help.section.debug\"))}\n${helpLine(`${c.blue(\"sfmc debug\")} status|enable|disable|sentry \u2026`, \"\")}\n`\n : \"\";\n const general = [\n show(\"init\") ? helpLine(p(mode, \"init\"), t(\"help.init\")) : \"\",\n show(\"locale\") ? helpLine(pArgs(mode, \"locale\", \" [zh|en]\"), t(\"help.locale\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n return `\n${c.bold(\"\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E\")}\n${c.bold(\"\u2502\")} ${c.green(t(\"help.title\"))}${\" \".repeat(Math.max(1, 56 - t(\"help.title\").length))}${c.bold(\"\u2502\")}\n${c.bold(\"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F\")}\n\n${usage}${options}\n${c.bold(t(\"help.section.service\"))}\n${service}\n${update}${debug}${install}${addon}\n${c.bold(t(\"help.section.general\"))}\n${general}\n`;\n }\n\n const service = [\n show(\"status\") ? helpLine(p(mode, \"status\"), t(\"help.status\")) : \"\",\n show(\"logs\") ? helpLine(p(mode, \"logs\"), t(\"help.logs\")) : \"\",\n show(\"start\") ? helpLine(pArgs(mode, \"start\", \" <svc>|-all\"), t(\"help.start\")) : \"\",\n show(\"stop\") ? helpLine(pArgs(mode, \"stop\", \" <svc>|-all\"), t(\"help.stop\")) : \"\",\n show(\"restart\") ? helpLine(pArgs(mode, \"restart\", \" <svc>|-all\"), t(\"help.restart\")) : \"\",\n show(\"send\") ? helpLine(pArgs(mode, \"send\", \" <svc> <msg>\"), t(\"help.send\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const moduleSec = `\n${c.bold(t(\"help.section.module\"))}\n${moduleHelpBlock(\"repl\")}\n`;\n\n const packsLines = packsSubs.map((sub) => helpLine(c.green(`/packs ${sub}`), \"\")).join(\"\\n\");\n const addon =\n packsSubs.length > 0\n ? `\n${c.bold(t(\"help.section.addon\"))}\n${packsLines}\n`\n : \"\";\n\n const general = [\n show(\"version\") ? helpLine(p(mode, \"version\"), t(\"help.version\")) : \"\",\n show(\"help\") ? helpLine(p(mode, \"help\"), t(\"help.help\")) : \"\",\n show(\"quit\") ? helpLine(p(mode, \"quit\"), t(\"help.quit\")) : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const shortcuts = `\n${c.dim(\"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\")}\n${c.dim(t(\"help.shortcuts\"))}\n${helpLine(c.dim(\"/\"), t(\"help.shortcut.slash\"), 12)}\n${helpLine(c.dim(\"Ctrl+P\"), t(\"help.shortcut.ctrlp\"), 12)}\n${helpLine(c.dim(\"Tab\"), t(\"help.shortcut.tab\"), 12)}\n${helpLine(c.dim(\"\u2190\u2192\"), t(\"help.shortcut.cursor\"), 12)}\n${helpLine(c.dim(\"\u2192\"), t(\"help.shortcut.right\"), 12)}\n${helpLine(c.dim(\"Ctrl+L\"), t(\"help.shortcut.ctrll\"), 12)}\n${helpLine(c.dim(\"\u2191\u2193\"), t(\"help.shortcut.history\"), 12)}\n`;\n\n return `\n${c.bold(\"\u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E\")}\n${c.bold(\"\u2502\")} ${c.green(t(\"help.title.repl\"))}${\" \".repeat(Math.max(1, 56 - t(\"help.title.repl\").length))}${c.bold(\"\u2502\")}\n${c.bold(\"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F\")}\n\n${c.dim(t(\"help.slash.hint\"))}\n\n${c.bold(t(\"help.section.service\"))}\n${service}\n${moduleSec}${addon}\n${c.bold(t(\"help.section.general\"))}\n${general}\n${shortcuts}`;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["service", "packsLines", "addon", "general"]
|
|
7
7
|
}
|
|
@@ -53,23 +53,27 @@ export declare const en: {
|
|
|
53
53
|
readonly "repl.palette.hint": "↑↓ · Enter · Esc";
|
|
54
54
|
readonly "repl.palette.empty": "No matches";
|
|
55
55
|
readonly "help.section.service": "─── Service Control ───";
|
|
56
|
-
readonly "help.status": "Show all services status";
|
|
56
|
+
readonly "help.status": "Show all services status (includes QQ backend summary)";
|
|
57
57
|
readonly "help.logs": "Open log filter window (on-disk logs)";
|
|
58
|
-
readonly "help.start": "Start a service";
|
|
58
|
+
readonly "help.start": "Start a service (db / qq / llbot / bds; qq defaults to official Bot)";
|
|
59
59
|
readonly "help.stop": "Stop a service";
|
|
60
60
|
readonly "help.restart": "Restart a service";
|
|
61
|
-
readonly "help.send": "Send command to a service";
|
|
61
|
+
readonly "help.send": "Send command to a service (Tab cycles targets; QQ prompt shows official / llbot)";
|
|
62
62
|
readonly "help.section.update": "─── BDS Update ───";
|
|
63
63
|
readonly "help.update": "Check / apply BDS update";
|
|
64
|
-
readonly "help.section.remote": "─── Remote Agent ───";
|
|
65
|
-
readonly "help.remote.status": "Show enrollment status";
|
|
66
|
-
readonly "help.remote.enroll": "Enroll with a controller";
|
|
67
|
-
readonly "help.remote.disable": "Disconnect + disable agent";
|
|
68
64
|
readonly "help.section.debug": "─── BDS debug ───";
|
|
69
65
|
readonly "help.debug.status": "View sfmc_debug / SENTRY_DSN state";
|
|
70
66
|
readonly "help.debug.toggle": "Toggle sfmc_debug";
|
|
71
67
|
readonly "help.debug.sentry.on": "Set SENTRY_DSN";
|
|
72
68
|
readonly "help.debug.sentry.off": "Remove SENTRY_DSN";
|
|
69
|
+
readonly "help.ui": "UI Studio — visual editor for declarative UI";
|
|
70
|
+
readonly "ui.usage": "Usage: ui studio | ui stop";
|
|
71
|
+
readonly "ui.studio.started": "UI Studio started: {url}";
|
|
72
|
+
readonly "ui.studio.hint": "Press Ctrl+C to stop the server.";
|
|
73
|
+
readonly "ui.studio.already": "UI Studio is already running: {url}";
|
|
74
|
+
readonly "ui.studio.stopped": "UI Studio stopped.";
|
|
75
|
+
readonly "ui.studio.notRunning": "UI Studio is not running in this process.";
|
|
76
|
+
readonly "ui.studio.failed": "Failed to start UI Studio: {message}";
|
|
73
77
|
readonly "help.section.module": "─── Module Management ───";
|
|
74
78
|
readonly "help.module.list": "List installed modules";
|
|
75
79
|
readonly "help.module.search": "Search registry / show module info";
|
|
@@ -156,6 +160,13 @@ export declare const en: {
|
|
|
156
160
|
readonly "svc.restartFailed": "{title} restart failed: {message}";
|
|
157
161
|
readonly "svc.allStarted": "All services started";
|
|
158
162
|
readonly "svc.allStopped": "All services stopped";
|
|
163
|
+
readonly "svc.skipped": "{title} skipped: {reason}";
|
|
164
|
+
readonly "svc.startAll.started": "Started: {list}";
|
|
165
|
+
readonly "svc.startAll.skipped": "Skipped: {list}";
|
|
166
|
+
readonly "svc.startAll.failed": "Failed: {list}";
|
|
167
|
+
readonly "svc.startAll.empty": "Nothing to start";
|
|
168
|
+
readonly "svc.qq.footer.official": "QQ bridge: official · {enabled} · AppID {appId} · group_openid {openid} · {sandbox} · creds={creds}";
|
|
169
|
+
readonly "svc.qq.footer.llbot": "QQ bridge: llbot · {enabled} · group {group} · path {path}";
|
|
159
170
|
readonly "svc.updateComplete": "update complete";
|
|
160
171
|
readonly "svc.updateExited": "update exited with code {code}";
|
|
161
172
|
readonly "svc.updateError": "update error: {message}";
|
|
@@ -166,22 +177,30 @@ export declare const en: {
|
|
|
166
177
|
readonly "svc.bdsAlreadyRunning": "BDS already running ({kind}, PID {pid})";
|
|
167
178
|
readonly "svc.stdinUnavailable": "{title} was started externally; stdin commands unavailable";
|
|
168
179
|
readonly "svc.stoppedExternal": "{title} stopped (external process)";
|
|
169
|
-
readonly "remote.enrolled": "Enrolled remote agent: {id}";
|
|
170
|
-
readonly "remote.disabled": "Remote agent disabled";
|
|
171
|
-
readonly "remote.usage": "Usage: sfmc remote enroll <controller-url> <enrollment-token> [name] | sfmc remote status | sfmc remote disable";
|
|
172
|
-
readonly "remote.usageShort": "Usage: remote enroll <controller-url> <enrollment-token> [name] | remote status | remote disable";
|
|
173
180
|
readonly "wizard.intro": "Setup Wizard =D";
|
|
174
181
|
readonly "wizard.rerun": "Already initialized. Re-run setup?";
|
|
175
182
|
readonly "wizard.skipped": "Setup skipped";
|
|
176
183
|
readonly "wizard.step1": "Step 1 - Runtime Environment";
|
|
177
184
|
readonly "wizard.runtimeRoot": "Runtime root: {root}";
|
|
178
|
-
readonly "wizard.
|
|
185
|
+
readonly "wizard.runtimeMissingAssets": "Runtime is missing required directories: {list}";
|
|
179
186
|
readonly "wizard.prepFailed": "Runtime preparation failed: {message}";
|
|
180
187
|
readonly "wizard.step2": "Step 2 - External Runtimes";
|
|
181
|
-
readonly "wizard.step2Note": "Select paths for BDS, Database, and
|
|
188
|
+
readonly "wizard.step2Note": "Select paths for BDS, Database, and QQ bridge backend";
|
|
182
189
|
readonly "wizard.bdsDir": "BDS installation directory";
|
|
183
190
|
readonly "wizard.cannotCreateBds": "Cannot create BDS installation directory: {dir}";
|
|
184
|
-
readonly "wizard.
|
|
191
|
+
readonly "wizard.qqBackend": "QQ bridge backend:";
|
|
192
|
+
readonly "wizard.qqBackend.official": "QQ Open Platform (official Bot)";
|
|
193
|
+
readonly "wizard.qqBackend.officialHint": "Recommended; needs AppID / AppSecret";
|
|
194
|
+
readonly "wizard.qqBackend.llbot": "LLBot (OneBot 11)";
|
|
195
|
+
readonly "wizard.qqBackend.llbotHint": "Requires local LLBot process";
|
|
196
|
+
readonly "wizard.qqBackend.disabled": "Disable QQ bridge for now";
|
|
197
|
+
readonly "wizard.qqBackend.disabledHint": "qq_enabled=false";
|
|
198
|
+
readonly "wizard.qqAppId": "QQ Open Platform AppID:";
|
|
199
|
+
readonly "wizard.qqAppSecret": "QQ Open Platform AppSecret:";
|
|
200
|
+
readonly "wizard.qqSandbox": "Use sandbox environment?";
|
|
201
|
+
readonly "wizard.qqGroupOpenid": "Group openid (optional for now):";
|
|
202
|
+
readonly "wizard.qqGroupOpenidHint": "not a classic group number";
|
|
203
|
+
readonly "wizard.enableLlbot": "Enable LLBot process takeover?";
|
|
185
204
|
readonly "wizard.llbotDir": "LLBot runtime directory";
|
|
186
205
|
readonly "wizard.usingDefault": "Using default: {path}";
|
|
187
206
|
readonly "wizard.dbDir": "Database storage directory";
|
|
@@ -235,6 +254,7 @@ export declare const en: {
|
|
|
235
254
|
readonly "prompt.enterPath": "Enter path";
|
|
236
255
|
readonly "prompt.browse": "Browse…";
|
|
237
256
|
readonly "prompt.browseHint": "Open system folder picker";
|
|
257
|
+
readonly "prompt.browseUnavailable": "system picker unavailable; enter path manually";
|
|
238
258
|
readonly "reload.buildOnly": "(deploy done; type reload in BDS/game, or omit --build-only to send automatically)";
|
|
239
259
|
readonly "reload.bdsNotRunning": "BDS is not running — build+deploy finished. After start, type reload in BDS console or in-game.";
|
|
240
260
|
readonly "reload.sent": "Sent reload to BDS";
|
|
@@ -302,6 +322,21 @@ export declare const en: {
|
|
|
302
322
|
readonly "packs.doctor.missingDir": "List has uuid but directory missing ({kind}): {uuid}";
|
|
303
323
|
readonly "packs.doctor.versionMismatch": "Version mismatch ({kind}): {folder} list {listVer} vs disk {diskVer}";
|
|
304
324
|
readonly "packs.doctor.notEnabled": "Installed but not enabled: [{kind}] {folder} ({uuid})";
|
|
325
|
+
readonly "packs.doctor.betaApisMissing": 'World "{level}" has not enabled "Beta APIs (gametest)", but required by:\n{packs}\n These packs will be blocked by BDS! Run packs doctor --fix to enable.';
|
|
326
|
+
readonly "packs.doctor.betaApisFixed": 'Successfully enabled "Beta APIs" (gametest = 1b) for world "{level}", backup created at: {backup}';
|
|
327
|
+
readonly "packs.doctor.betaApisAlreadyOn": 'Beta APIs is already enabled for world "{level}"';
|
|
328
|
+
readonly "packs.doctor.betaApisFailed": 'Failed to enable Beta APIs for world "{level}": {error}';
|
|
329
|
+
readonly "packs.doctor.ghostPackCleaned": "Cleaned missing pack entry ({kind}): {uuid}";
|
|
330
|
+
readonly "packs.doctor.versionSynced": "Synced version ({kind}): {folder} list {listVer} → disk {diskVer}";
|
|
331
|
+
readonly "packs.doctor.permissionsMissing": "The following behavior packs depend on modules not allowed in BDS config:\n{list}\n Unconfigured modules will be blocked at runtime by BDS! Run packs doctor --fix to allow them.";
|
|
332
|
+
readonly "packs.doctor.permissionsFixed": "Automatically allowed script modules: {perms}";
|
|
333
|
+
readonly "packs.doctor.fixedSummary": "doctor: auto-healed {count} issue(s).";
|
|
334
|
+
readonly "packs.doctor.fixPrompt": 'Run "packs doctor --fix" to automatically heal fixable issues.';
|
|
335
|
+
readonly "packs.doctor.experimentsStatus": 'World Experiments Status (World "{level}"):';
|
|
336
|
+
readonly "packs.doctor.experimentsFixed": 'Successfully enabled experimental features ({list}) for world "{level}", backup created at: {backup}';
|
|
337
|
+
readonly "packs.doctor.experimentsAlreadyOn": 'Requested experimental features for world "{level}" are already enabled';
|
|
338
|
+
readonly "packs.doctor.experimentsFailed": 'Failed to modify experimental features for world "{level}": {error}';
|
|
339
|
+
readonly "packs.doctor.experimentsFixPrompt": 'Run "packs doctor --fix --all-experiments" to enable all known experimental features.';
|
|
305
340
|
readonly "packs.doctor.ok": "doctor: no issues found";
|
|
306
341
|
readonly "packs.doctor.found": "doctor found {count} issue(s):\n{list}";
|
|
307
342
|
readonly "packs.notFound": "Pack not found: {id}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"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"}
|