@ploaness/config 1.14.0 → 1.15.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.
Files changed (61) hide show
  1. package/dist/deadline.d.ts +8 -0
  2. package/dist/deadline.d.ts.map +1 -0
  3. package/dist/deadline.js +34 -0
  4. package/dist/deadline.js.map +1 -0
  5. package/dist/eslint-runtime.d.ts.map +1 -1
  6. package/dist/eslint-runtime.js +25 -5
  7. package/dist/eslint-runtime.js.map +1 -1
  8. package/dist/focus-region.d.ts +12 -0
  9. package/dist/focus-region.d.ts.map +1 -0
  10. package/dist/focus-region.js +124 -0
  11. package/dist/focus-region.js.map +1 -0
  12. package/dist/font-settle.d.ts +21 -0
  13. package/dist/font-settle.d.ts.map +1 -0
  14. package/dist/font-settle.js +67 -0
  15. package/dist/font-settle.js.map +1 -0
  16. package/dist/playwright.js +2 -1
  17. package/dist/playwright.js.map +1 -1
  18. package/dist/scanner.d.ts.map +1 -1
  19. package/dist/scanner.js +2 -2
  20. package/dist/scanner.js.map +1 -1
  21. package/dist/settle.d.ts +2 -1
  22. package/dist/settle.d.ts.map +1 -1
  23. package/dist/settle.js +18 -3
  24. package/dist/settle.js.map +1 -1
  25. package/dist/sweep-disclosures.d.ts.map +1 -1
  26. package/dist/sweep-disclosures.js +4 -2
  27. package/dist/sweep-disclosures.js.map +1 -1
  28. package/dist/sweep-interaction-plan.d.ts +21 -0
  29. package/dist/sweep-interaction-plan.d.ts.map +1 -0
  30. package/dist/sweep-interaction-plan.js +22 -0
  31. package/dist/sweep-interaction-plan.js.map +1 -0
  32. package/dist/sweep-interaction.d.ts.map +1 -1
  33. package/dist/sweep-interaction.js +15 -55
  34. package/dist/sweep-interaction.js.map +1 -1
  35. package/dist/sweep-progress-log.d.ts +32 -0
  36. package/dist/sweep-progress-log.d.ts.map +1 -0
  37. package/dist/sweep-progress-log.js +65 -0
  38. package/dist/sweep-progress-log.js.map +1 -0
  39. package/dist/sweep-queue.d.ts +7 -0
  40. package/dist/sweep-queue.d.ts.map +1 -1
  41. package/dist/sweep-queue.js +12 -3
  42. package/dist/sweep-queue.js.map +1 -1
  43. package/dist/sweep-reflow.d.ts.map +1 -1
  44. package/dist/sweep-reflow.js +1 -0
  45. package/dist/sweep-reflow.js.map +1 -1
  46. package/dist/sweep-resting.d.ts.map +1 -1
  47. package/dist/sweep-resting.js +30 -4
  48. package/dist/sweep-resting.js.map +1 -1
  49. package/dist/sweep-shared.d.ts +6 -2
  50. package/dist/sweep-shared.d.ts.map +1 -1
  51. package/dist/sweep-shared.js +49 -26
  52. package/dist/sweep-shared.js.map +1 -1
  53. package/dist/sweep-workers.d.ts +3 -0
  54. package/dist/sweep-workers.d.ts.map +1 -0
  55. package/dist/sweep-workers.js +10 -0
  56. package/dist/sweep-workers.js.map +1 -0
  57. package/dist/sweep.d.ts +1 -1
  58. package/dist/sweep.d.ts.map +1 -1
  59. package/dist/sweep.js +10 -8
  60. package/dist/sweep.js.map +1 -1
  61. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wait for some work, but no longer than a limit.
3
+ * @param work the work.
4
+ * @param limitMs how long to wait for it.
5
+ * @returns its result, or undefined when the limit passed first; a failure of the work is its own.
6
+ */
7
+ export declare const withinLimit: <Result>(work: Promise<Result>, limitMs: number) => Promise<Result | undefined>;
8
+ //# sourceMappingURL=deadline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadline.d.ts","sourceRoot":"","sources":["../src/deadline.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAU,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAO5G,CAAA"}
@@ -0,0 +1,34 @@
1
+ // A limit on how long a step of the sweep may keep its caller waiting.
2
+ //
3
+ // A visit can wait on a browser that never answers - an axe run that never returns in one engine - and
4
+ // nothing below it bounds that wait, so the part waited out its whole budget and then failed without
5
+ // naming the page. A step given a limit hands its caller nothing once the limit passes, and the caller
6
+ // reports the page and moves on. The step itself is left to end on its own: the next visit navigates
7
+ // the page away, which ends whatever was still waiting on it.
8
+ import { setTimeout as sleep } from 'node:timers/promises';
9
+ // Resolves once the limit passes, or quietly when the wait is called off because the work finished.
10
+ const expiry = async (limitMs, signal) => {
11
+ try {
12
+ await sleep(limitMs, undefined, { signal });
13
+ }
14
+ catch {
15
+ // Called off: the work finished first, and the race has already been decided.
16
+ }
17
+ return undefined;
18
+ };
19
+ /**
20
+ * Wait for some work, but no longer than a limit.
21
+ * @param work the work.
22
+ * @param limitMs how long to wait for it.
23
+ * @returns its result, or undefined when the limit passed first; a failure of the work is its own.
24
+ */
25
+ export const withinLimit = async (work, limitMs) => {
26
+ const timer = new AbortController();
27
+ try {
28
+ return await Promise.race([work, expiry(limitMs, timer.signal)]);
29
+ }
30
+ finally {
31
+ timer.abort();
32
+ }
33
+ };
34
+ //# sourceMappingURL=deadline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadline.js","sourceRoot":"","sources":["../src/deadline.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,uGAAuG;AACvG,qGAAqG;AACrG,uGAAuG;AACvG,qGAAqG;AACrG,8DAA8D;AAC9D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE1D,oGAAoG;AACpG,MAAM,MAAM,GAAG,KAAK,EAAE,OAAe,EAAE,MAAmB,EAAsB,EAAE;IAChF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAU,IAAqB,EAAE,OAAe,EAA+B,EAAE;IAC/G,MAAM,KAAK,GAAoB,IAAI,eAAe,EAAE,CAAA;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-runtime.d.ts","sourceRoot":"","sources":["../src/eslint-runtime.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAkB,MAAM,kBAAkB,CAAA;AAmDzF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,WAAW,EAAE,KAAG,eAS9D,CAAA"}
1
+ {"version":3,"file":"eslint-runtime.d.ts","sourceRoot":"","sources":["../src/eslint-runtime.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAkB,MAAM,kBAAkB,CAAA;AAyEzF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,WAAW,EAAE,KAAG,eAW9D,CAAA"}
@@ -6,15 +6,33 @@
6
6
  // that file only. Arrow functions, `const`, template literals, rest parameters, `Object.keys`,
7
7
  // `Object.entries`, `Object.assign` and `Array.prototype.includes` are on the list and stay legal.
8
8
  //
9
- // Each restriction below is something the list leaves out and that is known to fail there. A
10
- // destructured parameter makes the engine reject the whole function with a misleading
11
- // `Unexpected token "=>"`, and the function then fails every request it serves. Passing these rules lowers
12
- // that risk without proving the file runs. Only executing it in CloudFront proves that.
13
- import { CLOUDFRONT_RUNTIME } from '@ploaness/governance';
9
+ // The restrictions include known deployment failures and precautionary extensions where AWS provides
10
+ // no exact grammar. Passing these rules lowers the risk without proving the file runs. Only executing
11
+ // it in CloudFront proves that.
12
+ import { CLOUDFRONT_RUNTIME, isWithinCallArguments } from '@ploaness/governance';
14
13
  import { NO_INHERITANCE } from './eslint-core.js';
15
14
  import { SECURITY_RESTRICTIONS } from './eslint-security.js';
16
15
  const unsupported = (construct, instead) => `${construct} is not supported by runtime ${CLOUDFRONT_RUNTIME}; ${instead}`;
17
16
  const DESTRUCTURING = unsupported('destructuring', 'read each property or index by name, for example parts[0] and parts.slice(1)');
17
+ const AWAIT_EXPRESSION = 'AwaitExpression';
18
+ // Direct awaited arguments fail in CloudFront. Nested argument expressions are rejected as a precaution.
19
+ // Visit each await once: an outer call must not claim a callback's body, but calls inside it still count.
20
+ const NO_AWAIT_IN_ARGUMENTS = {
21
+ meta: {
22
+ type: 'problem',
23
+ schema: [],
24
+ messages: { unsupported: unsupported('await within call arguments', 'await into a constant first') },
25
+ },
26
+ create(context) {
27
+ return {
28
+ [AWAIT_EXPRESSION](node) {
29
+ if (isWithinCallArguments(node, context.sourceCode.getAncestors(node))) {
30
+ context.report({ node, messageId: 'unsupported' });
31
+ }
32
+ },
33
+ };
34
+ },
35
+ };
18
36
  // AST node types rather than text, so a string or a comment never matches. A pattern is a binding or an
19
37
  // assignment target, never a literal. A rest parameter is a `RestElement` directly under a function,
20
38
  // which neither pattern selector reaches, while `[tag, ...rest]` is an `ArrayPattern` and is reported.
@@ -57,7 +75,9 @@ const CLOUDFRONT_GLOBALS = [
57
75
  */
58
76
  export const cloudFrontBlock = (files) => ({
59
77
  files,
78
+ plugins: { cloudfront: { rules: { 'no-await-in-arguments': NO_AWAIT_IN_ARGUMENTS } } },
60
79
  rules: {
80
+ 'cloudfront/no-await-in-arguments': 'error',
61
81
  'no-restricted-syntax': [...NO_INHERITANCE, ...SECURITY_RESTRICTIONS, ...CLOUDFRONT_SYNTAX],
62
82
  'no-restricted-globals': ['error', ...CLOUDFRONT_GLOBALS],
63
83
  // It demands the `Set` this runtime lacks for every array only searched with `includes`, which is
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-runtime.js","sourceRoot":"","sources":["../src/eslint-runtime.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,qGAAqG;AACrG,sGAAsG;AACtG,uGAAuG;AACvG,+FAA+F;AAC/F,mGAAmG;AACnG,EAAE;AACF,6FAA6F;AAC7F,sFAAsF;AACtF,2GAA2G;AAC3G,wFAAwF;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAA0C,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAyB,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAU,EAAE,CACjE,GAAG,SAAS,gCAAgC,kBAAkB,KAAK,OAAO,EAAE,CAAA;AAE9E,MAAM,aAAa,GAAW,WAAW,CACvC,eAAe,EACf,8EAA8E,CAC/E,CAAA;AAED,wGAAwG;AACxG,qGAAqG;AACrG,uGAAuG;AACvG,yGAAyG;AACzG,2BAA2B;AAC3B,MAAM,iBAAiB,GAAgC;IACrD,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE;IACrD,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE;IACpD;QACE,QAAQ,EAAE,kCAAkC;QAC5C,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,qDAAqD,CAAC;KAC7F;CACF,CAAA;AAOD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAoB,EAAE,CAAC,CAAC;IAC7E,IAAI;IACJ,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;CACpC,CAAC,CAAA;AAEF,yGAAyG;AACzG,oGAAoG;AACpG,+FAA+F;AAC/F,MAAM,kBAAkB,GAAgC;IACtD,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,CAAC;IACpD,gBAAgB,CAAC,KAAK,EAAE,oCAAoC,CAAC;IAC7D,gBAAgB,CAAC,SAAS,EAAE,2BAA2B,CAAC;IACxD,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACjD,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC;IACrD,gBAAgB,CAAC,SAAS,EAAE,0CAA0C,CAAC;IACvE,gBAAgB,CAAC,SAAS,EAAE,oFAAoF,CAAC;IACjH,gBAAgB,CAAC,YAAY,EAAE,iDAAiD,CAAC;IACjF,gBAAgB,CAAC,cAAc,EAAE,iDAAiD,CAAC;IACnF,gBAAgB,CAAC,cAAc,EAAE,iDAAiD,CAAC;CACpF,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA6B,EAAmB,EAAE,CAAC,CAAC;IAClF,KAAK;IACL,KAAK,EAAE;QACL,sBAAsB,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,qBAAqB,EAAE,GAAG,iBAAiB,CAAC;QAC3F,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC;QACzD,kGAAkG;QAClG,8DAA8D;QAC9D,wBAAwB,EAAE,KAAK;KAChC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"eslint-runtime.js","sourceRoot":"","sources":["../src/eslint-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Page } from '@playwright/test';
2
+ /** How a keyboard-focused element shows its focus. */
3
+ export type FocusVerdict = 'out of view' | 'unchanged' | 'faint' | 'contrasting';
4
+ /**
5
+ * Shoot the page with the active element focused and again blurred, and judge its indicator where it shows.
6
+ * The element is left blurred, as the tab walk expects.
7
+ * @param page the page, with the element focused by keyboard.
8
+ * @param extent the longer side of the element's visible box, which a contrasting indicator must cover half of.
9
+ * @returns how the element shows its focus.
10
+ */
11
+ export declare const judgeFocusIndicator: (page: Page, extent: number) => Promise<FocusVerdict>;
12
+ //# sourceMappingURL=focus-region.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-region.d.ts","sourceRoot":"","sources":["../src/focus-region.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AA8J5C,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAA;AA+DhF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAU,MAAM,IAAI,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,YAAY,CAkB1F,CAAA"}
@@ -0,0 +1,124 @@
1
+ import { focusRegion, hasContrastingFocus, hasVisibleFocus, } from '@ploaness/governance';
2
+ const FOCUSED_ATTRIBUTE = 'data-ploaness-focused';
3
+ // Enough for any control; a container holding more is not one whose descendants draw its focus.
4
+ const MAX_DESCENDANTS = 200;
5
+ const indicatorFactsInPage = ([selector, maxDescendants]) => {
6
+ const focused = document.querySelector(selector);
7
+ if (focused === null) {
8
+ return { focused: undefined, related: [] };
9
+ }
10
+ const factsOf = (element) => {
11
+ const style = getComputedStyle(element);
12
+ const box = element.getBoundingClientRect();
13
+ return {
14
+ box: { left: box.left, top: box.top, right: box.right, bottom: box.bottom },
15
+ style: {
16
+ outlineStyle: style.outlineStyle,
17
+ outlineWidth: style.outlineWidth,
18
+ outlineOffset: style.outlineOffset,
19
+ outlineColor: style.outlineColor,
20
+ boxShadow: style.boxShadow,
21
+ borderColor: style.borderColor,
22
+ backgroundColor: style.backgroundColor,
23
+ color: style.color,
24
+ textDecorationLine: style.textDecorationLine,
25
+ },
26
+ };
27
+ };
28
+ const roots = new Set([document.body, document.documentElement]);
29
+ const ancestorsOf = (element) => element === null || roots.has(element) ? [] : [element, ...ancestorsOf(element.parentElement)];
30
+ return {
31
+ focused: factsOf(focused),
32
+ related: [
33
+ ...ancestorsOf(focused.parentElement),
34
+ ...Array.from(focused.querySelectorAll('*')).slice(0, maxDescendants),
35
+ ].map((element) => factsOf(element)),
36
+ };
37
+ };
38
+ const markFocusedInPage = (name) => {
39
+ document.activeElement?.setAttribute(name, '');
40
+ };
41
+ const unmarkInPage = (name) => {
42
+ document.querySelector(`[${CSS.escape(name)}]`)?.removeAttribute(name);
43
+ };
44
+ const blurInPage = () => {
45
+ document.activeElement?.blur?.();
46
+ };
47
+ // The browser decodes the screenshots it took: PNG is its own format, and Node has no decoder for it.
48
+ const regionRenderingsInPage = async ([images, region, viewportWidth]) => {
49
+ const regionOf = async (image) => {
50
+ const bytes = Uint8Array.from(atob(image), (character) => character.codePointAt(0) ?? 0);
51
+ const bitmap = await createImageBitmap(new Blob([bytes], { type: 'image/png' }));
52
+ const context = new OffscreenCanvas(bitmap.width, bitmap.height).getContext('2d');
53
+ if (context === null) {
54
+ return { encoded: '', scale: 0 };
55
+ }
56
+ context.drawImage(bitmap, 0, 0);
57
+ const scale = bitmap.width / viewportWidth;
58
+ const { data } = context.getImageData(Math.round(region.x * scale), Math.round(region.y * scale), Math.round(region.width * scale), Math.round(region.height * scale));
59
+ // Converted in chunks: one call can take only so many arguments.
60
+ const chunk = 32_768;
61
+ const binary = Array.from({ length: Math.ceil(data.length / chunk) }, (_unused, index) => String.fromCodePoint(...data.subarray(index * chunk, (index + 1) * chunk))).join('');
62
+ return { encoded: btoa(binary), scale };
63
+ };
64
+ const [focused, unfocused] = await Promise.all([regionOf(images[0]), regionOf(images[1])]);
65
+ return { focused: focused.encoded, unfocused: unfocused.encoded, scale: Math.min(focused.scale, unfocused.scale) };
66
+ };
67
+ const asIndicator = (focused, unfocused) => ({
68
+ box: focused.box,
69
+ focused: focused.style,
70
+ unfocused: (unfocused ?? focused).style,
71
+ });
72
+ const regionOf = (focused, unfocused, viewport) => {
73
+ if (focused.focused === undefined) {
74
+ return undefined;
75
+ }
76
+ // A tree that changed between the two readings cannot be paired element by element.
77
+ const isPaired = focused.related.length === unfocused.related.length;
78
+ return focusRegion(asIndicator(focused.focused, unfocused.focused), isPaired
79
+ ? focused.related.map((facts, index) => asIndicator(facts, unfocused.related[index]))
80
+ : [], viewport);
81
+ };
82
+ const BASE64 = 'base64';
83
+ const captureFocus = async (page) => {
84
+ const facts = [`[${FOCUSED_ATTRIBUTE}]`, MAX_DESCENDANTS];
85
+ await page.evaluate(markFocusedInPage, FOCUSED_ATTRIBUTE);
86
+ const focusedFacts = await page.evaluate(indicatorFactsInPage, facts);
87
+ const focusedShot = await page.screenshot({ animations: 'disabled', caret: 'hide' });
88
+ await page.evaluate(blurInPage);
89
+ const unfocusedFacts = await page.evaluate(indicatorFactsInPage, facts);
90
+ const unfocusedShot = await page.screenshot({ animations: 'disabled', caret: 'hide' });
91
+ await page.evaluate(unmarkInPage, FOCUSED_ATTRIBUTE);
92
+ return { focusedShot, unfocusedShot, focusedFacts, unfocusedFacts };
93
+ };
94
+ const renderingsIn = async (page, capture, region, viewportWidth) => await page.evaluate(regionRenderingsInPage, [
95
+ [Buffer.from(capture.focusedShot).toString(BASE64), Buffer.from(capture.unfocusedShot).toString(BASE64)],
96
+ region,
97
+ viewportWidth,
98
+ ]);
99
+ /**
100
+ * Shoot the page with the active element focused and again blurred, and judge its indicator where it shows.
101
+ * The element is left blurred, as the tab walk expects.
102
+ * @param page the page, with the element focused by keyboard.
103
+ * @param extent the longer side of the element's visible box, which a contrasting indicator must cover half of.
104
+ * @returns how the element shows its focus.
105
+ */
106
+ export const judgeFocusIndicator = async (page, extent) => {
107
+ const viewport = page.viewportSize();
108
+ const capture = await captureFocus(page);
109
+ const region = viewport === null ? undefined : regionOf(capture.focusedFacts, capture.unfocusedFacts, viewport);
110
+ if (viewport === null || region === undefined) {
111
+ return 'out of view';
112
+ }
113
+ const renderings = await renderingsIn(page, capture, region, viewport.width);
114
+ if (renderings.scale === 0) {
115
+ throw new Error('the browser could not decode the focus screenshots');
116
+ }
117
+ const focused = Buffer.from(renderings.focused, BASE64);
118
+ const unfocused = Buffer.from(renderings.unfocused, BASE64);
119
+ if (!hasVisibleFocus(unfocused, focused)) {
120
+ return 'unchanged';
121
+ }
122
+ return hasContrastingFocus({ focused, unfocused, scale: renderings.scale, extent }) ? 'contrasting' : 'faint';
123
+ };
124
+ //# sourceMappingURL=focus-region.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-region.js","sourceRoot":"","sources":["../src/focus-region.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The declared families the page's text asks for first, as the font rule counts them, while any face is
3
+ * yet to load; none once every face has loaded or failed.
4
+ * @returns the families, unquoted and in lower case.
5
+ */
6
+ export declare const usedFontFamiliesInPage: () => readonly string[];
7
+ /** The families whose faces to load, and how long the loads may take. */
8
+ export interface FontLoad {
9
+ readonly families: readonly string[];
10
+ /** A face still loading when it passes is left for the font rule. */
11
+ readonly budgetMs: number;
12
+ }
13
+ /**
14
+ * Load the faces of the given families that have not loaded yet, within a ceiling. A face already
15
+ * loading is waited for, as `load` answers with the load in flight.
16
+ * @param load the families and the ceiling.
17
+ * @param load.families the families, unquoted and in lower case.
18
+ * @param load.budgetMs how long the loads may take.
19
+ */
20
+ export declare const loadFontFacesInPage: ({ families, budgetMs }: FontLoad) => Promise<void>;
21
+ //# sourceMappingURL=font-settle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-settle.d.ts","sourceRoot":"","sources":["../src/font-settle.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAO,SAAS,MAAM,EAuCxD,CAAA;AAED,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAU,wBAAwB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAwBxF,CAAA"}
@@ -0,0 +1,67 @@
1
+ // The faces the page's text uses, loaded before the page is measured. A browser asks for a face only once
2
+ // text that needs it has been laid out, and until then the face is `unloaded`, which `document.fonts.ready`
3
+ // does not wait for. Text that appears late - a story Storybook renders after the load event, a panel a
4
+ // control reveals - is laid out after the settle has passed its font wait, and on a loaded machine WebKit
5
+ // may not yet have asked for the face when the page is measured: the font rule would then report a face a
6
+ // moment from loading. Every face of each family the page's text asks for first is therefore loaded now,
7
+ // as the rule counts a family used. A face that fails is left failed, for the rule to report.
8
+ //
9
+ // Self-contained, as the settle is: Playwright ships this function to the page as source text.
10
+ /**
11
+ * The declared families the page's text asks for first, as the font rule counts them, while any face is
12
+ * yet to load; none once every face has loaded or failed.
13
+ * @returns the families, unquoted and in lower case.
14
+ */
15
+ export const usedFontFamiliesInPage = () => {
16
+ const faces = Array.from(document.fonts ?? []);
17
+ if (!faces.some((face) => face.status === 'unloaded' || face.status === 'loading')) {
18
+ return [];
19
+ }
20
+ const textNodeType = 3;
21
+ // Each family as the rule compares it: unquoted and in lower case. Written inline twice, because a
22
+ // helper here would be hoisted out of the page's reach.
23
+ const declared = new Set(faces.map((face) => face.family
24
+ .trim()
25
+ .replaceAll(/^["']|["']$/gu, '')
26
+ .toLowerCase()));
27
+ return [
28
+ ...new Set(Array.from(document.querySelectorAll('body *'))
29
+ .filter((element) => Array.from(element.childNodes).some((node) => node.nodeType === textNodeType && (node.textContent ?? '').trim() !== ''))
30
+ .flatMap((element) => {
31
+ const first = getComputedStyle(element)
32
+ .fontFamily.split(',')
33
+ .map((family) => family
34
+ .trim()
35
+ .replaceAll(/^["']|["']$/gu, '')
36
+ .toLowerCase())
37
+ .find((family) => declared.has(family));
38
+ return first === undefined ? [] : [first];
39
+ })),
40
+ ];
41
+ };
42
+ /**
43
+ * Load the faces of the given families that have not loaded yet, within a ceiling. A face already
44
+ * loading is waited for, as `load` answers with the load in flight.
45
+ * @param load the families and the ceiling.
46
+ * @param load.families the families, unquoted and in lower case.
47
+ * @param load.budgetMs how long the loads may take.
48
+ */
49
+ export const loadFontFacesInPage = async ({ families, budgetMs }) => {
50
+ // Settled rather than all fulfilled: a face that fails is the font rule's finding.
51
+ const loads = Promise.allSettled(Array.from(document.fonts ?? [])
52
+ .filter((face) => (face.status === 'unloaded' || face.status === 'loading') &&
53
+ families.includes(face.family
54
+ .trim()
55
+ .replaceAll(/^["']|["']$/gu, '')
56
+ .toLowerCase()))
57
+ .map(async (face) => await face.load()));
58
+ await Promise.race([
59
+ loads,
60
+ new Promise((resolve) => {
61
+ setTimeout(() => {
62
+ resolve();
63
+ }, budgetMs);
64
+ }),
65
+ ]);
66
+ };
67
+ //# sourceMappingURL=font-settle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-settle.js","sourceRoot":"","sources":["../src/font-settle.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,10 @@
13
13
  import { existsSync } from 'node:fs';
14
14
  import { fileURLToPath } from 'node:url';
15
15
  import { defineConfig, devices } from '@playwright/test';
16
- import { BROWSER_ENDPOINT_ENVIRONMENT_VARIABLE, BROWSER_TUNNEL_ENVIRONMENT_VARIABLE, browserServerEndpoint, CLOCK_ENVIRONMENT_VARIABLE, canReuseBrowserServer, coversEveryEngine, DEVICE_SCALE_FACTOR, portOf, REAL_CLOCK, runEnvironmentFiles, SWEEP_WORKERS, shellArgument, VERIFICATION_ENVIRONMENT_VARIABLE, } from '@ploaness/governance';
16
+ import { BROWSER_ENDPOINT_ENVIRONMENT_VARIABLE, BROWSER_TUNNEL_ENVIRONMENT_VARIABLE, browserServerEndpoint, CLOCK_ENVIRONMENT_VARIABLE, canReuseBrowserServer, coversEveryEngine, DEVICE_SCALE_FACTOR, portOf, REAL_CLOCK, runEnvironmentFiles, shellArgument, VERIFICATION_ENVIRONMENT_VARIABLE, } from '@ploaness/governance';
17
17
  import { loadProductionEnvironment } from './production-environment.js';
18
18
  import { projectSettings } from './project-settings.js';
19
+ import { SWEEP_WORKERS } from './sweep-workers.js';
19
20
  // Read before anything else, because a spec module is what needs it. Playwright evaluates this config
20
21
  // in the runner and again in every worker, which makes it the one place a value reaches both the pass
21
22
  // that collects the specs and the processes that run them - and collection is already too late to be
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAA+B,KAAK,IAAI,EAAgB,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAEL,KAAK,cAAc,EAGnB,KAAK,iBAAiB,EAGtB,KAAK,YAAY,EACjB,KAAK,eAAe,EAapB,KAAK,UAAU,EAGf,KAAK,cAAc,EAQnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAA;AAwB7B,+FAA+F;AAC/F,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAgD,CAAA;AAE3F,sCAAsC;AACtC,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;CAC9C;AAED,iCAAiC;AACjC,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,MAAsE,CAAA;AAE5G,mEAAmE;AACnE,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAAsC,CAAA;AAQ9E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,IAAI,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAGvG,CAAA;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAU,MAAM,IAAI,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,SAAS,CAyB1F,CAAA;AAqED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,IAAI,EACV,OAAO,YAAY,EACnB,QAAO,CAAC,OAAO,EAAE,UAAU,KAAK,UAAyD,KACxF,OAAO,CAAC,SAAS,cAAc,EAAE,CA4BnC,CAAA;AAsBD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,EAAE,MAAY,CAAA;AAE5C,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,IAAI,EACV,OAAO,YAAY,EACnB,SAAS,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC,aAAa,CA2BvB,CAAA;AAED,uGAAuG;AACvG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAChD;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,eAAe,KAAG,OAG1D,CAAA;AASH;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,IAAI,EAAE,cAAc,OAAO,KAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAO1G,CAAA;AAyCD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAG3E,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAEpE,CAAA"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAA+B,KAAK,IAAI,EAAgB,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAEL,KAAK,cAAc,EAGnB,KAAK,iBAAiB,EAGtB,KAAK,YAAY,EACjB,KAAK,eAAe,EAcpB,KAAK,UAAU,EAGf,KAAK,cAAc,EAQnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAA;AAwB7B,+FAA+F;AAC/F,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAgD,CAAA;AAE3F,sCAAsC;AACtC,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;CAC9C;AAED,iCAAiC;AACjC,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,MAAsE,CAAA;AAE5G,mEAAmE;AACnE,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAAsC,CAAA;AAQ9E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,MAAM,IAAI,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAGvG,CAAA;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAU,MAAM,IAAI,EAAE,OAAO,YAAY,KAAG,OAAO,CAAC,SAAS,CA6B1F,CAAA;AAqED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,IAAI,EACV,OAAO,YAAY,EACnB,QAAO,CAAC,OAAO,EAAE,UAAU,KAAK,UAAyD,KACxF,OAAO,CAAC,SAAS,cAAc,EAAE,CA4BnC,CAAA;AAsBD,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,EAAE,MAAY,CAAA;AAE5C,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,IAAI,EACV,OAAO,YAAY,EACnB,SAAS,SAAS,MAAM,EAAE,KACzB,OAAO,CAAC,aAAa,CA2BvB,CAAA;AAED,uGAAuG;AACvG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAChD;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,eAAe,KAAG,OAG1D,CAAA;AASH;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,IAAI,EAAE,cAAc,OAAO,KAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAO1G,CAAA;AAyCD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAG3E,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAEpE,CAAA"}
package/dist/scanner.js CHANGED
@@ -6,7 +6,7 @@
6
6
  // the browser reports, and nothing else.
7
7
  import { AxeBuilder } from '@axe-core/playwright';
8
8
  import { expect } from '@playwright/test';
9
- import { axeRulesExcludedAt, consolePageError, distinctFindings, FAILED_REQUEST_RULE, FOCUS_GUARD_RULE, FONT_LOAD_RULE, findDefiniteIncomplete, findingAt, findingLine, findUnloadedFonts, instability, isAllowedRequest, isArray, isFailedStatus, isFocusGuard, judgeLayout, LAYOUT_RULES, PAGE_ERROR_RULE, PAGE_NOT_STABLE_RULE, RESTING_ELEMENT_RULES, reportedText, restingCandidates, STRESS_VIEWPORTS, staleExemptions, } from '@ploaness/governance';
9
+ import { axeRulesExcludedAt, consolePageError, distinctFindings, FAILED_REQUEST_RULE, FOCUS_GUARD_RULE, FONT_LOAD_RULE, findDefiniteIncomplete, findingAt, findingLine, findUnloadedFonts, heldFontFaces, instability, isAllowedRequest, isArray, isFailedStatus, isFocusGuard, judgeLayout, LAYOUT_RULES, PAGE_ERROR_RULE, PAGE_NOT_STABLE_RULE, RESTING_ELEMENT_RULES, reportedText, restingCandidates, STRESS_VIEWPORTS, staleExemptions, } from '@ploaness/governance';
10
10
  import { LAYOUT_SCAN_VIEWPORTS, measurePage } from './layout.js';
11
11
  import { hasMarkedPayloadView, unmarkPayloadView, VIEW_ROOT_SELECTOR } from './payload-view.js';
12
12
  import { projectSettings } from './project-settings.js';
@@ -65,7 +65,7 @@ export const judgeRestingPlace = async (page, place) => {
65
65
  snapshot: second,
66
66
  };
67
67
  }
68
- const judged = judgeLayout(second, place, {
68
+ const judged = judgeLayout({ ...second, fontFaces: heldFontFaces(first.fontFaces, second.fontFaces) }, place, {
69
69
  minimumGap: projectSettings.layoutMinimumGap,
70
70
  extra: restingCandidates(second),
71
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
package/dist/settle.d.ts CHANGED
@@ -7,7 +7,8 @@ export type SettleOutcome = 'settled' | 'ceiling' | 'busy' | 'interrupted';
7
7
  * Call it after a navigation, and after a state change a scan is about to judge. A still document
8
8
  * costs two animation frames; one that is animating costs however long its animations have left. A
9
9
  * visible `aria-busy="true"` region is waited for until it clears, on a longer ceiling of its own, and
10
- * the page is then settled again.
10
+ * the page is then settled again. The faces its text uses are then loaded, so a face the browser had
11
+ * yet to ask for is measured loaded rather than reported missing.
11
12
  * @param page the page about to be scanned, left on whatever route it holds.
12
13
  * @returns `settled`, or what stopped it: the ceiling, a region that stayed busy, or a navigation that
13
14
  * destroyed the page while it waited. The sweep reports every outcome but `settled` as a finding.
@@ -1 +1 @@
1
- {"version":3,"file":"settle.d.ts","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAuN5C,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;AAE1E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,aAAa,CAgBrE,CAAA"}
1
+ {"version":3,"file":"settle.d.ts","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAiO5C,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;AAE1E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,aAAa,CAuBrE,CAAA"}
package/dist/settle.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { loadFontFacesInPage, usedFontFamiliesInPage } from './font-settle.js';
1
2
  // Why a scan needs a wait at all: `page.goto` resolves at the `load` event, and a React application
2
3
  // hydrates after that. axe measured in between reads a tree still being assembled - a heading whose
3
4
  // level has not resolved lands in `incomplete`, which a consuming project saw on one run in three -
@@ -160,20 +161,27 @@ const busyInPage = async (budgetMs) => {
160
161
  ]);
161
162
  return { wasBusy, isRevealed };
162
163
  };
164
+ // A slow machine can still be working through a heavy page when the ceiling passes, and a page that
165
+ // settles at the second attempt was slow rather than unstable. One more attempt only, so a page that
166
+ // never rests costs two ceilings and is reported as before.
167
+ const SETTLE_ATTEMPTS = 2;
168
+ const isSettledWithin = async (page, attempts) => (await page.evaluate(isSettledInPage, SETTLE_BUDGET_MS)) ||
169
+ (attempts > 1 && (await isSettledWithin(page, attempts - 1)));
163
170
  /**
164
171
  * Wait for a page to finish rendering, before anything measures it.
165
172
  *
166
173
  * Call it after a navigation, and after a state change a scan is about to judge. A still document
167
174
  * costs two animation frames; one that is animating costs however long its animations have left. A
168
175
  * visible `aria-busy="true"` region is waited for until it clears, on a longer ceiling of its own, and
169
- * the page is then settled again.
176
+ * the page is then settled again. The faces its text uses are then loaded, so a face the browser had
177
+ * yet to ask for is measured loaded rather than reported missing.
170
178
  * @param page the page about to be scanned, left on whatever route it holds.
171
179
  * @returns `settled`, or what stopped it: the ceiling, a region that stayed busy, or a navigation that
172
180
  * destroyed the page while it waited. The sweep reports every outcome but `settled` as a finding.
173
181
  */
174
182
  export const settleForScan = async (page) => {
175
183
  try {
176
- if (!(await page.evaluate(isSettledInPage, SETTLE_BUDGET_MS))) {
184
+ if (!(await isSettledWithin(page, SETTLE_ATTEMPTS))) {
177
185
  return 'ceiling';
178
186
  }
179
187
  const busy = await page.evaluate(busyInPage, BUSY_BUDGET_MS);
@@ -181,7 +189,14 @@ export const settleForScan = async (page) => {
181
189
  return 'busy';
182
190
  }
183
191
  // Revealing the content changes the tree, so a page that was busy is settled once more after it.
184
- return !busy.wasBusy || (await page.evaluate(isSettledInPage, SETTLE_BUDGET_MS)) ? 'settled' : 'ceiling';
192
+ if (busy.wasBusy && !(await isSettledWithin(page, SETTLE_ATTEMPTS))) {
193
+ return 'ceiling';
194
+ }
195
+ const families = await page.evaluate(usedFontFamiliesInPage);
196
+ if (families.length > 0) {
197
+ await page.evaluate(loadFontFacesInPage, { families, budgetMs: SETTLE_BUDGET_MS });
198
+ }
199
+ return 'settled';
185
200
  }
186
201
  catch {
187
202
  // A route that redirects on mount destroys the execution context while this is in flight, and a
@@ -1 +1 @@
1
- {"version":3,"file":"settle.js","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settle.js","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sweep-disclosures.d.ts","sourceRoot":"","sources":["../src/sweep-disclosures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,IAAI,EAAQ,MAAM,kBAAkB,CAAA;AAaxE,OAAO,EAoBL,KAAK,KAAK,EAMX,MAAM,mBAAmB,CAAA;AAiN1B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,IAAI,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,IAAI,CAoBnF,CAAA"}
1
+ {"version":3,"file":"sweep-disclosures.d.ts","sourceRoot":"","sources":["../src/sweep-disclosures.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,IAAI,EAAQ,MAAM,kBAAkB,CAAA;AAcxE,OAAO,EAqBL,KAAK,KAAK,EAMX,MAAM,mBAAmB,CAAA;AAiN1B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,IAAI,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,IAAI,CAqBnF,CAAA"}