@gate-forge/witness 0.13.0 → 0.13.2

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,4 +1,3 @@
1
- /** Pure route matching and grading for browser-observed page visits. */
2
1
  /**
3
2
  * Grades a visit's tracked app data request set as settled: no request is
4
3
  * still outstanding, and every failure is a client-side cancel
@@ -14,6 +13,73 @@ export function apiRequestsSettled(input) {
14
13
  const completed = new Set(input.completions.map(({ method, url }) => `${method} ${url}`));
15
14
  return input.failures.every((failure) => failure.errorText === 'net::ERR_ABORTED' && completed.has(`${failure.method} ${failure.url}`));
16
15
  }
16
+ /** How many culprits the diagnosis carries before it stops listing. */
17
+ const UNSETTLED_REQUESTS_CAP = 5;
18
+ /**
19
+ * Names the requests that left a visit's app data set unsettled, with the
20
+ * SAME settled rule {@link apiRequestsSettled} grades by: every failure
21
+ * that did NOT count as settled (an abort counts only when a completed
22
+ * same-method/full-URL request superseded it) keeps its real browser
23
+ * error text, and every request still open at grading time is listed as
24
+ * `outstanding`. Capped at five, urls without their query — this is the
25
+ * one-line "which request hung?" answer, not a transcript.
26
+ *
27
+ * Args:
28
+ * input.outstanding: the requests still open at grading time.
29
+ * input.failures: the requests that failed without completing.
30
+ * input.completions: the requests that reached completion.
31
+ *
32
+ * Returns:
33
+ * UnsettledRequest[]: at most five entries; failures first.
34
+ */
35
+ export function unsettledRequestsOf(input) {
36
+ const completed = new Set(input.completions.map(({ method, url }) => `${method} ${url}`));
37
+ const withoutQuery = (url) => {
38
+ try {
39
+ return new URL(url).pathname;
40
+ }
41
+ catch {
42
+ return url;
43
+ }
44
+ };
45
+ return [
46
+ ...input.failures
47
+ .filter((failure) => !(failure.errorText === 'net::ERR_ABORTED' && completed.has(`${failure.method} ${failure.url}`)))
48
+ .map(({ method, url, errorText }) => ({ method, url: withoutQuery(url), errorText })),
49
+ ...input.outstanding.map(({ method, url }) => ({ method, url: withoutQuery(url), errorText: 'outstanding' })),
50
+ ].slice(0, UNSETTLED_REQUESTS_CAP);
51
+ }
52
+ /**
53
+ * The response that refused data-ok with PAGE_API_ERROR, as one
54
+ * `METHOD path -> status` line, or null. The anonymous-401 exemption is
55
+ * the grader's own ({@link gradePageVisit}): on a page whose audience
56
+ * declares no login, a 401 is the expected not-logged-in answer and is
57
+ * not the refusing response.
58
+ *
59
+ * Args:
60
+ * responses: the visit's collected app data responses.
61
+ * anonymous: the page's anonymous flag (audience without login).
62
+ *
63
+ * Returns:
64
+ * string | null: the first refusing response, or null.
65
+ */
66
+ export function apiErrorDetailOf(responses, anonymous) {
67
+ for (const response of responses) {
68
+ if (response.status < 400)
69
+ continue;
70
+ if (response.status === 401 && anonymous)
71
+ continue;
72
+ let path = response.url;
73
+ try {
74
+ path = new URL(response.url).pathname;
75
+ }
76
+ catch {
77
+ // Keep the raw text when the url does not parse.
78
+ }
79
+ return `${response.method} ${path} -> ${String(response.status)}`;
80
+ }
81
+ return null;
82
+ }
17
83
  function pathname(raw) {
18
84
  try {
19
85
  return new URL(raw, 'http://gateforge.invalid').pathname.replace(/\/+$/, '') || '/';
@@ -32,6 +98,24 @@ export function matchPageRoute(routePath, rawUrl) {
32
98
  const actualParts = actual.split('/').filter(Boolean);
33
99
  return templateParts.length === actualParts.length && templateParts.every((part, index) => part.startsWith(':') ? actualParts[index] !== '' : part === actualParts[index]);
34
100
  }
101
+ /**
102
+ * The declared login route a visit landed on, or null. A visit whose
103
+ * REQUESTED route is itself a declared login page never counts: a
104
+ * directly opened declared login page is a legitimate public page, only
105
+ * a bounced protected navigation is a rejected session.
106
+ */
107
+ export function landedLoginRoute(finalUrl, requestedPath, loginRoutes) {
108
+ const finalPath = pathname(finalUrl);
109
+ if (finalPath === null)
110
+ return null;
111
+ const matched = loginRoutes.find((route) => pathname(route) === finalPath);
112
+ if (matched === undefined)
113
+ return null;
114
+ const requested = pathname(requestedPath);
115
+ if (requested !== null && loginRoutes.some((route) => pathname(route) === requested))
116
+ return null;
117
+ return matched;
118
+ }
35
119
  /**
36
120
  * Grade one settled visit using only witness-collected browser observations.
37
121
  *
@@ -1 +1 @@
1
- {"version":3,"file":"page-observation.js","sourceRoot":"","sources":["../../src/witness/page-observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-observation.js","sourceRoot":"","sources":["../../src/witness/page-observation.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ServerResponse } from 'node:http';
2
2
  import type { PageObservationContext, SessionPageObserverRequest } from './types.js';
3
3
  import { type EngineBrowserManager } from './browser.js';
4
4
  import { type PageObserver } from './page-observer.js';
5
- import type { PageRoute, PageVisitVerdict } from './page-observation.js';
5
+ import { type ObservedPageVisit, type PageRoute, type PageVisitVerdict } from './page-observation.js';
6
6
  export interface PageObserverRegistrationState {
7
7
  pageObservers: Map<string, PageObserver>;
8
8
  pageObservationRecords: Map<string, string[]>;
@@ -32,18 +32,75 @@ export declare function registerPageObserver(input: {
32
32
  };
33
33
  issueRecord(obligationId: string, testId: string, payload: unknown): string;
34
34
  }): Promise<void>;
35
+ /**
36
+ * One sweep progress line, emitted as each visit finishes so a killed run
37
+ * keeps the lines it already earned. `detail` names WHY the page refused
38
+ * when the reason alone cannot: the unsettled requests for
39
+ * PAGE_API_UNSETTLED, the refusing response for PAGE_API_ERROR — appended
40
+ * after the timing as `: <detail>`.
41
+ */
42
+ export declare function formatSweepProgress(info: {
43
+ index: number;
44
+ total: number;
45
+ audience: string;
46
+ path: string;
47
+ proven: boolean;
48
+ firstReason: string | null;
49
+ ms: number;
50
+ detail?: string | null;
51
+ }): string;
52
+ /**
53
+ * The progress-line detail for one refused visit: the unsettled requests
54
+ * for PAGE_API_UNSETTLED (`GET /a net::ERR_ABORTED; POST /b outstanding`),
55
+ * the refusing response for PAGE_API_ERROR (`GET /api/y -> 500`, with the
56
+ * grader's own anonymous-401 exemption), null for every other reason.
57
+ *
58
+ * Args:
59
+ * firstReason: the first refusal reason of the verdict.
60
+ * visit: the visit the verdict graded.
61
+ * anonymous: the page's anonymous flag (audience without login).
62
+ *
63
+ * Returns:
64
+ * string | null: the appended detail, or null when the reason is
65
+ * self-explanatory.
66
+ */
67
+ export declare function progressDetailFor(firstReason: string | null, visit: ObservedPageVisit, anonymous: boolean): string | null;
68
+ /** One swept route outcome: the page verdict plus whether the sweep visited it. */
69
+ export interface SweptPageVisit {
70
+ routeId: string;
71
+ verdict: PageVisitVerdict;
72
+ /** False when the sweep refused this page WITHOUT visiting it. */
73
+ visited: boolean;
74
+ }
75
+ /** The outcome of one audience's swept page visits. */
76
+ export interface PageSweepResult {
77
+ visits: SweptPageVisit[];
78
+ /**
79
+ * Set when the audience's session was rejected on the FIRST visited
80
+ * page (it landed on a declared login route): the remaining pages were
81
+ * refused WITHOUT visiting, with PAGE_AUDIENCE_SESSION_INVALID.
82
+ */
83
+ sessionRejected: {
84
+ path: string;
85
+ login: string;
86
+ notVisited: number;
87
+ } | null;
88
+ }
35
89
  export declare function sweepPageVisits(input: {
36
90
  browser: EngineBrowserManager;
37
91
  sessionId: string;
38
92
  testId: string;
39
93
  appBase: string;
94
+ /** The audience these routes belong to (named in progress lines). */
95
+ audience: string;
40
96
  routes: readonly PageRoute[];
41
97
  loginRoutes: readonly string[];
42
98
  errorMarkers: readonly string[];
99
+ /** Declared live-channel path prefixes (same rule as the observed channel). */
100
+ liveChannels: readonly string[];
43
101
  storageState?: unknown;
102
+ /** Called as each visited page finishes, with its one progress line. */
103
+ onProgress?: (line: string) => void;
44
104
  issueRecord(obligationId: string, testId: string, payload: unknown): string;
45
- }): Promise<Array<{
46
- routeId: string;
47
- verdict: PageVisitVerdict;
48
- }>>;
105
+ }): Promise<PageSweepResult>;
49
106
  //# sourceMappingURL=page-observer-registration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-observer-registration.d.ts","sourceRoot":"","sources":["../../src/witness/page-observer-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzF,yEAAyE;IACzE,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAIrD;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,6BAA6B,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,0BAA0B,CAAC;IACjC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAC7C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,uEAAuE;QACvE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7E,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GhB;AAgDD,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7E,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC,CAiCjE"}
1
+ {"version":3,"file":"page-observer-registration.d.ts","sourceRoot":"","sources":["../../src/witness/page-observer-registration.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { driveEngineVisit } from './browser.js';
2
2
  import { observePageBrowser } from './page-observer.js';
3
+ import { apiErrorDetailOf, landedLoginRoute, } from './page-observation.js';
3
4
  export class PageObserverRegistrationError extends Error {
4
5
  status;
5
6
  constructor(message, status) {
@@ -46,6 +47,7 @@ export async function registerPageObserver(input) {
46
47
  loginRoutes: context.loginRoutes,
47
48
  errorMarkers: context.errorMarkers,
48
49
  appOrigins: context.appOrigins,
50
+ liveChannels: context.liveChannels ?? [],
49
51
  isProxiedExchange(url, status) {
50
52
  const path = new URL(url).pathname;
51
53
  const exchange = state.observed.find((candidate) => candidate.sessionId === session.sessionId && candidate.path === path && candidate.status === status &&
@@ -88,10 +90,12 @@ export async function registerPageObserver(input) {
88
90
  navigations: visit.navigations,
89
91
  exceptions: visit.exceptions,
90
92
  domMarkerHit: visit.domMarkerHit,
91
- apiStatuses: visit.apiResponses.map(({ url, status, remoteAddress, proxied }) => ({ url, status, remoteAddress, proxied })),
93
+ apiStatuses: visit.apiResponses.map(({ method, url, status, remoteAddress, proxied }) => ({ method, url, status, remoteAddress, proxied })),
92
94
  // One payload shared by both promise records; the sequence
93
95
  // increases on every observation of this registered session.
94
96
  apiRequestsSettled: visit.apiRequestsSettled,
97
+ unsettledRequests: visit.unsettledRequests,
98
+ liveChannels: visit.liveChannels,
95
99
  observationSequence: observationSequence++,
96
100
  loads: finalVerdict.loads,
97
101
  dataOk: finalVerdict.dataOk,
@@ -157,14 +161,90 @@ function normalizePageStorageState(raw) {
157
161
  });
158
162
  return { cookies, origins };
159
163
  }
164
+ /**
165
+ * One sweep progress line, emitted as each visit finishes so a killed run
166
+ * keeps the lines it already earned. `detail` names WHY the page refused
167
+ * when the reason alone cannot: the unsettled requests for
168
+ * PAGE_API_UNSETTLED, the refusing response for PAGE_API_ERROR — appended
169
+ * after the timing as `: <detail>`.
170
+ */
171
+ export function formatSweepProgress(info) {
172
+ const outcome = info.proven ? 'proven' : `refused${info.firstReason === null ? '' : ` ${info.firstReason}`}`;
173
+ const suffix = info.detail === undefined || info.detail === null || info.detail === '' ? '' : `: ${info.detail}`;
174
+ return `page ${String(info.index)}/${String(info.total)} ${info.audience} ${info.path} -> ${outcome} (${String(info.ms)} ms)${suffix}`;
175
+ }
176
+ /**
177
+ * The progress-line detail for one refused visit: the unsettled requests
178
+ * for PAGE_API_UNSETTLED (`GET /a net::ERR_ABORTED; POST /b outstanding`),
179
+ * the refusing response for PAGE_API_ERROR (`GET /api/y -> 500`, with the
180
+ * grader's own anonymous-401 exemption), null for every other reason.
181
+ *
182
+ * Args:
183
+ * firstReason: the first refusal reason of the verdict.
184
+ * visit: the visit the verdict graded.
185
+ * anonymous: the page's anonymous flag (audience without login).
186
+ *
187
+ * Returns:
188
+ * string | null: the appended detail, or null when the reason is
189
+ * self-explanatory.
190
+ */
191
+ export function progressDetailFor(firstReason, visit, anonymous) {
192
+ if (firstReason === 'PAGE_API_UNSETTLED') {
193
+ const detail = visit.unsettledRequests
194
+ .map(({ method, url, errorText }) => `${method} ${url} ${errorText}`)
195
+ .join('; ');
196
+ return detail === '' ? null : detail;
197
+ }
198
+ if (firstReason === 'PAGE_API_ERROR')
199
+ return apiErrorDetailOf(visit.apiResponses, anonymous);
200
+ return null;
201
+ }
160
202
  export async function sweepPageVisits(input) {
161
203
  const page = await input.browser.pageFor(input.sessionId, normalizePageStorageState(input.storageState));
162
204
  const visits = [];
163
205
  let observationSequence = 0;
164
- for (const route of input.routes) {
206
+ // A session the app rejects (e.g. a rotating refresh token the suite's
207
+ // own storage-state file already consumed) bounces the FIRST visited
208
+ // page to a declared login route. Every further route could only
209
+ // bounce the same way, so they are refused WITHOUT visiting; the
210
+ // records still issue, and the payload says the page was not visited
211
+ // and why. Session-less audiences are unaffected.
212
+ let sessionRejected = null;
213
+ for (const [index, route] of input.routes.entries()) {
214
+ if (sessionRejected !== null) {
215
+ const verdict = {
216
+ pageId: route.id,
217
+ finalUrl: route.path,
218
+ loads: { satisfied: false, refusalReasons: ['PAGE_AUDIENCE_SESSION_INVALID'] },
219
+ dataOk: { satisfied: false, refusalReasons: ['PAGE_AUDIENCE_SESSION_INVALID'] },
220
+ };
221
+ const payload = {
222
+ channel: 'swept',
223
+ routeId: verdict.pageId,
224
+ // The page was never visited; the payload says so and why.
225
+ notVisited: 'PAGE_AUDIENCE_SESSION_INVALID',
226
+ finalUrl: route.path,
227
+ navigations: [],
228
+ exceptions: [],
229
+ domMarkerHit: false,
230
+ apiStatuses: [],
231
+ apiRequestsSettled: true,
232
+ unsettledRequests: [],
233
+ liveChannels: { count: 0, paths: [] },
234
+ observationSequence: observationSequence++,
235
+ loads: verdict.loads,
236
+ dataOk: verdict.dataOk,
237
+ };
238
+ input.issueRecord(`${verdict.pageId}:page:loads`, input.testId, payload);
239
+ input.issueRecord(`${verdict.pageId}:page:data-ok`, input.testId, payload);
240
+ visits.push({ routeId: route.id, verdict, visited: false });
241
+ continue;
242
+ }
243
+ const visitStartedAt = Date.now();
165
244
  const observation = await driveEngineVisit(page, input.appBase, route, input.routes, {
166
245
  loginRoutes: input.loginRoutes,
167
246
  errorMarkers: input.errorMarkers,
247
+ liveChannels: input.liveChannels,
168
248
  });
169
249
  const { verdict, visit } = observation;
170
250
  if (verdict.pageId === null) {
@@ -177,18 +257,36 @@ export async function sweepPageVisits(input) {
177
257
  navigations: visit.navigations,
178
258
  exceptions: visit.exceptions,
179
259
  domMarkerHit: visit.domMarkerHit,
180
- apiStatuses: visit.apiResponses.map(({ url, status, remoteAddress, proxied }) => ({ url, status, remoteAddress, proxied })),
260
+ apiStatuses: visit.apiResponses.map(({ method, url, status, remoteAddress, proxied }) => ({ method, url, status, remoteAddress, proxied })),
181
261
  // One payload reused for both contracts; the sequence increases
182
262
  // within this sweep.
183
263
  apiRequestsSettled: visit.apiRequestsSettled,
264
+ unsettledRequests: visit.unsettledRequests,
265
+ liveChannels: visit.liveChannels,
184
266
  observationSequence: observationSequence++,
185
267
  loads: verdict.loads,
186
268
  dataOk: verdict.dataOk,
187
269
  };
188
270
  input.issueRecord(`${verdict.pageId}:page:loads`, input.testId, payload);
189
271
  input.issueRecord(`${verdict.pageId}:page:data-ok`, input.testId, payload);
190
- visits.push({ routeId: verdict.pageId, verdict });
272
+ visits.push({ routeId: verdict.pageId, verdict, visited: true });
273
+ input.onProgress?.(formatSweepProgress({
274
+ index: index + 1,
275
+ total: input.routes.length,
276
+ audience: input.audience,
277
+ path: route.path,
278
+ proven: verdict.loads.satisfied && verdict.dataOk.satisfied,
279
+ firstReason: verdict.loads.refusalReasons[0] ?? verdict.dataOk.refusalReasons[0] ?? null,
280
+ ms: Date.now() - visitStartedAt,
281
+ detail: progressDetailFor(verdict.loads.refusalReasons[0] ?? verdict.dataOk.refusalReasons[0] ?? null, visit, route.anonymous === true),
282
+ }));
283
+ if (index === 0 && input.storageState !== undefined) {
284
+ const login = landedLoginRoute(visit.url, route.path, input.loginRoutes);
285
+ if (login !== null) {
286
+ sessionRejected = { path: route.path, login, notVisited: input.routes.length - 1 };
287
+ }
288
+ }
191
289
  }
192
- return visits;
290
+ return { visits, sessionRejected };
193
291
  }
194
292
  //# sourceMappingURL=page-observer-registration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-observer-registration.js","sourceRoot":"","sources":["../../src/witness/page-observer-registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-observer-registration.js","sourceRoot":"","sources":["../../src/witness/page-observer-registration.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface PageObserverOptions {
5
5
  loginRoutes?: readonly string[];
6
6
  errorMarkers: readonly string[];
7
7
  appOrigins: readonly string[];
8
+ /** Controller-declared live-channel path prefixes (`pages.liveChannels`). */
9
+ liveChannels?: readonly string[];
8
10
  isProxiedExchange: (url: string, status: number) => boolean;
9
11
  onVisit: (visit: ObservedPageVisit, verdict: PageVisitVerdict) => void | Promise<void>;
10
12
  quietMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"page-observer.d.ts","sourceRoot":"","sources":["../../src/witness/page-observer.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyDD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAoDD,qFAAqF;AACrF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmY5F"}
1
+ {"version":3,"file":"page-observer.d.ts","sourceRoot":"","sources":["../../src/witness/page-observer.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2DD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA6FD,qFAAqF;AACrF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0b5F"}