fixmind 1.0.3 → 1.0.6

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/sync.js CHANGED
@@ -1,288 +1,11 @@
1
- import { exec } from "node:child_process";
2
- import dns from "node:dns";
3
1
  import fs from "node:fs";
4
- import http from "node:http";
5
2
  import path from "node:path";
6
- import { createClient } from "@supabase/supabase-js";
7
3
  import { dataDirectory } from "./paths.js";
8
4
  import { decrypt, deriveKey, encrypt, generateSalt } from "./crypto.js";
9
- // Some networks resolve AAAA records that time out instead of failing fast,
10
- // which undici's fetch surfaces as an opaque "TypeError: fetch failed".
11
- // Resolving IPv4 first avoids that hang on Supabase's auth/token calls.
12
- dns.setDefaultResultOrder("ipv4first");
5
+ import { createSupabaseBackend } from "./sync-backend.js";
13
6
  const VERIFIER_PLAINTEXT = "fixmind-sync-verify";
14
7
  const EPOCH = "1970-01-01T00:00:00.000Z";
15
- const OAUTH_CALLBACK_PORT = 51763;
16
- const OAUTH_TIMEOUT_MS = 5 * 60 * 1000;
17
8
  export const PRICING_URL = "https://fixmind.dev/pricing";
18
- class MemoryAuthStorage {
19
- store = new Map();
20
- getItem(key) {
21
- return this.store.get(key) ?? null;
22
- }
23
- setItem(key, value) {
24
- this.store.set(key, value);
25
- }
26
- removeItem(key) {
27
- this.store.delete(key);
28
- }
29
- }
30
- function openInBrowser(url) {
31
- const command = process.platform === "win32"
32
- ? `start "" "${url}"`
33
- : process.platform === "darwin"
34
- ? `open "${url}"`
35
- : `xdg-open "${url}"`;
36
- exec(command, () => {
37
- // Best-effort: if this fails, the printed URL below is the fallback.
38
- });
39
- }
40
- function escapeHtml(value) {
41
- return value
42
- .replace(/&/g, "&")
43
- .replace(/</g, "&lt;")
44
- .replace(/>/g, "&gt;")
45
- .replace(/"/g, "&quot;");
46
- }
47
- function oauthCallbackPage(options) {
48
- const tint = options.ok ? "124,92,255" : "255,92,114";
49
- return `<!doctype html>
50
- <html lang="en">
51
- <head>
52
- <meta charset="utf-8">
53
- <title>Fixmind</title>
54
- <style>
55
- :root { color-scheme: dark; }
56
- body {
57
- margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center;
58
- position: relative; overflow: hidden;
59
- background-color: #08090d; color: #e9ecf4;
60
- font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
61
- }
62
- body::before {
63
- content: ""; position: absolute; inset: 0; pointer-events: none;
64
- background-image:
65
- linear-gradient(to right, rgba(35,40,56,0.6) 1px, transparent 1px),
66
- linear-gradient(to bottom, rgba(35,40,56,0.6) 1px, transparent 1px);
67
- background-size: 48px 48px;
68
- mask-image: radial-gradient(circle at 50% 35%, black, transparent 75%);
69
- }
70
- body::after {
71
- content: ""; position: absolute; left: 50%; top: 0; width: 760px; height: 420px;
72
- transform: translateX(-50%); pointer-events: none; border-radius: 9999px;
73
- background: rgba(${tint},0.15); filter: blur(130px);
74
- }
75
- .card {
76
- position: relative; z-index: 1; text-align: center; padding: 2.5rem 3rem; border-radius: 16px;
77
- border: 1px solid #232838; background: rgba(17,20,27,0.92);
78
- }
79
- .icon {
80
- width: 48px; height: 48px; margin: 0 auto 1.25rem; border-radius: 50%;
81
- display: flex; align-items: center; justify-content: center; font-size: 22px;
82
- background: rgba(${tint},0.15);
83
- color: ${options.ok ? "#7c5cff" : "#ff5c72"};
84
- }
85
- h1 {
86
- font-family: "Space Grotesk", "Inter", sans-serif; font-size: 1.25rem; font-weight: 600;
87
- margin: 0 0 0.5rem;
88
- }
89
- p { margin: 0; color: #828a9c; font-size: 0.95rem; line-height: 1.5; }
90
- .redirect {
91
- display: inline-block; margin-top: 1.5rem; padding: 0.6rem 1.5rem; border-radius: 8px;
92
- background: #7c5cff; color: #08090d; font-weight: 600; font-size: 0.9rem;
93
- text-decoration: none;
94
- }
95
- .brand {
96
- margin-top: 2rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase;
97
- color: #4b3aae;
98
- }
99
- </style>
100
- </head>
101
- <body>
102
- <div class="card">
103
- <div class="icon">${options.ok ? "&#10003;" : "&#33;"}</div>
104
- <h1>${options.ok ? "You're signed in" : "Sign in failed"}</h1>
105
- <p>${escapeHtml(options.message)}</p>
106
- ${options.redirectUrl ? `<a class="redirect" href="${escapeHtml(options.redirectUrl)}">Try again</a>` : ""}
107
- <div class="brand">Fixmind</div>
108
- </div>
109
- </body>
110
- </html>`;
111
- }
112
- function waitForOAuthCode(port, authUrl) {
113
- return new Promise((resolve, reject) => {
114
- const server = http.createServer((req, res) => {
115
- const url = new URL(req.url ?? "/", `http://127.0.0.1:${port}`);
116
- const code = url.searchParams.get("code");
117
- const errorDescription = url.searchParams.get("error_description") ?? url.searchParams.get("error");
118
- res.writeHead(200, { "Content-Type": "text/html" });
119
- res.end(errorDescription
120
- ? oauthCallbackPage({
121
- ok: false,
122
- message: `${errorDescription}. You can close this window and return to the terminal.`,
123
- redirectUrl: authUrl,
124
- })
125
- : oauthCallbackPage({ ok: true, message: "You can close this window and return to the terminal." }));
126
- clearTimeout(timeout);
127
- server.close();
128
- if (errorDescription)
129
- reject(new Error(`GitHub sign in failed: ${errorDescription}`));
130
- else if (code)
131
- resolve(code);
132
- else
133
- reject(new Error("No authorization code received from Supabase."));
134
- });
135
- const timeout = setTimeout(() => {
136
- server.close();
137
- reject(new Error("Timed out waiting for GitHub sign in."));
138
- }, OAUTH_TIMEOUT_MS);
139
- server.on("error", (error) => {
140
- clearTimeout(timeout);
141
- reject(error);
142
- });
143
- server.listen(port, "127.0.0.1");
144
- });
145
- }
146
- export function createSupabaseBackend(url, anonKey) {
147
- function client() {
148
- return createClient(url, anonKey);
149
- }
150
- async function withSession(session) {
151
- const supabase = client();
152
- const { error } = await supabase.auth.setSession({
153
- access_token: session.accessToken,
154
- refresh_token: session.refreshToken,
155
- });
156
- if (error)
157
- throw new Error(`Sync auth error: ${error.message}`);
158
- return supabase;
159
- }
160
- return {
161
- async signIn(email, password) {
162
- const supabase = client();
163
- const { data, error } = await supabase.auth.signInWithPassword({ email, password });
164
- if (error || !data.session)
165
- throw new Error(`Sign in failed: ${error?.message ?? "no session"}`);
166
- return {
167
- userId: data.user.id,
168
- accessToken: data.session.access_token,
169
- refreshToken: data.session.refresh_token,
170
- };
171
- },
172
- async signUp(email, password) {
173
- const supabase = client();
174
- const { data, error } = await supabase.auth.signUp({ email, password });
175
- if (error)
176
- throw new Error(`Sign up failed: ${error.message}`);
177
- if (!data.session) {
178
- throw new Error("Account created. Check your email to confirm it, then run `fixmind login` again.");
179
- }
180
- return {
181
- userId: data.user.id,
182
- accessToken: data.session.access_token,
183
- refreshToken: data.session.refresh_token,
184
- };
185
- },
186
- async signInWithGithub(onAuthUrl) {
187
- const supabase = createClient(url, anonKey, {
188
- auth: {
189
- flowType: "pkce",
190
- storage: new MemoryAuthStorage(),
191
- persistSession: false,
192
- autoRefreshToken: false,
193
- detectSessionInUrl: false,
194
- },
195
- });
196
- const redirectTo = `http://127.0.0.1:${OAUTH_CALLBACK_PORT}`;
197
- const { data, error } = await supabase.auth.signInWithOAuth({
198
- provider: "github",
199
- options: { redirectTo, skipBrowserRedirect: true },
200
- });
201
- if (error || !data.url)
202
- throw new Error(`GitHub sign in failed: ${error?.message ?? "no auth URL"}`);
203
- onAuthUrl?.(data.url);
204
- openInBrowser(data.url);
205
- const code = await waitForOAuthCode(OAUTH_CALLBACK_PORT, data.url);
206
- const { data: exchanged, error: exchangeError } = await supabase.auth.exchangeCodeForSession(code);
207
- if (exchangeError || !exchanged.session) {
208
- throw new Error(`GitHub sign in failed: ${exchangeError?.message ?? "no session"}`);
209
- }
210
- return {
211
- userId: exchanged.user.id,
212
- email: exchanged.user.email ?? "",
213
- accessToken: exchanged.session.access_token,
214
- refreshToken: exchanged.session.refresh_token,
215
- };
216
- },
217
- async getEntitlement(session) {
218
- const supabase = await withSession(session);
219
- const { data, error } = await supabase
220
- .from("entitlements")
221
- .select("plan, status")
222
- .maybeSingle();
223
- if (error)
224
- throw new Error(`Entitlement check failed: ${error.message}`);
225
- if (!data)
226
- return undefined;
227
- return { plan: data.plan, status: data.status };
228
- },
229
- async getUserRecord(userId, session) {
230
- const supabase = await withSession(session);
231
- const { data, error } = await supabase
232
- .from("sync_users")
233
- .select("salt, verifier_ciphertext, verifier_iv")
234
- .eq("user_id", userId)
235
- .maybeSingle();
236
- if (error)
237
- throw new Error(`Sync lookup failed: ${error.message}`);
238
- if (!data)
239
- return undefined;
240
- return { salt: data.salt, verifierCiphertext: data.verifier_ciphertext, verifierIv: data.verifier_iv };
241
- },
242
- async createUserRecord(userId, session, record) {
243
- const supabase = await withSession(session);
244
- const { error } = await supabase.from("sync_users").insert({
245
- user_id: userId,
246
- salt: record.salt,
247
- verifier_ciphertext: record.verifierCiphertext,
248
- verifier_iv: record.verifierIv,
249
- });
250
- if (error)
251
- throw new Error(`Sync setup failed: ${error.message}`);
252
- },
253
- async upsertLessons(userId, session, rows) {
254
- if (rows.length === 0)
255
- return;
256
- const supabase = await withSession(session);
257
- const { error } = await supabase.from("lessons_sync").upsert(rows.map((row) => ({
258
- user_id: userId,
259
- lesson_id: row.lessonId,
260
- ciphertext: row.ciphertext,
261
- iv: row.iv,
262
- updated_at: row.updatedAt,
263
- })));
264
- if (error)
265
- throw new Error(`Push failed: ${error.message}`);
266
- },
267
- async fetchLessonsSince(userId, session, since) {
268
- const supabase = await withSession(session);
269
- const { data, error } = await supabase
270
- .from("lessons_sync")
271
- .select("lesson_id, ciphertext, iv, updated_at")
272
- .eq("user_id", userId)
273
- .gt("updated_at", since)
274
- .order("updated_at", { ascending: true });
275
- if (error)
276
- throw new Error(`Pull failed: ${error.message}`);
277
- return (data ?? []).map((row) => ({
278
- lessonId: row.lesson_id,
279
- ciphertext: row.ciphertext,
280
- iv: row.iv,
281
- updatedAt: row.updated_at,
282
- }));
283
- },
284
- };
285
- }
286
9
  function syncConfigPath() {
287
10
  return path.join(dataDirectory(), "sync.json");
288
11
  }
@@ -335,6 +58,19 @@ export function createSyncEngine(store, backend) {
335
58
  function backendFor(config) {
336
59
  return backend ?? createSupabaseBackend(config.supabaseUrl, config.supabaseAnonKey);
337
60
  }
61
+ async function pushPendingLessons(config, activeBackend, session, key) {
62
+ const lessons = store.updatedSince(config.lastPushedAt ?? EPOCH);
63
+ if (lessons.length === 0)
64
+ return 0;
65
+ const rows = lessons.map((lesson) => {
66
+ const { ciphertext, iv } = encrypt(JSON.stringify(lesson), key);
67
+ return { lessonId: lesson.id, ciphertext, iv, updatedAt: lesson.updatedAt };
68
+ });
69
+ await activeBackend.upsertLessons(config.userId, session, rows);
70
+ const newest = lessons.reduce((max, lesson) => (lesson.updatedAt > max ? lesson.updatedAt : max), config.lastPushedAt ?? EPOCH);
71
+ writeSyncConfig({ ...config, lastPushedAt: newest });
72
+ return lessons.length;
73
+ }
338
74
  async function establishKey(activeBackend, userId, sessionTokens, passphrase) {
339
75
  const record = await activeBackend.getUserRecord(userId, sessionTokens);
340
76
  if (record) {
@@ -392,6 +128,16 @@ export function createSyncEngine(store, backend) {
392
128
  salt,
393
129
  keyBase64: key.toString("base64"),
394
130
  });
131
+ if (entitled) {
132
+ try {
133
+ const config = readSyncConfig();
134
+ if (config)
135
+ await withTimeout(pushPendingLessons(config, activeBackend, sessionTokens, key));
136
+ }
137
+ catch (error) {
138
+ console.error(`fixmind: initial sync push after login failed (run \`fixmind sync push\` manually): ${error instanceof Error ? error.message : String(error)}`);
139
+ }
140
+ }
395
141
  return { email, entitled };
396
142
  },
397
143
  async loginWithGithub({ supabaseUrl, supabaseAnonKey, passphrase, onAuthUrl }) {
@@ -410,6 +156,16 @@ export function createSyncEngine(store, backend) {
410
156
  salt,
411
157
  keyBase64: key.toString("base64"),
412
158
  });
159
+ if (entitled) {
160
+ try {
161
+ const config = readSyncConfig();
162
+ if (config)
163
+ await withTimeout(pushPendingLessons(config, activeBackend, sessionTokens, key));
164
+ }
165
+ catch (error) {
166
+ console.error(`fixmind: initial sync push after login failed (run \`fixmind sync push\` manually): ${error instanceof Error ? error.message : String(error)}`);
167
+ }
168
+ }
413
169
  return { email: session.email, entitled };
414
170
  },
415
171
  logout() {
@@ -434,17 +190,8 @@ export function createSyncEngine(store, backend) {
434
190
  const key = Buffer.from(config.keyBase64, "base64");
435
191
  const session = { accessToken: config.accessToken, refreshToken: config.refreshToken };
436
192
  await requireEntitlement(activeBackend, session);
437
- const lessons = store.updatedSince(config.lastPushedAt ?? EPOCH);
438
- if (lessons.length === 0)
439
- return { pushed: 0 };
440
- const rows = lessons.map((lesson) => {
441
- const { ciphertext, iv } = encrypt(JSON.stringify(lesson), key);
442
- return { lessonId: lesson.id, ciphertext, iv, updatedAt: lesson.updatedAt };
443
- });
444
- await activeBackend.upsertLessons(config.userId, session, rows);
445
- const newest = lessons.reduce((max, lesson) => (lesson.updatedAt > max ? lesson.updatedAt : max), config.lastPushedAt ?? EPOCH);
446
- writeSyncConfig({ ...config, lastPushedAt: newest });
447
- return { pushed: lessons.length };
193
+ const pushed = await pushPendingLessons(config, activeBackend, session, key);
194
+ return { pushed };
448
195
  },
449
196
  async pull() {
450
197
  const config = requireConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fixmind",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
4
4
  "description": "Local-first learning lessons for developers working with AI coding agents.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  "copy:dashboard": "node -e \"require('fs').cpSync('../dashboard/dist','dist/dashboard',{recursive:true})\"",
27
27
  "test": "npm run build && node --no-warnings --test dist/test/*.test.js",
28
28
  "prepack": "npm run build",
29
- "fixmind": "NODE_OPTIONS=--disable-warning=ExperimentalWarning node dist/src/cli.js"
29
+ "fixmind": "node dist/src/launcher.js"
30
30
  },
31
31
  "dependencies": {
32
32
  "@clack/prompts": "^1.5.1",