green-screen-proxy 1.1.1 → 1.2.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 (91) hide show
  1. package/README.md +93 -8
  2. package/dist/cli.js +0 -6
  3. package/dist/cli.js.map +1 -1
  4. package/dist/controller.d.ts +3 -0
  5. package/dist/controller.d.ts.map +1 -1
  6. package/dist/controller.js +14 -5
  7. package/dist/controller.js.map +1 -1
  8. package/dist/index.d.ts +1 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +18 -16
  11. package/dist/index.js.map +1 -1
  12. package/dist/protocols/tn3270-handler.d.ts +2 -1
  13. package/dist/protocols/tn3270-handler.d.ts.map +1 -1
  14. package/dist/protocols/tn3270-handler.js +10 -2
  15. package/dist/protocols/tn3270-handler.js.map +1 -1
  16. package/dist/protocols/tn5250-handler.d.ts +3 -2
  17. package/dist/protocols/tn5250-handler.d.ts.map +1 -1
  18. package/dist/protocols/tn5250-handler.js +85 -26
  19. package/dist/protocols/tn5250-handler.js.map +1 -1
  20. package/dist/protocols/types.d.ts +30 -2
  21. package/dist/protocols/types.d.ts.map +1 -1
  22. package/dist/protocols/types.js +32 -0
  23. package/dist/protocols/types.js.map +1 -1
  24. package/dist/routes.d.ts.map +1 -1
  25. package/dist/routes.js +261 -30
  26. package/dist/routes.js.map +1 -1
  27. package/dist/server.js +1 -5
  28. package/dist/server.js.map +1 -1
  29. package/dist/session-store.d.ts +68 -0
  30. package/dist/session-store.d.ts.map +1 -0
  31. package/dist/session-store.js +40 -0
  32. package/dist/session-store.js.map +1 -0
  33. package/dist/session.d.ts +32 -2
  34. package/dist/session.d.ts.map +1 -1
  35. package/dist/session.js +105 -9
  36. package/dist/session.js.map +1 -1
  37. package/dist/standalone.d.ts +3 -0
  38. package/dist/standalone.d.ts.map +1 -0
  39. package/dist/standalone.js +6 -0
  40. package/dist/standalone.js.map +1 -0
  41. package/dist/tn3270/connection.d.ts +1 -1
  42. package/dist/tn3270/connection.d.ts.map +1 -1
  43. package/dist/tn3270/connection.js +2 -2
  44. package/dist/tn3270/connection.js.map +1 -1
  45. package/dist/tn3270/screen.d.ts +1 -0
  46. package/dist/tn3270/screen.d.ts.map +1 -1
  47. package/dist/tn3270/screen.js +1 -0
  48. package/dist/tn3270/screen.js.map +1 -1
  49. package/dist/tn5250/connection.d.ts +6 -1
  50. package/dist/tn5250/connection.d.ts.map +1 -1
  51. package/dist/tn5250/connection.js +27 -3
  52. package/dist/tn5250/connection.js.map +1 -1
  53. package/dist/tn5250/constants.d.ts +39 -3
  54. package/dist/tn5250/constants.d.ts.map +1 -1
  55. package/dist/tn5250/constants.js +51 -3
  56. package/dist/tn5250/constants.js.map +1 -1
  57. package/dist/tn5250/ebcdic-jp-builtin.d.ts +45 -0
  58. package/dist/tn5250/ebcdic-jp-builtin.d.ts.map +1 -0
  59. package/dist/tn5250/ebcdic-jp-builtin.js +124 -0
  60. package/dist/tn5250/ebcdic-jp-builtin.js.map +1 -0
  61. package/dist/tn5250/ebcdic-jp.d.ts +61 -0
  62. package/dist/tn5250/ebcdic-jp.d.ts.map +1 -0
  63. package/dist/tn5250/ebcdic-jp.js +188 -0
  64. package/dist/tn5250/ebcdic-jp.js.map +1 -0
  65. package/dist/tn5250/ebcdic.d.ts +13 -4
  66. package/dist/tn5250/ebcdic.d.ts.map +1 -1
  67. package/dist/tn5250/ebcdic.js +30 -8
  68. package/dist/tn5250/ebcdic.js.map +1 -1
  69. package/dist/tn5250/encoder.d.ts +41 -9
  70. package/dist/tn5250/encoder.d.ts.map +1 -1
  71. package/dist/tn5250/encoder.js +228 -41
  72. package/dist/tn5250/encoder.js.map +1 -1
  73. package/dist/tn5250/parser.d.ts +14 -0
  74. package/dist/tn5250/parser.d.ts.map +1 -1
  75. package/dist/tn5250/parser.js +428 -53
  76. package/dist/tn5250/parser.js.map +1 -1
  77. package/dist/tn5250/screen.d.ts +144 -24
  78. package/dist/tn5250/screen.d.ts.map +1 -1
  79. package/dist/tn5250/screen.js +245 -13
  80. package/dist/tn5250/screen.js.map +1 -1
  81. package/dist/ui/assets/index-B51sr7HL.js +56 -0
  82. package/dist/ui/assets/index-B9wpEWAh.css +1 -0
  83. package/dist/ui/assets/index-BrUnECmE.css +1 -0
  84. package/dist/ui/assets/index-CDBbEXbH.js +56 -0
  85. package/dist/ui/index.html +16 -0
  86. package/dist/websocket.d.ts +3 -0
  87. package/dist/websocket.d.ts.map +1 -1
  88. package/dist/websocket.js +90 -1
  89. package/dist/websocket.js.map +1 -1
  90. package/dist/worker/index.js +5573 -0
  91. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>green-screen-react — Multi-protocol Terminal Emulator</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet" />
10
+ <script type="module" crossorigin src="/assets/index-CDBbEXbH.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-B9wpEWAh.css">
12
+ </head>
13
+ <body>
14
+ <div id="root"></div>
15
+ </body>
16
+ </html>
@@ -1,4 +1,7 @@
1
1
  import { WebSocketServer } from 'ws';
2
2
  import { Server as HttpServer } from 'http';
3
3
  export declare function setupWebSocket(server: HttpServer): WebSocketServer;
4
+ /** Broadcast a screen update to all WebSocket clients watching a session.
5
+ * Called from HTTP routes (e.g. /send-key) so dashboard clients stay in sync. */
6
+ export declare function broadcastScreenToSession(sessionId: string, screenData: object): void;
4
7
  //# sourceMappingURL=websocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAChD,OAAO,EAAmB,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAiD7D,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAgClE"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAChD,OAAO,EAAmB,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AA+E7D,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,CAiClE;AAkND;kFACkF;AAClF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAGpF"}
package/dist/websocket.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { WebSocketServer, WebSocket } from 'ws';
2
2
  import { URL } from 'url';
3
3
  import { getSession, getDefaultSession, destroySession, } from './session.js';
4
+ import { sessionLifecycle } from './session-store.js';
4
5
  import { SessionController } from './controller.js';
5
6
  const clients = new Set();
6
7
  const sessionClients = new Map();
@@ -37,7 +38,38 @@ function removeClient(client) {
37
38
  }
38
39
  }
39
40
  }
41
+ // Subscribe to session lifecycle events so clients still watching a lost
42
+ // session receive a structured `session.lost` notification (e.g. host TCP
43
+ // dropped, idle timeout). Clients can then call `reattach` against a new
44
+ // session or surface a "session expired" UI without string-matching errors.
45
+ let lifecycleSubscribed = false;
46
+ function ensureLifecycleSubscribed() {
47
+ if (lifecycleSubscribed)
48
+ return;
49
+ lifecycleSubscribed = true;
50
+ sessionLifecycle.on('session.lost', (sessionId, status) => {
51
+ const message = JSON.stringify({ type: 'session.lost', sessionId, status });
52
+ const targets = sessionClients.get(sessionId);
53
+ if (targets) {
54
+ for (const client of targets) {
55
+ if (client.ws.readyState === WebSocket.OPEN)
56
+ client.ws.send(message);
57
+ }
58
+ }
59
+ });
60
+ sessionLifecycle.on('session.resumed', (sessionId) => {
61
+ const message = JSON.stringify({ type: 'session.resumed', sessionId });
62
+ const targets = sessionClients.get(sessionId);
63
+ if (targets) {
64
+ for (const client of targets) {
65
+ if (client.ws.readyState === WebSocket.OPEN)
66
+ client.ws.send(message);
67
+ }
68
+ }
69
+ });
70
+ }
40
71
  export function setupWebSocket(server) {
72
+ ensureLifecycleSubscribed();
41
73
  const wss = new WebSocketServer({ server, path: '/ws' });
42
74
  wss.on('connection', (ws, req) => {
43
75
  const url = new URL(req.url || '/', `http://${req.headers.host || 'localhost'}`);
@@ -68,7 +100,7 @@ export function setupWebSocket(server) {
68
100
  async function handleWsCommand(ws, client, msg) {
69
101
  switch (msg.type) {
70
102
  case 'connect': {
71
- const { host = 'pub400.com', port = 23, protocol = 'tn5250', username, password, terminalType } = msg;
103
+ const { host = 'pub400.com', port = 23, protocol = 'tn5250', username, password, terminalType, codePage } = msg;
72
104
  // Destroy previous session if this client had one
73
105
  const oldSessionId = client.sessionId;
74
106
  if (oldSessionId) {
@@ -110,6 +142,7 @@ async function handleWsCommand(ws, client, msg) {
110
142
  password,
111
143
  sessionId,
112
144
  terminalType,
145
+ codePage,
113
146
  });
114
147
  }
115
148
  catch (err) {
@@ -191,6 +224,7 @@ async function handleWsCommand(ws, client, msg) {
191
224
  wsSend(ws, { type: 'screen', data: screen });
192
225
  wsSend(ws, { type: 'status', data: { connected: true, status: 'connected' } });
193
226
  wsSend(ws, { type: 'connected', sessionId });
227
+ sessionLifecycle.emit('session.resumed', sessionId);
194
228
  }
195
229
  else {
196
230
  // Also try the session manager (REST sessions)
@@ -211,6 +245,7 @@ async function handleWsCommand(ws, client, msg) {
211
245
  wsSend(ws, { type: 'screen', data: session.getScreenData() });
212
246
  wsSend(ws, { type: 'status', data: session.status });
213
247
  wsSend(ws, { type: 'connected', sessionId: session.id });
248
+ sessionLifecycle.emit('session.resumed', session.id);
214
249
  }
215
250
  else {
216
251
  wsSend(ws, { type: 'error', message: 'Session not found or disconnected' });
@@ -218,6 +253,54 @@ async function handleWsCommand(ws, client, msg) {
218
253
  }
219
254
  break;
220
255
  }
256
+ case 'readMdt': {
257
+ const controller = client.controller;
258
+ if (!controller) {
259
+ wsSend(ws, { type: 'error', message: 'Not connected' });
260
+ return;
261
+ }
262
+ const modifiedOnly = msg.modifiedOnly !== false;
263
+ controller.handleReadMdt(modifiedOnly);
264
+ break;
265
+ }
266
+ case 'markAuthenticated': {
267
+ // Look up the session via the session store (the controller path
268
+ // doesn't hold a Session reference, so we resolve by id here).
269
+ if (!client.sessionId) {
270
+ wsSend(ws, { type: 'error', message: 'No active session' });
271
+ return;
272
+ }
273
+ const username = typeof msg.username === 'string' ? msg.username : '';
274
+ if (!username) {
275
+ wsSend(ws, { type: 'error', message: 'username is required' });
276
+ return;
277
+ }
278
+ const session = getSession(client.sessionId);
279
+ if (!session) {
280
+ wsSend(ws, { type: 'error', message: 'Session not found' });
281
+ return;
282
+ }
283
+ session.markAuthenticated(username);
284
+ wsSend(ws, { type: 'status', data: session.status });
285
+ break;
286
+ }
287
+ case 'waitForFields': {
288
+ if (!client.sessionId) {
289
+ wsSend(ws, { type: 'error', message: 'No active session' });
290
+ return;
291
+ }
292
+ const session = getSession(client.sessionId);
293
+ if (!session) {
294
+ wsSend(ws, { type: 'error', message: 'Session not found' });
295
+ return;
296
+ }
297
+ const minFields = typeof msg.minFields === 'number' ? msg.minFields : 0;
298
+ const timeoutMs = typeof msg.timeoutMs === 'number' ? msg.timeoutMs : 5000;
299
+ const screen = await session.waitForScreenWithFields(minFields, timeoutMs);
300
+ const inputCount = (screen.fields || []).filter((f) => f.is_input).length;
301
+ wsSend(ws, { type: 'waitForFields', data: { matched: inputCount >= minFields, inputFieldCount: inputCount, screen } });
302
+ break;
303
+ }
221
304
  case 'disconnect': {
222
305
  if (client.controller) {
223
306
  client.controller.handleDisconnect();
@@ -258,4 +341,10 @@ function broadcastToSession(sessionId, message, exclude) {
258
341
  }
259
342
  }
260
343
  }
344
+ /** Broadcast a screen update to all WebSocket clients watching a session.
345
+ * Called from HTTP routes (e.g. /send-key) so dashboard clients stay in sync. */
346
+ export function broadcastScreenToSession(sessionId, screenData) {
347
+ const message = JSON.stringify({ type: 'screen', data: screenData });
348
+ broadcastToSession(sessionId, message);
349
+ }
261
350
  //# sourceMappingURL=websocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}