@opentabs-dev/browser-extension 0.0.34 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/background-message-handlers.d.ts.map +1 -1
  2. package/dist/background-message-handlers.js +17 -6
  3. package/dist/background-message-handlers.js.map +1 -1
  4. package/dist/background.js +339 -103
  5. package/dist/background.js.map +1 -1
  6. package/dist/browser-commands/cookie-commands.js +2 -2
  7. package/dist/browser-commands/cookie-commands.js.map +1 -1
  8. package/dist/browser-commands/extension-commands.d.ts +2 -0
  9. package/dist/browser-commands/extension-commands.d.ts.map +1 -1
  10. package/dist/browser-commands/extension-commands.js +75 -43
  11. package/dist/browser-commands/extension-commands.js.map +1 -1
  12. package/dist/browser-commands/index.d.ts +1 -1
  13. package/dist/browser-commands/index.d.ts.map +1 -1
  14. package/dist/browser-commands/index.js +1 -1
  15. package/dist/browser-commands/index.js.map +1 -1
  16. package/dist/browser-commands/interaction-commands.d.ts.map +1 -1
  17. package/dist/browser-commands/interaction-commands.js +24 -14
  18. package/dist/browser-commands/interaction-commands.js.map +1 -1
  19. package/dist/browser-commands/network-commands.d.ts +1 -0
  20. package/dist/browser-commands/network-commands.d.ts.map +1 -1
  21. package/dist/browser-commands/network-commands.js +16 -2
  22. package/dist/browser-commands/network-commands.js.map +1 -1
  23. package/dist/browser-commands/tab-commands.js +1 -1
  24. package/dist/browser-commands/tab-commands.js.map +1 -1
  25. package/dist/confirmation-badge.d.ts +26 -4
  26. package/dist/confirmation-badge.d.ts.map +1 -1
  27. package/dist/confirmation-badge.js +108 -7
  28. package/dist/confirmation-badge.js.map +1 -1
  29. package/dist/iife-injection.d.ts +1 -6
  30. package/dist/iife-injection.d.ts.map +1 -1
  31. package/dist/iife-injection.js +9 -34
  32. package/dist/iife-injection.js.map +1 -1
  33. package/dist/known-methods.d.ts +2 -2
  34. package/dist/known-methods.d.ts.map +1 -1
  35. package/dist/known-methods.js +1 -0
  36. package/dist/known-methods.js.map +1 -1
  37. package/dist/message-router.d.ts.map +1 -1
  38. package/dist/message-router.js +2 -1
  39. package/dist/message-router.js.map +1 -1
  40. package/dist/network-capture.d.ts +14 -1
  41. package/dist/network-capture.d.ts.map +1 -1
  42. package/dist/network-capture.js +167 -23
  43. package/dist/network-capture.js.map +1 -1
  44. package/dist/offscreen/index.d.ts +1 -1
  45. package/dist/offscreen/index.js +41 -24
  46. package/dist/offscreen/index.js.map +1 -1
  47. package/dist/offscreen/ws-utils.d.ts +8 -0
  48. package/dist/offscreen/ws-utils.d.ts.map +1 -0
  49. package/dist/offscreen/ws-utils.js +30 -0
  50. package/dist/offscreen/ws-utils.js.map +1 -0
  51. package/dist/rate-limiter.d.ts +2 -0
  52. package/dist/rate-limiter.d.ts.map +1 -1
  53. package/dist/rate-limiter.js +6 -0
  54. package/dist/rate-limiter.js.map +1 -1
  55. package/dist/sanitize-svg.d.ts +1 -1
  56. package/dist/sanitize-svg.js +1 -1
  57. package/dist/side-panel/App.d.ts.map +1 -1
  58. package/dist/side-panel/App.js +16 -2
  59. package/dist/side-panel/App.js.map +1 -1
  60. package/dist/side-panel/components/ConfirmationDialog.d.ts +8 -1
  61. package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -1
  62. package/dist/side-panel/components/ConfirmationDialog.js +16 -8
  63. package/dist/side-panel/components/ConfirmationDialog.js.map +1 -1
  64. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  65. package/dist/side-panel/components/PluginCard.js +10 -2
  66. package/dist/side-panel/components/PluginCard.js.map +1 -1
  67. package/dist/side-panel/constants.d.ts +2 -0
  68. package/dist/side-panel/constants.d.ts.map +1 -1
  69. package/dist/side-panel/constants.js +2 -0
  70. package/dist/side-panel/constants.js.map +1 -1
  71. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
  72. package/dist/side-panel/hooks/useServerNotifications.js +27 -3
  73. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
  74. package/dist/side-panel/side-panel.js +4336 -4112
  75. package/dist/side-panel/styles.css +1 -1
  76. package/dist/side-panel-toggle.d.ts.map +1 -1
  77. package/dist/side-panel-toggle.js +21 -6
  78. package/dist/side-panel-toggle.js.map +1 -1
  79. package/dist/tab-state.d.ts.map +1 -1
  80. package/dist/tab-state.js +14 -4
  81. package/dist/tab-state.js.map +1 -1
  82. package/package.json +17 -17
@@ -5,6 +5,14 @@ import { toErrorMessage } from '@opentabs-dev/shared';
5
5
  // ---------------------------------------------------------------------------
6
6
  /** Maximum character length for request bodies before truncation. */
7
7
  const MAX_BODY_LENGTH = 102_400;
8
+ /** How long a pending request entry lives before it is pruned as stale (ms). */
9
+ const PENDING_REQUEST_TTL_MS = 60_000;
10
+ /** How often the periodic pruning timer fires to remove stale entries during idle captures (ms). */
11
+ const PRUNE_INTERVAL_MS = 30_000;
12
+ /** How long a WebSocket entry lives in wsFramesByRequestId before being pruned as stale (ms).
13
+ * WebSocket connections are typically long-lived, so a separate TTL longer than
14
+ * PENDING_REQUEST_TTL_MS avoids pruning active connections. */
15
+ const WS_TTL_MS = 5 * 60_000;
8
16
  /** Headers whose values are replaced with '[REDACTED]' before returning to MCP clients. */
9
17
  const SENSITIVE_HEADERS = new Set([
10
18
  'authorization',
@@ -50,6 +58,8 @@ const scrubHeaders = (headers) => {
50
58
  // Per-tab capture state
51
59
  // ---------------------------------------------------------------------------
52
60
  const captures = new Map();
61
+ /** Tracks in-flight startCapture promises by tabId to serialize concurrent calls. */
62
+ const pendingCaptures = new Map();
53
63
  // ---------------------------------------------------------------------------
54
64
  // Chrome debugger event listener (registered once at module load)
55
65
  // ---------------------------------------------------------------------------
@@ -122,6 +132,24 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
122
132
  const request = paramsRecord?.request;
123
133
  if (!requestId || !request)
124
134
  return;
135
+ // Prune stale entries to prevent unbounded growth from requests that never complete
136
+ const now = Date.now();
137
+ for (const [id, pending] of state.pendingRequests) {
138
+ if (pending.timestamp !== undefined && now - pending.timestamp > PENDING_REQUEST_TTL_MS) {
139
+ state.pendingRequests.delete(id);
140
+ }
141
+ }
142
+ for (const [id, req] of state.requestIdToRequest) {
143
+ if (now - req.timestamp > PENDING_REQUEST_TTL_MS) {
144
+ state.requestIdToRequest.delete(id);
145
+ }
146
+ }
147
+ for (const [id, createdAt] of state.wsCreatedAt) {
148
+ if (now - createdAt > WS_TTL_MS) {
149
+ state.wsFramesByRequestId.delete(id);
150
+ state.wsCreatedAt.delete(id);
151
+ }
152
+ }
125
153
  const url = stringProp(request, 'url', '');
126
154
  // Apply URL filter — skip requests that don't match
127
155
  if (state.urlFilter && !url.includes(state.urlFilter))
@@ -206,6 +234,10 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
206
234
  const responseData = result;
207
235
  if (typeof responseData.body !== 'string')
208
236
  return;
237
+ // Guard: skip if the request was evicted from the buffer between the
238
+ // loadingFinished event and the async body fetch completing.
239
+ if (!state.requests.includes(request))
240
+ return;
209
241
  // For text content, store directly; for base64-encoded text, decode from
210
242
  // base64 to UTF-8 via Uint8Array + TextDecoder (bare atob returns Latin1,
211
243
  // which corrupts non-ASCII characters like Chinese text or emoji).
@@ -220,11 +252,17 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
220
252
  // Capture the creation event as a synthetic request so that the
221
253
  // analyze-site API detection module can classify it as websocket.
222
254
  const url = paramsRecord?.url;
255
+ const requestId = paramsRecord?.requestId;
223
256
  if (!url)
224
257
  return;
225
258
  // Apply URL filter
226
259
  if (state.urlFilter && !url.includes(state.urlFilter))
227
260
  return;
261
+ // Store requestId → url mapping for frame capture, and track creation time for pruning
262
+ if (requestId) {
263
+ state.wsFramesByRequestId.set(requestId, url);
264
+ state.wsCreatedAt.set(requestId, Date.now());
265
+ }
228
266
  const completed = {
229
267
  url,
230
268
  method: 'GET',
@@ -238,6 +276,32 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
238
276
  }
239
277
  state.requests.push(completed);
240
278
  }
279
+ else if (method === 'Network.webSocketFrameSent' || method === 'Network.webSocketFrameReceived') {
280
+ const requestId = paramsRecord?.requestId;
281
+ const response = paramsRecord?.response;
282
+ if (!requestId || !response)
283
+ return;
284
+ const url = state.wsFramesByRequestId.get(requestId);
285
+ if (!url)
286
+ return;
287
+ const opcode = typeof response.opcode === 'number' ? response.opcode : 1;
288
+ const payloadData = typeof response.payloadData === 'string' ? response.payloadData : '';
289
+ const direction = method === 'Network.webSocketFrameSent' ? 'sent' : 'received';
290
+ // Binary frames (opcode 2) store a truncated base64 preview;
291
+ // text frames (opcode 1) store the payload directly.
292
+ const data = truncateBody(payloadData);
293
+ if (state.wsFrames.length >= state.maxWsFrames) {
294
+ state.wsFrames.shift();
295
+ }
296
+ state.wsFrames.push({ url, direction, data, opcode, timestamp: Date.now() });
297
+ }
298
+ else if (method === 'Network.webSocketClosed') {
299
+ const requestId = paramsRecord?.requestId;
300
+ if (requestId) {
301
+ state.wsFramesByRequestId.delete(requestId);
302
+ state.wsCreatedAt.delete(requestId);
303
+ }
304
+ }
241
305
  else if (method === 'Runtime.consoleAPICalled') {
242
306
  const type = paramsRecord?.type;
243
307
  const args = paramsRecord?.args;
@@ -267,11 +331,25 @@ chrome.debugger.onEvent.addListener((source, method, params) => {
267
331
  });
268
332
  // Clean up capture state when a tab is closed
269
333
  chrome.tabs.onRemoved.addListener((tabId) => {
270
- if (captures.has(tabId)) {
334
+ const state = captures.get(tabId);
335
+ if (state) {
336
+ clearInterval(state.pruneIntervalId);
271
337
  void chrome.debugger.detach({ tabId }).catch(() => { });
272
338
  captures.delete(tabId);
273
339
  }
274
340
  });
341
+ // Clean up capture state when the debugger is externally detached
342
+ // (e.g. user opens DevTools, Chrome terminates the debugger under memory pressure).
343
+ // The debugger is already gone — do NOT call chrome.debugger.detach() here.
344
+ chrome.debugger.onDetach.addListener((source, _reason) => {
345
+ const tabId = source.tabId;
346
+ if (tabId !== undefined) {
347
+ const state = captures.get(tabId);
348
+ if (state)
349
+ clearInterval(state.pruneIntervalId);
350
+ captures.delete(tabId);
351
+ }
352
+ });
275
353
  // ---------------------------------------------------------------------------
276
354
  // Public API
277
355
  // ---------------------------------------------------------------------------
@@ -279,34 +357,74 @@ chrome.tabs.onRemoved.addListener((tabId) => {
279
357
  * Start capturing network requests and console logs for a tab.
280
358
  * Attaches the Chrome DevTools Protocol debugger and enables Network + Runtime domains.
281
359
  */
282
- export const startCapture = async (tabId, maxRequests = 100, urlFilter, maxConsoleLogs = 500) => {
360
+ export const startCapture = async (tabId, maxRequests = 100, urlFilter, maxConsoleLogs = 500, maxWsFrames = 200) => {
361
+ // If a startCapture is already in flight for this tab, wait for it and return.
362
+ // This serializes concurrent calls so the second caller does not attempt to
363
+ // attach the debugger while the first is still attaching.
364
+ const inFlightCapture = pendingCaptures.get(tabId);
365
+ if (inFlightCapture) {
366
+ return inFlightCapture;
367
+ }
283
368
  if (captures.has(tabId)) {
284
369
  throw new Error(`Network capture already active for tab ${tabId}. Call stopCapture first.`);
285
370
  }
371
+ const capturePromise = (async () => {
372
+ try {
373
+ await chrome.debugger.attach({ tabId }, CDP_VERSION);
374
+ }
375
+ catch (err) {
376
+ throw new Error(`Failed to attach debugger to tab ${tabId}: ${toErrorMessage(err)}. ` +
377
+ 'Another debugger (e.g., DevTools) may already be attached.');
378
+ }
379
+ try {
380
+ await chrome.debugger.sendCommand({ tabId }, 'Network.enable');
381
+ await chrome.debugger.sendCommand({ tabId }, 'Runtime.enable');
382
+ }
383
+ catch (err) {
384
+ await chrome.debugger.detach({ tabId }).catch(() => { });
385
+ throw err;
386
+ }
387
+ const captureState = {
388
+ requests: [],
389
+ consoleLogs: [],
390
+ wsFrames: [],
391
+ maxRequests,
392
+ maxConsoleLogs,
393
+ maxWsFrames,
394
+ urlFilter,
395
+ pendingRequests: new Map(),
396
+ requestIdToRequest: new Map(),
397
+ wsFramesByRequestId: new Map(),
398
+ wsCreatedAt: new Map(),
399
+ };
400
+ captureState.pruneIntervalId = setInterval(() => {
401
+ const now = Date.now();
402
+ for (const [id, pendingReq] of captureState.pendingRequests) {
403
+ if (pendingReq.timestamp !== undefined && now - pendingReq.timestamp > PENDING_REQUEST_TTL_MS) {
404
+ captureState.pendingRequests.delete(id);
405
+ }
406
+ }
407
+ for (const [id, req] of captureState.requestIdToRequest) {
408
+ if (now - req.timestamp > PENDING_REQUEST_TTL_MS) {
409
+ captureState.requestIdToRequest.delete(id);
410
+ }
411
+ }
412
+ for (const [id, createdAt] of captureState.wsCreatedAt) {
413
+ if (now - createdAt > WS_TTL_MS) {
414
+ captureState.wsFramesByRequestId.delete(id);
415
+ captureState.wsCreatedAt.delete(id);
416
+ }
417
+ }
418
+ }, PRUNE_INTERVAL_MS);
419
+ captures.set(tabId, captureState);
420
+ })();
421
+ pendingCaptures.set(tabId, capturePromise);
286
422
  try {
287
- await chrome.debugger.attach({ tabId }, CDP_VERSION);
288
- }
289
- catch (err) {
290
- throw new Error(`Failed to attach debugger to tab ${tabId}: ${toErrorMessage(err)}. ` +
291
- 'Another debugger (e.g., DevTools) may already be attached.');
292
- }
293
- try {
294
- await chrome.debugger.sendCommand({ tabId }, 'Network.enable');
295
- await chrome.debugger.sendCommand({ tabId }, 'Runtime.enable');
423
+ await capturePromise;
296
424
  }
297
- catch (err) {
298
- await chrome.debugger.detach({ tabId }).catch(() => { });
299
- throw err;
425
+ finally {
426
+ pendingCaptures.delete(tabId);
300
427
  }
301
- captures.set(tabId, {
302
- requests: [],
303
- consoleLogs: [],
304
- maxRequests,
305
- maxConsoleLogs,
306
- urlFilter,
307
- pendingRequests: new Map(),
308
- requestIdToRequest: new Map(),
309
- });
310
428
  };
311
429
  /**
312
430
  * Stop capturing network requests and console logs for a tab.
@@ -316,6 +434,9 @@ export const stopCapture = (tabId) => {
316
434
  const state = captures.get(tabId);
317
435
  if (!state)
318
436
  return;
437
+ clearInterval(state.pruneIntervalId);
438
+ state.wsFramesByRequestId.clear();
439
+ state.wsCreatedAt.clear();
319
440
  void chrome.debugger.detach({ tabId }).catch(() => { });
320
441
  captures.delete(tabId);
321
442
  };
@@ -334,6 +455,11 @@ export const getRequests = (tabId, clear = false) => {
334
455
  }));
335
456
  if (clear) {
336
457
  state.requests = [];
458
+ // requestIdToRequest tracks completed requests (post-responseReceived, pre-loadingFinished)
459
+ // that were in state.requests. Clearing both together is safe; the body-fetch guard
460
+ // (state.requests.includes check) handles any in-flight async callbacks.
461
+ // pendingRequests is NOT cleared — in-flight requests that have not yet received
462
+ // a response continue to be tracked and will appear in subsequent getRequests calls.
337
463
  state.requestIdToRequest.clear();
338
464
  }
339
465
  return requests;
@@ -364,6 +490,24 @@ export const clearConsoleLogs = (tabId) => {
364
490
  state.consoleLogs = [];
365
491
  }
366
492
  };
493
+ /**
494
+ * Get captured WebSocket frames for a tab.
495
+ * Optionally clears the buffer after reading.
496
+ */
497
+ export const getWsFrames = (tabId, clear = false) => {
498
+ const state = captures.get(tabId);
499
+ if (!state)
500
+ return [];
501
+ const frames = [...state.wsFrames];
502
+ if (clear) {
503
+ state.wsFrames = [];
504
+ // wsFramesByRequestId and wsCreatedAt are NOT cleared — they hold the
505
+ // requestId→url mappings needed to capture frames from existing connections.
506
+ // Entries are cleaned up by webSocketClosed events, the prune interval,
507
+ // and stopCapture when the entire session ends.
508
+ }
509
+ return frames;
510
+ };
367
511
  /** Return a summary of all active network captures for state inspection. */
368
512
  export const getActiveCapturesSummary = () => Array.from(captures.entries()).map(([tabId, state]) => ({
369
513
  tabId,
@@ -1 +1 @@
1
- {"version":3,"file":"network-capture.js","sourceRoot":"","sources":["../src/network-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-capture.js","sourceRoot":"","sources":["../src/network-capture.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Reconnection: exponential backoff (1s → 2s → 4s → 8s → … → 30s cap), resets on success.
5
5
  * Keepalive: sends ping every 15s; if no pong within 5s, connection is considered dead
6
6
  * and force-closed to trigger reconnect. This detects zombie connections
7
- * caused by server hot reload (bun --hot) where the TCP socket stays alive
7
+ * caused by server hot reload where the TCP socket stays alive
8
8
  * but the server-side handler has been replaced.
9
9
  *
10
10
  * The WebSocket URL defaults to ws://localhost:9515/ws. The port is
@@ -1,3 +1,28 @@
1
+ // dist/offscreen/ws-utils.js
2
+ var isValidWsOrigin = (wsUrl, httpBase) => {
3
+ try {
4
+ const parsed = new URL(wsUrl);
5
+ if (parsed.protocol !== "ws:" && parsed.protocol !== "wss:") {
6
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid protocol: ${parsed.protocol}`);
7
+ return false;
8
+ }
9
+ const source = new URL(httpBase);
10
+ if (parsed.host !== source.host) {
11
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with mismatched host: ${parsed.host} (expected ${source.host})`);
12
+ return false;
13
+ }
14
+ if (parsed.pathname !== "/ws") {
15
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid path: ${parsed.pathname}`);
16
+ return false;
17
+ }
18
+ return true;
19
+ } catch {
20
+ console.warn("[opentabs:offscreen] Rejected wsUrl: failed to parse URL");
21
+ return false;
22
+ }
23
+ };
24
+ var wsToHttpBase = (wsUrl) => wsUrl.replace(/^ws/, "http").replace(/\/ws$/, "");
25
+
1
26
  // dist/constants.js
2
27
  var DEFAULT_SERVER_PORT = 9515;
3
28
  var MAX_INPUT_SIZE = 10 * 1024 * 1024;
@@ -34,6 +59,7 @@ var DISPATCH_METHODS = [
34
59
  "browser.deleteCookies",
35
60
  "browser.enableNetworkCapture",
36
61
  "browser.getNetworkRequests",
62
+ "browser.getWebSocketFrames",
37
63
  "browser.disableNetworkCapture",
38
64
  "browser.getConsoleLogs",
39
65
  "browser.clearConsoleLogs",
@@ -157,29 +183,6 @@ var BACKOFF_MULTIPLIER = 2;
157
183
  var PING_INTERVAL_MS = 15e3;
158
184
  var PONG_TIMEOUT_MS = 5e3;
159
185
  var ALLOWED_METHODS = new Set(ALL_ALLOWED_METHODS);
160
- var isValidWsOrigin = (wsUrl, httpBase) => {
161
- try {
162
- const parsed = new URL(wsUrl);
163
- if (parsed.protocol !== "ws:" && parsed.protocol !== "wss:") {
164
- console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid protocol: ${parsed.protocol}`);
165
- return false;
166
- }
167
- const source = new URL(httpBase);
168
- if (parsed.host !== source.host) {
169
- console.warn(`[opentabs:offscreen] Rejected wsUrl with mismatched host: ${parsed.host} (expected ${source.host})`);
170
- return false;
171
- }
172
- if (parsed.pathname !== "/ws") {
173
- console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid path: ${parsed.pathname}`);
174
- return false;
175
- }
176
- return true;
177
- } catch {
178
- console.warn("[opentabs:offscreen] Rejected wsUrl: failed to parse URL");
179
- return false;
180
- }
181
- };
182
- var wsToHttpBase = (wsUrl) => wsUrl.replace(/^ws/, "http").replace(/\/ws$/, "");
183
186
  var fetchWsInfo = async (httpBase) => {
184
187
  try {
185
188
  const headers = {};
@@ -210,6 +213,7 @@ var fetchWsInfo = async (httpBase) => {
210
213
  };
211
214
  var disconnectAndReconnect = (closeReason) => {
212
215
  backoffMs = INITIAL_BACKOFF_MS;
216
+ lastDisconnectReason = void 0;
213
217
  if (ws) {
214
218
  try {
215
219
  ws.close(1e3, closeReason);
@@ -225,6 +229,7 @@ var disconnectAndReconnect = (closeReason) => {
225
229
  };
226
230
  var mcpServerUrl = DEFAULT_MCP_SERVER_URL;
227
231
  var wsSecret = null;
232
+ var authJsonWarned = false;
228
233
  var ws = null;
229
234
  var backoffMs = INITIAL_BACKOFF_MS;
230
235
  var pingIntervalId = null;
@@ -323,6 +328,7 @@ var connect = async () => {
323
328
  }
324
329
  connecting = true;
325
330
  try {
331
+ await bootstrapFromAuthFile();
326
332
  const reason = await refreshWsUrl();
327
333
  if (reason) {
328
334
  lastDisconnectReason = reason;
@@ -522,9 +528,20 @@ var bootstrapFromAuthFile = async () => {
522
528
  const auth = await res.json();
523
529
  if (typeof auth.secret === "string" && auth.secret !== "") {
524
530
  wsSecret = auth.secret;
531
+ authJsonWarned = false;
532
+ } else if (!authJsonWarned) {
533
+ authJsonWarned = true;
534
+ console.warn("[opentabs:offscreen] auth.json missing or invalid secret field");
525
535
  }
536
+ } else if (!authJsonWarned) {
537
+ authJsonWarned = true;
538
+ console.warn("[opentabs:offscreen] auth.json returned HTTP", res.status);
539
+ }
540
+ } catch (e) {
541
+ if (!authJsonWarned) {
542
+ authJsonWarned = true;
543
+ console.warn("[opentabs:offscreen] Failed to read auth.json:", e);
526
544
  }
527
- } catch {
528
545
  }
529
546
  };
530
547
  void (async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offscreen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offscreen/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validate that a WebSocket URL from /ws-info has the expected origin.
3
+ * Rejects URLs with a different host than the source or non-WebSocket protocols.
4
+ */
5
+ export declare const isValidWsOrigin: (wsUrl: string, httpBase: string) => boolean;
6
+ /** Convert a WebSocket URL to its HTTP base URL (e.g., ws://localhost:9515/ws → http://localhost:9515) */
7
+ export declare const wsToHttpBase: (wsUrl: string) => string;
8
+ //# sourceMappingURL=ws-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-utils.d.ts","sourceRoot":"","sources":["../../src/offscreen/ws-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,UAAU,MAAM,KAAG,OAuBjE,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAA2D,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Validate that a WebSocket URL from /ws-info has the expected origin.
3
+ * Rejects URLs with a different host than the source or non-WebSocket protocols.
4
+ */
5
+ export const isValidWsOrigin = (wsUrl, httpBase) => {
6
+ try {
7
+ const parsed = new URL(wsUrl);
8
+ if (parsed.protocol !== 'ws:' && parsed.protocol !== 'wss:') {
9
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid protocol: ${parsed.protocol}`);
10
+ return false;
11
+ }
12
+ const source = new URL(httpBase);
13
+ if (parsed.host !== source.host) {
14
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with mismatched host: ${parsed.host} (expected ${source.host})`);
15
+ return false;
16
+ }
17
+ if (parsed.pathname !== '/ws') {
18
+ console.warn(`[opentabs:offscreen] Rejected wsUrl with invalid path: ${parsed.pathname}`);
19
+ return false;
20
+ }
21
+ return true;
22
+ }
23
+ catch {
24
+ console.warn('[opentabs:offscreen] Rejected wsUrl: failed to parse URL');
25
+ return false;
26
+ }
27
+ };
28
+ /** Convert a WebSocket URL to its HTTP base URL (e.g., ws://localhost:9515/ws → http://localhost:9515) */
29
+ export const wsToHttpBase = (wsUrl) => wsUrl.replace(/^ws/, 'http').replace(/\/ws$/, '');
30
+ //# sourceMappingURL=ws-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-utils.js","sourceRoot":"","sources":["../../src/offscreen/ws-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAW,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,8DAA8D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CACV,6DAA6D,MAAM,CAAC,IAAI,cAAc,MAAM,CAAC,IAAI,GAAG,CACrG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,0DAA0D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,0GAA0G;AAC1G,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC"}
@@ -15,4 +15,6 @@
15
15
  export declare const checkRateLimit: (method: string, now?: number) => boolean;
16
16
  /** Clear all rate limiter state. Exposed for test isolation. */
17
17
  export declare const resetRateLimiter: () => void;
18
+ /** Returns the number of methods currently tracked. Exposed for test assertions. */
19
+ export declare const getTrackedMethodCount: () => number;
18
20
  //# sourceMappingURL=rate-limiter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAK,MAAmB,KAAG,OAiBzE,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,QAAO,IAEnC,CAAC"}
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAK,MAAmB,KAAG,OAsBzE,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,QAAO,IAEnC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,QAAO,MAA+B,CAAC"}
@@ -38,6 +38,10 @@ export const checkRateLimit = (method, now = Date.now()) => {
38
38
  const cutoff = now - config.windowMs;
39
39
  // Get existing timestamps and prune expired entries
40
40
  const timestamps = (methodTimestamps.get(method) ?? []).filter(t => t > cutoff);
41
+ // Delete stale key when all timestamps have expired to prevent unbounded map growth
42
+ if (timestamps.length === 0) {
43
+ methodTimestamps.delete(method);
44
+ }
41
45
  if (timestamps.length >= config.maxRequests) {
42
46
  methodTimestamps.set(method, timestamps);
43
47
  return false;
@@ -50,4 +54,6 @@ export const checkRateLimit = (method, now = Date.now()) => {
50
54
  export const resetRateLimiter = () => {
51
55
  methodTimestamps.clear();
52
56
  };
57
+ /** Returns the number of methods currently tracked. Exposed for test assertions. */
58
+ export const getTrackedMethodCount = () => methodTimestamps.size;
53
59
  //# sourceMappingURL=rate-limiter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,0CAA0C;AAC1C,MAAM,aAAa,GAAyC,IAAI,GAAG,CAAC;IAClE,sCAAsC;IACtC,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC,8BAA8B,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE/D,+EAA+E;IAC/E,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,aAAa,GAAoB,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE5E;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAEvG,2CAA2C;AAC3C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE,EAAW,EAAE;IAClF,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAErC,oDAAoD;IACpD,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEhF,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,0CAA0C;AAC1C,MAAM,aAAa,GAAyC,IAAI,GAAG,CAAC;IAClE,sCAAsC;IACtC,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC,8BAA8B,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE/D,+EAA+E;IAC/E,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,aAAa,GAAoB,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE5E;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAEvG,2CAA2C;AAC3C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE,EAAW,EAAE;IAClF,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAErC,oDAAoD;IACpD,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAEhF,oFAAoF;IACpF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * javascript: URIs, and CSS-based attacks.
8
8
  *
9
9
  * Runs in the side panel context (browser DOM available) and is also testable
10
- * in Bun's test runner (no DOM dependency — pure string processing).
10
+ * in Vitest (no DOM dependency — pure string processing).
11
11
  */
12
12
  /**
13
13
  * Sanitize an SVG string by stripping all elements and attributes not on the allowlist.
@@ -7,7 +7,7 @@
7
7
  * javascript: URIs, and CSS-based attacks.
8
8
  *
9
9
  * Runs in the side panel context (browser DOM available) and is also testable
10
- * in Bun's test runner (no DOM dependency — pure string processing).
10
+ * in Vitest (no DOM dependency — pure string processing).
11
11
  */
12
12
  // Elements allowed in plugin SVG icons (covers common icon shapes and styling)
13
13
  const ALLOWED_ELEMENTS = new Set([