@ploaness/governance 1.5.0 → 1.6.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 (232) hide show
  1. package/dist/a11y-hit-target.d.ts.map +1 -1
  2. package/dist/a11y-hit-target.js.map +1 -1
  3. package/dist/a11y-incomplete.d.ts.map +1 -1
  4. package/dist/a11y-incomplete.js +2 -6
  5. package/dist/a11y-incomplete.js.map +1 -1
  6. package/dist/access-boundary.d.ts.map +1 -1
  7. package/dist/access-boundary.js +2 -4
  8. package/dist/access-boundary.js.map +1 -1
  9. package/dist/admin-view-coverage.d.ts.map +1 -1
  10. package/dist/admin-view-coverage.js +2 -7
  11. package/dist/admin-view-coverage.js.map +1 -1
  12. package/dist/agent-references.d.ts.map +1 -1
  13. package/dist/agent-references.js.map +1 -1
  14. package/dist/architecture-layers.d.ts.map +1 -1
  15. package/dist/architecture-layers.js.map +1 -1
  16. package/dist/asset-policy.d.ts.map +1 -1
  17. package/dist/asset-policy.js +4 -15
  18. package/dist/asset-policy.js.map +1 -1
  19. package/dist/axe-coverage.d.ts +9 -0
  20. package/dist/axe-coverage.d.ts.map +1 -1
  21. package/dist/axe-coverage.js +18 -5
  22. package/dist/axe-coverage.js.map +1 -1
  23. package/dist/banned-typography.d.ts.map +1 -1
  24. package/dist/banned-typography.js +1 -4
  25. package/dist/banned-typography.js.map +1 -1
  26. package/dist/blocklist-entries.d.ts.map +1 -1
  27. package/dist/blocklist-entries.js.map +1 -1
  28. package/dist/blocklist.d.ts.map +1 -1
  29. package/dist/blocklist.js +3 -7
  30. package/dist/blocklist.js.map +1 -1
  31. package/dist/browser-server-policy.d.ts +26 -0
  32. package/dist/browser-server-policy.d.ts.map +1 -0
  33. package/dist/browser-server-policy.js +45 -0
  34. package/dist/browser-server-policy.js.map +1 -0
  35. package/dist/build-diagnosis.d.ts.map +1 -1
  36. package/dist/build-diagnosis.js +1 -1
  37. package/dist/build-diagnosis.js.map +1 -1
  38. package/dist/bundle-budget.d.ts.map +1 -1
  39. package/dist/bundle-budget.js.map +1 -1
  40. package/dist/checkov-checks-aws.d.ts.map +1 -1
  41. package/dist/checkov-checks-aws.js.map +1 -1
  42. package/dist/checkov-policy.d.ts.map +1 -1
  43. package/dist/checkov-policy.js.map +1 -1
  44. package/dist/commit-message.d.ts.map +1 -1
  45. package/dist/commit-message.js +4 -18
  46. package/dist/commit-message.js.map +1 -1
  47. package/dist/container-failure.d.ts.map +1 -1
  48. package/dist/container-failure.js +1 -6
  49. package/dist/container-failure.js.map +1 -1
  50. package/dist/container-freshness.d.ts.map +1 -1
  51. package/dist/container-freshness.js +4 -11
  52. package/dist/container-freshness.js.map +1 -1
  53. package/dist/container-images.d.ts.map +1 -1
  54. package/dist/container-images.js +2 -6
  55. package/dist/container-images.js.map +1 -1
  56. package/dist/dependency-freshness.d.ts.map +1 -1
  57. package/dist/dependency-freshness.js.map +1 -1
  58. package/dist/doc-blocks.d.ts.map +1 -1
  59. package/dist/doc-blocks.js +3 -15
  60. package/dist/doc-blocks.js.map +1 -1
  61. package/dist/document-references.d.ts.map +1 -1
  62. package/dist/document-references.js +2 -6
  63. package/dist/document-references.js.map +1 -1
  64. package/dist/editorconfig-policy.d.ts +4 -1
  65. package/dist/editorconfig-policy.d.ts.map +1 -1
  66. package/dist/editorconfig-policy.js +38 -33
  67. package/dist/editorconfig-policy.js.map +1 -1
  68. package/dist/environment-coherence.d.ts.map +1 -1
  69. package/dist/environment-coherence.js +6 -25
  70. package/dist/environment-coherence.js.map +1 -1
  71. package/dist/environment-files.d.ts.map +1 -1
  72. package/dist/environment-files.js.map +1 -1
  73. package/dist/file-roles.d.ts.map +1 -1
  74. package/dist/file-roles.js +1 -1
  75. package/dist/file-roles.js.map +1 -1
  76. package/dist/freshness-repair.d.ts.map +1 -1
  77. package/dist/freshness-repair.js +3 -6
  78. package/dist/freshness-repair.js.map +1 -1
  79. package/dist/generated-denial.d.ts.map +1 -1
  80. package/dist/generated-denial.js +3 -8
  81. package/dist/generated-denial.js.map +1 -1
  82. package/dist/generated-drift.d.ts.map +1 -1
  83. package/dist/generated-drift.js +1 -3
  84. package/dist/generated-drift.js.map +1 -1
  85. package/dist/history-policy.d.ts.map +1 -1
  86. package/dist/history-policy.js.map +1 -1
  87. package/dist/image-assets.d.ts.map +1 -1
  88. package/dist/image-assets.js +1 -2
  89. package/dist/image-assets.js.map +1 -1
  90. package/dist/index.d.ts +5 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +5 -0
  93. package/dist/index.js.map +1 -1
  94. package/dist/install-policy.d.ts.map +1 -1
  95. package/dist/install-policy.js +2 -7
  96. package/dist/install-policy.js.map +1 -1
  97. package/dist/json-shapes.d.ts.map +1 -1
  98. package/dist/json-shapes.js +1 -1
  99. package/dist/json-shapes.js.map +1 -1
  100. package/dist/jsx-accessibility-scope.d.ts.map +1 -1
  101. package/dist/jsx-accessibility-scope.js +2 -7
  102. package/dist/jsx-accessibility-scope.js.map +1 -1
  103. package/dist/jsx-accessibility.d.ts.map +1 -1
  104. package/dist/jsx-accessibility.js +2 -14
  105. package/dist/jsx-accessibility.js.map +1 -1
  106. package/dist/layout-boxes.d.ts +26 -0
  107. package/dist/layout-boxes.d.ts.map +1 -0
  108. package/dist/layout-boxes.js +169 -0
  109. package/dist/layout-boxes.js.map +1 -0
  110. package/dist/layout-defects.d.ts +28 -0
  111. package/dist/layout-defects.d.ts.map +1 -0
  112. package/dist/layout-defects.js +114 -0
  113. package/dist/layout-defects.js.map +1 -0
  114. package/dist/layout-snapshot.d.ts +152 -0
  115. package/dist/layout-snapshot.d.ts.map +1 -0
  116. package/dist/layout-snapshot.js +127 -0
  117. package/dist/layout-snapshot.js.map +1 -0
  118. package/dist/layout-text.d.ts +42 -0
  119. package/dist/layout-text.d.ts.map +1 -0
  120. package/dist/layout-text.js +97 -0
  121. package/dist/layout-text.js.map +1 -0
  122. package/dist/license-allowlist.d.ts.map +1 -1
  123. package/dist/license-allowlist.js +1 -3
  124. package/dist/license-allowlist.js.map +1 -1
  125. package/dist/network-policy.d.ts.map +1 -1
  126. package/dist/network-policy.js +2 -11
  127. package/dist/network-policy.js.map +1 -1
  128. package/dist/oxlint-report.d.ts.map +1 -1
  129. package/dist/oxlint-report.js +1 -3
  130. package/dist/oxlint-report.js.map +1 -1
  131. package/dist/oxlint-scope.d.ts.map +1 -1
  132. package/dist/oxlint-scope.js +2 -16
  133. package/dist/oxlint-scope.js.map +1 -1
  134. package/dist/oxlint-suppressions.d.ts.map +1 -1
  135. package/dist/oxlint-suppressions.js +3 -9
  136. package/dist/oxlint-suppressions.js.map +1 -1
  137. package/dist/paired-assets.d.ts.map +1 -1
  138. package/dist/paired-assets.js +1 -2
  139. package/dist/paired-assets.js.map +1 -1
  140. package/dist/payload-access.d.ts.map +1 -1
  141. package/dist/payload-access.js +22 -13
  142. package/dist/payload-access.js.map +1 -1
  143. package/dist/payload-bootstrap.d.ts.map +1 -1
  144. package/dist/payload-bootstrap.js +1 -4
  145. package/dist/payload-bootstrap.js.map +1 -1
  146. package/dist/payload-configs.d.ts.map +1 -1
  147. package/dist/payload-configs.js +2 -4
  148. package/dist/payload-configs.js.map +1 -1
  149. package/dist/payload-database.d.ts.map +1 -1
  150. package/dist/payload-database.js +4 -13
  151. package/dist/payload-database.js.map +1 -1
  152. package/dist/payload-defaults.d.ts.map +1 -1
  153. package/dist/payload-defaults.js +2 -5
  154. package/dist/payload-defaults.js.map +1 -1
  155. package/dist/payload-field-access.d.ts.map +1 -1
  156. package/dist/payload-field-access.js.map +1 -1
  157. package/dist/payload-policy.d.ts.map +1 -1
  158. package/dist/payload-policy.js +2 -3
  159. package/dist/payload-policy.js.map +1 -1
  160. package/dist/payload-source.d.ts.map +1 -1
  161. package/dist/payload-source.js +1 -3
  162. package/dist/payload-source.js.map +1 -1
  163. package/dist/relationship-cleanup.d.ts.map +1 -1
  164. package/dist/relationship-cleanup.js +3 -10
  165. package/dist/relationship-cleanup.js.map +1 -1
  166. package/dist/release-age.d.ts.map +1 -1
  167. package/dist/release-age.js +1 -3
  168. package/dist/release-age.js.map +1 -1
  169. package/dist/route-coverage.d.ts.map +1 -1
  170. package/dist/route-coverage.js +18 -6
  171. package/dist/route-coverage.js.map +1 -1
  172. package/dist/route-map.d.ts.map +1 -1
  173. package/dist/route-map.js +3 -16
  174. package/dist/route-map.js.map +1 -1
  175. package/dist/run-plan.d.ts.map +1 -1
  176. package/dist/run-plan.js +1 -3
  177. package/dist/run-plan.js.map +1 -1
  178. package/dist/run-policy.d.ts.map +1 -1
  179. package/dist/run-policy.js +1 -2
  180. package/dist/run-policy.js.map +1 -1
  181. package/dist/secret-policy.d.ts.map +1 -1
  182. package/dist/secret-policy.js.map +1 -1
  183. package/dist/settings-layering.d.ts.map +1 -1
  184. package/dist/settings-layering.js +15 -12
  185. package/dist/settings-layering.js.map +1 -1
  186. package/dist/settings.d.ts +11 -0
  187. package/dist/settings.d.ts.map +1 -1
  188. package/dist/settings.js +22 -12
  189. package/dist/settings.js.map +1 -1
  190. package/dist/shell-files.d.ts.map +1 -1
  191. package/dist/shell-files.js +2 -6
  192. package/dist/shell-files.js.map +1 -1
  193. package/dist/skill-manifest.d.ts.map +1 -1
  194. package/dist/skill-manifest.js +1 -4
  195. package/dist/skill-manifest.js.map +1 -1
  196. package/dist/source-security.d.ts.map +1 -1
  197. package/dist/source-security.js +2 -4
  198. package/dist/source-security.js.map +1 -1
  199. package/dist/source-text.d.ts.map +1 -1
  200. package/dist/source-text.js.map +1 -1
  201. package/dist/suppression-ceiling.d.ts.map +1 -1
  202. package/dist/suppression-ceiling.js +14 -4
  203. package/dist/suppression-ceiling.js.map +1 -1
  204. package/dist/terraform-files.d.ts.map +1 -1
  205. package/dist/terraform-files.js +1 -5
  206. package/dist/terraform-files.js.map +1 -1
  207. package/dist/terraform-policy.d.ts.map +1 -1
  208. package/dist/terraform-policy.js +2 -10
  209. package/dist/terraform-policy.js.map +1 -1
  210. package/dist/terraform-providers.d.ts.map +1 -1
  211. package/dist/terraform-providers.js +1 -3
  212. package/dist/terraform-providers.js.map +1 -1
  213. package/dist/text-escapes.d.ts.map +1 -1
  214. package/dist/text-escapes.js.map +1 -1
  215. package/dist/toolchain-pins.d.ts.map +1 -1
  216. package/dist/toolchain-pins.js.map +1 -1
  217. package/dist/version-policy.d.ts.map +1 -1
  218. package/dist/version-policy.js +5 -9
  219. package/dist/version-policy.js.map +1 -1
  220. package/dist/vulnerability-policy.d.ts.map +1 -1
  221. package/dist/vulnerability-policy.js.map +1 -1
  222. package/dist/wiring-policy.d.ts +2 -0
  223. package/dist/wiring-policy.d.ts.map +1 -1
  224. package/dist/wiring-policy.js +8 -28
  225. package/dist/wiring-policy.js.map +1 -1
  226. package/dist/workspace-policy.d.ts.map +1 -1
  227. package/dist/workspace-policy.js +2 -6
  228. package/dist/workspace-policy.js.map +1 -1
  229. package/dist/yaml-blocks.d.ts.map +1 -1
  230. package/dist/yaml-blocks.js +4 -12
  231. package/dist/yaml-blocks.js.map +1 -1
  232. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"install-policy.js","sourceRoot":"","sources":["../src/install-policy.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,uGAAuG;AACvG,uFAAuF;AACvF,EAAE;AACF,yGAAyG;AACzG,sGAAsG;AACtG,UAAU;AAEV,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,GACf,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,WAAW;IACX,aAAa;IACb,qBAAqB;IACrB,mBAAmB;CACpB,CAAA;AAED,0EAA0E;AAC1E,MAAM,aAAa,GAAW,uBAAuB,CAAA;AAErD,uGAAuG;AACvG,MAAM,cAAc,GAAsB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;AAUvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,aAAqB,EAA4B,EAAE,CAC/E,aAAa,CAAC,OAAO,CAAC,CAAC,GAAW,EAA4B,EAAE,CAC9D,sBAAsB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,CAC5C,CAAC,CAAC,WAAW,EAAE,SAAS,CAA4B,EAAiB,EAAE,CAAC,CAAC;IACvE,GAAG;IACH,WAAW;IACX,SAAS;CACV,CAAC,CACH,CACF,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,aAAqB,EACrB,WAAoB,EACX,EAAE;IACX,OAAO,CACL,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CACpE,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAoB,EAAqB,EAAE;IAChF,MAAM,WAAW,GAAY,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAA;IACjF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAU,EAAE;IACzD,MAAM,EAAE,GAAW,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACpD,CAAC,CAAA;AAED,sGAAsG;AACtG,2GAA2G;AAC3G,wGAAwG;AACxG,uGAAuG;AACvG,wGAAwG;AACxG,2DAA2D;AAC3D,MAAM,UAAU,GAAW,yBAAyB,CAAA;AACpD,MAAM,WAAW,GAAW,0BAA0B,CAAA;AAEtD,uGAAuG;AACvG,0GAA0G;AAC1G,mGAAmG;AACnG,yGAAyG;AACzG,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAE/F,MAAM,eAAe,GAAG,CAAC,aAAqB,EAAqB,EAAE,CACnE,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,MAAM;IAClD,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACE,uBAAuB,UAAU,6DAA6D;YAC5F,mFAAmF;KACtF,CAAA;AAEP,MAAM,mBAAmB,GAAG,CAAC,aAAqB,EAAqB,EAAE,CACvE,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC;KAC1C,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAChE,GAAG,CACF,CAAC,KAAa,EAAU,EAAE,CACxB,uBAAuB,WAAW,WAAW,KAAK,oBAAoB,eAAe,GAAG;IACxF,iBAAiB,eAAe,SAAS,eAAe,8BAA8B;IACtF,2DAA2D,CAC9D,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAqB,EAAqB,EAAE,CAAC;IACpF,GAAG,eAAe,CAAC,aAAa,CAAC;IACjC,GAAG,mBAAmB,CAAC,aAAa,CAAC;CACtC,CAAA"}
1
+ {"version":3,"file":"install-policy.js","sourceRoot":"","sources":["../src/install-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-shapes.d.ts","sourceRoot":"","sources":["../src/json-shapes.ts"],"names":[],"mappings":"AAYA,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAkBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,UASzC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAC5B,CAAA;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA+B,CAAA;AAK7F;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CACM,CAAA;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,SAAS,OAAO,EAAwB,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,OAAO,KAAG,MAA8C,CAAA;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,SACZ,CAAA;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,EAAE,KAAK,MAAM,KAAG,OAA6B,CAAA;AAEjF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAAI,aAAa,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAY/E,CAAA"}
1
+ {"version":3,"file":"json-shapes.d.ts","sourceRoot":"","sources":["../src/json-shapes.ts"],"names":[],"mappings":"AAYA,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAeD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,UASzC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAA4C,CAAA;AAEjH;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA+B,CAAA;AAI7F;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CACM,CAAA;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,SAAS,OAAO,EAAwB,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,OAAO,KAAG,MAA8C,CAAA;AAEpF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,SAAwD,CAAA;AAE/G;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,OAAO,EAAE,KAAK,MAAM,KAAG,OAA6B,CAAA;AAEjF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAAI,aAAa,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAY/E,CAAA"}
@@ -90,7 +90,7 @@ export const asText = (raw) => (typeof raw === 'string' ? raw : '');
90
90
  * @param raw the value to read.
91
91
  * @returns the string, or undefined.
92
92
  */
93
- export const asOptionalText = (raw) => typeof raw === 'string' ? raw : undefined;
93
+ export const asOptionalText = (raw) => (typeof raw === 'string' ? raw : undefined);
94
94
  /**
95
95
  * Read one key of a parsed value.
96
96
  * @param raw the value holding the key.
@@ -1 +1 @@
1
- {"version":3,"file":"json-shapes.js","sourceRoot":"","sources":["../src/json-shapes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-shapes.js","sourceRoot":"","sources":["../src/json-shapes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-accessibility-scope.d.ts","sourceRoot":"","sources":["../src/jsx-accessibility-scope.ts"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAqB,CAAA;AAEjE,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAMpD,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,QAAO,SAAS,MAAM,EAGrD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAWjB,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,OAC0C,CAAA"}
1
+ {"version":3,"file":"jsx-accessibility-scope.d.ts","sourceRoot":"","sources":["../src/jsx-accessibility-scope.ts"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAqB,CAAA;AAEjE,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAMpD,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,QAAO,SAAS,MAAM,EAGrD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAMjB,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,OAC0C,CAAA"}
@@ -23,13 +23,8 @@ export const jsxAnalysisPatterns = () => [
23
23
  * @returns the deduplicated paths the native analyzer must actually read.
24
24
  */
25
25
  export const jsxAccessibilityFiles = (files, generated, siblings) => {
26
- const ignored = [
27
- ...APPLICATION_JSX_IGNORES,
28
- ...generated,
29
- ...analysisBoundaries(siblings),
30
- ];
31
- return [...new Set(files)].filter((file) => hasExtension(file, JSX_EXTENSIONS) &&
32
- !ignored.some((pattern) => matchesGlob(pattern, file)));
26
+ const ignored = [...APPLICATION_JSX_IGNORES, ...generated, ...analysisBoundaries(siblings)];
27
+ return [...new Set(files)].filter((file) => hasExtension(file, JSX_EXTENSIONS) && !ignored.some((pattern) => matchesGlob(pattern, file)));
33
28
  };
34
29
  /** Consumer configuration cannot shadow the harness, including in nested directories. */
35
30
  export const isOxlintConfig = (file) => /(?:^|\/)(?:\.oxlintrc(?:\.[^/]*)?|\.oxlintignore|oxlint\.config\.[^/]+)$/u.test(file);
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-accessibility-scope.js","sourceRoot":"","sources":["../src/jsx-accessibility-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjE,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,UAAU;IACV,oBAAoB;IACpB,aAAa;IACb,YAAY;IACZ,OAAO;CACR,CAAA;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAsB,EAAE,CAAC;IAC1D,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC;IACxE,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;CAC3E,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAwB,EACxB,SAA4B,EAC5B,QAA2B,EACR,EAAE;IACrB,MAAM,OAAO,GAAsB;QACjC,GAAG,uBAAuB;QAC1B,GAAG,SAAS;QACZ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;KAChC,CAAA;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAC/B,CAAC,IAAY,EAAW,EAAE,CACxB,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC;QAClC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAC1E,CAAA;AACH,CAAC,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CACtD,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"jsx-accessibility-scope.js","sourceRoot":"","sources":["../src/jsx-accessibility-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjE,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,UAAU;IACV,oBAAoB;IACpB,aAAa;IACb,YAAY;IACZ,OAAO;CACR,CAAA;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAsB,EAAE,CAAC;IAC1D,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC;IACxE,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;CAC3E,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAwB,EACxB,SAA4B,EAC5B,QAA2B,EACR,EAAE;IACrB,MAAM,OAAO,GAAsB,CAAC,GAAG,uBAAuB,EAAE,GAAG,SAAS,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9G,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAC/B,CAAC,IAAY,EAAW,EAAE,CACxB,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAChH,CAAA;AACH,CAAC,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CACtD,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-accessibility.d.ts","sourceRoot":"","sources":["../src/jsx-accessibility.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAyKlE,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3E,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,+BAA+B,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM/E,CAAA"}
1
+ {"version":3,"file":"jsx-accessibility.d.ts","sourceRoot":"","sources":["../src/jsx-accessibility.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAgKlE,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,yBAAyB,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3E,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,+BAA+B,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG/E,CAAA"}
@@ -101,16 +101,7 @@ export const JSX_ACCESSIBILITY_RULES = [
101
101
  oxlint: 'jsx-a11y/no-noninteractive-element-interactions',
102
102
  biome: 'noNoninteractiveElementInteractions',
103
103
  options: {
104
- handlers: [
105
- 'onClick',
106
- 'onError',
107
- 'onLoad',
108
- 'onMouseDown',
109
- 'onMouseUp',
110
- 'onKeyPress',
111
- 'onKeyDown',
112
- 'onKeyUp',
113
- ],
104
+ handlers: ['onClick', 'onError', 'onLoad', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
114
105
  alert: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
115
106
  body: ['onError', 'onLoad'],
116
107
  dialog: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
@@ -181,8 +172,5 @@ export const oxlintAccessibilityConfig = () => ({
181
172
  ])),
182
173
  });
183
174
  /** The Biome checks whose application JSX responsibility belongs to Oxlint. */
184
- export const replacedBiomeAccessibilityRules = () => Object.fromEntries(JSX_ACCESSIBILITY_RULES.map((rule) => [
185
- rule.biome,
186
- 'off',
187
- ]));
175
+ export const replacedBiomeAccessibilityRules = () => Object.fromEntries(JSX_ACCESSIBILITY_RULES.map((rule) => [rule.biome, 'off']));
188
176
  //# sourceMappingURL=jsx-accessibility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-accessibility.js","sourceRoot":"","sources":["../src/jsx-accessibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-accessibility.js","sourceRoot":"","sources":["../src/jsx-accessibility.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,qGAAqG;AASrG,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACtE;QACE,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,YAAY;KACpB;IACD;QACE,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,MAAM,EAAE,0BAA0B;QAClC,KAAK,EAAE,gBAAgB;KACxB;IACD;QACE,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,qCAAqC;KAC7C;IACD;QACE,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,mBAAmB;KAC3B;IACD;QACE,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,MAAM,EAAE,oCAAoC;QAC5C,KAAK,EAAE,2BAA2B;KACnC;IACD;QACE,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,sBAAsB;KAC9B;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,MAAM,EAAE,8BAA8B;QACtC,KAAK,EAAE,mBAAmB;KAC3B;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,aAAa;KACrB;IACD;QACE,MAAM,EAAE,2BAA2B;QACnC,KAAK,EAAE,gBAAgB;KACxB;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,gBAAgB;KACxB;IACD;QACE,MAAM,EAAE,qCAAqC;QAC7C,KAAK,EAAE,yBAAyB;QAChC,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;SACzF;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,iBAAiB;KACzB;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,aAAa;KACrB;IACD;QACE,MAAM,EAAE,uBAAuB;QAC/B,KAAK,EAAE,aAAa;KACrB;IACD;QACE,MAAM,EAAE,kCAAkC;QAC1C,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,MAAM,EAAE,wDAAwD;QAChE,KAAK,EAAE,0CAA0C;QACjD,OAAO,EAAE;YACP,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;YAC5B,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB;KACF;IACD;QACE,MAAM,EAAE,iDAAiD;QACzD,KAAK,EAAE,qCAAqC;QAC5C,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;YAC5G,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;YAC7C,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;YAC9C,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC7B,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC3B;KACF;IACD;QACE,MAAM,EAAE,wDAAwD;QAChE,KAAK,EAAE,0CAA0C;QACjD,OAAO,EAAE;YACP,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YAC/E,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YAC/E,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC;YACzF,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,UAAU,CAAC;YAChB,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;SACzC;KACF;IACD;QACE,MAAM,EAAE,qCAAqC;QAC7C,KAAK,EAAE,0BAA0B;QACjC,OAAO,EAAE;YACP,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,qBAAqB,EAAE,IAAI;SAC5B;KACF;IACD;QACE,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE;YACP,EAAE,EAAE,CAAC,UAAU,CAAC;SACjB;KACF;IACD;QACE,MAAM,EAAE,yCAAyC;QACjD,KAAK,EAAE,6BAA6B;QACpC,OAAO,EAAE;YACP,qBAAqB,EAAE,IAAI;YAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;SACxF;KACF;IACD;QACE,MAAM,EAAE,uCAAuC;QAC/C,KAAK,EAAE,qBAAqB;KAC7B;IACD;QACE,MAAM,EAAE,mCAAmC;QAC3C,KAAK,EAAE,6BAA6B;KACrC;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,eAAe;KACvB;IACD;QACE,MAAM,EAAE,+BAA+B;QACvC,KAAK,EAAE,oBAAoB;KAC5B;CACF,CAAA;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAsC,EAAE,CAAC,CAAC;IACjF,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAA0B,EAA8B,EAAE,CAAC;QACtF,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KAC/D,CAAC,CACH;CACF,CAAC,CAAA;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAqC,EAAE,CACpF,MAAM,CAAC,WAAW,CAChB,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAA0B,EAA6B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC5G,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { type LayoutNode, type LayoutSnapshot } from './layout-snapshot.js';
2
+ /** A pair of siblings judged too close, and the gap that made them so. */
3
+ export interface BoxFinding {
4
+ readonly first: LayoutNode;
5
+ readonly second: LayoutNode;
6
+ /** The gap in whole CSS pixels; negative when the boxes overlap. */
7
+ readonly gap: number;
8
+ readonly isOverlap: boolean;
9
+ /** The siblings that carried `data-ploaness-layout="attached"` and so excused the pair. */
10
+ readonly exemptedBy: readonly LayoutNode[];
11
+ }
12
+ /**
13
+ * The elements laid out directly under a parent, after looking through wrappers that paint nothing.
14
+ * @param snapshot the measured page.
15
+ * @param parent the element whose children are compared.
16
+ * @returns the siblings, in document order.
17
+ */
18
+ export declare const layoutChildren: (snapshot: LayoutSnapshot, parent: LayoutNode) => readonly LayoutNode[];
19
+ /**
20
+ * Every pair of boxed siblings closer than the minimum gap, exempted or not.
21
+ * @param snapshot the measured page.
22
+ * @param minimumGap the smallest gap, in CSS pixels, that keeps two boxes apart.
23
+ * @returns one finding per pair, each saying whether an exemption excused it.
24
+ */
25
+ export declare const findTouchingBoxes: (snapshot: LayoutSnapshot, minimumGap: number) => readonly BoxFinding[];
26
+ //# sourceMappingURL=layout-boxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-boxes.d.ts","sourceRoot":"","sources":["../src/layout-boxes.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,UAAU,EAGf,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAA;AAE7B,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAA;CAC3C;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,cAAc,EAAE,QAAQ,UAAU,KAAG,SAAS,UAAU,EAS7F,CAAA;AAoLJ;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,YAAY,MAAM,KAAG,SAAS,UAAU,EAO/F,CAAA"}
@@ -0,0 +1,169 @@
1
+ // Boxed siblings that touch or overlap.
2
+ //
3
+ // A box a reader can see - a tinted notice, a bordered card, a button - needs space between it and its
4
+ // neighbour, or the two read as one broken shape. Two elements are compared when they are siblings
5
+ // once every wrapper that paints nothing has been looked through: `<p><a class="button">` beside a
6
+ // notice is the button beside the notice, because the paragraph around it draws nothing a reader sees.
7
+ import { ATTACHED_EXEMPTION, hasArea, hasBorderOn, hasPaintedBackground, hasPaintedBox, isInAriaHidden, } from './layout-snapshot.js';
8
+ // Out of flow: laid over the page rather than beside a sibling, so a gap between them means nothing.
9
+ const OUT_OF_FLOW = new Set(['absolute', 'fixed']);
10
+ const HIDDEN_VISIBILITY = new Set(['hidden', 'collapse']);
11
+ // A table lays its rows and cells against each other by definition, and draws its rules on them, so a
12
+ // cell touching the cell below it is the table rather than a defect. The table itself is compared with
13
+ // its own siblings, and the content of each cell with the rest of that cell.
14
+ const TABLE_PART = /^table-(?!caption$)/u;
15
+ const isTablePart = (node) => TABLE_PART.test(node.display);
16
+ const childrenOf = (snapshot, parent) => snapshot.nodes.filter((node) => node.parent === parent.index);
17
+ const hasOwnText = (node) => node.textRects.length > 0;
18
+ // A wrapper is looked through when a reader cannot see it: it draws nothing of its own and carries no
19
+ // text of its own. `display: contents` has no box at all and is always looked through.
20
+ const isTransparentWrapper = (snapshot, node) => node.display === 'contents' ||
21
+ (!(hasPaintedBox(snapshot, node) || hasOwnText(node)) && childrenOf(snapshot, node).length > 0);
22
+ const isComparable = (node) => !HIDDEN_VISIBILITY.has(node.visibility) && node.rects.some((rect) => hasArea(rect));
23
+ /**
24
+ * The elements laid out directly under a parent, after looking through wrappers that paint nothing.
25
+ * @param snapshot the measured page.
26
+ * @param parent the element whose children are compared.
27
+ * @returns the siblings, in document order.
28
+ */
29
+ export const layoutChildren = (snapshot, parent) => childrenOf(snapshot, parent).flatMap((child) => {
30
+ if (child.isAriaHidden || OUT_OF_FLOW.has(child.position) || isTablePart(child)) {
31
+ return [];
32
+ }
33
+ if (isTransparentWrapper(snapshot, child)) {
34
+ return layoutChildren(snapshot, child);
35
+ }
36
+ return isComparable(child) ? [child] : [];
37
+ });
38
+ // A group is formed under every element that is not itself looked through, so a flattened wrapper's
39
+ // children are compared once, in the group of the first ancestor that is not flattened.
40
+ const isGroupRoot = (snapshot, node) => {
41
+ const parent = snapshot.nodes[node.parent];
42
+ return (parent === undefined ||
43
+ OUT_OF_FLOW.has(node.position) ||
44
+ node.isAriaHidden ||
45
+ isTablePart(node) ||
46
+ !isTransparentWrapper(snapshot, node));
47
+ };
48
+ const separationOf = (first, second) => ({
49
+ horizontal: Math.max(second.left - first.right, first.left - second.right),
50
+ vertical: Math.max(second.top - first.bottom, first.top - second.bottom),
51
+ });
52
+ const gapOf = (separation) => Math.max(separation.horizontal, separation.vertical);
53
+ const isOverlapping = (separation) => separation.horizontal < 0 && separation.vertical < 0;
54
+ const areaRects = (rects) => rects.filter((rect) => hasArea(rect));
55
+ const separationsOf = (first, second) => areaRects(first).flatMap((left) => areaRects(second).map((right) => separationOf(left, right)));
56
+ const isDrawnChild = (child) => !(child.isAriaHidden || OUT_OF_FLOW.has(child.position) || HIDDEN_VISIBILITY.has(child.visibility));
57
+ // What an element shows a reader of its content: its own text and what each child shows, where a child
58
+ // that paints a box is seen whole. An element with no text and no children is a leaf such as an image, and
59
+ // is seen whole too. Padding around content is part of a box only when the box is drawn.
60
+ const contentRects = (snapshot, node) => {
61
+ const children = childrenOf(snapshot, node).filter((child) => isDrawnChild(child));
62
+ return children.length === 0 && !hasOwnText(node)
63
+ ? areaRects(node.rects)
64
+ : [
65
+ ...areaRects(node.textRects),
66
+ ...children.flatMap((child) => hasPaintedBox(snapshot, child) ? areaRects(child.rects) : contentRects(snapshot, child)),
67
+ ];
68
+ };
69
+ // The side of `node` that faces `other`, judged on their outer boxes: the axis with the larger gap is
70
+ // the one they are separated along.
71
+ const facingSide = (node, other) => {
72
+ const separation = separationOf(node, other);
73
+ if (separation.vertical >= separation.horizontal) {
74
+ return node.top < other.top ? 'bottom' : 'top';
75
+ }
76
+ return node.left < other.left ? 'right' : 'left';
77
+ };
78
+ const outerBox = (node) => {
79
+ const rects = node.rects.filter((rect) => hasArea(rect));
80
+ return {
81
+ left: Math.min(...rects.map((rect) => rect.left)),
82
+ top: Math.min(...rects.map((rect) => rect.top)),
83
+ right: Math.max(...rects.map((rect) => rect.right)),
84
+ bottom: Math.max(...rects.map((rect) => rect.bottom)),
85
+ };
86
+ };
87
+ // Boxed toward a neighbour: a background or a shadow is visible on every side, a border only on the
88
+ // side it is drawn. Overlapping boxes have no facing side, so anything painted counts.
89
+ const isBoxedToward = (snapshot, node, other, isOverlap) => isOverlap
90
+ ? hasPaintedBox(snapshot, node)
91
+ : hasPaintedBackground(snapshot, node) ||
92
+ node.boxShadow !== 'none' ||
93
+ hasBorderOn(node, facingSide(outerBox(node), outerBox(other)));
94
+ const isAttached = (node) => node.exemption === ATTACHED_EXEMPTION;
95
+ // Two bands that each span the full width of the page and sit one above the other are the page's
96
+ // sections - a header above a hero, the two tones of a footer - so their shared edge is the page's own
97
+ // structure. A gap between them would draw a stripe of the canvas across the page rather than separate
98
+ // two shapes. Boxes inside a column do not span the page, so a notice and a button stay judged.
99
+ const isFullWidth = (snapshot, node) => {
100
+ const page = snapshot.nodes.find((candidate) => candidate.parent < 0);
101
+ if (page === undefined || areaRects(page.rects).length === 0) {
102
+ return false;
103
+ }
104
+ const pageBox = outerBox(page);
105
+ const box = outerBox(node);
106
+ return box.left <= pageBox.left && box.right >= pageBox.right;
107
+ };
108
+ const isStackedBandPair = (snapshot, pair) => pair.every((node) => isFullWidth(snapshot, node));
109
+ const intersectionOf = (rect, bounds) => ({
110
+ left: Math.max(rect.left, bounds.left),
111
+ top: Math.max(rect.top, bounds.top),
112
+ right: Math.min(rect.right, bounds.right),
113
+ bottom: Math.min(rect.bottom, bounds.bottom),
114
+ });
115
+ // The content, kept inside the element's own box. A line of text reports the full height of its line box,
116
+ // which a tight `line-height` pushes past the element's edges into empty space above and below the glyphs,
117
+ // so content is never measured as reaching farther than the box it sits in: the measure can only shrink
118
+ // from the box's, never grow past it.
119
+ const visibleContentRects = (snapshot, node) => {
120
+ const bounds = outerBox(node);
121
+ return areaRects(contentRects(snapshot, node).map((rect) => intersectionOf(rect, bounds)));
122
+ };
123
+ // Each side is measured by what it shows the other: its box where it is drawn toward it, its content
124
+ // where it is not, so a heading's padding is not read as the heading touching the chips below it.
125
+ const measurePair = (snapshot, first, second) => {
126
+ const isBoxOverlap = separationsOf(first.rects, second.rects).some((separation) => isOverlapping(separation));
127
+ const isFirstBoxed = isBoxedToward(snapshot, first, second, isBoxOverlap);
128
+ const isSecondBoxed = isBoxedToward(snapshot, second, first, isBoxOverlap);
129
+ return {
130
+ separations: separationsOf(isFirstBoxed ? first.rects : visibleContentRects(snapshot, first), isSecondBoxed ? second.rects : visibleContentRects(snapshot, second)),
131
+ isBoxed: isFirstBoxed || isSecondBoxed,
132
+ };
133
+ };
134
+ const judgePair = (snapshot, pair, minimumGap) => {
135
+ const [first, second] = pair;
136
+ const { separations, isBoxed } = measurePair(snapshot, first, second);
137
+ const isOverlap = separations.some((separation) => isOverlapping(separation));
138
+ const gap = Math.min(...separations.map((separation) => gapOf(separation)));
139
+ const isClose = separations.length > 0 && (isOverlap || gap < minimumGap);
140
+ const isBand = !isOverlap && isStackedBandPair(snapshot, pair);
141
+ return isBoxed && isClose && !isBand
142
+ ? [
143
+ {
144
+ first,
145
+ second,
146
+ gap,
147
+ isOverlap,
148
+ exemptedBy: pair.filter((node) => isAttached(node)),
149
+ },
150
+ ]
151
+ : [];
152
+ };
153
+ // Two inline boxes sit in the same run of text, where line height rather than a gap separates them: a
154
+ // code span on one line and a link on the line above it touch exactly as two lines of text do.
155
+ const isInlinePair = (first, second) => first.display === 'inline' && second.display === 'inline';
156
+ const pairsOf = (siblings) => siblings.flatMap((first, index) => siblings
157
+ .slice(index + 1)
158
+ .filter((second) => !isInlinePair(first, second))
159
+ .map((second) => [first, second]));
160
+ /**
161
+ * Every pair of boxed siblings closer than the minimum gap, exempted or not.
162
+ * @param snapshot the measured page.
163
+ * @param minimumGap the smallest gap, in CSS pixels, that keeps two boxes apart.
164
+ * @returns one finding per pair, each saying whether an exemption excused it.
165
+ */
166
+ export const findTouchingBoxes = (snapshot, minimumGap) => snapshot.nodes
167
+ .filter((node) => isGroupRoot(snapshot, node) && !isInAriaHidden(snapshot, node))
168
+ .flatMap((parent) => pairsOf(layoutChildren(snapshot, parent)).flatMap((pair) => judgePair(snapshot, pair, minimumGap)));
169
+ //# sourceMappingURL=layout-boxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-boxes.js","sourceRoot":"","sources":["../src/layout-boxes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type LayoutSnapshot } from './layout-snapshot.js';
2
+ /** A viewport every scan runs at. */
3
+ export interface LayoutViewport {
4
+ readonly width: number;
5
+ readonly height: number;
6
+ }
7
+ /** The viewports the harness requires: a phone and a desktop. A project may add more, never remove. */
8
+ export declare const LAYOUT_VIEWPORTS: readonly LayoutViewport[];
9
+ /** The smallest gap, in CSS pixels, between a boxed element and its sibling. A project may raise it. */
10
+ export declare const LAYOUT_MINIMUM_GAP: number;
11
+ /** The attribute a project writes on an element whose edge is shared on purpose. */
12
+ export declare const LAYOUT_EXEMPTION_ATTRIBUTE: string;
13
+ /** The attribute carrying the reason for that exemption. */
14
+ export declare const LAYOUT_REASON_ATTRIBUTE: string;
15
+ /**
16
+ * Every layout defect on one page, across the viewports it was measured at.
17
+ * @param snapshots the same page measured at each required viewport.
18
+ * @param minimumGap the smallest gap, in CSS pixels, between a boxed element and its sibling.
19
+ * @returns one line per defect, without duplicates, in the order the viewports were measured.
20
+ */
21
+ export declare const findLayoutDefects: (snapshots: readonly LayoutSnapshot[], minimumGap: number) => readonly string[];
22
+ /**
23
+ * The viewports a scan must run at: the harness's own, then any a project adds.
24
+ * @param declared the viewports a project declared.
25
+ * @returns the required viewports first, each width once.
26
+ */
27
+ export declare const layoutViewportsWith: (declared: readonly LayoutViewport[]) => readonly LayoutViewport[];
28
+ //# sourceMappingURL=layout-defects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-defects.d.ts","sourceRoot":"","sources":["../src/layout-defects.ts"],"names":[],"mappings":"AAOA,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAStG,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,uGAAuG;AACvG,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAGrD,CAAA;AAED,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,EAAE,MAAU,CAAA;AAE3C,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,EAAE,MAA+B,CAAA;AAExE,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,EAAE,MAAsC,CAAA;AA6G5E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,cAAc,EAAE,EAAE,YAAY,MAAM,KAAG,SAAS,MAAM,EAQ3G,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,cAAc,EAAE,KAAG,SAAS,cAAc,EAM9F,CAAA"}
@@ -0,0 +1,114 @@
1
+ // The layout sweep's verdict on one page, measured at every viewport the harness requires.
2
+ //
3
+ // Each defect is one line naming the route, the viewport, the rule, and the elements, so a failure says
4
+ // where to look without a screenshot. Exemptions are judged across all the viewports of a page at once:
5
+ // an edge attached at a phone width and apart at a desktop one is the ordinary shape of a responsive
6
+ // layout, so an exemption is stale only when it excuses nothing at any of them.
7
+ import { findTouchingBoxes } from './layout-boxes.js';
8
+ import { ATTACHED_EXEMPTION, keyOf } from './layout-snapshot.js';
9
+ import { findClippedText, findOverflowingElements, findOverlappingText, } from './layout-text.js';
10
+ /** The viewports the harness requires: a phone and a desktop. A project may add more, never remove. */
11
+ export const LAYOUT_VIEWPORTS = [
12
+ { width: 390, height: 844 },
13
+ { width: 1280, height: 800 },
14
+ ];
15
+ /** The smallest gap, in CSS pixels, between a boxed element and its sibling. A project may raise it. */
16
+ export const LAYOUT_MINIMUM_GAP = 4;
17
+ /** The attribute a project writes on an element whose edge is shared on purpose. */
18
+ export const LAYOUT_EXEMPTION_ATTRIBUTE = 'data-ploaness-layout';
19
+ /** The attribute carrying the reason for that exemption. */
20
+ export const LAYOUT_REASON_ATTRIBUTE = 'data-ploaness-layout-reason';
21
+ const PAIR_SEPARATOR = ' <-> ';
22
+ const where = (snapshot) => `${snapshot.route} @${String(snapshot.viewportWidth)}px`;
23
+ const boxLine = (snapshot, finding) => {
24
+ const kind = finding.isOverlap
25
+ ? 'overlapping boxes'
26
+ : `touching boxes (gap ${String(Math.max(0, finding.gap))}px)`;
27
+ return `${where(snapshot)}: ${kind}: ${finding.first.label}${PAIR_SEPARATOR}${finding.second.label}`;
28
+ };
29
+ const textLine = (snapshot, finding) => `${where(snapshot)}: overlapping text: ${finding.first.label}${PAIR_SEPARATOR}${finding.second.label}`;
30
+ const clipLine = (snapshot, finding) => {
31
+ const node = finding.node;
32
+ const kind = finding.isUnnamedTruncation
33
+ ? 'truncated text without its full text in title or aria-label'
34
+ : `clipped text (content ${String(node.scrollWidth)}x${String(node.scrollHeight)}px in a ` +
35
+ `${String(node.clientWidth)}x${String(node.clientHeight)}px box)`;
36
+ return `${where(snapshot)}: ${kind}: ${node.label}`;
37
+ };
38
+ const overflowLines = (snapshot) => {
39
+ if (snapshot.scrollWidth <= snapshot.viewportWidth) {
40
+ return [];
41
+ }
42
+ const prefix = `${where(snapshot)}: horizontal overflow (page ${String(snapshot.scrollWidth)}px wide ` +
43
+ `in a ${String(snapshot.viewportWidth)}px viewport)`;
44
+ const culprits = findOverflowingElements(snapshot);
45
+ return culprits.length === 0
46
+ ? [`${prefix}: document`]
47
+ : culprits.map((node) => `${prefix}: ${node.label}`);
48
+ };
49
+ const isExempted = (finding) => finding.exemptedBy.length > 0;
50
+ const snapshotLines = (snapshot, minimumGap) => [
51
+ ...findTouchingBoxes(snapshot, minimumGap)
52
+ .filter((finding) => !isExempted(finding))
53
+ .map((finding) => boxLine(snapshot, finding)),
54
+ ...findOverlappingText(snapshot).map((finding) => textLine(snapshot, finding)),
55
+ ...findClippedText(snapshot).map((finding) => clipLine(snapshot, finding)),
56
+ ...overflowLines(snapshot),
57
+ ];
58
+ const exemptionLines = (snapshot) => snapshot.nodes.flatMap((node) => {
59
+ if (node.exemption === undefined) {
60
+ return [];
61
+ }
62
+ if (node.exemption !== ATTACHED_EXEMPTION) {
63
+ return [
64
+ `${where(snapshot)}: unknown layout exemption ${LAYOUT_EXEMPTION_ATTRIBUTE}=` +
65
+ `"${node.exemption}" on ${node.label}; the only value is "${ATTACHED_EXEMPTION}"`,
66
+ ];
67
+ }
68
+ return node.exemptionReason.length === 0
69
+ ? [
70
+ `${where(snapshot)}: layout exemption without a reason on ${node.label}; ` +
71
+ `state it in ${LAYOUT_REASON_ATTRIBUTE}`,
72
+ ]
73
+ : [];
74
+ });
75
+ const usedExemptionKeys = (snapshots, minimumGap) => new Set(snapshots.flatMap((snapshot) => findTouchingBoxes(snapshot, minimumGap).flatMap((finding) => finding.exemptedBy.map((node) => keyOf(snapshot, node)))));
76
+ const attachedExemptions = (snapshots) => {
77
+ const all = snapshots.flatMap((snapshot) => snapshot.nodes
78
+ .filter((node) => node.exemption === ATTACHED_EXEMPTION)
79
+ .map((node) => ({ key: keyOf(snapshot, node), label: node.label })));
80
+ return all.filter((exemption, index) => all.findIndex((other) => other.key === exemption.key) === index);
81
+ };
82
+ const staleLines = (snapshots, minimumGap) => {
83
+ const used = usedExemptionKeys(snapshots, minimumGap);
84
+ const widths = snapshots
85
+ .map((snapshot) => `${String(snapshot.viewportWidth)}px`)
86
+ .join(', ');
87
+ const route = snapshots[0]?.route ?? '';
88
+ return attachedExemptions(snapshots)
89
+ .filter((exemption) => !used.has(exemption.key))
90
+ .map((exemption) => `${route}: stale layout exemption on ${exemption.label}: it excuses no touching or ` +
91
+ `overlapping box at ${widths}; remove ${LAYOUT_EXEMPTION_ATTRIBUTE}`);
92
+ };
93
+ /**
94
+ * Every layout defect on one page, across the viewports it was measured at.
95
+ * @param snapshots the same page measured at each required viewport.
96
+ * @param minimumGap the smallest gap, in CSS pixels, between a boxed element and its sibling.
97
+ * @returns one line per defect, without duplicates, in the order the viewports were measured.
98
+ */
99
+ export const findLayoutDefects = (snapshots, minimumGap) => [
100
+ ...new Set([
101
+ ...snapshots.flatMap((snapshot) => [
102
+ ...snapshotLines(snapshot, minimumGap),
103
+ ...exemptionLines(snapshot),
104
+ ]),
105
+ ...staleLines(snapshots, minimumGap),
106
+ ]),
107
+ ];
108
+ /**
109
+ * The viewports a scan must run at: the harness's own, then any a project adds.
110
+ * @param declared the viewports a project declared.
111
+ * @returns the required viewports first, each width once.
112
+ */
113
+ export const layoutViewportsWith = (declared) => [...LAYOUT_VIEWPORTS, ...declared].filter((viewport, index, all) => all.findIndex((other) => other.width === viewport.width && other.height === viewport.height) === index);
114
+ //# sourceMappingURL=layout-defects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-defects.js","sourceRoot":"","sources":["../src/layout-defects.ts"],"names":[],"mappings":"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"}