devportal-tunnel 1.0.1 → 1.0.3

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.
@@ -12,113 +12,357 @@ class TunnelClient extends events_1.EventEmitter {
12
12
  constructor(config) {
13
13
  super();
14
14
  this.ws = null;
15
+ /**
16
+ * Local application WebSocket connections.
17
+ *
18
+ * wsId = browser WebSocket ID generated by the server.
19
+ */
20
+ this.localWebSockets = new Map();
15
21
  this.reconnectAttempts = 0;
16
- this.maxReconnectAttempts = 5;
17
- this.reconnectDelay = 1000;
22
+ this.maxReconnectAttempts = 10;
23
+ this.baseReconnectDelay = 1000;
18
24
  this.isConnected = false;
19
25
  this.tunnelInfo = null;
26
+ this.pingInterval = null;
27
+ this.isReconnecting = false;
28
+ this.shouldReconnect = true;
20
29
  this.config = config;
21
30
  }
22
31
  async connect() {
23
32
  return new Promise((resolve, reject) => {
24
- try {
25
- this.ws = new ws_1.default(this.config.wsUrl);
26
- this.ws.on('open', () => {
27
- this.isConnected = true;
28
- this.reconnectAttempts = 0;
29
- // Register tunnel
30
- this.send({
31
- type: 'register',
32
- deviceId: this.config.deviceId,
33
- localPort: this.config.localPort,
34
- subdomain: this.config.subdomain,
35
- password: this.config.password,
36
- demo: this.config.demo,
37
- });
38
- });
39
- this.ws.on('message', async (data) => {
40
- try {
41
- const message = JSON.parse(data.toString());
42
- await this.handleMessage(message, resolve, reject);
43
- }
44
- catch (error) {
45
- console.error('Failed to parse message:', error);
46
- }
47
- });
48
- this.ws.on('close', () => {
49
- this.isConnected = false;
50
- this.emit('disconnected');
51
- if (this.reconnectAttempts < this.maxReconnectAttempts) {
52
- this.reconnectAttempts++;
53
- console.log(chalk_1.default.yellow(`Reconnecting... (attempt ${this.reconnectAttempts})`));
54
- setTimeout(() => this.connect(), this.reconnectDelay * this.reconnectAttempts);
55
- }
56
- });
57
- this.ws.on('error', (error) => {
58
- if (!this.isConnected) {
59
- reject(error);
60
- }
61
- this.emit('error', error);
62
- });
63
- // Ping to keep connection alive
64
- const pingInterval = setInterval(() => {
65
- if (this.isConnected && this.ws?.readyState === ws_1.default.OPEN) {
66
- this.send({ type: 'ping' });
67
- }
68
- }, 30000);
69
- this.on('disconnected', () => clearInterval(pingInterval));
33
+ this.setupWebSocket(resolve, reject);
34
+ });
35
+ }
36
+ setupWebSocket(resolve, reject) {
37
+ try {
38
+ // Clean up existing control connection
39
+ if (this.ws) {
40
+ this.ws.removeAllListeners();
41
+ if (this.ws.readyState === ws_1.default.OPEN ||
42
+ this.ws.readyState === ws_1.default.CONNECTING) {
43
+ this.ws.close();
44
+ }
70
45
  }
71
- catch (error) {
46
+ this.ws = new ws_1.default(this.config.wsUrl);
47
+ const ws = this.ws;
48
+ ws.on("open", () => {
49
+ this.isConnected = true;
50
+ this.isReconnecting = false;
51
+ this.reconnectAttempts = 0;
52
+ this.send({
53
+ type: "register",
54
+ deviceId: this.config.deviceId,
55
+ localPort: this.config.localPort,
56
+ remotePort: this.config.remotePort,
57
+ subdomain: this.tunnelInfo?.name || this.config.subdomain,
58
+ password: this.config.password,
59
+ demo: this.config.demo,
60
+ });
61
+ this.startPingInterval();
62
+ });
63
+ ws.on("message", async (data) => {
64
+ try {
65
+ const message = JSON.parse(data.toString());
66
+ await this.handleMessage(message, resolve, reject);
67
+ }
68
+ catch (error) {
69
+ console.error("Failed to parse server message:", error);
70
+ }
71
+ });
72
+ ws.on("close", () => {
73
+ this.isConnected = false;
74
+ this.stopPingInterval();
75
+ this.closeAllLocalWebSockets();
76
+ if (!this.shouldReconnect) {
77
+ this.emit("disconnected");
78
+ return;
79
+ }
80
+ if (this.reconnectAttempts < this.maxReconnectAttempts) {
81
+ this.scheduleReconnect();
82
+ }
83
+ else {
84
+ console.log(chalk_1.default.red("\nMax reconnection attempts reached. Tunnel stopped."));
85
+ console.log(chalk_1.default.gray("Run the command again to start a new tunnel."));
86
+ this.emit("disconnected");
87
+ process.exit(1);
88
+ }
89
+ });
90
+ ws.on("error", (error) => {
91
+ if (!this.isConnected && !this.isReconnecting && reject) {
92
+ reject(error);
93
+ }
94
+ this.emit("error", error);
95
+ });
96
+ }
97
+ catch (error) {
98
+ if (reject) {
72
99
  reject(error);
73
100
  }
74
- });
101
+ }
102
+ }
103
+ scheduleReconnect() {
104
+ if (this.isReconnecting) {
105
+ return;
106
+ }
107
+ this.isReconnecting = true;
108
+ this.reconnectAttempts++;
109
+ const delay = Math.min(this.baseReconnectDelay * Math.pow(2, this.reconnectAttempts - 1) +
110
+ Math.random() * 1000, 30000);
111
+ console.log(chalk_1.default.yellow(`\nConnection lost. Reconnecting in ${Math.round(delay / 1000)}s... (attempt ${this.reconnectAttempts}/${this.maxReconnectAttempts})`));
112
+ setTimeout(() => {
113
+ this.emit("reconnecting", this.reconnectAttempts);
114
+ this.setupWebSocket();
115
+ }, delay);
116
+ }
117
+ startPingInterval() {
118
+ this.stopPingInterval();
119
+ this.pingInterval = setInterval(() => {
120
+ if (this.isConnected && this.ws?.readyState === ws_1.default.OPEN) {
121
+ this.send({
122
+ type: "ping",
123
+ });
124
+ }
125
+ }, 15000);
126
+ }
127
+ stopPingInterval() {
128
+ if (this.pingInterval) {
129
+ clearInterval(this.pingInterval);
130
+ this.pingInterval = null;
131
+ }
75
132
  }
76
133
  async handleMessage(message, resolve, reject) {
77
134
  switch (message.type) {
78
- case 'registered':
135
+ case "registered": {
136
+ const wasReconnect = this.tunnelInfo !== null;
79
137
  this.tunnelInfo = message.tunnel;
80
- this.emit('registered', message.tunnel);
81
- resolve(message.tunnel);
138
+ this.emit("registered", message.tunnel);
139
+ if (wasReconnect) {
140
+ console.log(chalk_1.default.green(`\nReconnected! Tunnel restored: ${message.tunnel.url}`));
141
+ this.emit("reconnected", message.tunnel);
142
+ }
143
+ else if (resolve) {
144
+ resolve(message.tunnel);
145
+ }
82
146
  break;
83
- case 'request':
147
+ }
148
+ case "request": {
84
149
  await this.handleIncomingRequest(message);
85
150
  break;
86
- case 'error':
87
- console.error(chalk_1.default.red('Server error:'), message.message);
88
- reject(new Error(message.message));
151
+ }
152
+ case "ws-open": {
153
+ this.handleWebSocketOpen(message);
154
+ break;
155
+ }
156
+ case "ws-message": {
157
+ this.handleWebSocketMessage(message);
158
+ break;
159
+ }
160
+ case "ws-close": {
161
+ this.handleWebSocketClose(message);
162
+ break;
163
+ }
164
+ case "error": {
165
+ console.error(chalk_1.default.red("Server error:"), message.message);
166
+ if (reject) {
167
+ reject(new Error(message.message));
168
+ }
89
169
  break;
90
- case 'pong':
91
- // Connection alive
170
+ }
171
+ case "pong": {
92
172
  break;
93
- case 'stopped':
94
- this.emit('stopped', message.tunnelId);
173
+ }
174
+ case "stopped": {
175
+ this.emit("stopped", message.tunnelId);
95
176
  break;
177
+ }
178
+ default: {
179
+ console.warn("Unknown server message:", message.type);
180
+ }
96
181
  }
97
182
  }
183
+ /**
184
+ * Browser -> Server -> CLI
185
+ *
186
+ * Server tells CLI to create a local WebSocket.
187
+ */
188
+ handleWebSocketOpen(message) {
189
+ const { wsId, path, headers } = message;
190
+ if (!wsId) {
191
+ return;
192
+ }
193
+ const safePath = path && path !== "undefined" ? path : "/";
194
+ const localUrl = `ws://localhost:${this.config.localPort}${safePath}`;
195
+ console.log(chalk_1.default.gray(`WebSocket opening: ${localUrl}`));
196
+ const localHeaders = {
197
+ host: `localhost:${this.config.localPort}`,
198
+ };
199
+ // Forward useful headers but remove proxy-specific ones.
200
+ // Extract WebSocket subprotocols separately.
201
+ const protocols = [];
202
+ const protocolHeader = Object.entries(headers || {}).find(([key]) => key.toLowerCase() === "sec-websocket-protocol")?.[1];
203
+ if (typeof protocolHeader === "string") {
204
+ protocols.push(...protocolHeader
205
+ .split(",")
206
+ .map((p) => p.trim())
207
+ .filter(Boolean));
208
+ }
209
+ else if (Array.isArray(protocolHeader)) {
210
+ protocols.push(...protocolHeader.flatMap((p) => p
211
+ .split(",")
212
+ .map((v) => v.trim())
213
+ .filter(Boolean)));
214
+ }
215
+ // Forward useful headers, excluding WebSocket handshake headers.
216
+ if (headers && typeof headers === "object") {
217
+ for (const [key, value] of Object.entries(headers)) {
218
+ if (typeof value === "string" &&
219
+ ![
220
+ "host",
221
+ "connection",
222
+ "upgrade",
223
+ "sec-websocket-key",
224
+ "sec-websocket-version",
225
+ "sec-websocket-extensions",
226
+ "sec-websocket-protocol",
227
+ "content-length",
228
+ "x-forwarded-host",
229
+ "x-forwarded-proto",
230
+ "x-forwarded-for",
231
+ ].includes(key.toLowerCase())) {
232
+ localHeaders[key] = value;
233
+ }
234
+ }
235
+ }
236
+ // Connect to the local application with the requested subprotocols.
237
+ const localWs = protocols.length
238
+ ? new ws_1.default(localUrl, protocols, {
239
+ headers: localHeaders,
240
+ })
241
+ : new ws_1.default(localUrl, {
242
+ headers: localHeaders,
243
+ });
244
+ this.localWebSockets.set(wsId, localWs);
245
+ localWs.on("open", () => {
246
+ console.log(chalk_1.default.gray(`WebSocket connected locally: ${wsId}`));
247
+ this.send({
248
+ type: "ws-opened",
249
+ wsId,
250
+ });
251
+ });
252
+ localWs.on("message", (data, isBinary) => {
253
+ this.send({
254
+ type: "ws-message",
255
+ wsId,
256
+ data: Buffer.from(data).toString("base64"),
257
+ binary: isBinary,
258
+ });
259
+ });
260
+ localWs.on("close", () => {
261
+ this.localWebSockets.delete(wsId);
262
+ this.send({
263
+ type: "ws-close",
264
+ wsId,
265
+ });
266
+ });
267
+ localWs.on("error", (error) => {
268
+ console.error(chalk_1.default.red(`Local WebSocket error (${wsId}):`), error.message);
269
+ this.localWebSockets.delete(wsId);
270
+ this.send({
271
+ type: "ws-error",
272
+ wsId,
273
+ message: error.message,
274
+ });
275
+ });
276
+ }
277
+ /**
278
+ * Browser -> Server -> CLI -> Local app
279
+ */
280
+ handleWebSocketMessage(message) {
281
+ const { wsId, data, binary } = message;
282
+ const localWs = this.localWebSockets.get(wsId);
283
+ if (!localWs || localWs.readyState !== ws_1.default.OPEN) {
284
+ return;
285
+ }
286
+ try {
287
+ const payload = Buffer.from(data, "base64");
288
+ if (binary) {
289
+ localWs.send(payload);
290
+ }
291
+ else {
292
+ localWs.send(payload.toString("utf8"));
293
+ }
294
+ }
295
+ catch (error) {
296
+ console.error("Failed to forward WebSocket message:", error);
297
+ }
298
+ }
299
+ /**
300
+ * Browser -> Server -> CLI
301
+ *
302
+ * Close local WebSocket.
303
+ */
304
+ handleWebSocketClose(message) {
305
+ const { wsId } = message;
306
+ const localWs = this.localWebSockets.get(wsId);
307
+ if (!localWs) {
308
+ return;
309
+ }
310
+ this.localWebSockets.delete(wsId);
311
+ if (localWs.readyState === ws_1.default.OPEN ||
312
+ localWs.readyState === ws_1.default.CONNECTING) {
313
+ localWs.close();
314
+ }
315
+ }
316
+ closeAllLocalWebSockets() {
317
+ for (const localWs of this.localWebSockets.values()) {
318
+ if (localWs.readyState === ws_1.default.OPEN ||
319
+ localWs.readyState === ws_1.default.CONNECTING) {
320
+ localWs.close();
321
+ }
322
+ }
323
+ this.localWebSockets.clear();
324
+ }
98
325
  async handleIncomingRequest(message) {
99
- const { requestId, method, path, headers, query, body } = message;
100
- // Log the request
101
- this.emit('request', { method, path, requestId });
102
- // Build URL with query params
103
- let url = `http://localhost:${this.config.localPort}${path}`;
104
- if (query && Object.keys(query).length > 0) {
105
- const params = new URLSearchParams(query);
106
- url += `?${params.toString()}`;
107
- }
108
- // Add auth header if configured
109
- const requestHeaders = { ...headers };
326
+ const { requestId, method, path, headers, body } = message;
327
+ this.emit("request", {
328
+ method,
329
+ path,
330
+ requestId,
331
+ });
332
+ const safePath = path && path !== "undefined" ? path : "/";
333
+ const url = `http://localhost:${this.config.localPort}${safePath}`;
334
+ const requestHeaders = {
335
+ ...headers,
336
+ host: `localhost:${this.config.localPort}`,
337
+ };
338
+ delete requestHeaders["content-length"];
339
+ delete requestHeaders["transfer-encoding"];
340
+ delete requestHeaders["connection"];
341
+ delete requestHeaders["sec-fetch-site"];
342
+ delete requestHeaders["sec-fetch-mode"];
343
+ delete requestHeaders["sec-fetch-dest"];
344
+ delete requestHeaders["sec-fetch-user"];
345
+ delete requestHeaders["origin"];
346
+ delete requestHeaders["referer"];
347
+ delete requestHeaders["x-forwarded-host"];
348
+ delete requestHeaders["x-forwarded-proto"];
349
+ delete requestHeaders["x-forwarded-for"];
110
350
  if (this.config.authHeader) {
111
- const [key, value] = this.config.authHeader.split(': ');
351
+ const [key, value] = this.config.authHeader.split(": ");
112
352
  if (key && value) {
113
353
  requestHeaders[key] = value;
114
354
  }
115
355
  }
116
356
  try {
117
357
  const response = await this.makeLocalRequest(method, url, requestHeaders, body);
118
- this.emit('response', { method, path, status: response.status, requestId });
119
- // Send response back to server
358
+ this.emit("response", {
359
+ method,
360
+ path,
361
+ status: response.status,
362
+ requestId,
363
+ });
120
364
  this.send({
121
- type: 'response',
365
+ type: "response",
122
366
  requestId,
123
367
  status: response.status,
124
368
  headers: response.headers,
@@ -126,14 +370,18 @@ class TunnelClient extends events_1.EventEmitter {
126
370
  });
127
371
  }
128
372
  catch (error) {
129
- this.emit('error', error);
130
- // Send error response
373
+ this.emit("error", error);
131
374
  this.send({
132
- type: 'response',
375
+ type: "response",
133
376
  requestId,
134
377
  status: 502,
135
- headers: { 'content-type': 'application/json' },
136
- body: JSON.stringify({ error: 'Failed to connect to local server', message: error.message }),
378
+ headers: {
379
+ "content-type": "application/json",
380
+ },
381
+ body: JSON.stringify({
382
+ error: "Failed to connect to local server",
383
+ message: error.message,
384
+ }),
137
385
  });
138
386
  }
139
387
  }
@@ -142,7 +390,7 @@ class TunnelClient extends events_1.EventEmitter {
142
390
  const urlObj = new URL(url);
143
391
  const options = {
144
392
  hostname: urlObj.hostname,
145
- port: urlObj.port || 80,
393
+ port: Number(urlObj.port) || this.config.localPort,
146
394
  path: urlObj.pathname + urlObj.search,
147
395
  method,
148
396
  headers,
@@ -150,29 +398,34 @@ class TunnelClient extends events_1.EventEmitter {
150
398
  };
151
399
  const req = http_1.default.request(options, (res) => {
152
400
  const chunks = [];
153
- res.on('data', (chunk) => chunks.push(chunk));
154
- res.on('end', () => {
401
+ res.on("data", (chunk) => {
402
+ chunks.push(chunk);
403
+ });
404
+ res.on("end", () => {
155
405
  const bodyBuffer = Buffer.concat(chunks);
156
406
  const responseHeaders = {};
157
- // Convert headers
158
407
  for (const [key, value] of Object.entries(res.headers)) {
159
408
  if (value) {
160
- responseHeaders[key] = Array.isArray(value) ? value.join(', ') : value;
409
+ responseHeaders[key] = Array.isArray(value)
410
+ ? value.join(", ")
411
+ : value;
161
412
  }
162
413
  }
163
- // Check if body is binary
164
- const contentType = responseHeaders['content-type'] || '';
165
- const isBinary = !contentType.includes('text') &&
166
- !contentType.includes('json') &&
167
- !contentType.includes('xml') &&
168
- !contentType.includes('javascript');
414
+ delete responseHeaders["content-length"];
415
+ delete responseHeaders["transfer-encoding"];
416
+ delete responseHeaders["connection"];
417
+ const contentType = responseHeaders["content-type"] || "";
418
+ const isBinary = !contentType.includes("text") &&
419
+ !contentType.includes("json") &&
420
+ !contentType.includes("xml") &&
421
+ !contentType.includes("javascript");
169
422
  let bodyString;
170
423
  if (isBinary) {
171
- bodyString = bodyBuffer.toString('base64');
172
- responseHeaders['x-body-encoding'] = 'base64';
424
+ bodyString = bodyBuffer.toString("base64");
425
+ responseHeaders["x-body-encoding"] = "base64";
173
426
  }
174
427
  else {
175
- bodyString = bodyBuffer.toString('utf-8');
428
+ bodyString = bodyBuffer.toString("utf-8");
176
429
  }
177
430
  resolve({
178
431
  status: res.statusCode || 500,
@@ -181,13 +434,16 @@ class TunnelClient extends events_1.EventEmitter {
181
434
  });
182
435
  });
183
436
  });
184
- req.on('error', reject);
185
- req.on('timeout', () => reject(new Error('Request timeout')));
437
+ req.on("error", reject);
438
+ req.on("timeout", () => {
439
+ req.destroy();
440
+ reject(new Error("Request timeout"));
441
+ });
186
442
  if (body) {
187
- // Decode base64 body if it was encoded
188
- const bodyBuffer = body.startsWith('ey') || body.includes('=')
189
- ? Buffer.from(body, 'base64')
190
- : Buffer.from(body);
443
+ const bodyEncoding = headers?.["x-body-encoding"];
444
+ const bodyBuffer = bodyEncoding === "base64"
445
+ ? Buffer.from(body, "base64")
446
+ : Buffer.from(body, "utf-8");
191
447
  req.write(bodyBuffer);
192
448
  }
193
449
  req.end();
@@ -198,11 +454,29 @@ class TunnelClient extends events_1.EventEmitter {
198
454
  this.ws.send(JSON.stringify(data));
199
455
  }
200
456
  }
201
- stop() {
457
+ async stop() {
458
+ this.shouldReconnect = false;
459
+ this.stopPingInterval();
460
+ this.closeAllLocalWebSockets();
202
461
  if (this.tunnelInfo) {
203
- this.send({ type: 'stop', tunnelId: this.tunnelInfo.id });
462
+ this.send({
463
+ type: "stop",
464
+ tunnelId: this.tunnelInfo.id,
465
+ });
204
466
  }
205
- this.ws?.close();
467
+ return new Promise((resolve) => {
468
+ if (this.ws?.readyState === ws_1.default.OPEN) {
469
+ const timeout = setTimeout(() => resolve(), 500);
470
+ this.ws.once("close", () => {
471
+ clearTimeout(timeout);
472
+ resolve();
473
+ });
474
+ this.ws.close();
475
+ }
476
+ else {
477
+ resolve();
478
+ }
479
+ });
206
480
  }
207
481
  getTunnelInfo() {
208
482
  return this.tunnelInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"tunnelClient.js","sourceRoot":"","sources":["../../src/utils/tunnelClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnelClient.js","sourceRoot":"","sources":["../../src/utils/tunnelClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "devportal-tunnel",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Expose your localhost to the internet with a single command",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
- "devportal": "./dist/index.js",
8
- "devportal-tunnel": "./dist/index.js"
7
+ "devportal": "dist/index.js",
8
+ "devportal-tunnel": "dist/index.js"
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
@@ -27,13 +27,13 @@
27
27
  "dependencies": {
28
28
  "chalk": "^4.1.2",
29
29
  "commander": "^11.1.0",
30
- "ora": "^5.4.1",
30
+ "ora": "^6.3.1",
31
31
  "qrcode-terminal": "^0.12.0",
32
32
  "ws": "^8.16.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^20.10.0",
36
- "@types/ws": "^8.5.10",
36
+ "@types/ws": "^8.18.2",
37
37
  "ts-node": "^10.9.2",
38
38
  "typescript": "^5.3.0"
39
39
  },