@ploaness/governance 1.1.0 → 1.3.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 (236) hide show
  1. package/dist/a11y-hit-target.d.ts.map +1 -1
  2. package/dist/a11y-hit-target.js +1 -21
  3. package/dist/a11y-hit-target.js.map +1 -1
  4. package/dist/a11y-incomplete.d.ts.map +1 -1
  5. package/dist/a11y-incomplete.js +1 -18
  6. package/dist/a11y-incomplete.js.map +1 -1
  7. package/dist/access-boundary.d.ts +43 -1
  8. package/dist/access-boundary.d.ts.map +1 -1
  9. package/dist/access-boundary.js +146 -5
  10. package/dist/access-boundary.js.map +1 -1
  11. package/dist/admin-view-coverage.d.ts.map +1 -1
  12. package/dist/admin-view-coverage.js +1 -17
  13. package/dist/admin-view-coverage.js.map +1 -1
  14. package/dist/asset-policy.d.ts.map +1 -1
  15. package/dist/asset-policy.js +1 -23
  16. package/dist/asset-policy.js.map +1 -1
  17. package/dist/axe-coverage.d.ts +3 -4
  18. package/dist/axe-coverage.d.ts.map +1 -1
  19. package/dist/axe-coverage.js +18 -51
  20. package/dist/axe-coverage.js.map +1 -1
  21. package/dist/blocklist-entries.d.ts +36 -0
  22. package/dist/blocklist-entries.d.ts.map +1 -0
  23. package/dist/blocklist-entries.js +338 -0
  24. package/dist/blocklist-entries.js.map +1 -0
  25. package/dist/blocklist.d.ts +91 -0
  26. package/dist/blocklist.d.ts.map +1 -0
  27. package/dist/blocklist.js +187 -0
  28. package/dist/blocklist.js.map +1 -0
  29. package/dist/checkov-check.d.ts +9 -0
  30. package/dist/checkov-check.d.ts.map +1 -0
  31. package/dist/checkov-check.js +4 -0
  32. package/dist/checkov-check.js.map +1 -0
  33. package/dist/checkov-checks-aws.d.ts +4 -0
  34. package/dist/checkov-checks-aws.d.ts.map +1 -0
  35. package/dist/checkov-checks-aws.js +93 -0
  36. package/dist/checkov-checks-aws.js.map +1 -0
  37. package/dist/checkov-checks-azure.d.ts +4 -0
  38. package/dist/checkov-checks-azure.d.ts.map +1 -0
  39. package/dist/checkov-checks-azure.js +32 -0
  40. package/dist/checkov-checks-azure.js.map +1 -0
  41. package/dist/checkov-checks-google.d.ts +6 -0
  42. package/dist/checkov-checks-google.d.ts.map +1 -0
  43. package/dist/checkov-checks-google.js +53 -0
  44. package/dist/checkov-checks-google.js.map +1 -0
  45. package/dist/checkov-policy.d.ts +63 -0
  46. package/dist/checkov-policy.d.ts.map +1 -0
  47. package/dist/checkov-policy.js +105 -0
  48. package/dist/checkov-policy.js.map +1 -0
  49. package/dist/container-failure.d.ts.map +1 -1
  50. package/dist/container-failure.js +1 -18
  51. package/dist/container-failure.js.map +1 -1
  52. package/dist/container-files.d.ts +16 -0
  53. package/dist/container-files.d.ts.map +1 -1
  54. package/dist/container-files.js +23 -8
  55. package/dist/container-files.js.map +1 -1
  56. package/dist/container-images.d.ts +43 -0
  57. package/dist/container-images.d.ts.map +1 -0
  58. package/dist/container-images.js +157 -0
  59. package/dist/container-images.js.map +1 -0
  60. package/dist/dependency-freshness.d.ts +8 -0
  61. package/dist/dependency-freshness.d.ts.map +1 -1
  62. package/dist/dependency-freshness.js +2 -18
  63. package/dist/dependency-freshness.js.map +1 -1
  64. package/dist/doc-blocks.d.ts.map +1 -1
  65. package/dist/doc-blocks.js +1 -13
  66. package/dist/doc-blocks.js.map +1 -1
  67. package/dist/editorconfig-policy.d.ts +7 -0
  68. package/dist/editorconfig-policy.d.ts.map +1 -1
  69. package/dist/editorconfig-policy.js +19 -12
  70. package/dist/editorconfig-policy.js.map +1 -1
  71. package/dist/environment-coherence.d.ts +59 -5
  72. package/dist/environment-coherence.d.ts.map +1 -1
  73. package/dist/environment-coherence.js +107 -27
  74. package/dist/environment-coherence.js.map +1 -1
  75. package/dist/environment-files.d.ts.map +1 -1
  76. package/dist/environment-files.js +1 -19
  77. package/dist/environment-files.js.map +1 -1
  78. package/dist/file-roles.d.ts +7 -2
  79. package/dist/file-roles.d.ts.map +1 -1
  80. package/dist/file-roles.js +10 -9
  81. package/dist/file-roles.js.map +1 -1
  82. package/dist/freshness-repair.d.ts +82 -0
  83. package/dist/freshness-repair.d.ts.map +1 -0
  84. package/dist/freshness-repair.js +91 -0
  85. package/dist/freshness-repair.js.map +1 -0
  86. package/dist/generated-denial.d.ts.map +1 -1
  87. package/dist/generated-denial.js +1 -9
  88. package/dist/generated-denial.js.map +1 -1
  89. package/dist/generated-drift.d.ts.map +1 -1
  90. package/dist/generated-drift.js +1 -12
  91. package/dist/generated-drift.js.map +1 -1
  92. package/dist/harness-package.d.ts +13 -0
  93. package/dist/harness-package.d.ts.map +1 -0
  94. package/dist/harness-package.js +20 -0
  95. package/dist/harness-package.js.map +1 -0
  96. package/dist/history-policy.d.ts.map +1 -1
  97. package/dist/history-policy.js +1 -7
  98. package/dist/history-policy.js.map +1 -1
  99. package/dist/image-assets.d.ts.map +1 -1
  100. package/dist/image-assets.js +1 -10
  101. package/dist/image-assets.js.map +1 -1
  102. package/dist/index.d.ts +20 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +20 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/install-policy.d.ts +21 -0
  107. package/dist/install-policy.d.ts.map +1 -1
  108. package/dist/install-policy.js +53 -1
  109. package/dist/install-policy.js.map +1 -1
  110. package/dist/jsx-accessibility-scope.d.ts +17 -0
  111. package/dist/jsx-accessibility-scope.d.ts.map +1 -0
  112. package/dist/jsx-accessibility-scope.js +36 -0
  113. package/dist/jsx-accessibility-scope.js.map +1 -0
  114. package/dist/jsx-accessibility.d.ts +13 -0
  115. package/dist/jsx-accessibility.d.ts.map +1 -0
  116. package/dist/jsx-accessibility.js +188 -0
  117. package/dist/jsx-accessibility.js.map +1 -0
  118. package/dist/network-policy.d.ts.map +1 -1
  119. package/dist/network-policy.js +1 -12
  120. package/dist/network-policy.js.map +1 -1
  121. package/dist/oxlint-policy.d.ts +16 -0
  122. package/dist/oxlint-policy.d.ts.map +1 -0
  123. package/dist/oxlint-policy.js +28 -0
  124. package/dist/oxlint-policy.js.map +1 -0
  125. package/dist/oxlint-report.d.ts +29 -0
  126. package/dist/oxlint-report.d.ts.map +1 -0
  127. package/dist/oxlint-report.js +84 -0
  128. package/dist/oxlint-report.js.map +1 -0
  129. package/dist/oxlint-scope.d.ts +13 -0
  130. package/dist/oxlint-scope.d.ts.map +1 -0
  131. package/dist/oxlint-scope.js +46 -0
  132. package/dist/oxlint-scope.js.map +1 -0
  133. package/dist/oxlint-suppressions.d.ts +17 -0
  134. package/dist/oxlint-suppressions.d.ts.map +1 -0
  135. package/dist/oxlint-suppressions.js +72 -0
  136. package/dist/oxlint-suppressions.js.map +1 -0
  137. package/dist/paired-assets.d.ts.map +1 -1
  138. package/dist/paired-assets.js.map +1 -1
  139. package/dist/payload-access.d.ts +6 -0
  140. package/dist/payload-access.d.ts.map +1 -1
  141. package/dist/payload-access.js +166 -9
  142. package/dist/payload-access.js.map +1 -1
  143. package/dist/payload-bootstrap.d.ts +52 -0
  144. package/dist/payload-bootstrap.d.ts.map +1 -0
  145. package/dist/payload-bootstrap.js +195 -0
  146. package/dist/payload-bootstrap.js.map +1 -0
  147. package/dist/payload-configs.d.ts +0 -1
  148. package/dist/payload-configs.d.ts.map +1 -1
  149. package/dist/payload-configs.js +36 -17
  150. package/dist/payload-configs.js.map +1 -1
  151. package/dist/payload-database.d.ts +80 -0
  152. package/dist/payload-database.d.ts.map +1 -0
  153. package/dist/payload-database.js +164 -0
  154. package/dist/payload-database.js.map +1 -0
  155. package/dist/payload-defaults.d.ts +128 -0
  156. package/dist/payload-defaults.d.ts.map +1 -0
  157. package/dist/payload-defaults.js +295 -0
  158. package/dist/payload-defaults.js.map +1 -0
  159. package/dist/payload-policy.d.ts +21 -0
  160. package/dist/payload-policy.d.ts.map +1 -1
  161. package/dist/payload-policy.js +92 -43
  162. package/dist/payload-policy.js.map +1 -1
  163. package/dist/relationship-cleanup.d.ts.map +1 -1
  164. package/dist/relationship-cleanup.js +16 -16
  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 -16
  168. package/dist/release-age.js.map +1 -1
  169. package/dist/request-limits.d.ts.map +1 -1
  170. package/dist/request-limits.js +1 -11
  171. package/dist/request-limits.js.map +1 -1
  172. package/dist/route-map.d.ts.map +1 -1
  173. package/dist/route-map.js +1 -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 -19
  177. package/dist/run-plan.js.map +1 -1
  178. package/dist/secret-policy.d.ts.map +1 -1
  179. package/dist/secret-policy.js +1 -11
  180. package/dist/secret-policy.js.map +1 -1
  181. package/dist/settings-layering.d.ts +8 -30
  182. package/dist/settings-layering.d.ts.map +1 -1
  183. package/dist/settings-layering.js +19 -48
  184. package/dist/settings-layering.js.map +1 -1
  185. package/dist/settings.d.ts +9 -2
  186. package/dist/settings.d.ts.map +1 -1
  187. package/dist/settings.js.map +1 -1
  188. package/dist/shell-files.d.ts +45 -0
  189. package/dist/shell-files.d.ts.map +1 -0
  190. package/dist/shell-files.js +105 -0
  191. package/dist/shell-files.js.map +1 -0
  192. package/dist/source-security.d.ts +10 -0
  193. package/dist/source-security.d.ts.map +1 -1
  194. package/dist/source-security.js +88 -1
  195. package/dist/source-security.js.map +1 -1
  196. package/dist/source-text.d.ts +2 -0
  197. package/dist/source-text.d.ts.map +1 -1
  198. package/dist/source-text.js +7 -16
  199. package/dist/source-text.js.map +1 -1
  200. package/dist/terraform-files.d.ts +29 -0
  201. package/dist/terraform-files.d.ts.map +1 -0
  202. package/dist/terraform-files.js +50 -0
  203. package/dist/terraform-files.js.map +1 -0
  204. package/dist/terraform-policy.d.ts +13 -0
  205. package/dist/terraform-policy.d.ts.map +1 -0
  206. package/dist/terraform-policy.js +261 -0
  207. package/dist/terraform-policy.js.map +1 -0
  208. package/dist/terraform-providers.d.ts +28 -0
  209. package/dist/terraform-providers.d.ts.map +1 -0
  210. package/dist/terraform-providers.js +68 -0
  211. package/dist/terraform-providers.js.map +1 -0
  212. package/dist/toolchain-pins.d.ts +1 -1
  213. package/dist/toolchain-pins.d.ts.map +1 -1
  214. package/dist/toolchain-pins.js +11 -21
  215. package/dist/toolchain-pins.js.map +1 -1
  216. package/dist/version-policy.d.ts +7 -8
  217. package/dist/version-policy.d.ts.map +1 -1
  218. package/dist/version-policy.js +15 -26
  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 +1 -11
  222. package/dist/vulnerability-policy.js.map +1 -1
  223. package/dist/wiring-policy.d.ts.map +1 -1
  224. package/dist/wiring-policy.js +4 -1
  225. package/dist/wiring-policy.js.map +1 -1
  226. package/dist/wiring-violation.d.ts.map +1 -1
  227. package/dist/wiring-violation.js +1 -6
  228. package/dist/wiring-violation.js.map +1 -1
  229. package/dist/workspace-policy.d.ts.map +1 -1
  230. package/dist/workspace-policy.js +3 -9
  231. package/dist/workspace-policy.js.map +1 -1
  232. package/dist/yaml-blocks.d.ts +10 -0
  233. package/dist/yaml-blocks.d.ts.map +1 -1
  234. package/dist/yaml-blocks.js +20 -0
  235. package/dist/yaml-blocks.js.map +1 -1
  236. package/package.json +2 -2
@@ -0,0 +1,36 @@
1
+ import { hasExtension, matchesGlob } from './file-roles.js';
2
+ import { analysisBoundaries } from './workspace-policy.js';
3
+ /** The application JSX file types, shared by native analysis and Biome deduplication. */
4
+ export const JSX_EXTENSIONS = ['.tsx', '.jsx'];
5
+ /** Existing application-lint exclusions, expressed once for both analyzer owners. */
6
+ export const APPLICATION_JSX_IGNORES = [
7
+ '.next/**',
8
+ '**/node_modules/**',
9
+ 'coverage/**',
10
+ 'pgadmin/**',
11
+ '.*/**',
12
+ ];
13
+ /** Biome overrides apply only where the application's native JSX analyzer takes responsibility. */
14
+ export const jsxAnalysisPatterns = () => [
15
+ ...JSX_EXTENSIONS.map((extension) => `**/*${extension}`),
16
+ ...APPLICATION_JSX_IGNORES.map((pattern) => `!${pattern}`),
17
+ ];
18
+ /**
19
+ * Select committable JSX files without crossing a member or generated-file boundary.
20
+ * @param files the current working-tree inventory, including new source.
21
+ * @param generated the member's generated-file roles.
22
+ * @param siblings other governed members, relative to this member.
23
+ * @returns the deduplicated paths the native analyzer must actually read.
24
+ */
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)));
33
+ };
34
+ /** Consumer configuration cannot shadow the harness, including in nested directories. */
35
+ export const isOxlintConfig = (file) => /(?:^|\/)(?:\.oxlintrc(?:\.[^/]*)?|\.oxlintignore|oxlint\.config\.[^/]+)$/u.test(file);
36
+ //# sourceMappingURL=jsx-accessibility-scope.js.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ /** One accessibility guarantee and the options that define its supported markup. */
2
+ export interface JsxAccessibilityRule {
3
+ readonly oxlint: string;
4
+ readonly biome: string;
5
+ readonly options?: Readonly<Record<string, unknown>>;
6
+ }
7
+ /** Application accessibility rules, ported with their established semantic allowances. */
8
+ export declare const JSX_ACCESSIBILITY_RULES: readonly JsxAccessibilityRule[];
9
+ /** The native configuration, independent of anything in the consuming working tree. */
10
+ export declare const oxlintAccessibilityConfig: () => Readonly<Record<string, unknown>>;
11
+ /** The Biome checks whose application JSX responsibility belongs to Oxlint. */
12
+ export declare const replacedBiomeAccessibilityRules: () => Readonly<Record<string, string>>;
13
+ //# sourceMappingURL=jsx-accessibility.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,188 @@
1
+ // One owner for each application JSX accessibility check. The registry records both the native
2
+ // checker and the Biome check it replaces, so generating either configuration cannot lose the other.
3
+ /** Application accessibility rules, ported with their established semantic allowances. */
4
+ export const JSX_ACCESSIBILITY_RULES = [
5
+ {
6
+ oxlint: 'jsx-a11y/alt-text',
7
+ biome: 'useAltText',
8
+ },
9
+ {
10
+ oxlint: 'jsx-a11y/anchor-has-content',
11
+ biome: 'useAnchorContent',
12
+ },
13
+ {
14
+ oxlint: 'jsx-a11y/anchor-is-valid',
15
+ biome: 'useValidAnchor',
16
+ },
17
+ {
18
+ oxlint: 'jsx-a11y/aria-activedescendant-has-tabindex',
19
+ biome: 'useAriaActivedescendantWithTabindex',
20
+ },
21
+ {
22
+ oxlint: 'jsx-a11y/aria-props',
23
+ biome: 'useValidAriaProps',
24
+ },
25
+ {
26
+ oxlint: 'jsx-a11y/aria-proptypes',
27
+ biome: 'useValidAriaValues',
28
+ },
29
+ {
30
+ oxlint: 'jsx-a11y/aria-role',
31
+ biome: 'useValidAriaRole',
32
+ },
33
+ {
34
+ oxlint: 'jsx-a11y/aria-unsupported-elements',
35
+ biome: 'noAriaUnsupportedElements',
36
+ },
37
+ {
38
+ oxlint: 'jsx-a11y/autocomplete-valid',
39
+ biome: 'useValidAutocomplete',
40
+ },
41
+ {
42
+ oxlint: 'jsx-a11y/click-events-have-key-events',
43
+ biome: 'useKeyWithClickEvents',
44
+ },
45
+ {
46
+ oxlint: 'jsx-a11y/heading-has-content',
47
+ biome: 'useHeadingContent',
48
+ },
49
+ {
50
+ oxlint: 'jsx-a11y/html-has-lang',
51
+ biome: 'useHtmlLang',
52
+ },
53
+ {
54
+ oxlint: 'jsx-a11y/iframe-has-title',
55
+ biome: 'useIframeTitle',
56
+ },
57
+ {
58
+ oxlint: 'jsx-a11y/img-redundant-alt',
59
+ biome: 'noRedundantAlt',
60
+ },
61
+ {
62
+ oxlint: 'jsx-a11y/interactive-supports-focus',
63
+ biome: 'useFocusableInteractive',
64
+ options: {
65
+ tabbable: ['button', 'checkbox', 'link', 'searchbox', 'spinbutton', 'switch', 'textbox'],
66
+ },
67
+ },
68
+ {
69
+ oxlint: 'jsx-a11y/label-has-associated-control',
70
+ biome: 'noLabelWithoutControl',
71
+ },
72
+ {
73
+ oxlint: 'jsx-a11y/media-has-caption',
74
+ biome: 'useMediaCaption',
75
+ },
76
+ {
77
+ oxlint: 'jsx-a11y/mouse-events-have-key-events',
78
+ biome: 'useKeyWithMouseEvents',
79
+ },
80
+ {
81
+ oxlint: 'jsx-a11y/no-access-key',
82
+ biome: 'noAccessKey',
83
+ },
84
+ {
85
+ oxlint: 'jsx-a11y/no-autofocus',
86
+ biome: 'noAutofocus',
87
+ },
88
+ {
89
+ oxlint: 'jsx-a11y/no-distracting-elements',
90
+ biome: 'noDistractingElements',
91
+ },
92
+ {
93
+ oxlint: 'jsx-a11y/no-interactive-element-to-noninteractive-role',
94
+ biome: 'noInteractiveElementToNoninteractiveRole',
95
+ options: {
96
+ tr: ['none', 'presentation'],
97
+ canvas: ['img'],
98
+ },
99
+ },
100
+ {
101
+ oxlint: 'jsx-a11y/no-noninteractive-element-interactions',
102
+ biome: 'noNoninteractiveElementInteractions',
103
+ options: {
104
+ handlers: [
105
+ 'onClick',
106
+ 'onError',
107
+ 'onLoad',
108
+ 'onMouseDown',
109
+ 'onMouseUp',
110
+ 'onKeyPress',
111
+ 'onKeyDown',
112
+ 'onKeyUp',
113
+ ],
114
+ alert: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
115
+ body: ['onError', 'onLoad'],
116
+ dialog: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
117
+ iframe: ['onError', 'onLoad'],
118
+ img: ['onError', 'onLoad'],
119
+ },
120
+ },
121
+ {
122
+ oxlint: 'jsx-a11y/no-noninteractive-element-to-interactive-role',
123
+ biome: 'noNoninteractiveElementToInteractiveRole',
124
+ options: {
125
+ ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
126
+ ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
127
+ li: ['menuitem', 'menuitemradio', 'menuitemcheckbox', 'option', 'row', 'tab', 'treeitem'],
128
+ table: ['grid'],
129
+ td: ['gridcell'],
130
+ fieldset: ['radiogroup', 'presentation'],
131
+ },
132
+ },
133
+ {
134
+ oxlint: 'jsx-a11y/no-noninteractive-tabindex',
135
+ biome: 'noNoninteractiveTabindex',
136
+ options: {
137
+ tags: [],
138
+ roles: ['tabpanel'],
139
+ allowExpressionValues: true,
140
+ },
141
+ },
142
+ {
143
+ oxlint: 'jsx-a11y/no-redundant-roles',
144
+ biome: 'noRedundantRoles',
145
+ options: {
146
+ td: ['gridcell'],
147
+ },
148
+ },
149
+ {
150
+ oxlint: 'jsx-a11y/no-static-element-interactions',
151
+ biome: 'noStaticElementInteractions',
152
+ options: {
153
+ allowExpressionValues: true,
154
+ handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
155
+ },
156
+ },
157
+ {
158
+ oxlint: 'jsx-a11y/role-has-required-aria-props',
159
+ biome: 'useAriaPropsForRole',
160
+ },
161
+ {
162
+ oxlint: 'jsx-a11y/role-supports-aria-props',
163
+ biome: 'useAriaPropsSupportedByRole',
164
+ },
165
+ {
166
+ oxlint: 'jsx-a11y/scope',
167
+ biome: 'noHeaderScope',
168
+ },
169
+ {
170
+ oxlint: 'jsx-a11y/tabindex-no-positive',
171
+ biome: 'noPositiveTabindex',
172
+ },
173
+ ];
174
+ /** The native configuration, independent of anything in the consuming working tree. */
175
+ export const oxlintAccessibilityConfig = () => ({
176
+ plugins: ['jsx-a11y'],
177
+ categories: { correctness: 'off' },
178
+ rules: Object.fromEntries(JSX_ACCESSIBILITY_RULES.map((rule) => [
179
+ rule.oxlint,
180
+ rule.options === undefined ? 'error' : ['error', rule.options],
181
+ ])),
182
+ });
183
+ /** 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
+ ]));
188
+ //# sourceMappingURL=jsx-accessibility.js.map
@@ -0,0 +1 @@
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;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,aAAa;gBACb,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,SAAS;aACV;YACD,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;IACrF,IAAI,CAAC,KAAK;IACV,KAAK;CACN,CAAC,CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"network-policy.d.ts","sourceRoot":"","sources":["../src/network-policy.ts"],"names":[],"mappings":"AAcA,gGAAgG;AAChG,eAAO,MAAM,YAAY,EAAE,MAAmE,CAAA;AAE9F,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;AAEnE,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,6FAA6F;AAC7F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAe7C,CAAA;AA6CD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC,CAAC,KACnF,WAAW,CAAC,MAAM,CASlB,CAAA;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,GAAG,SAAS,EACxB,OAAO,WAAW,CAAC,MAAM,CAAC,KACzB,OAMF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAMnD,CAAA;AAuBD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,SAAS,OAAO,EAAE,KAAG,cAcxE,CAAA;AAUD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,cAAc,EACvB,OAAO,WAAW,CAAC,MAAM,CAAC,KACzB,MAAM,GAAG,SAKX,CAAA"}
1
+ {"version":3,"file":"network-policy.d.ts","sourceRoot":"","sources":["../src/network-policy.ts"],"names":[],"mappings":"AAGA,gGAAgG;AAChG,eAAO,MAAM,YAAY,EAAE,MAAmE,CAAA;AAE9F,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;AAEnE,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,6FAA6F;AAC7F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAe7C,CAAA;AA6CD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC,CAAC,KACnF,WAAW,CAAC,MAAM,CASlB,CAAA;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,GAAG,SAAS,EACxB,OAAO,WAAW,CAAC,MAAM,CAAC,KACzB,OAMF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAMnD,CAAA;AAuBD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,SAAS,OAAO,EAAE,KAAG,cAcxE,CAAA;AAUD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,cAAc,EACvB,OAAO,WAAW,CAAC,MAAM,CAAC,KACzB,MAAM,GAAG,SAKX,CAAA"}
@@ -1,15 +1,4 @@
1
- // The determinism rule that a test reaches no network beyond the machine it runs on, expressed as a
2
- // decision rather than as prose in the agent guide.
3
- //
4
- // The rule was checkable all along: a test that leaves the machine has to go through a socket, a
5
- // resolver, or fetch, and each of those hands the destination to the runtime before anything is sent.
6
- // What was missing was somewhere to put the verdict. This module is that place, and it performs no I/O -
7
- // the caller reads `os.networkInterfaces()` and intercepts the entry points, then asks here.
8
- //
9
- // The decision is host-shaped rather than allowlist-shaped on purpose. There is no setting that widens
10
- // it, because "the database this suite needs happens to live elsewhere" is the exact case the rule
11
- // exists to reject: a service that exists only outside the machine is exercised through a local
12
- // component that implements its protocol.
1
+ // Decide whether an intercepted connection or DNS lookup stays on the test machine.
13
2
  import { isRecord } from './json-shapes.js';
14
3
  /** The sentence of the governing standard this module decides, quoted back in every refusal. */
15
4
  export const NETWORK_RULE = 'A test reaches no network beyond the machine it runs on.';
@@ -1 +1 @@
1
- {"version":3,"file":"network-policy.js","sourceRoot":"","sources":["../src/network-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-policy.js","sourceRoot":"","sources":["../src/network-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** A native rule with explicit semantic options, independent of the host application's framework. */
2
+ export interface OxlintRule {
3
+ readonly oxlint: string;
4
+ readonly options?: Readonly<Record<string, unknown>>;
5
+ }
6
+ /** Validated gaps in the existing analyzer coverage; equivalent rules retain their current owner. */
7
+ export declare const OXLINT_CORE_RULES: readonly OxlintRule[];
8
+ /** The rules applicable to one disjoint file group. */
9
+ export declare const oxlintRules: (hasAccessibility: boolean) => readonly OxlintRule[];
10
+ /** Canonical native names, also used to validate a file's suppression comments. */
11
+ export declare const oxlintRuleNames: (rules: readonly OxlintRule[]) => readonly string[];
12
+ /** Build a closed rule set; category defaults cannot add undeclared checks. */
13
+ export declare const oxlintConfig: (rules: readonly OxlintRule[]) => Readonly<Record<string, unknown>>;
14
+ /** Retained accessibility-only defaults for existing suppression API callers. */
15
+ export declare const OXLINT_ACCESSIBILITY_NAMES: readonly string[];
16
+ //# sourceMappingURL=oxlint-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-policy.d.ts","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAMlD,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,WAAW,GAAI,kBAAkB,OAAO,KAAG,SAAS,UAAU,EAG1E,CAAA;AAED,mFAAmF;AACnF,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,SAAS,MAAM,EACxB,CAAA;AAEtD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,UAAU,EAAE,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS1F,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { JSX_ACCESSIBILITY_RULES } from './jsx-accessibility.js';
2
+ /** Validated gaps in the existing analyzer coverage; equivalent rules retain their current owner. */
3
+ export const OXLINT_CORE_RULES = [
4
+ { oxlint: 'eslint/no-promise-executor-return', options: { allowVoid: false } },
5
+ {
6
+ oxlint: 'import/no-absolute-path',
7
+ options: { esmodule: true, commonjs: false, amd: false },
8
+ },
9
+ ];
10
+ /** The rules applicable to one disjoint file group. */
11
+ export const oxlintRules = (hasAccessibility) => [
12
+ ...OXLINT_CORE_RULES,
13
+ ...(hasAccessibility ? JSX_ACCESSIBILITY_RULES : []),
14
+ ];
15
+ /** Canonical native names, also used to validate a file's suppression comments. */
16
+ export const oxlintRuleNames = (rules) => rules.map((rule) => rule.oxlint);
17
+ /** Build a closed rule set; category defaults cannot add undeclared checks. */
18
+ export const oxlintConfig = (rules) => ({
19
+ plugins: ['import', 'jsx-a11y'],
20
+ categories: { correctness: 'off' },
21
+ rules: Object.fromEntries(rules.map((rule) => [
22
+ rule.oxlint,
23
+ rule.options === undefined ? 'error' : ['error', rule.options],
24
+ ])),
25
+ });
26
+ /** Retained accessibility-only defaults for existing suppression API callers. */
27
+ export const OXLINT_ACCESSIBILITY_NAMES = JSX_ACCESSIBILITY_RULES.map((rule) => rule.oxlint);
28
+ //# sourceMappingURL=oxlint-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-policy.js","sourceRoot":"","sources":["../src/oxlint-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA6B,MAAM,wBAAwB,CAAA;AAQ3F,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,EAAE,MAAM,EAAE,mCAAmC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;IAC9E;QACE,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;KACzD;CACF,CAAA;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,gBAAyB,EAAyB,EAAE,CAAC;IAC/E,GAAG,iBAAiB;IACpB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;CACrD,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAqB,EAAE,CACjF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAqC,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAgB,EAA8B,EAAE,CAAC;QAC1D,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,iFAAiF;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAsB,uBAAuB,CAAC,GAAG,CACtF,CAAC,IAA0B,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CACpD,CAAA"}
@@ -0,0 +1,29 @@
1
+ /** A parser-confirmed suppression for rules owned solely by ESLint. */
2
+ export interface OxlintLegacySite {
3
+ readonly file: string;
4
+ readonly line: number;
5
+ }
6
+ /** Process status and foreign directive locations validated before native analysis. */
7
+ export interface OxlintExecution {
8
+ readonly exitCode: number;
9
+ /** Combined process output, including stderr, startup failures, and termination signals. */
10
+ readonly output?: string;
11
+ readonly legacy: readonly OxlintLegacySite[];
12
+ }
13
+ /**
14
+ * Validate the native verdict and its coverage rather than trusting a zero exit status alone.
15
+ * @param output the tool's unmodified JSON stdout.
16
+ * @param files how many explicit files the invocation supplied.
17
+ * @param rules how many rules the harness configured.
18
+ * @param execution process status and parser-confirmed directives governed by ESLint.
19
+ * @returns findings, including malformed or incomplete reports.
20
+ */
21
+ export declare const oxlintReportProblems: (output: string, files: number, rules: number, execution?: OxlintExecution) => readonly string[];
22
+ /**
23
+ * The fixed invocation: no project config discovery, ignore files, fixers, or extra arguments.
24
+ * @param config absolute path to the configuration generated from the harness registry.
25
+ * @param files explicit member-relative files.
26
+ * @returns arguments passed without shell interpolation.
27
+ */
28
+ export declare const oxlintArguments: (config: string, files: readonly string[]) => readonly string[];
29
+ //# sourceMappingURL=oxlint-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-report.d.ts","sourceRoot":"","sources":["../src/oxlint-report.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAC7C;AAiDD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,OAAO,MAAM,EACb,YAAW,eAAsC,KAChD,SAAS,MAAM,EAoBjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAYzF,CAAA"}
@@ -0,0 +1,84 @@
1
+ import { asRecord, asText, isArray, isRecord } from './json-shapes.js';
2
+ const SUCCESSFUL_EXECUTION = { exitCode: 0, legacy: [] };
3
+ const isEslintOwnedDiagnostic = (value, sites) => {
4
+ const record = asRecord(value);
5
+ const labels = record['labels'];
6
+ const label = asRecord(isArray(labels) ? labels[0] : undefined);
7
+ const span = asRecord(label['span']);
8
+ return (record['message'] === 'Unused eslint-disable directive (no problems were reported).' &&
9
+ record['code'] === undefined &&
10
+ record['severity'] === 'error' &&
11
+ sites.some((site) => site.file === record['filename'] && site.line === span['line']));
12
+ };
13
+ const exitProblems = (diagnostics, execution) => {
14
+ const isForeignFailure = execution.exitCode === 1 &&
15
+ diagnostics.some((value) => isEslintOwnedDiagnostic(value, execution.legacy));
16
+ return isForeignFailure || execution.exitCode === 0
17
+ ? []
18
+ : [`Oxlint exited with status ${String(execution.exitCode)} without establishing conformance`];
19
+ };
20
+ const reportOf = (output) => {
21
+ try {
22
+ const parsed = JSON.parse(output);
23
+ return isRecord(parsed) && !isArray(parsed) ? parsed : undefined;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ };
29
+ const diagnostic = (value) => {
30
+ const record = asRecord(value);
31
+ const file = asText(record['filename']);
32
+ const code = asText(record['code']);
33
+ const message = asText(record['message']);
34
+ return `${file} ${code}: ${message.length > 0 ? message : 'malformed Oxlint diagnostic'}`.trim();
35
+ };
36
+ /**
37
+ * Validate the native verdict and its coverage rather than trusting a zero exit status alone.
38
+ * @param output the tool's unmodified JSON stdout.
39
+ * @param files how many explicit files the invocation supplied.
40
+ * @param rules how many rules the harness configured.
41
+ * @param execution process status and parser-confirmed directives governed by ESLint.
42
+ * @returns findings, including malformed or incomplete reports.
43
+ */
44
+ export const oxlintReportProblems = (output, files, rules, execution = SUCCESSFUL_EXECUTION) => {
45
+ const report = reportOf(output);
46
+ if (report === undefined || !isArray(report['diagnostics'])) {
47
+ return ['Oxlint did not return a valid diagnostic report'];
48
+ }
49
+ return [
50
+ ...exitProblems(report['diagnostics'], execution),
51
+ ...(execution.output === undefined || execution.output.trim() === output.trim()
52
+ ? []
53
+ : ['Oxlint produced output outside its diagnostic report']),
54
+ ...(report['number_of_files'] === files
55
+ ? []
56
+ : [`Oxlint did not analyze the expected ${String(files)} source file(s)`]),
57
+ ...(report['number_of_rules'] === rules
58
+ ? []
59
+ : [`Oxlint did not enable the expected ${String(rules)} rule(s)`]),
60
+ ...report['diagnostics']
61
+ .filter((value) => !isEslintOwnedDiagnostic(value, execution.legacy))
62
+ .map((value) => diagnostic(value)),
63
+ ];
64
+ };
65
+ /**
66
+ * The fixed invocation: no project config discovery, ignore files, fixers, or extra arguments.
67
+ * @param config absolute path to the configuration generated from the harness registry.
68
+ * @param files explicit member-relative files.
69
+ * @returns arguments passed without shell interpolation.
70
+ */
71
+ export const oxlintArguments = (config, files) => [
72
+ '--config',
73
+ config,
74
+ '--disable-nested-config',
75
+ '--no-ignore',
76
+ '--deny-warnings',
77
+ '--report-unused-disable-directives-severity',
78
+ 'error',
79
+ '--format',
80
+ 'json',
81
+ '--',
82
+ ...files,
83
+ ];
84
+ //# sourceMappingURL=oxlint-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-report.js","sourceRoot":"","sources":["../src/oxlint-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type OxlintRule } from './oxlint-policy.js';
2
+ /** Authored JavaScript and TypeScript, including configuration and hidden tooling. */
3
+ export declare const OXLINT_EXTENSIONS: readonly string[];
4
+ /** Select committable source without giving generated output or siblings a second owner. */
5
+ export declare const oxlintSourceFiles: (files: readonly string[], generated: readonly string[], siblings: readonly string[]) => readonly string[];
6
+ /** One native invocation, whose report must account for exactly these files and rules. */
7
+ export interface OxlintGroup {
8
+ readonly files: readonly string[];
9
+ readonly rules: readonly OxlintRule[];
10
+ }
11
+ /** Partition already-selected source; libraries retain Biome ownership of accessibility. */
12
+ export declare const oxlintGroups: (files: readonly string[], hasAppRuntime: boolean) => readonly OxlintGroup[];
13
+ //# sourceMappingURL=oxlint-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-scope.d.ts","sourceRoot":"","sources":["../src/oxlint-scope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAGjE,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAS9C,CAAA;AAYD,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,GAC5B,OAAO,SAAS,MAAM,EAAE,EACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAajB,CAAA;AAED,0FAA0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CACtC;AAED,4FAA4F;AAC5F,eAAO,MAAM,YAAY,GACvB,OAAO,SAAS,MAAM,EAAE,EACxB,eAAe,OAAO,KACrB,SAAS,WAAW,EAQtB,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { hasExtension, matchesGlob } from './file-roles.js';
2
+ import { GENERATED_ARTEFACTS } from './generated-denial.js';
3
+ import { jsxAccessibilityFiles } from './jsx-accessibility-scope.js';
4
+ import { oxlintRules } from './oxlint-policy.js';
5
+ import { analysisBoundaries } from './workspace-policy.js';
6
+ /** Authored JavaScript and TypeScript, including configuration and hidden tooling. */
7
+ export const OXLINT_EXTENSIONS = [
8
+ '.ts',
9
+ '.tsx',
10
+ '.mts',
11
+ '.cts',
12
+ '.js',
13
+ '.jsx',
14
+ '.mjs',
15
+ '.cjs',
16
+ ];
17
+ const OUTPUTS = [
18
+ '**/node_modules/**',
19
+ '.next/**',
20
+ 'dist/**',
21
+ 'build/**',
22
+ 'out/**',
23
+ 'coverage/**',
24
+ 'pgadmin/**',
25
+ ];
26
+ /** Select committable source without giving generated output or siblings a second owner. */
27
+ export const oxlintSourceFiles = (files, generated, siblings) => {
28
+ const ignored = [
29
+ ...OUTPUTS,
30
+ ...GENERATED_ARTEFACTS,
31
+ ...generated,
32
+ ...analysisBoundaries(siblings),
33
+ ];
34
+ return [...new Set(files)].filter((file) => hasExtension(file, OXLINT_EXTENSIONS) &&
35
+ !/\.d\.(?:ts|mts|cts)$/u.test(file) &&
36
+ !ignored.some((pattern) => matchesGlob(pattern, file)));
37
+ };
38
+ /** Partition already-selected source; libraries retain Biome ownership of accessibility. */
39
+ export const oxlintGroups = (files, hasAppRuntime) => {
40
+ const jsx = new Set(hasAppRuntime ? jsxAccessibilityFiles(files, [], []) : []);
41
+ return [
42
+ { files: files.filter((file) => !jsx.has(file)), rules: oxlintRules(false) },
43
+ { files: files.filter((file) => jsx.has(file)), rules: oxlintRules(true) },
44
+ ].filter((group) => group.files.length > 0);
45
+ };
46
+ //# sourceMappingURL=oxlint-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-scope.js","sourceRoot":"","sources":["../src/oxlint-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAA;AAED,MAAM,OAAO,GAAsB;IACjC,oBAAoB;IACpB,UAAU;IACV,SAAS;IACT,UAAU;IACV,QAAQ;IACR,aAAa;IACb,YAAY;CACb,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAwB,EACxB,SAA4B,EAC5B,QAA2B,EACR,EAAE;IACrB,MAAM,OAAO,GAAsB;QACjC,GAAG,OAAO;QACV,GAAG,mBAAmB;QACtB,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,iBAAiB,CAAC;QACrC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAC1E,CAAA;AACH,CAAC,CAAA;AAQD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAwB,EACxB,aAAsB,EACE,EAAE;IAC1B,MAAM,GAAG,GAAwB,IAAI,GAAG,CACtC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAA;IACD,OAAO;QACL,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;QAC7F,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;KAC5F,CAAC,MAAM,CAAC,CAAC,KAAkB,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ /** An actual parser-recognized comment, rather than comment-like text in a string or JSX text. */
2
+ export interface SourceComment {
3
+ readonly line: number;
4
+ readonly text: string;
5
+ }
6
+ /** Whether a native directive opens a suppression and therefore spends the existing budget. */
7
+ export declare const isOxlintSuppression: (comment: SourceComment) => boolean;
8
+ /** A narrow directive for another ESLint rule remains that analyzer's responsibility. */
9
+ export declare const isEslintOwnedSuppression: (comment: SourceComment) => boolean;
10
+ /**
11
+ * Validate suppressions before the tool can obey them.
12
+ * @param comments parser-recognized source comments.
13
+ * @param applicable the canonical rules actually enabled for this file.
14
+ * @returns line-numbered findings for broad, stale-namespace, or unexplained directives.
15
+ */
16
+ export declare const oxlintSuppressionProblems: (comments: readonly SourceComment[], applicable?: readonly string[]) => readonly string[];
17
+ //# sourceMappingURL=oxlint-suppressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint-suppressions.d.ts","sourceRoot":"","sources":["../src/oxlint-suppressions.ts"],"names":[],"mappings":"AAEA,kGAAkG;AAClG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAqBD,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,GAAI,SAAS,aAAa,KAAG,OACC,CAAA;AAqC9D,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,GAAI,SAAS,aAAa,KAAG,OAMjE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,SAAS,aAAa,EAAE,EAClC,aAAY,SAAS,MAAM,EAA+B,KACzD,SAAS,MAAM,EAad,CAAA"}