fixmind 1.0.12 → 1.0.14
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/dist/src/cli-sync.js +43 -16
- package/dist/src/cli-sync.js.map +1 -1
- package/package.json +1 -1
package/dist/src/cli-sync.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
1
3
|
import { stdin, stdout } from "node:process";
|
|
2
|
-
import { log, outro, password } from "@clack/prompts";
|
|
4
|
+
import { isCancel, log, outro, password } from "@clack/prompts";
|
|
3
5
|
import { createLessonStore, initializeDataDirectory } from "./storage.js";
|
|
4
6
|
import { createSyncEngine, PRICING_URL } from "./sync.js";
|
|
5
7
|
import { common, isAddressInUseError, intro, multiselect, note, optionalPort, optionString, parseList, select, startSpinner, supportedClientOptions, terminalLink, unwrap, validateClients, validateScope, text, } from "./cli-utils.js";
|
|
@@ -18,17 +20,17 @@ export async function setup(options) {
|
|
|
18
20
|
if (!supplied.length && interactive) {
|
|
19
21
|
intro("Configure Learning Lessons", common);
|
|
20
22
|
note("Pick the AI clients that should receive the MCP server configuration.", "Setup", common);
|
|
21
|
-
const selected =
|
|
23
|
+
const selected = await multiselect({
|
|
22
24
|
message: "Clients to configure",
|
|
23
25
|
options: supportedClientOptions(detected),
|
|
24
26
|
initialValues: detected,
|
|
25
27
|
required: false,
|
|
26
28
|
...common,
|
|
27
|
-
})
|
|
28
|
-
clients = validateClients(selected);
|
|
29
|
+
});
|
|
30
|
+
clients = isCancel(selected) ? detected : validateClients(selected);
|
|
29
31
|
}
|
|
30
32
|
if (!suppliedScope && interactive) {
|
|
31
|
-
const selectedScope =
|
|
33
|
+
const selectedScope = await select({
|
|
32
34
|
message: "Where should fixmind be configured?",
|
|
33
35
|
options: [
|
|
34
36
|
{ value: "user", label: "This device", hint: "Available in every project (~/.claude, ~/.cursor, ...)" },
|
|
@@ -36,8 +38,8 @@ export async function setup(options) {
|
|
|
36
38
|
],
|
|
37
39
|
initialValue: "user",
|
|
38
40
|
...common,
|
|
39
|
-
})
|
|
40
|
-
scope = selectedScope;
|
|
41
|
+
});
|
|
42
|
+
scope = isCancel(selectedScope) ? "user" : selectedScope;
|
|
41
43
|
}
|
|
42
44
|
if (clients.length === 0) {
|
|
43
45
|
console.log("No supported clients detected. Add this configuration to any stdio MCP client:");
|
|
@@ -62,7 +64,7 @@ export async function setup(options) {
|
|
|
62
64
|
console.log("Run `npx fixmind dashboard` to open the local dashboard, or `npx fixmind login` to enable sync.");
|
|
63
65
|
return;
|
|
64
66
|
}
|
|
65
|
-
const nextAction =
|
|
67
|
+
const nextAction = await select({
|
|
66
68
|
message: "What would you like to do next?",
|
|
67
69
|
options: [
|
|
68
70
|
{ value: "dashboard", label: "Open dashboard", hint: "Launch the local dashboard in your browser." },
|
|
@@ -71,9 +73,12 @@ export async function setup(options) {
|
|
|
71
73
|
],
|
|
72
74
|
initialValue: "done",
|
|
73
75
|
...common,
|
|
74
|
-
})
|
|
76
|
+
});
|
|
77
|
+
if (isCancel(nextAction) || nextAction === "done") {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
75
80
|
if (nextAction === "login") {
|
|
76
|
-
await
|
|
81
|
+
await launchLoginCommand();
|
|
77
82
|
return;
|
|
78
83
|
}
|
|
79
84
|
if (nextAction === "dashboard") {
|
|
@@ -94,6 +99,22 @@ export async function setup(options) {
|
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
101
|
}
|
|
102
|
+
async function launchLoginCommand() {
|
|
103
|
+
const launcherPath = fileURLToPath(new URL("./launcher.js", import.meta.url));
|
|
104
|
+
await new Promise((resolve, reject) => {
|
|
105
|
+
const child = spawn(process.execPath, [launcherPath, "login"], {
|
|
106
|
+
stdio: "inherit",
|
|
107
|
+
windowsHide: true,
|
|
108
|
+
});
|
|
109
|
+
child.on("error", reject);
|
|
110
|
+
child.on("exit", (code) => {
|
|
111
|
+
if (code === 0)
|
|
112
|
+
resolve();
|
|
113
|
+
else
|
|
114
|
+
reject(new Error(`fixmind login exited with code ${code ?? "unknown"}.`));
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
97
118
|
export async function loginCommand(options) {
|
|
98
119
|
initializeDataDirectory();
|
|
99
120
|
const store = createLessonStore();
|
|
@@ -104,12 +125,7 @@ export async function loginCommand(options) {
|
|
|
104
125
|
const supabaseAnonKey = optionString(options.key) ?? process.env.FIXMIND_SUPABASE_ANON_KEY ?? DEFAULT_SUPABASE_ANON_KEY;
|
|
105
126
|
if (interactive)
|
|
106
127
|
intro("Fixmind login", common);
|
|
107
|
-
const passphrase = optionString(options.passphrase) ?? (interactive
|
|
108
|
-
? unwrap(await password({ message: "Sync encryption passphrase (use the same one on every machine)", ...common }))
|
|
109
|
-
: (() => { throw new Error("--passphrase is required outside an interactive terminal."); })());
|
|
110
|
-
if (!passphrase.trim()) {
|
|
111
|
-
throw new Error("Sync encryption passphrase cannot be empty.");
|
|
112
|
-
}
|
|
128
|
+
const passphrase = optionString(options.passphrase) ?? await promptPassphrase(interactive);
|
|
113
129
|
const usePasswordLogin = Boolean(optionString(options.email) || options["password-login"]);
|
|
114
130
|
let result;
|
|
115
131
|
if (usePasswordLogin) {
|
|
@@ -168,6 +184,17 @@ export async function loginCommand(options) {
|
|
|
168
184
|
store.close();
|
|
169
185
|
}
|
|
170
186
|
}
|
|
187
|
+
async function promptPassphrase(interactive) {
|
|
188
|
+
if (!interactive) {
|
|
189
|
+
throw new Error("--passphrase is required outside an interactive terminal.");
|
|
190
|
+
}
|
|
191
|
+
while (true) {
|
|
192
|
+
const value = unwrap(await password({ message: "Sync encryption passphrase (use the same one on every machine)", ...common }));
|
|
193
|
+
if (value.trim())
|
|
194
|
+
return value;
|
|
195
|
+
log.message("Passphrase cannot be empty. Try again.", common);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
171
198
|
export async function logoutCommand() {
|
|
172
199
|
initializeDataDirectory();
|
|
173
200
|
const store = createLessonStore();
|
package/dist/src/cli-sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-sync.js","sourceRoot":"","sources":["../../src/cli-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-sync.js","sourceRoot":"","sources":["../../src/cli-sync.ts"],"names":[],"mappings":"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"}
|