@cjwddz/mirror 1.1.0 → 2.0.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 (97) hide show
  1. package/README.md +154 -256
  2. package/dist/cli/cli-commands.d.ts +30 -0
  3. package/dist/cli/cli-commands.d.ts.map +1 -0
  4. package/dist/cli/cli-commands.js +391 -0
  5. package/dist/cli/cli-commands.js.map +1 -0
  6. package/dist/cli/client.d.ts +19 -0
  7. package/dist/cli/client.d.ts.map +1 -0
  8. package/dist/cli/client.js +107 -0
  9. package/dist/cli/client.js.map +1 -0
  10. package/dist/cli/index-new.d.ts +6 -0
  11. package/dist/cli/index-new.d.ts.map +1 -0
  12. package/dist/cli/index-new.js +116 -0
  13. package/dist/cli/index-new.js.map +1 -0
  14. package/dist/cli/index.d.ts +1 -1
  15. package/dist/cli/index.js +100 -41
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/server.d.ts +19 -0
  18. package/dist/cli/server.d.ts.map +1 -0
  19. package/dist/cli/server.js +77 -0
  20. package/dist/cli/server.js.map +1 -0
  21. package/dist/core/http-tunnel-client.d.ts +64 -0
  22. package/dist/core/http-tunnel-client.d.ts.map +1 -0
  23. package/dist/core/http-tunnel-client.js +315 -0
  24. package/dist/core/http-tunnel-client.js.map +1 -0
  25. package/dist/core/http-tunnel-protocol.d.ts +104 -0
  26. package/dist/core/http-tunnel-protocol.d.ts.map +1 -0
  27. package/dist/core/http-tunnel-protocol.js +29 -0
  28. package/dist/core/http-tunnel-protocol.js.map +1 -0
  29. package/dist/core/http-tunnel-server.d.ts +79 -0
  30. package/dist/core/http-tunnel-server.d.ts.map +1 -0
  31. package/dist/core/http-tunnel-server.js +375 -0
  32. package/dist/core/http-tunnel-server.js.map +1 -0
  33. package/dist/core/rule-manager.d.ts +71 -0
  34. package/dist/core/rule-manager.d.ts.map +1 -0
  35. package/dist/core/rule-manager.js +165 -0
  36. package/dist/core/rule-manager.js.map +1 -0
  37. package/dist/index.d.ts +4 -8
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -8
  40. package/dist/index.js.map +1 -1
  41. package/package.json +14 -10
  42. package/dist/cli/exec.d.ts +0 -9
  43. package/dist/cli/exec.d.ts.map +0 -1
  44. package/dist/cli/exec.js +0 -32
  45. package/dist/cli/exec.js.map +0 -1
  46. package/dist/cli/host-impl.d.ts +0 -58
  47. package/dist/cli/host-impl.d.ts.map +0 -1
  48. package/dist/cli/host-impl.js +0 -547
  49. package/dist/cli/host-impl.js.map +0 -1
  50. package/dist/cli/host.d.ts +0 -9
  51. package/dist/cli/host.d.ts.map +0 -1
  52. package/dist/cli/host.js +0 -57
  53. package/dist/cli/host.js.map +0 -1
  54. package/dist/cli/link.d.ts +0 -10
  55. package/dist/cli/link.d.ts.map +0 -1
  56. package/dist/cli/link.js +0 -105
  57. package/dist/cli/link.js.map +0 -1
  58. package/dist/cli/logs.d.ts +0 -8
  59. package/dist/cli/logs.d.ts.map +0 -1
  60. package/dist/cli/logs.js +0 -48
  61. package/dist/cli/logs.js.map +0 -1
  62. package/dist/cli/shell.d.ts +0 -6
  63. package/dist/cli/shell.d.ts.map +0 -1
  64. package/dist/cli/shell.js +0 -53
  65. package/dist/cli/shell.js.map +0 -1
  66. package/dist/cli/status.d.ts +0 -6
  67. package/dist/cli/status.d.ts.map +0 -1
  68. package/dist/cli/status.js +0 -33
  69. package/dist/cli/status.js.map +0 -1
  70. package/dist/cli/stop.d.ts +0 -6
  71. package/dist/cli/stop.d.ts.map +0 -1
  72. package/dist/cli/stop.js +0 -18
  73. package/dist/cli/stop.js.map +0 -1
  74. package/dist/cli/ui/MirrorUI.d.ts +0 -22
  75. package/dist/cli/ui/MirrorUI.d.ts.map +0 -1
  76. package/dist/cli/ui/MirrorUI.js +0 -71
  77. package/dist/cli/ui/MirrorUI.js.map +0 -1
  78. package/dist/cli/ui/interactive-terminal.d.ts +0 -3
  79. package/dist/cli/ui/interactive-terminal.d.ts.map +0 -1
  80. package/dist/cli/ui/interactive-terminal.js +0 -150
  81. package/dist/cli/ui/interactive-terminal.js.map +0 -1
  82. package/dist/cli/watch.d.ts +0 -6
  83. package/dist/cli/watch.d.ts.map +0 -1
  84. package/dist/cli/watch.js +0 -29
  85. package/dist/cli/watch.js.map +0 -1
  86. package/dist/core/daemon.d.ts +0 -154
  87. package/dist/core/daemon.d.ts.map +0 -1
  88. package/dist/core/daemon.js +0 -590
  89. package/dist/core/daemon.js.map +0 -1
  90. package/dist/core/process-manager.d.ts +0 -19
  91. package/dist/core/process-manager.d.ts.map +0 -1
  92. package/dist/core/process-manager.js +0 -76
  93. package/dist/core/process-manager.js.map +0 -1
  94. package/dist/transport/pty.d.ts +0 -7
  95. package/dist/transport/pty.d.ts.map +0 -1
  96. package/dist/transport/pty.js +0 -26
  97. package/dist/transport/pty.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7D"}
package/dist/cli/watch.js DELETED
@@ -1,29 +0,0 @@
1
- /**
2
- * Watch 命令
3
- * 后台启动文件同步
4
- */
5
- import { MirrorDaemon } from '../core/daemon.js';
6
- export async function watchCommand(url) {
7
- const daemon = new MirrorDaemon();
8
- try {
9
- console.log('[*] Starting file sync...');
10
- // 连接到远程工作区
11
- await daemon.link(url);
12
- console.log('[✓] Connection established');
13
- console.log('[*] File sync is running in background');
14
- console.log('\nPress Ctrl+C to stop');
15
- // 保持进程运行
16
- process.on('SIGINT', async () => {
17
- console.log('\n[*] Stopping...');
18
- await daemon.stop();
19
- process.exit(0);
20
- });
21
- // 防止进程退出
22
- await new Promise(() => { });
23
- }
24
- catch (error) {
25
- console.error('[!] Failed to start file sync:', error instanceof Error ? error.message : String(error));
26
- process.exit(1);
27
- }
28
- }
29
- //# sourceMappingURL=watch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,WAAW;QACX,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAEtC,SAAS;QACT,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,154 +0,0 @@
1
- /**
2
- * Mirror 守护进程
3
- * 管理连接、文件同步和命令执行
4
- */
5
- import type { BaseMessage } from '../core/protocol.js';
6
- export interface ConnectionConfig {
7
- wsUrl: string;
8
- clientId: string;
9
- token: string;
10
- clientVersion: string;
11
- workspacePath: string;
12
- }
13
- export interface CommandResult {
14
- execId: string;
15
- command: string;
16
- output: string[];
17
- exitCode: number | null;
18
- timestamp: Date;
19
- }
20
- export declare class MirrorDaemon {
21
- private transport;
22
- private watcher;
23
- private tokenManager;
24
- private outputBuffers;
25
- private commandHistory;
26
- private currentVersion;
27
- private isConnected;
28
- private isConnecting;
29
- private autoReconnect;
30
- private reconnectAttempts;
31
- private maxReconnectAttempts;
32
- private reconnectDelay;
33
- private maxReconnectDelay;
34
- private lastActivityTime;
35
- private inactivityTimeout;
36
- private inactivityTimer;
37
- private commandTimeout;
38
- private commandTimeouts;
39
- private messageHandlers;
40
- private hasInteractiveSession;
41
- private interactiveSessionId;
42
- private commandQueue;
43
- private activeCommands;
44
- private maxConcurrentCommands;
45
- constructor();
46
- /**
47
- * 连接并启动守护进程
48
- */
49
- connect(config: ConnectionConfig): Promise<void>;
50
- /**
51
- * 连接到远程工作区(用于 link 命令)
52
- */
53
- link(url: string): Promise<void>;
54
- /**
55
- * 解析 URL
56
- */
57
- private parseUrl;
58
- /**
59
- * 等待服务端就绪
60
- */
61
- private waitForServerReady;
62
- /**
63
- * 设置消息处理器
64
- */
65
- private setupMessageHandlers;
66
- /**
67
- * 执行全量快照同步
68
- */
69
- private performSnapshot;
70
- /**
71
- * 收集文件
72
- */
73
- private collectFiles;
74
- /**
75
- * 设置文件监听
76
- */
77
- private setupFileWatcher;
78
- /**
79
- * 执行命令
80
- */
81
- execCommand(command: string): Promise<string>;
82
- /**
83
- * 获取命令输出
84
- */
85
- getCommandOutput(execId: string): string[] | null;
86
- /**
87
- * 获取命令历史
88
- */
89
- getCommandHistory(limit?: number): CommandResult[];
90
- /**
91
- * 更新活动时间
92
- */
93
- private updateActivity;
94
- /**
95
- * 设置不活动检查
96
- */
97
- private setupInactivityCheck;
98
- /**
99
- * 启用自动重连
100
- */
101
- enableAutoReconnect(): void;
102
- /**
103
- * 禁用自动重连
104
- */
105
- disableAutoReconnect(): void;
106
- /**
107
- * 按需重连
108
- */
109
- reconnect(): Promise<void>;
110
- /**
111
- * 断开连接
112
- */
113
- disconnect(): Promise<void>;
114
- /**
115
- * 停止守护进程
116
- */
117
- stop(): Promise<void>;
118
- /**
119
- * 获取状态
120
- */
121
- getStatus(): {
122
- isConnected: boolean;
123
- isConnecting: boolean;
124
- hasInteractiveSession: boolean;
125
- activeCommands: number;
126
- commandQueueSize: number;
127
- reconnectAttempts: number;
128
- };
129
- /**
130
- * 进入交互式会话
131
- */
132
- startInteractiveSession(): Promise<void>;
133
- /**
134
- * 退出交互式会话
135
- */
136
- stopInteractiveSession(): Promise<void>;
137
- /**
138
- * 添加命令到队列
139
- */
140
- private processCommandQueue;
141
- /**
142
- * 处理命令队列
143
- */
144
- private executeCommand;
145
- /**
146
- * 注册消息处理器
147
- */
148
- onMessage(type: string, handler: (msg: BaseMessage) => void): void;
149
- /**
150
- * 移除消息处理器
151
- */
152
- offMessage(type: string, handler: (msg: BaseMessage) => void): void;
153
- }
154
- //# sourceMappingURL=daemon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/core/daemon.ts"],"names":[],"mappings":"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"}