@ploaness/governance 1.11.0 → 1.13.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 (109) hide show
  1. package/dist/a11y-focus-guard.d.ts +18 -0
  2. package/dist/a11y-focus-guard.d.ts.map +1 -0
  3. package/dist/a11y-focus-guard.js +17 -0
  4. package/dist/a11y-focus-guard.js.map +1 -0
  5. package/dist/a11y-hit-target.d.ts +7 -1
  6. package/dist/a11y-hit-target.d.ts.map +1 -1
  7. package/dist/a11y-hit-target.js +11 -0
  8. package/dist/a11y-hit-target.js.map +1 -1
  9. package/dist/asset-policy.d.ts +8 -4
  10. package/dist/asset-policy.d.ts.map +1 -1
  11. package/dist/asset-policy.js +28 -19
  12. package/dist/asset-policy.js.map +1 -1
  13. package/dist/browser-discovery.d.ts +116 -0
  14. package/dist/browser-discovery.d.ts.map +1 -0
  15. package/dist/browser-discovery.js +161 -0
  16. package/dist/browser-discovery.js.map +1 -0
  17. package/dist/browser-exemptions.d.ts +107 -0
  18. package/dist/browser-exemptions.d.ts.map +1 -0
  19. package/dist/browser-exemptions.js +163 -0
  20. package/dist/browser-exemptions.js.map +1 -0
  21. package/dist/browser-findings.d.ts +54 -0
  22. package/dist/browser-findings.d.ts.map +1 -0
  23. package/dist/browser-findings.js +52 -0
  24. package/dist/browser-findings.js.map +1 -0
  25. package/dist/browser-health.d.ts +45 -0
  26. package/dist/browser-health.d.ts.map +1 -0
  27. package/dist/browser-health.js +80 -0
  28. package/dist/browser-health.js.map +1 -0
  29. package/dist/browser-rules.d.ts +169 -0
  30. package/dist/browser-rules.d.ts.map +1 -0
  31. package/dist/browser-rules.js +345 -0
  32. package/dist/browser-rules.js.map +1 -0
  33. package/dist/browser-run.d.ts +110 -0
  34. package/dist/browser-run.d.ts.map +1 -0
  35. package/dist/browser-run.js +125 -0
  36. package/dist/browser-run.js.map +1 -0
  37. package/dist/browser-viewports.d.ts +77 -0
  38. package/dist/browser-viewports.d.ts.map +1 -0
  39. package/dist/browser-viewports.js +139 -0
  40. package/dist/browser-viewports.js.map +1 -0
  41. package/dist/change-scope.d.ts +158 -0
  42. package/dist/change-scope.d.ts.map +1 -0
  43. package/dist/change-scope.js +340 -0
  44. package/dist/change-scope.js.map +1 -0
  45. package/dist/cloudfront-functions.d.ts +34 -0
  46. package/dist/cloudfront-functions.d.ts.map +1 -0
  47. package/dist/cloudfront-functions.js +124 -0
  48. package/dist/cloudfront-functions.js.map +1 -0
  49. package/dist/generated-denial.d.ts +4 -1
  50. package/dist/generated-denial.d.ts.map +1 -1
  51. package/dist/generated-denial.js +10 -3
  52. package/dist/generated-denial.js.map +1 -1
  53. package/dist/index.d.ts +12 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +12 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/javascript-runtimes.d.ts +36 -0
  58. package/dist/javascript-runtimes.d.ts.map +1 -0
  59. package/dist/javascript-runtimes.js +40 -0
  60. package/dist/javascript-runtimes.js.map +1 -0
  61. package/dist/jsx-accessibility-scope.d.ts.map +1 -1
  62. package/dist/jsx-accessibility-scope.js +3 -0
  63. package/dist/jsx-accessibility-scope.js.map +1 -1
  64. package/dist/layout-boxes.d.ts.map +1 -1
  65. package/dist/layout-boxes.js +12 -14
  66. package/dist/layout-boxes.js.map +1 -1
  67. package/dist/layout-clip.d.ts +24 -0
  68. package/dist/layout-clip.d.ts.map +1 -0
  69. package/dist/layout-clip.js +82 -0
  70. package/dist/layout-clip.js.map +1 -0
  71. package/dist/layout-defects.d.ts +47 -4
  72. package/dist/layout-defects.d.ts.map +1 -1
  73. package/dist/layout-defects.js +94 -76
  74. package/dist/layout-defects.js.map +1 -1
  75. package/dist/layout-snapshot.d.ts +60 -2
  76. package/dist/layout-snapshot.d.ts.map +1 -1
  77. package/dist/layout-snapshot.js +65 -1
  78. package/dist/layout-snapshot.js.map +1 -1
  79. package/dist/layout-text.d.ts +4 -1
  80. package/dist/layout-text.d.ts.map +1 -1
  81. package/dist/layout-text.js +56 -7
  82. package/dist/layout-text.js.map +1 -1
  83. package/dist/route-map.d.ts +13 -0
  84. package/dist/route-map.d.ts.map +1 -1
  85. package/dist/route-map.js +13 -6
  86. package/dist/route-map.js.map +1 -1
  87. package/dist/run-plan.d.ts +27 -3
  88. package/dist/run-plan.d.ts.map +1 -1
  89. package/dist/run-plan.js +20 -3
  90. package/dist/run-plan.js.map +1 -1
  91. package/dist/settings-layering.d.ts.map +1 -1
  92. package/dist/settings-layering.js +6 -4
  93. package/dist/settings-layering.js.map +1 -1
  94. package/dist/settings.d.ts +32 -0
  95. package/dist/settings.d.ts.map +1 -1
  96. package/dist/settings.js +51 -12
  97. package/dist/settings.js.map +1 -1
  98. package/dist/terraform-blocks.d.ts +13 -0
  99. package/dist/terraform-blocks.d.ts.map +1 -0
  100. package/dist/terraform-blocks.js +27 -0
  101. package/dist/terraform-blocks.js.map +1 -0
  102. package/dist/terraform-policy.d.ts.map +1 -1
  103. package/dist/terraform-policy.js +3 -14
  104. package/dist/terraform-policy.js.map +1 -1
  105. package/dist/wiring-policy.d.ts +5 -2
  106. package/dist/wiring-policy.d.ts.map +1 -1
  107. package/dist/wiring-policy.js +16 -6
  108. package/dist/wiring-policy.js.map +1 -1
  109. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './a11y-focus-guard.js';
1
2
  export * from './a11y-hit-target.js';
2
3
  export * from './a11y-incomplete.js';
3
4
  export * from './access-boundary.js';
@@ -10,11 +11,20 @@ export * from './banned-typography.js';
10
11
  export * from './biome-selection.js';
11
12
  export * from './blocklist.js';
12
13
  export * from './blocklist-entries.js';
14
+ export * from './browser-discovery.js';
15
+ export * from './browser-exemptions.js';
16
+ export * from './browser-findings.js';
17
+ export * from './browser-health.js';
18
+ export * from './browser-rules.js';
19
+ export * from './browser-run.js';
13
20
  export * from './browser-server-policy.js';
21
+ export * from './browser-viewports.js';
14
22
  export * from './build-diagnosis.js';
15
23
  export * from './bundle-budget.js';
24
+ export * from './change-scope.js';
16
25
  export * from './checkov-check.js';
17
26
  export * from './checkov-policy.js';
27
+ export * from './cloudfront-functions.js';
18
28
  export * from './commit-message.js';
19
29
  export * from './compliance-report.js';
20
30
  export * from './compliance-report-assets.js';
@@ -41,6 +51,7 @@ export * from './harness-package.js';
41
51
  export * from './history-policy.js';
42
52
  export * from './image-assets.js';
43
53
  export * from './install-policy.js';
54
+ export * from './javascript-runtimes.js';
44
55
  export * from './json-shapes.js';
45
56
  export * from './jsx-accessibility.js';
46
57
  export * from './jsx-accessibility-scope.js';
@@ -86,6 +97,7 @@ export * from './source-selection.js';
86
97
  export * from './source-text.js';
87
98
  export * from './suppression-ceiling.js';
88
99
  export * from './tailwind-tokens.js';
100
+ export * from './terraform-blocks.js';
89
101
  export * from './terraform-files.js';
90
102
  export * from './terraform-policy.js';
91
103
  export * from './terraform-providers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // process, and network access. Every gate in the CLI is a thin I/O shell around a function exported
3
3
  // here. The split is what makes the rules cheap to test exhaustively: a pure function over strings
4
4
  // needs no fixture repository to exercise its edge cases.
5
+ export * from './a11y-focus-guard.js';
5
6
  export * from './a11y-hit-target.js';
6
7
  export * from './a11y-incomplete.js';
7
8
  export * from './access-boundary.js';
@@ -14,11 +15,20 @@ export * from './banned-typography.js';
14
15
  export * from './biome-selection.js';
15
16
  export * from './blocklist.js';
16
17
  export * from './blocklist-entries.js';
18
+ export * from './browser-discovery.js';
19
+ export * from './browser-exemptions.js';
20
+ export * from './browser-findings.js';
21
+ export * from './browser-health.js';
22
+ export * from './browser-rules.js';
23
+ export * from './browser-run.js';
17
24
  export * from './browser-server-policy.js';
25
+ export * from './browser-viewports.js';
18
26
  export * from './build-diagnosis.js';
19
27
  export * from './bundle-budget.js';
28
+ export * from './change-scope.js';
20
29
  export * from './checkov-check.js';
21
30
  export * from './checkov-policy.js';
31
+ export * from './cloudfront-functions.js';
22
32
  export * from './commit-message.js';
23
33
  export * from './compliance-report.js';
24
34
  export * from './compliance-report-assets.js';
@@ -45,6 +55,7 @@ export * from './harness-package.js';
45
55
  export * from './history-policy.js';
46
56
  export * from './image-assets.js';
47
57
  export * from './install-policy.js';
58
+ export * from './javascript-runtimes.js';
48
59
  export * from './json-shapes.js';
49
60
  export * from './jsx-accessibility.js';
50
61
  export * from './jsx-accessibility-scope.js';
@@ -90,6 +101,7 @@ export * from './source-selection.js';
90
101
  export * from './source-text.js';
91
102
  export * from './suppression-ceiling.js';
92
103
  export * from './tailwind-tokens.js';
104
+ export * from './terraform-blocks.js';
93
105
  export * from './terraform-files.js';
94
106
  export * from './terraform-policy.js';
95
107
  export * from './terraform-providers.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type RolePattern } from './file-roles.js';
2
+ /** The engines an allowlisted file may declare, in the order a finding lists them. */
3
+ export declare const JAVASCRIPT_RUNTIMES: readonly ['node', 'cloudfront-js-2.0'];
4
+ /** One engine an allowlisted file runs in. */
5
+ export type JavascriptRuntime = (typeof JAVASCRIPT_RUNTIMES)[number];
6
+ /** The runtime of CloudFront Functions, named once for the lint block and the infrastructure check. */
7
+ export declare const CLOUDFRONT_RUNTIME: JavascriptRuntime;
8
+ /** An allowlist role together with the engine its files run in. */
9
+ export interface RuntimeRole {
10
+ readonly role: RolePattern;
11
+ readonly runtime: JavascriptRuntime;
12
+ }
13
+ /**
14
+ * Decide whether a declared value names an engine this harness lints for.
15
+ * @param value the `runtime` an allowlist entry declared.
16
+ * @returns true for a known runtime.
17
+ */
18
+ export declare const isJavascriptRuntime: (value: unknown) => value is JavascriptRuntime;
19
+ /**
20
+ * The roles whose files run in one engine.
21
+ * @param roles every allowlist role with its runtime.
22
+ * @param runtime the engine to select.
23
+ * @returns the role patterns declaring that engine.
24
+ */
25
+ export declare const rolesFor: (roles: readonly RuntimeRole[], runtime: JavascriptRuntime) => readonly RolePattern[];
26
+ /**
27
+ * Every engine the entries matching a file declare for it.
28
+ *
29
+ * More than one means two entries disagree about the same file, which a caller must treat as a defect
30
+ * rather than pick between.
31
+ * @param file the repo-relative path.
32
+ * @param roles every allowlist role with its runtime.
33
+ * @returns each declared runtime once, in catalogue order.
34
+ */
35
+ export declare const runtimesOf: (file: string, roles: readonly RuntimeRole[]) => readonly JavascriptRuntime[];
36
+ //# sourceMappingURL=javascript-runtimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-runtimes.d.ts","sourceRoot":"","sources":["../src/javascript-runtimes.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE/D,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAiC,CAAA;AAExG,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpE,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,EAAE,iBAAuC,CAAA;AAExE,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CACpC;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAAmD,CAAA;AAKjH;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,WAAW,EAAE,EAAE,SAAS,iBAAiB,KAAG,SAAS,WAAW,EAGhD,CAAA;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,OAAO,SAAS,WAAW,EAAE,KAAG,SAAS,iBAAiB,EACe,CAAA"}
@@ -0,0 +1,40 @@
1
+ // The engine each allowlisted JavaScript file runs in, as its allowlist entry declares it.
2
+ //
3
+ // A file admitted by `javascriptAllowlist` is not necessarily a Node.js program. A CloudFront Function is
4
+ // loaded by OpenTofu as written and run by AWS's own engine, which rejects syntax Node.js accepts, so the
5
+ // lint rules and the infrastructure check both need the engine. Nothing in the file says which one it is,
6
+ // so the entry has to: there is no default, because a silent Node.js default is how such a file passes
7
+ // every gate and then fails every request.
8
+ import { matchesRole } from './file-roles.js';
9
+ /** The engines an allowlisted file may declare, in the order a finding lists them. */
10
+ export const JAVASCRIPT_RUNTIMES = ['node', 'cloudfront-js-2.0'];
11
+ /** The runtime of CloudFront Functions, named once for the lint block and the infrastructure check. */
12
+ export const CLOUDFRONT_RUNTIME = 'cloudfront-js-2.0';
13
+ /**
14
+ * Decide whether a declared value names an engine this harness lints for.
15
+ * @param value the `runtime` an allowlist entry declared.
16
+ * @returns true for a known runtime.
17
+ */
18
+ export const isJavascriptRuntime = (value) => RUNTIME_VALUES.includes(value);
19
+ // Widened, so a value of any type can be looked up without asserting it is a runtime first.
20
+ const RUNTIME_VALUES = JAVASCRIPT_RUNTIMES;
21
+ /**
22
+ * The roles whose files run in one engine.
23
+ * @param roles every allowlist role with its runtime.
24
+ * @param runtime the engine to select.
25
+ * @returns the role patterns declaring that engine.
26
+ */
27
+ export const rolesFor = (roles, runtime) => roles
28
+ .filter((entry) => entry.runtime === runtime)
29
+ .map((entry) => entry.role);
30
+ /**
31
+ * Every engine the entries matching a file declare for it.
32
+ *
33
+ * More than one means two entries disagree about the same file, which a caller must treat as a defect
34
+ * rather than pick between.
35
+ * @param file the repo-relative path.
36
+ * @param roles every allowlist role with its runtime.
37
+ * @returns each declared runtime once, in catalogue order.
38
+ */
39
+ export const runtimesOf = (file, roles) => JAVASCRIPT_RUNTIMES.filter((runtime) => matchesRole(file, rolesFor(roles, runtime)));
40
+ //# sourceMappingURL=javascript-runtimes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-runtimes.js","sourceRoot":"","sources":["../src/javascript-runtimes.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,0GAA0G;AAC1G,0GAA0G;AAC1G,0GAA0G;AAC1G,uGAAuG;AACvG,2CAA2C;AAC3C,OAAO,EAAE,WAAW,EAAoB,MAAM,iBAAiB,CAAA;AAE/D,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAA2C,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;AAKxG,uGAAuG;AACvG,MAAM,CAAC,MAAM,kBAAkB,GAAsB,mBAAmB,CAAA;AAQxE;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAA8B,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEjH,4FAA4F;AAC5F,MAAM,cAAc,GAAuB,mBAAmB,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAA6B,EAAE,OAA0B,EAA0B,EAAE,CAC5G,KAAK;KACF,MAAM,CAAC,CAAC,KAAkB,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;KAClE,GAAG,CAAC,CAAC,KAAkB,EAAe,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAA6B,EAAgC,EAAE,CACtG,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAA0B,EAAW,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA"}
@@ -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,EAMjB,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,EASpD,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"}
@@ -9,6 +9,9 @@ export const APPLICATION_JSX_IGNORES = [
9
9
  'coverage/**',
10
10
  'pgadmin/**',
11
11
  '.*/**',
12
+ // What the browser gates write: the HTML report bundles its trace viewer as JavaScript.
13
+ 'playwright-report/**',
14
+ 'test-results/**',
12
15
  ];
13
16
  /** Biome overrides apply only where the application's native JSX analyzer takes responsibility. */
14
17
  export const jsxAnalysisPatterns = () => [
@@ -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,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
+ {"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;IACP,wFAAwF;IACxF,sBAAsB;IACtB,iBAAiB;CAClB,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":"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"}
1
+ {"version":3,"file":"layout-boxes.d.ts","sourceRoot":"","sources":["../src/layout-boxes.ts"],"names":[],"mappings":"AASA,OAAO,EAQL,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;AAsLJ;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,YAAY,MAAM,KAAG,SAAS,UAAU,EAO/F,CAAA"}
@@ -4,7 +4,9 @@
4
4
  // neighbour, or the two read as one broken shape. Two elements are compared when they are siblings
5
5
  // once every wrapper that paints nothing has been looked through: `<p><a class="button">` beside a
6
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';
7
+ import { exemptionRules } from './browser-exemptions.js';
8
+ import { intersectionOf, visibleRectsOf } from './layout-clip.js';
9
+ import { ATTACHED_EXEMPTION, hasArea, hasBorderOn, hasPaintedBackground, hasPaintedBox, isInAriaHidden, isInTurn, } from './layout-snapshot.js';
8
10
  // Out of flow: laid over the page rather than beside a sibling, so a gap between them means nothing.
9
11
  const OUT_OF_FLOW = new Set(['absolute', 'fixed']);
10
12
  const HIDDEN_VISIBILITY = new Set(['hidden', 'collapse']);
@@ -91,7 +93,7 @@ const isBoxedToward = (snapshot, node, other, isOverlap) => isOverlap
91
93
  : hasPaintedBackground(snapshot, node) ||
92
94
  node.boxShadow !== 'none' ||
93
95
  hasBorderOn(node, facingSide(outerBox(node), outerBox(other)));
94
- const isAttached = (node) => node.exemption === ATTACHED_EXEMPTION;
96
+ const isAttached = (node) => exemptionRules(node.exemption).includes(ATTACHED_EXEMPTION);
95
97
  // Two bands that each span the full width of the page and sit one above the other are the page's
96
98
  // sections - a header above a hero, the two tones of a footer - so their shared edge is the page's own
97
99
  // structure. A gap between them would draw a stripe of the canvas across the page rather than separate
@@ -106,12 +108,6 @@ const isFullWidth = (snapshot, node) => {
106
108
  return box.left <= pageBox.left && box.right >= pageBox.right;
107
109
  };
108
110
  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
111
  // The content, kept inside the element's own box. A line of text reports the full height of its line box,
116
112
  // which a tight `line-height` pushes past the element's edges into empty space above and below the glyphs,
117
113
  // so content is never measured as reaching farther than the box it sits in: the measure can only shrink
@@ -121,13 +117,14 @@ const visibleContentRects = (snapshot, node) => {
121
117
  return areaRects(contentRects(snapshot, node).map((rect) => intersectionOf(rect, bounds)));
122
118
  };
123
119
  // 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.
120
+ // where it is not, so a heading's padding is not read as the heading touching the chips below it. Either
121
+ // measure is cut by the ancestors that clip it, so content scrolled out of sight touches nothing.
125
122
  const measurePair = (snapshot, first, second) => {
126
- const isBoxOverlap = separationsOf(first.rects, second.rects).some((separation) => isOverlapping(separation));
123
+ const isBoxOverlap = separationsOf(visibleRectsOf(snapshot, first, first.rects), visibleRectsOf(snapshot, second, second.rects)).some((separation) => isOverlapping(separation));
127
124
  const isFirstBoxed = isBoxedToward(snapshot, first, second, isBoxOverlap);
128
125
  const isSecondBoxed = isBoxedToward(snapshot, second, first, isBoxOverlap);
129
126
  return {
130
- separations: separationsOf(isFirstBoxed ? first.rects : visibleContentRects(snapshot, first), isSecondBoxed ? second.rects : visibleContentRects(snapshot, second)),
127
+ separations: separationsOf(visibleRectsOf(snapshot, first, isFirstBoxed ? first.rects : visibleContentRects(snapshot, first)), visibleRectsOf(snapshot, second, isSecondBoxed ? second.rects : visibleContentRects(snapshot, second))),
131
128
  isBoxed: isFirstBoxed || isSecondBoxed,
132
129
  };
133
130
  };
@@ -153,9 +150,10 @@ const judgePair = (snapshot, pair, minimumGap) => {
153
150
  // Two inline boxes sit in the same run of text, where line height rather than a gap separates them: a
154
151
  // code span on one line and a link on the line above it touch exactly as two lines of text do.
155
152
  const isInlinePair = (first, second) => first.display === 'inline' && second.display === 'inline';
156
- const pairsOf = (siblings) => siblings.flatMap((first, index) => siblings
153
+ // A rotated or skewed box reports the upright rectangle around it, so its gap to a sibling is not measured.
154
+ const pairsOf = (snapshot, siblings) => siblings.flatMap((first, index) => siblings
157
155
  .slice(index + 1)
158
- .filter((second) => !isInlinePair(first, second))
156
+ .filter((second) => !(isInlinePair(first, second) || isInTurn(snapshot, first) || isInTurn(snapshot, second)))
159
157
  .map((second) => [first, second]));
160
158
  /**
161
159
  * Every pair of boxed siblings closer than the minimum gap, exempted or not.
@@ -165,5 +163,5 @@ const pairsOf = (siblings) => siblings.flatMap((first, index) => siblings
165
163
  */
166
164
  export const findTouchingBoxes = (snapshot, minimumGap) => snapshot.nodes
167
165
  .filter((node) => isGroupRoot(snapshot, node) && !isInAriaHidden(snapshot, node))
168
- .flatMap((parent) => pairsOf(layoutChildren(snapshot, parent)).flatMap((pair) => judgePair(snapshot, pair, minimumGap)));
166
+ .flatMap((parent) => pairsOf(snapshot, layoutChildren(snapshot, parent)).flatMap((pair) => judgePair(snapshot, pair, minimumGap)));
169
167
  //# sourceMappingURL=layout-boxes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-boxes.js","sourceRoot":"","sources":["../src/layout-boxes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-boxes.js","sourceRoot":"","sources":["../src/layout-boxes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type LayoutNode, type LayoutRect, type LayoutSnapshot } from './layout-snapshot.js';
2
+ /**
3
+ * The rectangle two rectangles share; a side crossing its opposite means they share nothing.
4
+ * @param first one rectangle.
5
+ * @param second the other.
6
+ * @returns the shared rectangle, with no area when they are apart.
7
+ */
8
+ export declare const intersectionOf: (first: LayoutRect, second: LayoutRect) => LayoutRect;
9
+ /**
10
+ * The rectangle around every box of an element that has area.
11
+ * @param node the element.
12
+ * @returns the rectangle, or undefined when no box has area.
13
+ */
14
+ export declare const outerBoxOf: (node: LayoutNode) => LayoutRect | undefined;
15
+ /**
16
+ * Rectangles drawn by an element, cut by every ancestor that clips it. A scroll container's overflow is
17
+ * out of sight until it is scrolled, so what lies past its edge touches and collides with nothing.
18
+ * @param snapshot the measured page.
19
+ * @param node the element the rectangles belong to.
20
+ * @param rects its rectangles: its boxes, its line boxes, or what its content shows.
21
+ * @returns the visible part of each rectangle that keeps any area.
22
+ */
23
+ export declare const visibleRectsOf: (snapshot: LayoutSnapshot, node: LayoutNode, rects: readonly LayoutRect[]) => readonly LayoutRect[];
24
+ //# sourceMappingURL=layout-clip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-clip.d.ts","sourceRoot":"","sources":["../src/layout-clip.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErG;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,UAAU,EAAE,QAAQ,UAAU,KAAG,UAKrE,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,UAAU,KAAG,UAAU,GAAG,SAU1D,CAAA;AA+CD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,cAAc,EACxB,MAAM,UAAU,EAChB,OAAO,SAAS,UAAU,EAAE,KAC3B,SAAS,UAAU,EAQrB,CAAA"}
@@ -0,0 +1,82 @@
1
+ // What of an element's boxes a reader can see once every ancestor that clips them has cut them.
2
+ import { hasArea } from './layout-snapshot.js';
3
+ /**
4
+ * The rectangle two rectangles share; a side crossing its opposite means they share nothing.
5
+ * @param first one rectangle.
6
+ * @param second the other.
7
+ * @returns the shared rectangle, with no area when they are apart.
8
+ */
9
+ export const intersectionOf = (first, second) => ({
10
+ left: Math.max(first.left, second.left),
11
+ top: Math.max(first.top, second.top),
12
+ right: Math.min(first.right, second.right),
13
+ bottom: Math.min(first.bottom, second.bottom),
14
+ });
15
+ /**
16
+ * The rectangle around every box of an element that has area.
17
+ * @param node the element.
18
+ * @returns the rectangle, or undefined when no box has area.
19
+ */
20
+ export const outerBoxOf = (node) => {
21
+ const rects = node.rects.filter((rect) => hasArea(rect));
22
+ return rects.length === 0
23
+ ? undefined
24
+ : {
25
+ left: Math.min(...rects.map((rect) => rect.left)),
26
+ top: Math.min(...rects.map((rect) => rect.top)),
27
+ right: Math.max(...rects.map((rect) => rect.right)),
28
+ bottom: Math.max(...rects.map((rect) => rect.bottom)),
29
+ };
30
+ };
31
+ const STATIC = 'static';
32
+ // An ancestor whose overflow is not visible clips along that axis, inside its borders. Unbounded sides
33
+ // stay unbounded, so a clip on one axis leaves the other alone.
34
+ const clipOf = (node) => {
35
+ const box = outerBoxOf(node);
36
+ const isClippingX = node.overflowX !== 'visible';
37
+ const isClippingY = node.overflowY !== 'visible';
38
+ if (box === undefined || !(isClippingX || isClippingY)) {
39
+ return undefined;
40
+ }
41
+ return {
42
+ left: isClippingX ? box.left + node.borders.left.width : Number.NEGATIVE_INFINITY,
43
+ right: isClippingX ? box.right - node.borders.right.width : Number.POSITIVE_INFINITY,
44
+ top: isClippingY ? box.top + node.borders.top.width : Number.NEGATIVE_INFINITY,
45
+ bottom: isClippingY ? box.bottom - node.borders.bottom.width : Number.POSITIVE_INFINITY,
46
+ };
47
+ };
48
+ const reachPast = (ancestor, reach) => {
49
+ if (ancestor.position === 'fixed') {
50
+ return 'none';
51
+ }
52
+ if (ancestor.position === 'absolute') {
53
+ return 'positioned';
54
+ }
55
+ if (reach === 'positioned') {
56
+ return ancestor.position === STATIC ? 'positioned' : 'all';
57
+ }
58
+ return reach;
59
+ };
60
+ const clipsAbove = (snapshot, node, reach) => {
61
+ const parent = snapshot.nodes[node.parent];
62
+ if (parent === undefined || reach === 'none') {
63
+ return [];
64
+ }
65
+ const clip = reach === 'all' || parent.position !== STATIC ? clipOf(parent) : undefined;
66
+ return [...(clip === undefined ? [] : [clip]), ...clipsAbove(snapshot, parent, reachPast(parent, reach))];
67
+ };
68
+ /**
69
+ * Rectangles drawn by an element, cut by every ancestor that clips it. A scroll container's overflow is
70
+ * out of sight until it is scrolled, so what lies past its edge touches and collides with nothing.
71
+ * @param snapshot the measured page.
72
+ * @param node the element the rectangles belong to.
73
+ * @param rects its rectangles: its boxes, its line boxes, or what its content shows.
74
+ * @returns the visible part of each rectangle that keeps any area.
75
+ */
76
+ export const visibleRectsOf = (snapshot, node, rects) => {
77
+ const clips = clipsAbove(snapshot, node, reachPast(node, 'all'));
78
+ return rects
79
+ .map((rect) => clips.reduce((clipped, clip) => intersectionOf(clipped, clip), rect))
80
+ .filter((rect) => hasArea(rect));
81
+ };
82
+ //# sourceMappingURL=layout-clip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-clip.js","sourceRoot":"","sources":["../src/layout-clip.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,67 @@
1
+ import { type CandidateFinding, type DeclaredExemption, type UsedExemption } from './browser-exemptions.js';
2
+ import { type BrowserFinding, type FindingPlace } from './browser-findings.js';
1
3
  import { type LayoutSnapshot } from './layout-snapshot.js';
2
4
  /** A viewport every scan runs at. */
3
5
  export interface LayoutViewport {
4
6
  readonly width: number;
5
7
  readonly height: number;
6
8
  }
7
- /** The viewports the harness requires: a phone and a desktop. A project may add more, never remove. */
9
+ /** The viewports the harness requires. A project may add more, never remove any. */
8
10
  export declare const LAYOUT_VIEWPORTS: readonly LayoutViewport[];
9
11
  /** The smallest gap, in CSS pixels, between a boxed element and its sibling. A project may raise it. */
10
12
  export declare const LAYOUT_MINIMUM_GAP: number;
11
- /** The attribute a project writes on an element whose edge is shared on purpose. */
13
+ /** The attribute a project writes on an element exempt from a rule. */
12
14
  export declare const LAYOUT_EXEMPTION_ATTRIBUTE: string;
13
15
  /** The attribute carrying the reason for that exemption. */
14
16
  export declare const LAYOUT_REASON_ATTRIBUTE: string;
17
+ /** The geometry rules the width sweep and the text-stress passes apply: L1 to L3. */
18
+ export declare const REFLOW_RULES: readonly string[];
19
+ /** Every geometry rule of the layout scan: L1 to L4. */
20
+ export declare const LAYOUT_RULES: readonly string[];
15
21
  /**
16
- * Every layout defect on one page, across the viewports it was measured at.
22
+ * The reflow rules' candidates on one measured page, before exemptions: L1 to L3.
23
+ * @param snapshot the measured page.
24
+ * @returns one candidate per defect.
25
+ */
26
+ export declare const reflowCandidates: (snapshot: LayoutSnapshot) => readonly CandidateFinding[];
27
+ /** What judging one measured page yields. */
28
+ export interface JudgedPage {
29
+ readonly findings: readonly BrowserFinding[];
30
+ readonly used: readonly UsedExemption[];
31
+ readonly declared: readonly DeclaredExemption[];
32
+ }
33
+ /** What one page is judged by, besides its measurement and place. */
34
+ export interface LayoutJudgement {
35
+ /** The smallest gap, in CSS pixels, between a boxed element and its sibling. */
36
+ readonly minimumGap: number;
37
+ /** Candidates of further rules measured on the same page. */
38
+ readonly extra?: readonly CandidateFinding[];
39
+ /** The geometry rules to apply; every layout rule when absent. */
40
+ readonly rules?: readonly string[];
41
+ }
42
+ /**
43
+ * Judge one measured page by the geometry rules, with exemptions applied.
44
+ *
45
+ * Touching boxes are excused only by an exemption on one of the two boxes. Every other rule is excused
46
+ * by an exemption on the element it judges or on an ancestor of it.
47
+ * @param snapshot the measured page.
48
+ * @param place where it was measured.
49
+ * @param judgement the gap and rules to judge it by, and the candidates of further rules.
50
+ * @param judgement.minimumGap the smallest gap, in CSS pixels, between a boxed element and its sibling.
51
+ * @param judgement.extra candidates of further rules measured on the same page.
52
+ * @param judgement.rules the geometry rules to apply.
53
+ * @returns the findings, the exemptions used, and the exemptions declared.
54
+ */
55
+ export declare const judgeLayout: (snapshot: LayoutSnapshot, place: FindingPlace, { minimumGap, extra, rules }: LayoutJudgement) => JudgedPage;
56
+ /**
57
+ * Every layout defect on one page, across the viewports it was measured at, as report lines.
17
58
  * @param snapshots the same page measured at each required viewport.
18
59
  * @param minimumGap the smallest gap, in CSS pixels, between a boxed element and its sibling.
60
+ * @param engine the engine it was measured in.
61
+ * @param state the state it was measured in.
19
62
  * @returns one line per defect, without duplicates, in the order the viewports were measured.
20
63
  */
21
- export declare const findLayoutDefects: (snapshots: readonly LayoutSnapshot[], minimumGap: number) => readonly string[];
64
+ export declare const findLayoutDefects: (snapshots: readonly LayoutSnapshot[], minimumGap: number, engine?: string, state?: string) => readonly string[];
22
65
  /**
23
66
  * The viewports a scan must run at: the harness's own, then any a project adds.
24
67
  * @param declared the viewports a project declared.
@@ -1 +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"}
1
+ {"version":3,"file":"layout-defects.d.ts","sourceRoot":"","sources":["../src/layout-defects.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAMtB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAA0B,MAAM,uBAAuB,CAAA;AAGtG,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,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAAuB,CAAA;AAE7E,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,EAAE,MAAU,CAAA;AAE3C,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAE,MAA4B,CAAA;AAErE,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,EAAE,MAAmC,CAAA;AAEzE,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAAiD,CAAA;AAE3F,wDAAwD;AACxD,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA0C,CAAA;AAuCpF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAgBpF,CAAA;AAED,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,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,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC5C,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,GACtB,UAAU,cAAc,EACxB,OAAO,YAAY,EACnB,8BAAkD,eAAe,KAChE,UAgCF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,SAAS,cAAc,EAAE,EACpC,YAAY,MAAM,EAClB,SAAQ,MAAmB,EAC3B,QAAO,MAAkB,KACxB,SAAS,MAAM,EA2BjB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,cAAc,EAAE,KAAG,SAAS,cAAc,EAM9F,CAAA"}