@descryy/runtime-browser 0.5.2 → 0.5.4

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 (49) hide show
  1. package/dist/browser-action-collector.d.ts +11 -3
  2. package/dist/browser-action-collector.d.ts.map +1 -1
  3. package/dist/browser-action-collector.js +102 -11
  4. package/dist/browser-action-collector.js.map +1 -1
  5. package/dist/browser-console-collector.d.ts +2 -0
  6. package/dist/browser-console-collector.d.ts.map +1 -1
  7. package/dist/browser-console-collector.js +60 -6
  8. package/dist/browser-console-collector.js.map +1 -1
  9. package/dist/browser-network-collector.d.ts +12 -1
  10. package/dist/browser-network-collector.d.ts.map +1 -1
  11. package/dist/browser-network-collector.js +167 -9
  12. package/dist/browser-network-collector.js.map +1 -1
  13. package/dist/browser-recording-collector.d.ts +8 -1
  14. package/dist/browser-recording-collector.d.ts.map +1 -1
  15. package/dist/browser-recording-collector.js +141 -17
  16. package/dist/browser-recording-collector.js.map +1 -1
  17. package/dist/browser-session.d.ts +131 -5
  18. package/dist/browser-session.d.ts.map +1 -1
  19. package/dist/browser-session.js +534 -94
  20. package/dist/browser-session.js.map +1 -1
  21. package/dist/dom-evidence.d.ts +6 -0
  22. package/dist/dom-evidence.d.ts.map +1 -1
  23. package/dist/dom-evidence.js +40 -11
  24. package/dist/dom-evidence.js.map +1 -1
  25. package/dist/frontend-initiator-capture.d.ts +5 -1
  26. package/dist/frontend-initiator-capture.d.ts.map +1 -1
  27. package/dist/frontend-initiator-capture.js +72 -10
  28. package/dist/frontend-initiator-capture.js.map +1 -1
  29. package/dist/index.d.ts +9 -8
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +7 -7
  32. package/dist/index.js.map +1 -1
  33. package/dist/network-correlation.d.ts +2 -11
  34. package/dist/network-correlation.d.ts.map +1 -1
  35. package/dist/network-correlation.js +1 -25
  36. package/dist/network-correlation.js.map +1 -1
  37. package/dist/owner-only-file.d.ts +2 -0
  38. package/dist/owner-only-file.d.ts.map +1 -0
  39. package/dist/owner-only-file.js +36 -0
  40. package/dist/owner-only-file.js.map +1 -0
  41. package/dist/script-url-mapping.d.ts +1 -0
  42. package/dist/script-url-mapping.d.ts.map +1 -1
  43. package/dist/script-url-mapping.js +7 -0
  44. package/dist/script-url-mapping.js.map +1 -1
  45. package/dist/secret-fields.d.ts +37 -0
  46. package/dist/secret-fields.d.ts.map +1 -0
  47. package/dist/secret-fields.js +121 -0
  48. package/dist/secret-fields.js.map +1 -0
  49. package/package.json +6 -6
@@ -69,7 +69,7 @@
69
69
  *
70
70
  * - The mask is applied at CAPTURE time, via Playwright's real
71
71
  * pixel-level `page.screenshot({ mask, maskColor })` — every
72
- * `input[type="password"]` on the page by default, plus any
72
+ * `input[type="password" i]` on the page by default, plus any
73
73
  * caller-supplied `maskSelectors`. **Coverage is caller-declared, not
74
74
  * detected** (§20): this collector has no way to recognize a sensitive
75
75
  * value that isn't in a password field — a token in a URL bar, a name
@@ -121,21 +121,29 @@
121
121
  * disclosed, not solved, by this change (see this repo's decision record for
122
122
  * this feature).
123
123
  */
124
- import type { Collector } from "@descryy/runtime-contracts";
124
+ import type { Collector, ObservedElementIdentity } from "@descryy/runtime-contracts";
125
125
  import type { BrowserSession } from "./browser-session.ts";
126
126
  import { type DomElementSnapshot } from "./dom-evidence.ts";
127
127
  export interface BrowserActionCollectorOptions {
128
128
  readonly session: BrowserSession;
129
129
  /** Which owned system this collector's evidence should be attributed to (plan §16.7). Null when not applicable. */
130
130
  readonly service?: string;
131
+ readonly identify?: (selector: string) => Promise<ObservedElementIdentity>;
132
+ readonly identifyTimeoutMs?: number;
133
+ readonly extraNavigationSchemes?: readonly string[];
131
134
  }
135
+ export declare class NavigationSchemeRefusedError extends Error {
136
+ readonly url: string;
137
+ constructor(url: string, scheme: string);
138
+ }
139
+ export declare const DEFAULT_IDENTIFY_TIMEOUT_MS = 2000;
132
140
  export interface WaitForOptions {
133
141
  readonly timeoutMs?: number;
134
142
  }
135
143
  export interface ScreenshotOptions {
136
144
  /**
137
145
  * Extra selectors to mask, beyond the automatic default of every
138
- * `input[type="password"]` on the page. See this module's own header:
146
+ * `input[type="password" i]` on the page. See this module's own header:
139
147
  * coverage is caller-declared, not detected.
140
148
  */
141
149
  readonly maskSelectors?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"browser-action-collector.d.ts","sourceRoot":"","sources":["../src/browser-action-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAyE,MAAM,4BAA4B,CAAC;AAEnI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGpF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,mHAAmH;IACnH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,0MAA0M;IAC1M,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;;;;;;OAQG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAkDD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,sBAAsB,CA0S3G"}
1
+ {"version":3,"file":"browser-action-collector.d.ts","sourceRoot":"","sources":["../src/browser-action-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAyE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG5J,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKpF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,mHAAmH;IACnH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrD;AAKD,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKxC;AAED,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,0MAA0M;IAC1M,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;;;;;;OAQG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAiGD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,sBAAsB,CA8U3G"}
@@ -69,7 +69,7 @@
69
69
  *
70
70
  * - The mask is applied at CAPTURE time, via Playwright's real
71
71
  * pixel-level `page.screenshot({ mask, maskColor })` — every
72
- * `input[type="password"]` on the page by default, plus any
72
+ * `input[type="password" i]` on the page by default, plus any
73
73
  * caller-supplied `maskSelectors`. **Coverage is caller-declared, not
74
74
  * detected** (§20): this collector has no way to recognize a sensitive
75
75
  * value that isn't in a password field — a token in a URL bar, a name
@@ -121,8 +121,22 @@
121
121
  * disclosed, not solved, by this change (see this repo's decision record for
122
122
  * this feature).
123
123
  */
124
+ import { readObservedElementIdentity } from "@descryy/runtime-contracts";
124
125
  import { captureElementSnapshot } from "./dom-evidence.js";
125
126
  import { COLLECTOR_VERSION } from "./collector-version.js";
127
+ import { SECRET_INPUT_MASK_SELECTORS, SECRET_SCAN_CONFIG, scanForSecretInput } from "./secret-fields.js";
128
+ import { MAX_VIDEO_BYTES, VideoTooLargeError } from "./browser-session.js";
129
+ const WEB_NAVIGATION_SCHEMES = ["http:", "https:"];
130
+ const SECRET_CHECK_TIMEOUT_MS = 1_000;
131
+ export class NavigationSchemeRefusedError extends Error {
132
+ url;
133
+ constructor(url, scheme) {
134
+ super(`navigate() refused ${url}: the "${scheme}" scheme is not http, https or about:blank. Pass extraNavigationSchemes to allow it deliberately.`);
135
+ this.name = "NavigationSchemeRefusedError";
136
+ this.url = url;
137
+ }
138
+ }
139
+ export const DEFAULT_IDENTIFY_TIMEOUT_MS = 2_000;
126
140
  function notThisCollectorsJob(what) {
127
141
  return { availability: "unavailable", reason: `BrowserActionCollector handles DOM actions only, not ${what} -- see the dedicated collector.` };
128
142
  }
@@ -138,9 +152,23 @@ const CAPABILITIES = {
138
152
  databaseObservation: notThisCollectorsJob("database query observation"),
139
153
  externalServiceObservation: notThisCollectorsJob("external service observation"),
140
154
  };
141
- async function isPasswordField(page, selector) {
142
- const type = await page.getAttribute(selector, "type").catch(() => null);
143
- return type === "password";
155
+ async function readSecretVerdict(page, selector) {
156
+ const locator = page.locator(selector).first();
157
+ if ((await locator.count().catch(() => 0)) === 0)
158
+ return "absent";
159
+ return locator.evaluate(scanForSecretInput, { config: SECRET_SCAN_CONFIG, filledOnly: false }, { timeout: SECRET_CHECK_TIMEOUT_MS }).then((verdict) => (verdict === true ? "secret" : "plain"), () => "secret");
160
+ }
161
+ function textMustBeWithheld(before, after) {
162
+ const known = [before, after].filter((verdict) => verdict !== "absent");
163
+ return known.length === 0 || known.includes("secret");
164
+ }
165
+ function schemeOf(url) {
166
+ try {
167
+ return new URL(url).protocol;
168
+ }
169
+ catch {
170
+ return null;
171
+ }
144
172
  }
145
173
  /** Capped so a page with continuous background traffic (polling, a websocket) degrades to "waited as long as reasonable" rather than hanging `screenshot()`. See this module's header for the full rationale (RT-221). */
146
174
  const SETTLE_NETWORK_IDLE_TIMEOUT_MS = 2000;
@@ -166,10 +194,40 @@ async function waitForSettle(page) {
166
194
  });
167
195
  return settled;
168
196
  }
197
+ function refusedIdentity(reason) {
198
+ return { outcome: "refused", component: null, file: null, line: null, authoredSource: false, reason };
199
+ }
200
+ function describeError(error) {
201
+ return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
202
+ }
203
+ async function identifyWithin(identify, selector, timeoutMs) {
204
+ let timer;
205
+ const timedOut = new Promise((resolve) => {
206
+ timer = setTimeout(() => resolve("timed-out"), timeoutMs);
207
+ });
208
+ try {
209
+ const answer = await Promise.race([identify(selector), timedOut]);
210
+ if (answer === "timed-out")
211
+ return refusedIdentity(`identity grounding did not answer within ${String(timeoutMs)} ms`);
212
+ return readObservedElementIdentity(answer) ?? refusedIdentity("identity grounding returned a value that is not a readable element identity");
213
+ }
214
+ catch (error) {
215
+ return refusedIdentity(`identity grounding failed: ${describeError(error)}`);
216
+ }
217
+ finally {
218
+ clearTimeout(timer);
219
+ }
220
+ }
169
221
  export function createBrowserActionCollector(options) {
170
222
  const { session } = options;
171
223
  const { page } = session;
172
224
  let emit;
225
+ const identifyTimeoutMs = options.identifyTimeoutMs ?? DEFAULT_IDENTIFY_TIMEOUT_MS;
226
+ async function identityPayload(selector) {
227
+ if (options.identify === undefined)
228
+ return {};
229
+ return { identity: await identifyWithin(options.identify, selector, identifyTimeoutMs) };
230
+ }
173
231
  function emitEvidence(partial) {
174
232
  // A collector not yet start()-ed (or already stop()-ed) has nowhere to
175
233
  // push evidence -- silently doing nothing here would look identical to
@@ -178,6 +236,10 @@ export function createBrowserActionCollector(options) {
178
236
  emit?.({ ...partial, collectorVersion: COLLECTOR_VERSION });
179
237
  }
180
238
  async function navigate(url) {
239
+ const scheme = schemeOf(url);
240
+ const permitted = url === "about:blank" || (scheme !== null && (WEB_NAVIGATION_SCHEMES.includes(scheme) || (options.extraNavigationSchemes ?? []).includes(scheme)));
241
+ if (!permitted)
242
+ throw new NavigationSchemeRefusedError(url, scheme ?? "unparseable");
181
243
  const response = await page.goto(url);
182
244
  // B3: `page.goto()`'s default `waitUntil: "load"` fires once the
183
245
  // document and its subresources have loaded and says nothing about XHR
@@ -208,6 +270,7 @@ export function createBrowserActionCollector(options) {
208
270
  }
209
271
  async function click(selector) {
210
272
  const element = await captureElementSnapshot(page, selector);
273
+ const identity = await identityPayload(selector);
211
274
  await page.click(selector);
212
275
  emitEvidence({
213
276
  timestamp: new Date().toISOString(),
@@ -215,7 +278,7 @@ export function createBrowserActionCollector(options) {
215
278
  service: options.service ?? null,
216
279
  process: null,
217
280
  eventType: "CLICK",
218
- payload: { selector, element, browserSessionId: session.sessionId },
281
+ payload: { selector, element, ...identity, browserSessionId: session.sessionId },
219
282
  traceId: null,
220
283
  requestId: null,
221
284
  correlationId: null,
@@ -234,8 +297,9 @@ export function createBrowserActionCollector(options) {
234
297
  * later edit ends up redacting in one of them and not the other.
235
298
  */
236
299
  async function enterText(selector, text, mode) {
237
- const isPassword = await isPasswordField(page, selector);
300
+ const secretBefore = await readSecretVerdict(page, selector);
238
301
  const element = await captureElementSnapshot(page, selector);
302
+ const identity = await identityPayload(selector);
239
303
  if (mode === "replace") {
240
304
  await page.fill(selector, text);
241
305
  }
@@ -243,8 +307,10 @@ export function createBrowserActionCollector(options) {
243
307
  // Real key events, one per character, on top of the existing value --
244
308
  // `page.type()` is deprecated in favour of this, and `fill()` is not a
245
309
  // substitute for it (see the interface comment).
246
- await page.locator(selector).pressSequentially(text);
310
+ await page.locator(selector).first().pressSequentially(text);
247
311
  }
312
+ const secretAfter = await readSecretVerdict(page, selector);
313
+ const textWithheld = textMustBeWithheld(secretBefore, secretAfter);
248
314
  emitEvidence({
249
315
  timestamp: new Date().toISOString(),
250
316
  source: "browser-dom",
@@ -260,7 +326,7 @@ export function createBrowserActionCollector(options) {
260
326
  // `mode` is recorded because the payload otherwise reads identically
261
327
  // for the two verbs, and "the field now contains X" and "X was added to
262
328
  // whatever the field contained" are different facts about the run.
263
- payload: { selector, text: isPassword ? null : text, mode, element, browserSessionId: session.sessionId },
329
+ payload: { selector, text: textWithheld ? null : text, ...(textWithheld ? { textWithheld: true } : {}), mode, element, ...identity, browserSessionId: session.sessionId },
264
330
  traceId: null,
265
331
  requestId: null,
266
332
  correlationId: null,
@@ -279,6 +345,7 @@ export function createBrowserActionCollector(options) {
279
345
  }
280
346
  async function select(selector, value) {
281
347
  const element = await captureElementSnapshot(page, selector);
348
+ const identity = await identityPayload(selector);
282
349
  await page.selectOption(selector, value);
283
350
  emitEvidence({
284
351
  timestamp: new Date().toISOString(),
@@ -286,7 +353,7 @@ export function createBrowserActionCollector(options) {
286
353
  service: options.service ?? null,
287
354
  process: null,
288
355
  eventType: "INPUT",
289
- payload: { selector, value, element, browserSessionId: session.sessionId },
356
+ payload: { selector, value, element, ...identity, browserSessionId: session.sessionId },
290
357
  traceId: null,
291
358
  requestId: null,
292
359
  correlationId: null,
@@ -333,7 +400,7 @@ export function createBrowserActionCollector(options) {
333
400
  }
334
401
  }
335
402
  async function screenshot(screenshotOptions = {}) {
336
- const maskSelectors = ['input[type="password"]', ...(screenshotOptions.maskSelectors ?? [])];
403
+ const maskSelectors = [...SECRET_INPUT_MASK_SELECTORS, ...(screenshotOptions.maskSelectors ?? [])];
337
404
  await waitForSettle(page);
338
405
  const buffer = await page.screenshot({
339
406
  mask: maskSelectors.map((selector) => page.locator(selector)),
@@ -368,7 +435,31 @@ export function createBrowserActionCollector(options) {
368
435
  });
369
436
  }
370
437
  async function captureVideo() {
371
- const bytes = await session.finishedVideo();
438
+ let bytes;
439
+ try {
440
+ bytes = await session.finishedVideo();
441
+ }
442
+ catch (error) {
443
+ if (!(error instanceof VideoTooLargeError))
444
+ throw error;
445
+ emitEvidence({
446
+ timestamp: new Date().toISOString(),
447
+ source: "browser-dom",
448
+ service: options.service ?? null,
449
+ process: null,
450
+ eventType: "VIDEO",
451
+ payload: { videoBase64: null, videoOmitted: error.message, videoBytes: error.sizeBytes, videoMaxBytes: MAX_VIDEO_BYTES, browserSessionId: session.sessionId },
452
+ traceId: null,
453
+ requestId: null,
454
+ correlationId: null,
455
+ graphNodeId: null,
456
+ sourceLocation: null,
457
+ stackTrace: null,
458
+ confidence: 1,
459
+ redactionStatus: "pending-redaction",
460
+ });
461
+ return;
462
+ }
372
463
  if (bytes === null)
373
464
  return; // recordVideo was never enabled for this session -- nothing to report, not an error.
374
465
  emitEvidence({
@@ -1 +1 @@
1
- {"version":3,"file":"browser-action-collector.js","sourceRoot":"","sources":["../src/browser-action-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-action-collector.js","sourceRoot":"","sources":["../src/browser-action-collector.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,7 @@ export interface BrowserConsoleCollectorOptions {
21
21
  */
22
22
  readonly stackTraceParser?: StackTraceParser;
23
23
  }
24
+ export declare const MAX_CONSOLE_MESSAGES = 5000;
25
+ export declare const MAX_CONSOLE_TEXT_CHARS = 8000;
24
26
  export declare function createBrowserConsoleCollector(options: BrowserConsoleCollectorOptions): Collector;
25
27
  //# sourceMappingURL=browser-console-collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-console-collector.d.ts","sourceRoot":"","sources":["../src/browser-console-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAqF,MAAM,4BAA4B,CAAC;AAG/I,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAgDD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,SAAS,CAgHhG"}
1
+ {"version":3,"file":"browser-console-collector.d.ts","sourceRoot":"","sources":["../src/browser-console-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAqF,MAAM,4BAA4B,CAAC;AAG/I,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAC1C,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAgD5C,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,SAAS,CAoKhG"}
@@ -12,6 +12,8 @@ import { primaryFrameLocation } from "@descryy/runtime-contracts";
12
12
  import { extractCorrelationIds } from "@descryy/runtime-backend-observation";
13
13
  import { rewriteScriptUrls } from "./script-url-mapping.js";
14
14
  import { COLLECTOR_VERSION } from "./collector-version.js";
15
+ export const MAX_CONSOLE_MESSAGES = 5_000;
16
+ export const MAX_CONSOLE_TEXT_CHARS = 8_000;
15
17
  function notThisCollectorsJob(what) {
16
18
  return { availability: "unavailable", reason: `BrowserConsoleCollector handles console/page-error observation only, not ${what} -- see the dedicated collector.` };
17
19
  }
@@ -71,8 +73,42 @@ export function createBrowserConsoleCollector(options) {
71
73
  * drains this set first.
72
74
  */
73
75
  const inFlight = new Set();
76
+ let consoleMessagesSeen = 0;
77
+ function emitBudgetNotice(message) {
78
+ emit?.({
79
+ timestamp: new Date().toISOString(),
80
+ source: "browser-console",
81
+ service: options.service ?? null,
82
+ process: null,
83
+ eventType: "COLLECTOR_ERROR",
84
+ payload: {
85
+ raw: `browser console collector for session "${session.sessionId}": ${message}`,
86
+ collectorId: `browser-console:${session.sessionId}`,
87
+ error: message,
88
+ browserSessionId: session.sessionId,
89
+ },
90
+ traceId: null,
91
+ requestId: null,
92
+ correlationId: null,
93
+ graphNodeId: null,
94
+ sourceLocation: null,
95
+ stackTrace: null,
96
+ confidence: 1,
97
+ redactionStatus: "pending-redaction",
98
+ collectorVersion: COLLECTOR_VERSION,
99
+ });
100
+ }
74
101
  function onConsole(msg) {
75
- const text = msg.text();
102
+ consoleMessagesSeen += 1;
103
+ if (consoleMessagesSeen > MAX_CONSOLE_MESSAGES) {
104
+ if (consoleMessagesSeen === MAX_CONSOLE_MESSAGES + 1) {
105
+ emitBudgetNotice(`more than ${String(MAX_CONSOLE_MESSAGES)} console messages were logged; the rest are counted and not recorded.`);
106
+ }
107
+ return;
108
+ }
109
+ const fullText = msg.text();
110
+ const textTruncated = fullText.length > MAX_CONSOLE_TEXT_CHARS;
111
+ const text = textTruncated ? fullText.slice(0, MAX_CONSOLE_TEXT_CHARS) : fullText;
76
112
  const { traceId, requestId } = extractCorrelationIds(text);
77
113
  emit?.({
78
114
  timestamp: new Date().toISOString(),
@@ -80,7 +116,13 @@ export function createBrowserConsoleCollector(options) {
80
116
  service: options.service ?? null,
81
117
  process: null,
82
118
  eventType: "CONSOLE_MESSAGE",
83
- payload: { level: msg.type(), text, location: msg.location(), browserSessionId: session.sessionId },
119
+ payload: {
120
+ level: msg.type(),
121
+ text,
122
+ ...(textTruncated ? { textTruncated: true, textLength: fullText.length } : {}),
123
+ location: msg.location(),
124
+ browserSessionId: session.sessionId,
125
+ },
84
126
  traceId,
85
127
  requestId,
86
128
  correlationId: null,
@@ -94,15 +136,23 @@ export function createBrowserConsoleCollector(options) {
94
136
  }
95
137
  function onPageError(error) {
96
138
  const rawStack = error.stack ?? null;
139
+ const observedAt = new Date().toISOString();
97
140
  const handled = (async () => {
98
141
  let stackTrace = null;
99
142
  let mapping = null;
143
+ let stackParseError = null;
100
144
  if (stacksParsed && rawStack !== null && options.stackTraceParser !== undefined) {
101
- mapping = rewriteScriptUrls(rawStack, resolveSourceRoot);
102
- stackTrace = await options.stackTraceParser.parse(mapping.text);
145
+ try {
146
+ mapping = rewriteScriptUrls(rawStack, resolveSourceRoot);
147
+ stackTrace = await options.stackTraceParser.parse(mapping.text);
148
+ }
149
+ catch (parseFailure) {
150
+ stackTrace = null;
151
+ stackParseError = parseFailure instanceof Error ? parseFailure.message : String(parseFailure);
152
+ }
103
153
  }
104
154
  emit?.({
105
- timestamp: new Date().toISOString(),
155
+ timestamp: observedAt,
106
156
  source: "browser-console",
107
157
  service: options.service ?? null,
108
158
  process: null,
@@ -114,6 +164,7 @@ export function createBrowserConsoleCollector(options) {
114
164
  browserSessionId: session.sessionId,
115
165
  // per-URL outcomes, not a boolean -- collapsing would hide the partially-mapped case.
116
166
  ...(mapping !== null ? { scriptUrlMapping: mapping.outcomes } : {}),
167
+ ...(stackParseError !== null ? { stackParseError } : {}),
117
168
  },
118
169
  traceId: null,
119
170
  requestId: null,
@@ -129,7 +180,7 @@ export function createBrowserConsoleCollector(options) {
129
180
  });
130
181
  })();
131
182
  inFlight.add(handled);
132
- void handled.finally(() => inFlight.delete(handled));
183
+ void handled.catch(() => undefined).finally(() => inFlight.delete(handled));
133
184
  }
134
185
  return {
135
186
  collectorId: `browser-console:${session.sessionId}`,
@@ -152,6 +203,9 @@ export function createBrowserConsoleCollector(options) {
152
203
  // drain then clear emit -- clearing first silently dropped the last page error.
153
204
  // allSettled: a handler that threw already failed on its own terms and shouldn't block the rest.
154
205
  await Promise.allSettled([...inFlight]);
206
+ if (consoleMessagesSeen > MAX_CONSOLE_MESSAGES) {
207
+ emitBudgetNotice(`${String(consoleMessagesSeen - MAX_CONSOLE_MESSAGES)} console messages beyond the first ${String(MAX_CONSOLE_MESSAGES)} were not recorded.`);
208
+ }
155
209
  emit = undefined;
156
210
  },
157
211
  capabilities() {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-console-collector.js","sourceRoot":"","sources":["../src/browser-console-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-console-collector.js","sourceRoot":"","sources":["../src/browser-console-collector.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,9 @@
28
28
  * forever, not evidence.
29
29
  *
30
30
  * **B3: every `NETWORK_RESPONSE`/`HTTP_ERROR` payload above also carries an
31
- * `outcome`** — `"answered"` (a real response arrived, any status) or
31
+ * `outcome`** — `"answered"` (a real response arrived, any status),
32
+ * `"aborted"` with an `abortedBy` of `navigation`, `page` or `origin-guard`
33
+ * (cancelled on the client side, not a server failure), or
32
34
  * `"unanswered"` (a real Playwright `requestfailed`, this collector's own
33
35
  * timeout, a WebSocket `socketerror`, or the session closing while the
34
36
  * request was still open — see `stop()`). A `NETWORK_REQUEST` with neither
@@ -158,8 +160,17 @@ export interface CapturedResponseBody {
158
160
  readonly bodyTruncated: boolean;
159
161
  /** The real size in bytes, when known -- from `content-length` (never-read case) or measured after reading; null when neither is available. */
160
162
  readonly bodyByteLength: number | null;
163
+ readonly bodySkippedReason?: string;
161
164
  }
162
165
  /** Exported for direct unit testing (RT-261) -- exercising the cap does not need a real browser response, just something shaped like one. */
163
166
  export declare function captureResponseBody(response: Response, headers: Readonly<Record<string, string>>): Promise<CapturedResponseBody>;
167
+ export declare const MAX_REQUEST_BODY_BYTES: number;
168
+ export interface CapturedRequestBody {
169
+ readonly postData: string | null;
170
+ readonly postDataTruncated: boolean;
171
+ readonly postDataByteLength: number | null;
172
+ readonly postDataBinary: boolean;
173
+ }
174
+ export declare function captureRequestBody(body: Buffer | null): CapturedRequestBody;
164
175
  export declare function createBrowserNetworkCollector(options: BrowserNetworkCollectorOptions): Collector;
165
176
  //# sourceMappingURL=browser-network-collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-network-collector.d.ts","sourceRoot":"","sources":["../src/browser-network-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHG;AAEH,OAAO,KAAK,EAAW,QAAQ,EAAoC,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAqG,MAAM,4BAA4B,CAAC;AAE/J,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAyED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,sLAAsL;IACtL,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yIAAyI;IACzI,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,+IAA+I;IAC/I,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAWD,6IAA6I;AAC7I,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuBtI;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,SAAS,CAgqBhG"}
1
+ {"version":3,"file":"browser-network-collector.d.ts","sourceRoot":"","sources":["../src/browser-network-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsHG;AAEH,OAAO,KAAK,EAAW,QAAQ,EAAoC,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAqG,MAAM,4BAA4B,CAAC;AAE/J,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAoFD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,sLAAsL;IACtL,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yIAAyI;IACzI,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,+IAA+I;IAC/I,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAaD,6IAA6I;AAC7I,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0BtI;AAED,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,mBAAmB,CAc3E;AAUD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,SAAS,CAixBhG"}