@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.
Files changed (138) hide show
  1. package/README.md +7 -1
  2. package/dist/cli-result.d.ts +12 -0
  3. package/dist/cli-result.d.ts.map +1 -0
  4. package/dist/cli-result.js +15 -0
  5. package/dist/cli-result.js.map +7 -0
  6. package/dist/commands-behavior-pack.d.ts +11 -42
  7. package/dist/commands-behavior-pack.d.ts.map +1 -1
  8. package/dist/commands-behavior-pack.js +40 -159
  9. package/dist/commands-behavior-pack.js.map +7 -1
  10. package/dist/commands-reload.d.ts +9 -0
  11. package/dist/commands-reload.d.ts.map +1 -0
  12. package/dist/commands-reload.js +30 -0
  13. package/dist/commands-reload.js.map +7 -0
  14. package/dist/commands.d.ts +7 -0
  15. package/dist/commands.d.ts.map +1 -1
  16. package/dist/commands.js +182 -172
  17. package/dist/commands.js.map +7 -1
  18. package/dist/i18n/index.d.ts +26 -0
  19. package/dist/i18n/index.d.ts.map +1 -0
  20. package/dist/i18n/index.js +107 -0
  21. package/dist/i18n/index.js.map +7 -0
  22. package/dist/i18n/locales/en.d.ts +381 -0
  23. package/dist/i18n/locales/en.d.ts.map +1 -0
  24. package/dist/i18n/locales/en.js +393 -0
  25. package/dist/i18n/locales/en.js.map +7 -0
  26. package/dist/i18n/locales/zh-CN.d.ts +4 -0
  27. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  28. package/dist/i18n/locales/zh-CN.js +379 -0
  29. package/dist/i18n/locales/zh-CN.js.map +7 -0
  30. package/dist/i18n/types.d.ts +7 -0
  31. package/dist/i18n/types.d.ts.map +1 -0
  32. package/dist/i18n/types.js +17 -0
  33. package/dist/i18n/types.js.map +7 -0
  34. package/dist/index.d.ts +5 -11
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +51 -43
  37. package/dist/index.js.map +7 -1
  38. package/dist/interactive-prompts.d.ts +8 -0
  39. package/dist/interactive-prompts.d.ts.map +1 -0
  40. package/dist/interactive-prompts.js +57 -0
  41. package/dist/interactive-prompts.js.map +7 -0
  42. package/dist/locale-command.d.ts +3 -0
  43. package/dist/locale-command.d.ts.map +1 -0
  44. package/dist/locale-command.js +19 -0
  45. package/dist/locale-command.js.map +7 -0
  46. package/dist/logs.d.ts +22 -4
  47. package/dist/logs.d.ts.map +1 -1
  48. package/dist/logs.js +208 -193
  49. package/dist/logs.js.map +7 -1
  50. package/dist/main.js +135 -173
  51. package/dist/main.js.map +7 -1
  52. package/dist/module-commands.d.ts +43 -4
  53. package/dist/module-commands.d.ts.map +1 -1
  54. package/dist/module-commands.js +440 -327
  55. package/dist/module-commands.js.map +7 -1
  56. package/dist/module-fingerprint.d.ts +7 -0
  57. package/dist/module-fingerprint.d.ts.map +1 -0
  58. package/dist/module-fingerprint.js +31 -0
  59. package/dist/module-fingerprint.js.map +7 -0
  60. package/dist/module-wizard.d.ts +14 -0
  61. package/dist/module-wizard.d.ts.map +1 -0
  62. package/dist/module-wizard.js +313 -0
  63. package/dist/module-wizard.js.map +7 -0
  64. package/dist/pack-lifecycle.d.ts +95 -0
  65. package/dist/pack-lifecycle.d.ts.map +1 -0
  66. package/dist/pack-lifecycle.js +634 -0
  67. package/dist/pack-lifecycle.js.map +7 -0
  68. package/dist/pack-update/bindings.d.ts +12 -0
  69. package/dist/pack-update/bindings.d.ts.map +1 -0
  70. package/dist/pack-update/bindings.js +64 -0
  71. package/dist/pack-update/bindings.js.map +7 -0
  72. package/dist/pack-update/config.d.ts +22 -0
  73. package/dist/pack-update/config.d.ts.map +1 -0
  74. package/dist/pack-update/config.js +141 -0
  75. package/dist/pack-update/config.js.map +7 -0
  76. package/dist/pack-update/providers/curseforge.d.ts +23 -0
  77. package/dist/pack-update/providers/curseforge.d.ts.map +1 -0
  78. package/dist/pack-update/providers/curseforge.js +209 -0
  79. package/dist/pack-update/providers/curseforge.js.map +7 -0
  80. package/dist/pack-update/providers/index.d.ts +16 -0
  81. package/dist/pack-update/providers/index.d.ts.map +1 -0
  82. package/dist/pack-update/providers/index.js +37 -0
  83. package/dist/pack-update/providers/index.js.map +7 -0
  84. package/dist/pack-update/service.d.ts +21 -0
  85. package/dist/pack-update/service.d.ts.map +1 -0
  86. package/dist/pack-update/service.js +567 -0
  87. package/dist/pack-update/service.js.map +7 -0
  88. package/dist/pack-update/types.d.ts +126 -0
  89. package/dist/pack-update/types.d.ts.map +1 -0
  90. package/dist/pack-update/types.js +8 -0
  91. package/dist/pack-update/types.js.map +7 -0
  92. package/dist/pack-update/version-policy.d.ts +80 -0
  93. package/dist/pack-update/version-policy.d.ts.map +1 -0
  94. package/dist/pack-update/version-policy.js +216 -0
  95. package/dist/pack-update/version-policy.js.map +7 -0
  96. package/dist/registry.d.ts +12 -4
  97. package/dist/registry.d.ts.map +1 -1
  98. package/dist/registry.js +73 -106
  99. package/dist/registry.js.map +7 -1
  100. package/dist/remote-agent.d.ts.map +1 -1
  101. package/dist/remote-agent.js +160 -176
  102. package/dist/remote-agent.js.map +7 -1
  103. package/dist/repl.d.ts +4 -0
  104. package/dist/repl.d.ts.map +1 -1
  105. package/dist/repl.js +683 -605
  106. package/dist/repl.js.map +7 -1
  107. package/dist/runtime.d.ts +40 -14
  108. package/dist/runtime.d.ts.map +1 -1
  109. package/dist/runtime.js +185 -62
  110. package/dist/runtime.js.map +7 -1
  111. package/dist/services.d.ts +2 -0
  112. package/dist/services.d.ts.map +1 -1
  113. package/dist/services.js +251 -238
  114. package/dist/services.js.map +7 -1
  115. package/dist/sfmc-modules-root.d.ts +24 -0
  116. package/dist/sfmc-modules-root.d.ts.map +1 -0
  117. package/dist/sfmc-modules-root.js +70 -0
  118. package/dist/sfmc-modules-root.js.map +7 -0
  119. package/dist/theme.d.ts +4 -0
  120. package/dist/theme.d.ts.map +1 -1
  121. package/dist/theme.js +134 -48
  122. package/dist/theme.js.map +7 -1
  123. package/dist/wizard.d.ts.map +1 -1
  124. package/dist/wizard.js +363 -438
  125. package/dist/wizard.js.map +7 -1
  126. package/dist/world-packs.d.ts +22 -0
  127. package/dist/world-packs.d.ts.map +1 -0
  128. package/dist/world-packs.js +872 -0
  129. package/dist/world-packs.js.map +7 -0
  130. package/package.json +10 -10
  131. package/dist/dispatcher.d.ts +0 -13
  132. package/dist/dispatcher.d.ts.map +0 -1
  133. package/dist/dispatcher.js +0 -23
  134. package/dist/dispatcher.js.map +0 -1
  135. package/dist/terminal.d.ts +0 -3
  136. package/dist/terminal.d.ts.map +0 -1
  137. package/dist/terminal.js +0 -178
  138. package/dist/terminal.js.map +0 -1
package/dist/main.js CHANGED
@@ -1,189 +1,151 @@
1
1
  #!/usr/bin/env node
2
- import fs from "node:fs";
3
2
  import process from "node:process";
4
- import { configPath } from "@sfmc-bds/sdk/node/config";
5
3
  import pkg from "../package.json" with { type: "json" };
6
4
  import { cmdLogs, cmdRestart, cmdStart, cmdStartAll, cmdStatus, cmdStop, cmdStopAll, cmdUpdate } from "./commands.js";
7
- import { HELP, startRepl } from "./repl.js";
8
- import { cmdModuleDisable, cmdModuleEnable, cmdModuleInfo, cmdModuleInstall, cmdModuleList, cmdModuleUninstall, cmdModuleVerify, scanAndWarnUnknown } from "./module-commands.js";
9
- import { cmdBehaviorPackBuild, cmdBehaviorPackDeploy } from "./commands-behavior-pack.js";
5
+ import { getHelp, startRepl } from "./repl.js";
6
+ import { dispatchModuleCommand, isModuleCommand, scanAndWarnUnknown } from "./module-commands.js";
7
+ import { dispatchPacksCommand, isPacksCommand } from "./world-packs.js";
10
8
  import { disableRemoteAgent, enrollRemoteAgent, remoteStatus, startRemoteAgent, stopRemoteAgent } from "./remote-agent.js";
9
+ import { cmdLocale } from "./locale-command.js";
10
+ import { initLocale, stripLangArgs, t } from "./i18n/index.js";
11
+ import { ROOT } from "./runtime.js";
11
12
  import { c } from "./theme.js";
12
13
  function printVersion() {
13
- `${c.text(`⠪⡁⡯⠁`)}
14
- ${c.text(`⠒⠁⠃`)}${c.purple(`⠄`)}
15
- ${c.text(`⡷⡇⡎⠁`)} ${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}
16
- ${c.text(`⠃⠃⠑⠂`)} ${c.dim(`https://github.com/DogeLakeDev/ScriptsForMinecraftServer`)}\n`;
14
+ console.log(`${c.text(`\u282A\u2841\u286F\u2801`)}
15
+ ${c.text(`\u2812\u2801\u2803`)}${c.purple(`\u2804`)}
16
+ ${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}
17
+ ${c.text(`\u2803\u2803\u2811\u2802`)} ${c.dim(`https://github.com/DogeLakeDev/ScriptsForMinecraftServer`)}`);
17
18
  }
18
19
  function printUsage() {
19
- console.log(`${HELP}`);
20
+ console.log(`${getHelp()}`);
20
21
  }
21
22
  async function main() {
22
- const args = process.argv.slice(2);
23
- if (args.length === 0) {
24
- const { ROOT } = await import("./runtime.js");
25
- const configFile = configPath(ROOT, "db_config.json");
26
- if (!fs.existsSync(configFile)) {
27
- const { runWizard } = await import("./wizard.js");
28
- await runWizard();
29
- const { refreshServices } = await import("./services.js");
30
- refreshServices();
31
- }
32
- /* Print yellow warnings for modules from outside the first-party registry.
33
- * Best-effort: registry unreachable → no warning, no failure. */
34
- const warn = await scanAndWarnUnknown();
35
- if (warn)
36
- console.log(warn);
37
- startRemoteAgent();
38
- await startRepl();
39
- return;
23
+ const stripped = stripLangArgs(process.argv.slice(2));
24
+ initLocale({ root: ROOT, flag: stripped.lang });
25
+ const args = stripped.args;
26
+ if (args.length === 0) {
27
+ const { isRuntimeInitialized } = await import("./runtime.js");
28
+ if (!isRuntimeInitialized()) {
29
+ const { runWizard } = await import("./wizard.js");
30
+ await runWizard();
31
+ const { refreshServices } = await import("./services.js");
32
+ refreshServices();
33
+ }
34
+ const warn = await scanAndWarnUnknown();
35
+ if (warn) console.log(warn);
36
+ startRemoteAgent();
37
+ await startRepl();
38
+ return;
39
+ }
40
+ const [cmd, ...rest] = args;
41
+ switch (cmd) {
42
+ case "--help":
43
+ case "-h":
44
+ case "help":
45
+ printUsage();
46
+ break;
47
+ case "--version":
48
+ case "-v":
49
+ printVersion();
50
+ break;
51
+ case "locale":
52
+ case "lang":
53
+ console.log(cmdLocale(rest));
54
+ break;
55
+ case "status":
56
+ console.log(cmdStatus());
57
+ break;
58
+ case "logs":
59
+ case "log": {
60
+ const out = cmdLogs(rest);
61
+ if (out) console.log(out);
62
+ break;
63
+ }
64
+ case "start":
65
+ if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
66
+ console.log(await cmdStartAll());
67
+ } else if (rest[0]) {
68
+ console.log(await cmdStart(rest[0]));
69
+ } else {
70
+ console.log(c.yellow(t("svc.start.usage")));
71
+ }
72
+ break;
73
+ case "stop":
74
+ if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
75
+ console.log(await cmdStopAll());
76
+ } else if (rest[0]) {
77
+ console.log(await cmdStop(rest[0]));
78
+ } else {
79
+ console.log(c.yellow(t("svc.stop.usage")));
80
+ }
81
+ break;
82
+ case "restart":
83
+ if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
84
+ await cmdStopAll();
85
+ console.log(await cmdStartAll());
86
+ } else if (rest[0]) {
87
+ console.log(await cmdRestart(rest[0]));
88
+ } else {
89
+ console.log(c.yellow(t("svc.restart.usage")));
90
+ }
91
+ break;
92
+ case "update":
93
+ console.log(await cmdUpdate(rest));
94
+ break;
95
+ case "packs":
96
+ case "addon": {
97
+ const [sub, ...subRest] = rest;
98
+ console.log(await dispatchPacksCommand(sub, subRest));
99
+ break;
40
100
  }
41
- const [cmd, ...rest] = args;
42
- switch (cmd) {
43
- case "--help":
44
- case "-h":
45
- case "help":
46
- printUsage();
47
- break;
48
- case "--version":
49
- case "-v":
50
- printVersion();
51
- break;
52
- case "status":
53
- console.log(cmdStatus());
54
- break;
55
- case "logs":
56
- case "log": {
57
- const out = cmdLogs(rest);
58
- if (out)
59
- console.log(out);
60
- break;
61
- }
62
- case "start":
63
- if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
64
- console.log(await cmdStartAll());
65
- }
66
- else if (rest[0]) {
67
- console.log(await cmdStart(rest[0]));
68
- }
69
- else {
70
- console.log(c.yellow("Usage: sfmc start <service>|-all"));
71
- }
72
- break;
73
- case "stop":
74
- if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
75
- console.log(await cmdStopAll());
76
- }
77
- else if (rest[0]) {
78
- console.log(await cmdStop(rest[0]));
79
- }
80
- else {
81
- console.log(c.yellow("Usage: sfmc stop <service>|-all"));
82
- }
83
- break;
84
- case "restart":
85
- if (rest[0] === "-all" || rest[0] === "all" || rest[0] === "--all") {
86
- await cmdStopAll();
87
- console.log(await cmdStartAll());
88
- }
89
- else if (rest[0]) {
90
- console.log(await cmdRestart(rest[0]));
91
- }
92
- else {
93
- console.log(c.yellow("Usage: sfmc restart <service>|-all"));
94
- }
95
- break;
96
- case "update":
97
- console.log(await cmdUpdate(rest));
98
- break;
99
- case "behavior-pack":
100
- case "bp": {
101
- const [sub, ...subRest] = rest;
102
- switch (sub) {
103
- case "build":
104
- console.log(await cmdBehaviorPackBuild(subRest));
105
- break;
106
- case "deploy":
107
- console.log(await cmdBehaviorPackDeploy(subRest));
108
- break;
109
- default:
110
- console.log(c.yellow("Usage: sfmc behavior-pack <build|deploy>"));
111
- }
112
- break;
113
- }
114
- case "init": {
115
- const { runWizard } = await import("./wizard.js");
116
- await runWizard();
117
- break;
118
- }
119
- case "remote": {
120
- const [subcommand, ...remoteArgs] = rest;
121
- if (subcommand === "enroll" && remoteArgs[0] && remoteArgs[1]) {
122
- const name = remoteArgs[2] ?? process.env.COMPUTERNAME ?? "sfmc-agent";
123
- const agentId = await enrollRemoteAgent(remoteArgs[0], remoteArgs[1], name);
124
- console.log(`Enrolled remote agent: ${agentId}`);
125
- startRemoteAgent();
126
- const exit = () => {
127
- stopRemoteAgent();
128
- process.exit(0);
129
- };
130
- process.once("SIGINT", exit);
131
- process.once("SIGTERM", exit);
132
- /* keep alive so the WS loop can run; ctrl-c exits. */
133
- await new Promise(() => undefined);
134
- }
135
- else if (subcommand === "status") {
136
- console.log(JSON.stringify(remoteStatus(), null, 2));
137
- }
138
- else if (subcommand === "disable") {
139
- disableRemoteAgent();
140
- console.log("Remote agent disabled");
141
- }
142
- else {
143
- console.log("Usage: sfmc remote enroll <controller-url> <enrollment-token> [name] | sfmc remote status | sfmc remote disable");
144
- }
145
- break;
146
- }
147
- case "module":
148
- case "mod": {
149
- const [sub, ...subRest] = rest;
150
- switch (sub) {
151
- case "list":
152
- console.log(await cmdModuleList(subRest));
153
- break;
154
- case "install":
155
- console.log(await cmdModuleInstall(subRest));
156
- break;
157
- case "uninstall":
158
- case "remove":
159
- console.log(await cmdModuleUninstall(subRest));
160
- break;
161
- case "verify":
162
- console.log(await cmdModuleVerify(subRest));
163
- break;
164
- case "info":
165
- console.log(await cmdModuleInfo(subRest));
166
- break;
167
- case "enable":
168
- console.log(await cmdModuleEnable(subRest));
169
- break;
170
- case "disable":
171
- console.log(await cmdModuleDisable(subRest));
172
- break;
173
- default:
174
- console.log(c.yellow("Usage: sfmc module <list|install|uninstall|verify|info|enable|disable> [args]"));
175
- }
176
- break;
177
- }
178
- default:
179
- console.log(c.red(`Unknown command: ${cmd}`));
180
- printUsage();
181
- process.exit(1);
101
+ case "init": {
102
+ const { runWizard } = await import("./wizard.js");
103
+ await runWizard();
104
+ break;
105
+ }
106
+ case "remote": {
107
+ const [subcommand, ...remoteArgs] = rest;
108
+ if (subcommand === "enroll" && remoteArgs[0] && remoteArgs[1]) {
109
+ const name = remoteArgs[2] ?? process.env.COMPUTERNAME ?? "sfmc-agent";
110
+ const agentId = await enrollRemoteAgent(remoteArgs[0], remoteArgs[1], name);
111
+ console.log(t("remote.enrolled", { id: agentId }));
112
+ startRemoteAgent();
113
+ const exit = () => {
114
+ stopRemoteAgent();
115
+ process.exit(0);
116
+ };
117
+ process.once("SIGINT", exit);
118
+ process.once("SIGTERM", exit);
119
+ await new Promise(() => void 0);
120
+ } else if (subcommand === "status") {
121
+ console.log(JSON.stringify(remoteStatus(), null, 2));
122
+ } else if (subcommand === "disable") {
123
+ disableRemoteAgent();
124
+ console.log(t("remote.disabled"));
125
+ } else {
126
+ console.log(t("remote.usage"));
127
+ }
128
+ break;
182
129
  }
183
- process.exit(0);
130
+ default:
131
+ if (isModuleCommand(cmd)) {
132
+ const [sub, ...subRest] = rest;
133
+ console.log(await dispatchModuleCommand(sub, subRest));
134
+ break;
135
+ }
136
+ if (isPacksCommand(cmd)) {
137
+ const [sub, ...subRest] = rest;
138
+ console.log(await dispatchPacksCommand(sub, subRest));
139
+ break;
140
+ }
141
+ console.log(c.red(t("common.unknownCommand", { cmd: cmd ?? "" })));
142
+ printUsage();
143
+ process.exit(1);
144
+ }
145
+ process.exit(0);
184
146
  }
185
147
  main().catch((err) => {
186
- console.error(c.red(err?.message ? `Error: ${err.message}` : "Fatal"));
187
- process.exit(1);
148
+ console.error(c.red(err?.message ? t("common.error", { message: err.message }) : t("common.fatal")));
149
+ process.exit(1);
188
150
  });
189
- //# sourceMappingURL=main.js.map
151
+ //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/main.ts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\nimport process from \"node:process\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { cmdLogs, cmdRestart, cmdStart, cmdStartAll, cmdStatus, cmdStop, cmdStopAll, cmdUpdate } from \"./commands.js\";\nimport { getHelp, startRepl } from \"./repl.js\";\nimport { dispatchModuleCommand, isModuleCommand, scanAndWarnUnknown } from \"./module-commands.js\";\nimport { dispatchPacksCommand, isPacksCommand } from \"./world-packs.js\";\nimport { disableRemoteAgent, enrollRemoteAgent, remoteStatus, startRemoteAgent, stopRemoteAgent } from \"./remote-agent.js\";\nimport { cmdLocale } from \"./locale-command.js\";\nimport { initLocale, stripLangArgs, t } from \"./i18n/index.js\";\nimport { ROOT } from \"./runtime.js\";\nimport { c } from \"./theme.js\";\n\nfunction printVersion(): void {\n /* \u6B64\u524D\u6A21\u677F\u5B57\u7B26\u4E32\u672A\u5199\u5165 stdout,\u5BFC\u81F4 `sfmc --version` \u65E0\u8F93\u51FA\u3002 */\n console.log(`${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(`https://github.com/DogeLakeDev/ScriptsForMinecraftServer`)}`);\n}\n\nfunction printUsage(): void {\n console.log(`${getHelp()}`);\n}\n\nasync function main(): Promise<void> {\n const stripped = stripLangArgs(process.argv.slice(2));\n initLocale({ root: ROOT, flag: stripped.lang });\n const args = stripped.args;\n\n if (args.length === 0) {\n /* \u9996\u6B21\u8FD0\u884C:\u4EE5 runtime.json#initialized_at \u4E3A\u51C6(\u975E db_config \u662F\u5426\u5B58\u5728)\u3002\n * \u914D\u7F6E\u9AA8\u67B6\u7531 services.ensureJsonConfig \u5728\u542F\u52A8\u65F6\u521B\u5EFA,\u4E0D\u80FD\u518D\u5F53\u300C\u672A\u521D\u59CB\u5316\u300D\u4FE1\u53F7\u3002 */\n const { isRuntimeInitialized } = await import(\"./runtime.js\");\n if (!isRuntimeInitialized()) {\n const { runWizard } = await import(\"./wizard.js\");\n await runWizard();\n const { refreshServices } = await import(\"./services.js\");\n refreshServices();\n }\n /* Print yellow warnings for modules from outside the first-party registry.\n * Best-effort: registry unreachable \u2192 no warning, no failure. */\n const warn = await scanAndWarnUnknown();\n if (warn) console.log(warn);\n startRemoteAgent();\n await startRepl();\n return;\n }\n\n const [cmd, ...rest] = args;\n\n switch (cmd) {\n case \"--help\":\n case \"-h\":\n case \"help\":\n printUsage();\n break;\n case \"--version\":\n case \"-v\":\n printVersion();\n break;\n case \"locale\":\n case \"lang\":\n console.log(cmdLocale(rest));\n break;\n case \"status\":\n console.log(cmdStatus());\n break;\n case \"logs\":\n case \"log\": {\n const out = cmdLogs(rest);\n if (out) console.log(out);\n break;\n }\n case \"start\":\n if (rest[0] === \"-all\" || rest[0] === \"all\" || rest[0] === \"--all\") {\n console.log(await cmdStartAll());\n } else if (rest[0]) {\n console.log(await cmdStart(rest[0]));\n } else {\n console.log(c.yellow(t(\"svc.start.usage\")));\n }\n break;\n case \"stop\":\n if (rest[0] === \"-all\" || rest[0] === \"all\" || rest[0] === \"--all\") {\n console.log(await cmdStopAll());\n } else if (rest[0]) {\n console.log(await cmdStop(rest[0]));\n } else {\n console.log(c.yellow(t(\"svc.stop.usage\")));\n }\n break;\n case \"restart\":\n if (rest[0] === \"-all\" || rest[0] === \"all\" || rest[0] === \"--all\") {\n await cmdStopAll();\n console.log(await cmdStartAll());\n } else if (rest[0]) {\n console.log(await cmdRestart(rest[0]));\n } else {\n console.log(c.yellow(t(\"svc.restart.usage\")));\n }\n break;\n case \"update\":\n console.log(await cmdUpdate(rest));\n break;\n case \"packs\":\n case \"addon\": {\n const [sub, ...subRest] = rest;\n console.log(await dispatchPacksCommand(sub, subRest));\n break;\n }\n case \"init\": {\n const { runWizard } = await import(\"./wizard.js\");\n await runWizard();\n break;\n }\n case \"remote\": {\n const [subcommand, ...remoteArgs] = rest;\n if (subcommand === \"enroll\" && remoteArgs[0] && remoteArgs[1]) {\n const name = remoteArgs[2] ?? process.env.COMPUTERNAME ?? \"sfmc-agent\";\n const agentId = await enrollRemoteAgent(remoteArgs[0], remoteArgs[1], name);\n console.log(t(\"remote.enrolled\", { id: agentId }));\n startRemoteAgent();\n const exit = (): void => {\n stopRemoteAgent();\n process.exit(0);\n };\n process.once(\"SIGINT\", exit);\n process.once(\"SIGTERM\", exit);\n /* keep alive so the WS loop can run; ctrl-c exits. */\n await new Promise(() => undefined);\n } else if (subcommand === \"status\") {\n console.log(JSON.stringify(remoteStatus(), null, 2));\n } else if (subcommand === \"disable\") {\n disableRemoteAgent();\n console.log(t(\"remote.disabled\"));\n } else {\n console.log(t(\"remote.usage\"));\n }\n break;\n }\n default:\n /* module/mod \u522B\u540D\u53EA\u7EF4\u62A4 MODULE_CMD_NAMES,\u907F\u514D main/repl case \u94FE\u6F02\u79FB(OCP)\u3002 */\n if (isModuleCommand(cmd)) {\n const [sub, ...subRest] = rest;\n console.log(await dispatchModuleCommand(sub, subRest));\n break;\n }\n if (isPacksCommand(cmd)) {\n const [sub, ...subRest] = rest;\n console.log(await dispatchPacksCommand(sub, subRest));\n break;\n }\n console.log(c.red(t(\"common.unknownCommand\", { cmd: cmd ?? \"\" })));\n printUsage();\n process.exit(1);\n }\n process.exit(0);\n}\n\nmain().catch((err) => {\n console.error(c.red(err?.message ? t(\"common.error\", { message: err.message }) : t(\"common.fatal\")));\n process.exit(1);\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -2,25 +2,44 @@
2
2
  * sfmc module-commands — runtime CLI for inspecting and managing modules
3
3
  * already on disk under `modules/packages/<id>/`.
4
4
  *
5
+ * 顶层命令别名:`module` / `mod`(由 main.ts / repl.ts 共同识别)。
6
+ *
5
7
  * Subcommands:
6
8
  * list List every installed module (reads each
7
9
  * modules/packages/<id>/sapi/manifest.json).
8
10
  * Marks registry-known modules with `●` and
9
11
  * modules from an unknown publisher with `?`.
12
+ * search [id] 拉取 first-party registry 列表;带 id 则查该模块 registry info
10
13
  * info <id> Show one module's manifest + on-disk fingerprint
11
14
  * verify [id] Recompute the SHA-256 fingerprint of installed
12
15
  * modules (id = one; no id = all)
13
16
  * install <id> Wrapper around `tools/fetch-module.mjs install`.
14
17
  * If `--from` is omitted, the first-party registry
15
18
  * is consulted (Tanya7z/sfmc-modules).
19
+ * `--link` 透传:dir 源用 junction/symlink(开发期)。
16
20
  * uninstall <id> Remove packages/<id>/ + catalog/lock via fetch-module
17
21
  * enable <id> POST /api/sfmc/modules/:id/enable on db-server
18
22
  * disable <id> POST /api/sfmc/modules/:id/disable on db-server
23
+ * create 交互式脚手架(sfmc-modules/packages + 可选 link)
24
+ * link [id] 无 id:交互选择;有 id:install --link(自动探测旁路 sfmc-modules)
25
+ * dev link + enable + build + deploy 一键本地联调
19
26
  *
20
- * The runtime SEA process never connects to the network. `install`/`uninstall`
21
- * delegate to `tools/fetch-module.mjs` (install syncs catalog + lock).
27
+ * The CLI never connects to the network for local ops.
28
+ * `search`/`install`/`uninstall` 需要网络(或本地 cache / --from)
22
29
  * enable/disable go through db-server REST so module-lock.json stays consistent.
23
30
  */
31
+ /** 顶层命令名(主名 + 短别名),供 HELP / 补全 / 分发共用。 */
32
+ export declare const MODULE_CMD_NAMES: readonly ["module", "mod"];
33
+ export type ModuleCmdName = (typeof MODULE_CMD_NAMES)[number];
34
+ /** 判断是否为 module 顶层命令(含别名);避免 main/repl 再硬编码 case。 */
35
+ export declare function isModuleCommand(cmd: string | undefined): cmd is ModuleCmdName;
36
+ /** 染色后的 HELP 前缀,避免 HELP 硬编码 module/mod。 */
37
+ export declare function paintModuleCmdAlias(paint: (name: string) => string): string;
38
+ /** 对外展示与 Tab 补全用的子命令列表(不含 remove 等同义别名)。 */
39
+ export declare const MODULE_SUBCOMMANDS: readonly ["list", "search", "install", "uninstall", "verify", "info", "enable", "disable", "build", "reload", "create", "link", "dev"];
40
+ import { type CliResult } from "./cli-result.js";
41
+ /** Usage 行主名|别名(与 MODULE_CMD_NAMES 同源,避免与 HELP 漂移)。 */
42
+ export declare function moduleUsage(): string;
24
43
  export declare function cmdModuleList(_args: string[]): Promise<string>;
25
44
  /**
26
45
  * Walk `modules/packages/<id>/` and print a one-line yellow warning for each
@@ -30,10 +49,30 @@ export declare function cmdModuleList(_args: string[]): Promise<string>;
30
49
  * Best-effort: registry unreachable → no warning (no false positives).
31
50
  */
32
51
  export declare function scanAndWarnUnknown(): Promise<string>;
52
+ /**
53
+ * 拉取 first-party registry 模块列表;带 id 时展示该条目的 registry info。
54
+ * 与本地 `info`(已安装磁盘详情)区分:`search` 看 registry,`info` 看本机 packages。
55
+ */
56
+ export declare function cmdModuleSearch(args: string[]): Promise<string>;
33
57
  export declare function cmdModuleInfo(args: string[]): Promise<string>;
34
58
  export declare function cmdModuleVerify(args: string[]): Promise<string>;
35
- export declare function cmdModuleEnable(args: string[]): Promise<string>;
36
- export declare function cmdModuleDisable(args: string[]): Promise<string>;
59
+ export declare function cmdModuleEnable(args: string[]): Promise<CliResult>;
60
+ export declare function cmdModuleDisable(args: string[]): Promise<CliResult>;
37
61
  export declare function cmdModuleInstall(args: string[]): Promise<string>;
62
+ /**
63
+ * `mod link [id] [--from dir:…]`
64
+ * - 有 id:等价 `install <id> --link`,缺省 --from 时自动拼旁路 packages/<id>
65
+ * - 无 id:进入交互选择(@clack/prompts)
66
+ */
67
+ export declare function cmdModuleLink(args: string[]): Promise<string>;
38
68
  export declare function cmdModuleUninstall(args: string[]): Promise<string>;
69
+ /**
70
+ * 统一分发 module/mod 子命令 —— CLI(`main.ts`)与 REPL(`repl.ts`)共用,
71
+ * 避免两处 switch 漂移(例如原先 REPL 缺 enable/disable)。
72
+ *
73
+ * `remove` 作为 uninstall 的同义别名保留。
74
+ */
75
+ export declare function dispatchModuleCommand(sub: string | undefined, args: string[]): Promise<string>;
76
+ /** 同步枚举已安装模块 id,供 REPL Tab 补全(不读 fingerprint,尽量轻量)。 */
77
+ export declare function listInstalledModuleIdsSync(): string[];
39
78
  //# sourceMappingURL=module-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-commands.d.ts","sourceRoot":"","sources":["../src/module-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAsHH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBpE;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAO1D;AAKD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BnE;AAKD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAerE;AA4CD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAIrE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAItE;AAKD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtE;AAKD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BxE"}
1
+ {"version":3,"file":"module-commands.d.ts","sourceRoot":"","sources":["../src/module-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,YAAI,QAAQ,EAAE,KAAK,CAAU,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,IAAI,aAAa,CAE7E;AAED,2CAA2C;AAC3C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAG3E;AAED,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,YAC7B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,CACG,CAAC;AAOX,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAYvE,uDAAuD;AACvD,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAmFD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCpE;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAO1D;AAKD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+DrE;AAKD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BnE;AAKD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAerE;AAkDD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAIxE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAIzE;AAKD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDtE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBnE;AAKD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BxE;AAuBD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCpG;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAWrD"}