@setsquare/review-sdk 0.0.1 → 0.1.1

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 (116) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +287 -3
  3. package/dist/autoscan.d.ts +23 -1
  4. package/dist/autoscan.d.ts.map +1 -1
  5. package/dist/autoscan.js +220 -15
  6. package/dist/autoscan.js.map +1 -1
  7. package/dist/brand.d.ts +51 -2
  8. package/dist/brand.d.ts.map +1 -1
  9. package/dist/brand.js +560 -5
  10. package/dist/brand.js.map +1 -1
  11. package/dist/checks/context-change.d.ts +96 -0
  12. package/dist/checks/context-change.d.ts.map +1 -0
  13. package/dist/checks/context-change.js +655 -0
  14. package/dist/checks/context-change.js.map +1 -0
  15. package/dist/checks/focus.d.ts +154 -0
  16. package/dist/checks/focus.d.ts.map +1 -0
  17. package/dist/checks/focus.js +1123 -0
  18. package/dist/checks/focus.js.map +1 -0
  19. package/dist/checks/heuristics.d.ts +117 -0
  20. package/dist/checks/heuristics.d.ts.map +1 -0
  21. package/dist/checks/heuristics.js +961 -0
  22. package/dist/checks/heuristics.js.map +1 -0
  23. package/dist/checks/keyboard.d.ts +106 -0
  24. package/dist/checks/keyboard.d.ts.map +1 -0
  25. package/dist/checks/keyboard.js +452 -0
  26. package/dist/checks/keyboard.js.map +1 -0
  27. package/dist/checks/reflow.d.ts +75 -0
  28. package/dist/checks/reflow.d.ts.map +1 -0
  29. package/dist/checks/reflow.js +285 -0
  30. package/dist/checks/reflow.js.map +1 -0
  31. package/dist/checks/rule-pack.d.ts +1 -1
  32. package/dist/checks/rule-pack.d.ts.map +1 -1
  33. package/dist/checks/rule-pack.js +350 -45
  34. package/dist/checks/rule-pack.js.map +1 -1
  35. package/dist/checks/shortcuts.d.ts +71 -0
  36. package/dist/checks/shortcuts.d.ts.map +1 -0
  37. package/dist/checks/shortcuts.js +196 -0
  38. package/dist/checks/shortcuts.js.map +1 -0
  39. package/dist/checks/versions.d.ts.map +1 -1
  40. package/dist/checks/versions.js +33 -1
  41. package/dist/checks/versions.js.map +1 -1
  42. package/dist/contract.d.ts +32 -0
  43. package/dist/contract.d.ts.map +1 -1
  44. package/dist/covers.d.ts +56 -0
  45. package/dist/covers.d.ts.map +1 -0
  46. package/dist/covers.js +135 -0
  47. package/dist/covers.js.map +1 -0
  48. package/dist/dedupe.d.ts +23 -0
  49. package/dist/dedupe.d.ts.map +1 -1
  50. package/dist/dedupe.js +96 -2
  51. package/dist/dedupe.js.map +1 -1
  52. package/dist/document.d.ts.map +1 -1
  53. package/dist/document.js +144 -0
  54. package/dist/document.js.map +1 -1
  55. package/dist/envelope.d.ts +8 -0
  56. package/dist/envelope.d.ts.map +1 -1
  57. package/dist/envelope.js +106 -16
  58. package/dist/envelope.js.map +1 -1
  59. package/dist/fixture.d.ts.map +1 -1
  60. package/dist/fixture.js +33 -4
  61. package/dist/fixture.js.map +1 -1
  62. package/dist/html-report.d.ts +24 -7
  63. package/dist/html-report.d.ts.map +1 -1
  64. package/dist/html-report.js +608 -136
  65. package/dist/html-report.js.map +1 -1
  66. package/dist/index.d.ts +13 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +13 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/insights.d.ts.map +1 -1
  71. package/dist/insights.js +9 -12
  72. package/dist/insights.js.map +1 -1
  73. package/dist/links.d.ts +43 -0
  74. package/dist/links.d.ts.map +1 -1
  75. package/dist/links.js +43 -0
  76. package/dist/links.js.map +1 -1
  77. package/dist/observe.d.ts +8 -0
  78. package/dist/observe.d.ts.map +1 -1
  79. package/dist/observe.js +45 -1
  80. package/dist/observe.js.map +1 -1
  81. package/dist/options.d.ts +53 -0
  82. package/dist/options.d.ts.map +1 -1
  83. package/dist/options.js +3 -0
  84. package/dist/options.js.map +1 -1
  85. package/dist/reading-level.d.ts +22 -1
  86. package/dist/reading-level.d.ts.map +1 -1
  87. package/dist/reading-level.js +122 -19
  88. package/dist/reading-level.js.map +1 -1
  89. package/dist/reporter.d.ts.map +1 -1
  90. package/dist/reporter.js +31 -15
  91. package/dist/reporter.js.map +1 -1
  92. package/dist/scan.d.ts +36 -1
  93. package/dist/scan.d.ts.map +1 -1
  94. package/dist/scan.js +16 -2
  95. package/dist/scan.js.map +1 -1
  96. package/dist/screens.d.ts +55 -4
  97. package/dist/screens.d.ts.map +1 -1
  98. package/dist/screens.js +243 -43
  99. package/dist/screens.js.map +1 -1
  100. package/dist/settle.d.ts +35 -0
  101. package/dist/settle.d.ts.map +1 -1
  102. package/dist/settle.js +43 -2
  103. package/dist/settle.js.map +1 -1
  104. package/dist/summary.d.ts +35 -0
  105. package/dist/summary.d.ts.map +1 -1
  106. package/dist/summary.js +248 -28
  107. package/dist/summary.js.map +1 -1
  108. package/dist/unscannable-reasons.d.ts +30 -0
  109. package/dist/unscannable-reasons.d.ts.map +1 -0
  110. package/dist/unscannable-reasons.js +53 -0
  111. package/dist/unscannable-reasons.js.map +1 -0
  112. package/dist/viewports.d.ts +105 -0
  113. package/dist/viewports.d.ts.map +1 -0
  114. package/dist/viewports.js +134 -0
  115. package/dist/viewports.js.map +1 -0
  116. package/package.json +5 -4
package/dist/fixture.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { SCAN_RECORD_ATTACHMENT, SCAN_RECORD_VERSION, } from './contract.js';
2
2
  import { flushAutoScan, installAutoScan } from './autoscan.js';
3
+ import { KEY_LISTENER_SCRIPT } from './checks/shortcuts.js';
3
4
  import { observePageRuntime } from './observe.js';
4
5
  import { unscannableOmitted, unscannableRows } from './unscannable.js';
5
6
  /**
@@ -70,6 +71,17 @@ export function createContextFixture(options) {
70
71
  // A context that refuses init scripts still yields real navigations below.
71
72
  // Partial evidence beats none, provided we do not pretend it is complete.
72
73
  });
74
+ /*
75
+ * WCAG 2.1.4, and the only thing this SDK installs that runs before the
76
+ * customer's own code. Opt-in for exactly that reason — see
77
+ * `SetsquareOptions.keyShortcuts` and `checks/shortcuts.ts`.
78
+ */
79
+ if (options.keyShortcuts && !options.disabled) {
80
+ await context.addInitScript(KEY_LISTENER_SCRIPT).catch(() => {
81
+ // Same posture as above: without it, 2.1.4 has no evidence in this run
82
+ // rather than a clean one.
83
+ });
84
+ }
73
85
  const observe = (page) => {
74
86
  const observer = { page, navigations: [] };
75
87
  observers.push(observer);
@@ -97,7 +109,15 @@ export function createContextFixture(options) {
97
109
  for (const page of context.pages())
98
110
  observe(page);
99
111
  context.on('page', observe);
100
- if (options.autoScan && !options.disabled) {
112
+ /*
113
+ * One expression for "is anything going to scan this context", named because
114
+ * three places need to agree on it: the install, the teardown sweep, and the
115
+ * observation record that tells the reporter why a surface has no evidence.
116
+ * They were three copies of the same condition, and the record was not one
117
+ * of them.
118
+ */
119
+ const autoScanActive = options.autoScan && !options.disabled;
120
+ if (autoScanActive) {
101
121
  // Installed before the test body runs, so the very first navigation is
102
122
  // already being watched. A scanner that starts listening after the page has
103
123
  // loaded has already missed the thing it exists to see.
@@ -115,10 +135,10 @@ export function createContextFixture(options) {
115
135
  // Before recording observations: whatever the test left on screen is the
116
136
  // most reliable scan opportunity in the whole run, and for a fast test it
117
137
  // is the only one.
118
- if (options.autoScan && !options.disabled) {
138
+ if (autoScanActive) {
119
139
  await flushAutoScan(context, options, testInfo, (message) => warnings.push(message));
120
140
  }
121
- await attachRecords(observers, browserName, startedAt, testInfo);
141
+ await attachRecords(observers, browserName, startedAt, testInfo, autoScanActive);
122
142
  for (const message of warnings) {
123
143
  // Surfaced through Playwright's own annotations so a problem appears
124
144
  // next to the test it happened in, not buried in a summary.
@@ -132,7 +152,7 @@ export function createContextFixture(options) {
132
152
  }
133
153
  };
134
154
  }
135
- async function attachRecords(observers, browserName, startedAt, testInfo) {
155
+ async function attachRecords(observers, browserName, startedAt, testInfo, autoScan) {
136
156
  for (const observer of observers) {
137
157
  const observed = await observePage(observer, browserName, startedAt, testInfo.project.name);
138
158
  if (!observed)
@@ -141,6 +161,15 @@ async function attachRecords(observers, browserName, startedAt, testInfo) {
141
161
  recordVersion: SCAN_RECORD_VERSION,
142
162
  kind: 'observation',
143
163
  observed,
164
+ /*
165
+ * Stated on every record, including — especially — when it is false.
166
+ *
167
+ * The reporter's visited-but-never-scanned accounting has to name a cause,
168
+ * and with automatic scanning off the honest cause is "it was off". Leaving
169
+ * it to be inferred is how a functional lane came to be told its tests
170
+ * outran their own pages.
171
+ */
172
+ autoScan,
144
173
  };
145
174
  /*
146
175
  * Surfaces this page reached and we could not scan.
@@ -1 +1 @@
1
- {"version":3,"file":"fixture.js","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixture.js","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"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"}
@@ -41,16 +41,33 @@ export interface HtmlReportInput {
41
41
  */
42
42
  group?: RunGroupMeta;
43
43
  /**
44
- * The run's screenshots, when it produced any.
44
+ * The run's screenshots, when it produced any — counted here, not shown.
45
45
  *
46
- * The same section the standalone `screens.html` is built from, embedded here
47
- * rather than reimplemented two renderers of one thing drift, and the drift
48
- * would be invisible until someone compared the two files side by side.
49
- * Absent means no captures to show, and the section is then omitted rather
50
- * than rendered empty: a WCAG evidence document should not carry a heading
51
- * whose only content is an apology.
46
+ * This document used to EMBED the whole contact sheet, which meant a report
47
+ * carrying every capture inline: on this repository's own site that is most
48
+ * of a 696 KB file, and the pictures sit between the conformance verdict and
49
+ * the provenance, where somebody scrolling for the verdict has to pass all of
50
+ * them. The sheet is already written beside this file and is better read on
51
+ * its own, at its own pace.
52
+ *
53
+ * So the section is now a link plus a count. The count is the part worth
54
+ * keeping inline: "no captures" and "forty captures nobody looked at" are
55
+ * different states, and a bare link cannot tell them apart.
56
+ *
57
+ * Absent means no captures to show, and the section is omitted rather than
58
+ * rendered empty: a WCAG evidence document should not carry a heading whose
59
+ * only content is an apology.
52
60
  */
53
61
  screens?: ScreensInput;
62
+ /**
63
+ * Where the contact sheet was written, relative to this file.
64
+ *
65
+ * Set ONLY once that file exists. The reporter writes the sheet before this
66
+ * report for exactly that reason — a link to a file a failed write never
67
+ * produced is worse than no link, and the sheet has its own failure domain
68
+ * precisely so it can fail alone.
69
+ */
70
+ screensHref?: string;
54
71
  /**
55
72
  * Local-only facts from `meta.json`, for the P1b insight sections.
56
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmBpF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAgDD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA4qB/D"}
1
+ {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA8BlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmB9D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAgSD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA48B/D"}