@cjwddz/mirror 0.0.5 → 0.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.
@@ -6,6 +6,7 @@ interface HostOptions {
6
6
  workspaceDir: string;
7
7
  ignore?: string[];
8
8
  token?: string;
9
+ metadataDir?: string;
9
10
  }
10
11
  export declare class Host {
11
12
  private transport;
@@ -13,6 +14,7 @@ export declare class Host {
13
14
  private workspace;
14
15
  private processManager;
15
16
  private currentClientId;
17
+ private currentClientWorkspacePath;
16
18
  private sessionToken;
17
19
  private options;
18
20
  private snapshotFiles;
@@ -26,12 +28,16 @@ export declare class Host {
26
28
  private handleHello;
27
29
  private handleSnapshotStart;
28
30
  private fileCount;
31
+ private receivedFileCount;
32
+ private writtenFileCount;
33
+ private skippedFileCount;
29
34
  private handleFile;
30
35
  private handleSnapshotEnd;
31
36
  private handleFileDiff;
32
37
  private handleExec;
33
38
  private sendError;
34
39
  private cleanup;
40
+ private disconnect;
35
41
  stop(): Promise<void>;
36
42
  }
37
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"host-impl.d.ts","sourceRoot":"","sources":["../../src/cli/host-impl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,aAAa,CAA6D;IAClF,OAAO,CAAC,oBAAoB,CAAkB;gBAElC,OAAO,EAAE,WAAW;IAShC,OAAO,CAAC,aAAa;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B,OAAO,CAAC,WAAW;YAoBL,gBAAgB;YAiDhB,aAAa;YAyBb,WAAW;YAkBX,mBAAmB;IAejC,OAAO,CAAC,SAAS,CAAK;YAER,UAAU;YAyBV,iBAAiB;YAwBjB,cAAc;YAmCd,UAAU;IAuExB,OAAO,CAAC,SAAS;YAUH,OAAO;IAiBf,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B"}
1
+ {"version":3,"file":"host-impl.d.ts","sourceRoot":"","sources":["../../src/cli/host-impl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,IAAI;IACf,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,0BAA0B,CAAuB;IACzD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,aAAa,CAA6D;IAClF,OAAO,CAAC,oBAAoB,CAAkB;gBAElC,OAAO,EAAE,WAAW;IAShC,OAAO,CAAC,aAAa;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B,OAAO,CAAC,WAAW;YAoBL,gBAAgB;YA2DhB,aAAa;YAyBb,WAAW;YAuCX,mBAAmB;IAsCjC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;YAEf,UAAU;YAqCV,iBAAiB;YA6FjB,cAAc;YAmCd,UAAU;IAuExB,OAAO,CAAC,SAAS;YAUH,OAAO;YAsBP,UAAU;IAsBlB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B"}
@@ -14,6 +14,7 @@ export class Host {
14
14
  workspace = null;
15
15
  processManager;
16
16
  currentClientId = null;
17
+ currentClientWorkspacePath = null;
17
18
  sessionToken;
18
19
  options;
19
20
  snapshotFiles = new Map();
@@ -63,10 +64,11 @@ export class Host {
63
64
  const clientAddress = socket?.remoteAddress ?? 'unknown';
64
65
  const clientPort = socket?.remotePort ?? 'unknown';
65
66
  console.log(`[${new Date().toISOString()}] 客户端连接: ${clientAddress}:${clientPort}`);
66
- // 清理旧连接
67
- if (this.currentClientId) {
68
- console.log(`[${new Date().toISOString()}] 清理旧连接: ${this.currentClientId}`);
69
- await this.cleanup();
67
+ // 清理旧连接(如果有活跃连接)
68
+ if (this.currentClientId && this.stateMachine.getState() !== HostState.EMPTY) {
69
+ console.log(`[${new Date().toISOString()}] 检测到旧连接,断开旧连接: ${this.currentClientId}`);
70
+ // 断开旧连接时保留工作区
71
+ await this.disconnect();
70
72
  }
71
73
  ws.on('message', async (data) => {
72
74
  try {
@@ -90,11 +92,18 @@ export class Host {
90
92
  });
91
93
  ws.on('close', async () => {
92
94
  console.log(`[${new Date().toISOString()}] 客户端断开连接: ${this.currentClientId || 'unknown'}`);
93
- await this.cleanup();
95
+ // 断开连接时保留工作区
96
+ await this.disconnect();
97
+ // 清除 currentClientId 和 currentClientWorkspacePath,以便下次连接时判断
98
+ this.currentClientId = null;
99
+ this.currentClientWorkspacePath = null;
94
100
  });
95
101
  ws.on('error', async (error) => {
96
102
  console.error(`[${new Date().toISOString()}] WebSocket 错误:`, error);
97
- await this.cleanup();
103
+ // 错误时也保留工作区
104
+ await this.disconnect();
105
+ this.currentClientId = null;
106
+ this.currentClientWorkspacePath = null;
98
107
  });
99
108
  }
100
109
  async handleMessage(ws, message) {
@@ -129,8 +138,23 @@ export class Host {
129
138
  ws.close();
130
139
  return;
131
140
  }
132
- this.currentClientId = message.clientId;
133
- console.log(`[${new Date().toISOString()}] HELLO 成功,客户端 ID: ${message.clientId}, 版本: ${message.clientVersion || 'unknown'}`);
141
+ const newClientId = message.clientId;
142
+ const newClientWorkspacePath = message.workspacePath || null;
143
+ // 检查工作区元数据中的工作目录路径(用于判断是否为同一工作目录)
144
+ const workspacePath = this.workspace?.getWorkspacePath();
145
+ // 如果是不同工作目录连接,清理旧工作区
146
+ if (this.workspace && workspacePath !== newClientWorkspacePath) {
147
+ console.log(`[${new Date().toISOString()}] 检测到不同工作目录,清理旧工作区 (旧: ${workspacePath || 'unknown'}, 新: ${newClientWorkspacePath || 'unknown'})`);
148
+ await this.cleanup();
149
+ }
150
+ else if (this.workspace && workspacePath === newClientWorkspacePath) {
151
+ // 同一个工作目录重连,复用工作区
152
+ console.log(`[${new Date().toISOString()}] 检测到同一工作目录重连,复用工作区 (${newClientWorkspacePath || 'unknown'})`);
153
+ // 断开连接时已经保存了元数据,这里不需要额外操作
154
+ }
155
+ this.currentClientId = newClientId;
156
+ this.currentClientWorkspacePath = newClientWorkspacePath;
157
+ console.log(`[${new Date().toISOString()}] HELLO 成功,客户端 ID: ${newClientId}, 工作目录: ${newClientWorkspacePath || 'unknown'}, 版本: ${message.clientVersion || 'unknown'}`);
134
158
  this.stateMachine.transitionTo(HostState.SYNCING);
135
159
  this.snapshotFiles.clear();
136
160
  this.isSnapshotInProgress = false;
@@ -140,15 +164,29 @@ export class Host {
140
164
  this.sendError(ws, 'Invalid state for SNAPSHOT_START');
141
165
  return;
142
166
  }
143
- console.log(`[${new Date().toISOString()}] 开始接收快照,版本: ${message.version}`);
144
- // 创建 workspace(使用指定目录,不创建临时目录)
145
- this.workspace = await Workspace.create(this.options.workspaceDir, false);
167
+ const totalFiles = message.totalFiles || 0;
168
+ console.log(`[${new Date().toISOString()}] 开始接收快照,版本: ${message.version}${totalFiles > 0 ? `,预计文件数: ${totalFiles}` : ''}`);
169
+ // 创建或复用 workspace(传入 clientId 和工作目录路径以便复用)
170
+ // 元数据文件保存在工作区目录之外,避免污染同步目录
171
+ if (!this.workspace) {
172
+ this.workspace = await Workspace.create(this.options.workspaceDir, false, this.currentClientId || null, this.currentClientWorkspacePath || null, this.options.metadataDir // 传递元数据目录
173
+ );
174
+ if (this.currentClientId) {
175
+ await this.workspace.setClientInfo(this.currentClientId, this.currentClientWorkspacePath || null);
176
+ }
177
+ }
146
178
  console.log(`[${new Date().toISOString()}] 工作空间路径: ${this.workspace.getPath()}`);
147
179
  this.isSnapshotInProgress = true;
148
180
  this.snapshotFiles.clear();
149
- this.fileCount = 0; // 重置文件计数
181
+ this.fileCount = totalFiles; // 设置文件总数
182
+ this.receivedFileCount = 0; // 重置接收计数
183
+ this.writtenFileCount = 0; // 重置写入计数
184
+ this.skippedFileCount = 0; // 重置跳过计数
150
185
  }
151
- fileCount = 0; // 文件计数器
186
+ fileCount = 0; // 文件计数器(用于显示总文件数)
187
+ receivedFileCount = 0; // 已接收文件数
188
+ writtenFileCount = 0; // 已写入文件数
189
+ skippedFileCount = 0; // 已跳过文件数(hash相同)
152
190
  async handleFile(ws, message) {
153
191
  if (!this.isSnapshotInProgress || !this.workspace) {
154
192
  this.sendError(ws, 'SNAPSHOT not in progress');
@@ -162,11 +200,19 @@ export class Host {
162
200
  this.sendError(ws, `Hash mismatch for ${message.path}`);
163
201
  return;
164
202
  }
203
+ // 检查文件是否已存在且 hash 相同(增量同步)
204
+ const isSkipped = this.workspace.hasFile(message.path, hash);
205
+ if (isSkipped) {
206
+ this.skippedFileCount++;
207
+ }
208
+ // 记录到快照中(无论是否需要写入)
165
209
  this.snapshotFiles.set(message.path, { hash, content });
166
- this.fileCount++;
167
- // 每 10 个文件显示一次进度
168
- if (this.fileCount % 10 === 0) {
169
- process.stdout.write(`\r[${new Date().toISOString()}] 已接收 ${this.fileCount} 个文件...`);
210
+ this.receivedFileCount++;
211
+ // 每 10 个文件显示一次接收进度
212
+ if (this.receivedFileCount % 10 === 0 || this.receivedFileCount === this.fileCount) {
213
+ const skippedInfo = this.skippedFileCount > 0 ? ` (跳过 ${this.skippedFileCount})` : '';
214
+ const totalInfo = this.fileCount > 0 ? `/${this.fileCount}` : '';
215
+ process.stdout.write(`\r[${new Date().toISOString()}] 已接收 ${this.receivedFileCount}${totalInfo} 个文件${skippedInfo}...`);
170
216
  }
171
217
  }
172
218
  async handleSnapshotEnd(ws, message) {
@@ -174,19 +220,69 @@ export class Host {
174
220
  this.sendError(ws, 'SNAPSHOT not in progress');
175
221
  return;
176
222
  }
177
- // 清除进度显示
223
+ // 清除接收进度显示
178
224
  process.stdout.write('\r');
179
225
  console.log(`[${new Date().toISOString()}] 快照接收完成,版本: ${message.version},文件数: ${this.snapshotFiles.size}`);
180
- // 写入所有文件
181
- for (const [path, { content }] of this.snapshotFiles) {
182
- await this.workspace.writeFile(path, content);
226
+ // 准备写入文件
227
+ const filesToWrite = [];
228
+ const fileHashes = {};
229
+ // 获取旧的文件列表(用于删除已移除的文件)
230
+ const oldFiles = this.workspace.getOldFiles();
231
+ const newFilePaths = new Set();
232
+ for (const [path, { hash, content }] of this.snapshotFiles) {
233
+ fileHashes[path] = hash;
234
+ newFilePaths.add(path);
235
+ // 只写入需要更新的文件(hash 不同的)
236
+ if (!this.workspace.hasFile(path, hash)) {
237
+ filesToWrite.push([path, content]);
238
+ }
239
+ }
240
+ // 找出需要删除的文件(在旧文件中但不在新快照中)
241
+ const filesToDelete = [];
242
+ for (const oldPath of Object.keys(oldFiles)) {
243
+ if (!newFilePaths.has(oldPath)) {
244
+ filesToDelete.push(oldPath);
245
+ }
246
+ }
247
+ const totalFiles = this.snapshotFiles.size;
248
+ const needWriteCount = filesToWrite.length;
249
+ const actualSkippedCount = totalFiles - needWriteCount;
250
+ // 删除已移除的文件
251
+ if (filesToDelete.length > 0) {
252
+ console.log(`[${new Date().toISOString()}] 检测到 ${filesToDelete.length} 个文件已移除,开始删除...`);
253
+ for (const path of filesToDelete) {
254
+ await this.workspace.deleteFile(path);
255
+ }
256
+ console.log(`[${new Date().toISOString()}] 已删除 ${filesToDelete.length} 个文件`);
257
+ }
258
+ if (needWriteCount > 0) {
259
+ console.log(`[${new Date().toISOString()}] 开始写入文件: ${needWriteCount}/${totalFiles} 需要更新...`);
260
+ // 写入文件并显示进度
261
+ for (let i = 0; i < filesToWrite.length; i++) {
262
+ const [path, content] = filesToWrite[i];
263
+ await this.workspace.writeFile(path, content);
264
+ this.writtenFileCount++;
265
+ // 每写入 10 个文件或最后一个文件时显示进度
266
+ if ((i + 1) % 10 === 0 || i === filesToWrite.length - 1) {
267
+ process.stdout.write(`\r[${new Date().toISOString()}] 已写入 ${this.writtenFileCount}/${needWriteCount} 个文件...`);
268
+ }
269
+ }
270
+ // 清除写入进度显示
271
+ process.stdout.write('\r');
183
272
  }
273
+ // 更新文件列表元数据
274
+ await this.workspace.updateFileList(fileHashes);
184
275
  this.workspace.setVersion(message.version);
185
276
  this.stateMachine.transitionTo(HostState.READY);
186
277
  this.isSnapshotInProgress = false;
278
+ const skippedInfo = actualSkippedCount > 0 ? ` (跳过 ${actualSkippedCount} 个未变更文件)` : '';
279
+ console.log(`[${new Date().toISOString()}] 工作空间已就绪,可以执行命令${skippedInfo}`);
280
+ // 重置计数器
187
281
  this.snapshotFiles.clear();
188
282
  this.fileCount = 0;
189
- console.log(`[${new Date().toISOString()}] 工作空间已就绪,可以执行命令`);
283
+ this.receivedFileCount = 0;
284
+ this.writtenFileCount = 0;
285
+ this.skippedFileCount = 0;
190
286
  }
191
287
  async handleFileDiff(ws, message) {
192
288
  if (!this.workspace) {
@@ -279,7 +375,7 @@ export class Host {
279
375
  async cleanup() {
280
376
  // 清理进程
281
377
  await this.processManager.killAll();
282
- // 清理 workspace
378
+ // 清理 workspace(完全删除)
283
379
  if (this.workspace) {
284
380
  await this.workspace.cleanup();
285
381
  this.workspace = null;
@@ -287,8 +383,32 @@ export class Host {
287
383
  // 重置状态
288
384
  this.stateMachine.reset();
289
385
  this.currentClientId = null;
386
+ this.currentClientWorkspacePath = null;
387
+ this.snapshotFiles.clear();
388
+ this.isSnapshotInProgress = false;
389
+ this.fileCount = 0;
390
+ this.receivedFileCount = 0;
391
+ this.writtenFileCount = 0;
392
+ this.skippedFileCount = 0;
393
+ }
394
+ async disconnect() {
395
+ // 断开连接时保留工作区
396
+ // 清理进程
397
+ await this.processManager.killAll();
398
+ // 保存工作区元数据,但不删除工作区
399
+ if (this.workspace) {
400
+ await this.workspace.disconnect();
401
+ // 不设置为 null,以便重连时复用
402
+ }
403
+ // 重置状态(但保留 workspace、currentClientId 和 currentClientWorkspacePath,以便识别重连)
404
+ this.stateMachine.reset();
290
405
  this.snapshotFiles.clear();
291
406
  this.isSnapshotInProgress = false;
407
+ this.fileCount = 0;
408
+ this.receivedFileCount = 0;
409
+ this.writtenFileCount = 0;
410
+ this.skippedFileCount = 0;
411
+ // 注意:不断开连接时不清除 currentClientId 和 currentClientWorkspacePath
292
412
  }
293
413
  async stop() {
294
414
  await this.cleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"host-impl.js","sourceRoot":"","sources":["../../src/cli/host-impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-impl.js","sourceRoot":"","sources":["../../src/cli/host-impl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/cli/link.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoH5D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsDzD"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/cli/link.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8L5D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsDzD"}
package/dist/cli/link.js CHANGED
@@ -39,44 +39,90 @@ export async function linkCommand(url) {
39
39
  console.warn(`提示: 使用域名连接时,如果配置了 HTTPS,请使用 wss:// 协议`);
40
40
  console.warn(`例如: mirror link wss://${parsed.host}${portPart}?token=${parsed.token}`);
41
41
  }
42
- const transport = new WebSocketTransport();
43
- try {
44
- await transport.connect(wsUrl);
42
+ // 连接配置
43
+ const connectionConfig = {
44
+ wsUrl,
45
+ clientId,
46
+ token: parsed.token,
47
+ clientVersion,
48
+ cwd,
49
+ };
50
+ // 连接状态管理
51
+ let isManualDisconnect = false;
52
+ let currentTransport = null;
53
+ let currentWatcher = null;
54
+ let reconnectAttempts = 0;
55
+ // 建立连接并同步
56
+ async function establishConnection() {
57
+ const transport = new WebSocketTransport();
58
+ await transport.connect(connectionConfig.wsUrl);
45
59
  console.log('Connected to host');
46
- // 设置连接状态监听
47
- const ws = transport.getWebSocket();
48
- if (ws) {
49
- ws.on('close', (code, reason) => {
50
- console.error(`\n连接已断开 (code: ${code}, reason: ${reason?.toString() || 'none'})`);
51
- process.exit(1);
52
- });
53
- ws.on('error', (error) => {
54
- console.error('\n连接错误:', error);
55
- process.exit(1);
56
- });
57
- }
58
60
  // 发送 HELLO
59
61
  transport.send({
60
62
  type: 'HELLO',
61
- clientId,
62
- token: parsed.token,
63
- clientVersion: clientVersion,
63
+ clientId: connectionConfig.clientId,
64
+ token: connectionConfig.token,
65
+ clientVersion: connectionConfig.clientVersion,
66
+ workspacePath: connectionConfig.cwd,
64
67
  });
65
- // 等待连接建立(简化处理,直接开始同步)
68
+ // 等待连接建立
66
69
  await new Promise((resolve) => setTimeout(resolve, 500));
67
70
  // 开始全量同步
68
- await performSnapshot(transport, cwd);
71
+ await performSnapshot(transport, connectionConfig.cwd);
69
72
  console.log('快照同步完成,准备进入交互模式...');
70
73
  // 检查连接状态
71
- const wsAfterSync = transport.getWebSocket();
72
- if (!wsAfterSync || wsAfterSync.readyState !== 1) {
74
+ const ws = transport.getWebSocket();
75
+ if (!ws || ws.readyState !== 1) {
76
+ transport.close();
73
77
  throw new Error('WebSocket 连接在同步后断开');
74
78
  }
75
79
  // 设置文件监听
76
- const watcher = setupFileWatcher(cwd, transport);
77
- // 进入交互式终端
78
- await startInteractiveTerminal(transport, cwd);
79
- // 清理
80
+ const watcher = setupFileWatcher(connectionConfig.cwd, transport);
81
+ return { transport, watcher };
82
+ }
83
+ // 重连逻辑
84
+ async function reconnect() {
85
+ if (isManualDisconnect) {
86
+ throw new Error('Manual disconnect, no reconnect');
87
+ }
88
+ console.log('\n连接已断开,正在尝试重新连接...');
89
+ // 清理旧连接
90
+ if (currentWatcher) {
91
+ currentWatcher.close();
92
+ currentWatcher = null;
93
+ }
94
+ if (currentTransport) {
95
+ currentTransport.close();
96
+ currentTransport = null;
97
+ }
98
+ // 等待后重连(指数退避,最多等待30秒)
99
+ const delay = Math.min(3000 * Math.pow(1.5, reconnectAttempts), 30000);
100
+ reconnectAttempts++;
101
+ await new Promise((resolve) => setTimeout(resolve, delay));
102
+ try {
103
+ const { transport, watcher } = await establishConnection();
104
+ currentTransport = transport;
105
+ currentWatcher = watcher;
106
+ reconnectAttempts = 0; // 重置重连计数
107
+ console.log('重连成功');
108
+ return { transport, watcher };
109
+ }
110
+ catch (error) {
111
+ console.error('重连失败:', error instanceof Error ? error.message : String(error));
112
+ // 继续重试(无限重试,除非主动断开)
113
+ return reconnect();
114
+ }
115
+ }
116
+ try {
117
+ // 初始连接
118
+ const { transport, watcher } = await establishConnection();
119
+ currentTransport = transport;
120
+ currentWatcher = watcher;
121
+ // 进入交互式终端(支持重连)
122
+ // 重连逻辑在交互式终端内部处理
123
+ await startInteractiveTerminalWithReconnect(transport, cwd, reconnect);
124
+ // 清理(主动断开)
125
+ isManualDisconnect = true;
80
126
  watcher.close();
81
127
  transport.close();
82
128
  }
@@ -111,7 +157,24 @@ export async function linkCommand(url) {
111
157
  console.error(` - 域名是否正确: ${parsed.host}`);
112
158
  console.error(' - DNS 配置是否正确');
113
159
  }
114
- process.exit(1);
160
+ // 如果不是主动断开,尝试重连
161
+ if (!isManualDisconnect) {
162
+ try {
163
+ const { transport, watcher } = await reconnect();
164
+ currentTransport = transport;
165
+ currentWatcher = watcher;
166
+ await startInteractiveTerminalWithReconnect(transport, cwd, reconnect);
167
+ isManualDisconnect = true;
168
+ watcher.close();
169
+ transport.close();
170
+ }
171
+ catch {
172
+ process.exit(1);
173
+ }
174
+ }
175
+ else {
176
+ process.exit(1);
177
+ }
115
178
  }
116
179
  }
117
180
  export async function getPackageVersion() {
@@ -196,18 +259,22 @@ let currentVersion = 0;
196
259
  async function performSnapshot(transport, cwd) {
197
260
  currentVersion = 1;
198
261
  try {
199
- // 发送 SNAPSHOT_START
262
+ // 先收集所有文件
263
+ console.log('正在扫描文件...');
264
+ const files = await collectFiles(cwd, cwd);
265
+ const totalFiles = files.length;
266
+ console.log(`准备同步 ${totalFiles} 个文件...`);
267
+ // 发送 SNAPSHOT_START(包含文件总数)
200
268
  transport.send({
201
269
  type: 'SNAPSHOT_START',
202
270
  version: currentVersion,
271
+ totalFiles,
203
272
  });
204
- // 收集所有文件
205
- const files = await collectFiles(cwd, cwd);
206
- console.log(`准备同步 ${files.length} 个文件...`);
207
- // 发送所有文件
273
+ // 发送所有文件,并显示进度
208
274
  let successCount = 0;
209
275
  let errorCount = 0;
210
- for (const file of files) {
276
+ for (let i = 0; i < files.length; i++) {
277
+ const file = files[i];
211
278
  try {
212
279
  const { content, hash } = await readFileWithHash(file);
213
280
  const relativePath = getRelativePath(file, cwd);
@@ -218,14 +285,20 @@ async function performSnapshot(transport, cwd) {
218
285
  content: content.toString('base64'),
219
286
  });
220
287
  successCount++;
288
+ // 每 10 个文件或最后一个文件时显示进度
289
+ if ((i + 1) % 10 === 0 || i === files.length - 1) {
290
+ process.stdout.write(`\r已发送 ${i + 1}/${totalFiles} 个文件... (成功: ${successCount}, 失败: ${errorCount})`);
291
+ }
221
292
  }
222
293
  catch (error) {
223
- console.error(`Failed to send file ${file}:`, error);
294
+ console.error(`\nFailed to send file ${file}:`, error);
224
295
  errorCount++;
225
296
  // 继续处理其他文件,不中断整个同步过程
226
297
  }
227
298
  }
228
- console.log(`文件同步完成: ${successCount} 成功, ${errorCount} 失败`);
299
+ // 清除进度显示
300
+ process.stdout.write('\r');
301
+ console.log(`文件发送完成: ${successCount} 成功, ${errorCount} 失败`);
229
302
  // 发送 SNAPSHOT_END
230
303
  transport.send({
231
304
  type: 'SNAPSHOT_END',
@@ -297,47 +370,100 @@ function setupFileWatcher(cwd, transport) {
297
370
  });
298
371
  return watcher;
299
372
  }
300
- async function startInteractiveTerminal(transport, _cwd) {
373
+ async function startInteractiveTerminalWithReconnect(transport, _cwd, reconnectFn) {
374
+ return startInteractiveTerminal(transport, _cwd, reconnectFn);
375
+ }
376
+ async function startInteractiveTerminal(transport, _cwd, reconnectFn) {
301
377
  return new Promise((resolve) => {
302
378
  const rl = readline.createInterface({
303
379
  input: process.stdin,
304
380
  output: process.stdout,
305
381
  prompt: '> ',
306
382
  });
383
+ let currentTransport = transport;
307
384
  let currentExecId = null;
308
385
  let isExecuting = false;
309
- // 监听远程输出
310
- transport.onMessage('EXEC_OUTPUT', (msg) => {
311
- const outputMsg = msg;
312
- if (outputMsg.execId === currentExecId) {
313
- // 直接写入 stdout,不通过 readline
314
- if (outputMsg.data) {
315
- process.stdout.write(outputMsg.data);
386
+ let isReconnecting = false;
387
+ // 设置消息监听器
388
+ function setupMessageHandlers(t) {
389
+ // 清除旧的消息处理器(通过创建新的 transport 实例来避免)
390
+ // 这里我们直接使用新的 transport
391
+ t.onMessage('EXEC_OUTPUT', (msg) => {
392
+ const outputMsg = msg;
393
+ if (outputMsg.execId === currentExecId) {
394
+ if (outputMsg.data) {
395
+ process.stdout.write(outputMsg.data);
396
+ }
316
397
  }
398
+ });
399
+ t.onMessage('EXEC_EXIT', (msg) => {
400
+ const exitMsg = msg;
401
+ if (exitMsg.execId === currentExecId) {
402
+ currentExecId = null;
403
+ isExecuting = false;
404
+ rl.prompt();
405
+ }
406
+ });
407
+ t.onMessage('ERROR', (msg) => {
408
+ const errorMsg = msg;
409
+ console.error(`\nError: ${errorMsg.message}`);
410
+ if (currentExecId) {
411
+ currentExecId = null;
412
+ isExecuting = false;
413
+ rl.prompt();
414
+ }
415
+ });
416
+ }
417
+ // 初始设置
418
+ setupMessageHandlers(currentTransport);
419
+ // 重连处理
420
+ async function handleReconnect() {
421
+ if (!reconnectFn || isReconnecting) {
422
+ return;
317
423
  }
318
- });
319
- transport.onMessage('EXEC_EXIT', (msg) => {
320
- const exitMsg = msg;
321
- if (exitMsg.execId === currentExecId) {
322
- currentExecId = null;
323
- isExecuting = false;
424
+ isReconnecting = true;
425
+ console.log('\n检测到连接断开,等待重连...');
426
+ try {
427
+ const { transport: newTransport } = await reconnectFn();
428
+ currentTransport = newTransport;
429
+ setupMessageHandlers(newTransport);
430
+ isReconnecting = false;
431
+ console.log('重连成功,可以继续使用');
324
432
  rl.prompt();
325
433
  }
326
- });
327
- transport.onMessage('ERROR', (msg) => {
328
- const errorMsg = msg;
329
- console.error(`\nError: ${errorMsg.message}`);
330
- if (currentExecId) {
331
- currentExecId = null;
332
- isExecuting = false;
434
+ catch (error) {
435
+ console.error('重连失败:', error instanceof Error ? error.message : String(error));
436
+ isReconnecting = false;
333
437
  rl.prompt();
334
438
  }
335
- });
439
+ }
440
+ // 监听连接断开
441
+ const ws = currentTransport.getWebSocket();
442
+ if (ws) {
443
+ ws.on('close', async () => {
444
+ if (reconnectFn) {
445
+ await handleReconnect();
446
+ }
447
+ else {
448
+ rl.close();
449
+ resolve();
450
+ }
451
+ });
452
+ ws.on('error', async () => {
453
+ if (reconnectFn) {
454
+ await handleReconnect();
455
+ }
456
+ else {
457
+ rl.close();
458
+ resolve();
459
+ }
460
+ });
461
+ }
336
462
  rl.prompt();
337
- rl.on('line', (line) => {
463
+ rl.on('line', async (line) => {
338
464
  const command = line.trim();
339
465
  if (!command) {
340
- if (!isExecuting) {
466
+ if (!isExecuting && !isReconnecting) {
341
467
  rl.prompt();
342
468
  }
343
469
  return;
@@ -348,23 +474,31 @@ async function startInteractiveTerminal(transport, _cwd) {
348
474
  return;
349
475
  }
350
476
  if (isExecuting) {
351
- // 如果正在执行命令,忽略新输入
477
+ return;
478
+ }
479
+ if (isReconnecting) {
480
+ console.log('正在重连中,请稍候...');
481
+ rl.prompt();
352
482
  return;
353
483
  }
354
484
  // 检查连接状态
355
- const ws = transport.getWebSocket();
485
+ const ws = currentTransport.getWebSocket();
356
486
  if (!ws || ws.readyState !== 1) {
357
- // WebSocket.OPEN = 1
358
- console.error('\n错误: WebSocket 连接已断开,无法执行命令');
359
- console.error('请重新连接');
360
- rl.prompt();
487
+ console.error('\n错误: WebSocket 连接已断开');
488
+ if (reconnectFn) {
489
+ await handleReconnect();
490
+ }
491
+ else {
492
+ console.error('请重新连接');
493
+ rl.prompt();
494
+ }
361
495
  return;
362
496
  }
363
497
  const execId = randomUUID();
364
498
  currentExecId = execId;
365
499
  isExecuting = true;
366
500
  try {
367
- transport.send({
501
+ currentTransport.send({
368
502
  type: 'EXEC',
369
503
  execId,
370
504
  version: currentVersion,
@@ -375,22 +509,18 @@ async function startInteractiveTerminal(transport, _cwd) {
375
509
  console.error('\n发送命令失败:', error instanceof Error ? error.message : String(error));
376
510
  currentExecId = null;
377
511
  isExecuting = false;
378
- rl.prompt();
512
+ // 如果发送失败,尝试重连
513
+ if (reconnectFn) {
514
+ await handleReconnect();
515
+ }
516
+ else {
517
+ rl.prompt();
518
+ }
379
519
  }
380
520
  });
381
521
  rl.on('close', () => {
382
522
  resolve();
383
523
  });
384
- // 监听连接断开
385
- const ws = transport.getWebSocket();
386
- if (ws) {
387
- const onClose = () => {
388
- rl.close();
389
- resolve();
390
- };
391
- ws.on('close', onClose);
392
- ws.on('error', onClose);
393
- }
394
524
  });
395
525
  }
396
526
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/cli/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/cli/link.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,QAAQ;IACR,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,WAAW,aAAa,IAAI,CAAC,CAAC;IAE1C,SAAS;IACT,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS;IACT,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAE9B,eAAe;IACf,2BAA2B;IAC3B,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,GAAG,QAAQ,MAAM,MAAM,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;IAExD,qBAAqB;IACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,IAAI,GAAG,QAAQ,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO;IACP,MAAM,gBAAgB,GAAG;QACvB,KAAK;QACL,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa;QACb,GAAG;KACJ,CAAC;IAEF,SAAS;IACT,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,gBAAgB,GAA8B,IAAI,CAAC;IACvD,IAAI,cAAc,GAA8B,IAAI,CAAC;IACrD,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,UAAU;IACV,KAAK,UAAU,mBAAmB;QAIhC,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAE3C,MAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEjC,WAAW;QACX,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,aAAa,EAAE,gBAAgB,CAAC,GAAG;SACpC,CAAC,CAAC;QAEH,SAAS;QACT,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzD,SAAS;QACT,MAAM,eAAe,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAElC,SAAS;QACT,MAAM,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,SAAS;QACT,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,OAAO;IACP,KAAK,UAAU,SAAS;QAItB,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEnC,QAAQ;QACR,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzB,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,iBAAiB,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;YAC3D,gBAAgB,GAAG,SAAS,CAAC;YAC7B,cAAc,GAAG,OAAO,CAAC;YACzB,iBAAiB,GAAG,CAAC,CAAC,CAAC,SAAS;YAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,oBAAoB;YACpB,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO;QACP,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC3D,gBAAgB,GAAG,SAAS,CAAC;QAC7B,cAAc,GAAG,OAAO,CAAC;QAEzB,gBAAgB;QAChB,iBAAiB;QACjB,MAAM,qCAAqC,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAEvE,WAAW;QACX,kBAAkB,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QAElD,SAAS;QACT,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjD,gBAAgB,GAAG,SAAS,CAAC;gBAC7B,cAAc,GAAG,OAAO,CAAC;gBACzB,MAAM,qCAAqC,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACvE,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,YAAY;QACZ,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAE9D,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;YAE7C,+BAA+B;YAC/B,IAAI,CAAC;gBACH,iCAAiC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAErC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,wBAAwB;oBACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,4BAA4B,EAAE;wBACxD,GAAG,EAAE,OAAO;wBACZ,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;qBACpC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAEV,cAAc;oBACd,IAAI,UAAU,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC;wBACH,QAAQ,CAAC,kBAAkB,EAAE;4BAC3B,GAAG,EAAE,OAAO;4BACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;yBACpC,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,UAAU,GAAG,IAAI,CAAC,CAAC,gCAAgC;oBACrD,CAAC;oBAED,OAAO,GAAG,GAAG,OAAO,QAAQ,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACxE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mBAAmB;gBACnB,yBAAyB;gBACzB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACxB,OAAO,GAAG,WAAW,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CACf,GAAW;IAEX,IAAI,CAAC;QACH,yBAAyB;QACzB,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,IAAI,KAAK,CAAC,IAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,KAAK,UAAU,eAAe,CAAC,SAA6B,EAAE,GAAW;IACvE,cAAc,GAAG,CAAC,CAAC;IAEnB,IAAI,CAAC;QACH,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,SAAS,CAAC,CAAC;QAEzC,4BAA4B;QAC5B,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,cAAc;YACvB,UAAU;SACX,CAAC,CAAC;QAEH,eAAe;QACf,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAEhD,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;oBAClB,IAAI;oBACJ,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBACpC,CAAC,CAAC;gBACH,YAAY,EAAE,CAAC;gBAEf,uBAAuB;gBACvB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,SAAS,CAAC,GAAG,CAAC,IAAI,UAAU,gBAAgB,YAAY,SAAS,UAAU,GAAG,CAC/E,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvD,UAAU,EAAE,CAAC;gBACb,qBAAqB;YACvB,CAAC;QACH,CAAC;QAED,SAAS;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,QAAQ,UAAU,KAAK,CAAC,CAAC;QAE5D,kBAAkB;QAClB,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,OAAe;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1E,KAAK,UAAU,IAAI,CAAC,UAAkB;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAExD,WAAW;YACX,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACrE,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,SAA6B;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;QAClC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC3D,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClC,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAEhD,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,cAAc;gBACvB,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,YAAY;gBAClB,IAAI;gBACJ,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QAC5B,cAAc,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc;YACvB,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,qCAAqC,CAClD,SAA6B,EAC7B,IAAY,EACZ,WAA0F;IAE1F,OAAO,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,SAA6B,EAC7B,IAAY,EACZ,WAA2F;IAE3F,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,gBAAgB,GAAG,SAAS,CAAC;QACjC,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,UAAU;QACV,SAAS,oBAAoB,CAAC,CAAqB;YACjD,oCAAoC;YACpC,uBAAuB;YAEvB,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjC,MAAM,SAAS,GAAG,GAAwB,CAAC;gBAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBACvC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,MAAM,OAAO,GAAG,GAAsB,CAAC;gBACvC,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBACrC,aAAa,GAAG,IAAI,CAAC;oBACrB,WAAW,GAAG,KAAK,CAAC;oBACpB,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,QAAQ,GAAG,GAAmB,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,GAAG,IAAI,CAAC;oBACrB,WAAW,GAAG,KAAK,CAAC;oBACpB,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;QACP,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAEvC,OAAO;QACP,KAAK,UAAU,eAAe;YAC5B,IAAI,CAAC,WAAW,IAAI,cAAc,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAEjC,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;gBACxD,gBAAgB,GAAG,YAAY,CAAC;gBAChC,oBAAoB,CAAC,YAAY,CAAC,CAAC;gBACnC,cAAc,GAAG,KAAK,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3B,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC/E,cAAc,GAAG,KAAK,CAAC;gBACvB,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,EAAE,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACxB,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,eAAe,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACxB,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,eAAe,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,MAAM,EAAE,CAAC;QAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpC,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC7C,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,SAAS;YACT,MAAM,EAAE,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACvC,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,eAAe,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACvB,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,aAAa,GAAG,MAAM,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC;YAEnB,IAAI,CAAC;gBACH,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,MAAM;oBACZ,MAAM;oBACN,OAAO,EAAE,cAAc;oBACvB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnF,aAAa,GAAG,IAAI,CAAC;gBACrB,WAAW,GAAG,KAAK,CAAC;gBAEpB,cAAc;gBACd,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,eAAe,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,MAAM,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -10,10 +10,12 @@ export interface HelloMessage extends BaseMessage {
10
10
  clientId: string;
11
11
  token: string;
12
12
  clientVersion: string;
13
+ workspacePath?: string;
13
14
  }
14
15
  export interface SnapshotStartMessage extends BaseMessage {
15
16
  type: 'SNAPSHOT_START';
16
17
  version: number;
18
+ totalFiles?: number;
17
19
  }
18
20
  export interface FileMessage extends BaseMessage {
19
21
  type: 'FILE';
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,MAAM,GACN,cAAc,GACd,WAAW,GACX,MAAM,GACN,aAAa,GACb,WAAW,GACX,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,CAOtD"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,gBAAgB,GAChB,MAAM,GACN,cAAc,GACd,WAAW,GACX,MAAM,GACN,aAAa,GACb,WAAW,GACX,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,CAOtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuFH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,OAAQ,GAAyB,CAAC,IAAI,KAAK,QAAQ,CACpD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyFH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,OAAQ,GAAyB,CAAC,IAAI,KAAK,QAAQ,CACpD,CAAC;AACJ,CAAC"}
@@ -5,8 +5,19 @@ export declare class Workspace {
5
5
  private path;
6
6
  private currentVersion;
7
7
  private pendingDiffs;
8
- constructor(path: string);
9
- static create(workspaceDir: string, createTemp?: boolean): Promise<Workspace>;
8
+ private metadataPath;
9
+ private metadata;
10
+ constructor(path: string, metadataDir?: string);
11
+ static create(workspaceDir: string, createTemp?: boolean, clientId?: string | null, clientWorkspacePath?: string | null, metadataDir?: string): Promise<Workspace>;
12
+ private loadMetadata;
13
+ private saveMetadata;
14
+ setClientInfo(clientId: string, workspacePath: string | null): Promise<void>;
15
+ getClientId(): string | null;
16
+ getWorkspacePath(): string | null;
17
+ getOldFiles(): Record<string, string>;
18
+ updateFileList(files: Record<string, string>): Promise<void>;
19
+ getFileHash(path: string): string | undefined;
20
+ hasFile(path: string, hash: string): boolean;
10
21
  getPath(): string;
11
22
  getCurrentVersion(): number;
12
23
  setVersion(version: number): void;
@@ -27,5 +38,6 @@ export declare class Workspace {
27
38
  clearPendingDiffs(): void;
28
39
  applyPendingDiffs(): Promise<void>;
29
40
  cleanup(): Promise<void>;
41
+ disconnect(): Promise<void>;
30
42
  }
31
43
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAA8E;gBAEtF,IAAI,EAAE,MAAM;WAIX,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAqB1F,OAAO,IAAI,MAAM;IAIjB,iBAAiB,IAAI,MAAM;IAI3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3F,eAAe,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzF,iBAAiB,IAAI,IAAI;IAInB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAA8E;IAClG,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;WAoBjC,MAAM,CACjB,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAe,EAC3B,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,mBAAmB,GAAE,MAAM,GAAG,IAAW,EACzC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,CAAC;YAmDP,YAAY;YAYZ,YAAY;IAMpB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAelF,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI/B,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5C,OAAO,IAAI,MAAM;IAIjB,iBAAiB,IAAI,MAAM;IAI3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAU3B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,cAAc,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3F,eAAe,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzF,iBAAiB,IAAI,IAAI;IAInB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
@@ -1,38 +1,140 @@
1
1
  /**
2
2
  * Workspace 管理
3
3
  */
4
- import { mkdtemp, rm, readdir } from 'fs/promises';
4
+ import { mkdtemp, rm, readdir, readFile } from 'fs/promises';
5
5
  import { join } from 'path';
6
6
  import { writeFile, mkdir, unlink } from 'fs/promises';
7
7
  import { existsSync } from 'fs';
8
+ import { createHash } from 'crypto';
9
+ import { tmpdir } from 'os';
8
10
  export class Workspace {
9
11
  path;
10
12
  currentVersion = 0;
11
13
  pendingDiffs = [];
12
- constructor(path) {
14
+ metadataPath;
15
+ metadata = null;
16
+ constructor(path, metadataDir) {
13
17
  this.path = path;
18
+ // 元数据文件保存在工作区目录之外,避免污染同步目录
19
+ // 基于工作区路径生成唯一的元数据文件名
20
+ const hash = createHash('sha256').update(path).digest('hex').substring(0, 16);
21
+ if (metadataDir) {
22
+ // 使用指定的元数据目录
23
+ if (!existsSync(metadataDir)) {
24
+ mkdir(metadataDir, { recursive: true }).catch(() => {
25
+ // 如果创建失败,使用临时目录作为后备
26
+ });
27
+ }
28
+ this.metadataPath = join(metadataDir, `.mirror-metadata-${hash}.json`);
29
+ }
30
+ else {
31
+ // 后备方案:使用系统临时目录
32
+ this.metadataPath = join(tmpdir(), `.mirror-metadata-${hash}.json`);
33
+ }
14
34
  }
15
- static async create(workspaceDir, createTemp = false) {
35
+ static async create(workspaceDir, createTemp = false, clientId = null, clientWorkspacePath = null, metadataDir) {
16
36
  if (createTemp) {
17
37
  // 创建临时目录
18
38
  const workspacePath = await mkdtemp(join(workspaceDir, 'mirror-'));
19
- return new Workspace(workspacePath);
39
+ return new Workspace(workspacePath, metadataDir);
20
40
  }
21
41
  else {
22
- // 使用指定目录
42
+ // 直接使用 workspaceDir,不需要子目录(服务端只支持单个客户端)
43
+ const actualWorkspacePath = workspaceDir;
23
44
  // 检查目录是否存在
24
- if (!existsSync(workspaceDir)) {
25
- await mkdir(workspaceDir, { recursive: true });
45
+ if (!existsSync(actualWorkspacePath)) {
46
+ await mkdir(actualWorkspacePath, { recursive: true });
26
47
  }
27
- else {
28
- // 检查目录是否为空
29
- const entries = await readdir(workspaceDir);
48
+ const workspace = new Workspace(actualWorkspacePath, metadataDir);
49
+ // 尝试加载元数据
50
+ await workspace.loadMetadata();
51
+ // 如果元数据存在且工作目录路径匹配,复用工作区
52
+ if (workspace.metadata &&
53
+ workspace.metadata.workspacePath === clientWorkspacePath &&
54
+ workspace.metadata.clientId === clientId) {
55
+ workspace.currentVersion = workspace.metadata.version;
56
+ return workspace;
57
+ }
58
+ // 如果元数据存在但工作目录路径不匹配,说明是不同的工作目录,清理
59
+ if (workspace.metadata && workspace.metadata.workspacePath !== clientWorkspacePath) {
60
+ console.log(`检测到不同工作目录: 旧=${workspace.metadata.workspacePath}, 新=${clientWorkspacePath},清理工作区`);
61
+ await workspace.cleanup();
62
+ await mkdir(actualWorkspacePath, { recursive: true });
63
+ workspace.metadata = null;
64
+ }
65
+ else if (!workspace.metadata) {
66
+ // 没有元数据,检查目录是否为空
67
+ const entries = await readdir(actualWorkspacePath);
30
68
  if (entries.length > 0) {
31
- throw new Error(`目录不为空: ${workspaceDir}`);
69
+ // 目录不为空,清理(可能是旧数据)
70
+ await workspace.cleanup();
71
+ await mkdir(actualWorkspacePath, { recursive: true });
32
72
  }
33
73
  }
34
- return new Workspace(workspaceDir);
74
+ return workspace;
75
+ }
76
+ }
77
+ async loadMetadata() {
78
+ if (existsSync(this.metadataPath)) {
79
+ try {
80
+ const content = await readFile(this.metadataPath, 'utf-8');
81
+ this.metadata = JSON.parse(content);
82
+ }
83
+ catch (error) {
84
+ // 元数据文件损坏,忽略
85
+ this.metadata = null;
86
+ }
87
+ }
88
+ }
89
+ async saveMetadata() {
90
+ if (this.metadata) {
91
+ await writeFile(this.metadataPath, JSON.stringify(this.metadata, null, 2), 'utf-8');
92
+ }
93
+ }
94
+ async setClientInfo(clientId, workspacePath) {
95
+ if (!this.metadata) {
96
+ this.metadata = {
97
+ clientId,
98
+ workspacePath,
99
+ version: 0,
100
+ files: {},
101
+ };
35
102
  }
103
+ else {
104
+ this.metadata.clientId = clientId;
105
+ this.metadata.workspacePath = workspacePath;
106
+ }
107
+ await this.saveMetadata();
108
+ }
109
+ getClientId() {
110
+ return this.metadata?.clientId || null;
111
+ }
112
+ getWorkspacePath() {
113
+ return this.metadata?.workspacePath || null;
114
+ }
115
+ getOldFiles() {
116
+ return this.metadata?.files || {};
117
+ }
118
+ async updateFileList(files) {
119
+ if (!this.metadata) {
120
+ this.metadata = {
121
+ clientId: null,
122
+ workspacePath: null,
123
+ version: this.currentVersion,
124
+ files,
125
+ };
126
+ }
127
+ else {
128
+ this.metadata.files = files;
129
+ this.metadata.version = this.currentVersion;
130
+ }
131
+ await this.saveMetadata();
132
+ }
133
+ getFileHash(path) {
134
+ return this.metadata?.files[path];
135
+ }
136
+ hasFile(path, hash) {
137
+ return this.metadata?.files[path] === hash;
36
138
  }
37
139
  getPath() {
38
140
  return this.path;
@@ -42,6 +144,12 @@ export class Workspace {
42
144
  }
43
145
  setVersion(version) {
44
146
  this.currentVersion = version;
147
+ if (this.metadata) {
148
+ this.metadata.version = version;
149
+ this.saveMetadata().catch(() => {
150
+ // 忽略保存错误
151
+ });
152
+ }
45
153
  }
46
154
  async writeFile(relativePath, content) {
47
155
  const fullPath = join(this.path, relativePath);
@@ -86,11 +194,21 @@ export class Workspace {
86
194
  }
87
195
  async cleanup() {
88
196
  try {
197
+ // 清理工作区目录
89
198
  await rm(this.path, { recursive: true, force: true });
199
+ // 清理元数据文件
200
+ if (existsSync(this.metadataPath)) {
201
+ await unlink(this.metadataPath);
202
+ }
203
+ this.metadata = null;
90
204
  }
91
205
  catch (error) {
92
206
  // 忽略清理错误
93
207
  }
94
208
  }
209
+ async disconnect() {
210
+ // 断开连接时保留工作区,只保存元数据
211
+ await this.saveMetadata();
212
+ }
95
213
  }
96
214
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cjwddz/mirror",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "description": "开发态远程工作空间镜像工具",
6
6
  "main": "./dist/index.js",