@hooklink/cli 0.1.51 → 0.1.53

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.
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,eAAO,MAAM,cAAc,SAudvB,CAAC"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,eAAO,MAAM,cAAc,SAmevB,CAAC"}
@@ -67,7 +67,6 @@ exports.connectCommand = new commander_1.Command('connect')
67
67
  .option('-t, --target <url>', 'Override local target URL (uses endpoint\'s configured URL by default)')
68
68
  .option('-p, --port <port>', 'Override local port (alternative to --target)', parseInt)
69
69
  .option('--echo', 'Echo mode: respond to webhooks with a JSON echo instead of forwarding')
70
- .option('--connections <count>', 'Number of parallel WebSocket connections for tunnel endpoints (default: 4, max: 8)', parseInt)
71
70
  .action(async (endpointKeyword, options) => {
72
71
  // Check authentication
73
72
  let apiKey = config_1.config.get('apiKey');
@@ -290,13 +289,74 @@ exports.connectCommand = new commander_1.Command('connect')
290
289
  const maxKeywordLen = Math.max(...selectedEndpoints.map((ep) => ep.keyword.length));
291
290
  // Build endpoint lookup by ID
292
291
  const endpointById = new Map(selectedEndpoints.map((ep) => [ep.id, ep]));
293
- // Determine if we should use multiple WS connections (tunnel parallelism)
294
- const hasTunnelEndpoints = selectedEndpoints.some((ep) => ep.endpoint_type === 'tunnel');
295
- const connectionCount = hasTunnelEndpoints && !echoMode
296
- ? Math.min(8, Math.max(1, options.connections || 4))
297
- : 1;
298
- // Build request handler (shared across all WS clients)
299
- const onRequest = async (request) => {
292
+ // Determine if any endpoint is a tunnel (enables streaming + connection pooling)
293
+ const hasTunnelEndpoint = selectedEndpoints.some((ep) => ep.endpoint_type === 'tunnel');
294
+ // Build streaming request handler for tunnel endpoints
295
+ const onStreamingRequest = hasTunnelEndpoint
296
+ ? async (request, callbacks) => {
297
+ const ep = request.endpointId
298
+ ? endpointById.get(request.endpointId)
299
+ : selectedEndpoints[0];
300
+ const keyword = ep?.keyword || 'unknown';
301
+ if (forwarderMap) {
302
+ const forwarder = request.endpointId ? forwarderMap.get(request.endpointId) : null;
303
+ if (forwarder) {
304
+ await forwarder.forwardStreaming(request, {
305
+ ...callbacks,
306
+ onEnd: (responseTime) => {
307
+ logger_1.Logger.tunnelRequest(keyword, request.method, request.path, 200, maxKeywordLen);
308
+ callbacks.onEnd(responseTime);
309
+ },
310
+ });
311
+ return;
312
+ }
313
+ }
314
+ if (singleForwarder && singleForwarder instanceof http_forwarder_1.HttpForwarder) {
315
+ await singleForwarder.forwardStreaming(request, {
316
+ ...callbacks,
317
+ onEnd: (responseTime) => {
318
+ logger_1.Logger.tunnelRequest(keyword, request.method, request.path, 200, maxKeywordLen);
319
+ callbacks.onEnd(responseTime);
320
+ },
321
+ });
322
+ return;
323
+ }
324
+ throw new Error('No forwarder available for streaming');
325
+ }
326
+ : undefined;
327
+ // Create WebSocket client (use pool for tunnel endpoints, single connection for webhooks)
328
+ const wsUrl = config_1.config.get('wsUrl');
329
+ logger_1.Logger.info(`Connecting to ${chalk_1.default.cyan(wsUrl)}...`);
330
+ if (hasTunnelEndpoint) {
331
+ logger_1.Logger.info(`Tunnel mode: using ${chalk_1.default.cyan('4')} parallel WebSocket connections`);
332
+ }
333
+ const wsClient = hasTunnelEndpoint
334
+ ? new websocket_client_1.WebSocketPool({
335
+ wsUrl,
336
+ apiKey: apiKey,
337
+ poolSize: 4,
338
+ ...(isMultiTarget
339
+ ? { endpointIds: selectedEndpoints.map((ep) => ep.id) }
340
+ : { endpointId: selectedEndpoints[0].id }),
341
+ onRequest: async (request) => {
342
+ // Fallback buffered path (used for text/html that needs URL rewriting)
343
+ return handleBufferedRequest(request);
344
+ },
345
+ onStreamingRequest,
346
+ })
347
+ : new websocket_client_1.WebSocketClient({
348
+ wsUrl,
349
+ apiKey: apiKey,
350
+ ...(isMultiTarget
351
+ ? { endpointIds: selectedEndpoints.map((ep) => ep.id) }
352
+ : { endpointId: selectedEndpoints[0].id }),
353
+ onRequest: async (request) => {
354
+ return handleBufferedRequest(request);
355
+ },
356
+ });
357
+ // Buffered request handler (shared between pool and single client)
358
+ async function handleBufferedRequest(request) {
359
+ // Resolve endpoint for this request
300
360
  const ep = request.endpointId
301
361
  ? endpointById.get(request.endpointId)
302
362
  : selectedEndpoints[0];
@@ -312,6 +372,7 @@ exports.connectCommand = new commander_1.Command('connect')
312
372
  return response;
313
373
  }
314
374
  if (forwarderMap) {
375
+ // Multi-target: route by endpointId
315
376
  const endpointId = request.endpointId;
316
377
  const forwarder = endpointId ? forwarderMap.get(endpointId) : null;
317
378
  if (forwarder) {
@@ -324,7 +385,8 @@ exports.connectCommand = new commander_1.Command('connect')
324
385
  const response = await forwarder.forward(request);
325
386
  const duration = Date.now() - startTime;
326
387
  if (response.statusCode === 502) {
327
- logger_1.Logger.webhookError(keyword, request.method, 'connection refused', duration, maxKeywordLen);
388
+ const errMsg = 'connection refused';
389
+ logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
328
390
  }
329
391
  else {
330
392
  logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
@@ -338,11 +400,15 @@ exports.connectCommand = new commander_1.Command('connect')
338
400
  }
339
401
  }
340
402
  else {
403
+ // Tunnel
404
+ const startTime = Date.now();
341
405
  const response = await forwarder.forward(request);
406
+ const _duration = Date.now() - startTime;
342
407
  logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
343
408
  return response;
344
409
  }
345
410
  }
411
+ // Backward compat: if no endpointId and only one endpoint, use it
346
412
  if (!endpointId && forwarderMap.size === 1) {
347
413
  logger_1.Logger.debug('No endpointId in request, using single forwarder fallback');
348
414
  const [, onlyForwarder] = [...forwarderMap.entries()][0];
@@ -359,6 +425,7 @@ exports.connectCommand = new commander_1.Command('connect')
359
425
  }
360
426
  return response;
361
427
  }
428
+ // Find keyword for logging
362
429
  const epKeyword = endpointId
363
430
  ? selectedEndpoints.find((e) => e.id === endpointId)?.keyword
364
431
  : undefined;
@@ -373,7 +440,8 @@ exports.connectCommand = new commander_1.Command('connect')
373
440
  const response = await singleForwarder.forward(request);
374
441
  const duration = Date.now() - startTime;
375
442
  if (response.statusCode === 502) {
376
- logger_1.Logger.webhookError(keyword, request.method, 'connection refused', duration, maxKeywordLen);
443
+ const errMsg = 'connection refused';
444
+ logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
377
445
  }
378
446
  else {
379
447
  logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
@@ -387,115 +455,54 @@ exports.connectCommand = new commander_1.Command('connect')
387
455
  }
388
456
  }
389
457
  else {
458
+ // Tunnel single endpoint
459
+ const startTime = Date.now();
390
460
  const response = await singleForwarder.forward(request);
461
+ const _duration = Date.now() - startTime;
391
462
  logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
392
463
  return response;
393
464
  }
394
- };
395
- // Build streaming handler for tunnel endpoints
396
- const onRequestStreaming = hasTunnelEndpoints && !echoMode
397
- ? async (request, callbacks) => {
398
- const ep = request.endpointId
399
- ? endpointById.get(request.endpointId)
400
- : selectedEndpoints[0];
401
- const keyword = ep?.keyword || 'unknown';
402
- const isWebhook = !ep || ep.endpoint_type === 'webhook';
403
- // Only stream tunnel requests; webhooks use buffered path
404
- if (isWebhook) {
405
- const response = await onRequest(request);
406
- const body = response.bodyEncoding === 'base64'
407
- ? Buffer.from(response.body || '', 'base64')
408
- : Buffer.from(response.body || '', 'utf8');
409
- const flatHeaders = {};
410
- for (const [k, v] of Object.entries(response.headers)) {
411
- flatHeaders[k] = Array.isArray(v) ? v.join(', ') : v;
412
- }
413
- callbacks.onHeader(response.statusCode, flatHeaders);
414
- callbacks.onChunk(body, true);
415
- return;
416
- }
417
- // Tunnel streaming
418
- const forwarder = forwarderMap
419
- ? (request.endpointId ? forwarderMap.get(request.endpointId) : null) || (forwarderMap.size === 1 ? [...forwarderMap.values()][0] : null)
420
- : singleForwarder;
421
- if (!forwarder || !(forwarder instanceof http_forwarder_1.HttpForwarder)) {
422
- throw new Error('No forwarder available for streaming');
423
- }
424
- let statusCode = 200;
425
- await forwarder.forwardStreaming(request, {
426
- onHeader: (sc, headers) => {
427
- statusCode = sc;
428
- callbacks.onHeader(sc, headers);
429
- },
430
- onChunk: callbacks.onChunk,
431
- });
432
- logger_1.Logger.tunnelRequest(keyword, request.method, request.path, statusCode, maxKeywordLen);
433
- }
434
- : undefined;
435
- // Create WebSocket client(s)
436
- const wsUrl = config_1.config.get('wsUrl');
437
- const wsClients = [];
438
- const endpointIdConfig = isMultiTarget
439
- ? { endpointIds: selectedEndpoints.map((ep) => ep.id) }
440
- : { endpointId: selectedEndpoints[0].id };
441
- if (connectionCount > 1) {
442
- logger_1.Logger.info(`Opening ${chalk_1.default.cyan(String(connectionCount))} parallel connections to ${chalk_1.default.cyan(wsUrl)}...`);
443
- }
444
- else {
445
- logger_1.Logger.info(`Connecting to ${chalk_1.default.cyan(wsUrl)}...`);
446
- }
447
- for (let i = 0; i < connectionCount; i++) {
448
- const wsClient = new websocket_client_1.WebSocketClient({
449
- wsUrl,
450
- apiKey: apiKey,
451
- ...endpointIdConfig,
452
- onRequest,
453
- onRequestStreaming,
454
- });
455
- // Only the first client emits user-facing events
456
- if (i === 0) {
457
- wsClient.on('connected', () => {
458
- logger_1.Logger.success(connectionCount > 1
459
- ? `WebSocket connected (${connectionCount} connections)`
460
- : 'WebSocket connected');
461
- });
462
- wsClient.on('reconnected', () => logger_1.Logger.success('WebSocket reconnected'));
463
- wsClient.on('disconnected', () => logger_1.Logger.warning('WebSocket disconnected'));
464
- wsClient.on('error', (error) => {
465
- (0, sentry_1.captureException)(error);
466
- logger_1.Logger.error(`WebSocket error: ${error instanceof Error ? error.message : 'Unknown error'}`);
467
- });
468
- wsClient.on('reconnect_exhausted', () => {
469
- logger_1.Logger.error('All reconnect attempts failed. Process will exit.');
470
- process.exit(1);
471
- });
472
- wsClient.on('fatal_close', (code) => {
473
- const messages = {
474
- 4001: 'Authentication failed. Check your API key with: hooklink login',
475
- 4002: 'Trial session expired.',
476
- 4003: 'Connection limit reached or no active endpoints. Check your plan and endpoints.',
477
- };
478
- logger_1.Logger.error(messages[code] || `Connection rejected by server (code ${code})`);
479
- process.exit(1);
480
- });
481
- }
482
- wsClients.push(wsClient);
483
465
  }
466
+ // Handle events
467
+ wsClient.on('connected', () => {
468
+ logger_1.Logger.success('WebSocket connected');
469
+ });
470
+ wsClient.on('reconnected', () => {
471
+ logger_1.Logger.success('WebSocket reconnected');
472
+ });
473
+ wsClient.on('disconnected', () => {
474
+ logger_1.Logger.warning('WebSocket disconnected');
475
+ });
476
+ wsClient.on('error', (error) => {
477
+ (0, sentry_1.captureException)(error);
478
+ logger_1.Logger.error(`WebSocket error: ${error instanceof Error ? error.message : 'Unknown error'}`);
479
+ });
480
+ wsClient.on('reconnect_exhausted', () => {
481
+ logger_1.Logger.error('All reconnect attempts failed. Process will exit.');
482
+ process.exit(1);
483
+ });
484
+ wsClient.on('fatal_close', (code) => {
485
+ const messages = {
486
+ 4001: 'Authentication failed. Check your API key with: hooklink login',
487
+ 4002: 'Trial session expired.',
488
+ 4003: 'Connection limit reached or no active endpoints. Check your plan and endpoints.',
489
+ };
490
+ logger_1.Logger.error(messages[code] || `Connection rejected by server (code ${code})`);
491
+ process.exit(1);
492
+ });
484
493
  // Handle graceful shutdown
485
494
  process.on('SIGINT', () => {
486
495
  logger_1.Logger.log('');
487
496
  logger_1.Logger.info('Shutting down...');
488
- for (const client of wsClients)
489
- client.disconnect();
497
+ wsClient.disconnect();
490
498
  process.exit(0);
491
499
  });
492
500
  process.on('SIGTERM', () => {
493
- for (const client of wsClients)
494
- client.disconnect();
501
+ wsClient.disconnect();
495
502
  process.exit(0);
496
503
  });
497
- // Connect all clients in parallel
498
- await Promise.all(wsClients.map((client) => client.connect()));
504
+ // Connect
505
+ await wsClient.connect();
499
506
  }
500
507
  catch (error) {
501
508
  (0, sentry_1.captureException)(error);
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { WSRequestMessage, WSResponseMessage } from '../types';
1
+ import { WSRequestMessage, WSResponseMessage, StreamCallbacks } from '../types';
2
2
  export declare class HttpForwarder {
3
3
  private targetUrl;
4
4
  private peerOriginMap;
@@ -17,13 +17,15 @@ export declare class HttpForwarder {
17
17
  private rewriteUrls;
18
18
  private rewriteUrl;
19
19
  /**
20
- * Forward a request using Node.js streams, calling callbacks as data arrives.
21
- * Used for tunnel-type endpoints to reduce TTFB.
20
+ * Stream the upstream HTTP response chunk-by-chunk via callbacks.
21
+ * Binary content and non-tunnel responses stream directly.
22
+ * Text content that needs URL rewriting falls back to the buffered forward() path.
22
23
  */
23
- forwardStreaming(request: WSRequestMessage, callbacks: {
24
- onHeader: (statusCode: number, headers: Record<string, string>) => void;
25
- onChunk: (data: Buffer, isFinal: boolean) => void;
26
- }): Promise<void>;
24
+ forwardStreaming(request: WSRequestMessage, callbacks: StreamCallbacks): Promise<void>;
25
+ /**
26
+ * Resolve the target URL from a request (shared logic between forward and forwardStreaming)
27
+ */
28
+ private resolveUrl;
27
29
  setTargetUrl(url: string): void;
28
30
  }
29
31
  //# sourceMappingURL=http-forwarder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-forwarder.d.ts","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAgE/D,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,aAAa,CAAkC;gBAE3C,SAAS,EAAE,MAAM;IAI7B;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI1C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiRpE,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,oBAAoB;IAsC5B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,UAAU;IAkClB;;;OAGG;IACG,gBAAgB,CACpB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;QACxE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;KACnD,GACA,OAAO,CAAC,IAAI,CAAC;IA4IhB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGhC"}
1
+ {"version":3,"file":"http-forwarder.d.ts","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA8DhF,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,aAAa,CAAkC;gBAE3C,SAAS,EAAE,MAAM;IAI7B;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI1C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiRpE,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,oBAAoB;IAsC5B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,UAAU;IAkClB;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyQ5F;;OAEG;IACH,OAAO,CAAC,UAAU;IAmBlB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGhC"}