@aikidosec/broker-client 1.0.8 → 1.0.9

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.
package/app/client.js CHANGED
@@ -253,9 +253,20 @@ const socket = io(SERVER_URL, {
253
253
  pingTimeout: 60000, // 60s (default 20s) - time to wait for pong before considering connection dead
254
254
  });
255
255
 
256
- // Socket.IO event handlers
256
+ // Socket.IO event handlers - listen for engine open to catch transport before upgrade
257
+ socket.io.on('open', () => {
258
+ const transport = socket.io?.engine?.transport?.name;
259
+ log.info(`🔌 Engine opened (initial transport: ${transport})`);
260
+
261
+ // Log transport upgrades (e.g., polling -> websocket)
262
+ socket.io.engine.on('upgrade', (newTransport) => {
263
+ log.info(`🔄 Transport upgraded to: ${newTransport?.name}`);
264
+ });
265
+ });
266
+
257
267
  socket.on('connect', async () => {
258
- log.info('✓ Connected to broker server');
268
+ const transport = socket.io?.engine?.transport?.name;
269
+ log.info(`✓ Connected to broker server (transport: ${transport})`);
259
270
 
260
271
  const clientId = getClientId();
261
272
 
@@ -411,17 +422,16 @@ socket.on('forward_request', async (data, callback) => {
411
422
  * @param {string} requestId - Request ID for tracking
412
423
  * @param {number} statusCode - HTTP status code
413
424
  * @param {object} headers - Response headers
414
- * @param {Buffer|null} responseData - Raw response data (before base64)
425
+ * @param {Buffer|null} responseData - Raw response data (sent as binary)
415
426
  * @param {function} callback - Socket.IO callback
416
427
  */
417
428
  function sendDirectResponse(requestId, statusCode, headers, responseData, callback) {
418
- const responseBody = responseData ? responseData.toString('base64') : null;
419
429
  callback({
420
430
  request_id: requestId,
421
431
  status_code: statusCode,
422
432
  headers: headers,
423
- body: responseBody,
424
- version: 2
433
+ body: responseData || null, // Send raw Buffer - Socket.IO handles binary natively
434
+ version: 3
425
435
  });
426
436
  }
427
437
 
@@ -64,7 +64,7 @@ export async function handleGetNextChunk(data, callback) {
64
64
 
65
65
  callback({
66
66
  request_id: requestId,
67
- data: chunkData.toString('base64'),
67
+ data: chunkData, // Send raw Buffer - Socket.IO handles binary natively
68
68
  complete: isComplete,
69
69
  chunk_index: state.chunkIndex
70
70
  });
@@ -76,7 +76,7 @@ export function initStreamingResponse({ requestId, statusCode, headers, stream,
76
76
  status_code: statusCode,
77
77
  headers: headers,
78
78
  body: null,
79
- version: 2,
79
+ version: 3,
80
80
  streaming: true
81
81
  });
82
82
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aikidosec/broker-client",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "Aikido Broker Client - Runs in customer network to forward requests to internal resources",
5
5
  "main": "app/client.js",
6
6
  "type": "module",