code-squad-cli 1.2.16 → 1.2.19
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/flip/index.js +159 -36
- package/dist/flip/routes/cancel.d.ts +3 -0
- package/dist/flip/routes/cancel.js +10 -7
- package/dist/flip/routes/changes.d.ts +8 -0
- package/dist/flip/routes/changes.js +26 -0
- package/dist/flip/routes/file.js +23 -4
- package/dist/flip/routes/files.js +28 -7
- package/dist/flip/routes/git.js +30 -9
- package/dist/flip/routes/ping.d.ts +6 -0
- package/dist/flip/routes/ping.js +14 -0
- package/dist/flip/routes/session.d.ts +14 -0
- package/dist/flip/routes/session.js +53 -0
- package/dist/flip/routes/submit.js +8 -6
- package/dist/flip/server/Server.d.ts +40 -6
- package/dist/flip/server/Server.js +151 -46
- package/dist/flip/session/SessionManager.d.ts +72 -0
- package/dist/flip/session/SessionManager.js +169 -0
- package/dist/flip-ui/dist/assets/{index-B2PjDe6F.js → index-KAtdqB2p.js} +58 -58
- package/dist/flip-ui/dist/index.html +1 -1
- package/dist/index.js +598 -150
- package/package.json +1 -1
- package/dist/flip/events/SSEManager.d.ts +0 -10
- package/dist/flip/events/SSEManager.js +0 -28
- package/dist/flip/events/types.d.ts +0 -11
- package/dist/flip/events/types.js +0 -1
- package/dist/flip/routes/events.d.ts +0 -3
- package/dist/flip/routes/events.js +0 -26
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Response } from 'express';
|
|
2
|
-
import { SyncEvent } from './types.js';
|
|
3
|
-
export declare class SSEManager {
|
|
4
|
-
private clients;
|
|
5
|
-
addClient(res: Response): void;
|
|
6
|
-
removeClient(res: Response): void;
|
|
7
|
-
broadcast(event: SyncEvent): void;
|
|
8
|
-
closeAll(): void;
|
|
9
|
-
get clientCount(): number;
|
|
10
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export class SSEManager {
|
|
2
|
-
clients = new Set();
|
|
3
|
-
addClient(res) {
|
|
4
|
-
this.clients.add(res);
|
|
5
|
-
res.on('close', () => {
|
|
6
|
-
this.clients.delete(res);
|
|
7
|
-
});
|
|
8
|
-
}
|
|
9
|
-
removeClient(res) {
|
|
10
|
-
this.clients.delete(res);
|
|
11
|
-
}
|
|
12
|
-
broadcast(event) {
|
|
13
|
-
const data = JSON.stringify(event);
|
|
14
|
-
const message = `data: ${data}\n\n`;
|
|
15
|
-
this.clients.forEach(client => {
|
|
16
|
-
client.write(message);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
closeAll() {
|
|
20
|
-
this.clients.forEach(client => {
|
|
21
|
-
client.end();
|
|
22
|
-
});
|
|
23
|
-
this.clients.clear();
|
|
24
|
-
}
|
|
25
|
-
get clientCount() {
|
|
26
|
-
return this.clients.size;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export type FilesChangeEvent = {
|
|
2
|
-
type: 'files-changed';
|
|
3
|
-
};
|
|
4
|
-
export type FileContentEvent = {
|
|
5
|
-
type: 'file-changed';
|
|
6
|
-
path: string;
|
|
7
|
-
};
|
|
8
|
-
export type GitChangeEvent = {
|
|
9
|
-
type: 'git-changed';
|
|
10
|
-
};
|
|
11
|
-
export type SyncEvent = FilesChangeEvent | FileContentEvent | GitChangeEvent;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Router } from 'express';
|
|
2
|
-
export function createEventsRouter(sseManager) {
|
|
3
|
-
const router = Router();
|
|
4
|
-
// GET /api/events - SSE endpoint for real-time updates
|
|
5
|
-
router.get('/', (req, res) => {
|
|
6
|
-
// Set SSE headers
|
|
7
|
-
res.setHeader('Content-Type', 'text/event-stream');
|
|
8
|
-
res.setHeader('Cache-Control', 'no-cache');
|
|
9
|
-
res.setHeader('Connection', 'keep-alive');
|
|
10
|
-
res.setHeader('X-Accel-Buffering', 'no'); // Disable nginx buffering
|
|
11
|
-
// Send initial connection message
|
|
12
|
-
res.write('data: {"type":"connected"}\n\n');
|
|
13
|
-
// Register client
|
|
14
|
-
sseManager.addClient(res);
|
|
15
|
-
// Keep connection alive with heartbeat
|
|
16
|
-
const heartbeat = setInterval(() => {
|
|
17
|
-
res.write(':heartbeat\n\n');
|
|
18
|
-
}, 30000);
|
|
19
|
-
// Cleanup on close (removeClient is handled by SSEManager's close listener)
|
|
20
|
-
req.on('close', () => {
|
|
21
|
-
clearInterval(heartbeat);
|
|
22
|
-
res.end();
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
return router;
|
|
26
|
-
}
|