green-screen-proxy 0.3.0 → 1.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 (146) hide show
  1. package/README.md +98 -0
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +23 -4
  5. package/dist/cli.js.map +1 -0
  6. package/dist/deploy.d.ts +2 -0
  7. package/dist/deploy.d.ts.map +1 -0
  8. package/dist/deploy.js +252 -0
  9. package/dist/deploy.js.map +1 -0
  10. package/dist/hp6530/connection.d.ts +1 -0
  11. package/dist/hp6530/connection.d.ts.map +1 -0
  12. package/dist/hp6530/connection.js +1 -0
  13. package/dist/hp6530/connection.js.map +1 -0
  14. package/dist/hp6530/constants.d.ts +1 -0
  15. package/dist/hp6530/constants.d.ts.map +1 -0
  16. package/dist/hp6530/constants.js +1 -0
  17. package/dist/hp6530/constants.js.map +1 -0
  18. package/dist/hp6530/encoder.d.ts +1 -0
  19. package/dist/hp6530/encoder.d.ts.map +1 -0
  20. package/dist/hp6530/encoder.js +1 -0
  21. package/dist/hp6530/encoder.js.map +1 -0
  22. package/dist/hp6530/parser.d.ts +1 -0
  23. package/dist/hp6530/parser.d.ts.map +1 -0
  24. package/dist/hp6530/parser.js +17 -15
  25. package/dist/hp6530/parser.js.map +1 -0
  26. package/dist/hp6530/screen.d.ts +1 -0
  27. package/dist/hp6530/screen.d.ts.map +1 -0
  28. package/dist/hp6530/screen.js +1 -0
  29. package/dist/hp6530/screen.js.map +1 -0
  30. package/dist/index.d.ts +36 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +81 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/mock/mock-routes.d.ts +1 -0
  35. package/dist/mock/mock-routes.d.ts.map +1 -0
  36. package/dist/mock/mock-routes.js +1 -0
  37. package/dist/mock/mock-routes.js.map +1 -0
  38. package/dist/protocols/hp6530-handler.d.ts +3 -1
  39. package/dist/protocols/hp6530-handler.d.ts.map +1 -0
  40. package/dist/protocols/hp6530-handler.js +1 -0
  41. package/dist/protocols/hp6530-handler.js.map +1 -0
  42. package/dist/protocols/index.d.ts +5 -2
  43. package/dist/protocols/index.d.ts.map +1 -0
  44. package/dist/protocols/index.js +1 -0
  45. package/dist/protocols/index.js.map +1 -0
  46. package/dist/protocols/tn3270-handler.d.ts +3 -1
  47. package/dist/protocols/tn3270-handler.d.ts.map +1 -0
  48. package/dist/protocols/tn3270-handler.js +1 -0
  49. package/dist/protocols/tn3270-handler.js.map +1 -0
  50. package/dist/protocols/tn5250-handler.d.ts +25 -1
  51. package/dist/protocols/tn5250-handler.d.ts.map +1 -0
  52. package/dist/protocols/tn5250-handler.js +150 -1
  53. package/dist/protocols/tn5250-handler.js.map +1 -0
  54. package/dist/protocols/types.d.ts +3 -23
  55. package/dist/protocols/types.d.ts.map +1 -0
  56. package/dist/protocols/types.js +1 -0
  57. package/dist/protocols/types.js.map +1 -0
  58. package/dist/protocols/vt-handler.d.ts +3 -1
  59. package/dist/protocols/vt-handler.d.ts.map +1 -0
  60. package/dist/protocols/vt-handler.js +1 -0
  61. package/dist/protocols/vt-handler.js.map +1 -0
  62. package/dist/routes.d.ts +1 -0
  63. package/dist/routes.d.ts.map +1 -0
  64. package/dist/routes.js +1 -0
  65. package/dist/routes.js.map +1 -0
  66. package/dist/server.d.ts +1 -0
  67. package/dist/server.d.ts.map +1 -0
  68. package/dist/server.js +13 -28
  69. package/dist/server.js.map +1 -0
  70. package/dist/session.d.ts +5 -10
  71. package/dist/session.d.ts.map +1 -0
  72. package/dist/session.js +1 -0
  73. package/dist/session.js.map +1 -0
  74. package/dist/standalone.d.ts +3 -0
  75. package/dist/standalone.d.ts.map +1 -0
  76. package/dist/standalone.js +6 -0
  77. package/dist/standalone.js.map +1 -0
  78. package/dist/tn3270/connection.d.ts +1 -0
  79. package/dist/tn3270/connection.d.ts.map +1 -0
  80. package/dist/tn3270/connection.js +1 -0
  81. package/dist/tn3270/connection.js.map +1 -0
  82. package/dist/tn3270/constants.d.ts +1 -0
  83. package/dist/tn3270/constants.d.ts.map +1 -0
  84. package/dist/tn3270/constants.js +1 -0
  85. package/dist/tn3270/constants.js.map +1 -0
  86. package/dist/tn3270/encoder.d.ts +1 -0
  87. package/dist/tn3270/encoder.d.ts.map +1 -0
  88. package/dist/tn3270/encoder.js +1 -0
  89. package/dist/tn3270/encoder.js.map +1 -0
  90. package/dist/tn3270/parser.d.ts +1 -0
  91. package/dist/tn3270/parser.d.ts.map +1 -0
  92. package/dist/tn3270/parser.js +1 -0
  93. package/dist/tn3270/parser.js.map +1 -0
  94. package/dist/tn3270/screen.d.ts +1 -0
  95. package/dist/tn3270/screen.d.ts.map +1 -0
  96. package/dist/tn3270/screen.js +1 -0
  97. package/dist/tn3270/screen.js.map +1 -0
  98. package/dist/tn5250/connection.d.ts +1 -0
  99. package/dist/tn5250/connection.d.ts.map +1 -0
  100. package/dist/tn5250/connection.js +7 -8
  101. package/dist/tn5250/connection.js.map +1 -0
  102. package/dist/tn5250/constants.d.ts +1 -0
  103. package/dist/tn5250/constants.d.ts.map +1 -0
  104. package/dist/tn5250/constants.js +1 -0
  105. package/dist/tn5250/constants.js.map +1 -0
  106. package/dist/tn5250/ebcdic.d.ts +2 -0
  107. package/dist/tn5250/ebcdic.d.ts.map +1 -0
  108. package/dist/tn5250/ebcdic.js +25 -0
  109. package/dist/tn5250/ebcdic.js.map +1 -0
  110. package/dist/tn5250/encoder.d.ts +10 -1
  111. package/dist/tn5250/encoder.d.ts.map +1 -0
  112. package/dist/tn5250/encoder.js +17 -19
  113. package/dist/tn5250/encoder.js.map +1 -0
  114. package/dist/tn5250/parser.d.ts +31 -5
  115. package/dist/tn5250/parser.d.ts.map +1 -0
  116. package/dist/tn5250/parser.js +234 -79
  117. package/dist/tn5250/parser.js.map +1 -0
  118. package/dist/tn5250/screen.d.ts +12 -0
  119. package/dist/tn5250/screen.d.ts.map +1 -0
  120. package/dist/tn5250/screen.js +29 -2
  121. package/dist/tn5250/screen.js.map +1 -0
  122. package/dist/vt/connection.d.ts +1 -0
  123. package/dist/vt/connection.d.ts.map +1 -0
  124. package/dist/vt/connection.js +1 -0
  125. package/dist/vt/connection.js.map +1 -0
  126. package/dist/vt/constants.d.ts +1 -0
  127. package/dist/vt/constants.d.ts.map +1 -0
  128. package/dist/vt/constants.js +1 -0
  129. package/dist/vt/constants.js.map +1 -0
  130. package/dist/vt/encoder.d.ts +1 -0
  131. package/dist/vt/encoder.d.ts.map +1 -0
  132. package/dist/vt/encoder.js +1 -0
  133. package/dist/vt/encoder.js.map +1 -0
  134. package/dist/vt/parser.d.ts +1 -0
  135. package/dist/vt/parser.d.ts.map +1 -0
  136. package/dist/vt/parser.js +35 -33
  137. package/dist/vt/parser.js.map +1 -0
  138. package/dist/vt/screen.d.ts +1 -0
  139. package/dist/vt/screen.d.ts.map +1 -0
  140. package/dist/vt/screen.js +1 -0
  141. package/dist/vt/screen.js.map +1 -0
  142. package/dist/websocket.d.ts +1 -0
  143. package/dist/websocket.d.ts.map +1 -0
  144. package/dist/websocket.js +241 -14
  145. package/dist/websocket.js.map +1 -0
  146. package/package.json +9 -6
package/README.md ADDED
@@ -0,0 +1,98 @@
1
+ # green-screen-proxy
2
+
3
+ WebSocket-to-TCP proxy for [green-screen-react](https://www.npmjs.com/package/green-screen-react). Bridges browser WebSocket connections to TN5250, TN3270, VT220, and HP 6530 hosts over TCP.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install green-screen-proxy
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ npx green-screen-proxy # Start on port 3001
15
+ npx green-screen-proxy --mock # Mock mode (no real host needed)
16
+ npx green-screen-proxy --standalone # Proxy + built-in web terminal UI
17
+ npx green-screen-proxy --port 8080 # Custom port
18
+ npx green-screen # Shorthand for --standalone
19
+ ```
20
+
21
+ ### Mock mode
22
+
23
+ With `--mock`, the proxy serves mock terminal screens — useful for trying out the component without a real host connection.
24
+
25
+ ### Connecting to a real host
26
+
27
+ Without `--mock`, the proxy opens real TCP connections. The sign-in form in the React component collects host, port, protocol, and credentials — the proxy handles the rest.
28
+
29
+ ## Cloudflare Worker Deployment
30
+
31
+ Deploy a serverless proxy to Cloudflare Workers:
32
+
33
+ ```bash
34
+ npx green-screen-proxy deploy # Default settings
35
+ npx green-screen-proxy deploy --name my-terminal # Custom worker name
36
+ npx green-screen-proxy deploy --origins https://myapp.com # Lock CORS to your domain
37
+ ```
38
+
39
+ This will:
40
+ 1. Install Wrangler (Cloudflare CLI) if not present
41
+ 2. Log you in to Cloudflare if needed
42
+ 3. Deploy the worker and print the URL
43
+ 4. Save the URL to `.env.local` (auto-detects Vite, Next.js, CRA)
44
+
45
+ Then point the React component at it:
46
+
47
+ ```tsx
48
+ const adapter = new WebSocketAdapter({
49
+ workerUrl: 'https://green-screen-worker.your-subdomain.workers.dev'
50
+ });
51
+ ```
52
+
53
+ ## Programmatic API
54
+
55
+ Start the proxy from your own Node.js app:
56
+
57
+ ```typescript
58
+ import { createProxy } from 'green-screen-proxy';
59
+
60
+ const proxy = await createProxy({ port: 3001 });
61
+ console.log(`Proxy running on port ${proxy.port}`);
62
+
63
+ // Later:
64
+ await proxy.close();
65
+ ```
66
+
67
+ ### Options
68
+
69
+ | Option | Type | Default | Description |
70
+ |--------|------|---------|-------------|
71
+ | `port` | `number` | `3001` | Port to listen on |
72
+ | `mock` | `boolean` | `false` | Use mock screens |
73
+ | `standalone` | `boolean` | `false` | Serve built-in web UI |
74
+
75
+ ### Returns
76
+
77
+ | Property | Type | Description |
78
+ |----------|------|-------------|
79
+ | `server` | `HttpServer` | The underlying HTTP server |
80
+ | `app` | `Express` | The Express app (add your own middleware) |
81
+ | `port` | `number` | The actual port (may differ if original was in use) |
82
+ | `close()` | `Promise<void>` | Stop the server |
83
+
84
+ ## How It Works
85
+
86
+ ```
87
+ Browser Proxy Host
88
+ ┌────────────┐ ┌────────────┐ ┌────────────┐
89
+ │ WebSocket │ WS │ Express │ TCP │ IBM i │
90
+ │ client │◄──────►│ :3001 │◄──────►│ Mainframe │
91
+ └────────────┘ └────────────┘ └────────────┘
92
+ ```
93
+
94
+ The proxy manages sessions — each WebSocket connection gets its own TCP session to the target host. Screen data is parsed into a protocol-agnostic format and pushed to the client in real time.
95
+
96
+ ## License
97
+
98
+ MIT
package/dist/cli.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js CHANGED
@@ -1,8 +1,16 @@
1
1
  #!/usr/bin/env node
2
+ // Check for deploy subcommand first (before parseArgs)
3
+ const subcommand = process.argv[2];
4
+ if (subcommand === 'deploy') {
5
+ const { deploy } = await import('./deploy.js');
6
+ deploy(process.argv.slice(3));
7
+ process.exit(0);
8
+ }
2
9
  import { parseArgs } from 'node:util';
3
10
  const { values } = parseArgs({
4
11
  options: {
5
12
  mock: { type: 'boolean', default: false },
13
+ standalone: { type: 'boolean', default: false },
6
14
  port: { type: 'string', default: '' },
7
15
  help: { type: 'boolean', short: 'h', default: false },
8
16
  },
@@ -11,16 +19,23 @@ if (values.help) {
11
19
  console.log(`green-screen-proxy — WebSocket/REST proxy for legacy terminal connections
12
20
 
13
21
  Usage: green-screen-proxy [options]
22
+ green-screen-proxy deploy [deploy-options]
23
+
24
+ Commands:
25
+ deploy Deploy as a Cloudflare Worker (run "deploy --help" for options)
14
26
 
15
27
  Options:
16
- --mock Run with mock data (no real host connection needed)
17
- --port NUM Port to listen on (default: 3001, or PORT env var)
18
- -h, --help Show this help message
28
+ --mock Run with mock data (no real host connection needed)
29
+ --standalone Serve the built-in web terminal UI
30
+ --port NUM Port to listen on (default: 3001, or PORT env var)
31
+ -h, --help Show this help message
19
32
 
20
33
  Examples:
21
34
  npx green-screen-proxy # Start proxy on port 3001
22
35
  npx green-screen-proxy --mock # Start with mock screens
23
- npx green-screen-proxy --port 8080 # Start on port 8080`);
36
+ npx green-screen-proxy --standalone # Proxy + web terminal UI
37
+ npx green-screen-proxy --port 8080 # Start on port 8080
38
+ npx green-screen-proxy deploy # Deploy to Cloudflare Workers`);
24
39
  process.exit(0);
25
40
  }
26
41
  if (values.port) {
@@ -29,4 +44,8 @@ if (values.port) {
29
44
  if (values.mock) {
30
45
  process.argv.push('--mock');
31
46
  }
47
+ if (values.standalone) {
48
+ process.argv.push('--standalone');
49
+ }
32
50
  await import('./server.js');
51
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,uDAAuD;AACvD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QACzC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;KACtD;CACF,CAAC,CAAC;AAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;yEAmB2D,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function deploy(args: string[]): void;
2
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AA4FA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiG3C"}
package/dist/deploy.js ADDED
@@ -0,0 +1,252 @@
1
+ import { spawnSync } from 'child_process';
2
+ import { mkdtempSync, writeFileSync, readFileSync, existsSync, appendFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { tmpdir } from 'os';
5
+ import { fileURLToPath } from 'url';
6
+ import { dirname } from 'path';
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+ const WRANGLER_TOML = `name = "__WORKER_NAME__"
10
+ main = "index.js"
11
+ compatibility_date = "2024-12-18"
12
+ compatibility_flags = ["nodejs_compat"]
13
+
14
+ [durable_objects]
15
+ bindings = [
16
+ { name = "TERMINAL_SESSION", class_name = "TerminalSession" }
17
+ ]
18
+
19
+ [[migrations]]
20
+ tag = "v1"
21
+ new_sqlite_classes = ["TerminalSession"]
22
+ `;
23
+ function printHelp() {
24
+ console.log(`green-screen-proxy deploy — Deploy the Cloudflare Worker for browser-to-host connections
25
+
26
+ Usage: green-screen-proxy deploy [options]
27
+
28
+ Options:
29
+ --name NAME Worker name (default: green-screen-worker)
30
+ --origins URL,... CORS allowed origins, comma-separated (default: * = all)
31
+ -h, --help Show this help message
32
+
33
+ Examples:
34
+ npx green-screen-proxy deploy
35
+ npx green-screen-proxy deploy --name my-terminal-worker
36
+ npx green-screen-proxy deploy --origins https://myapp.com,https://staging.myapp.com
37
+
38
+ Prerequisites:
39
+ - A free Cloudflare account (https://dash.cloudflare.com/sign-up)
40
+ - Wrangler CLI (installed automatically if missing)`);
41
+ }
42
+ function runCommand(command, args, options) {
43
+ const result = spawnSync(command, args, {
44
+ stdio: options?.stdio ?? 'pipe',
45
+ cwd: options?.cwd,
46
+ encoding: 'utf-8',
47
+ });
48
+ return {
49
+ ok: result.status === 0,
50
+ stdout: typeof result.stdout === 'string' ? result.stdout : '',
51
+ };
52
+ }
53
+ function checkWrangler() {
54
+ return runCommand('npx', ['wrangler', '--version']).ok;
55
+ }
56
+ function installWrangler() {
57
+ console.log('\nInstalling wrangler...');
58
+ const result = runCommand('npm', ['install', '-g', 'wrangler'], { stdio: 'inherit' });
59
+ if (!result.ok) {
60
+ console.error('Failed to install wrangler. Please install it manually:');
61
+ console.error(' npm install -g wrangler');
62
+ process.exit(1);
63
+ }
64
+ console.log('Wrangler installed successfully.\n');
65
+ }
66
+ function checkAuth() {
67
+ const result = runCommand('npx', ['wrangler', 'whoami']);
68
+ return result.ok && !result.stdout.includes('not authenticated');
69
+ }
70
+ function login() {
71
+ console.log('\nYou need to log in to Cloudflare first.\n');
72
+ const result = runCommand('npx', ['wrangler', 'login'], { stdio: 'inherit' });
73
+ if (!result.ok) {
74
+ console.error('Login failed. Please try: npx wrangler login');
75
+ process.exit(1);
76
+ }
77
+ }
78
+ export function deploy(args) {
79
+ const options = parseDeployArgs(args);
80
+ if (options.help) {
81
+ printHelp();
82
+ return;
83
+ }
84
+ console.log('green-screen-proxy deploy\n');
85
+ // Step 1: Check wrangler
86
+ console.log('Checking for wrangler...');
87
+ if (!checkWrangler()) {
88
+ console.log('Wrangler not found.');
89
+ installWrangler();
90
+ }
91
+ else {
92
+ console.log('Wrangler found.\n');
93
+ }
94
+ // Step 2: Check auth
95
+ console.log('Checking Cloudflare authentication...');
96
+ if (!checkAuth()) {
97
+ login();
98
+ }
99
+ else {
100
+ console.log('Authenticated.\n');
101
+ }
102
+ // Step 3: Prepare temp directory with worker bundle
103
+ console.log('Preparing worker bundle...');
104
+ const tmpDir = mkdtempSync(join(tmpdir(), 'green-screen-worker-'));
105
+ // Read the pre-built worker bundle
106
+ const workerBundlePath = join(__dirname, 'worker', 'index.js');
107
+ let workerCode;
108
+ try {
109
+ workerCode = readFileSync(workerBundlePath, 'utf-8');
110
+ }
111
+ catch {
112
+ console.error(`Worker bundle not found at ${workerBundlePath}`);
113
+ console.error('This is a packaging error. Please report it at:');
114
+ console.error(' https://github.com/visionbridge-solutions/green-screen-react/issues');
115
+ process.exit(1);
116
+ }
117
+ // Step 4: Inject CORS origins
118
+ workerCode = workerCode.replace('__CORS_ORIGINS_PLACEHOLDER__', options.origins);
119
+ // Write files to temp dir
120
+ writeFileSync(join(tmpDir, 'index.js'), workerCode);
121
+ writeFileSync(join(tmpDir, 'wrangler.toml'), WRANGLER_TOML.replace('__WORKER_NAME__', options.name));
122
+ console.log(`Worker name: ${options.name}`);
123
+ console.log(`CORS origins: ${options.origins}\n`);
124
+ // Step 5: Deploy
125
+ console.log('Deploying to Cloudflare...\n');
126
+ const result = runCommand('npx', ['wrangler', 'deploy'], { cwd: tmpDir, stdio: ['inherit', 'pipe', 'inherit'] });
127
+ if (!result.ok) {
128
+ console.error('\nDeployment failed. Check the error above.');
129
+ process.exit(1);
130
+ }
131
+ // Extract URL from wrangler output
132
+ const urlMatch = result.stdout.match(/https:\/\/[\w.-]+\.workers\.dev/);
133
+ const workerUrl = urlMatch ? urlMatch[0] : null;
134
+ console.log('\nWorker deployed successfully!\n');
135
+ if (workerUrl) {
136
+ console.log(`Worker URL: ${workerUrl}\n`);
137
+ // Try to save URL to .env.local automatically
138
+ const saved = saveWorkerUrl(workerUrl);
139
+ if (saved) {
140
+ console.log(`Saved to ${saved}\n`);
141
+ console.log('Use it in your React app:\n');
142
+ console.log(` import { GreenScreenTerminal, WebSocketAdapter } from 'green-screen-react';`);
143
+ console.log(` import 'green-screen-react/styles.css';`);
144
+ console.log('');
145
+ console.log(` const adapter = new WebSocketAdapter({`);
146
+ console.log(` workerUrl: process.env.${getEnvVarName(saved)}`);
147
+ console.log(` });`);
148
+ console.log('');
149
+ console.log(` <GreenScreenTerminal adapter={adapter} />`);
150
+ }
151
+ else {
152
+ console.log('Use it in your React app:\n');
153
+ console.log(` import { GreenScreenTerminal, WebSocketAdapter } from 'green-screen-react';`);
154
+ console.log(` import 'green-screen-react/styles.css';`);
155
+ console.log('');
156
+ console.log(` const adapter = new WebSocketAdapter({`);
157
+ console.log(` workerUrl: '${workerUrl}'`);
158
+ console.log(` });`);
159
+ console.log('');
160
+ console.log(` <GreenScreenTerminal adapter={adapter} />`);
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * Detect the project framework and save the worker URL to the appropriate .env.local file.
166
+ * Returns the file path if saved, null if detection failed.
167
+ */
168
+ function saveWorkerUrl(url) {
169
+ const cwd = process.cwd();
170
+ // Check for package.json to detect framework
171
+ const pkgPath = join(cwd, 'package.json');
172
+ if (!existsSync(pkgPath))
173
+ return null;
174
+ let pkg;
175
+ try {
176
+ pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
177
+ }
178
+ catch {
179
+ return null;
180
+ }
181
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
182
+ const envFile = join(cwd, '.env.local');
183
+ // Detect framework and choose env var prefix
184
+ let envVar;
185
+ if (deps['next']) {
186
+ envVar = `NEXT_PUBLIC_GREEN_SCREEN_URL=${url}`;
187
+ }
188
+ else if (deps['vite'] || deps['@vitejs/plugin-react']) {
189
+ envVar = `VITE_GREEN_SCREEN_URL=${url}`;
190
+ }
191
+ else if (deps['react-scripts']) {
192
+ envVar = `REACT_APP_GREEN_SCREEN_URL=${url}`;
193
+ }
194
+ else {
195
+ // Generic — use VITE_ as most common
196
+ envVar = `VITE_GREEN_SCREEN_URL=${url}`;
197
+ }
198
+ // Append to .env.local (create if needed, don't overwrite existing)
199
+ try {
200
+ if (existsSync(envFile)) {
201
+ const content = readFileSync(envFile, 'utf-8');
202
+ // Check if already set
203
+ const varName = envVar.split('=')[0];
204
+ if (content.includes(varName)) {
205
+ // Update existing value
206
+ const updated = content.replace(new RegExp(`^${varName}=.*$`, 'm'), envVar);
207
+ writeFileSync(envFile, updated);
208
+ }
209
+ else {
210
+ appendFileSync(envFile, `\n${envVar}\n`);
211
+ }
212
+ }
213
+ else {
214
+ writeFileSync(envFile, `${envVar}\n`);
215
+ }
216
+ return envFile;
217
+ }
218
+ catch {
219
+ return null;
220
+ }
221
+ }
222
+ function getEnvVarName(envFile) {
223
+ try {
224
+ const content = readFileSync(envFile, 'utf-8');
225
+ const match = content.match(/((?:VITE|NEXT_PUBLIC|REACT_APP)_GREEN_SCREEN_URL)=/);
226
+ return match ? match[1] : 'VITE_GREEN_SCREEN_URL';
227
+ }
228
+ catch {
229
+ return 'VITE_GREEN_SCREEN_URL';
230
+ }
231
+ }
232
+ function parseDeployArgs(args) {
233
+ const options = {
234
+ name: 'green-screen-worker',
235
+ origins: '*',
236
+ help: false,
237
+ };
238
+ for (let i = 0; i < args.length; i++) {
239
+ const arg = args[i];
240
+ if (arg === '--name' && i + 1 < args.length) {
241
+ options.name = args[++i];
242
+ }
243
+ else if (arg === '--origins' && i + 1 < args.length) {
244
+ options.origins = args[++i];
245
+ }
246
+ else if (arg === '-h' || arg === '--help') {
247
+ options.help = true;
248
+ }
249
+ }
250
+ return options;
251
+ }
252
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
@@ -49,3 +49,4 @@ export declare class HP6530Connection extends EventEmitter {
49
49
  private sendTerminalType;
50
50
  private sendTelnet;
51
51
  }
52
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/hp6530/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAA2B;IAE7C,oEAAoE;IACpE,OAAO,CAAC,IAAI,CAAkB;IAE9B,6CAA6C;IAC7C,OAAO,CAAC,SAAS,CAAgB;IAEjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDlD,UAAU,IAAI,IAAI;IAOlB,uEAAuE;IACvE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY3B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM;IAKd;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA0ErB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;IAQtB,kDAAkD;IAClD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,UAAU;CAMnB"}
@@ -256,3 +256,4 @@ export class HP6530Connection extends EventEmitter {
256
256
  }
257
257
  }
258
258
  }
259
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/hp6530/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AASrD;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IACxC,MAAM,GAAsB,IAAI,CAAC;IACjC,IAAI,GAAW,EAAE,CAAC;IAClB,IAAI,GAAW,EAAE,CAAC;IAClB,UAAU,GAAY,KAAK,CAAC;IAC5B,UAAU,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7C,oEAAoE;IAC5D,IAAI,GAAY,KAAK,CAAC;IAE9B,6CAA6C;IACrC,SAAS,GAAa,EAAE,CAAC;IAEjC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAY;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAE9C,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE7D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhC,8BAA8B;YAC9B,IAAI,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,iBAAiB;gBAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAE/B,iCAAiC;gBACjC,IAAI,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;oBACvB,eAAe;oBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBAED,oCAAoC;gBACpC,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnC,IAAI,KAAK,KAAK,CAAC,CAAC;wBAAE,OAAO,CAAC,qBAAqB;oBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBAED,mCAAmC;gBACnC,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI;oBACxC,GAAG,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO;oBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACpC,SAAS;gBACX,CAAC;gBAED,oCAAoC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtB,qCAAqC;gBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtB,wCAAwC;gBACxC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,iEAAiE;YACjE,4EAA4E;YAC5E,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;oBAAE,MAAM;gBAChE,GAAG,EAAE,CAAC;YACR,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,kDAAkD;IAC1C,aAAa;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC9E,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAEO,iBAAiB,CAAC,GAAW,EAAE,MAAc;QACnD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,EAAE;gBACZ,qCAAqC;gBACrC,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS;oBAC3B,MAAM,KAAK,MAAM,CAAC,UAAU;oBAC5B,MAAM,KAAK,IAAI,CAAC,SAAS;oBACzB,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC,IAAI;gBACd,0BAA0B;gBAC1B,IAAI,MAAM,KAAK,MAAM,CAAC,UAAU;oBAC5B,MAAM,KAAK,IAAI,CAAC,SAAS;oBACzB,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC,IAAI;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM;YAER,KAAK,MAAM,CAAC,IAAI;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrC,MAAM;QACV,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YACrF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC5B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,MAAc;QAC5C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF"}
@@ -62,3 +62,4 @@ export declare const FKEY_SEQUENCES: Record<string, Buffer>;
62
62
  export declare const ARROW_SEQUENCES: Record<string, Buffer>;
63
63
  export declare const KEY_TO_SEQUENCE: Record<string, Buffer>;
64
64
  export declare const FKEY_BYTE_TO_NAME: Record<number, string>;
65
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/hp6530/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,wDAAwD;AACxD,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,gCAAgC;AAChC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,wBAAwB;AACxB,eAAO,MAAM,MAAM;;;CAGT,CAAC;AAIX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAqBP,CAAC;AAKX,8DAA8D;AAC9D,eAAO,MAAM,cAAc,qBAA4B,CAAC;AACxD,eAAO,MAAM,WAAW,KAAO,CAAC;AAChC,eAAO,MAAM,cAAc,KAAO,CAAC;AAEnC,8BAA8B;AAC9B,eAAO,MAAM,aAAa,qBAA4B,CAAC;AAEvD,2BAA2B;AAC3B,eAAO,MAAM,aAAa,qBAA4B,CAAC;AAEvD,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,qBAA4B,CAAC;AAE3D,8CAA8C;AAC9C,eAAO,MAAM,eAAe,qBAA4B,CAAC;AAKzD,eAAO,MAAM,IAAI;;;;;;;CAOP,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,eAAe,qBAAkC,CAAC;AAE/D,mDAAmD;AACnD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO7C,CAAC;AAKF,6CAA6C;AAC7C,gEAAgE;AAChE;qEACqE;AAErE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwCjD,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKlD,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOlD,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC"}
@@ -133,3 +133,4 @@ export const FKEY_BYTE_TO_NAME = {};
133
133
  for (const [name, seq] of Object.entries(FKEY_SEQUENCES)) {
134
134
  FKEY_BYTE_TO_NAME[seq[1]] = name;
135
135
  }
136
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/hp6530/constants.ts"],"names":[],"mappings":"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"}
@@ -35,3 +35,4 @@ export declare class HP6530Encoder {
35
35
  */
36
36
  insertText(text: string): boolean;
37
37
  }
38
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/hp6530/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAIhC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAuChD;;;;;;OAMG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CA0BlC"}
@@ -87,3 +87,4 @@ export class HP6530Encoder {
87
87
  return true;
88
88
  }
89
89
  }
90
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/hp6530/encoder.ts"],"names":[],"mappings":"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"}
@@ -43,3 +43,4 @@ export declare class HP6530Parser {
43
43
  /** Handle tab: move to next unprotected field or next tab stop */
44
44
  private handleTab;
45
45
  }
46
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/hp6530/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAuB;IAEpC,sDAAsD;IACtD,OAAO,CAAC,SAAS,CAAc;gBAEnB,MAAM,EAAE,YAAY;IAIhC;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAgB5B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAwBnB,qCAAqC;IACrC,OAAO,CAAC,aAAa;IA8DrB,+BAA+B;IAC/B,OAAO,CAAC,UAAU;IAyClB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA2BlB,iCAAiC;IACjC,OAAO,CAAC,UAAU;IAWlB,oDAAoD;IACpD,OAAO,CAAC,WAAW;IAMnB,oDAAoD;IACpD,OAAO,CAAC,oBAAoB;IAS5B,0CAA0C;IAC1C,OAAO,CAAC,kBAAkB;IAyB1B,kEAAkE;IAClE,OAAO,CAAC,SAAS;CAuClB"}
@@ -1,4 +1,5 @@
1
1
  import { CTRL } from './constants.js';
2
+ const State = { NORMAL: 0, ESC: 1, CSI: 2, AMP: 3, AMP_D: 4 };
2
3
  /**
3
4
  * Parses HP 6530 escape sequences from a data stream and applies
4
5
  * them to the screen buffer.
@@ -9,7 +10,7 @@ import { CTRL } from './constants.js';
9
10
  */
10
11
  export class HP6530Parser {
11
12
  screen;
12
- state = 0 /* State.NORMAL */;
13
+ state = State.NORMAL;
13
14
  /** Accumulated numeric parameter for CSI sequences */
14
15
  csiParams = '';
15
16
  constructor(screen) {
@@ -38,18 +39,18 @@ export class HP6530Parser {
38
39
  */
39
40
  processByte(byte) {
40
41
  switch (this.state) {
41
- case 0 /* State.NORMAL */:
42
+ case State.NORMAL:
42
43
  return this.processNormal(byte);
43
- case 1 /* State.ESC */:
44
+ case State.ESC:
44
45
  return this.processEsc(byte);
45
- case 2 /* State.CSI */:
46
+ case State.CSI:
46
47
  return this.processCsi(byte);
47
- case 3 /* State.AMP */:
48
+ case State.AMP:
48
49
  return this.processAmp(byte);
49
- case 4 /* State.AMP_D */:
50
+ case State.AMP_D:
50
51
  return this.processAmpD(byte);
51
52
  default:
52
- this.state = 0 /* State.NORMAL */;
53
+ this.state = State.NORMAL;
53
54
  return false;
54
55
  }
55
56
  }
@@ -57,7 +58,7 @@ export class HP6530Parser {
57
58
  processNormal(byte) {
58
59
  // ESC starts an escape sequence
59
60
  if (byte === CTRL.ESC) {
60
- this.state = 1 /* State.ESC */;
61
+ this.state = State.ESC;
61
62
  return false;
62
63
  }
63
64
  // Control characters
@@ -107,16 +108,16 @@ export class HP6530Parser {
107
108
  }
108
109
  /** Process a byte after ESC */
109
110
  processEsc(byte) {
110
- this.state = 0 /* State.NORMAL */;
111
+ this.state = State.NORMAL;
111
112
  switch (byte) {
112
113
  // ESC [ — CSI (cursor addressing)
113
114
  case 0x5B: // '['
114
- this.state = 2 /* State.CSI */;
115
+ this.state = State.CSI;
115
116
  this.csiParams = '';
116
117
  return false;
117
118
  // ESC & — start of attribute sequence
118
119
  case 0x26: // '&'
119
- this.state = 3 /* State.AMP */;
120
+ this.state = State.AMP;
120
121
  return false;
121
122
  // ESC J — Clear to end of display
122
123
  case 0x4A: // 'J'
@@ -150,7 +151,7 @@ export class HP6530Parser {
150
151
  return false;
151
152
  }
152
153
  // Final byte determines the command
153
- this.state = 0 /* State.NORMAL */;
154
+ this.state = State.NORMAL;
154
155
  switch (byte) {
155
156
  case 0x48: // 'H' — Cursor Position (CUP)
156
157
  return this.handleCursorPosition();
@@ -167,16 +168,16 @@ export class HP6530Parser {
167
168
  /** Process a byte after ESC & */
168
169
  processAmp(byte) {
169
170
  if (byte === 0x64) { // 'd'
170
- this.state = 4 /* State.AMP_D */;
171
+ this.state = State.AMP_D;
171
172
  return false;
172
173
  }
173
174
  // Unknown ESC & X sequence
174
- this.state = 0 /* State.NORMAL */;
175
+ this.state = State.NORMAL;
175
176
  return false;
176
177
  }
177
178
  /** Process the attribute code byte after ESC & d */
178
179
  processAmpD(byte) {
179
- this.state = 0 /* State.NORMAL */;
180
+ this.state = State.NORMAL;
180
181
  this.screen.setAttrFromCode(byte);
181
182
  return true;
182
183
  }
@@ -253,3 +254,4 @@ export class HP6530Parser {
253
254
  }
254
255
  }
255
256
  }
257
+ //# sourceMappingURL=parser.js.map