@geometra/proxy 1.19.22 → 1.20.0
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/dist/a11y-enrich.d.ts +9 -2
- package/dist/a11y-enrich.d.ts.map +1 -1
- package/dist/a11y-enrich.js +204 -85
- package/dist/a11y-enrich.js.map +1 -1
- package/dist/dom-actions.d.ts.map +1 -1
- package/dist/dom-actions.js +130 -10
- package/dist/dom-actions.js.map +1 -1
- package/dist/extractor.d.ts +16 -1
- package/dist/extractor.d.ts.map +1 -1
- package/dist/extractor.js +129 -25
- package/dist/extractor.js.map +1 -1
- package/dist/geometry-ws.d.ts +22 -1
- package/dist/geometry-ws.d.ts.map +1 -1
- package/dist/geometry-ws.js +147 -23
- package/dist/geometry-ws.js.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +15 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +69 -35
- package/dist/runtime.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/a11y-enrich.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type { Page } from 'playwright';
|
|
1
|
+
import type { CDPSession, Page } from 'playwright';
|
|
2
2
|
import type { GeometrySnapshot } from './types.js';
|
|
3
|
+
export interface CdpAxSessionManager {
|
|
4
|
+
get(page: Page): Promise<CDPSession>;
|
|
5
|
+
reset(): Promise<void>;
|
|
6
|
+
close(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare function shouldEnrichSnapshotWithCdpAx(snap: GeometrySnapshot): boolean;
|
|
9
|
+
export declare function createCdpAxSessionManager(): CdpAxSessionManager;
|
|
3
10
|
/**
|
|
4
11
|
* Use Chrome DevTools `Accessibility.getFullAXTree` to back-fill `semantic.ariaLabel` on nodes
|
|
5
12
|
* whose center falls inside an AX bounds box (helps closed shadow + custom controls).
|
|
6
13
|
*/
|
|
7
|
-
export declare function enrichSnapshotWithCdpAx(page: Page, snap: GeometrySnapshot): Promise<void>;
|
|
14
|
+
export declare function enrichSnapshotWithCdpAx(page: Page, snap: GeometrySnapshot, sessionManager?: CdpAxSessionManager): Promise<void>;
|
|
8
15
|
//# sourceMappingURL=a11y-enrich.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-enrich.d.ts","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"a11y-enrich.d.ts","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAgC,MAAM,YAAY,CAAA;AAoBhF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAiND,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAI7E;AA+BD,wBAAgB,yBAAyB,IAAI,mBAAmB,CAgC/D;AAkKD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,gBAAgB,EACtB,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
package/dist/a11y-enrich.js
CHANGED
|
@@ -165,6 +165,119 @@ function countMeaningfulSnapshotNodes(node, isRoot = true) {
|
|
|
165
165
|
}
|
|
166
166
|
return count;
|
|
167
167
|
}
|
|
168
|
+
function snapshotNodeLabel(node) {
|
|
169
|
+
const semantic = node.semantic ?? {};
|
|
170
|
+
const ariaLabel = typeof semantic.ariaLabel === 'string' ? semantic.ariaLabel.trim() : '';
|
|
171
|
+
if (ariaLabel)
|
|
172
|
+
return ariaLabel;
|
|
173
|
+
const text = typeof node.props.text === 'string' ? node.props.text.trim() : '';
|
|
174
|
+
if (text)
|
|
175
|
+
return text;
|
|
176
|
+
const valueText = typeof semantic.valueText === 'string' ? semantic.valueText.trim() : '';
|
|
177
|
+
return valueText || undefined;
|
|
178
|
+
}
|
|
179
|
+
function summarizeUnnamedInteractiveSnapshotNodes(tree, layout, isRoot = true) {
|
|
180
|
+
const summary = {
|
|
181
|
+
criticalCount: 0,
|
|
182
|
+
ignoredTinyLinkCount: 0,
|
|
183
|
+
};
|
|
184
|
+
if (!isRoot) {
|
|
185
|
+
const semantic = tree.semantic ?? {};
|
|
186
|
+
const role = typeof semantic.role === 'string' ? semantic.role : undefined;
|
|
187
|
+
const interactive = (role !== undefined && INTERACTIVE_AX_ROLES.has(role)) ||
|
|
188
|
+
!!tree.handlers?.onClick ||
|
|
189
|
+
!!tree.handlers?.onKeyDown ||
|
|
190
|
+
!!tree.handlers?.onKeyUp;
|
|
191
|
+
if (interactive && !snapshotNodeLabel(tree)) {
|
|
192
|
+
const isTinyLink = role === 'link' &&
|
|
193
|
+
layout.width > 0 &&
|
|
194
|
+
layout.height > 0 &&
|
|
195
|
+
layout.width <= 56 &&
|
|
196
|
+
layout.height <= 56 &&
|
|
197
|
+
layout.width * layout.height <= 2_500;
|
|
198
|
+
if (isTinyLink) {
|
|
199
|
+
summary.ignoredTinyLinkCount += 1;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
summary.criticalCount += 1;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const treeChildren = tree.children ?? [];
|
|
207
|
+
for (let i = 0; i < treeChildren.length; i++) {
|
|
208
|
+
const childSummary = summarizeUnnamedInteractiveSnapshotNodes(treeChildren[i], layout.children[i], false);
|
|
209
|
+
summary.criticalCount += childSummary.criticalCount;
|
|
210
|
+
summary.ignoredTinyLinkCount += childSummary.ignoredTinyLinkCount;
|
|
211
|
+
}
|
|
212
|
+
return summary;
|
|
213
|
+
}
|
|
214
|
+
export function shouldEnrichSnapshotWithCdpAx(snap) {
|
|
215
|
+
if (countMeaningfulSnapshotNodes(snap.tree) <= 1)
|
|
216
|
+
return true;
|
|
217
|
+
const unnamed = summarizeUnnamedInteractiveSnapshotNodes(snap.tree, snap.layout);
|
|
218
|
+
return unnamed.criticalCount > 0 || unnamed.ignoredTinyLinkCount > 1;
|
|
219
|
+
}
|
|
220
|
+
async function detachCdpSession(session) {
|
|
221
|
+
try {
|
|
222
|
+
await session?.detach();
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
/* ignore */
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async function createEnabledCdpSession(page) {
|
|
229
|
+
const session = await page.context().newCDPSession(page);
|
|
230
|
+
try {
|
|
231
|
+
await session.send('Accessibility.enable');
|
|
232
|
+
try {
|
|
233
|
+
await session.send('DOM.enable');
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
/* optional */
|
|
237
|
+
}
|
|
238
|
+
return session;
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
await detachCdpSession(session);
|
|
242
|
+
throw err;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
function isRecoverableCdpSessionError(err) {
|
|
246
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
247
|
+
return /Session closed|Target closed|Browser has been closed|page has been closed|Protocol error/i.test(message);
|
|
248
|
+
}
|
|
249
|
+
export function createCdpAxSessionManager() {
|
|
250
|
+
let activeSession;
|
|
251
|
+
let sessionPromise;
|
|
252
|
+
const clear = async () => {
|
|
253
|
+
const pending = sessionPromise;
|
|
254
|
+
sessionPromise = undefined;
|
|
255
|
+
const session = activeSession ?? await pending?.catch(() => undefined);
|
|
256
|
+
activeSession = undefined;
|
|
257
|
+
await detachCdpSession(session);
|
|
258
|
+
};
|
|
259
|
+
return {
|
|
260
|
+
async get(page) {
|
|
261
|
+
if (activeSession)
|
|
262
|
+
return activeSession;
|
|
263
|
+
if (!sessionPromise) {
|
|
264
|
+
sessionPromise = createEnabledCdpSession(page)
|
|
265
|
+
.then(session => {
|
|
266
|
+
activeSession = session;
|
|
267
|
+
return session;
|
|
268
|
+
})
|
|
269
|
+
.catch(err => {
|
|
270
|
+
activeSession = undefined;
|
|
271
|
+
sessionPromise = undefined;
|
|
272
|
+
throw err;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
return sessionPromise;
|
|
276
|
+
},
|
|
277
|
+
reset: clear,
|
|
278
|
+
close: clear,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
168
281
|
function buildAxFallbackChildren(candidates) {
|
|
169
282
|
const layoutChildren = [];
|
|
170
283
|
const treeChildren = [];
|
|
@@ -238,100 +351,106 @@ async function boundsForBackendNode(session, backendDOMNodeId) {
|
|
|
238
351
|
return null;
|
|
239
352
|
}
|
|
240
353
|
}
|
|
354
|
+
async function collectAxSnapshotCandidates(session, root) {
|
|
355
|
+
const res = (await session.send('Accessibility.getFullAXTree'));
|
|
356
|
+
const nodes = res.nodes ?? [];
|
|
357
|
+
const candidates = [];
|
|
358
|
+
for (const n of nodes) {
|
|
359
|
+
if (n.ignored)
|
|
360
|
+
continue;
|
|
361
|
+
const role = normalizeAxRole(n.role?.value);
|
|
362
|
+
if (!role || !INTERESTING_AX_ROLES.has(role))
|
|
363
|
+
continue;
|
|
364
|
+
const name = n.name?.value?.trim() || undefined;
|
|
365
|
+
const b = parseAxBounds(n.properties) ??
|
|
366
|
+
await boundsForBackendNode(session, n.backendDOMNodeId);
|
|
367
|
+
if (!b || b.width <= 0 || b.height <= 0)
|
|
368
|
+
continue;
|
|
369
|
+
if (!boundsIntersectsViewport(b, root))
|
|
370
|
+
continue;
|
|
371
|
+
if (!name && !INTERACTIVE_AX_ROLES.has(role) && role !== 'img')
|
|
372
|
+
continue;
|
|
373
|
+
candidates.push({
|
|
374
|
+
...(name ? { name } : {}),
|
|
375
|
+
role,
|
|
376
|
+
bounds: b,
|
|
377
|
+
selected: parseAxBooleanProperty(n.properties, 'selected'),
|
|
378
|
+
expanded: parseAxBooleanProperty(n.properties, 'expanded'),
|
|
379
|
+
checked: parseAxCheckedProperty(n.properties),
|
|
380
|
+
disabled: parseAxBooleanProperty(n.properties, 'disabled'),
|
|
381
|
+
focused: parseAxBooleanProperty(n.properties, 'focused'),
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
return candidates;
|
|
385
|
+
}
|
|
386
|
+
function applyAxSnapshotCandidates(snap, candidates) {
|
|
387
|
+
const visit = (tNode, lNode) => {
|
|
388
|
+
const sem = tNode.semantic;
|
|
389
|
+
if (sem?.ariaLabel || sem?.a11yEnriched) {
|
|
390
|
+
/* skip */
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
const cx = lNode.x + lNode.width / 2;
|
|
394
|
+
const cy = lNode.y + lNode.height / 2;
|
|
395
|
+
for (const c of candidates) {
|
|
396
|
+
const b = c.bounds;
|
|
397
|
+
if (cx >= b.left && cx <= b.left + b.width && cy >= b.top && cy <= b.top + b.height) {
|
|
398
|
+
tNode.semantic = {
|
|
399
|
+
...(sem ?? {}),
|
|
400
|
+
ariaLabel: c.name,
|
|
401
|
+
a11yRoleHint: c.role,
|
|
402
|
+
a11yEnriched: true,
|
|
403
|
+
};
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
const tch = tNode.children ?? [];
|
|
409
|
+
const lch = lNode.children;
|
|
410
|
+
for (let i = 0; i < tch.length; i++) {
|
|
411
|
+
visit(tch[i], lch[i]);
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
visit(snap.tree, snap.layout);
|
|
415
|
+
if (countMeaningfulSnapshotNodes(snap.tree) <= 1) {
|
|
416
|
+
const fallback = buildAxFallbackChildren(candidates);
|
|
417
|
+
if (fallback.treeChildren.length > 0) {
|
|
418
|
+
snap.layout.children = fallback.layoutChildren;
|
|
419
|
+
snap.tree.children = fallback.treeChildren;
|
|
420
|
+
snap.tree.semantic = {
|
|
421
|
+
...(snap.tree.semantic ?? {}),
|
|
422
|
+
a11yFallbackUsed: true,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
241
427
|
/**
|
|
242
428
|
* Use Chrome DevTools `Accessibility.getFullAXTree` to back-fill `semantic.ariaLabel` on nodes
|
|
243
429
|
* whose center falls inside an AX bounds box (helps closed shadow + custom controls).
|
|
244
430
|
*/
|
|
245
|
-
export async function enrichSnapshotWithCdpAx(page, snap) {
|
|
246
|
-
let
|
|
247
|
-
|
|
248
|
-
session = await page.context().newCDPSession(page);
|
|
249
|
-
await session.send('Accessibility.enable');
|
|
431
|
+
export async function enrichSnapshotWithCdpAx(page, snap, sessionManager) {
|
|
432
|
+
let temporarySession;
|
|
433
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
250
434
|
try {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
435
|
+
const session = sessionManager
|
|
436
|
+
? await sessionManager.get(page)
|
|
437
|
+
: (temporarySession = await createEnabledCdpSession(page));
|
|
438
|
+
const candidates = await collectAxSnapshotCandidates(session, snap.layout);
|
|
439
|
+
applyAxSnapshotCandidates(snap, candidates);
|
|
440
|
+
return;
|
|
255
441
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const candidates = [];
|
|
260
|
-
for (const n of nodes) {
|
|
261
|
-
if (n.ignored)
|
|
262
|
-
continue;
|
|
263
|
-
const role = normalizeAxRole(n.role?.value);
|
|
264
|
-
if (!role || !INTERESTING_AX_ROLES.has(role))
|
|
265
|
-
continue;
|
|
266
|
-
const name = n.name?.value?.trim() || undefined;
|
|
267
|
-
const b = parseAxBounds(n.properties) ??
|
|
268
|
-
await boundsForBackendNode(session, n.backendDOMNodeId);
|
|
269
|
-
if (!b || b.width <= 0 || b.height <= 0)
|
|
270
|
-
continue;
|
|
271
|
-
if (!boundsIntersectsViewport(b, root))
|
|
272
|
-
continue;
|
|
273
|
-
if (!name && !INTERACTIVE_AX_ROLES.has(role) && role !== 'img')
|
|
442
|
+
catch (err) {
|
|
443
|
+
if (sessionManager && attempt === 0 && !page.isClosed() && isRecoverableCdpSessionError(err)) {
|
|
444
|
+
await sessionManager.reset();
|
|
274
445
|
continue;
|
|
275
|
-
candidates.push({
|
|
276
|
-
...(name ? { name } : {}),
|
|
277
|
-
role,
|
|
278
|
-
bounds: b,
|
|
279
|
-
selected: parseAxBooleanProperty(n.properties, 'selected'),
|
|
280
|
-
expanded: parseAxBooleanProperty(n.properties, 'expanded'),
|
|
281
|
-
checked: parseAxCheckedProperty(n.properties),
|
|
282
|
-
disabled: parseAxBooleanProperty(n.properties, 'disabled'),
|
|
283
|
-
focused: parseAxBooleanProperty(n.properties, 'focused'),
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
const visit = (tNode, lNode) => {
|
|
287
|
-
const sem = tNode.semantic;
|
|
288
|
-
if (sem?.ariaLabel || sem?.a11yEnriched) {
|
|
289
|
-
/* skip */
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
const cx = lNode.x + lNode.width / 2;
|
|
293
|
-
const cy = lNode.y + lNode.height / 2;
|
|
294
|
-
for (const c of candidates) {
|
|
295
|
-
const b = c.bounds;
|
|
296
|
-
if (cx >= b.left && cx <= b.left + b.width && cy >= b.top && cy <= b.top + b.height) {
|
|
297
|
-
tNode.semantic = {
|
|
298
|
-
...(sem ?? {}),
|
|
299
|
-
ariaLabel: c.name,
|
|
300
|
-
a11yRoleHint: c.role,
|
|
301
|
-
a11yEnriched: true,
|
|
302
|
-
};
|
|
303
|
-
break;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
const tch = tNode.children ?? [];
|
|
308
|
-
const lch = lNode.children;
|
|
309
|
-
for (let i = 0; i < tch.length; i++) {
|
|
310
|
-
visit(tch[i], lch[i]);
|
|
311
|
-
}
|
|
312
|
-
};
|
|
313
|
-
visit(snap.tree, snap.layout);
|
|
314
|
-
if (countMeaningfulSnapshotNodes(snap.tree) <= 1) {
|
|
315
|
-
const fallback = buildAxFallbackChildren(candidates);
|
|
316
|
-
if (fallback.treeChildren.length > 0) {
|
|
317
|
-
snap.layout.children = fallback.layoutChildren;
|
|
318
|
-
snap.tree.children = fallback.treeChildren;
|
|
319
|
-
snap.tree.semantic = {
|
|
320
|
-
...(snap.tree.semantic ?? {}),
|
|
321
|
-
a11yFallbackUsed: true,
|
|
322
|
-
};
|
|
323
446
|
}
|
|
447
|
+
return;
|
|
324
448
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
try {
|
|
331
|
-
await session?.detach();
|
|
332
|
-
}
|
|
333
|
-
catch {
|
|
334
|
-
/* ignore */
|
|
449
|
+
finally {
|
|
450
|
+
if (!sessionManager && temporarySession) {
|
|
451
|
+
await detachCdpSession(temporarySession);
|
|
452
|
+
temporarySession = undefined;
|
|
453
|
+
}
|
|
335
454
|
}
|
|
336
455
|
}
|
|
337
456
|
}
|
package/dist/a11y-enrich.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-enrich.js","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"AAqBA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,GAAG,oBAAoB;IACvB,SAAS;IACT,MAAM;IACN,KAAK;IACL,YAAY;IACZ,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC,CAAA;AAEF,SAAS,aAAa,CAAC,KAA4B;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAI,CAAuB,CAAC,IAAI,CAAA;YAC1C,MAAM,KAAK,GAAI,CAAwB,CAAC,KAAK,CAAA;YAC7C,IAAI,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9E,MAAM,CAAC,GAAG,KAAgC,CAAA;gBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBAC/B,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,YAAY,CAAC,IAA0B;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACxD,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9B,OAAO;QACL,IAAI;QACJ,GAAG;QACH,KAAK,EAAE,KAAK,GAAG,IAAI;QACnB,MAAM,EAAE,MAAM,GAAG,GAAG;KACrB,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,CAAW,EAAE,IAAoB;IACjE,OAAO,CACL,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK;QAC7B,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA4B,EAAE,YAAoB;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAI,CAAuB,CAAC,IAAI,CAAA;YAC1C,IAAI,IAAI,KAAK,YAAY;gBAAE,OAAQ,CAAwB,CAAC,KAAK,CAAA;QACnE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA4B,EAAE,YAAoB;IAChF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IACvD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QACjC,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,KAAK,CAAA;IACrC,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAI,KAA4B,CAAC,KAAK,CAAA;QAClD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,MAAM,CAAA;QACtD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA4B;IAC1D,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACpD,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAI,KAA4B,CAAC,KAAK,CAAA;QAClD,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,OAAO,CAAA;QACtC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,MAAM,CAAA;QACtD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA;QAClC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,OAA2B;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,eAAe;QAAE,OAAO,SAAS,CAAA;IAChH,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,MAAM,CAAA;IACrG,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACxC,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IAC3G,IAAI,UAAU,KAAK,kBAAkB;QAAE,OAAO,UAAU,CAAA;IACxD,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO,OAAO,CAAA;IAChD,IAAI,UAAU,KAAK,eAAe,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAA;IAChF,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAA;IAC7E,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO,aAAa,CAAA;IACtD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAkB,EAAE,MAAM,GAAG,IAAI;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9E,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC;YAAE,KAAK,EAAE,CAAA;IAClE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,IAAI,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAiC;IAIhE,MAAM,cAAc,GAAqB,EAAE,CAAA;IAC3C,MAAM,YAAY,GAAmB,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;QACrE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SAC5C,CAAA;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;QACzH,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEb,MAAM,MAAM,GAAmB;YAC7B,CAAC,EAAE,OAAO,CAAC,IAAI;YACf,CAAC,EAAE,OAAO,CAAC,GAAG;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,EAAE;SACb,CAAA;QAED,MAAM,QAAQ,GAA4B;YACxC,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI;SACnB,CAAA;QACD,IAAI,SAAS,CAAC,IAAI;YAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;QACvD,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS;YAAE,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAA;QAChF,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS;YAAE,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAA;QAChF,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAA;QAC7E,IAAI,SAAS,CAAC,QAAQ;YAAE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAA;QACpD,IAAI,SAAS,CAAC,OAAO;YAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;QAE9C,MAAM,IAAI,GAAiB;YACzB,IAAI,EAAE,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACrH,KAAK,EACH,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;gBACvD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE;gBACzE,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK;oBACxB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE;oBACxC,CAAC,CAAC,EAAE;YACV,QAAQ;YACR,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1C,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACjE,CAAC,CAAC,EAAE,CAAC;SACR,CAAA;QAED,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAmB,EAAE,gBAAoC;IAC3F,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAA;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAEtF,CAAA;QACD,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAU,EAAE,IAAsB;IAC9E,IAAI,OAA+B,CAAA;IACnC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAQ7D,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;QACxB,MAAM,UAAU,GAA0B,EAAE,CAAA;QAC5C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,OAAO;gBAAE,SAAQ;YACvB,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACtD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;YAC/C,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,UAAmC,CAAC;gBAC5D,MAAM,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAA;YACzD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAQ;YACjD,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,SAAQ;YAChD,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK;gBAAE,SAAQ;YACxE,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,IAAI;gBACJ,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,UAAmC,EAAE,UAAU,CAAC;gBACnF,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,UAAmC,EAAE,UAAU,CAAC;gBACnF,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,UAAmC,CAAC;gBACtE,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,UAAmC,EAAE,UAAU,CAAC;gBACnF,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,UAAmC,EAAE,SAAS,CAAC;aAClF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,KAAqB,EAAQ,EAAE;YACjE,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC1B,IAAI,GAAG,EAAE,SAAS,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC;gBACxC,UAAU;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;gBACpC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;gBACrC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;oBAClB,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;wBACpF,KAAK,CAAC,QAAQ,GAAG;4BACf,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;4BACd,SAAS,EAAE,CAAC,CAAC,IAAI;4BACjB,YAAY,EAAE,CAAC,CAAC,IAAI;4BACpB,YAAY,EAAE,IAAI;yBACnB,CAAA;wBACD,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,CAAA;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAE7B,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAA;YACpD,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAA;gBAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAA;gBAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG;oBACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC7B,gBAAgB,EAAE,IAAI;iBACvB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,EAAE,MAAM,EAAE,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"a11y-enrich.js","sourceRoot":"","sources":["../src/a11y-enrich.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-actions.d.ts","sourceRoot":"","sources":["../src/dom-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAqCvE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAA;IACpC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAA;IACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAMvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAIjE;
|
|
1
|
+
{"version":3,"file":"dom-actions.d.ts","sourceRoot":"","sources":["../src/dom-actions.ts"],"names":[],"mappings":"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"}
|
package/dist/dom-actions.js
CHANGED
|
@@ -344,6 +344,7 @@ async function resolveMeaningfulClickTarget(locator) {
|
|
|
344
344
|
async function findLabeledControl(frame, fieldLabel, exact, opts) {
|
|
345
345
|
const directCandidates = [
|
|
346
346
|
frame.getByLabel(fieldLabel, { exact }),
|
|
347
|
+
frame.getByPlaceholder(fieldLabel, { exact }),
|
|
347
348
|
frame.getByRole('combobox', { name: fieldLabel, exact }),
|
|
348
349
|
frame.getByRole('textbox', { name: fieldLabel, exact }),
|
|
349
350
|
frame.getByRole('button', { name: fieldLabel, exact }),
|
|
@@ -379,12 +380,24 @@ async function findLabeledControl(frame, fieldLabel, exact, opts) {
|
|
|
379
380
|
const style = getComputedStyle(el);
|
|
380
381
|
return style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0';
|
|
381
382
|
}
|
|
382
|
-
function referencedText(ids) {
|
|
383
|
+
function referencedText(ids, visited) {
|
|
383
384
|
if (!ids)
|
|
384
385
|
return undefined;
|
|
386
|
+
const seen = visited ?? new Set();
|
|
385
387
|
const text = ids
|
|
386
388
|
.split(/\s+/)
|
|
387
|
-
.map(id =>
|
|
389
|
+
.map(id => {
|
|
390
|
+
if (seen.has(id))
|
|
391
|
+
return '';
|
|
392
|
+
seen.add(id);
|
|
393
|
+
const target = document.getElementById(id);
|
|
394
|
+
if (!target)
|
|
395
|
+
return '';
|
|
396
|
+
const chained = target.getAttribute('aria-labelledby');
|
|
397
|
+
if (chained)
|
|
398
|
+
return referencedText(chained, seen) ?? '';
|
|
399
|
+
return target.textContent?.trim() ?? '';
|
|
400
|
+
})
|
|
388
401
|
.filter(Boolean)
|
|
389
402
|
.join(' ')
|
|
390
403
|
.trim();
|
|
@@ -408,6 +421,25 @@ async function findLabeledControl(frame, fieldLabel, exact, opts) {
|
|
|
408
421
|
if (text)
|
|
409
422
|
return text;
|
|
410
423
|
}
|
|
424
|
+
if (el.parentElement?.tagName.toLowerCase() === 'label') {
|
|
425
|
+
const text = el.parentElement.textContent?.trim();
|
|
426
|
+
if (text)
|
|
427
|
+
return text;
|
|
428
|
+
}
|
|
429
|
+
if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
|
|
430
|
+
!['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
|
|
431
|
+
const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
|
|
432
|
+
if (placeholder)
|
|
433
|
+
return placeholder;
|
|
434
|
+
}
|
|
435
|
+
if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
|
|
436
|
+
const value = el.value?.trim();
|
|
437
|
+
if (value)
|
|
438
|
+
return value;
|
|
439
|
+
}
|
|
440
|
+
const title = el.getAttribute('title')?.trim();
|
|
441
|
+
if (title)
|
|
442
|
+
return title;
|
|
411
443
|
return undefined;
|
|
412
444
|
}
|
|
413
445
|
function controlPriority(el) {
|
|
@@ -1322,12 +1354,24 @@ async function findLabeledFileInput(frame, fieldLabel, exact) {
|
|
|
1322
1354
|
return false;
|
|
1323
1355
|
return payload.exact ? normalizedCandidate === normalizedExpected : normalizedCandidate.includes(normalizedExpected);
|
|
1324
1356
|
}
|
|
1325
|
-
function referencedText(ids) {
|
|
1357
|
+
function referencedText(ids, visited) {
|
|
1326
1358
|
if (!ids)
|
|
1327
1359
|
return undefined;
|
|
1360
|
+
const seen = visited ?? new Set();
|
|
1328
1361
|
const text = ids
|
|
1329
1362
|
.split(/\s+/)
|
|
1330
|
-
.map(id =>
|
|
1363
|
+
.map(id => {
|
|
1364
|
+
if (seen.has(id))
|
|
1365
|
+
return '';
|
|
1366
|
+
seen.add(id);
|
|
1367
|
+
const target = document.getElementById(id);
|
|
1368
|
+
if (!target)
|
|
1369
|
+
return '';
|
|
1370
|
+
const chained = target.getAttribute('aria-labelledby');
|
|
1371
|
+
if (chained)
|
|
1372
|
+
return referencedText(chained, seen) ?? '';
|
|
1373
|
+
return target.textContent?.trim() ?? '';
|
|
1374
|
+
})
|
|
1331
1375
|
.filter(Boolean)
|
|
1332
1376
|
.join(' ')
|
|
1333
1377
|
.trim();
|
|
@@ -1349,6 +1393,14 @@ async function findLabeledFileInput(frame, fieldLabel, exact) {
|
|
|
1349
1393
|
if (text)
|
|
1350
1394
|
return text;
|
|
1351
1395
|
}
|
|
1396
|
+
if (el.parentElement?.tagName.toLowerCase() === 'label') {
|
|
1397
|
+
const text = el.parentElement.textContent?.trim();
|
|
1398
|
+
if (text)
|
|
1399
|
+
return text;
|
|
1400
|
+
}
|
|
1401
|
+
const title = el.getAttribute('title')?.trim();
|
|
1402
|
+
if (title)
|
|
1403
|
+
return title;
|
|
1352
1404
|
return undefined;
|
|
1353
1405
|
}
|
|
1354
1406
|
for (let i = 0; i < elements.length; i++) {
|
|
@@ -1500,6 +1552,7 @@ async function findLabeledEditableField(page, fieldLabel, exact, cache, fieldId)
|
|
|
1500
1552
|
for (const frame of page.frames()) {
|
|
1501
1553
|
const candidates = [
|
|
1502
1554
|
frame.getByLabel(fieldLabel, { exact }),
|
|
1555
|
+
frame.getByPlaceholder(fieldLabel, { exact }),
|
|
1503
1556
|
frame.getByRole('textbox', { name: fieldLabel, exact }),
|
|
1504
1557
|
frame.getByRole('combobox', { name: fieldLabel, exact }),
|
|
1505
1558
|
];
|
|
@@ -1675,12 +1728,24 @@ async function attemptNativeBatchFill(page, fields) {
|
|
|
1675
1728
|
const style = getComputedStyle(el);
|
|
1676
1729
|
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
1677
1730
|
}
|
|
1678
|
-
function referencedText(ids) {
|
|
1731
|
+
function referencedText(ids, visited) {
|
|
1679
1732
|
if (!ids)
|
|
1680
1733
|
return undefined;
|
|
1734
|
+
const seen = visited ?? new Set();
|
|
1681
1735
|
const text = ids
|
|
1682
1736
|
.split(/\s+/)
|
|
1683
|
-
.map(id =>
|
|
1737
|
+
.map(id => {
|
|
1738
|
+
if (seen.has(id))
|
|
1739
|
+
return '';
|
|
1740
|
+
seen.add(id);
|
|
1741
|
+
const target = document.getElementById(id);
|
|
1742
|
+
if (!target)
|
|
1743
|
+
return '';
|
|
1744
|
+
const chained = target.getAttribute('aria-labelledby');
|
|
1745
|
+
if (chained)
|
|
1746
|
+
return referencedText(chained, seen) ?? '';
|
|
1747
|
+
return target.textContent?.trim() ?? '';
|
|
1748
|
+
})
|
|
1684
1749
|
.filter(Boolean)
|
|
1685
1750
|
.join(' ')
|
|
1686
1751
|
.trim();
|
|
@@ -1707,6 +1772,20 @@ async function attemptNativeBatchFill(page, fields) {
|
|
|
1707
1772
|
if (el.parentElement?.tagName.toLowerCase() === 'label') {
|
|
1708
1773
|
return el.parentElement.textContent?.trim() || undefined;
|
|
1709
1774
|
}
|
|
1775
|
+
if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
|
|
1776
|
+
!['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
|
|
1777
|
+
const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
|
|
1778
|
+
if (placeholder)
|
|
1779
|
+
return placeholder;
|
|
1780
|
+
}
|
|
1781
|
+
if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
|
|
1782
|
+
const value = el.value?.trim();
|
|
1783
|
+
if (value)
|
|
1784
|
+
return value;
|
|
1785
|
+
}
|
|
1786
|
+
const title = el.getAttribute('title')?.trim();
|
|
1787
|
+
if (title)
|
|
1788
|
+
return title;
|
|
1710
1789
|
return undefined;
|
|
1711
1790
|
}
|
|
1712
1791
|
function dispatch(target) {
|
|
@@ -2005,12 +2084,24 @@ async function chooseValueFromLabeledGroup(page, fieldLabel, value, exact) {
|
|
|
2005
2084
|
return false;
|
|
2006
2085
|
return payload.exact ? normalizedCandidate === normalizedExpected : normalizedCandidate.includes(normalizedExpected);
|
|
2007
2086
|
}
|
|
2008
|
-
function referencedText(ids) {
|
|
2087
|
+
function referencedText(ids, visited) {
|
|
2009
2088
|
if (!ids)
|
|
2010
2089
|
return undefined;
|
|
2090
|
+
const seen = visited ?? new Set();
|
|
2011
2091
|
const text = ids
|
|
2012
2092
|
.split(/\s+/)
|
|
2013
|
-
.map(id =>
|
|
2093
|
+
.map(id => {
|
|
2094
|
+
if (seen.has(id))
|
|
2095
|
+
return '';
|
|
2096
|
+
seen.add(id);
|
|
2097
|
+
const target = document.getElementById(id);
|
|
2098
|
+
if (!target)
|
|
2099
|
+
return '';
|
|
2100
|
+
const chained = target.getAttribute('aria-labelledby');
|
|
2101
|
+
if (chained)
|
|
2102
|
+
return referencedText(chained, seen) ?? '';
|
|
2103
|
+
return target.textContent?.trim() ?? '';
|
|
2104
|
+
})
|
|
2014
2105
|
.filter(Boolean)
|
|
2015
2106
|
.join(' ')
|
|
2016
2107
|
.trim();
|
|
@@ -2026,6 +2117,23 @@ async function chooseValueFromLabeledGroup(page, fieldLabel, value, exact) {
|
|
|
2026
2117
|
if (el instanceof HTMLInputElement && el.labels && el.labels.length > 0) {
|
|
2027
2118
|
return el.labels[0]?.textContent?.trim() || undefined;
|
|
2028
2119
|
}
|
|
2120
|
+
if (el.parentElement?.tagName.toLowerCase() === 'label') {
|
|
2121
|
+
return el.parentElement.textContent?.trim() || undefined;
|
|
2122
|
+
}
|
|
2123
|
+
if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) &&
|
|
2124
|
+
!['checkbox', 'radio', 'file', 'button', 'submit', 'reset', 'hidden'].includes(el instanceof HTMLInputElement ? el.type : '')) {
|
|
2125
|
+
const placeholder = el.getAttribute('aria-placeholder')?.trim() || el.getAttribute('placeholder')?.trim();
|
|
2126
|
+
if (placeholder)
|
|
2127
|
+
return placeholder;
|
|
2128
|
+
}
|
|
2129
|
+
if (el instanceof HTMLInputElement && ['button', 'submit', 'reset'].includes(el.type)) {
|
|
2130
|
+
const value = el.value?.trim();
|
|
2131
|
+
if (value)
|
|
2132
|
+
return value;
|
|
2133
|
+
}
|
|
2134
|
+
const title = el.getAttribute('title')?.trim();
|
|
2135
|
+
if (title)
|
|
2136
|
+
return title;
|
|
2029
2137
|
return undefined;
|
|
2030
2138
|
}
|
|
2031
2139
|
function choiceLabel(el) {
|
|
@@ -2432,12 +2540,24 @@ export async function setCheckedControl(page, label, opts) {
|
|
|
2432
2540
|
const style = getComputedStyle(el);
|
|
2433
2541
|
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
2434
2542
|
}
|
|
2435
|
-
function referencedText(ids) {
|
|
2543
|
+
function referencedText(ids, visited) {
|
|
2436
2544
|
if (!ids)
|
|
2437
2545
|
return undefined;
|
|
2546
|
+
const seen = visited ?? new Set();
|
|
2438
2547
|
const text = ids
|
|
2439
2548
|
.split(/\s+/)
|
|
2440
|
-
.map(id =>
|
|
2549
|
+
.map(id => {
|
|
2550
|
+
if (seen.has(id))
|
|
2551
|
+
return '';
|
|
2552
|
+
seen.add(id);
|
|
2553
|
+
const target = document.getElementById(id);
|
|
2554
|
+
if (!target)
|
|
2555
|
+
return '';
|
|
2556
|
+
const chained = target.getAttribute('aria-labelledby');
|
|
2557
|
+
if (chained)
|
|
2558
|
+
return referencedText(chained, seen) ?? '';
|
|
2559
|
+
return target.textContent?.trim() ?? '';
|
|
2560
|
+
})
|
|
2441
2561
|
.filter(Boolean)
|
|
2442
2562
|
.join(' ')
|
|
2443
2563
|
.trim();
|