@shadowcoderr/context-graph 0.3.3 → 0.3.5
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/README.md +439 -88
- package/dist/analyzers/a11y-extractor.d.ts +19 -5
- package/dist/analyzers/a11y-extractor.d.ts.map +1 -1
- package/dist/analyzers/a11y-extractor.js +274 -104
- package/dist/analyzers/a11y-extractor.js.map +1 -1
- package/dist/analyzers/network-logger.d.ts +20 -2
- package/dist/analyzers/network-logger.d.ts.map +1 -1
- package/dist/analyzers/network-logger.js +122 -42
- package/dist/analyzers/network-logger.js.map +1 -1
- package/dist/analyzers/network-patterns.d.ts +73 -0
- package/dist/analyzers/network-patterns.d.ts.map +1 -0
- package/dist/analyzers/network-patterns.js +316 -0
- package/dist/analyzers/network-patterns.js.map +1 -0
- package/dist/analyzers/page-notifier.d.ts +40 -0
- package/dist/analyzers/page-notifier.d.ts.map +1 -0
- package/dist/analyzers/page-notifier.js +198 -0
- package/dist/analyzers/page-notifier.js.map +1 -0
- package/dist/analyzers/screenshot-capturer.d.ts +73 -0
- package/dist/analyzers/screenshot-capturer.d.ts.map +1 -0
- package/dist/analyzers/screenshot-capturer.js +190 -0
- package/dist/analyzers/screenshot-capturer.js.map +1 -0
- package/dist/cli/index.js +15 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +8 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +7 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/core/browser-adapter.d.ts.map +1 -1
- package/dist/core/browser-adapter.js +0 -2
- package/dist/core/browser-adapter.js.map +1 -1
- package/dist/core/capture-engine.d.ts +30 -25
- package/dist/core/capture-engine.d.ts.map +1 -1
- package/dist/core/capture-engine.js +290 -276
- package/dist/core/capture-engine.js.map +1 -1
- package/dist/core/runtime.d.ts +1 -0
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +21 -0
- package/dist/core/runtime.js.map +1 -1
- package/dist/exporters/ai-context-bundler.d.ts +88 -0
- package/dist/exporters/ai-context-bundler.d.ts.map +1 -0
- package/dist/exporters/ai-context-bundler.js +380 -0
- package/dist/exporters/ai-context-bundler.js.map +1 -0
- package/dist/security/redactor.d.ts +16 -0
- package/dist/security/redactor.d.ts.map +1 -1
- package/dist/security/redactor.js +127 -57
- package/dist/security/redactor.js.map +1 -1
- package/dist/storage/engine.d.ts +24 -21
- package/dist/storage/engine.d.ts.map +1 -1
- package/dist/storage/engine.js +208 -175
- package/dist/storage/engine.js.map +1 -1
- package/dist/types/config.d.ts +4 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/notifications.d.ts +37 -0
- package/dist/types/notifications.d.ts.map +1 -0
- package/dist/types/notifications.js +4 -0
- package/dist/types/notifications.js.map +1 -0
- package/package.json +71 -70
|
@@ -1,146 +1,316 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AccessibilityExtractor = void 0;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
/**
|
|
6
|
+
* AccessibilityExtractor — captures the full accessibility tree using three
|
|
7
|
+
* strategies in order of reliability:
|
|
8
|
+
*
|
|
9
|
+
* 1. Playwright's built-in accessibility.snapshot() — the most reliable,
|
|
10
|
+
* cross-browser approach. Configured with interestingOnly: false so every
|
|
11
|
+
* node is returned, not just "interesting" leaf nodes.
|
|
12
|
+
*
|
|
13
|
+
* 2. Chrome DevTools Protocol (CDP) Accessibility.getFullAXTree — lower-level
|
|
14
|
+
* but gives raw browser data when Playwright's API is unavailable.
|
|
15
|
+
*
|
|
16
|
+
* 3. DOM-based construction — pure JavaScript executed inside the page.
|
|
17
|
+
* Works in every environment but misses computed ARIA states.
|
|
18
|
+
*/
|
|
4
19
|
class AccessibilityExtractor {
|
|
5
|
-
async extract(page,
|
|
20
|
+
async extract(page, includeHidden = false) {
|
|
21
|
+
// ── Strategy 1: Playwright accessibility.snapshot() ──────────────────────
|
|
6
22
|
try {
|
|
7
|
-
// Wait for page to be ready
|
|
8
23
|
await page.waitForLoadState('domcontentloaded', { timeout: 5000 }).catch(() => { });
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// Transform CDP format to our format
|
|
17
|
-
return this.transformCDPSnapshot(snapshot.nodes[0], snapshot.nodes);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
catch (cdpError) {
|
|
21
|
-
// CDP not available, fall through to DOM-based approach
|
|
24
|
+
// `interestingOnly: false` returns every node; set to true for compact trees
|
|
25
|
+
const snapshot = await page.accessibility.snapshot({
|
|
26
|
+
interestingOnly: !includeHidden,
|
|
27
|
+
});
|
|
28
|
+
if (snapshot) {
|
|
29
|
+
logger_1.logger.debug('A11y: using Playwright snapshot strategy');
|
|
30
|
+
return this.transformPlaywrightSnapshot(snapshot);
|
|
22
31
|
}
|
|
23
|
-
// Fallback: build accessibility tree from DOM
|
|
24
|
-
snapshot = await this.buildFromDOM(page);
|
|
25
|
-
return this.transformSnapshot(snapshot);
|
|
26
32
|
}
|
|
27
|
-
catch (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
children: [],
|
|
39
|
-
};
|
|
33
|
+
catch (e) {
|
|
34
|
+
logger_1.logger.debug(`A11y Playwright strategy failed: ${e.message}`);
|
|
35
|
+
}
|
|
36
|
+
// ── Strategy 2: CDP Accessibility.getFullAXTree ───────────────────────────
|
|
37
|
+
try {
|
|
38
|
+
const client = await page.context().newCDPSession(page);
|
|
39
|
+
const result = await client.send('Accessibility.getFullAXTree');
|
|
40
|
+
await client.detach().catch(() => { });
|
|
41
|
+
if (result?.nodes?.length) {
|
|
42
|
+
logger_1.logger.debug('A11y: using CDP strategy');
|
|
43
|
+
return this.transformCDPSnapshot(result.nodes[0], result.nodes);
|
|
40
44
|
}
|
|
41
45
|
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
logger_1.logger.debug(`A11y CDP strategy failed: ${e.message}`);
|
|
48
|
+
}
|
|
49
|
+
// ── Strategy 3: DOM-based fallback ────────────────────────────────────────
|
|
50
|
+
try {
|
|
51
|
+
const domResult = await this.buildFromDOM(page, includeHidden);
|
|
52
|
+
logger_1.logger.debug('A11y: using DOM fallback strategy');
|
|
53
|
+
return this.transformSnapshot(domResult);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
logger_1.logger.warn(`A11y DOM strategy failed: ${e.message}`);
|
|
57
|
+
}
|
|
58
|
+
// ── Ultimate fallback ─────────────────────────────────────────────────────
|
|
59
|
+
logger_1.logger.warn('A11y: all strategies failed, returning minimal tree');
|
|
60
|
+
return {
|
|
61
|
+
role: 'WebArea',
|
|
62
|
+
name: await page.title().catch(() => ''),
|
|
63
|
+
children: [],
|
|
64
|
+
};
|
|
42
65
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
66
|
+
// ── Playwright snapshot transformation ──────────────────────────────────────
|
|
67
|
+
transformPlaywrightSnapshot(node) {
|
|
68
|
+
const result = {
|
|
69
|
+
role: node.role || 'generic',
|
|
70
|
+
name: node.name || '',
|
|
71
|
+
children: Array.isArray(node.children)
|
|
72
|
+
? node.children.map((c) => this.transformPlaywrightSnapshot(c))
|
|
73
|
+
: [],
|
|
74
|
+
};
|
|
75
|
+
if (node.value !== undefined && node.value !== null)
|
|
76
|
+
result.value = String(node.value);
|
|
77
|
+
if (typeof node.required === 'boolean')
|
|
78
|
+
result.required = node.required;
|
|
79
|
+
if (typeof node.disabled === 'boolean')
|
|
80
|
+
result.disabled = node.disabled;
|
|
81
|
+
if (typeof node.focused === 'boolean')
|
|
82
|
+
result.focused = node.focused;
|
|
83
|
+
if (typeof node.multiline === 'boolean')
|
|
84
|
+
result.multiline = node.multiline;
|
|
85
|
+
if (node.checked !== undefined)
|
|
86
|
+
result.checked = node.checked;
|
|
87
|
+
if (node.pressed !== undefined)
|
|
88
|
+
result.pressed = node.pressed;
|
|
89
|
+
if (typeof node.selected === 'boolean')
|
|
90
|
+
result.selected = node.selected;
|
|
91
|
+
if (typeof node.expanded === 'boolean')
|
|
92
|
+
result.expanded = node.expanded;
|
|
93
|
+
if (typeof node.level === 'number')
|
|
94
|
+
result.level = node.level;
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
// ── CDP snapshot transformation ──────────────────────────────────────────────
|
|
46
98
|
transformCDPSnapshot(rootNode, allNodes) {
|
|
99
|
+
const nodeMap = new Map();
|
|
100
|
+
for (const n of allNodes)
|
|
101
|
+
nodeMap.set(n.nodeId, n);
|
|
47
102
|
const buildNode = (node) => {
|
|
48
103
|
const children = [];
|
|
49
|
-
if (
|
|
104
|
+
if (Array.isArray(node.childIds)) {
|
|
50
105
|
for (const childId of node.childIds) {
|
|
51
|
-
const childNode =
|
|
52
|
-
if (childNode)
|
|
106
|
+
const childNode = nodeMap.get(childId);
|
|
107
|
+
if (childNode)
|
|
53
108
|
children.push(buildNode(childNode));
|
|
54
|
-
}
|
|
55
109
|
}
|
|
56
110
|
}
|
|
111
|
+
const getProp = (name) => node.properties?.find((p) => p.name === name)?.value?.value;
|
|
57
112
|
const result = {
|
|
58
|
-
role: node.role?.value || '
|
|
113
|
+
role: node.role?.value || 'generic',
|
|
59
114
|
name: node.name?.value || '',
|
|
60
|
-
children
|
|
61
|
-
value: node.value?.value,
|
|
62
|
-
required: node.properties?.find((p) => p.name === 'required')?.value?.value === true,
|
|
63
|
-
disabled: node.properties?.find((p) => p.name === 'disabled')?.value?.value === true,
|
|
64
|
-
focused: node.properties?.find((p) => p.name === 'focused')?.value?.value === true,
|
|
115
|
+
children,
|
|
65
116
|
};
|
|
66
|
-
|
|
67
|
-
|
|
117
|
+
if (node.value?.value !== undefined)
|
|
118
|
+
result.value = String(node.value.value);
|
|
119
|
+
const required = getProp('required');
|
|
120
|
+
if (required !== undefined)
|
|
121
|
+
result.required = required === true;
|
|
122
|
+
const disabled = getProp('disabled');
|
|
123
|
+
if (disabled !== undefined)
|
|
124
|
+
result.disabled = disabled === true;
|
|
125
|
+
const focused = getProp('focused');
|
|
126
|
+
if (focused !== undefined)
|
|
127
|
+
result.focused = focused === true;
|
|
128
|
+
const checked = getProp('checked');
|
|
68
129
|
if (checked !== undefined)
|
|
69
130
|
result.checked = checked;
|
|
70
|
-
const pressed =
|
|
131
|
+
const pressed = getProp('pressed');
|
|
71
132
|
if (pressed !== undefined)
|
|
72
133
|
result.pressed = pressed;
|
|
73
|
-
const selected =
|
|
134
|
+
const selected = getProp('selected');
|
|
74
135
|
if (selected !== undefined)
|
|
75
|
-
result.selected = selected;
|
|
76
|
-
const expanded =
|
|
136
|
+
result.selected = selected === true;
|
|
137
|
+
const expanded = getProp('expanded');
|
|
77
138
|
if (expanded !== undefined)
|
|
78
|
-
result.expanded = expanded;
|
|
139
|
+
result.expanded = expanded === true;
|
|
79
140
|
return result;
|
|
80
141
|
};
|
|
81
142
|
return buildNode(rootNode);
|
|
82
143
|
}
|
|
144
|
+
// ── DOM-based fallback ───────────────────────────────────────────────────────
|
|
83
145
|
/**
|
|
84
|
-
* Build accessibility tree
|
|
146
|
+
* Build an accessibility tree by traversing the live DOM inside the page.
|
|
147
|
+
* This approach works universally but misses computed ARIA states and
|
|
148
|
+
* relationships that only the accessibility engine can resolve.
|
|
85
149
|
*/
|
|
86
|
-
async buildFromDOM(page) {
|
|
87
|
-
return await page.evaluate(() => {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
150
|
+
async buildFromDOM(page, includeHidden) {
|
|
151
|
+
return await page.evaluate((opts) => {
|
|
152
|
+
const ROLE_MAP = {
|
|
153
|
+
BUTTON: 'button',
|
|
154
|
+
INPUT: 'textbox', // refined below
|
|
155
|
+
TEXTAREA: 'textbox',
|
|
156
|
+
SELECT: 'combobox',
|
|
157
|
+
A: 'link',
|
|
158
|
+
IMG: 'img',
|
|
159
|
+
FORM: 'form',
|
|
160
|
+
NAV: 'navigation',
|
|
161
|
+
HEADER: 'banner',
|
|
162
|
+
FOOTER: 'contentinfo',
|
|
163
|
+
MAIN: 'main',
|
|
164
|
+
ASIDE: 'complementary',
|
|
165
|
+
SECTION: 'region',
|
|
166
|
+
ARTICLE: 'article',
|
|
167
|
+
DIALOG: 'dialog',
|
|
168
|
+
TABLE: 'table',
|
|
169
|
+
UL: 'list',
|
|
170
|
+
OL: 'list',
|
|
171
|
+
LI: 'listitem',
|
|
172
|
+
H1: 'heading', H2: 'heading', H3: 'heading',
|
|
173
|
+
H4: 'heading', H5: 'heading', H6: 'heading',
|
|
174
|
+
DETAILS: 'group',
|
|
175
|
+
SUMMARY: 'button',
|
|
176
|
+
};
|
|
177
|
+
const INPUT_ROLE_MAP = {
|
|
178
|
+
checkbox: 'checkbox',
|
|
179
|
+
radio: 'radio',
|
|
180
|
+
submit: 'button',
|
|
181
|
+
button: 'button',
|
|
182
|
+
reset: 'button',
|
|
183
|
+
range: 'slider',
|
|
184
|
+
search: 'searchbox',
|
|
185
|
+
number: 'spinbutton',
|
|
186
|
+
image: 'button',
|
|
187
|
+
};
|
|
188
|
+
function getRole(el) {
|
|
189
|
+
const explicit = el.getAttribute('role');
|
|
190
|
+
if (explicit)
|
|
191
|
+
return explicit;
|
|
192
|
+
const tag = el.tagName.toUpperCase();
|
|
193
|
+
if (tag === 'INPUT') {
|
|
194
|
+
const type = el.type?.toLowerCase() || 'text';
|
|
195
|
+
return INPUT_ROLE_MAP[type] || 'textbox';
|
|
196
|
+
}
|
|
197
|
+
if (tag === 'A') {
|
|
198
|
+
return el.href ? 'link' : 'generic';
|
|
199
|
+
}
|
|
200
|
+
if (/^H[1-6]$/.test(tag))
|
|
201
|
+
return 'heading';
|
|
202
|
+
return ROLE_MAP[tag] || 'generic';
|
|
203
|
+
}
|
|
204
|
+
function getAccessibleName(el) {
|
|
205
|
+
// 1. aria-labelledby
|
|
206
|
+
const labelledBy = el.getAttribute('aria-labelledby');
|
|
207
|
+
if (labelledBy) {
|
|
208
|
+
const ids = labelledBy.split(/\s+/);
|
|
209
|
+
const texts = ids.map(id => document.getElementById(id)?.textContent?.trim()).filter(Boolean);
|
|
210
|
+
if (texts.length)
|
|
211
|
+
return texts.join(' ');
|
|
212
|
+
}
|
|
213
|
+
// 2. aria-label
|
|
214
|
+
const ariaLabel = el.getAttribute('aria-label');
|
|
215
|
+
if (ariaLabel)
|
|
216
|
+
return ariaLabel.trim();
|
|
217
|
+
// 3. For img/input, alt or title
|
|
218
|
+
const alt = el.getAttribute('alt');
|
|
219
|
+
if (alt)
|
|
220
|
+
return alt.trim();
|
|
221
|
+
const placeholder = el.getAttribute('placeholder');
|
|
222
|
+
if (placeholder)
|
|
223
|
+
return placeholder.trim();
|
|
224
|
+
// 4. For labeled inputs
|
|
225
|
+
const id = el.id;
|
|
226
|
+
if (id) {
|
|
227
|
+
const label = document.querySelector(`label[for="${id}"]`);
|
|
228
|
+
if (label)
|
|
229
|
+
return label.textContent?.trim() || '';
|
|
230
|
+
}
|
|
231
|
+
// 5. Text content (limited)
|
|
232
|
+
const text = el.innerText?.trim();
|
|
233
|
+
if (text)
|
|
234
|
+
return text.substring(0, 200);
|
|
235
|
+
// 6. title attribute
|
|
236
|
+
const title = el.getAttribute('title');
|
|
237
|
+
if (title)
|
|
238
|
+
return title.trim();
|
|
239
|
+
return '';
|
|
240
|
+
}
|
|
241
|
+
function isHidden(el) {
|
|
242
|
+
if (!opts.includeHidden) {
|
|
243
|
+
const style = window.getComputedStyle(el);
|
|
244
|
+
if (style.display === 'none' || style.visibility === 'hidden')
|
|
245
|
+
return true;
|
|
246
|
+
if (el.getAttribute('aria-hidden') === 'true')
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
function buildNode(el) {
|
|
252
|
+
if (isHidden(el))
|
|
253
|
+
return null;
|
|
254
|
+
const role = getRole(el);
|
|
255
|
+
const name = getAccessibleName(el);
|
|
104
256
|
const children = [];
|
|
105
|
-
for (let i = 0; i <
|
|
106
|
-
const child =
|
|
257
|
+
for (let i = 0; i < el.children.length; i++) {
|
|
258
|
+
const child = buildNode(el.children[i]);
|
|
107
259
|
if (child)
|
|
108
260
|
children.push(child);
|
|
109
261
|
}
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
disabled
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const expanded =
|
|
121
|
-
if (expanded)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
262
|
+
const node = { role, name, children };
|
|
263
|
+
// Computed states
|
|
264
|
+
const inputEl = el;
|
|
265
|
+
if (el.hasAttribute('disabled') || inputEl.disabled)
|
|
266
|
+
node.disabled = true;
|
|
267
|
+
if (el.hasAttribute('required') || inputEl.required)
|
|
268
|
+
node.required = true;
|
|
269
|
+
if (inputEl.checked !== undefined && (inputEl.type === 'checkbox' || inputEl.type === 'radio')) {
|
|
270
|
+
node.checked = inputEl.checked;
|
|
271
|
+
}
|
|
272
|
+
const expanded = el.getAttribute('aria-expanded');
|
|
273
|
+
if (expanded !== null)
|
|
274
|
+
node.expanded = expanded === 'true';
|
|
275
|
+
const selected = el.getAttribute('aria-selected');
|
|
276
|
+
if (selected !== null)
|
|
277
|
+
node.selected = selected === 'true';
|
|
278
|
+
const level = el.getAttribute('aria-level');
|
|
279
|
+
if (level !== null)
|
|
280
|
+
node.level = parseInt(level, 10);
|
|
281
|
+
else if (/^H([1-6])$/.test(el.tagName)) {
|
|
282
|
+
node.level = parseInt(el.tagName[1], 10);
|
|
283
|
+
}
|
|
284
|
+
const value = el.value;
|
|
285
|
+
if (value !== undefined && value !== '' && inputEl.type !== 'password') {
|
|
286
|
+
node.value = value;
|
|
287
|
+
}
|
|
288
|
+
return node;
|
|
289
|
+
}
|
|
290
|
+
return buildNode(document.documentElement);
|
|
291
|
+
}, { includeHidden });
|
|
127
292
|
}
|
|
128
|
-
|
|
293
|
+
// ── Generic snapshot transformer ────────────────────────────────────────────
|
|
294
|
+
transformSnapshot(node) {
|
|
295
|
+
if (!node)
|
|
296
|
+
return { role: 'generic', name: '', children: [] };
|
|
129
297
|
return {
|
|
130
|
-
role:
|
|
131
|
-
name:
|
|
132
|
-
children:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
298
|
+
role: node.role || 'generic',
|
|
299
|
+
name: node.name || '',
|
|
300
|
+
children: Array.isArray(node.children)
|
|
301
|
+
? node.children.map((c) => this.transformSnapshot(c))
|
|
302
|
+
: [],
|
|
303
|
+
value: node.value,
|
|
304
|
+
required: node.required,
|
|
305
|
+
disabled: node.disabled,
|
|
306
|
+
focused: node.focused,
|
|
307
|
+
multiline: node.multiline,
|
|
308
|
+
protected: node.protected,
|
|
309
|
+
checked: node.checked,
|
|
310
|
+
pressed: node.pressed,
|
|
311
|
+
selected: node.selected,
|
|
312
|
+
expanded: node.expanded,
|
|
313
|
+
level: node.level,
|
|
144
314
|
};
|
|
145
315
|
}
|
|
146
316
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-extractor.js","sourceRoot":"","sources":["../../src/analyzers/a11y-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"a11y-extractor.js","sourceRoot":"","sources":["../../src/analyzers/a11y-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
import { Page } from '@playwright/test';
|
|
2
2
|
import { NetworkEvent } from '../types/capture';
|
|
3
3
|
import { SecurityRedactor } from '../security/redactor';
|
|
4
|
+
export interface NetworkLoggerOptions {
|
|
5
|
+
captureHeaders: boolean;
|
|
6
|
+
captureBody: boolean;
|
|
7
|
+
/** Maximum response body size to capture, in bytes (default 2048) */
|
|
8
|
+
maxBodySize: number;
|
|
9
|
+
/** Resource types to skip entirely (e.g. images, fonts) */
|
|
10
|
+
skipResourceTypes: string[];
|
|
11
|
+
}
|
|
4
12
|
export declare class NetworkLogger {
|
|
5
13
|
private events;
|
|
6
14
|
private redactor;
|
|
7
|
-
private
|
|
8
|
-
|
|
15
|
+
private options;
|
|
16
|
+
/**
|
|
17
|
+
* WeakMap keyed on the Playwright Request object guarantees O(1) access and
|
|
18
|
+
* zero URL collision — even when the same URL is requested concurrently.
|
|
19
|
+
* The Request object is the *same reference* in both the 'request' listener
|
|
20
|
+
* and the `response.request()` call, so this is safe.
|
|
21
|
+
*/
|
|
22
|
+
private requestTimes;
|
|
23
|
+
constructor(redactor: SecurityRedactor, options?: Partial<NetworkLoggerOptions>);
|
|
9
24
|
attachListeners(page: Page): Promise<void>;
|
|
10
25
|
getEvents(): NetworkEvent[];
|
|
11
26
|
clearEvents(): void;
|
|
12
27
|
getRequestCount(): number;
|
|
13
28
|
getResponseCount(): number;
|
|
29
|
+
getFailedCount(): number;
|
|
30
|
+
/** Returns only XHR/Fetch events — useful for API surface analysis */
|
|
31
|
+
getApiEvents(): NetworkEvent[];
|
|
14
32
|
}
|
|
15
33
|
//# sourceMappingURL=network-logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-logger.d.ts","sourceRoot":"","sources":["../../src/analyzers/network-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"network-logger.d.ts","sourceRoot":"","sources":["../../src/analyzers/network-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAqB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AASD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,OAAO,CAAuB;IAEtC;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAkC;gBAE1C,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAKzE,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAoHhD,SAAS,IAAI,YAAY,EAAE;IAI3B,WAAW,IAAI,IAAI;IAInB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,MAAM;IAI1B,cAAc,IAAI,MAAM;IAIxB,sEAAsE;IACtE,YAAY,IAAI,YAAY,EAAE;CAK/B"}
|