@tom2012/cc-web 1.5.11 → 1.5.15

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 (56) hide show
  1. package/README.md +21 -1
  2. package/backend/dist/backup/config.d.ts +8 -0
  3. package/backend/dist/backup/config.d.ts.map +1 -0
  4. package/backend/dist/backup/config.js +104 -0
  5. package/backend/dist/backup/config.js.map +1 -0
  6. package/backend/dist/backup/engine.d.ts +22 -0
  7. package/backend/dist/backup/engine.d.ts.map +1 -0
  8. package/backend/dist/backup/engine.js +280 -0
  9. package/backend/dist/backup/engine.js.map +1 -0
  10. package/backend/dist/backup/providers/dropbox.d.ts +25 -0
  11. package/backend/dist/backup/providers/dropbox.d.ts.map +1 -0
  12. package/backend/dist/backup/providers/dropbox.js +319 -0
  13. package/backend/dist/backup/providers/dropbox.js.map +1 -0
  14. package/backend/dist/backup/providers/google-drive.d.ts +29 -0
  15. package/backend/dist/backup/providers/google-drive.d.ts.map +1 -0
  16. package/backend/dist/backup/providers/google-drive.js +305 -0
  17. package/backend/dist/backup/providers/google-drive.js.map +1 -0
  18. package/backend/dist/backup/providers/index.d.ts +3 -0
  19. package/backend/dist/backup/providers/index.d.ts.map +1 -0
  20. package/backend/dist/backup/providers/index.js +19 -0
  21. package/backend/dist/backup/providers/index.js.map +1 -0
  22. package/backend/dist/backup/providers/onedrive.d.ts +29 -0
  23. package/backend/dist/backup/providers/onedrive.d.ts.map +1 -0
  24. package/backend/dist/backup/providers/onedrive.js +316 -0
  25. package/backend/dist/backup/providers/onedrive.js.map +1 -0
  26. package/backend/dist/backup/scheduler.d.ts +6 -0
  27. package/backend/dist/backup/scheduler.d.ts.map +1 -0
  28. package/backend/dist/backup/scheduler.js +53 -0
  29. package/backend/dist/backup/scheduler.js.map +1 -0
  30. package/backend/dist/backup/types.d.ts +68 -0
  31. package/backend/dist/backup/types.d.ts.map +1 -0
  32. package/backend/dist/backup/types.js +4 -0
  33. package/backend/dist/backup/types.js.map +1 -0
  34. package/backend/dist/index.d.ts.map +1 -1
  35. package/backend/dist/index.js +74 -10
  36. package/backend/dist/index.js.map +1 -1
  37. package/backend/dist/routes/backup.d.ts +4 -0
  38. package/backend/dist/routes/backup.d.ts.map +1 -0
  39. package/backend/dist/routes/backup.js +175 -0
  40. package/backend/dist/routes/backup.js.map +1 -0
  41. package/backend/dist/routes/projects.d.ts.map +1 -1
  42. package/backend/dist/routes/projects.js +14 -0
  43. package/backend/dist/routes/projects.js.map +1 -1
  44. package/backend/dist/routes/sounds.d.ts +3 -0
  45. package/backend/dist/routes/sounds.d.ts.map +1 -0
  46. package/backend/dist/routes/sounds.js +285 -0
  47. package/backend/dist/routes/sounds.js.map +1 -0
  48. package/backend/package-lock.json +662 -20
  49. package/backend/package.json +8 -0
  50. package/bin/ccweb.js +33 -0
  51. package/frontend/dist/assets/index-Cr99sgtQ.js +489 -0
  52. package/frontend/dist/assets/index-D7gjxQKB.css +32 -0
  53. package/frontend/dist/index.html +2 -2
  54. package/package.json +1 -1
  55. package/frontend/dist/assets/index-CQjbS4zv.css +0 -32
  56. package/frontend/dist/assets/index-C_RCd4kd.js +0 -434
@@ -8,10 +8,16 @@
8
8
  "postinstall": "chmod +x node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper 2>/dev/null || true"
9
9
  },
10
10
  "dependencies": {
11
+ "@azure/msal-node": "^3.8.10",
12
+ "@microsoft/microsoft-graph-client": "^3.0.7",
11
13
  "bcryptjs": "^2.4.3",
12
14
  "cors": "^2.8.5",
15
+ "dropbox": "^10.34.0",
13
16
  "express": "^4.18.2",
17
+ "googleapis": "^168.0.0",
14
18
  "jsonwebtoken": "^9.0.2",
19
+ "minimatch": "^10.2.4",
20
+ "multer": "^2.1.1",
15
21
  "node-pty": "^1.0.0",
16
22
  "uuid": "^9.0.1",
17
23
  "ws": "^8.16.0"
@@ -21,6 +27,8 @@
21
27
  "@types/cors": "^2.8.17",
22
28
  "@types/express": "^4.17.21",
23
29
  "@types/jsonwebtoken": "^9.0.5",
30
+ "@types/minimatch": "^5.1.2",
31
+ "@types/multer": "^2.1.0",
24
32
  "@types/node": "^20.11.5",
25
33
  "@types/uuid": "^9.0.7",
26
34
  "@types/ws": "^8.5.10",
package/bin/ccweb.js CHANGED
@@ -273,6 +273,17 @@ async function startServer(opts = {}) {
273
273
  }
274
274
  }
275
275
 
276
+ // Access mode: explicit flag > interactive prompt
277
+ let accessMode = opts.accessMode;
278
+ if (!accessMode) {
279
+ console.log('\n访问模式 (Access mode):');
280
+ console.log(' 1) 仅本地访问 (Local only) — 最安全');
281
+ console.log(' 2) 允许局域网访问 (LAN)');
282
+ console.log(' 3) 允许外部网络访问 (Public)');
283
+ const choice = await ask('请选择 (1/2/3)', '1');
284
+ accessMode = choice === '2' ? 'lan' : choice === '3' ? 'public' : 'local';
285
+ }
286
+
276
287
  // Daemon mode: explicit flag > interactive prompt
277
288
  let daemon = opts.daemon;
278
289
  if (daemon === undefined) {
@@ -292,6 +303,7 @@ async function startServer(opts = {}) {
292
303
  env: {
293
304
  ...process.env,
294
305
  CCWEB_DATA_DIR: DATA_DIR,
306
+ CCWEB_ACCESS_MODE: accessMode,
295
307
  NODE_ENV: 'production',
296
308
  },
297
309
  cwd: PKG_ROOT,
@@ -326,7 +338,20 @@ async function startServer(opts = {}) {
326
338
  fs.writeFileSync(PID_FILE, String(child.pid), 'utf-8');
327
339
  fs.writeFileSync(PORT_FILE, String(port), 'utf-8');
328
340
 
341
+ const modeLabels = { local: '仅本地 (Local)', lan: '局域网 (LAN)', public: '外部网络 (Public)' };
329
342
  console.log(`\nCCWeb running at http://localhost:${port}`);
343
+ console.log(`访问模式: ${modeLabels[accessMode] || accessMode}`);
344
+ if (accessMode === 'lan' || accessMode === 'public') {
345
+ // Show LAN IP for convenience
346
+ const nets = os.networkInterfaces();
347
+ for (const name of Object.keys(nets)) {
348
+ for (const net of nets[name] || []) {
349
+ if (net.family === 'IPv4' && !net.internal) {
350
+ console.log(`局域网地址: http://${net.address}:${port}`);
351
+ }
352
+ }
353
+ }
354
+ }
330
355
  openBrowser(`http://localhost:${port}`);
331
356
 
332
357
  if (daemon) {
@@ -389,6 +414,9 @@ Usage:
389
414
  ccweb start Start server (interactive)
390
415
  ccweb start --daemon Start in background (no prompt)
391
416
  ccweb start --foreground Start in foreground (no prompt)
417
+ ccweb start --local Local only (default, most secure)
418
+ ccweb start --lan Allow LAN access
419
+ ccweb start --public Allow public access
392
420
  ccweb stop Stop background server
393
421
  ccweb status Show running status
394
422
  ccweb open Open browser to running server
@@ -409,6 +437,10 @@ const args = process.argv.slice(2);
409
437
  const command = args.find((a) => !a.startsWith('--')) || 'start';
410
438
  const isDaemon = args.includes('--daemon');
411
439
  const isForeground = args.includes('--foreground');
440
+ const accessModeFlag = args.includes('--local') ? 'local'
441
+ : args.includes('--lan') ? 'lan'
442
+ : args.includes('--public') ? 'public'
443
+ : undefined;
412
444
 
413
445
  (async () => {
414
446
  try {
@@ -416,6 +448,7 @@ const isForeground = args.includes('--foreground');
416
448
  case 'start':
417
449
  await startServer({
418
450
  daemon: isDaemon ? true : isForeground ? false : undefined,
451
+ accessMode: accessModeFlag,
419
452
  });
420
453
  break;
421
454