@futdevpro/dynamo-e2e 1.18.36 → 1.18.38

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 (37) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.d.ts.map +1 -1
  3. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.js +179 -2
  4. package/build/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.js.map +1 -1
  5. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.d.ts +0 -2
  6. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.d.ts.map +1 -1
  7. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.js +2 -10
  8. package/build/_modules/ui-check/_collections/detectors/dead-control.detector.js.map +1 -1
  9. package/build/_modules/ui-check/_collections/detectors/error-destination.detector.d.ts +53 -0
  10. package/build/_modules/ui-check/_collections/detectors/error-destination.detector.d.ts.map +1 -0
  11. package/build/_modules/ui-check/_collections/detectors/error-destination.detector.js +203 -0
  12. package/build/_modules/ui-check/_collections/detectors/error-destination.detector.js.map +1 -0
  13. package/build/_modules/ui-check/_collections/detectors/shifted-scroll.detector.d.ts +31 -0
  14. package/build/_modules/ui-check/_collections/detectors/shifted-scroll.detector.d.ts.map +1 -0
  15. package/build/_modules/ui-check/_collections/detectors/shifted-scroll.detector.js +50 -0
  16. package/build/_modules/ui-check/_collections/detectors/shifted-scroll.detector.js.map +1 -0
  17. package/build/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.d.ts +30 -0
  18. package/build/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.d.ts.map +1 -0
  19. package/build/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.js +52 -0
  20. package/build/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.js.map +1 -0
  21. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.d.ts +9 -0
  22. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.d.ts.map +1 -1
  23. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.js +15 -0
  24. package/build/_modules/ui-check/_collections/ui-check-default-detectors.const.js.map +1 -1
  25. package/build/_modules/ui-check/_collections/ui-check-guard.util.d.ts.map +1 -1
  26. package/build/_modules/ui-check/_collections/ui-check-guard.util.js +3 -0
  27. package/build/_modules/ui-check/_collections/ui-check-guard.util.js.map +1 -1
  28. package/build/_modules/ui-check/_collections/ui-check-page.util.d.ts +9 -2
  29. package/build/_modules/ui-check/_collections/ui-check-page.util.d.ts.map +1 -1
  30. package/build/_modules/ui-check/_collections/ui-check-page.util.js +15 -3
  31. package/build/_modules/ui-check/_collections/ui-check-page.util.js.map +1 -1
  32. package/build/_modules/ui-check/index.d.ts +3 -0
  33. package/build/_modules/ui-check/index.d.ts.map +1 -1
  34. package/build/_modules/ui-check/index.js +3 -0
  35. package/build/_modules/ui-check/index.js.map +1 -1
  36. package/build/index.js +1 -1
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,39 @@
3
3
  Minden release a `dynamo-e2e-foundation` HYPERPLAN MP-N ütemezést követi.
4
4
  Verzióformátum: `MM.mm.p` (két-számjegyes major-minor, Dynamo-konvenció).
5
5
 
6
+ ## [01.18.38] — 2026-11-01 — `/ui-check`: `error-destination`, a press that lands on an error (BFR-FLEET-012 ②)
7
+
8
+ - **`error-destination`** (`press-leads-to-error`; owner, 2026-10-26, `IN-2026-10-26-ORC-02`: "…ha valamire
9
+ rákattintunk, az nem egy 404 vagy valami not found, vagy nem egy error page-et ad", the Adventor profile picture
10
+ led to an account "not found"): every button-like control AND every link to another page of the same origin is
11
+ pressed on a fresh page; a finding when (1) the document answered HTTP 4xx / 5xx, (2) a short "not found" /
12
+ error text appeared that was not there before the press (EN + HU, at most 80 characters), or (3) an xhr / fetch
13
+ of the press answered 404 / 410 / 5xx. One finding per press, every signal in `details`. A request that already
14
+ fails while the page loads is not blamed; 401 / 403 is noted, not judged. Same guard as `dead-control` (a link
15
+ is denied by its destination path too). `dead-control` counts all of these as an effect, so it stays silent.
16
+ - **`listControls` kind `link`**: same-origin links to another page, one per destination (no hash-only, mailto /
17
+ tel / javascript, download or new-window link); `DyE2E_UICheckControl_Interface.href`.
18
+ - **`DyE2E_UICheckPage_Util.findAgain`**: the control on the reloaded page, shared (was private in `dead-control`).
19
+ - **Deny list** (`DyE2E_UICheckGuard_Util.defaultDenyPattern`): `unsubscri`, `leiratkoz` — a GET link may act, and
20
+ "unsubscribe" has no word boundary before "subscri" (closing review).
21
+ - A **candidate**: fixtures of the three measured forms fire (a link to a 404 page, an in-app "not found" view after
22
+ a 404 request, a request answering 500), the fixed twins and the quiet cases (a price range "500 - 1000 Ft"
23
+ too) stay silent. 5 specs, 10 mutants killed. The live run on the Adventor profile picture is the missing half.
24
+
25
+ ## [01.18.37] — 2026-10-31 — `/ui-check`: two new candidate detectors from the owner's requests (BFR-FLEET-012 ① ④)
26
+
27
+ - **`shifted-scroll`** (`scroll-start-out-of-reach`; owner, 2026-10-26, `IN-2026-10-26-ORC-01`, the Logosz
28
+ conversation screen "cannot be scrolled to its top, the whole screen is shifted"): (a) the document, the body or a
29
+ large box (at least 40 % of the viewport) that does not let the user scroll (`overflow: hidden | clip`) but IS
30
+ scrolled; (b) a box (or the document) the user scrolls whose content still starts above its top at its very start
31
+ (the start is asked from the browser, so a `column-reverse` chat is measured right). Not interactive; every
32
+ position is restored.
33
+ - **`wrapped-info-row`** (`short-info-row-wraps`; owner, 2026-10-24, `IN-2026-10-24-JOBS-RT-01`, the MP flow cards
34
+ "0.0 (0)" and "100% sikeres, 17 futásból" broken into two lines): a visible text of at most 40 characters, with
35
+ no line break of its own, rendered on two or more lines (counted from its own line boxes). Not interactive.
36
+ - Both are **candidates** (`DyE2E_UICheckCandidateDetectors_Const`): fixtures of the measured defects fire, the
37
+ fixed twins stay silent; the live runs on the owner's pages are the missing half. 5 specs, 7 mutants killed.
38
+
6
39
  ## [01.18.36] — 2026-10-31 — a curated file test-case set with inline files (BFR-MYASSISTANT-025 S4.1)
7
40
 
8
41
  - **`FILE_FIELD_TEST_CASES`** (`file`, registered; replaces the Wave-2b stub, which had the empty case only): the
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-page-scripts.const.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwY3E,CAAC"}
1
+ {"version":3,"file":"ui-check-page-scripts.const.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4jB3E,CAAC"}
@@ -8,7 +8,9 @@ exports.DyE2E_UICheckPageScripts_Const = void 0;
8
8
  exports.DyE2E_UICheckPageScripts_Const = {
9
9
  /**
10
10
  * Lists the visible, enabled controls of one kind. `press`: buttons and button-like elements (not form submits, not
11
- * checkbox / switch internals); `toggle`: checkboxes and switches. Each comes with a unique CSS path.
11
+ * checkbox / switch internals); `toggle`: checkboxes and switches; `link` (BFR-FLEET-012 ②): links to ANOTHER page of
12
+ * the same origin (no hash-only, mailto / tel / javascript, download or new-window link), one per destination. Each
13
+ * comes with a unique CSS path.
12
14
  */
13
15
  listControls: `(arg) => {
14
16
  const cssPath = (el) => {
@@ -37,7 +39,20 @@ exports.DyE2E_UICheckPageScripts_Const = {
37
39
  || !!el.closest('[inert], fieldset[disabled]');
38
40
  const selector = arg.kind === 'toggle'
39
41
  ? 'input[type="checkbox"], [role="checkbox"], [role="switch"]'
40
- : 'button, [role="button"], a:not([href]), a[href="#"], a[href=""], [role="menuitem"], [role="tab"]';
42
+ : arg.kind === 'link' ? 'a[href]'
43
+ : 'button, [role="button"], a:not([href]), a[href="#"], a[href=""], [role="menuitem"], [role="tab"]';
44
+ /** The destination of a link to another page of this origin, or null. */
45
+ const destination = (el) => {
46
+ const raw = el.getAttribute('href') || '';
47
+ if (!raw || raw.startsWith('#') || /^(mailto|tel|javascript|data|blob):/i.test(raw)) return null;
48
+ if (el.hasAttribute('download') || (el.target && el.target !== '_self')) return null;
49
+ let url;
50
+ try { url = new URL(el.href, location.href); } catch (e) { return null; }
51
+ if (url.origin !== location.origin) return null;
52
+ if (url.pathname === location.pathname && url.search === location.search) return null;
53
+ return url.pathname + url.search;
54
+ };
55
+ const seen = new Set();
41
56
  // a modal dialog open (a visible dialog + a backdrop, or aria-modal) ⇒ only ITS controls are reachable
42
57
  const dialogs = Array.from(document.querySelectorAll(
43
58
  '[role="dialog"], [role="alertdialog"], mat-dialog-container, .mat-mdc-dialog-container, dialog[open]'))
@@ -54,8 +69,11 @@ exports.DyE2E_UICheckPageScripts_Const = {
54
69
  if (el.closest('input, select, textarea')) continue;
55
70
  }
56
71
  if (arg.kind === 'toggle' && el.tagName !== 'INPUT' && el.querySelector('input[type="checkbox"]')) continue;
72
+ const href = arg.kind === 'link' ? destination(el) : null;
73
+ if (arg.kind === 'link' && (!href || seen.has(href))) continue;
57
74
  const probe = el.tagName === 'INPUT' && !visible(el) ? (el.closest('label, [class*="checkbox"]') || el) : el;
58
75
  if (!visible(probe) || disabled(el)) continue;
76
+ if (href) seen.add(href);
59
77
  const labelEl = el.tagName === 'INPUT'
60
78
  ? (el.labels && el.labels[0]) || el.closest('label, [class*="checkbox"], [class*="toggle"]') : el;
61
79
  out.push({
@@ -69,6 +87,7 @@ exports.DyE2E_UICheckPageScripts_Const = {
69
87
  // BFR-MASTERPROMPTER-125 1. — the current page / the selected tab: pressing it again is deliberately inert
70
88
  current: (!!el.getAttribute('aria-current') && el.getAttribute('aria-current') !== 'false')
71
89
  || (el.getAttribute('role') === 'tab' && el.getAttribute('aria-selected') === 'true'),
90
+ href: href,
72
91
  });
73
92
  if (out.length >= arg.max) break;
74
93
  }
@@ -386,5 +405,163 @@ exports.DyE2E_UICheckPageScripts_Const = {
386
405
  window.scrollTo(window.scrollX, arg.positions[i] || 0);
387
406
  return true;
388
407
  }`,
408
+ // BFR-FLEET-012 ① (owner, 2026-10-26, IN-2026-10-26-ORC-01) — scroll offsets the user cannot undo: (a) the document
409
+ // or a large box that does NOT let the user scroll (overflow hidden / clip) but is scrolled anyway; (b) a box (or the
410
+ // document) the user scrolls, whose content still starts ABOVE its top when it is scrolled to its very start.
411
+ // Every position is restored; nothing is pressed.
412
+ shiftedScrolls: `(arg) => {
413
+ const root = document.scrollingElement || document.documentElement;
414
+ const vh = window.innerHeight;
415
+ const vw = window.innerWidth;
416
+ const cssPath = (el) => {
417
+ const parts = [];
418
+ let node = el;
419
+ while (node && node.nodeType === 1 && node !== document.documentElement) {
420
+ if (node.id && /^[A-Za-z][\\w-]*$/.test(node.id)) { parts.unshift('#' + node.id); break; }
421
+ const tag = node.tagName.toLowerCase();
422
+ const parent = node.parentElement;
423
+ const same = parent ? Array.from(parent.children).filter((c) => c.tagName === node.tagName) : [];
424
+ parts.unshift(same.length > 1 ? tag + ':nth-of-type(' + (same.indexOf(node) + 1) + ')' : tag);
425
+ node = parent;
426
+ }
427
+ return parts.join(' > ');
428
+ };
429
+ const blocked = (v) => /^(hidden|clip)$/.test(v);
430
+ const htmlCs = getComputedStyle(document.documentElement);
431
+ const bodyCs = getComputedStyle(document.body);
432
+ // the viewport takes the html's overflow, or the body's when the html's is visible
433
+ const viewport = (axis) => htmlCs[axis] !== 'visible' ? htmlCs[axis] : bodyCs[axis];
434
+ // the top of the first in-flow, visible child box (positioned / hidden helpers, e.g. skip links, do not count)
435
+ const contentTop = (el) => {
436
+ let top = Infinity;
437
+ for (const child of Array.from(el.children)) {
438
+ const cs = getComputedStyle(child);
439
+ if (/^(absolute|fixed)$/.test(cs.position) || cs.display === 'none') continue;
440
+ const r = child.getBoundingClientRect();
441
+ if (r.width > 1 && r.height > 1) top = Math.min(top, r.top);
442
+ }
443
+ return top;
444
+ };
445
+ const out = [];
446
+ const docBlockedY = blocked(viewport('overflowY'));
447
+ const docBlockedX = blocked(viewport('overflowX'));
448
+ if ((docBlockedY && root.scrollTop > 0) || (docBlockedX && root.scrollLeft > 0)) {
449
+ out.push({ kind: 'hidden-offset', selector: 'document', tag: 'html', className: '', scrollTop: root.scrollTop,
450
+ scrollLeft: root.scrollLeft, scrollHeight: root.scrollHeight, clientHeight: vh, cutPx: 0 });
451
+ }
452
+ if (!docBlockedY && root.scrollHeight > vh + 1) {
453
+ const x = window.scrollX;
454
+ const y = window.scrollY;
455
+ window.scrollTo(x, -1e9);
456
+ const top = contentTop(document.body);
457
+ const cut = top === Infinity ? 0 : Math.round(-top);
458
+ window.scrollTo(x, y);
459
+ if (cut > 1) {
460
+ out.push({ kind: 'content-above-top', selector: 'document', tag: 'html', className: '', scrollTop: y,
461
+ scrollLeft: x, scrollHeight: root.scrollHeight, clientHeight: vh, cutPx: cut });
462
+ }
463
+ }
464
+ // the body too: with BOTH html and body overflow hidden the body is the box a scrollIntoView moves
465
+ for (const el of Array.from(document.querySelectorAll('body, body *'))) {
466
+ if (out.length >= arg.max) break;
467
+ const r = el.getBoundingClientRect();
468
+ if (r.width < vw * arg.minShare || r.height < vh * arg.minShare) continue;
469
+ const cs = getComputedStyle(el);
470
+ const base = { selector: cssPath(el), tag: el.tagName.toLowerCase(),
471
+ className: (typeof el.className === 'string' ? el.className : '').slice(0, 80),
472
+ scrollTop: el.scrollTop, scrollLeft: el.scrollLeft, scrollHeight: el.scrollHeight,
473
+ clientHeight: el.clientHeight };
474
+ if (blocked(cs.overflowY) && el.scrollTop > 0) {
475
+ out.push(Object.assign({ kind: 'hidden-offset', cutPx: 0 }, base));
476
+ continue;
477
+ }
478
+ if (!/(auto|scroll|overlay)/.test(cs.overflowY) || el.scrollHeight <= el.clientHeight + 1) continue;
479
+ const saved = el.scrollTop;
480
+ // the very start: a column-reverse box starts at a NEGATIVE scrollTop, the browser clamps either way
481
+ el.scrollTop = -el.scrollHeight;
482
+ const top = contentTop(el);
483
+ const edge = el.getBoundingClientRect().top + el.clientTop;
484
+ el.scrollTop = saved;
485
+ const cut = top === Infinity ? 0 : Math.round(edge - top);
486
+ if (cut > 1) out.push(Object.assign({ kind: 'content-above-top', cutPx: cut }, base));
487
+ }
488
+ return out;
489
+ }`,
490
+ // BFR-FLEET-012 ④ (owner, 2026-10-24, IN-2026-10-24-JOBS-RT-01) — a SHORT info row (a label + value, a counter, a
491
+ // status line) that the layout breaks into several lines. The lines are counted from the text's own line boxes.
492
+ wrappedInfoRows: `(arg) => {
493
+ const cssPath = (el) => {
494
+ const parts = [];
495
+ let node = el;
496
+ while (node && node.nodeType === 1 && node !== document.documentElement) {
497
+ if (node.id && /^[A-Za-z][\\w-]*$/.test(node.id)) { parts.unshift('#' + node.id); break; }
498
+ const tag = node.tagName.toLowerCase();
499
+ const parent = node.parentElement;
500
+ const same = parent ? Array.from(parent.children).filter((c) => c.tagName === node.tagName) : [];
501
+ parts.unshift(same.length > 1 ? tag + ':nth-of-type(' + (same.indexOf(node) + 1) + ')' : tag);
502
+ node = parent;
503
+ }
504
+ return parts.join(' > ');
505
+ };
506
+ const skip = /^(SCRIPT|STYLE|NOSCRIPT|TEXTAREA|INPUT|SELECT|OPTION|H1|H2|PRE|CODE|TITLE)$/;
507
+ const inline = /^(inline|inline-block|inline-flex|inline-grid|contents)$/;
508
+ const reported = [];
509
+ const out = [];
510
+ let total = 0;
511
+ for (const el of Array.from(document.querySelectorAll('body *'))) {
512
+ if (skip.test(el.tagName) || el.closest('svg, [contenteditable="true"], [contenteditable=""]')) continue;
513
+ if (reported.some((r) => r.contains(el))) continue;
514
+ if (Array.from(el.children).some((c) => !inline.test(getComputedStyle(c).display))) continue;
515
+ const text = (el.innerText || '').trim();
516
+ // a line break in the text itself (a <br>) is the author's choice, not a wrap
517
+ if (text.length < 2 || text.length > arg.maxChars || /\\n/.test(text)) continue;
518
+ const cs = getComputedStyle(el);
519
+ if (cs.visibility === 'hidden' || cs.display === 'none') continue;
520
+ const box = el.getBoundingClientRect();
521
+ if (box.width < 1 || box.height < 1) continue;
522
+ const range = document.createRange();
523
+ range.selectNodeContents(el);
524
+ const rects = Array.from(range.getClientRects()).filter((r) => r.width > 0 && r.height > 0)
525
+ .sort((a, b) => a.top - b.top);
526
+ let lines = 0;
527
+ let lastBottom = -Infinity;
528
+ for (const r of rects) {
529
+ if (r.top >= lastBottom - r.height / 2) { lines++; lastBottom = r.bottom; }
530
+ else lastBottom = Math.max(lastBottom, r.bottom);
531
+ }
532
+ if (lines < 2) continue;
533
+ total++;
534
+ reported.push(el);
535
+ if (out.length < arg.max) {
536
+ out.push({ selector: cssPath(el), tag: el.tagName.toLowerCase(), text: text, lines: lines,
537
+ width: Math.round(box.width), whiteSpace: cs.whiteSpace });
538
+ }
539
+ }
540
+ return { rows: out, total: total };
541
+ }`,
542
+ /**
543
+ * BFR-FLEET-012 ② — the visible short texts that say "error page" / "not found" (`arg.source` + `arg.flags`: the
544
+ * pattern; `arg.maxLength`: longer texts are prose, not a status line; `arg.max`: list cap). An element's OWN text
545
+ * counts (its direct text nodes), so a wrapper is not reported for its child; the document title counts too.
546
+ */
547
+ errorTexts: `(arg) => {
548
+ const pattern = new RegExp(arg.source, arg.flags);
549
+ const out = [];
550
+ const title = (document.title || '').replace(/\\s+/g, ' ').trim();
551
+ if (title && title.length <= arg.maxLength && pattern.test(title)) out.push('title: ' + title);
552
+ for (const el of Array.from(document.body ? document.body.querySelectorAll('*') : [])) {
553
+ if (out.length >= arg.max) break;
554
+ if (/^(SCRIPT|STYLE|NOSCRIPT|TEMPLATE|svg)$/i.test(el.tagName)) continue;
555
+ const own = Array.from(el.childNodes).filter((n) => n.nodeType === 3).map((n) => n.textContent).join(' ')
556
+ .replace(/\\s+/g, ' ').trim();
557
+ if (!own || own.length > arg.maxLength || !pattern.test(own)) continue;
558
+ const r = el.getBoundingClientRect();
559
+ const cs = getComputedStyle(el);
560
+ if (r.width <= 0 || r.height <= 0 || cs.visibility === 'hidden' || cs.display === 'none') continue;
561
+ if (typeof el.checkVisibility === 'function' && !el.checkVisibility()) continue;
562
+ if (!out.includes(own)) out.push(own);
563
+ }
564
+ return out;
565
+ }`,
389
566
  };
390
567
  //# sourceMappingURL=ui-check-page-scripts.const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-page-scripts.const.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,8BAA8B,GAAqC;IAE9E;;;OAGG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DZ;IAEF,gHAAgH;IAChH,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkElB;IAEF,iEAAiE;IACjE,iBAAiB,EAAE;;;;;;;IAOjB;IAEF;;;;;OAKG;IACH,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwCf;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;IAKX;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;;IAMX;IAEF;;;;OAIG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCZ;IAEF,gHAAgH;IAChH,sHAAsH;IACtH,2GAA2G;IAC3G,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+Df;IAEF,qHAAqH;IACrH,6GAA6G;IAC7G,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8CX;IAEF,6GAA6G;IAC7G,WAAW,EAAE;;;;;IAKX;IAEF,qGAAqG;IACrG,kBAAkB,EAAE;;;;;;;IAOlB;CACH,CAAC"}
1
+ {"version":3,"file":"ui-check-page-scripts.const.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/constants/ui-check-page-scripts.const.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,8BAA8B,GAAqC;IAE9E;;;;;OAKG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFZ;IAEF,gHAAgH;IAChH,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkElB;IAEF,iEAAiE;IACjE,iBAAiB,EAAE;;;;;;;IAOjB;IAEF;;;;;OAKG;IACH,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwCf;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;IAKX;IAEF,kEAAkE;IAClE,WAAW,EAAE;;;;;;IAMX;IAEF;;;;OAIG;IACH,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCZ;IAEF,gHAAgH;IAChH,sHAAsH;IACtH,2GAA2G;IAC3G,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+Df;IAEF,qHAAqH;IACrH,6GAA6G;IAC7G,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8CX;IAEF,6GAA6G;IAC7G,WAAW,EAAE;;;;;IAKX;IAEF,qGAAqG;IACrG,kBAAkB,EAAE;;;;;;;IAOlB;IAEF,oHAAoH;IACpH,sHAAsH;IACtH,8GAA8G;IAC9G,kDAAkD;IAClD,cAAc,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6Ed;IAEF,kHAAkH;IAClH,gHAAgH;IAChH,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiDf;IAEF;;;;OAIG;IACH,UAAU,EAAE;;;;;;;;;;;;;;;;;;IAkBV;CACH,CAAC"}
@@ -28,8 +28,6 @@ export declare class DyE2E_DeadControl_Detector implements DyE2E_UICheckDetector
28
28
  * ancestors) is filled with `probeText`, and the control is pressed again. `null` when there is no such input.
29
29
  */
30
30
  private pressWithInput;
31
- /** The same control on the reloaded page (by tag, test id, label and text). */
32
- private findAgain;
33
31
  /** The findings of one press. */
34
32
  private judge;
35
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dead-control.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC3H,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAS1F;;;;;;;;;;GAUG;AACH,qBAAa,0BAA2B,YAAW,+BAA+B;IAEhF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAkB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA4B;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAmE;IAC/F,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IACrC,KAAK,EAAE,MAAM,EAAE,CAAM;IAEf,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;IAyEzG,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAO;IAExC;;;OAGG;YACW,cAAc;IAyB5B,+EAA+E;YACjE,SAAS;IAevB,iCAAiC;IACjC,OAAO,CAAC,KAAK;CAwCd"}
1
+ {"version":3,"file":"dead-control.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC3H,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAS1F;;;;;;;;;;GAUG;AACH,qBAAa,0BAA2B,YAAW,+BAA+B;IAEhF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAkB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA4B;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAmE;IAC/F,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IACrC,KAAK,EAAE,MAAM,EAAE,CAAM;IAEf,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;IA0EzG,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAO;IAExC;;;OAGG;YACW,cAAc;IA0B5B,iCAAiC;IACjC,OAAO,CAAC,KAAK;CAwCd"}
@@ -53,7 +53,7 @@ class DyE2E_DeadControl_Detector {
53
53
  for (const control of listed.controls.filter((c) => !c.current)) {
54
54
  await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
55
55
  // an earlier press may have changed the page for good (a stored choice) ⇒ find the control again by identity
56
- const current = await this.findAgain(page, context, control);
56
+ const current = await ui_check_page_util_1.DyE2E_UICheckPage_Util.findAgain(page, context, control, 'press');
57
57
  if (!current) {
58
58
  this.notes.push(`"${control.text || control.ariaLabel || control.testId}" (${control.selector}) was not ` +
59
59
  'found again after the reload — not measured.');
@@ -93,7 +93,7 @@ class DyE2E_DeadControl_Detector {
93
93
  */
94
94
  async pressWithInput(page, context, control, guard, background) {
95
95
  await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
96
- const current = await this.findAgain(page, context, control);
96
+ const current = await ui_check_page_util_1.DyE2E_UICheckPage_Util.findAgain(page, context, control, 'press');
97
97
  if (!current) {
98
98
  return null;
99
99
  }
@@ -105,14 +105,6 @@ class DyE2E_DeadControl_Detector {
105
105
  return { input: input,
106
106
  effect: await ui_check_page_util_1.DyE2E_UICheckPage_Util.press(page, current.selector, guard, context, background) };
107
107
  }
108
- /** The same control on the reloaded page (by tag, test id, label and text). */
109
- async findAgain(page, context, control) {
110
- const listed = await ui_check_page_util_1.DyE2E_UICheckPage_Util.listControls(page, context, 'press');
111
- const wanted = ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(control);
112
- return listed.controls.find((c) => c.selector === control.selector
113
- && ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(c) === wanted)
114
- ?? listed.controls.find((c) => ui_check_page_util_1.DyE2E_UICheckPage_Util.signature(c) === wanted);
115
- }
116
108
  /** The findings of one press. */
117
109
  judge(control, effect, context, deniedCount) {
118
110
  const label = control.text || control.ariaLabel || control.testId || control.selector;
@@ -1 +1 @@
1
- {"version":3,"file":"dead-control.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dead-control.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/dead-control.detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Page } from '@playwright/test';
2
+ import { DyE2E_UICheckContext_Interface } from '../../_models/ui-check-context.interface';
3
+ import { DyE2E_UICheckDetector_Interface, DyE2E_UICheckOrigin_Interface } from '../../_models/ui-check-detector.interface';
4
+ import { DyE2E_UICheckFinding_Interface } from '../../_models/ui-check-finding.interface';
5
+ /**
6
+ * A press that lands on an ERROR (BFR-FLEET-012 ②): every visible, enabled button-like control AND every link to
7
+ * another page of the same origin is pressed on a FRESH page, and the destination is measured:
8
+ * 1. the page navigated, and the document answered HTTP 4xx / 5xx;
9
+ * 2. a short "not found" / "error" status text APPEARED (404, "not found", "nem található", "hiba történt" …) that
10
+ * the page did not show before the press — this is how a single-page app shows a missing record or route;
11
+ * 3. an xhr / fetch the press caused answered 404 / 410 / 5xx (a request that fails on load too is not blamed).
12
+ * `dead-control` takes any of these as an EFFECT (the press "did something"), so it stays silent on them.
13
+ *
14
+ * One finding per press, the strongest signal first (HTTP document error, then the error text, then the failed
15
+ * request); every measured signal is in `details`. 401 / 403 answers are noted, not judged: the anonymous or
16
+ * throwaway account may lack the right on purpose.
17
+ *
18
+ * Safety: the same guard as `dead-control` (`DyE2E_UICheckGuard_Util`) — test host + anonymous / throwaway account,
19
+ * the deny list (for a link its destination path too), mutating requests aborted, navigation off the host aborted.
20
+ *
21
+ * Origin: the owner, 2026-10-26 (`IN-2026-10-26-ORC-02`): "…ha valamire rákattintunk, az nem egy 404 vagy valami not
22
+ * found, vagy nem egy error page-et ad" — the Adventor profile picture led to an account "not found" page.
23
+ */
24
+ export declare class DyE2E_ErrorDestination_Detector implements DyE2E_UICheckDetector_Interface {
25
+ readonly id: string;
26
+ readonly errorClass: string;
27
+ readonly description: string;
28
+ readonly origin: DyE2E_UICheckOrigin_Interface;
29
+ readonly interactive: boolean;
30
+ notes: string[];
31
+ /** Short status texts of an error page (EN + HU). A text longer than `maxTextLength` is prose, never matched. */
32
+ static readonly errorTextPattern: RegExp;
33
+ /** The longest own text of an element that still counts as a status line, characters. */
34
+ static readonly maxTextLength: number;
35
+ /** How many error texts are read per page. */
36
+ static readonly maxTexts: number;
37
+ /** Whether an xhr / fetch status is a failure: missing (404, 410) or a broken server (5xx). */
38
+ static isFailedStatus(status: number): boolean;
39
+ run(page: Page, context: DyE2E_UICheckContext_Interface): Promise<DyE2E_UICheckFinding_Interface[]>;
40
+ /** Presses one control on a fresh page and judges where it landed. */
41
+ private pressOne;
42
+ /** The one finding of a press (or none): the HTTP document error, else a new error text, else a failed request. */
43
+ private judge;
44
+ /** Reloads the page; the xhr / fetch paths that fail while it loads go to `failingOnLoad`. */
45
+ private reload;
46
+ /** The visible error texts of the page now (empty when the page is gone mid-navigation). */
47
+ private errorTexts;
48
+ /** How a control is named in a note or a finding. */
49
+ private label;
50
+ /** The path + query of a URL (the URL itself when it does not parse). */
51
+ private pathOf;
52
+ }
53
+ //# sourceMappingURL=error-destination.detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-destination.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/error-destination.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAY,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAS1F;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,+BAAgC,YAAW,+BAA+B;IAErF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAuB;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA0B;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CACuB;IACnD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IACrC,KAAK,EAAE,MAAM,EAAE,CAAM;IAErB,iHAAiH;IACjH,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAMtB;IAElB,yFAAyF;IACzF,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAM;IAE3C,8CAA8C;IAC9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAM;IAEtC,+FAA+F;IAC/F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;IAwCzG,sEAAsE;YACxD,QAAQ;IA0DtB,mHAAmH;IACnH,OAAO,CAAC,KAAK;IA0Cb,8FAA8F;YAChF,MAAM;IAqBpB,4FAA4F;YAC9E,UAAU;IASxB,qDAAqD;IACrD,OAAO,CAAC,KAAK;IAKb,yEAAyE;IACzE,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_ErrorDestination_Detector = void 0;
4
+ const ui_check_page_scripts_const_1 = require("../constants/ui-check-page-scripts.const");
5
+ const ui_check_guard_util_1 = require("../ui-check-guard.util");
6
+ const ui_check_page_util_1 = require("../ui-check-page.util");
7
+ /**
8
+ * A press that lands on an ERROR (BFR-FLEET-012 ②): every visible, enabled button-like control AND every link to
9
+ * another page of the same origin is pressed on a FRESH page, and the destination is measured:
10
+ * 1. the page navigated, and the document answered HTTP 4xx / 5xx;
11
+ * 2. a short "not found" / "error" status text APPEARED (404, "not found", "nem található", "hiba történt" …) that
12
+ * the page did not show before the press — this is how a single-page app shows a missing record or route;
13
+ * 3. an xhr / fetch the press caused answered 404 / 410 / 5xx (a request that fails on load too is not blamed).
14
+ * `dead-control` takes any of these as an EFFECT (the press "did something"), so it stays silent on them.
15
+ *
16
+ * One finding per press, the strongest signal first (HTTP document error, then the error text, then the failed
17
+ * request); every measured signal is in `details`. 401 / 403 answers are noted, not judged: the anonymous or
18
+ * throwaway account may lack the right on purpose.
19
+ *
20
+ * Safety: the same guard as `dead-control` (`DyE2E_UICheckGuard_Util`) — test host + anonymous / throwaway account,
21
+ * the deny list (for a link its destination path too), mutating requests aborted, navigation off the host aborted.
22
+ *
23
+ * Origin: the owner, 2026-10-26 (`IN-2026-10-26-ORC-02`): "…ha valamire rákattintunk, az nem egy 404 vagy valami not
24
+ * found, vagy nem egy error page-et ad" — the Adventor profile picture led to an account "not found" page.
25
+ */
26
+ class DyE2E_ErrorDestination_Detector {
27
+ id = 'error-destination';
28
+ errorClass = 'press-leads-to-error';
29
+ description = 'A control or link whose press lands on an error: an HTTP 4xx / 5xx page, a ' +
30
+ '"not found" / error text, or a failed request.';
31
+ origin = {
32
+ code: 'BFR-FLEET-012', foundBy: 'owner (IN-2026-10-26-ORC-02, Adventor profile picture)', date: '2026-10-26',
33
+ };
34
+ interactive = true;
35
+ notes = [];
36
+ /** Short status texts of an error page (EN + HU). A text longer than `maxTextLength` is prose, never matched. */
37
+ static errorTextPattern = new RegExp([
38
+ '\\bnot\\s+found\\b', 'nem\\s+található', 'nem\\s+találjuk', 'nem\\s+létezik', '\\bdoes\\s+not\\s+exist\\b',
39
+ '\\bdoesn\'t\\s+exist\\b', '\\bsomething\\s+went\\s+wrong\\b', 'hiba\\s+történt', 'váratlan\\s+hiba',
40
+ '\\bunexpected\\s+error\\b', '\\bserver\\s+error\\b', '^\\s*(?:404|500|502|503)\\s*$',
41
+ // a bare "500 - …" is NOT matched: "500 - 1000 Ft" is a price range (closing review, 2026-11-01)
42
+ '\\b(?:error|hiba|http|status)\\s*:?\\s*(?:404|500|502|503)\\b',
43
+ ].join('|'), 'i');
44
+ /** The longest own text of an element that still counts as a status line, characters. */
45
+ static maxTextLength = 80;
46
+ /** How many error texts are read per page. */
47
+ static maxTexts = 20;
48
+ /** Whether an xhr / fetch status is a failure: missing (404, 410) or a broken server (5xx). */
49
+ static isFailedStatus(status) {
50
+ return status === 404 || status === 410 || status >= 500;
51
+ }
52
+ async run(page, context) {
53
+ const guard = await ui_check_guard_util_1.DyE2E_UICheckGuard_Util.installNetworkGuard(page, context);
54
+ const findings = [];
55
+ /** Console errors the page logs without any press (handed to `press`, so they are not counted as its effect). */
56
+ const background = new Set();
57
+ /** Request paths that fail while the page LOADS — never blamed on a press. */
58
+ const failingOnLoad = new Set();
59
+ this.notes = [];
60
+ try {
61
+ await this.reload(page, context, background, failingOnLoad);
62
+ const onLoad = await this.errorTexts(page);
63
+ // an error the page shows WITHOUT a press belongs to the page itself (another detector's / the reviewer's)
64
+ if (onLoad.length) {
65
+ this.notes.push(`the page itself shows ${onLoad.length} error text(s) without any press (not a press ` +
66
+ `finding): "${onLoad[0]}"`);
67
+ }
68
+ const kinds = ['press', 'link'];
69
+ for (const kind of kinds) {
70
+ const listed = await ui_check_page_util_1.DyE2E_UICheckPage_Util.listControls(page, context, kind);
71
+ if (listed.denied.length) {
72
+ this.notes.push(`${listed.denied.length} ${kind === 'link' ? 'link' : 'control'}(s) not pressed (deny ` +
73
+ 'list): ' + listed.denied.map((c) => this.label(c)).join(', '));
74
+ }
75
+ for (const control of listed.controls.filter((c) => !c.current)) {
76
+ findings.push(...await this.pressOne(page, context, control, kind, guard, { background: background, failingOnLoad: failingOnLoad }));
77
+ }
78
+ }
79
+ }
80
+ finally {
81
+ await guard.remove();
82
+ }
83
+ return findings;
84
+ }
85
+ /** Presses one control on a fresh page and judges where it landed. */
86
+ async pressOne(page, context, control, kind, guard, noise) {
87
+ await this.reload(page, context, noise.background, noise.failingOnLoad);
88
+ // an earlier press may have changed the page for good (a stored choice) ⇒ find the control again by identity
89
+ const current = await ui_check_page_util_1.DyE2E_UICheckPage_Util.findAgain(page, context, control, kind);
90
+ if (!current) {
91
+ this.notes.push(`${this.label(control)} (${control.selector}) was not found again after the reload — not ` +
92
+ 'measured.');
93
+ return [];
94
+ }
95
+ const textsBefore = await this.errorTexts(page);
96
+ const answers = [];
97
+ const onResponse = (response) => {
98
+ answers.push({ url: response.url(), status: response.status(), type: response.request().resourceType(),
99
+ isDocument: response.request().isNavigationRequest() && response.frame() === page.mainFrame() });
100
+ };
101
+ let effect;
102
+ page.on('response', onResponse);
103
+ try {
104
+ effect = await ui_check_page_util_1.DyE2E_UICheckPage_Util.press(page, current.selector, guard, context, noise.background);
105
+ }
106
+ finally {
107
+ page.off('response', onResponse);
108
+ }
109
+ const textsAfter = await this.errorTexts(page);
110
+ if (current.href && effect.abortedRequests.some((entry) => entry === 'GET ' + new URL(current.href ?? '', effect.urlBefore).href)) {
111
+ this.notes.push(`${this.label(current)} → ${current.href}: the guard aborted the navigation (a payment / mail ` +
112
+ 'path) — not measured.');
113
+ }
114
+ const forbidden = answers
115
+ .filter((a) => a.status === 401 || a.status === 403)
116
+ .map((a) => `${a.status} ${this.pathOf(a.url)}`);
117
+ if (forbidden.length) {
118
+ this.notes.push(`${this.label(current)}: ${forbidden.join(', ')} — the account may lack the right on purpose ` +
119
+ '(noted, not judged).');
120
+ }
121
+ return this.judge(current, effect, {
122
+ document: answers.find((a) => a.isDocument && a.status >= 400),
123
+ failedRequests: answers.filter((a) => ['xhr', 'fetch'].includes(a.type) && DyE2E_ErrorDestination_Detector.isFailedStatus(a.status)
124
+ && !noise.failingOnLoad.has(this.pathOf(a.url))),
125
+ newTexts: textsAfter.filter((text) => !textsBefore.includes(text)),
126
+ }, context);
127
+ }
128
+ /** The one finding of a press (or none): the HTTP document error, else a new error text, else a failed request. */
129
+ judge(control, effect, signals, context) {
130
+ if (!signals.document && !signals.newTexts.length && !signals.failedRequests.length) {
131
+ return [];
132
+ }
133
+ const label = this.label(control);
134
+ const requests = signals.failedRequests.slice(0, 3)
135
+ .map((r) => `${r.status} ${this.pathOf(r.url)}`).join(', ');
136
+ let measured;
137
+ if (signals.document) {
138
+ measured = `Pressing ${label} navigated to ${signals.document.url}, which answered HTTP ` +
139
+ `${signals.document.status}.`;
140
+ }
141
+ else if (signals.newTexts.length) {
142
+ measured = `Pressing ${label} led to ${effect.urlAfter}, which shows "${signals.newTexts[0]}"` +
143
+ (requests ? ` (failed request: ${requests}).` : '.');
144
+ }
145
+ else {
146
+ measured = `Pressing ${label} sent request(s) that failed: ${requests}.`;
147
+ }
148
+ return [{
149
+ detector: this.id,
150
+ errorClass: this.errorClass,
151
+ url: context.url,
152
+ target: ui_check_page_util_1.DyE2E_UICheckPage_Util.toTarget(control),
153
+ measured: measured,
154
+ expected: 'A control or link leads to a working page or state — never to a 404 / "not found" / error page or a ' +
155
+ 'failed request.',
156
+ details: { href: control.href ?? null, urlBefore: effect.urlBefore, urlAfter: effect.urlAfter,
157
+ documentError: signals.document ?? null, newErrorTexts: signals.newTexts,
158
+ failedRequests: signals.failedRequests, pressError: effect.pressError },
159
+ }];
160
+ }
161
+ /** Reloads the page; the xhr / fetch paths that fail while it loads go to `failingOnLoad`. */
162
+ async reload(page, context, background, failingOnLoad) {
163
+ const onResponse = (response) => {
164
+ if (['xhr', 'fetch'].includes(response.request().resourceType())
165
+ && DyE2E_ErrorDestination_Detector.isFailedStatus(response.status())) {
166
+ failingOnLoad.add(this.pathOf(response.url()));
167
+ }
168
+ };
169
+ page.on('response', onResponse);
170
+ try {
171
+ await ui_check_page_util_1.DyE2E_UICheckPage_Util.reload(page, context, background);
172
+ }
173
+ finally {
174
+ page.off('response', onResponse);
175
+ }
176
+ }
177
+ /** The visible error texts of the page now (empty when the page is gone mid-navigation). */
178
+ async errorTexts(page) {
179
+ return ui_check_page_util_1.DyE2E_UICheckPage_Util.evaluate(page, ui_check_page_scripts_const_1.DyE2E_UICheckPageScripts_Const['errorTexts'], {
180
+ source: DyE2E_ErrorDestination_Detector.errorTextPattern.source,
181
+ flags: DyE2E_ErrorDestination_Detector.errorTextPattern.flags,
182
+ maxLength: DyE2E_ErrorDestination_Detector.maxTextLength,
183
+ max: DyE2E_ErrorDestination_Detector.maxTexts,
184
+ }).catch(() => []);
185
+ }
186
+ /** How a control is named in a note or a finding. */
187
+ label(control) {
188
+ return `"${control.text || control.ariaLabel || control.testId || control.selector}"` +
189
+ (control.href ? ` (→ ${control.href})` : '');
190
+ }
191
+ /** The path + query of a URL (the URL itself when it does not parse). */
192
+ pathOf(url) {
193
+ try {
194
+ const parsed = new URL(url);
195
+ return parsed.pathname + parsed.search;
196
+ }
197
+ catch {
198
+ return url;
199
+ }
200
+ }
201
+ }
202
+ exports.DyE2E_ErrorDestination_Detector = DyE2E_ErrorDestination_Detector;
203
+ //# sourceMappingURL=error-destination.detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-destination.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/error-destination.detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Page } from '@playwright/test';
2
+ import { DyE2E_UICheckContext_Interface } from '../../_models/ui-check-context.interface';
3
+ import { DyE2E_UICheckDetector_Interface, DyE2E_UICheckOrigin_Interface } from '../../_models/ui-check-detector.interface';
4
+ import { DyE2E_UICheckFinding_Interface } from '../../_models/ui-check-finding.interface';
5
+ /**
6
+ * A SHIFTED SCROLL: the user cannot get back to the top of the page or of a large box. Two measured forms:
7
+ * - `hidden-offset` — the document (either axis) or a box covering a large part of the viewport does not let the user
8
+ * scroll (`overflow: hidden | clip`), yet it IS scrolled (e.g. a `scrollIntoView` moved it): the whole screen stays
9
+ * shifted and no wheel or swipe brings it back;
10
+ * - `content-above-top` — a box (or the document) the user scrolls, scrolled to its very start, still has content
11
+ * above its top edge (a negative margin or a transform pulled it out of the scrollable area).
12
+ *
13
+ * Nothing is pressed; every scroll position is restored (not interactive). A `column-reverse` box (a chat) starts at a
14
+ * negative `scrollTop`: the start is asked from the browser, so such a box is measured right.
15
+ *
16
+ * Origin: owner, 2026-10-26 02:44 (`IN-2026-10-26-ORC-01`, BFR-FLEET-012 ①): the Logosz conversation screen "cannot be
17
+ * scrolled up to its top, the whole screen is shifted".
18
+ */
19
+ export declare class DyE2E_ShiftedScroll_Detector implements DyE2E_UICheckDetector_Interface {
20
+ readonly id: string;
21
+ readonly errorClass: string;
22
+ readonly description: string;
23
+ readonly origin: DyE2E_UICheckOrigin_Interface;
24
+ readonly interactive: boolean;
25
+ /** A box counts when it covers at least this share of the viewport, in both directions. */
26
+ static readonly minShare: number;
27
+ /** At most this many findings per page. */
28
+ static readonly maxFindings: number;
29
+ run(page: Page, context: DyE2E_UICheckContext_Interface): Promise<DyE2E_UICheckFinding_Interface[]>;
30
+ }
31
+ //# sourceMappingURL=shifted-scroll.detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shifted-scroll.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/shifted-scroll.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAmB1F;;;;;;;;;;;;;GAaG;AACH,qBAAa,4BAA6B,YAAW,+BAA+B;IAElF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAoB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA+B;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAC4E;IACxG,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAE5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAS;IAEtC,2FAA2F;IAC3F,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAO;IAEvC,2CAA2C;IAC3C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAEnC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;CAmB1G"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_ShiftedScroll_Detector = void 0;
4
+ const ui_check_page_scripts_const_1 = require("../constants/ui-check-page-scripts.const");
5
+ const ui_check_page_util_1 = require("../ui-check-page.util");
6
+ /**
7
+ * A SHIFTED SCROLL: the user cannot get back to the top of the page or of a large box. Two measured forms:
8
+ * - `hidden-offset` — the document (either axis) or a box covering a large part of the viewport does not let the user
9
+ * scroll (`overflow: hidden | clip`), yet it IS scrolled (e.g. a `scrollIntoView` moved it): the whole screen stays
10
+ * shifted and no wheel or swipe brings it back;
11
+ * - `content-above-top` — a box (or the document) the user scrolls, scrolled to its very start, still has content
12
+ * above its top edge (a negative margin or a transform pulled it out of the scrollable area).
13
+ *
14
+ * Nothing is pressed; every scroll position is restored (not interactive). A `column-reverse` box (a chat) starts at a
15
+ * negative `scrollTop`: the start is asked from the browser, so such a box is measured right.
16
+ *
17
+ * Origin: owner, 2026-10-26 02:44 (`IN-2026-10-26-ORC-01`, BFR-FLEET-012 ①): the Logosz conversation screen "cannot be
18
+ * scrolled up to its top, the whole screen is shifted".
19
+ */
20
+ class DyE2E_ShiftedScroll_Detector {
21
+ id = 'shifted-scroll';
22
+ errorClass = 'scroll-start-out-of-reach';
23
+ description = 'The page or a large box is scrolled where the user cannot scroll, or its start stays above its top.';
24
+ origin = {
25
+ code: 'BFR-FLEET-012', foundBy: 'owner, IN-2026-10-26-ORC-01 (Logosz conversation screen)', date: '2026-10-26',
26
+ };
27
+ interactive = false;
28
+ /** A box counts when it covers at least this share of the viewport, in both directions. */
29
+ static minShare = 0.4;
30
+ /** At most this many findings per page. */
31
+ static maxFindings = 10;
32
+ async run(page, context) {
33
+ const shifted = await ui_check_page_util_1.DyE2E_UICheckPage_Util.evaluate(page, ui_check_page_scripts_const_1.DyE2E_UICheckPageScripts_Const['shiftedScrolls'], { minShare: DyE2E_ShiftedScroll_Detector.minShare, max: DyE2E_ShiftedScroll_Detector.maxFindings });
34
+ return shifted.map((one) => ({
35
+ detector: this.id,
36
+ errorClass: this.errorClass,
37
+ url: page.url() || context.url,
38
+ target: { selector: one.selector, tag: one.tag, text: one.className, testId: null, ariaLabel: null },
39
+ measured: one.kind === 'hidden-offset'
40
+ ? `"${one.selector}" does not let the user scroll (overflow hidden / clip), yet it is scrolled by ` +
41
+ `${one.scrollTop} px down and ${one.scrollLeft} px across: the view stays shifted.`
42
+ : `"${one.selector}" scrolled to its very start still has ${one.cutPx} px of its content above its top ` +
43
+ `(${one.scrollHeight} / ${one.clientHeight} px): that part cannot be scrolled to.`,
44
+ expected: 'Every part of the page can be scrolled to, and nothing is scrolled where the user cannot scroll back.',
45
+ details: { ...one },
46
+ }));
47
+ }
48
+ }
49
+ exports.DyE2E_ShiftedScroll_Detector = DyE2E_ShiftedScroll_Detector;
50
+ //# sourceMappingURL=shifted-scroll.detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shifted-scroll.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/shifted-scroll.detector.ts"],"names":[],"mappings":";;;AAQA,0FAA0F;AAC1F,8DAA+D;AAiB/D;;;;;;;;;;;;;GAaG;AACH,MAAa,4BAA4B;IAE9B,EAAE,GAAW,gBAAgB,CAAC;IAC9B,UAAU,GAAW,2BAA2B,CAAC;IACjD,WAAW,GAClB,qGAAqG,CAAC;IAC/F,MAAM,GAAkC;QAC/C,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,0DAA0D,EAAE,IAAI,EAAE,YAAY;KAC/G,CAAC;IACO,WAAW,GAAY,KAAK,CAAC;IAEtC,2FAA2F;IAC3F,MAAM,CAAU,QAAQ,GAAW,GAAG,CAAC;IAEvC,2CAA2C;IAC3C,MAAM,CAAU,WAAW,GAAW,EAAE,CAAC;IAEzC,KAAK,CAAC,GAAG,CAAC,IAAU,EAAE,OAAuC;QAC3D,MAAM,OAAO,GAAoC,MAAM,2CAAsB,CAAC,QAAQ,CAAC,IAAI,EACzF,4DAA8B,CAAC,gBAAgB,CAAC,EAChD,EAAE,QAAQ,EAAE,4BAA4B,CAAC,QAAQ,EAAE,GAAG,EAAE,4BAA4B,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtG,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAkC,EAAkC,EAAE,CAAC,CAAC;YAC1F,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG;YAC9B,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YACpG,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,eAAe;gBACpC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,iFAAiF;oBACjG,GAAG,GAAG,CAAC,SAAS,gBAAgB,GAAG,CAAC,UAAU,qCAAqC;gBACrF,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,0CAA0C,GAAG,CAAC,KAAK,mCAAmC;oBACtG,IAAI,GAAG,CAAC,YAAY,MAAM,GAAG,CAAC,YAAY,wCAAwC;YACtF,QAAQ,EAAE,uGAAuG;YACjH,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;;AAnCH,oEAoCC"}
@@ -0,0 +1,30 @@
1
+ import { Page } from '@playwright/test';
2
+ import { DyE2E_UICheckContext_Interface } from '../../_models/ui-check-context.interface';
3
+ import { DyE2E_UICheckDetector_Interface, DyE2E_UICheckOrigin_Interface } from '../../_models/ui-check-detector.interface';
4
+ import { DyE2E_UICheckFinding_Interface } from '../../_models/ui-check-finding.interface';
5
+ /**
6
+ * A WRAPPED INFO ROW: a short text (a label + value, a counter, a status line; at most `maxChars` characters, no line
7
+ * break of its own) that the layout breaks into two or more lines. The lines are counted from the text's own line
8
+ * boxes, so a tall font or padding is no wrap. The innermost rows are reported once (a row inside a reported row is
9
+ * not repeated). Run it on several viewport widths: a row may wrap only on a phone.
10
+ *
11
+ * Nothing is pressed (not interactive).
12
+ *
13
+ * Origin: owner, 2026-10-24 20:40 (`IN-2026-10-24-JOBS-RT-01`, BFR-FLEET-012 ④): on the Master Prompter flow cards
14
+ * "0.0 (0)" broke into one or two lines, and "100% sikeres, 17 futásból" into two - "it always looks bad, and it may
15
+ * happen elsewhere too".
16
+ */
17
+ export declare class DyE2E_WrappedInfoRow_Detector implements DyE2E_UICheckDetector_Interface {
18
+ readonly id: string;
19
+ readonly errorClass: string;
20
+ readonly description: string;
21
+ readonly origin: DyE2E_UICheckOrigin_Interface;
22
+ readonly interactive: boolean;
23
+ notes: string[];
24
+ /** A row counts as short up to this many characters. */
25
+ static readonly maxChars: number;
26
+ /** At most this many findings per page (the rest is counted in a note). */
27
+ static readonly maxFindings: number;
28
+ run(page: Page, context: DyE2E_UICheckContext_Interface): Promise<DyE2E_UICheckFinding_Interface[]>;
29
+ }
30
+ //# sourceMappingURL=wrapped-info-row.detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapped-info-row.detector.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAe1F;;;;;;;;;;;GAWG;AACH,qBAAa,6BAA8B,YAAW,+BAA+B;IAEnF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAsB;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA0B;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAkF;IAC9G,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAG5C;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAS;IACtC,KAAK,EAAE,MAAM,EAAE,CAAM;IAErB,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAM;IAEtC,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAEnC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;CAsB1G"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_WrappedInfoRow_Detector = void 0;
4
+ const ui_check_page_scripts_const_1 = require("../constants/ui-check-page-scripts.const");
5
+ const ui_check_page_util_1 = require("../ui-check-page.util");
6
+ /**
7
+ * A WRAPPED INFO ROW: a short text (a label + value, a counter, a status line; at most `maxChars` characters, no line
8
+ * break of its own) that the layout breaks into two or more lines. The lines are counted from the text's own line
9
+ * boxes, so a tall font or padding is no wrap. The innermost rows are reported once (a row inside a reported row is
10
+ * not repeated). Run it on several viewport widths: a row may wrap only on a phone.
11
+ *
12
+ * Nothing is pressed (not interactive).
13
+ *
14
+ * Origin: owner, 2026-10-24 20:40 (`IN-2026-10-24-JOBS-RT-01`, BFR-FLEET-012 ④): on the Master Prompter flow cards
15
+ * "0.0 (0)" broke into one or two lines, and "100% sikeres, 17 futásból" into two - "it always looks bad, and it may
16
+ * happen elsewhere too".
17
+ */
18
+ class DyE2E_WrappedInfoRow_Detector {
19
+ id = 'wrapped-info-row';
20
+ errorClass = 'short-info-row-wraps';
21
+ description = 'A short info row (label + value, counter, status) breaks into several lines.';
22
+ origin = {
23
+ code: 'BFR-FLEET-012', foundBy: 'owner, IN-2026-10-24-JOBS-RT-01 (Master Prompter flow cards)',
24
+ date: '2026-10-24',
25
+ };
26
+ interactive = false;
27
+ notes = [];
28
+ /** A row counts as short up to this many characters. */
29
+ static maxChars = 40;
30
+ /** At most this many findings per page (the rest is counted in a note). */
31
+ static maxFindings = 20;
32
+ async run(page, context) {
33
+ const measured = await ui_check_page_util_1.DyE2E_UICheckPage_Util.evaluate(page, ui_check_page_scripts_const_1.DyE2E_UICheckPageScripts_Const['wrappedInfoRows'], { maxChars: DyE2E_WrappedInfoRow_Detector.maxChars, max: DyE2E_WrappedInfoRow_Detector.maxFindings });
34
+ const viewport = page.viewportSize();
35
+ this.notes = measured.total > measured.rows.length
36
+ ? [`wrapped-info-row: ${measured.total} wrapped rows, only the first ${measured.rows.length} are listed`]
37
+ : [];
38
+ return measured.rows.map((row) => ({
39
+ detector: this.id,
40
+ errorClass: this.errorClass,
41
+ url: page.url() || context.url,
42
+ target: { selector: row.selector, tag: row.tag, text: row.text, testId: null, ariaLabel: null },
43
+ measured: `"${row.text}" (${row.text.length} characters) is broken into ${row.lines} lines in a ` +
44
+ `${row.width} px box${viewport ? ` at a ${viewport.width} px wide viewport` : ''}.`,
45
+ expected: 'A short info row stays on one line: room for it, `white-space: nowrap` (with an ellipsis if it must ' +
46
+ 'shrink), or a layout that moves the whole row.',
47
+ details: { ...row, viewport: viewport },
48
+ }));
49
+ }
50
+ }
51
+ exports.DyE2E_WrappedInfoRow_Detector = DyE2E_WrappedInfoRow_Detector;
52
+ //# sourceMappingURL=wrapped-info-row.detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapped-info-row.detector.js","sourceRoot":"","sources":["../../../../../src/_modules/ui-check/_collections/detectors/wrapped-info-row.detector.ts"],"names":[],"mappings":";;;AAQA,0FAA0F;AAC1F,8DAA+D;AAa/D;;;;;;;;;;;GAWG;AACH,MAAa,6BAA6B;IAE/B,EAAE,GAAW,kBAAkB,CAAC;IAChC,UAAU,GAAW,sBAAsB,CAAC;IAC5C,WAAW,GAAW,8EAA8E,CAAC;IACrG,MAAM,GAAkC;QAC/C,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,8DAA8D;QAC9F,IAAI,EAAE,YAAY;KACnB,CAAC;IACO,WAAW,GAAY,KAAK,CAAC;IACtC,KAAK,GAAa,EAAE,CAAC;IAErB,wDAAwD;IACxD,MAAM,CAAU,QAAQ,GAAW,EAAE,CAAC;IAEtC,2EAA2E;IAC3E,MAAM,CAAU,WAAW,GAAW,EAAE,CAAC;IAEzC,KAAK,CAAC,GAAG,CAAC,IAAU,EAAE,OAAuC;QAC3D,MAAM,QAAQ,GAA8D,MAAM,2CAAsB,CAAC,QAAQ,CAC/G,IAAI,EAAE,4DAA8B,CAAC,iBAAiB,CAAC,EACvD,EAAE,QAAQ,EAAE,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,6BAA6B,CAAC,WAAW,EAAE,CAAC,CAAC;QACxG,MAAM,QAAQ,GAA6C,IAAI,CAAC,YAAY,EAAE,CAAC;QAE/E,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM;YAChD,CAAC,CAAC,CAAE,qBAAqB,QAAQ,CAAC,KAAK,iCAAiC,QAAQ,CAAC,IAAI,CAAC,MAAM,aAAa,CAAE;YAC3G,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAmC,EAAkC,EAAE,CAAC,CAAC;YACjG,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG;YAC9B,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YAC/F,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAAK,cAAc;gBAC/F,GAAG,GAAG,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG;YACrF,QAAQ,EAAE,sGAAsG;gBAC9G,gDAAgD;YAClD,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;;AAvCH,sEAwCC"}
@@ -22,6 +22,15 @@ export declare const DyE2E_UICheckDefaultDetectors_Const: readonly DyE2E_UICheck
22
22
  * `overscroll-behavior-y: contain` box inside a scrolling frame: the wheel moves 0 px) and stays silent on the
23
23
  * fixed layouts; the real page (Organizer TEST task list) was fixed in the project, so the live proof is the
24
24
  * "silent now" half only.
25
+ * - `shifted-scroll` (BFR-FLEET-012 ①, owner 2026-10-26, Logosz): fires on fixtures of both measured forms (a
26
+ * scrolled `overflow: hidden` page, content pulled above a box's start) and stays silent on the fixed twins and
27
+ * on a `column-reverse` chat; the live run on the Logosz screen is missing.
28
+ * - `wrapped-info-row` (BFR-FLEET-012 ④, owner 2026-10-24, MP flow cards): fires on fixtures of the two cards the
29
+ * owner saw and stays silent on the fixed twins; the live run on the MP cards is missing.
30
+ * - `error-destination` (BFR-FLEET-012 ②, owner 2026-10-26, Adventor profile picture ⇒ account "not found"):
31
+ * fires on fixtures of the three measured forms (a link to an HTTP 404 page, an in-app "not found" view after a
32
+ * failed request, a press whose request answers 500) and stays silent on the fixed twins; the live run on the
33
+ * Adventor profile picture is missing.
25
34
  */
26
35
  export declare const DyE2E_UICheckCandidateDetectors_Const: readonly DyE2E_UICheckDetector_Interface[];
27
36
  //# sourceMappingURL=ui-check-default-detectors.const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-default-detectors.const.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-default-detectors.const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAOzF;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,+BAA+B,EAEzF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qCAAqC,EAAE,SAAS,+BAA+B,EAK3F,CAAC"}
1
+ {"version":3,"file":"ui-check-default-detectors.const.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-default-detectors.const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAUzF;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,+BAA+B,EAEzF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,qCAAqC,EAAE,SAAS,+BAA+B,EAQ3F,CAAC"}
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyE2E_UICheckCandidateDetectors_Const = exports.DyE2E_UICheckDefaultDetectors_Const = void 0;
4
4
  const covered_control_detector_1 = require("./detectors/covered-control.detector");
5
5
  const dead_control_detector_1 = require("./detectors/dead-control.detector");
6
+ const error_destination_detector_1 = require("./detectors/error-destination.detector");
6
7
  const nested_scroll_detector_1 = require("./detectors/nested-scroll.detector");
7
8
  const non_toggling_control_detector_1 = require("./detectors/non-toggling-control.detector");
8
9
  const scroll_trap_detector_1 = require("./detectors/scroll-trap.detector");
10
+ const shifted_scroll_detector_1 = require("./detectors/shifted-scroll.detector");
11
+ const wrapped_info_row_detector_1 = require("./detectors/wrapped-info-row.detector");
9
12
  /**
10
13
  * The DEFAULT, growing UI detector list (BFR-FLEET-012) — every page, form and feature gets all of them.
11
14
  *
@@ -31,11 +34,23 @@ exports.DyE2E_UICheckDefaultDetectors_Const = [
31
34
  * `overscroll-behavior-y: contain` box inside a scrolling frame: the wheel moves 0 px) and stays silent on the
32
35
  * fixed layouts; the real page (Organizer TEST task list) was fixed in the project, so the live proof is the
33
36
  * "silent now" half only.
37
+ * - `shifted-scroll` (BFR-FLEET-012 ①, owner 2026-10-26, Logosz): fires on fixtures of both measured forms (a
38
+ * scrolled `overflow: hidden` page, content pulled above a box's start) and stays silent on the fixed twins and
39
+ * on a `column-reverse` chat; the live run on the Logosz screen is missing.
40
+ * - `wrapped-info-row` (BFR-FLEET-012 ④, owner 2026-10-24, MP flow cards): fires on fixtures of the two cards the
41
+ * owner saw and stays silent on the fixed twins; the live run on the MP cards is missing.
42
+ * - `error-destination` (BFR-FLEET-012 ②, owner 2026-10-26, Adventor profile picture ⇒ account "not found"):
43
+ * fires on fixtures of the three measured forms (a link to an HTTP 404 page, an in-app "not found" view after a
44
+ * failed request, a press whose request answers 500) and stays silent on the fixed twins; the live run on the
45
+ * Adventor profile picture is missing.
34
46
  */
35
47
  exports.DyE2E_UICheckCandidateDetectors_Const = [
36
48
  new nested_scroll_detector_1.DyE2E_NestedScroll_Detector(),
37
49
  new non_toggling_control_detector_1.DyE2E_NonTogglingControl_Detector(),
38
50
  new covered_control_detector_1.DyE2E_CoveredControl_Detector(),
39
51
  new scroll_trap_detector_1.DyE2E_ScrollTrap_Detector(),
52
+ new shifted_scroll_detector_1.DyE2E_ShiftedScroll_Detector(),
53
+ new wrapped_info_row_detector_1.DyE2E_WrappedInfoRow_Detector(),
54
+ new error_destination_detector_1.DyE2E_ErrorDestination_Detector(),
40
55
  ];
41
56
  //# sourceMappingURL=ui-check-default-detectors.const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-default-detectors.const.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-default-detectors.const.ts"],"names":[],"mappings":";;;AACA,mFAAqF;AACrF,6EAA+E;AAC/E,+EAAiF;AACjF,6FAA8F;AAC9F,2EAA6E;AAE7E;;;;;;GAMG;AACU,QAAA,mCAAmC,GAA+C;IAC7F,IAAI,kDAA0B,EAAE;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACU,QAAA,qCAAqC,GAA+C;IAC/F,IAAI,oDAA2B,EAAE;IACjC,IAAI,iEAAiC,EAAE;IACvC,IAAI,wDAA6B,EAAE;IACnC,IAAI,gDAAyB,EAAE;CAChC,CAAC"}
1
+ {"version":3,"file":"ui-check-default-detectors.const.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-default-detectors.const.ts"],"names":[],"mappings":";;;AACA,mFAAqF;AACrF,6EAA+E;AAC/E,uFAAyF;AACzF,+EAAiF;AACjF,6FAA8F;AAC9F,2EAA6E;AAC7E,iFAAmF;AACnF,qFAAsF;AAEtF;;;;;;GAMG;AACU,QAAA,mCAAmC,GAA+C;IAC7F,IAAI,kDAA0B,EAAE;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACU,QAAA,qCAAqC,GAA+C;IAC/F,IAAI,oDAA2B,EAAE;IACjC,IAAI,iEAAiC,EAAE;IACvC,IAAI,wDAA6B,EAAE;IACnC,IAAI,gDAAyB,EAAE;IAC/B,IAAI,sDAA4B,EAAE;IAClC,IAAI,yDAA6B,EAAE;IACnC,IAAI,4DAA+B,EAAE;CACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-guard.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-guard.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAEvF,yDAAyD;AACzD,MAAM,WAAW,iCAAiC;IAChD,8FAA8F;IAC9F,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,mCAAmC;IAClD,GAAG,EAAE,iCAAiC,CAAC;IACvC,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAuB;IAElC,+FAA+F;IAC/F,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAKxB;IAElB,qGAAqG;IACrG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAGxB;IAElB,+CAA+C;IAC/C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAgC;IAErE,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAA8D;IAE3G,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAEzF;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,8BAA8B,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWlG,+EAA+E;IAC/E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;IAStG,iFAAiF;IACjF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO;IA0B3F,8FAA8F;IAC9F,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO;IAMrE;;;;OAIG;WACU,mBAAmB,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,mCAAmC,CAAC;IAqD/C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAQvB,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ;CAUxB"}
1
+ {"version":3,"file":"ui-check-guard.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-guard.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAEvF,yDAAyD;AACzD,MAAM,WAAW,iCAAiC;IAChD,8FAA8F;IAC9F,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,mCAAmC;IAClD,GAAG,EAAE,iCAAiC,CAAC;IACvC,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAuB;IAElC,+FAA+F;IAC/F,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAQxB;IAElB,qGAAqG;IACrG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAGxB;IAElB,+CAA+C;IAC/C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAgC;IAErE,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAA8D;IAE3G,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAEzF;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,8BAA8B,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWlG,+EAA+E;IAC/E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;IAStG,iFAAiF;IACjF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO;IA0B3F,8FAA8F;IAC9F,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO;IAMrE;;;;OAIG;WACU,mBAAmB,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,mCAAmC,CAAC;IAqD/C,qCAAqC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAQvB,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ;CAUxB"}
@@ -21,6 +21,9 @@ class DyE2E_UICheckGuard_Util {
21
21
  'eltávolít', '\\bpay', 'fizet', '\\bbuy\\b', 'vásárl', '\\bcheckout\\b', '\\bpurchase', '\\border\\b', 'megrendel',
22
22
  '\\bsubscri', 'előfizet', '\\bpublish', 'közzétesz', 'közzététel', '\\bsend\\b', 'küld', '\\binvite', 'meghív',
23
23
  'e-?mail', '\\bdonat', 'adomány', '\\bdeactivat', '\\btransfer\\b', '\\bwithdraw', '\\bcredit', 'kredit',
24
+ // BFR-FLEET-012 ② — links are pressed too, and a GET link may act: "unsubscribe" has no word boundary before
25
+ // "subscri", so `\bsubscri` misses it
26
+ 'unsubscri', 'leiratkoz',
24
27
  ].join('|'), 'i');
25
28
  /** Request URLs never let through, even when `mutationAllow` matches: payment and e-mail sending. */
26
29
  static hardDenyUrlPattern = new RegExp([
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-guard.util.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-guard.util.ts"],"names":[],"mappings":";;;AAEA,gGAAkG;AAmBlG;;;;;;;;;;;GAWG;AACH,MAAa,uBAAuB;IAElC,+FAA+F;IAC/F,MAAM,CAAU,kBAAkB,GAAW,IAAI,MAAM,CAAC;QACtD,wBAAwB,EAAE,yBAAyB,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc;QAC9G,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW;QAClH,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ;QAC9G,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ;KACzG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAElB,qGAAqG;IACrG,MAAM,CAAU,kBAAkB,GAAW,IAAI,MAAM,CAAC;QACtD,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;QACjH,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM;KACjD,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAElB,+CAA+C;IAC/C,MAAM,CAAU,WAAW,GAAa,CAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAE,CAAC;IAErE,0DAA0D;IAC1D,MAAM,CAAU,mBAAmB,GAAa,CAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAE,CAAC;IAE3G,iDAAiD;IACzC,MAAM,CAAU,YAAY,GAAW,yCAAyC,CAAC;IAEzF;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAuC,EAAE,UAAkB;QACzF,IAAI,CAAC,sDAA4B,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,eAAe,OAAO,CAAC,GAAG,wCAAwC;gBACvG,0GAA0G,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,4DAA4D;gBACjG,SAAS,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,wEAAwE,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAuC,EAAE,WAAoB;QAC1F,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAa,CAAE,uBAAuB,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAE,CAAC;QAEhH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,iFAAiF;IACjF,MAAM,CAAC,gBAAgB,CAAC,OAAgB,EAAE,OAAuC;QAC/E,MAAM,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,uBAAuB,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjF,mHAAmH;YACnH,+GAA+G;YAC/G,+EAA+E;YAC/E,IAAI,OAAO,CAAC,mBAAmB,EAAE,IAAI,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,8FAA8F;IAC9F,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,UAAoB;QACzD,MAAM,MAAM,GAAa,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAEhF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,sDAA4B,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IACvH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC9B,IAAU,EACV,OAAuC;QAEvC,MAAM,GAAG,GAAsC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC3E,IAAI,MAAM,GAAY,IAAI,CAAC;QAC3B,MAAM,aAAa,GAAqC,CAAC,MAAsB,EAAQ,EAAE;YACvF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,eAAe,EAAE,CAAC;gBAEzB,OAAO;YACT,CAAC;YACD,MAAM,CAAC,SAAS,CAAC,GAAS,EAAE;gBAC1B,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,+FAA+F;gBAC7G,oEAAoE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,MAAM,SAAS,GAA+B,CAAC,OAAgB,EAAQ,EAAE;YACvE,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;gBACjF,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAoC,KAAK,EAAE,KAAY,EAAiB,EAAE;YACrF,MAAM,OAAO,GAAY,KAAK,CAAC,OAAO,EAAE,CAAC;YAEzC,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC/D,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElC,OAAO;YACL,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,GAAS,EAAE;gBAChB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;gBAChB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,EAAE,KAAK,IAAmB,EAAE;gBAChC,MAAM,GAAG,KAAK,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,qCAAqC;IAC7B,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC1C,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,2FAA2F;IACnF,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAE7B,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;;AApKH,0DAqKC"}
1
+ {"version":3,"file":"ui-check-guard.util.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-guard.util.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export interface DyE2E_UICheckControl_Interface extends DyE2E_UICheckTarget_Inte
11
11
  * `role="tab"` with `aria-selected="true"`): pressing it again is deliberately inert.
12
12
  */
13
13
  current?: boolean;
14
+ /** BFR-FLEET-012 ② — a `link` control: its same-origin destination (path + query); `null` for other kinds. */
15
+ href?: string | null;
14
16
  }
15
17
  /** Everything a press caused (or failed to cause). */
16
18
  export interface DyE2E_UICheckPressEffect_Interface {
@@ -69,10 +71,15 @@ export declare class DyE2E_UICheckPage_Util {
69
71
  static errorSignature(text: string): string;
70
72
  /** The identity of a control across reloads (its CSS path may shift when an earlier press changed the page). */
71
73
  static signature(control: DyE2E_UICheckControl_Interface): string;
74
+ /** The same control on the reloaded page: by CSS path + identity, else by identity alone (`signature`). */
75
+ static findAgain(page: Page, context: DyE2E_UICheckContext_Interface, control: DyE2E_UICheckControl_Interface, kind: 'press' | 'toggle' | 'link'): Promise<DyE2E_UICheckControl_Interface | undefined>;
72
76
  /** The first line of a press error, plus the Playwright call-log line that names the cause (e.g. what covers it). */
73
77
  static describePressError(error: unknown): string;
74
- /** The visible, enabled controls of one kind, minus the denied ones (returned separately). */
75
- static listControls(page: Page, context: DyE2E_UICheckContext_Interface, kind: 'press' | 'toggle'): Promise<{
78
+ /**
79
+ * The visible, enabled controls of one kind, minus the denied ones (returned separately). A `link` is denied by its
80
+ * destination path too (a GET link may act: `/logout`, `/unsubscribe/…`).
81
+ */
82
+ static listControls(page: Page, context: DyE2E_UICheckContext_Interface, kind: 'press' | 'toggle' | 'link'): Promise<{
76
83
  controls: DyE2E_UICheckControl_Interface[];
77
84
  denied: DyE2E_UICheckControl_Interface[];
78
85
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-page.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-page.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-check-page.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-page.util.ts"],"names":[],"mappings":"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"}
@@ -86,7 +86,15 @@ class DyE2E_UICheckPage_Util {
86
86
  }
87
87
  /** The identity of a control across reloads (its CSS path may shift when an earlier press changed the page). */
88
88
  static signature(control) {
89
- return [control.tag, control.testId ?? '', control.ariaLabel ?? '', control.text].join('|');
89
+ return [control.tag, control.testId ?? '', control.ariaLabel ?? '', control.text, control.href ?? ''].join('|');
90
+ }
91
+ /** The same control on the reloaded page: by CSS path + identity, else by identity alone (`signature`). */
92
+ static async findAgain(page, context, control, kind) {
93
+ const listed = await DyE2E_UICheckPage_Util.listControls(page, context, kind);
94
+ const wanted = DyE2E_UICheckPage_Util.signature(control);
95
+ return listed.controls.find((c) => c.selector === control.selector
96
+ && DyE2E_UICheckPage_Util.signature(c) === wanted)
97
+ ?? listed.controls.find((c) => DyE2E_UICheckPage_Util.signature(c) === wanted);
90
98
  }
91
99
  /** The first line of a press error, plus the Playwright call-log line that names the cause (e.g. what covers it). */
92
100
  static describePressError(error) {
@@ -95,13 +103,17 @@ class DyE2E_UICheckPage_Util {
95
103
  const cause = lines.find((line) => /intercepts pointer events|not visible|not enabled|not stable|detached|outside of the viewport/.test(line));
96
104
  return (lines[0] + (cause ? ' — ' + cause.trim() : '')).slice(0, 400);
97
105
  }
98
- /** The visible, enabled controls of one kind, minus the denied ones (returned separately). */
106
+ /**
107
+ * The visible, enabled controls of one kind, minus the denied ones (returned separately). A `link` is denied by its
108
+ * destination path too (a GET link may act: `/logout`, `/unsubscribe/…`).
109
+ */
99
110
  static async listControls(page, context, kind) {
100
111
  const all = await DyE2E_UICheckPage_Util.evaluate(page, ui_check_page_scripts_const_1.DyE2E_UICheckPageScripts_Const['listControls'], { kind: kind, max: (context.maxControls ?? DyE2E_UICheckPage_Util.defaultMaxControls) * 3 });
101
112
  const controls = [];
102
113
  const denied = [];
103
114
  for (const control of all) {
104
- const label = [control.text, control.ariaLabel, control.title, control.testId].filter(Boolean).join(' ');
115
+ const label = [control.text, control.ariaLabel, control.title, control.testId, control.href]
116
+ .filter(Boolean).join(' ');
105
117
  (ui_check_guard_util_1.DyE2E_UICheckGuard_Util.isDenied(label, context, control.destructive) ? denied : controls).push(control);
106
118
  }
107
119
  return { controls: controls.slice(0, context.maxControls ?? DyE2E_UICheckPage_Util.defaultMaxControls),
@@ -1 +1 @@
1
- {"version":3,"file":"ui-check-page.util.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-page.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-check-page.util.js","sourceRoot":"","sources":["../../../../src/_modules/ui-check/_collections/ui-check-page.util.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,12 @@
15
15
  export * from './_collections/constants/ui-check-page-scripts.const';
16
16
  export * from './_collections/detectors/covered-control.detector';
17
17
  export * from './_collections/detectors/dead-control.detector';
18
+ export * from './_collections/detectors/error-destination.detector';
18
19
  export * from './_collections/detectors/nested-scroll.detector';
19
20
  export * from './_collections/detectors/non-toggling-control.detector';
20
21
  export * from './_collections/detectors/scroll-trap.detector';
22
+ export * from './_collections/detectors/shifted-scroll.detector';
23
+ export * from './_collections/detectors/wrapped-info-row.detector';
21
24
  export * from './_collections/ui-check-default-detectors.const';
22
25
  export * from './_collections/ui-check-guard.util';
23
26
  export * from './_collections/ui-check-page.util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/ui-check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAClE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/ui-check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAClE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,iDAAiD,CAAC;AAChE,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAChE,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC"}
@@ -31,9 +31,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
31
31
  __exportStar(require("./_collections/constants/ui-check-page-scripts.const"), exports);
32
32
  __exportStar(require("./_collections/detectors/covered-control.detector"), exports);
33
33
  __exportStar(require("./_collections/detectors/dead-control.detector"), exports);
34
+ __exportStar(require("./_collections/detectors/error-destination.detector"), exports);
34
35
  __exportStar(require("./_collections/detectors/nested-scroll.detector"), exports);
35
36
  __exportStar(require("./_collections/detectors/non-toggling-control.detector"), exports);
36
37
  __exportStar(require("./_collections/detectors/scroll-trap.detector"), exports);
38
+ __exportStar(require("./_collections/detectors/shifted-scroll.detector"), exports);
39
+ __exportStar(require("./_collections/detectors/wrapped-info-row.detector"), exports);
37
40
  __exportStar(require("./_collections/ui-check-default-detectors.const"), exports);
38
41
  __exportStar(require("./_collections/ui-check-guard.util"), exports);
39
42
  __exportStar(require("./_collections/ui-check-page.util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/ui-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;GAaG;AACH,uFAAqE;AACrE,oFAAkE;AAClE,iFAA+D;AAC/D,kFAAgE;AAChE,yFAAuE;AACvE,gFAA8D;AAC9D,kFAAgE;AAChE,qEAAmD;AACnD,oEAAkD;AAClD,sEAAoD;AACpD,uEAAqD;AACrD,wEAAsD;AACtD,uEAAqD;AACrD,sEAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/ui-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;GAaG;AACH,uFAAqE;AACrE,oFAAkE;AAClE,iFAA+D;AAC/D,sFAAoE;AACpE,kFAAgE;AAChE,yFAAuE;AACvE,gFAA8D;AAC9D,mFAAiE;AACjE,qFAAmE;AACnE,kFAAgE;AAChE,qEAAmD;AACnD,oEAAkD;AAClD,sEAAoD;AACpD,uEAAqD;AACrD,wEAAsD;AACtD,uEAAqD;AACrD,sEAAoD"}
package/build/index.js CHANGED
@@ -26,5 +26,5 @@ __exportStar(require("./_modules/game/index"), exports);
26
26
  __exportStar(require("./_modules/ui-check/index"), exports);
27
27
  __exportStar(require("./_modules/coverage/index"), exports);
28
28
  /** Package-version stamp — npm-publish-time runtime-érték. */
29
- exports.DYE2E_PACKAGE_VERSION = '01.18.36';
29
+ exports.DYE2E_PACKAGE_VERSION = '01.18.38';
30
30
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/dynamo-e2e",
3
- "version": "01.18.36",
3
+ "version": "01.18.38",
4
4
  "description": "End-to-end testing engine for the Dynamo + FDP ecosystem — auto-generated form-coverage tests, viewport audit matrix, CWV diagnostics. Settings-POJO-first.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "core-package",