@sfmc-bds/cli 0.1.0 → 0.2.0-beta.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 +7 -1
- package/dist/cli-result.d.ts +12 -0
- package/dist/cli-result.d.ts.map +1 -0
- package/dist/cli-result.js +15 -0
- package/dist/cli-result.js.map +7 -0
- package/dist/commands-behavior-pack.d.ts +11 -42
- package/dist/commands-behavior-pack.d.ts.map +1 -1
- package/dist/commands-behavior-pack.js +40 -159
- package/dist/commands-behavior-pack.js.map +7 -1
- package/dist/commands-reload.d.ts +9 -0
- package/dist/commands-reload.d.ts.map +1 -0
- package/dist/commands-reload.js +30 -0
- package/dist/commands-reload.js.map +7 -0
- package/dist/commands.d.ts +7 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +182 -172
- package/dist/commands.js.map +7 -1
- package/dist/i18n/index.d.ts +26 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +107 -0
- package/dist/i18n/index.js.map +7 -0
- package/dist/i18n/locales/en.d.ts +381 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +393 -0
- package/dist/i18n/locales/en.js.map +7 -0
- package/dist/i18n/locales/zh-CN.d.ts +4 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +379 -0
- package/dist/i18n/locales/zh-CN.js.map +7 -0
- package/dist/i18n/types.d.ts +7 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +17 -0
- package/dist/i18n/types.js.map +7 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -43
- package/dist/index.js.map +7 -1
- package/dist/interactive-prompts.d.ts +8 -0
- package/dist/interactive-prompts.d.ts.map +1 -0
- package/dist/interactive-prompts.js +57 -0
- package/dist/interactive-prompts.js.map +7 -0
- package/dist/locale-command.d.ts +3 -0
- package/dist/locale-command.d.ts.map +1 -0
- package/dist/locale-command.js +19 -0
- package/dist/locale-command.js.map +7 -0
- package/dist/logs.d.ts +22 -4
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +208 -193
- package/dist/logs.js.map +7 -1
- package/dist/main.js +135 -173
- package/dist/main.js.map +7 -1
- package/dist/module-commands.d.ts +43 -4
- package/dist/module-commands.d.ts.map +1 -1
- package/dist/module-commands.js +440 -327
- package/dist/module-commands.js.map +7 -1
- package/dist/module-fingerprint.d.ts +7 -0
- package/dist/module-fingerprint.d.ts.map +1 -0
- package/dist/module-fingerprint.js +31 -0
- package/dist/module-fingerprint.js.map +7 -0
- package/dist/module-wizard.d.ts +14 -0
- package/dist/module-wizard.d.ts.map +1 -0
- package/dist/module-wizard.js +313 -0
- package/dist/module-wizard.js.map +7 -0
- package/dist/pack-lifecycle.d.ts +95 -0
- package/dist/pack-lifecycle.d.ts.map +1 -0
- package/dist/pack-lifecycle.js +634 -0
- package/dist/pack-lifecycle.js.map +7 -0
- package/dist/pack-update/bindings.d.ts +12 -0
- package/dist/pack-update/bindings.d.ts.map +1 -0
- package/dist/pack-update/bindings.js +64 -0
- package/dist/pack-update/bindings.js.map +7 -0
- package/dist/pack-update/config.d.ts +22 -0
- package/dist/pack-update/config.d.ts.map +1 -0
- package/dist/pack-update/config.js +141 -0
- package/dist/pack-update/config.js.map +7 -0
- package/dist/pack-update/providers/curseforge.d.ts +23 -0
- package/dist/pack-update/providers/curseforge.d.ts.map +1 -0
- package/dist/pack-update/providers/curseforge.js +209 -0
- package/dist/pack-update/providers/curseforge.js.map +7 -0
- package/dist/pack-update/providers/index.d.ts +16 -0
- package/dist/pack-update/providers/index.d.ts.map +1 -0
- package/dist/pack-update/providers/index.js +37 -0
- package/dist/pack-update/providers/index.js.map +7 -0
- package/dist/pack-update/service.d.ts +21 -0
- package/dist/pack-update/service.d.ts.map +1 -0
- package/dist/pack-update/service.js +567 -0
- package/dist/pack-update/service.js.map +7 -0
- package/dist/pack-update/types.d.ts +126 -0
- package/dist/pack-update/types.d.ts.map +1 -0
- package/dist/pack-update/types.js +8 -0
- package/dist/pack-update/types.js.map +7 -0
- package/dist/pack-update/version-policy.d.ts +80 -0
- package/dist/pack-update/version-policy.d.ts.map +1 -0
- package/dist/pack-update/version-policy.js +216 -0
- package/dist/pack-update/version-policy.js.map +7 -0
- package/dist/registry.d.ts +12 -4
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +73 -106
- package/dist/registry.js.map +7 -1
- package/dist/remote-agent.d.ts.map +1 -1
- package/dist/remote-agent.js +160 -176
- package/dist/remote-agent.js.map +7 -1
- package/dist/repl.d.ts +4 -0
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +683 -605
- package/dist/repl.js.map +7 -1
- package/dist/runtime.d.ts +40 -14
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +185 -62
- package/dist/runtime.js.map +7 -1
- package/dist/services.d.ts +2 -0
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +251 -238
- package/dist/services.js.map +7 -1
- package/dist/sfmc-modules-root.d.ts +24 -0
- package/dist/sfmc-modules-root.d.ts.map +1 -0
- package/dist/sfmc-modules-root.js +70 -0
- package/dist/sfmc-modules-root.js.map +7 -0
- package/dist/theme.d.ts +4 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +134 -48
- package/dist/theme.js.map +7 -1
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +363 -438
- package/dist/wizard.js.map +7 -1
- package/dist/world-packs.d.ts +22 -0
- package/dist/world-packs.d.ts.map +1 -0
- package/dist/world-packs.js +872 -0
- package/dist/world-packs.js.map +7 -0
- package/package.json +10 -10
- package/dist/dispatcher.d.ts +0 -13
- package/dist/dispatcher.d.ts.map +0 -1
- package/dist/dispatcher.js +0 -23
- package/dist/dispatcher.js.map +0 -1
- package/dist/terminal.d.ts +0 -3
- package/dist/terminal.d.ts.map +0 -1
- package/dist/terminal.js +0 -178
- package/dist/terminal.js.map +0 -1
package/dist/repl.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/repl.ts"],
|
|
4
|
+
"sourcesContent": ["import process, { stdin, stdout } from \"node:process\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport {\n cmdLogs,\n cmdRestart,\n cmdSend,\n cmdStart,\n cmdStartAll,\n cmdStatus,\n cmdStop,\n cmdStopAll,\n cmdUpdate,\n} from \"./commands.js\";\nimport {\n formatLog,\n getAllLogs,\n getRecentLogs,\n logPrefixWidth,\n onLog,\n SOURCE_META,\n wrapLogLine,\n type LogLevel,\n type LogSource,\n type UnifiedLog,\n} from \"./logs.js\";\nimport { pauseAllProgress, resumeAllProgress } from \"@sfmc-bds/sdk/logs\";\nimport {\n dispatchModuleCommand,\n isModuleCommand,\n listInstalledModuleIdsSync,\n MODULE_CMD_NAMES,\n MODULE_SUBCOMMANDS,\n} from \"./module-commands.js\";\nimport { listRegistryModuleIdsSync } from \"./registry.js\";\nimport { disableRemoteAgent, enrollRemoteAgent, remoteStatus, startRemoteAgent } from \"./remote-agent.js\";\nimport { forceStopAll, SERVICE_NAMES, stopAll } from \"./services.js\";\nimport { cmdLocale } from \"./locale-command.js\";\nimport { t } from \"./i18n/index.js\";\nimport { listSfmcModulePackages, resolveSfmcModulesRoot } from \"./sfmc-modules-root.js\";\nimport { c } from \"./theme.js\";\nimport { dispatchPacksCommand, isPacksCommand, PACKS_SUBCOMMANDS } from \"./world-packs.js\";\n\nfunction setRaw(v: boolean): void {\n try {\n if (stdin.isTTY && typeof stdin.setRawMode === \"function\") stdin.setRawMode(v);\n } catch {}\n}\n\nconst welcome = `\\n\n ${c.text(`\u282A\u2841\u286F\u2801`)}\n ${c.text(`\u2812\u2801\u2803`)}${c.purple(`\u2804`)}\n ${c.text(`\u2877\u2847\u284E\u2801`)} ${c.text(`S`)}${c.dim(`cripts`)} ${c.text(`F`)}${c.dim(`or`)} ${c.text(`M`)}${c.dim(`ine`)}${c.text(`c`)}${c.dim(`raft Server`)} v${pkg.version}\n ${c.text(`\u2803\u2803\u2811\u2802`)} ${c.dim(`help \u00B7 Ctrl+L \u00B7 \u21B9 \u00B7 \u2192 \u00B7 \u2191\u2193`)}\\n\n`;\n\nconst version = `\\n\n ${c.text(`\u282A\u2841\u286F\u2801`)}\n ${c.text(`\u2812\u2801\u2803`)}${c.purple(`\u2804`)}\n ${c.text(`\u2877\u2847\u284E\u2801`)} ${c.dim(`https://github.com/DogeLakeDev/ScriptsForMinecraftServer`)}\n ${c.text(`\u2803\u2803\u2811\u2802`)} ${c.text(`S`)}${c.dim(`cripts`)} ${c.text(`F`)}${c.dim(`or`)} ${c.text(`M`)}${c.dim(`ine`)}${c.text(`c`)}${c.dim(`raft Server`)} v${pkg.version}\\n\n`;\n\n/** \u6309\u5F53\u524D\u8BED\u8A00\u751F\u6210\u5E2E\u52A9\uFF08\u52FF\u7F13\u5B58\u4E3A\u5E38\u91CF\uFF0Clocale \u53EF\u5207\u6362\uFF09\u3002 */\nexport function getHelp(): string {\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, 52 - 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${c.bold(t(\"help.section.service\"))}\n ${c.green(\"status\")} ${t(\"help.status\")}\n ${c.green(\"logs\")} <svc> [-n N] [-f] ${t(\"help.logs\")}\n ${c.green(\"start\")} <svc>|-all ${t(\"help.start\")}\n ${c.green(\"stop\")} <svc>|-all ${t(\"help.stop\")}\n ${c.green(\"restart\")}<svc>|-all ${t(\"help.restart\")}\n ${c.green(\"send\")} <svc> <msg> ${t(\"help.send\")}\n\n${c.bold(t(\"help.section.update\"))}\n ${c.green(\"update\")} [--check-only] [--channel=release|preview]\n ${t(\"help.update\")}\n\n${c.bold(t(\"help.section.remote\"))} ${c.dim(\"[beta]\")}\n ${c.green(\"remote\")} status ${t(\"help.remote.status\")}\n ${c.green(\"remote\")} enroll <url> <token> [name]\n ${t(\"help.remote.enroll\")}\n ${c.green(\"remote\")} disable ${t(\"help.remote.disable\")}\n\n${c.bold(t(\"help.section.module\"))}\n ${c.green(\"module\")}/${c.green(\"mod\")} list\n ${t(\"help.module.list\")}\n ${c.green(\"module\")} search [id] ${t(\"help.module.search\")}\n ${c.green(\"module\")} install <id> [--from <source>] [--link]\n ${t(\"help.module.install\")}\n ${c.green(\"module\")} uninstall <id> ${t(\"help.module.uninstall\")}\n ${c.green(\"module\")} verify [id] ${t(\"help.module.verify\")}\n ${c.green(\"module\")} info <id> ${t(\"help.module.info\")}\n ${c.green(\"module\")} enable|disable <id>\n ${t(\"help.module.toggle\")}\n ${c.green(\"module\")} create ${t(\"help.module.create\")}\n ${c.green(\"module\")} link [id] ${t(\"help.module.link\")}\n ${c.green(\"module\")} dev ${t(\"help.module.dev\")}\n ${c.green(\"module\")} build ${t(\"help.module.build\")}\n ${c.green(\"module\")} reload [--build-only]\n ${t(\"help.module.reload\")}\n\n${c.bold(t(\"help.section.addon\"))}\n ${c.green(\"addon\")}/${c.green(\"packs\")} list|search|enable|disable|bump|install|scan|doctor|path\n ${t(\"help.addon\")}\n\n${c.bold(t(\"help.section.general\"))}\n ${c.green(\"init\")} ${t(\"help.init\")}\n ${c.green(\"locale\")} [zh|en] ${t(\"help.locale\")}\n ${c.green(\"version\")} ${t(\"help.version\")}\n ${c.green(\"help\")} ${t(\"help.help\")}\n ${c.green(\"quit\")} / ${c.green(\"exit\")} ${t(\"help.quit\")}\n\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 ${c.dim(\"Tab\")} ${t(\"help.shortcut.tab\")}\n ${c.dim(\"\u2192\")} ${t(\"help.shortcut.right\")}\n ${c.dim(\"Ctrl+L\")} ${t(\"help.shortcut.ctrll\")}\n ${c.dim(\"\u2191\u2193\")} ${t(\"help.shortcut.history\")}\n`;\n}\n\n/** @deprecated \u8BF7\u7528 getHelp()\uFF1B\u4FDD\u7559\u522B\u540D\u4EE5\u517C\u5BB9\u65E7\u5BFC\u5165\u3002 */\nexport const HELP = {\n toString() {\n return getHelp();\n },\n valueOf() {\n return getHelp();\n },\n} as unknown as string;\n\nconst COMMANDS = [\n \"status\",\n \"logs\",\n \"start\",\n \"stop\",\n \"restart\",\n \"send\",\n \"init\",\n \"locale\",\n \"lang\",\n \"update\",\n \"remote\",\n ...MODULE_CMD_NAMES,\n \"packs\",\n \"addon\",\n \"version\",\n \"help\",\n \"quit\",\n \"exit\",\n];\n\n/* ==================================================================\n * Context-aware completion\n * ================================================================== */\ninterface ParsedLine {\n cmd: string;\n /** cmd \u4E4B\u540E\u7684\u5168\u90E8 token(\u4E0D\u542B\u6B63\u5728\u8F93\u5165\u7684 current,\u82E5\u672B\u5C3E\u65E0\u7A7A\u683C\u5219\u4E0D\u542B\u6700\u540E\u4E00\u4E2A\u534A\u8BCD) */\n words: string[];\n argIndex: number;\n current: string;\n}\n\n/**\n * \u89E3\u6790\u5F53\u524D\u8F93\u5165\u884C,\u63D0\u53D6\u547D\u4EE4\u540D\u3001\u53C2\u6570\u4F4D\u7F6E\u3001\u6B63\u5728\u8F93\u5165\u7684 word\u3002\n * \u672B\u5C3E\u7A7A\u683C\u89C6\u4E3A\"\u521A\u7ED3\u675F\u4E00\u4E2A word,\u51C6\u5907\u8F93\u5165\u4E0B\u4E00\u4E2A\"\u3002\n */\nfunction parseLine(line: string): ParsedLine {\n const endsWithSpace = line.length > 0 && /\\s$/.test(line);\n const trimmed = line.trim();\n if (!trimmed) return { cmd: \"\", words: [], argIndex: 0, current: \"\" };\n const tokens = trimmed.split(/\\s+/);\n if (endsWithSpace) {\n return {\n cmd: tokens[0] ?? \"\",\n words: tokens.slice(1),\n argIndex: tokens.length - 1,\n current: \"\",\n };\n }\n if (tokens.length === 1) return { cmd: \"\", words: [], argIndex: 0, current: tokens[0]! };\n return {\n cmd: tokens[0]!,\n words: tokens.slice(1, -1),\n argIndex: tokens.length - 2,\n current: tokens[tokens.length - 1]!,\n };\n}\n\n/**\n * \u6839\u636E\u547D\u4EE4 + \u53C2\u6570\u4F4D\u7F6E\u8FD4\u56DE\u8865\u5168\u5019\u9009 (\u533A\u5206\u547D\u4EE4,\u4E0D\u518D\u628A\u670D\u52A1\u540D\u5F53\u6210\u6240\u6709\u6307\u4EE4\u7684\u4E8C\u7EA7\u53C2\u6570)\u3002\n */\nfunction getCompletions(parsed: ParsedLine): string[] {\n const { cmd, words, argIndex, current } = parsed;\n const sw = (s: string): boolean => s.startsWith(current);\n if (!cmd) return COMMANDS.filter(sw);\n switch (cmd) {\n case \"logs\":\n case \"log\":\n if (argIndex === 0) return SERVICE_NAMES.filter(sw);\n if (argIndex === 1) return [\"-n\", \"-f\"].filter(sw);\n return [];\n case \"start\":\n case \"stop\":\n case \"restart\":\n if (argIndex === 0) return [\"-all\", ...SERVICE_NAMES].filter(sw);\n return [];\n case \"send\":\n if (argIndex === 0) return SERVICE_NAMES.filter(sw);\n return [];\n case \"update\":\n return [\"--check-only\", \"--force\", \"--channel=release\", \"--channel=preview\"].filter(sw);\n case \"remote\":\n if (argIndex === 0) return [\"status\", \"enroll\", \"disable\"].filter(sw);\n return [];\n case \"packs\":\n case \"addon\":\n if (argIndex === 0) return [...PACKS_SUBCOMMANDS].filter(sw);\n if (argIndex === 1 && [\"list\"].includes(words[0] ?? \"\")) {\n return [\"--kind\", \"--search\"].filter(sw);\n }\n return [];\n default: {\n /* \u4E0E MODULE_CMD_NAMES \u5BF9\u9F50,\u65B0\u589E\u522B\u540D\u65E0\u9700\u518D\u6539 case(OCP/DRY) */\n if (!isModuleCommand(cmd)) return [];\n if (argIndex === 0) return [...MODULE_SUBCOMMANDS].filter(sw);\n const verb = words[0] ?? \"\";\n /* search:\u8865\u5168 registry \u7F13\u5B58\u4E2D\u7684 id;\u5176\u4F59\u672C\u5730\u5DF2\u88C5 id */\n if (argIndex === 1 && verb === \"search\") {\n return listRegistryModuleIdsSync().filter(sw);\n }\n if (argIndex === 1 && [\"info\", \"uninstall\", \"remove\", \"verify\", \"enable\", \"disable\"].includes(verb)) {\n return listInstalledModuleIdsSync().filter(sw);\n }\n if (argIndex === 1 && verb === \"reload\") {\n return [\"--build-only\"].filter(sw);\n }\n if (argIndex === 1 && verb === \"link\") {\n const root = resolveSfmcModulesRoot();\n if (root) {\n const ids = listSfmcModulePackages(root)\n .map((p) => p.id)\n .filter(sw);\n if (ids.length) return ids;\n }\n return [\"--from\"].filter(sw);\n }\n if (argIndex >= 1 && verb === \"install\") {\n return [\"--from\", \"--sha256\", \"--link\"].filter(sw);\n }\n if (argIndex >= 2 && verb === \"link\") {\n return [\"--from\"].filter(sw);\n }\n if (argIndex >= 1 && verb === \"list\") {\n return [\"--from\", \"--sha256\"].filter(sw);\n }\n return [];\n }\n }\n}\n\n/* ==================================================================\n * Escape sequence consumer\n * ================================================================== */\nfunction consumeEscapeSeq(chunk: Buffer, i: number): number | null {\n if (chunk[i] !== 0x1b) return null;\n const rem = chunk.length - i - 1;\n if (rem >= 2 && chunk[i + 1] === 0x5b) {\n let j = i + 2;\n while (j < chunk.length && chunk[j]! >= 0x30 && chunk[j]! <= 0x3f) j++;\n while (j < chunk.length && chunk[j]! >= 0x20 && chunk[j]! <= 0x2f) j++;\n if (j < chunk.length && chunk[j]! >= 0x40 && chunk[j]! <= 0x7e) j++;\n return j;\n }\n if (rem >= 2 && chunk[i + 1] === 0x4f) return i + 3;\n if (rem >= 1) return i + 2;\n return i + 1;\n}\n\n/* ==================================================================\n * Simple select\n * ================================================================== */\ninterface SelectItem {\n label: string;\n value: string;\n}\n\nasync function simpleSelect(items: SelectItem[]): Promise<string | null> {\n const wasRaw = stdin.isRaw ?? false;\n setRaw(true);\n stdin.resume();\n let selected = 0;\n const h = Math.min(items.length, 8);\n let lastLines = h;\n function render(first: boolean): void {\n if (!first) {\n stdout.write(`\\x1B[${lastLines}A\\x1B[J`);\n } else {\n stdout.write(\"\\x1B[J\");\n }\n lastLines = h;\n let out = \"\";\n for (let i = 0; i < h; i++) {\n const cur = i === selected ? `\u25C9 ${c.text(items[i]!.label)}` : `\u25CB ${c.text(items[i]!.label)}`;\n out += `${cur}\\n`;\n }\n stdout.write(out);\n }\n\n function clear(): void {\n stdout.write(`\\x1B[${lastLines}A\\x1B[J`);\n }\n\n render(true);\n\n return new Promise<string | null>((resolve) => {\n const handler = (chunk: Buffer) => {\n let i = 0;\n while (i < chunk.length) {\n if (chunk[i] === 0x1b) {\n const rem = chunk.length - i - 1;\n if (rem === 0) {\n clear();\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n resolve(null);\n return;\n }\n const next = consumeEscapeSeq(chunk, i);\n if (next !== null) {\n const c = next - i;\n if (c === 3 && chunk[i + 1] === 0x5b) {\n if (chunk[i + 2] === 0x41 && selected > 0) {\n selected--;\n render(false);\n }\n if (chunk[i + 2] === 0x42 && selected < items.length - 1) {\n selected++;\n render(false);\n }\n }\n i = next;\n } else i++;\n continue;\n }\n const byte = chunk[i];\n i++;\n if (byte === 0x0d || byte === 0x0a) {\n clear();\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n resolve(items[selected]?.value ?? null);\n return;\n }\n if (byte === 0x03) {\n clear();\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n resolve(null);\n return;\n }\n }\n };\n stdin.on(\"data\", handler);\n });\n}\n\n/* ==================================================================\n * Line reader\n * ================================================================== */\nconst history: string[] = [];\nlet historyIdx = -1;\n\n/** \u5F53\u524D readLine \u7684\u91CD\u7ED8\u51FD\u6570 (\u7A97\u53E3 resize \u65F6\u8C03\u7528,\u91CD\u7ED8\u8F93\u5165\u884C) */\nlet currentRedraw: (() => void) | null = null;\n\nasync function readLine(prompt: string, initial = \"\"): Promise<string | null> {\n const wasRaw = stdin.isRaw ?? false;\n setRaw(true);\n stdin.resume();\n\n let line = initial;\n let suggestion = \"\";\n let tabState: { candidates: string[]; idx: number; wordStart: number; completedLine: string } | null = null;\n\n /**\n * \u91CD\u7ED8\u5F53\u524D\u884C:prompt + line + \u7070\u8272 autosuggestion,\u5149\u6807\u505C\u5728 line \u672B\u5C3E\u3002\n * autosuggestion \u53D6\u5F53\u524D word \u7684\u7B2C\u4E00\u4E2A\u8865\u5168\u5019\u9009\u7684\u5269\u4F59\u90E8\u5206 (\u4EC5\u5F53 current \u975E\u7A7A\u65F6)\u3002\n */\n function redraw(): void {\n const parsed = parseLine(line);\n const candidates = getCompletions(parsed);\n const first = candidates[0];\n suggestion =\n parsed.current && first && first !== parsed.current && first.startsWith(parsed.current)\n ? first.slice(parsed.current.length)\n : \"\";\n stdout.write(\"\\r\\x1B[K\" + prompt + line);\n if (suggestion) {\n stdout.write(c.dim(suggestion));\n stdout.write(\"\\x1B[\" + suggestion.length + \"D\");\n }\n }\n\n redraw();\n\n currentRedraw = redraw;\n return new Promise<string | null>((resolve) => {\n const handler = (chunk: Buffer) => {\n let i = 0;\n while (i < chunk.length) {\n if (chunk[i] === 0x1b) {\n const next = consumeEscapeSeq(chunk, i);\n if (next !== null) {\n const len = next - i;\n if (len === 3 && chunk[i + 1] === 0x5b) {\n const fin = chunk[i + 2];\n if (fin === 0x41 && historyIdx > 0) {\n historyIdx--;\n line = history[historyIdx] ?? \"\";\n tabState = null;\n redraw();\n } else if (fin === 0x42) {\n if (historyIdx < history.length - 1) {\n historyIdx++;\n line = history[historyIdx] ?? \"\";\n tabState = null;\n redraw();\n } else if (historyIdx === history.length - 1) {\n historyIdx = history.length;\n line = \"\";\n tabState = null;\n redraw();\n }\n } else if (fin === 0x43 && suggestion) {\n /* \u2192 \u63A5\u53D7 autosuggestion */\n line += suggestion;\n tabState = null;\n redraw();\n }\n }\n i = next;\n } else i++;\n continue;\n }\n\n const byte = chunk[i];\n i++;\n\n if (byte === 0x0d || byte === 0x0a) {\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n /* \u6E05\u6389\u7070\u8272 suggestion,\u7559\u4E0B\u5E72\u51C0\u7684 prompt+line \u518D\u6362\u884C */\n stdout.write(\"\\r\\x1B[K\" + prompt + line + \"\\r\\n\");\n if (line.length > 0) {\n history.push(line);\n if (history.length > 100) history.shift();\n }\n historyIdx = history.length;\n resolve(line);\n return;\n }\n\n if (byte === 0x03) {\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n if (line.length > 0) {\n line = \"\";\n tabState = null;\n /* Ctrl+C \u6E05\u7A7A\u5F53\u524D\u8F93\u5165,\u4E0D\u5F39 suggestion */\n stdout.write(\"\\r\\x1B[K\" + prompt);\n continue;\n }\n stdout.write(\"\\r\\n\");\n resolve(null);\n return;\n }\n\n /* Tab \u2014 context-aware completion, cycle on repeated Tab, no auto-space */\n if (byte === 0x09) {\n if (tabState && line === tabState.completedLine) {\n tabState.idx = (tabState.idx + 1) % tabState.candidates.length;\n } else {\n const parsed = parseLine(line);\n const candidates = getCompletions(parsed);\n if (candidates.length === 0) {\n tabState = null;\n redraw();\n continue;\n }\n tabState = {\n candidates,\n idx: 0,\n wordStart: line.length - parsed.current.length,\n completedLine: \"\",\n };\n }\n const match = tabState.candidates[tabState.idx]!;\n line = line.slice(0, tabState.wordStart) + match;\n tabState.completedLine = line;\n redraw();\n continue;\n }\n\n /* Ctrl+L */\n if (byte === 0x0c) {\n stdin.removeListener(\"data\", handler);\n setRaw(wasRaw);\n resolve(\"__CTRLL__\" + line);\n return;\n }\n\n if (byte === 0x7f || byte === 0x08) {\n if (line.length > 0) {\n line = line.slice(0, -1);\n }\n tabState = null;\n redraw();\n continue;\n }\n\n if (byte! >= 0x20 && byte! <= 0x7e) {\n line += String.fromCharCode(byte!);\n tabState = null;\n redraw();\n continue;\n }\n }\n };\n stdin.on(\"data\", handler);\n }).finally(() => {\n currentRedraw = null;\n });\n}\n\n/* ==================================================================\n * REPL\n * ================================================================== */\ninterface LogFilter {\n levels: LogLevel[];\n sources: LogSource[];\n}\n\nconst LEVEL_ITEMS: SelectItem[] = [\n { label: c.blue(\"INFO\"), value: \"info\" },\n { label: c.yellow(\"WARN\"), value: \"warn\" },\n { label: c.red(\"ERROR\"), value: \"error\" },\n { label: c.dim(\"DEBUG\"), value: \"debug\" },\n { label: c.green(\"SUCCESS\"), value: \"success\" },\n];\n\n/** \u6765\u6E90\u9009\u62E9\u9879:\u6807\u7B7E\u6574\u6BB5\u67D3\u8272(\u542B\u540E\u7EED formatSourceTag \u7684\u65B9\u62EC\u53F7\u98CE\u683C) */\nexport const SOURCE_ITEMS: SelectItem[] = SOURCE_META.map((m) => ({\n label: m.paint(m.name),\n value: m.value,\n}));\n\n/**\n * \u5386\u53F2\u56DE\u653E\u6863\u4F4D \u2014 \u590D\u7528 createMemoryBuffer(5000) \u5185\u5B58\u843D\u76D8\u3002\n * value \u7EA6\u5B9A: none | all | count:N | time:MS\n */\nfunction historyItems(): SelectItem[] {\n return [\n { label: t(\"repl.history.live\"), value: \"none\" },\n { label: t(\"repl.history.last50\"), value: \"count:50\" },\n { label: t(\"repl.history.last100\"), value: \"count:100\" },\n { label: t(\"repl.history.last500\"), value: \"count:500\" },\n { label: t(\"repl.history.last1000\"), value: \"count:1000\" },\n { label: t(\"repl.history.last1min\"), value: \"time:60000\" },\n { label: t(\"repl.history.last5min\"), value: \"time:300000\" },\n { label: t(\"repl.history.last15min\"), value: \"time:900000\" },\n { label: t(\"repl.history.last1hour\"), value: \"time:3600000\" },\n { label: t(\"repl.history.all\"), value: \"all\" },\n ];\n}\n\n/** \u6309\u5F53\u524D\u8FC7\u6EE4\u6761\u4EF6\u4ECE\u5185\u5B58\u7F13\u51B2\u53D6\u5386\u53F2\u65E5\u5FD7 */\nfunction queryHistory(filter: LogFilter, window: string): UnifiedLog[] {\n if (!window || window === \"none\") return [];\n\n const match = (l: UnifiedLog): boolean => {\n if (filter.levels.length && !filter.levels.includes(l.level)) return false;\n if (filter.sources.length && !filter.sources.includes(l.source)) return false;\n return true;\n };\n\n if (window === \"all\") return getAllLogs().filter(match);\n\n if (window.startsWith(\"count:\")) {\n const n = Number(window.slice(\"count:\".length));\n if (!Number.isFinite(n) || n <= 0) return [];\n return getRecentLogs(n, filter.levels, filter.sources);\n }\n\n if (window.startsWith(\"time:\")) {\n const ms = Number(window.slice(\"time:\".length));\n if (!Number.isFinite(ms) || ms <= 0) return [];\n const since = Date.now() - ms;\n return getAllLogs().filter((l) => match(l) && l.time.getTime() >= since);\n }\n\n return [];\n}\n\nfunction pushAndRender(log: UnifiedLog, filter: LogFilter): void {\n if (filter.levels.length && !filter.levels.includes(log.level)) return;\n if (filter.sources.length && !filter.sources.includes(log.source)) return;\n /* \u8FDB\u5EA6\u6761 pause \u2192 \u6E05\u8F93\u5165\u884C\u5199\u65E5\u5FD7 \u2192 resume \u2192 \u91CD\u7ED8 \u276F */\n pauseAllProgress();\n try {\n stdout.write(`\\r\\x1B[K${wrapLogLine(formatLog(log), logPrefixWidth(log))}\\n`);\n } finally {\n resumeAllProgress();\n }\n currentRedraw?.();\n}\n\n/* ==================================================================\n * START REPL\n * ================================================================== */\n\nexport async function startRepl(): Promise<void> {\n let stopping = false;\n const shutdown = async (): Promise<void> => {\n if (stopping) return;\n stopping = true;\n stdout.write(c.dim(t(\"repl.stopping\") + \"\\n\"));\n await stopAll();\n stdout.write(c.dim(t(\"repl.bye\") + \"\\n\"));\n };\n const onSigint = (): void => {\n stdout.write(c.yellow(\"\\n\" + t(\"repl.forceStop\") + \"\\n\"));\n forceStopAll();\n process.exit(130);\n };\n process.on(\"SIGINT\", onSigint);\n\n if (!stdin.isTTY) {\n console.log(c.dim(t(\"repl.nonInteractive\")));\n for await (const line of (await import(\"node:readline/promises\")).createInterface({\n input: stdin,\n output: stdout,\n terminal: false,\n })) {\n const t = line.trim();\n if (!t) continue;\n const p = t.split(/\\s+/);\n if ([\"quit\", \"exit\", \"q\"].includes(p[0]!)) break;\n if (p[0] === \"init\") {\n (await import(\"./wizard.js\")).runWizard();\n continue;\n }\n await execCmd(p);\n }\n await shutdown();\n process.off(\"SIGINT\", onSigint);\n return;\n }\n console.clear();\n stdout.write(welcome);\n\n let filter: LogFilter = { levels: [], sources: [] };\n\n const unsub = onLog((log) => pushAndRender(log, filter));\n\n /** \u7A97\u53E3\u5927\u5C0F\u53D8\u5316\u65F6\u91CD\u7ED8\u53EF\u89C1\u65E5\u5FD7 + \u8F93\u5165\u884C (\u6309\u65B0\u5BBD\u5EA6\u6362\u884C) */\n function onResize(): void {\n if (!currentRedraw) return;\n const rows = process.stdout.rows || 24;\n stdout.write(\"\\x1B[H\\x1B[2J\");\n const all = getAllLogs();\n const out: string[] = [];\n let usedRows = 0;\n for (let i = all.length - 1; i >= 0; i--) {\n const log = all[i]!;\n if (filter.levels.length && !filter.levels.includes(log.level)) continue;\n if (filter.sources.length && !filter.sources.includes(log.source)) continue;\n const wrapped = wrapLogLine(formatLog(log), logPrefixWidth(log));\n const logRows = wrapped.split(\"\\n\").length;\n if (usedRows + logRows > rows - 2) break;\n out.unshift(wrapped);\n usedRows += logRows;\n }\n for (const l of out) stdout.write(l + \"\\n\");\n currentRedraw();\n }\n\n process.stdout.on(\"resize\", onResize);\n\n let pendingInput = \"\";\n\n while (true) {\n const raw = await readLine(c.text(\" \u276F \"), pendingInput);\n pendingInput = \"\";\n\n if (raw === null) break;\n\n /* Ctrl+L \u2014 filter level / source / history window */\n if (raw.startsWith(\"__CTRLL__\")) {\n stdout.write(c.dim(`\\nLEVEL\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500SOURCE\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500HISTORY\\n`));\n const histChoices = historyItems();\n const lvl = await simpleSelect([{ label: t(\"common.all\"), value: \"\" }, ...LEVEL_ITEMS]);\n if (lvl === null) continue;\n const src = await simpleSelect([{ label: t(\"common.all\"), value: \"\" }, ...SOURCE_ITEMS]);\n if (src === null) continue;\n const hist = await simpleSelect(histChoices);\n if (hist === null) continue;\n\n filter = { levels: lvl ? [lvl as LogLevel] : [], sources: src ? [src as LogSource] : [] };\n\n const replay = queryHistory(filter, hist);\n if (replay.length > 0) {\n stdout.write(c.dim(t(\"repl.historyHeader\", { count: replay.length }) + \"\\n\"));\n for (const log of replay) {\n stdout.write(`${wrapLogLine(formatLog(log), logPrefixWidth(log))}\\n`);\n }\n }\n\n const histLabel = histChoices.find((i) => i.value === hist)?.label ?? hist;\n stdout.write(\n c.dim(t(\"repl.filter\", { level: lvl || \"*\", source: src || \"*\", history: histLabel }) + \"\\n\")\n );\n continue;\n }\n\n const trimmed = raw.trim();\n if (!trimmed) continue;\n\n try {\n await execCmd(trimmed.split(/\\s+/));\n } catch (e) {\n if (e === \"QUIT\") break;\n console.log(c.red(t(\"common.error\", { message: (e as Error).message })));\n }\n }\n\n process.stdout.off(\"resize\", onResize);\n unsub();\n await shutdown();\n process.off(\"SIGINT\", onSigint);\n}\n\nasync function execCmd(parts: string[]): Promise<void> {\n const [cmd, ...args] = parts;\n\n switch (cmd) {\n case \"help\":\n case \"h\":\n case \"?\":\n stdout.write(getHelp());\n break;\n case \"version\":\n stdout.write(`${version}\\n`);\n break;\n case \"locale\":\n case \"lang\":\n stdout.write(cmdLocale(args) + \"\\n\");\n break;\n case \"status\":\n stdout.write(cmdStatus() + \"\\n\");\n break;\n case \"logs\":\n case \"log\": {\n const out = cmdLogs(args, () => {\n if (!stdin.isTTY) {\n stdout.write(c.yellow(t(\"repl.followRequiresTty\") + \"\\n\"));\n return;\n }\n });\n if (out) stdout.write(out + \"\\n\");\n break;\n }\n case \"start\":\n if (args[0] === \"-all\" || args[0] === \"all\" || args[0] === \"--all\") stdout.write((await cmdStartAll()) + \"\\n\");\n else if (args[0]) stdout.write((await cmdStart(args[0])) + \"\\n\");\n else stdout.write(c.yellow(t(\"svc.start.usageShort\") + \"\\n\"));\n break;\n case \"stop\":\n if (args[0] === \"-all\" || args[0] === \"all\" || args[0] === \"--all\") stdout.write((await cmdStopAll()) + \"\\n\");\n else if (args[0]) stdout.write((await cmdStop(args[0])) + \"\\n\");\n else stdout.write(c.yellow(t(\"svc.stop.usageShort\") + \"\\n\"));\n break;\n case \"restart\":\n if (args[0] === \"-all\" || args[0] === \"all\" || args[0] === \"--all\") {\n await cmdStopAll();\n stdout.write((await cmdStartAll()) + \"\\n\");\n } else if (args[0]) stdout.write((await cmdRestart(args[0])) + \"\\n\");\n else stdout.write(c.yellow(t(\"svc.restart.usageShort\") + \"\\n\"));\n break;\n case \"send\": {\n const svc = args[0] ?? \"\";\n const msg = args.slice(1).join(\" \");\n stdout.write((await cmdSend(svc, msg)) + \"\\n\");\n break;\n }\n case \"init\": {\n const { runWizard } = await import(\"./wizard.js\");\n await runWizard();\n break;\n }\n case \"update\":\n await cmdUpdate(args);\n break;\n case \"remote\": {\n const [subcommand, controllerUrl, enrollmentToken, name] = args;\n if (subcommand === \"status\") {\n stdout.write(JSON.stringify(remoteStatus(), null, 2) + \"\\n\");\n } else if (subcommand === \"enroll\" && controllerUrl && enrollmentToken) {\n const agentName = name ?? process.env.COMPUTERNAME ?? \"sfmc-agent\";\n const id = await enrollRemoteAgent(controllerUrl, enrollmentToken, agentName);\n stdout.write(t(\"remote.enrolled\", { id }) + \"\\n\");\n startRemoteAgent();\n } else if (subcommand === \"disable\") {\n disableRemoteAgent();\n stdout.write(c.dim(t(\"remote.disabled\") + \"\\n\"));\n } else {\n stdout.write(t(\"remote.usageShort\") + \"\\n\");\n }\n break;\n }\n case \"quit\":\n case \"exit\":\n case \"q\":\n throw \"QUIT\";\n default:\n if (isModuleCommand(cmd)) {\n const [sub, ...subRest] = args;\n stdout.write((await dispatchModuleCommand(sub, subRest)) + \"\\n\");\n break;\n }\n if (isPacksCommand(cmd)) {\n const [sub, ...subRest] = args;\n stdout.write((await dispatchPacksCommand(sub, subRest)) + \"\\n\");\n break;\n }\n stdout.write(c.yellow(t(\"common.unknownShort\", { cmd: cmd ?? \"\" }) + \"\\n\"));\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["c", "t"]
|
|
7
|
+
}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,28 +1,54 @@
|
|
|
1
1
|
import { type SpawnOptions, type SpawnSyncOptions } from "node:child_process";
|
|
2
|
-
export declare const IS_SEA: boolean;
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
3
|
+
* 是否为 monorepo 布局(仓根同时有 db-server/ 与 sfmc/)。
|
|
4
|
+
* npm 全局/本地安装时 ROOT 通常是 cwd,不满足此条件。
|
|
5
|
+
*/
|
|
6
|
+
export declare function isMonorepoLayout(root: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* 项目根目录。优先级:`process.env.SFMC_ROOT` > fallback。
|
|
9
|
+
* - monorepo:`sfmc/` 上一级
|
|
10
|
+
* - npm 聚合包 / 全局安装:cwd(配置与数据落在当前目录)
|
|
7
11
|
*/
|
|
8
12
|
export declare const ROOT: string;
|
|
13
|
+
/**
|
|
14
|
+
* 是否已完成首次向导初始化。
|
|
15
|
+
* 以 `configs/runtime.json#initialized_at` 为准(wizard 写入);
|
|
16
|
+
* 不再用「db_config.json 是否存在」——骨架由 ensureJsonConfig 在进程启动时创建。
|
|
17
|
+
*/
|
|
18
|
+
export declare function isRuntimeInitialized(root?: string): boolean;
|
|
9
19
|
export declare const PACKAGES_DIR: string;
|
|
10
20
|
export type ServiceId = "db" | "qq" | "update" | "manager" | "pack-manager";
|
|
21
|
+
/**
|
|
22
|
+
* 解析子服务入口脚本绝对路径。
|
|
23
|
+
* 优先级: env 注入 > monorepo 相对 ROOT > npm 包 resolve。
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveServiceScript(service: ServiceId): string;
|
|
26
|
+
/**
|
|
27
|
+
* 解析 tools/fetch-module.mjs。
|
|
28
|
+
* 优先级: SFMC_FETCH_MODULE > ROOT/tools/ > @sfmc-bds/tools。
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveFetchModule(): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* 解析 tools/new-module.mjs。
|
|
33
|
+
* 优先级: SFMC_NEW_MODULE > ROOT/tools/ > @sfmc-bds/tools。
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveNewModule(): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* 解析 `@sfmc-bds/sdk` 包根目录(含 package.json)。
|
|
38
|
+
* 优先级: SFMC_SDK_ROOT > createRequire(@sfmc-bds/sdk/package.json) > 公开 export 向上找 > monorepo。
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveSdkPackageRoot(): string;
|
|
41
|
+
/** @deprecated 已移除 configs-default 播种;保留空实现以免外部旧调用炸掉 */
|
|
42
|
+
export declare function resolveDefaultsDir(): string | null;
|
|
43
|
+
/** @deprecated 配置改由各服务 ensure + SDK DEFAULT 生成 */
|
|
44
|
+
export declare function seedMissingConfigsFromDefaults(_rootDir?: string): string[];
|
|
11
45
|
/**
|
|
12
46
|
* 启动一个子服务。
|
|
13
47
|
*
|
|
14
|
-
* SEA 模式下 spawn system node(SEA exe 不能执行外部 CJS/ESM 脚本,
|
|
15
|
-
* 子服务代码必须留在根目录源码层)。SEA bundle 因此只包含 supervisor 自己
|
|
16
|
-
* —— db-server / qq-bridge / bds-tools 不再被 esbuild 静态 inline。
|
|
17
|
-
*
|
|
18
|
-
* npm 模式:`process.execPath` 本来就是 node,效果与 SEA 模式相同。
|
|
19
|
-
*
|
|
20
48
|
* 透传给子进程的 env:
|
|
21
|
-
* - SFMC_SERVICE
|
|
22
|
-
* - SFMC_ROOT: 项目根,SEA=exe 上一级,npm=process.cwd()
|
|
23
|
-
* - SFMC_PACKAGES_DIR: modules/packages/ 绝对路径,db-server 据此扫模块清单
|
|
49
|
+
* - SFMC_SERVICE / SFMC_ROOT / SFMC_PACKAGES_DIR
|
|
24
50
|
*/
|
|
25
51
|
export declare function spawnService(service: ServiceId, args?: string[], opts?: SpawnOptions): import("node:child_process").ChildProcess;
|
|
26
|
-
/** spawnService
|
|
52
|
+
/** spawnService 的同步版本 */
|
|
27
53
|
export declare function spawnServiceSync(service: ServiceId, args?: string[], opts?: SpawnSyncOptions): import("node:child_process").SpawnSyncReturns<string | NonSharedBuffer>;
|
|
28
54
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWhG;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKtD;AASD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,MAAiD,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAGjE;AAED,eAAO,MAAM,YAAY,EAAE,MAA+C,CAAC;AAE3E,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AAsD5E;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAkB/D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAQlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAQhD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgE9C;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAED,kDAAkD;AAClD,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,MAAa,GAAG,MAAM,EAAE,CAEhF;AAgBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,YAAiB,6CAI5F;AAED,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,gBAAqB,2EAIpG"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,74 +1,197 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
configPath,
|
|
3
|
+
readJson,
|
|
4
|
+
resolveRuntimeRoot
|
|
5
|
+
} from "@sfmc-bds/sdk/node/config";
|
|
2
6
|
import { spawn, spawnSync } from "node:child_process";
|
|
7
|
+
import { createRequire } from "node:module";
|
|
8
|
+
import fs from "node:fs";
|
|
3
9
|
import path, { dirname } from "node:path";
|
|
4
10
|
import process from "node:process";
|
|
5
|
-
import { isSea } from "node:sea";
|
|
6
11
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
export const IS_SEA = typeof isSea === "function" && isSea();
|
|
8
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
13
|
const __dirname = dirname(__filename);
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
const requireFromCli = createRequire(import.meta.url);
|
|
15
|
+
function isMonorepoLayout(root) {
|
|
16
|
+
return fs.existsSync(path.join(root, "db-server", "package.json")) && fs.existsSync(path.join(root, "sfmc", "package.json"));
|
|
17
|
+
}
|
|
18
|
+
function detectFallbackRoot() {
|
|
19
|
+
const monoCandidate = path.resolve(__dirname, "..", "..");
|
|
20
|
+
if (isMonorepoLayout(monoCandidate)) return monoCandidate;
|
|
21
|
+
return process.cwd();
|
|
22
|
+
}
|
|
23
|
+
const ROOT = resolveRuntimeRoot(detectFallbackRoot());
|
|
24
|
+
function isRuntimeInitialized(root = ROOT) {
|
|
25
|
+
const runtime = readJson(configPath(root, "runtime.json"));
|
|
26
|
+
return Boolean(runtime?.initialized_at);
|
|
27
|
+
}
|
|
28
|
+
const PACKAGES_DIR = path.join(ROOT, "modules", "packages");
|
|
22
29
|
const SERVICE_SCRIPT = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
db: "db-server/dist/index.js",
|
|
31
|
+
qq: "qq-bridge/dist/index.js",
|
|
32
|
+
update: "bds-tools/dist/check-update.js",
|
|
33
|
+
manager: "bds-tools/dist/bds-manager.js",
|
|
34
|
+
"pack-manager": "bds-tools/dist/cli-pack-manager.js"
|
|
35
|
+
};
|
|
36
|
+
const SERVICE_ENV = {
|
|
37
|
+
db: "SFMC_SERVICE_DB_ENTRY",
|
|
38
|
+
qq: "SFMC_SERVICE_QQ_ENTRY",
|
|
39
|
+
update: "SFMC_SERVICE_UPDATE_ENTRY",
|
|
40
|
+
manager: "SFMC_SERVICE_MANAGER_ENTRY",
|
|
41
|
+
"pack-manager": "SFMC_SERVICE_PACK_MANAGER_ENTRY"
|
|
28
42
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
43
|
+
const SERVICE_NPM = {
|
|
44
|
+
db: { pkg: "@sfmc-bds/db-server" },
|
|
45
|
+
qq: { pkg: "@sfmc-bds/qq-bridge" },
|
|
46
|
+
update: { pkg: "@sfmc-bds/bds-tools", exportPath: "@sfmc-bds/bds-tools/check-update", rel: "dist/check-update.js" },
|
|
47
|
+
manager: { pkg: "@sfmc-bds/bds-tools", exportPath: "@sfmc-bds/bds-tools/bds-manager", rel: "dist/bds-manager.js" },
|
|
48
|
+
"pack-manager": {
|
|
49
|
+
pkg: "@sfmc-bds/bds-tools",
|
|
50
|
+
exportPath: "@sfmc-bds/bds-tools/pack-manager",
|
|
51
|
+
rel: "dist/cli-pack-manager.js"
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
function tryResolveNpm(pkg, opts) {
|
|
55
|
+
const attempts = [requireFromCli];
|
|
56
|
+
try {
|
|
57
|
+
attempts.push(createRequire(path.join(process.cwd(), "package.json")));
|
|
58
|
+
} catch {
|
|
59
|
+
}
|
|
60
|
+
for (const req of attempts) {
|
|
61
|
+
try {
|
|
62
|
+
if (opts?.exportPath) return req.resolve(opts.exportPath);
|
|
63
|
+
if (!opts?.rel) return req.resolve(pkg);
|
|
64
|
+
const root = path.dirname(req.resolve(`${pkg}/package.json`));
|
|
65
|
+
const full = path.join(root, opts.rel);
|
|
66
|
+
if (fs.existsSync(full)) return full;
|
|
67
|
+
} catch {
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
function resolveServiceScript(service) {
|
|
73
|
+
const fromEnv = process.env[SERVICE_ENV[service]];
|
|
74
|
+
if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;
|
|
75
|
+
const mono = path.join(ROOT, SERVICE_SCRIPT[service]);
|
|
76
|
+
if (fs.existsSync(mono)) return mono;
|
|
77
|
+
const { pkg, exportPath, rel } = SERVICE_NPM[service];
|
|
78
|
+
const fromNpm = tryResolveNpm(pkg, {
|
|
79
|
+
...exportPath ? { exportPath } : {},
|
|
80
|
+
...rel ? { rel } : {}
|
|
81
|
+
});
|
|
82
|
+
if (fromNpm) return fromNpm;
|
|
83
|
+
throw new Error(
|
|
84
|
+
`Cannot resolve service "${service}". Install @sfmc-bds/sfmc (all-in-one) or run inside the monorepo. Looked for ${mono} and npm package ${pkg}.`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
function resolveFetchModule() {
|
|
88
|
+
const fromEnv = process.env.SFMC_FETCH_MODULE;
|
|
89
|
+
if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;
|
|
90
|
+
const mono = path.join(ROOT, "tools", "fetch-module.mjs");
|
|
91
|
+
if (fs.existsSync(mono)) return mono;
|
|
92
|
+
return tryResolveNpm("@sfmc-bds/tools", { rel: "fetch-module.mjs", exportPath: "@sfmc-bds/tools/fetch-module.mjs" });
|
|
93
|
+
}
|
|
94
|
+
function resolveNewModule() {
|
|
95
|
+
const fromEnv = process.env.SFMC_NEW_MODULE;
|
|
96
|
+
if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;
|
|
97
|
+
const mono = path.join(ROOT, "tools", "new-module.mjs");
|
|
98
|
+
if (fs.existsSync(mono)) return mono;
|
|
99
|
+
return tryResolveNpm("@sfmc-bds/tools", { rel: "new-module.mjs", exportPath: "@sfmc-bds/tools/new-module.mjs" });
|
|
100
|
+
}
|
|
101
|
+
function resolveSdkPackageRoot() {
|
|
102
|
+
const fromEnv = process.env.SFMC_SDK_ROOT;
|
|
103
|
+
if (fromEnv && fs.existsSync(path.join(fromEnv, "package.json"))) {
|
|
104
|
+
return path.resolve(fromEnv);
|
|
105
|
+
}
|
|
106
|
+
function findSdkRootFromRequire(req) {
|
|
107
|
+
try {
|
|
108
|
+
try {
|
|
109
|
+
const pkgJson = req.resolve("@sfmc-bds/sdk/package.json");
|
|
110
|
+
return path.dirname(pkgJson);
|
|
111
|
+
} catch {
|
|
112
|
+
}
|
|
113
|
+
const hit = req.resolve("@sfmc-bds/sdk/sapi/runtime");
|
|
114
|
+
let dir = path.dirname(hit);
|
|
115
|
+
for (let i = 0; i < 8; i++) {
|
|
116
|
+
const cand = path.join(dir, "package.json");
|
|
117
|
+
if (fs.existsSync(cand)) {
|
|
118
|
+
try {
|
|
119
|
+
const name = JSON.parse(fs.readFileSync(cand, "utf8")).name;
|
|
120
|
+
if (name === "@sfmc-bds/sdk" || name === "@sfmc/sdk") return dir;
|
|
121
|
+
} catch {
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const parent = path.dirname(dir);
|
|
125
|
+
if (parent === dir) break;
|
|
126
|
+
dir = parent;
|
|
127
|
+
}
|
|
128
|
+
} catch {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
for (const req of [
|
|
134
|
+
requireFromCli,
|
|
135
|
+
(() => {
|
|
136
|
+
try {
|
|
137
|
+
return createRequire(path.join(process.cwd(), "package.json"));
|
|
138
|
+
} catch {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
})()
|
|
142
|
+
]) {
|
|
143
|
+
if (!req) continue;
|
|
144
|
+
const found = findSdkRootFromRequire(req);
|
|
145
|
+
if (found) return found;
|
|
146
|
+
}
|
|
147
|
+
const mono = path.join(ROOT, "modules", "sdk", "@sfmc-sdk");
|
|
148
|
+
if (fs.existsSync(path.join(mono, "package.json"))) return mono;
|
|
149
|
+
const fromCli = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "modules", "sdk", "@sfmc-sdk");
|
|
150
|
+
if (fs.existsSync(path.join(fromCli, "package.json"))) return fromCli;
|
|
151
|
+
throw new Error(
|
|
152
|
+
`Cannot resolve @sfmc-bds/sdk for behavior-pack build. Install @sfmc-bds/sdk next to the CLI, set SFMC_SDK_ROOT, or run inside the monorepo.`
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
function resolveDefaultsDir() {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
function seedMissingConfigsFromDefaults(_rootDir = ROOT) {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
34
161
|
function nodeBinary() {
|
|
35
|
-
|
|
162
|
+
return process.execPath;
|
|
163
|
+
}
|
|
164
|
+
function serviceChildEnv(service, optsEnv) {
|
|
165
|
+
return {
|
|
166
|
+
...process.env,
|
|
167
|
+
...optsEnv,
|
|
168
|
+
SFMC_SERVICE: service,
|
|
169
|
+
SFMC_ROOT: ROOT,
|
|
170
|
+
SFMC_PACKAGES_DIR: PACKAGES_DIR
|
|
171
|
+
};
|
|
36
172
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* 子服务代码必须留在根目录源码层)。SEA bundle 因此只包含 supervisor 自己
|
|
42
|
-
* —— db-server / qq-bridge / bds-tools 不再被 esbuild 静态 inline。
|
|
43
|
-
*
|
|
44
|
-
* npm 模式:`process.execPath` 本来就是 node,效果与 SEA 模式相同。
|
|
45
|
-
*
|
|
46
|
-
* 透传给子进程的 env:
|
|
47
|
-
* - SFMC_SERVICE: 服务标识(db|qq|update|manager),子服务据此路由
|
|
48
|
-
* - SFMC_ROOT: 项目根,SEA=exe 上一级,npm=process.cwd()
|
|
49
|
-
* - SFMC_PACKAGES_DIR: modules/packages/ 绝对路径,db-server 据此扫模块清单
|
|
50
|
-
*/
|
|
51
|
-
export function spawnService(service, args = [], opts = {}) {
|
|
52
|
-
const env = {
|
|
53
|
-
...process.env,
|
|
54
|
-
...opts.env,
|
|
55
|
-
SFMC_SERVICE: service,
|
|
56
|
-
SFMC_ROOT: ROOT,
|
|
57
|
-
SFMC_PACKAGES_DIR: PACKAGES_DIR,
|
|
58
|
-
};
|
|
59
|
-
const script = path.join(ROOT, SERVICE_SCRIPT[service]);
|
|
60
|
-
return spawn(nodeBinary(), [script, ...args], { ...opts, env });
|
|
173
|
+
function spawnService(service, args = [], opts = {}) {
|
|
174
|
+
const env = serviceChildEnv(service, opts.env);
|
|
175
|
+
const script = resolveServiceScript(service);
|
|
176
|
+
return spawn(nodeBinary(), [script, ...args], { ...opts, env });
|
|
61
177
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
...opts.env,
|
|
67
|
-
SFMC_SERVICE: service,
|
|
68
|
-
SFMC_ROOT: ROOT,
|
|
69
|
-
SFMC_PACKAGES_DIR: PACKAGES_DIR,
|
|
70
|
-
};
|
|
71
|
-
const script = path.join(ROOT, SERVICE_SCRIPT[service]);
|
|
72
|
-
return spawnSync(nodeBinary(), [script, ...args], { ...opts, env });
|
|
178
|
+
function spawnServiceSync(service, args = [], opts = {}) {
|
|
179
|
+
const env = serviceChildEnv(service, opts.env);
|
|
180
|
+
const script = resolveServiceScript(service);
|
|
181
|
+
return spawnSync(nodeBinary(), [script, ...args], { ...opts, env });
|
|
73
182
|
}
|
|
74
|
-
|
|
183
|
+
export {
|
|
184
|
+
PACKAGES_DIR,
|
|
185
|
+
ROOT,
|
|
186
|
+
isMonorepoLayout,
|
|
187
|
+
isRuntimeInitialized,
|
|
188
|
+
resolveDefaultsDir,
|
|
189
|
+
resolveFetchModule,
|
|
190
|
+
resolveNewModule,
|
|
191
|
+
resolveSdkPackageRoot,
|
|
192
|
+
resolveServiceScript,
|
|
193
|
+
seedMissingConfigsFromDefaults,
|
|
194
|
+
spawnService,
|
|
195
|
+
spawnServiceSync
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=runtime.js.map
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/runtime.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n configPath,\n readJson,\n resolveRuntimeRoot,\n type RuntimeConfig,\n} from \"@sfmc-bds/sdk/node/config\";\nimport { spawn, spawnSync, type SpawnOptions, type SpawnSyncOptions } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport fs from \"node:fs\";\nimport path, { dirname } from \"node:path\";\nimport process from \"node:process\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst requireFromCli = createRequire(import.meta.url);\n\n/**\n * \u662F\u5426\u4E3A monorepo \u5E03\u5C40(\u4ED3\u6839\u540C\u65F6\u6709 db-server/ \u4E0E sfmc/)\u3002\n * npm \u5168\u5C40/\u672C\u5730\u5B89\u88C5\u65F6 ROOT \u901A\u5E38\u662F cwd,\u4E0D\u6EE1\u8DB3\u6B64\u6761\u4EF6\u3002\n */\nexport function isMonorepoLayout(root: string): boolean {\n return (\n fs.existsSync(path.join(root, \"db-server\", \"package.json\")) &&\n fs.existsSync(path.join(root, \"sfmc\", \"package.json\"))\n );\n}\n\nfunction detectFallbackRoot(): string {\n const monoCandidate = path.resolve(__dirname, \"..\", \"..\");\n if (isMonorepoLayout(monoCandidate)) return monoCandidate;\n /* npm \u5B89\u88C5:@sfmc-bds/sfmc \u5305\u88C5\u5668\u4F1A\u8BBE SFMC_ROOT;\u88F8\u8DD1 cli \u65F6\u7528 cwd \u4F5C\u6570\u636E\u6839 */\n return process.cwd();\n}\n\n/**\n * \u9879\u76EE\u6839\u76EE\u5F55\u3002\u4F18\u5148\u7EA7:`process.env.SFMC_ROOT` > fallback\u3002\n * - monorepo:`sfmc/` \u4E0A\u4E00\u7EA7\n * - npm \u805A\u5408\u5305 / \u5168\u5C40\u5B89\u88C5:cwd(\u914D\u7F6E\u4E0E\u6570\u636E\u843D\u5728\u5F53\u524D\u76EE\u5F55)\n */\nexport const ROOT: string = resolveRuntimeRoot(detectFallbackRoot());\n\n/**\n * \u662F\u5426\u5DF2\u5B8C\u6210\u9996\u6B21\u5411\u5BFC\u521D\u59CB\u5316\u3002\n * \u4EE5 `configs/runtime.json#initialized_at` \u4E3A\u51C6(wizard \u5199\u5165);\n * \u4E0D\u518D\u7528\u300Cdb_config.json \u662F\u5426\u5B58\u5728\u300D\u2014\u2014\u9AA8\u67B6\u7531 ensureJsonConfig \u5728\u8FDB\u7A0B\u542F\u52A8\u65F6\u521B\u5EFA\u3002\n */\nexport function isRuntimeInitialized(root: string = ROOT): boolean {\n const runtime = readJson<RuntimeConfig>(configPath(root, \"runtime.json\"));\n return Boolean(runtime?.initialized_at);\n}\n\nexport const PACKAGES_DIR: string = path.join(ROOT, \"modules\", \"packages\");\n\nexport type ServiceId = \"db\" | \"qq\" | \"update\" | \"manager\" | \"pack-manager\";\n\n/** monorepo \u76F8\u5BF9 ROOT \u7684\u5165\u53E3(\u5F00\u53D1\u5E03\u5C40) */\nconst SERVICE_SCRIPT: Record<ServiceId, string> = {\n db: \"db-server/dist/index.js\",\n qq: \"qq-bridge/dist/index.js\",\n update: \"bds-tools/dist/check-update.js\",\n manager: \"bds-tools/dist/bds-manager.js\",\n \"pack-manager\": \"bds-tools/dist/cli-pack-manager.js\",\n};\n\n/** \u73AF\u5883\u53D8\u91CF\u8986\u76D6(\u7531 @sfmc-bds/sfmc bin \u6CE8\u5165) */\nconst SERVICE_ENV: Record<ServiceId, string> = {\n db: \"SFMC_SERVICE_DB_ENTRY\",\n qq: \"SFMC_SERVICE_QQ_ENTRY\",\n update: \"SFMC_SERVICE_UPDATE_ENTRY\",\n manager: \"SFMC_SERVICE_MANAGER_ENTRY\",\n \"pack-manager\": \"SFMC_SERVICE_PACK_MANAGER_ENTRY\",\n};\n\n/** npm \u5305\u89E3\u6790\u56DE\u9000 */\nconst SERVICE_NPM: Record<ServiceId, { pkg: string; exportPath?: string; rel?: string }> = {\n db: { pkg: \"@sfmc-bds/db-server\" },\n qq: { pkg: \"@sfmc-bds/qq-bridge\" },\n update: { pkg: \"@sfmc-bds/bds-tools\", exportPath: \"@sfmc-bds/bds-tools/check-update\", rel: \"dist/check-update.js\" },\n manager: { pkg: \"@sfmc-bds/bds-tools\", exportPath: \"@sfmc-bds/bds-tools/bds-manager\", rel: \"dist/bds-manager.js\" },\n \"pack-manager\": {\n pkg: \"@sfmc-bds/bds-tools\",\n exportPath: \"@sfmc-bds/bds-tools/pack-manager\",\n rel: \"dist/cli-pack-manager.js\",\n },\n};\n\nfunction tryResolveNpm(pkg: string, opts?: { exportPath?: string; rel?: string }): string | null {\n const attempts = [requireFromCli];\n try {\n attempts.push(createRequire(path.join(process.cwd(), \"package.json\")));\n } catch {\n /* cwd \u65E0 package.json */\n }\n for (const req of attempts) {\n try {\n if (opts?.exportPath) return req.resolve(opts.exportPath);\n if (!opts?.rel) return req.resolve(pkg);\n const root = path.dirname(req.resolve(`${pkg}/package.json`));\n const full = path.join(root, opts.rel);\n if (fs.existsSync(full)) return full;\n } catch {\n /* try next */\n }\n }\n return null;\n}\n\n/**\n * \u89E3\u6790\u5B50\u670D\u52A1\u5165\u53E3\u811A\u672C\u7EDD\u5BF9\u8DEF\u5F84\u3002\n * \u4F18\u5148\u7EA7: env \u6CE8\u5165 > monorepo \u76F8\u5BF9 ROOT > npm \u5305 resolve\u3002\n */\nexport function resolveServiceScript(service: ServiceId): string {\n const fromEnv = process.env[SERVICE_ENV[service]];\n if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;\n\n const mono = path.join(ROOT, SERVICE_SCRIPT[service]);\n if (fs.existsSync(mono)) return mono;\n\n const { pkg, exportPath, rel } = SERVICE_NPM[service];\n const fromNpm = tryResolveNpm(pkg, {\n ...(exportPath ? { exportPath } : {}),\n ...(rel ? { rel } : {}),\n });\n if (fromNpm) return fromNpm;\n\n throw new Error(\n `Cannot resolve service \"${service}\". Install @sfmc-bds/sfmc (all-in-one) or run inside the monorepo. ` +\n `Looked for ${mono} and npm package ${pkg}.`\n );\n}\n\n/**\n * \u89E3\u6790 tools/fetch-module.mjs\u3002\n * \u4F18\u5148\u7EA7: SFMC_FETCH_MODULE > ROOT/tools/ > @sfmc-bds/tools\u3002\n */\nexport function resolveFetchModule(): string | null {\n const fromEnv = process.env.SFMC_FETCH_MODULE;\n if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;\n\n const mono = path.join(ROOT, \"tools\", \"fetch-module.mjs\");\n if (fs.existsSync(mono)) return mono;\n\n return tryResolveNpm(\"@sfmc-bds/tools\", { rel: \"fetch-module.mjs\", exportPath: \"@sfmc-bds/tools/fetch-module.mjs\" });\n}\n\n/**\n * \u89E3\u6790 tools/new-module.mjs\u3002\n * \u4F18\u5148\u7EA7: SFMC_NEW_MODULE > ROOT/tools/ > @sfmc-bds/tools\u3002\n */\nexport function resolveNewModule(): string | null {\n const fromEnv = process.env.SFMC_NEW_MODULE;\n if (fromEnv && fs.existsSync(fromEnv)) return fromEnv;\n\n const mono = path.join(ROOT, \"tools\", \"new-module.mjs\");\n if (fs.existsSync(mono)) return mono;\n\n return tryResolveNpm(\"@sfmc-bds/tools\", { rel: \"new-module.mjs\", exportPath: \"@sfmc-bds/tools/new-module.mjs\" });\n}\n\n/**\n * \u89E3\u6790 `@sfmc-bds/sdk` \u5305\u6839\u76EE\u5F55\uFF08\u542B package.json\uFF09\u3002\n * \u4F18\u5148\u7EA7: SFMC_SDK_ROOT > createRequire(@sfmc-bds/sdk/package.json) > \u516C\u5F00 export \u5411\u4E0A\u627E > monorepo\u3002\n */\nexport function resolveSdkPackageRoot(): string {\n const fromEnv = process.env.SFMC_SDK_ROOT;\n if (fromEnv && fs.existsSync(path.join(fromEnv, \"package.json\"))) {\n return path.resolve(fromEnv);\n }\n\n function findSdkRootFromRequire(req: NodeRequire): string | null {\n try {\n // SDK \u5DF2\u66B4\u9732 ./package.json export\uFF1B\u4F18\u5148\u76F4\u89E3\n try {\n const pkgJson = req.resolve(\"@sfmc-bds/sdk/package.json\");\n return path.dirname(pkgJson);\n } catch {\n /* \u65E7\u5305\u672A\u66B4\u9732\u65F6\u56DE\u9000 */\n }\n // \u4EFB\u4E00\u516C\u5F00 export \u5373\u53EF\uFF1B\u518D\u5411\u4E0A\u627E\u542B name=@sfmc-bds/sdk \u7684 package.json\n const hit = req.resolve(\"@sfmc-bds/sdk/sapi/runtime\");\n let dir = path.dirname(hit);\n for (let i = 0; i < 8; i++) {\n const cand = path.join(dir, \"package.json\");\n if (fs.existsSync(cand)) {\n try {\n const name = JSON.parse(fs.readFileSync(cand, \"utf8\")).name;\n if (name === \"@sfmc-bds/sdk\" || name === \"@sfmc/sdk\") return dir;\n } catch {\n /* continue */\n }\n }\n const parent = path.dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n } catch {\n return null;\n }\n return null;\n }\n\n for (const req of [\n requireFromCli,\n (() => {\n try {\n return createRequire(path.join(process.cwd(), \"package.json\"));\n } catch {\n return null;\n }\n })(),\n ]) {\n if (!req) continue;\n const found = findSdkRootFromRequire(req);\n if (found) return found;\n }\n\n const mono = path.join(ROOT, \"modules\", \"sdk\", \"@sfmc-sdk\");\n if (fs.existsSync(path.join(mono, \"package.json\"))) return mono;\n\n // SFMC_ROOT \u53EF\u80FD\u662F\u6570\u636E\u76EE\u5F55\uFF1B\u518D\u8BD5 monorepo \u76F8\u5BF9 CLI \u7684\u8DEF\u5F84\n const fromCli = path.resolve(path.dirname(fileURLToPath(import.meta.url)), \"..\", \"..\", \"modules\", \"sdk\", \"@sfmc-sdk\");\n if (fs.existsSync(path.join(fromCli, \"package.json\"))) return fromCli;\n\n throw new Error(\n `Cannot resolve @sfmc-bds/sdk for behavior-pack build. ` +\n `Install @sfmc-bds/sdk next to the CLI, set SFMC_SDK_ROOT, or run inside the monorepo.`\n );\n}\n\n/** @deprecated \u5DF2\u79FB\u9664 configs-default \u64AD\u79CD\uFF1B\u4FDD\u7559\u7A7A\u5B9E\u73B0\u4EE5\u514D\u5916\u90E8\u65E7\u8C03\u7528\u70B8\u6389 */\nexport function resolveDefaultsDir(): string | null {\n return null;\n}\n\n/** @deprecated \u914D\u7F6E\u6539\u7531\u5404\u670D\u52A1 ensure + SDK DEFAULT \u751F\u6210 */\nexport function seedMissingConfigsFromDefaults(_rootDir: string = ROOT): string[] {\n return [];\n}\n\nfunction nodeBinary(): string {\n return process.execPath;\n}\n\nfunction serviceChildEnv(service: ServiceId, optsEnv?: NodeJS.ProcessEnv | null) {\n return {\n ...process.env,\n ...optsEnv,\n SFMC_SERVICE: service,\n SFMC_ROOT: ROOT,\n SFMC_PACKAGES_DIR: PACKAGES_DIR,\n };\n}\n\n/**\n * \u542F\u52A8\u4E00\u4E2A\u5B50\u670D\u52A1\u3002\n *\n * \u900F\u4F20\u7ED9\u5B50\u8FDB\u7A0B\u7684 env:\n * - SFMC_SERVICE / SFMC_ROOT / SFMC_PACKAGES_DIR\n */\nexport function spawnService(service: ServiceId, args: string[] = [], opts: SpawnOptions = {}) {\n const env = serviceChildEnv(service, opts.env as NodeJS.ProcessEnv | undefined);\n const script = resolveServiceScript(service);\n return spawn(nodeBinary(), [script, ...args], { ...opts, env });\n}\n\n/** spawnService \u7684\u540C\u6B65\u7248\u672C */\nexport function spawnServiceSync(service: ServiceId, args: string[] = [], opts: SpawnSyncOptions = {}) {\n const env = serviceChildEnv(service, opts.env as NodeJS.ProcessEnv | undefined);\n const script = resolveServiceScript(service);\n return spawnSync(nodeBinary(), [script, ...args], { ...opts, env });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/services.d.ts
CHANGED
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAQA,OAAO,EAAS,KAAK,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AACxD,eAAO,MAAM,aAAa,EAAE,WAAW,EAAiC,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,cAAM,OAAO;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,GAAG,IAAI,CAAQ;IACjC,OAAO,UAAS;IAChB,GAAG,SAAK;IACR,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC9B,IAAI,EAAE,OAAO,EAAE,CAAM;IACrB,MAAM,oBAAsB;IAE5B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,GAAG,EAAE,UAAU,EAI1B;IAED,IAAI,MAAM,IAAI,MAAM,CAQnB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CASvD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAkD3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B1B;IAED,SAAS,IAAI,IAAI,CAUhB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7B;IAED,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAElC;IAED,OAAO,CAAC,OAAO;CAKhB;AAgGD,eAAO,IAAI,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAoB,CAAC;AAErE,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,eAAO,MAAM,WAAW,EAAE,WAAW,EAAiC,CAAC;AAEvE,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAU9C;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAO7C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,aAAa,IAAI,aAAa,EAAE,CAK/C"}
|