@hooklink/cli 0.1.52 → 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,SAoavB,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"}
@@ -289,124 +289,180 @@ exports.connectCommand = new commander_1.Command('connect')
289
289
  const maxKeywordLen = Math.max(...selectedEndpoints.map((ep) => ep.keyword.length));
290
290
  // Build endpoint lookup by ID
291
291
  const endpointById = new Map(selectedEndpoints.map((ep) => [ep.id, ep]));
292
- // Create WebSocket client
293
- const wsUrl = config_1.config.get('wsUrl');
294
- logger_1.Logger.info(`Connecting to ${chalk_1.default.cyan(wsUrl)}...`);
295
- const wsClient = new websocket_client_1.WebSocketClient({
296
- wsUrl,
297
- apiKey: apiKey,
298
- ...(isMultiTarget
299
- ? { endpointIds: selectedEndpoints.map((ep) => ep.id) }
300
- : { endpointId: selectedEndpoints[0].id }),
301
- onRequest: async (request) => {
302
- // Resolve endpoint for this 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) => {
303
297
  const ep = request.endpointId
304
298
  ? endpointById.get(request.endpointId)
305
299
  : selectedEndpoints[0];
306
300
  const keyword = ep?.keyword || 'unknown';
307
- const isWebhook = echoMode || !ep || ep.endpoint_type === 'webhook';
308
- if (echoMode) {
309
- const msgType = detectMessageType(request);
310
- logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
311
- const startTime = Date.now();
312
- const response = await singleForwarder.respond(request);
313
- const duration = Date.now() - startTime;
314
- logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
315
- return response;
316
- }
317
301
  if (forwarderMap) {
318
- // Multi-target: route by endpointId
319
- const endpointId = request.endpointId;
320
- const forwarder = endpointId ? forwarderMap.get(endpointId) : null;
302
+ const forwarder = request.endpointId ? forwarderMap.get(request.endpointId) : null;
321
303
  if (forwarder) {
322
- logger_1.Logger.debug(`Routing to endpoint "${ep?.keyword || endpointId}" → ${request.targetUrl || ep?.local_target_url || 'unknown'}`);
323
- if (isWebhook) {
324
- const msgType = detectMessageType(request);
325
- logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
326
- const startTime = Date.now();
327
- try {
328
- const response = await forwarder.forward(request);
329
- const duration = Date.now() - startTime;
330
- if (response.statusCode === 502) {
331
- const errMsg = 'connection refused';
332
- logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
333
- }
334
- else {
335
- logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
336
- }
337
- return response;
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
360
+ const ep = request.endpointId
361
+ ? endpointById.get(request.endpointId)
362
+ : selectedEndpoints[0];
363
+ const keyword = ep?.keyword || 'unknown';
364
+ const isWebhook = echoMode || !ep || ep.endpoint_type === 'webhook';
365
+ if (echoMode) {
366
+ const msgType = detectMessageType(request);
367
+ logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
368
+ const startTime = Date.now();
369
+ const response = await singleForwarder.respond(request);
370
+ const duration = Date.now() - startTime;
371
+ logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
372
+ return response;
373
+ }
374
+ if (forwarderMap) {
375
+ // Multi-target: route by endpointId
376
+ const endpointId = request.endpointId;
377
+ const forwarder = endpointId ? forwarderMap.get(endpointId) : null;
378
+ if (forwarder) {
379
+ logger_1.Logger.debug(`Routing to endpoint "${ep?.keyword || endpointId}" → ${request.targetUrl || ep?.local_target_url || 'unknown'}`);
380
+ if (isWebhook) {
381
+ const msgType = detectMessageType(request);
382
+ logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
383
+ const startTime = Date.now();
384
+ try {
385
+ const response = await forwarder.forward(request);
386
+ const duration = Date.now() - startTime;
387
+ if (response.statusCode === 502) {
388
+ const errMsg = 'connection refused';
389
+ logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
338
390
  }
339
- catch (err) {
340
- const duration = Date.now() - startTime;
341
- logger_1.Logger.webhookError(keyword, request.method, err instanceof Error ? err.message : 'unknown error', duration, maxKeywordLen);
342
- throw err;
391
+ else {
392
+ logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
343
393
  }
344
- }
345
- else {
346
- // Tunnel
347
- const startTime = Date.now();
348
- const response = await forwarder.forward(request);
349
- const _duration = Date.now() - startTime;
350
- logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
351
394
  return response;
352
395
  }
396
+ catch (err) {
397
+ const duration = Date.now() - startTime;
398
+ logger_1.Logger.webhookError(keyword, request.method, err instanceof Error ? err.message : 'unknown error', duration, maxKeywordLen);
399
+ throw err;
400
+ }
353
401
  }
354
- // Backward compat: if no endpointId and only one endpoint, use it
355
- if (!endpointId && forwarderMap.size === 1) {
356
- logger_1.Logger.debug('No endpointId in request, using single forwarder fallback');
357
- const [, onlyForwarder] = [...forwarderMap.entries()][0];
402
+ else {
403
+ // Tunnel
358
404
  const startTime = Date.now();
359
- const response = await onlyForwarder.forward(request);
360
- const duration = Date.now() - startTime;
361
- if (isWebhook) {
362
- const msgType = detectMessageType(request);
363
- logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
364
- logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
365
- }
366
- else {
367
- logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
368
- }
405
+ const response = await forwarder.forward(request);
406
+ const _duration = Date.now() - startTime;
407
+ logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
369
408
  return response;
370
409
  }
371
- // Find keyword for logging
372
- const epKeyword = endpointId
373
- ? selectedEndpoints.find((e) => e.id === endpointId)?.keyword
374
- : undefined;
375
- throw new Error(`No forwarder found for endpoint${epKeyword ? ` "${epKeyword}"` : ''} (endpointId: ${endpointId || 'missing'})`);
376
410
  }
377
- // Single endpoint mode
378
- if (isWebhook) {
379
- const msgType = detectMessageType(request);
380
- logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
411
+ // Backward compat: if no endpointId and only one endpoint, use it
412
+ if (!endpointId && forwarderMap.size === 1) {
413
+ logger_1.Logger.debug('No endpointId in request, using single forwarder fallback');
414
+ const [, onlyForwarder] = [...forwarderMap.entries()][0];
381
415
  const startTime = Date.now();
382
- try {
383
- const response = await singleForwarder.forward(request);
384
- const duration = Date.now() - startTime;
385
- if (response.statusCode === 502) {
386
- const errMsg = 'connection refused';
387
- logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
388
- }
389
- else {
390
- logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
391
- }
392
- return response;
416
+ const response = await onlyForwarder.forward(request);
417
+ const duration = Date.now() - startTime;
418
+ if (isWebhook) {
419
+ const msgType = detectMessageType(request);
420
+ logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
421
+ logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
393
422
  }
394
- catch (err) {
395
- const duration = Date.now() - startTime;
396
- logger_1.Logger.webhookError(keyword, request.method, err instanceof Error ? err.message : 'unknown error', duration, maxKeywordLen);
397
- throw err;
423
+ else {
424
+ logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
398
425
  }
426
+ return response;
399
427
  }
400
- else {
401
- // Tunnel single endpoint
402
- const startTime = Date.now();
428
+ // Find keyword for logging
429
+ const epKeyword = endpointId
430
+ ? selectedEndpoints.find((e) => e.id === endpointId)?.keyword
431
+ : undefined;
432
+ throw new Error(`No forwarder found for endpoint${epKeyword ? ` "${epKeyword}"` : ''} (endpointId: ${endpointId || 'missing'})`);
433
+ }
434
+ // Single endpoint mode
435
+ if (isWebhook) {
436
+ const msgType = detectMessageType(request);
437
+ logger_1.Logger.webhookIn(keyword, request.method, msgType, maxKeywordLen);
438
+ const startTime = Date.now();
439
+ try {
403
440
  const response = await singleForwarder.forward(request);
404
- const _duration = Date.now() - startTime;
405
- logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
441
+ const duration = Date.now() - startTime;
442
+ if (response.statusCode === 502) {
443
+ const errMsg = 'connection refused';
444
+ logger_1.Logger.webhookError(keyword, request.method, errMsg, duration, maxKeywordLen);
445
+ }
446
+ else {
447
+ logger_1.Logger.webhookOut(keyword, request.method, response.statusCode, duration, maxKeywordLen);
448
+ }
406
449
  return response;
407
450
  }
408
- },
409
- });
451
+ catch (err) {
452
+ const duration = Date.now() - startTime;
453
+ logger_1.Logger.webhookError(keyword, request.method, err instanceof Error ? err.message : 'unknown error', duration, maxKeywordLen);
454
+ throw err;
455
+ }
456
+ }
457
+ else {
458
+ // Tunnel single endpoint
459
+ const startTime = Date.now();
460
+ const response = await singleForwarder.forward(request);
461
+ const _duration = Date.now() - startTime;
462
+ logger_1.Logger.tunnelRequest(keyword, request.method, request.path, response.statusCode, maxKeywordLen);
463
+ return response;
464
+ }
465
+ }
410
466
  // Handle events
411
467
  wsClient.on('connected', () => {
412
468
  logger_1.Logger.success('WebSocket connected');
@@ -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":";;;;;;AAAA,yCAAoC;AACpC,8CAAsB;AACtB,wDAAgC;AAChC,4CAAyC;AACzC,sCAAmC;AACnC,4CAAyC;AACzC,+DAA0E;AAC1E,2DAAuD;AACvD,2DAAuD;AAEvD,kDAA0B;AAC1B,4CAAmD;AACnD,sEAAqC;AAErC,MAAM,mBAAmB,GAA2B;IAClD,gBAAgB,EAAE,gBAAgB;IAClC,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,iBAAiB;IACpC,aAAa,EAAE,aAAa;IAC5B,gBAAgB,EAAE,gBAAgB;CACnC,CAAC;AAEF,SAAS,iBAAiB,CAAC,OAAyB;IAClD,uCAAuC;IACvC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GACT,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GACX,OAAO,CAAC,YAAY,KAAK,QAAQ;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC9D,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACnE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,GAAG,CACT,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,EAAE,CACH,CAAC,WAAW,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAEjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAEY,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,YAAY,EAAE,gCAAgC,CAAC;KACxD,MAAM,CAAC,oBAAoB,EAAE,wEAAwE,CAAC;KACtG,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,EAAE,QAAQ,CAAC;KACtF,MAAM,CAAC,QAAQ,EAAE,uEAAuE,CAAC;KACzF,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE;IACzC,uBAAuB;IACvB,IAAI,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,kBAAkB;QAClB,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,eAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvD,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,eAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACvD,eAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACtG,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEf,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,qBAAqB,CAAC;oBAC/B,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC9B,OAAO,iDAAiD,CAAC;oBAC3D,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAExB,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpD,IAAI,CAAC;YACH,2CAA2C;YAC3C,eAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,SAAG,CAAC,YAAY,EAAE,CAAC;YAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChC,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxB,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,gBAAgB;YAChB,MAAM,IAAI,GAAG,MAAM,SAAG,CAAC,cAAc,EAAE,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,oBAAoB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnE,eAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC/C,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxB,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhC,uDAAuD;IACvD,MAAM,QAAQ,GAAG,eAAe;QAC9B,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1C,gEAAgE;IAChE,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,eAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3E,eAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oEAAoE;IACpE,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,SAAS,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,eAAM,CAAC,GAAG,CAAC,aAAa,CAAC;gBACnC,CAAC,CAAC,oBAAoB,eAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBACjD,CAAC,CAAC,uBAAuB,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,MAAM,SAAG,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAI,QAAQ,CAAC,OAAiC,EAAE,QAAQ,CAAC;QAEvE,gBAAgB;QAChB,MAAM,SAAS,GAAG,MAAM,SAAG,CAAC,YAAY,EAAE,CAAC;QAE3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,IAAI,iBAAmC,CAAC;QAExC,IAAI,aAAa,EAAE,CAAC;YAClB,kCAAkC;YAClC,iBAAiB,GAAG,EAAE,CAAC;YACvB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC;oBACpE,eAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;oBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,iBAAiB;YACjB,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9D,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,OAAO,CACb,aAAa;YACX,CAAC,CAAC,gBAAgB,iBAAiB,CAAC,MAAM,YAAY;YACtD,CAAC,CAAC,0BAA0B,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;QAEF,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrC,SAAS,GAAG,EAAE,CAAC,gBAAgB,IAAI,SAAS,CAAC;gBAC7C,eAAM,CAAC,IAAI,CAAC,mCAAmC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,IAAI,CAAC,oCAAoC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,eAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,IAAI,sBAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,QAAQ;oBACzB,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,IAAI,QAAQ,eAAe;oBAClD,CAAC,CAAC,IAAI,CAAC;gBACT,eAAM,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,UAAU,EAAE,CAAC;oBACf,eAAM,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC5D,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,eAAM,CAAC,GAAG,CAAC,qBAAqB,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,IAAI,QAAQ,eAAe;gBAClD,CAAC,CAAC,IAAI,CAAC;YACT,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxD,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,UAAU,EAAE,CAAC;gBACf,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,eAAM,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEf,wCAAwC;QACxC,IAAI,YAAY,GAAsC,IAAI,CAAC;QAC3D,IAAI,eAAe,GAAyC,IAAI,CAAC;QAEjE,IAAI,QAAQ,EAAE,CAAC;YACb,eAAe,GAAG,IAAI,8BAAa,EAAE,CAAC;QACxC,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBACnC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,8BAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,0DAA0D;YAC1D,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;oBAC1C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;wBACrC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;4BAAE,SAAS;wBAChC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;wBAC9D,MAAM,gBAAgB,GAAG,WAAW,IAAI,CAAC,OAAO,IAAI,QAAQ,eAAe,CAAC;wBAC5E,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;oBACjD,CAAC;oBACD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBACrB,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,gDAAgD;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACpD,CAAC;QAEF,8BAA8B;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3C,CAAC;QAEF,iFAAiF;QACjF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;QAExF,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,iBAAiB;YAC1C,CAAC,CAAC,KAAK,EAAE,OAAyB,EAAE,SAA0B,EAAE,EAAE;gBAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU;oBAC3B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;oBACtC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,SAAS,CAAC;gBAEzC,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnF,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE;4BACxC,GAAG,SAAS;4BACZ,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE;gCACtB,eAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;gCAChF,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BAChC,CAAC;yBACF,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,IAAI,eAAe,YAAY,8BAAa,EAAE,CAAC;oBAChE,MAAM,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBAC9C,GAAG,SAAS;wBACZ,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE;4BACtB,eAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;4BAChF,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;wBAChC,CAAC;qBACF,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,0FAA0F;QAC1F,MAAM,KAAK,GAAG,eAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACnC,eAAM,CAAC,IAAI,CAAC,iBAAiB,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,iBAAiB,EAAE,CAAC;YACtB,eAAM,CAAC,IAAI,CAAC,sBAAsB,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB;YAChC,CAAC,CAAC,IAAI,gCAAa,CAAC;gBAChB,KAAK;gBACL,MAAM,EAAE,MAAO;gBACf,QAAQ,EAAE,CAAC;gBACX,GAAG,CAAC,aAAa;oBACf,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;oBACvD,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5C,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC3B,uEAAuE;oBACvE,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;gBACD,kBAAkB;aACnB,CAAC;YACJ,CAAC,CAAC,IAAI,kCAAe,CAAC;gBAClB,KAAK;gBACL,MAAM,EAAE,MAAO;gBACf,GAAG,CAAC,aAAa;oBACf,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;oBACvD,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5C,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC3B,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;QAEP,mEAAmE;QACnE,KAAK,UAAU,qBAAqB,CAAC,OAAyB;YAC1D,oCAAoC;YACpC,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU;gBAC3B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;gBACtC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,SAAS,CAAC;YACzC,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,KAAK,SAAS,CAAC;YAEpE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC3C,eAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,MAAO,eAAiC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACzF,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,oCAAoC;gBACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACtC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnE,IAAI,SAAS,EAAE,CAAC;oBACd,eAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,OAAO,IAAI,UAAU,OAAO,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAC;oBAC/H,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;wBAC3C,eAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;wBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC7B,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;4BAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACxC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gCAChC,MAAM,MAAM,GAAG,oBAAoB,CAAC;gCACpC,eAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;4BAChF,CAAC;iCAAM,CAAC;gCACN,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;4BAC3F,CAAC;4BACD,OAAO,QAAQ,CAAC;wBAClB,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;4BACxC,eAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;4BAC5H,MAAM,GAAG,CAAC;wBACZ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,SAAS;wBACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC7B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACzC,eAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;wBAChG,OAAO,QAAQ,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,kEAAkE;gBAClE,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC3C,eAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;oBAC1E,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;wBAC3C,eAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;wBAClE,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAC3F,CAAC;yBAAM,CAAC;wBACN,eAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;oBAClG,CAAC;oBACD,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,2BAA2B;gBAC3B,MAAM,SAAS,GAAG,UAAU;oBAC1B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,OAAO;oBAC7D,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,UAAU,IAAI,SAAS,GAAG,CAAC,CAAC;YACnI,CAAC;YAED,uBAAuB;YACvB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC3C,eAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAO,eAAiC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;wBAChC,MAAM,MAAM,GAAG,oBAAoB,CAAC;wBACpC,eAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAChF,CAAC;yBAAM,CAAC;wBACN,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAC3F,CAAC;oBACD,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACxC,eAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAC5H,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,MAAO,eAAiC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACzC,eAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAChG,OAAO,QAAQ,CAAC;YAClB,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,eAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YAC9B,eAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YAC/B,eAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACpC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;YACxB,eAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACtC,eAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAA2B;gBACvC,IAAI,EAAE,gEAAgE;gBACtE,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,iFAAiF;aACxF,CAAC;YACF,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uCAAuC,IAAI,GAAG,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -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;
@@ -16,6 +16,16 @@ export declare class HttpForwarder {
16
16
  private getLocalOrigins;
17
17
  private rewriteUrls;
18
18
  private rewriteUrl;
19
+ /**
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.
23
+ */
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;
19
29
  setTargetUrl(url: string): void;
20
30
  }
21
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;AA8D/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,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"}
@@ -433,6 +433,244 @@ class HttpForwarder {
433
433
  }
434
434
  return result;
435
435
  }
436
+ /**
437
+ * Stream the upstream HTTP response chunk-by-chunk via callbacks.
438
+ * Binary content and non-tunnel responses stream directly.
439
+ * Text content that needs URL rewriting falls back to the buffered forward() path.
440
+ */
441
+ async forwardStreaming(request, callbacks) {
442
+ const startTime = Date.now();
443
+ try {
444
+ // Resolve URL (same logic as forward())
445
+ const url = this.resolveUrl(request);
446
+ // Decode request body if base64-encoded
447
+ let requestData = request.body;
448
+ if (request.bodyEncoding === 'base64' && request.body) {
449
+ requestData = Buffer.from(request.body, 'base64');
450
+ }
451
+ // Follow same-origin redirects to reach the final URL, then stream
452
+ const headers = this.filterHeaders(request.headers);
453
+ const forwardedHost = request.headers['x-forwarded-host'] ||
454
+ request.headers['X-Forwarded-Host'];
455
+ if (forwardedHost) {
456
+ headers['host'] = String(forwardedHost);
457
+ }
458
+ const needsUrlRewriting = !!forwardedHost;
459
+ const finalUrl = url.toString();
460
+ // Issue the HTTP request using Node.js native API for streaming
461
+ const parsedUrl = new URL(finalUrl);
462
+ const transport = parsedUrl.protocol === 'https:' ? https_1.default : http_1.default;
463
+ const reqOptions = {
464
+ method: request.method,
465
+ hostname: parsedUrl.hostname,
466
+ port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
467
+ path: parsedUrl.pathname + parsedUrl.search,
468
+ headers,
469
+ agent: parsedUrl.protocol === 'https:' ? httpsAgent : httpAgent,
470
+ timeout: 120000,
471
+ };
472
+ await new Promise((resolve, reject) => {
473
+ const req = transport.request(reqOptions, (res) => {
474
+ const statusCode = res.statusCode || 502;
475
+ const contentType = res.headers['content-type'];
476
+ const binary = isBinaryContentType(contentType);
477
+ // Check if we need URL rewriting (text content in tunnel mode)
478
+ // If so, buffer the response and rewrite URLs before sending
479
+ if (needsUrlRewriting && !binary && isTextContentType(contentType)) {
480
+ const chunks = [];
481
+ res.on('data', (chunk) => chunks.push(chunk));
482
+ res.on('end', async () => {
483
+ try {
484
+ const fullBody = Buffer.concat(chunks);
485
+ let bodyStr = fullBody.toString('utf8');
486
+ // Build remote origin for URL rewriting
487
+ const remoteProto = request.headers['x-forwarded-proto'] ||
488
+ request.headers['X-Forwarded-Proto'] ||
489
+ 'https';
490
+ const remoteOrigin = `${remoteProto}://${forwardedHost}`;
491
+ const effectiveBaseUrl = request.targetUrl
492
+ ? new URL(request.targetUrl).origin
493
+ : this.targetUrl;
494
+ // Rewrite URLs in body
495
+ bodyStr = this.rewriteUrls(bodyStr, remoteOrigin, effectiveBaseUrl);
496
+ // Strip CSP meta tags from HTML
497
+ if (contentType && contentType.toLowerCase().includes('text/html')) {
498
+ bodyStr = bodyStr.replace(/<meta\b[^>]*http-equiv\s*=\s*["']?\s*content-security-policy(?:-report-only)?\s*["']?[^>]*>/gi, '');
499
+ bodyStr = bodyStr.replace(/<meta\b[^>]*content\s*=\s*["'][^"']*content-security-policy[^"']*["'][^>]*>/gi, '');
500
+ bodyStr = bodyStr.replace(/\sintegrity\s*=\s*["'][^"']*["']/gi, '');
501
+ bodyStr = bodyStr.replace(/\scrossorigin\s*=\s*["'][^"']*["']/gi, '');
502
+ }
503
+ // Sanitize and rewrite response headers
504
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
505
+ delete sanitizedHeaders['content-security-policy'];
506
+ delete sanitizedHeaders['content-security-policy-report-only'];
507
+ delete sanitizedHeaders['x-frame-options'];
508
+ delete sanitizedHeaders['cross-origin-opener-policy'];
509
+ delete sanitizedHeaders['cross-origin-embedder-policy'];
510
+ delete sanitizedHeaders['cross-origin-resource-policy'];
511
+ if (typeof sanitizedHeaders['location'] === 'string') {
512
+ sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
513
+ }
514
+ if (typeof sanitizedHeaders['link'] === 'string') {
515
+ sanitizedHeaders['link'] = this.rewriteUrls(sanitizedHeaders['link'], remoteOrigin, effectiveBaseUrl);
516
+ }
517
+ if (forwardedHost && sanitizedHeaders['set-cookie']) {
518
+ sanitizedHeaders['set-cookie'] = this.rewriteCookieDomains(sanitizedHeaders['set-cookie'], String(forwardedHost), effectiveBaseUrl);
519
+ }
520
+ // Remove content-length since we may have changed the body size
521
+ delete sanitizedHeaders['content-length'];
522
+ callbacks.onStart(statusCode, sanitizedHeaders);
523
+ await callbacks.onChunk(Buffer.from(bodyStr, 'utf8'));
524
+ callbacks.onEnd(Date.now() - startTime);
525
+ resolve();
526
+ }
527
+ catch (err) {
528
+ reject(err);
529
+ }
530
+ });
531
+ res.on('error', reject);
532
+ return;
533
+ }
534
+ // Follow same-origin redirects for GET/HEAD
535
+ const location = res.headers['location'];
536
+ const isGetOrHead = request.method === 'GET' || request.method === 'HEAD';
537
+ if (isGetOrHead && location && statusCode >= 300 && statusCode < 400) {
538
+ const resolved = new URL(location, finalUrl);
539
+ const localOrigin = new URL(finalUrl).origin;
540
+ if (resolved.origin === localOrigin) {
541
+ // Follow redirect by re-issuing as streaming
542
+ res.resume(); // drain the current response
543
+ this.forwardStreaming({ ...request, targetUrl: resolved.toString() }, callbacks).then(resolve, reject);
544
+ return;
545
+ }
546
+ }
547
+ // Sanitize response headers
548
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
549
+ // Strip security headers that break tunnels
550
+ delete sanitizedHeaders['content-security-policy'];
551
+ delete sanitizedHeaders['content-security-policy-report-only'];
552
+ delete sanitizedHeaders['x-frame-options'];
553
+ delete sanitizedHeaders['cross-origin-opener-policy'];
554
+ delete sanitizedHeaders['cross-origin-embedder-policy'];
555
+ delete sanitizedHeaders['cross-origin-resource-policy'];
556
+ // Rewrite Location header for redirects
557
+ if (needsUrlRewriting && typeof sanitizedHeaders['location'] === 'string') {
558
+ const effectiveBaseUrl = request.targetUrl
559
+ ? new URL(request.targetUrl).origin
560
+ : this.targetUrl;
561
+ const remoteProto = request.headers['x-forwarded-proto'] ||
562
+ request.headers['X-Forwarded-Proto'] ||
563
+ 'https';
564
+ const remoteOrigin = `${remoteProto}://${forwardedHost}`;
565
+ sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
566
+ }
567
+ // Remove content-length since we are streaming (chunked transfer)
568
+ delete sanitizedHeaders['content-length'];
569
+ sanitizedHeaders['transfer-encoding'] = 'chunked';
570
+ // Send headers immediately
571
+ callbacks.onStart(statusCode, sanitizedHeaders);
572
+ // Stream data chunks
573
+ res.on('data', async (chunk) => {
574
+ try {
575
+ // Pause the stream while we wait for backpressure resolution
576
+ res.pause();
577
+ await callbacks.onChunk(chunk);
578
+ res.resume();
579
+ }
580
+ catch (err) {
581
+ req.destroy();
582
+ reject(err);
583
+ }
584
+ });
585
+ res.on('end', () => {
586
+ callbacks.onEnd(Date.now() - startTime);
587
+ resolve();
588
+ });
589
+ res.on('error', (err) => {
590
+ callbacks.onError(err);
591
+ reject(err);
592
+ });
593
+ });
594
+ req.on('error', (err) => {
595
+ // Check if retryable
596
+ if (isRetryableError(err)) {
597
+ // Retry once with same streaming logic
598
+ const retryReq = transport.request(reqOptions, (res) => {
599
+ // Simplified retry: buffer and send as single chunk to avoid complexity
600
+ const chunks = [];
601
+ const statusCode = res.statusCode || 502;
602
+ const sanitizedHeaders = this.sanitizeHeaders(res.headers);
603
+ delete sanitizedHeaders['content-security-policy'];
604
+ delete sanitizedHeaders['content-security-policy-report-only'];
605
+ res.on('data', (chunk) => chunks.push(chunk));
606
+ res.on('end', async () => {
607
+ callbacks.onStart(statusCode, sanitizedHeaders);
608
+ const body = Buffer.concat(chunks);
609
+ if (body.length > 0) {
610
+ await callbacks.onChunk(body);
611
+ }
612
+ callbacks.onEnd(Date.now() - startTime);
613
+ resolve();
614
+ });
615
+ res.on('error', (retryErr) => {
616
+ callbacks.onError(retryErr);
617
+ reject(retryErr);
618
+ });
619
+ });
620
+ retryReq.on('error', (retryErr) => {
621
+ callbacks.onError(retryErr);
622
+ reject(retryErr);
623
+ });
624
+ if (requestData) {
625
+ retryReq.write(requestData);
626
+ }
627
+ retryReq.end();
628
+ }
629
+ else {
630
+ callbacks.onError(err);
631
+ reject(err);
632
+ }
633
+ });
634
+ req.on('timeout', () => {
635
+ req.destroy(new Error('Request timeout'));
636
+ });
637
+ if (requestData) {
638
+ req.write(requestData);
639
+ }
640
+ req.end();
641
+ });
642
+ }
643
+ catch (error) {
644
+ const code = error.code;
645
+ const isLocalError = (code && LOCAL_ERROR_CODES.has(code)) ||
646
+ (error instanceof Error && LOCAL_ERROR_MESSAGES.some((msg) => error.message.includes(msg)));
647
+ if (!isLocalError) {
648
+ (0, sentry_1.captureException)(error);
649
+ }
650
+ callbacks.onError(error instanceof Error ? error : new Error(String(error)));
651
+ }
652
+ }
653
+ /**
654
+ * Resolve the target URL from a request (shared logic between forward and forwardStreaming)
655
+ */
656
+ resolveUrl(request) {
657
+ if (request.targetUrl) {
658
+ const parsed = new URL(request.targetUrl);
659
+ if (parsed.pathname === '/') {
660
+ const url = new URL(request.path, request.targetUrl);
661
+ Object.entries(request.query).forEach(([key, value]) => {
662
+ url.searchParams.append(key, value);
663
+ });
664
+ return url;
665
+ }
666
+ return parsed;
667
+ }
668
+ const url = new URL(request.path, this.targetUrl);
669
+ Object.entries(request.query).forEach(([key, value]) => {
670
+ url.searchParams.append(key, value);
671
+ });
672
+ return url;
673
+ }
436
674
  setTargetUrl(url) {
437
675
  this.targetUrl = url;
438
676
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { WSRequestMessage, WSResponseMessage } from '../types';
2
+ import { WSRequestMessage, WSResponseMessage, StreamCallbacks } from '../types';
3
3
  export interface WebSocketClientOptions {
4
4
  wsUrl: string;
5
5
  apiKey: string;
@@ -7,8 +7,10 @@ export interface WebSocketClientOptions {
7
7
  endpointIds?: string[];
8
8
  trialToken?: string;
9
9
  sessionId?: string;
10
+ poolIndex?: number;
10
11
  maxReconnectAttempts?: number;
11
12
  onRequest: (request: WSRequestMessage) => Promise<WSResponseMessage>;
13
+ onStreamingRequest?: (request: WSRequestMessage, callbacks: StreamCallbacks) => Promise<void>;
12
14
  }
13
15
  export declare class WebSocketClient extends EventEmitter {
14
16
  private ws;
@@ -31,8 +33,31 @@ export declare class WebSocketClient extends EventEmitter {
31
33
  private scheduleReconnect;
32
34
  private handleMessage;
33
35
  private handleRequest;
36
+ /**
37
+ * Wait until WS send buffer drains below the high water mark.
38
+ * This propagates backpressure from the WS transport up to the HTTP stream.
39
+ */
40
+ private waitForDrain;
34
41
  private sendRaw;
35
42
  disconnect(): void;
36
43
  isConnected(): boolean;
37
44
  }
45
+ /**
46
+ * WebSocket connection pool: maintains multiple parallel connections
47
+ * to avoid head-of-line blocking on a single WS connection.
48
+ */
49
+ export declare class WebSocketPool extends EventEmitter {
50
+ private connections;
51
+ private poolSize;
52
+ private options;
53
+ private connectedCount;
54
+ private sessionId;
55
+ constructor(options: WebSocketClientOptions & {
56
+ poolSize?: number;
57
+ });
58
+ connect(): Promise<void>;
59
+ disconnect(): void;
60
+ isConnected(): boolean;
61
+ getActiveConnectionCount(): number;
62
+ }
38
63
  //# sourceMappingURL=websocket-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtE;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAI7B;gBAES,OAAO,EAAE,sBAAsB;IAQrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG9B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YA0BX,aAAa;YAuCb,aAAa;IA4B3B,OAAO,CAAC,OAAO;IAMf,UAAU,IAAI,IAAI;IAalB,WAAW,IAAI,OAAO;CAGvB"}
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAI7B;gBAES,OAAO,EAAE,sBAAsB;IAQrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG9B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YA0BX,aAAa;YAuCb,aAAa;IAuG3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,OAAO;IAMf,UAAU,IAAI,IAAI;IAalB,WAAW,IAAI,OAAO;CAGvB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E9B,UAAU,IAAI,IAAI;IAQlB,WAAW,IAAI,OAAO;IAItB,wBAAwB,IAAI,MAAM;CAGnC"}
@@ -3,11 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WebSocketClient = void 0;
6
+ exports.WebSocketPool = exports.WebSocketClient = void 0;
7
7
  const ws_1 = __importDefault(require("ws"));
8
8
  const events_1 = require("events");
9
9
  const logger_1 = require("../utils/logger");
10
10
  const sentry_1 = require("../utils/sentry");
11
+ // Backpressure thresholds for WS send buffer
12
+ const WS_HIGH_WATER_MARK = 1 * 1024 * 1024; // 1MB: pause upstream
13
+ const WS_LOW_WATER_MARK = 256 * 1024; // 256KB: resume upstream
11
14
  class WebSocketClient extends events_1.EventEmitter {
12
15
  constructor(options) {
13
16
  super();
@@ -117,6 +120,9 @@ class WebSocketClient extends events_1.EventEmitter {
117
120
  if (this.options.sessionId) {
118
121
  payload.sessionId = this.options.sessionId;
119
122
  }
123
+ if (this.options.poolIndex !== undefined) {
124
+ payload.poolIndex = this.options.poolIndex;
125
+ }
120
126
  if (this.options.endpointIds?.length) {
121
127
  payload.endpointIds = this.options.endpointIds;
122
128
  }
@@ -189,6 +195,80 @@ class WebSocketClient extends events_1.EventEmitter {
189
195
  }
190
196
  }
191
197
  async handleRequest(payload) {
198
+ // Use streaming path if available
199
+ if (this.options.onStreamingRequest) {
200
+ try {
201
+ let headersSent = false;
202
+ await this.options.onStreamingRequest(payload, {
203
+ onStart: (statusCode, headers) => {
204
+ headersSent = true;
205
+ this.sendRaw({
206
+ type: 'response_start',
207
+ payload: {
208
+ requestId: payload.requestId,
209
+ statusCode,
210
+ headers,
211
+ },
212
+ });
213
+ },
214
+ onChunk: async (data) => {
215
+ // Backpressure: wait if WS buffer is too full
216
+ await this.waitForDrain();
217
+ this.sendRaw({
218
+ type: 'response_chunk',
219
+ payload: {
220
+ requestId: payload.requestId,
221
+ data: data.toString('base64'),
222
+ },
223
+ });
224
+ },
225
+ onEnd: (responseTime) => {
226
+ this.sendRaw({
227
+ type: 'response_end',
228
+ payload: {
229
+ requestId: payload.requestId,
230
+ responseTime,
231
+ },
232
+ });
233
+ },
234
+ onError: (error) => {
235
+ if (!headersSent) {
236
+ // If headers not sent yet, send a normal error
237
+ this.sendRaw({
238
+ type: 'error',
239
+ payload: {
240
+ requestId: payload.requestId,
241
+ error: error.message,
242
+ },
243
+ });
244
+ }
245
+ else {
246
+ // Headers already sent; signal end of stream (browser will see truncated response)
247
+ this.sendRaw({
248
+ type: 'response_end',
249
+ payload: {
250
+ requestId: payload.requestId,
251
+ responseTime: 0,
252
+ },
253
+ });
254
+ }
255
+ },
256
+ });
257
+ }
258
+ catch (error) {
259
+ (0, sentry_1.captureException)(error);
260
+ logger_1.Logger.error(`Streaming request failed [${payload.method} ${payload.path}]: ${error instanceof Error ? error.message : 'Unknown error'}`);
261
+ this.sendRaw({
262
+ type: 'error',
263
+ payload: {
264
+ requestId: payload.requestId,
265
+ error: error instanceof Error ? error.message : 'Unknown error',
266
+ },
267
+ });
268
+ }
269
+ return;
270
+ }
271
+ // Buffered path (backward compatibility)
192
272
  try {
193
273
  const response = await this.options.onRequest(payload);
194
274
  this.sendRaw({
@@ -214,6 +294,26 @@ class WebSocketClient extends events_1.EventEmitter {
214
294
  });
215
295
  }
216
296
  }
297
+ /**
298
+ * Wait until WS send buffer drains below the high water mark.
299
+ * This propagates backpressure from the WS transport up to the HTTP stream.
300
+ */
301
+ waitForDrain() {
302
+ if (!this.ws || this.ws.bufferedAmount < WS_HIGH_WATER_MARK) {
303
+ return Promise.resolve();
304
+ }
305
+ return new Promise((resolve) => {
306
+ const check = () => {
307
+ if (!this.ws || this.ws.bufferedAmount < WS_LOW_WATER_MARK) {
308
+ resolve();
309
+ return;
310
+ }
311
+ // Poll every 10ms until buffer drains
312
+ setTimeout(check, 10);
313
+ };
314
+ check();
315
+ });
316
+ }
217
317
  sendRaw(message) {
218
318
  if (this.ws && this.ws.readyState === ws_1.default.OPEN) {
219
319
  this.ws.send(JSON.stringify(message));
@@ -242,4 +342,101 @@ WebSocketClient.FATAL_CLOSE_CODES = new Set([
242
342
  4002, // Trial expired
243
343
  4003, // Connection limit / no active endpoints
244
344
  ]);
345
+ /**
346
+ * WebSocket connection pool: maintains multiple parallel connections
347
+ * to avoid head-of-line blocking on a single WS connection.
348
+ */
349
+ class WebSocketPool extends events_1.EventEmitter {
350
+ constructor(options) {
351
+ super();
352
+ this.connections = [];
353
+ this.connectedCount = 0;
354
+ this.poolSize = options.poolSize ?? 4;
355
+ this.options = options;
356
+ // Generate a session ID to group pooled connections on the backend
357
+ this.sessionId = options.sessionId || `pool_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
358
+ }
359
+ async connect() {
360
+ const connectPromises = [];
361
+ for (let i = 0; i < this.poolSize; i++) {
362
+ const client = new WebSocketClient({
363
+ ...this.options,
364
+ sessionId: this.sessionId,
365
+ poolIndex: i,
366
+ });
367
+ client.on('connected', () => {
368
+ this.connectedCount++;
369
+ if (this.connectedCount === 1) {
370
+ // First connection established
371
+ this.emit('connected');
372
+ }
373
+ });
374
+ client.on('reconnected', () => {
375
+ this.emit('reconnected');
376
+ });
377
+ client.on('disconnected', () => {
378
+ this.connectedCount = Math.max(0, this.connectedCount - 1);
379
+ if (this.connectedCount === 0) {
380
+ this.emit('disconnected');
381
+ }
382
+ });
383
+ client.on('error', (error) => {
384
+ this.emit('error', error);
385
+ });
386
+ client.on('reconnect_exhausted', () => {
387
+ // Only emit if ALL connections have exhausted reconnection
388
+ const allExhausted = this.connections.every((c) => !c.isConnected());
389
+ if (allExhausted) {
390
+ this.emit('reconnect_exhausted');
391
+ }
392
+ });
393
+ client.on('fatal_close', (code, reason) => {
394
+ // Only propagate fatal close from the primary connection (poolIndex 0).
395
+ // Secondary pool connections may be rejected due to connection limits
396
+ // on older servers; that's not fatal for the session.
397
+ if (i === 0) {
398
+ this.emit('fatal_close', code, reason);
399
+ }
400
+ else {
401
+ logger_1.Logger.debug(`Pool connection ${i} got fatal close ${code}, ignoring (non-primary)`);
402
+ }
403
+ });
404
+ this.connections.push(client);
405
+ connectPromises.push(client.connect());
406
+ }
407
+ // Wait for at least the first connection to succeed.
408
+ // Use Promise.race on individually-caught promises so one success resolves.
409
+ await new Promise((resolve, reject) => {
410
+ let settled = false;
411
+ let failures = 0;
412
+ for (const p of connectPromises) {
413
+ p.then(() => {
414
+ if (!settled) {
415
+ settled = true;
416
+ resolve();
417
+ }
418
+ }).catch(() => {
419
+ failures++;
420
+ if (failures === connectPromises.length && !settled) {
421
+ reject(new Error('All pool connections failed'));
422
+ }
423
+ });
424
+ }
425
+ });
426
+ }
427
+ disconnect() {
428
+ for (const client of this.connections) {
429
+ client.disconnect();
430
+ }
431
+ this.connections = [];
432
+ this.connectedCount = 0;
433
+ }
434
+ isConnected() {
435
+ return this.connections.some((c) => c.isConnected());
436
+ }
437
+ getActiveConnectionCount() {
438
+ return this.connections.filter((c) => c.isConnected()).length;
439
+ }
440
+ }
441
+ exports.WebSocketPool = WebSocketPool;
245
442
  //# sourceMappingURL=websocket-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,12 @@ export interface WSErrorMessage {
41
41
  requestId?: string;
42
42
  message: string;
43
43
  }
44
+ export interface StreamCallbacks {
45
+ onStart: (statusCode: number, headers: Record<string, string | string[]>) => void;
46
+ onChunk: (data: Buffer) => Promise<void>;
47
+ onEnd: (responseTime: number) => void;
48
+ onError: (error: Error) => void;
49
+ }
44
50
  export type WSMessage = WSAuthMessage | WSHeartbeatMessage | WSRequestMessage | WSResponseMessage | WSErrorMessage;
45
51
  export interface Endpoint {
46
52
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hooklink/cli",
3
- "version": "0.1.52",
3
+ "version": "0.1.53",
4
4
  "description": "Hooklink CLI - Forward webhooks to your local development machine",
5
5
  "main": "dist/index.js",
6
6
  "bin": {