@askviraj/linter 1.1.2 → 1.1.4

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 (651) hide show
  1. package/node_modules/{synckit → @astrojs/compiler-binding}/LICENSE +1 -1
  2. package/node_modules/@astrojs/compiler-binding/browser.js +1 -0
  3. package/node_modules/@astrojs/compiler-binding/index.d.ts +337 -0
  4. package/node_modules/@astrojs/compiler-binding/index.js +599 -0
  5. package/node_modules/@astrojs/compiler-binding/package.json +83 -0
  6. package/node_modules/@astrojs/compiler-binding/webcontainer-fallback.cjs +23 -0
  7. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/README.md +3 -0
  8. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/astro.linux-x64-gnu.node +0 -0
  9. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/package.json +40 -0
  10. package/node_modules/{parse5 → @astrojs/compiler-rs}/LICENSE +7 -5
  11. package/node_modules/@astrojs/compiler-rs/README.md +62 -0
  12. package/node_modules/@astrojs/compiler-rs/async.d.ts +1 -0
  13. package/node_modules/@astrojs/compiler-rs/dist/async.d.mts +9 -0
  14. package/node_modules/@astrojs/compiler-rs/dist/async.mjs +1 -0
  15. package/node_modules/@astrojs/compiler-rs/dist/index.d.mts +9 -0
  16. package/node_modules/@astrojs/compiler-rs/dist/index.mjs +1 -0
  17. package/node_modules/@astrojs/compiler-rs/dist/shared.d.mts +45 -0
  18. package/node_modules/@astrojs/compiler-rs/dist/shared.mjs +1 -0
  19. package/node_modules/@astrojs/compiler-rs/dist/types.d.mts +94 -0
  20. package/node_modules/@astrojs/compiler-rs/dist/types.mjs +1 -0
  21. package/node_modules/@astrojs/compiler-rs/dist/utils.d.mts +4 -0
  22. package/node_modules/@astrojs/compiler-rs/dist/utils.mjs +1 -0
  23. package/node_modules/@astrojs/compiler-rs/package.json +55 -0
  24. package/node_modules/@astrojs/compiler-rs/types.d.ts +1 -0
  25. package/node_modules/@eslint/config-helpers/README.md +2 -2
  26. package/node_modules/@eslint/config-helpers/dist/cjs/index.cjs +27 -26
  27. package/node_modules/@eslint/config-helpers/dist/cjs/index.d.cts +13 -12
  28. package/node_modules/@eslint/config-helpers/dist/cjs/types.cts +4 -2
  29. package/node_modules/@eslint/config-helpers/dist/esm/index.d.ts +13 -12
  30. package/node_modules/@eslint/config-helpers/dist/esm/index.js +27 -26
  31. package/node_modules/@eslint/config-helpers/dist/esm/types.d.ts +2 -0
  32. package/node_modules/@eslint/config-helpers/dist/esm/types.ts +4 -2
  33. package/node_modules/@eslint/config-helpers/package.json +1 -1
  34. package/node_modules/@eslint/css/README.md +2 -2
  35. package/node_modules/@eslint/css/dist/build/rules.d.ts +75 -21
  36. package/node_modules/@eslint/css/dist/build/rules.js +15 -15
  37. package/node_modules/@eslint/css/dist/data/baseline-data.js +256 -32
  38. package/node_modules/@eslint/css/dist/index.js +1 -1
  39. package/node_modules/@eslint/css/dist/rules/font-family-fallbacks.d.ts +15 -15
  40. package/node_modules/@eslint/css/dist/rules/font-family-fallbacks.js +2 -5
  41. package/node_modules/@eslint/css/dist/rules/no-duplicate-imports.d.ts +18 -18
  42. package/node_modules/@eslint/css/dist/rules/no-duplicate-imports.js +9 -12
  43. package/node_modules/@eslint/css/dist/rules/no-duplicate-keyframe-selectors.d.ts +14 -14
  44. package/node_modules/@eslint/css/dist/rules/no-duplicate-keyframe-selectors.js +2 -3
  45. package/node_modules/@eslint/css/dist/rules/no-empty-blocks.d.ts +14 -14
  46. package/node_modules/@eslint/css/dist/rules/no-empty-blocks.js +2 -3
  47. package/node_modules/@eslint/css/dist/rules/no-important.d.ts +16 -16
  48. package/node_modules/@eslint/css/dist/rules/no-important.js +2 -3
  49. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rule-placement.d.ts +16 -16
  50. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rule-placement.js +2 -3
  51. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rules.d.ts +21 -21
  52. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rules.js +2 -3
  53. package/node_modules/@eslint/css/dist/rules/no-invalid-named-grid-areas.d.ts +16 -16
  54. package/node_modules/@eslint/css/dist/rules/no-invalid-named-grid-areas.js +2 -3
  55. package/node_modules/@eslint/css/dist/rules/no-invalid-properties.d.ts +18 -18
  56. package/node_modules/@eslint/css/dist/rules/no-invalid-properties.js +2 -3
  57. package/node_modules/@eslint/css/dist/rules/no-unmatchable-selectors.d.ts +14 -14
  58. package/node_modules/@eslint/css/dist/rules/no-unmatchable-selectors.js +2 -3
  59. package/node_modules/@eslint/css/dist/rules/prefer-logical-properties.d.ts +22 -19
  60. package/node_modules/@eslint/css/dist/rules/prefer-logical-properties.js +66 -23
  61. package/node_modules/@eslint/css/dist/rules/relative-font-units.d.ts +16 -16
  62. package/node_modules/@eslint/css/dist/rules/relative-font-units.js +13 -7
  63. package/node_modules/@eslint/css/dist/rules/selector-complexity.d.ts +17 -17
  64. package/node_modules/@eslint/css/dist/rules/selector-complexity.js +2 -3
  65. package/node_modules/@eslint/css/dist/rules/use-baseline.d.ts +22 -22
  66. package/node_modules/@eslint/css/dist/rules/use-baseline.js +2 -3
  67. package/node_modules/@eslint/css/dist/rules/use-layers.d.ts +18 -18
  68. package/node_modules/@eslint/css/dist/rules/use-layers.js +3 -4
  69. package/node_modules/@eslint/css/package.json +7 -12
  70. package/node_modules/@eslint/css-tree/README.md +2 -2
  71. package/node_modules/@eslint/css-tree/dist/csstree.esm.js +1 -1
  72. package/node_modules/@eslint/css-tree/dist/csstree.js +1 -1
  73. package/node_modules/@eslint/css-tree/dist/data.cjs +4 -1
  74. package/node_modules/@eslint/css-tree/dist/data.js +4 -1
  75. package/node_modules/@eslint/css-tree/dist/version.cjs +1 -1
  76. package/node_modules/@eslint/css-tree/dist/version.js +1 -1
  77. package/node_modules/@eslint/css-tree/package.json +3 -3
  78. package/node_modules/@eslint/json/README.md +2 -2
  79. package/node_modules/@eslint/json/dist/index.js +1 -1
  80. package/node_modules/@eslint/json/package.json +4 -9
  81. package/node_modules/@eslint/markdown/README.md +3 -3
  82. package/node_modules/@eslint/markdown/dist/build/rules.d.ts +105 -27
  83. package/node_modules/@eslint/markdown/dist/build/rules.js +21 -21
  84. package/node_modules/@eslint/markdown/dist/index.d.ts +2 -2
  85. package/node_modules/@eslint/markdown/dist/index.js +4 -4
  86. package/node_modules/@eslint/markdown/dist/processor.d.ts +4 -9
  87. package/node_modules/@eslint/markdown/dist/processor.js +12 -15
  88. package/node_modules/@eslint/markdown/dist/rules/fenced-code-language.d.ts +17 -17
  89. package/node_modules/@eslint/markdown/dist/rules/fenced-code-language.js +2 -3
  90. package/node_modules/@eslint/markdown/dist/rules/fenced-code-meta.d.ts +17 -17
  91. package/node_modules/@eslint/markdown/dist/rules/fenced-code-meta.js +2 -3
  92. package/node_modules/@eslint/markdown/dist/rules/heading-increment.d.ts +16 -16
  93. package/node_modules/@eslint/markdown/dist/rules/heading-increment.js +2 -3
  94. package/node_modules/@eslint/markdown/dist/rules/no-bare-urls.d.ts +14 -14
  95. package/node_modules/@eslint/markdown/dist/rules/no-bare-urls.js +2 -3
  96. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-definitions.d.ts +17 -17
  97. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-definitions.js +2 -3
  98. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-headings.d.ts +15 -15
  99. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-headings.js +2 -3
  100. package/node_modules/@eslint/markdown/dist/rules/no-empty-definitions.d.ts +17 -17
  101. package/node_modules/@eslint/markdown/dist/rules/no-empty-definitions.js +2 -3
  102. package/node_modules/@eslint/markdown/dist/rules/no-empty-images.d.ts +14 -14
  103. package/node_modules/@eslint/markdown/dist/rules/no-empty-images.js +2 -3
  104. package/node_modules/@eslint/markdown/dist/rules/no-empty-links.d.ts +14 -14
  105. package/node_modules/@eslint/markdown/dist/rules/no-empty-links.js +2 -3
  106. package/node_modules/@eslint/markdown/dist/rules/no-html.d.ts +15 -15
  107. package/node_modules/@eslint/markdown/dist/rules/no-html.js +2 -3
  108. package/node_modules/@eslint/markdown/dist/rules/no-invalid-label-refs.d.ts +14 -14
  109. package/node_modules/@eslint/markdown/dist/rules/no-invalid-label-refs.js +2 -3
  110. package/node_modules/@eslint/markdown/dist/rules/no-missing-atx-heading-space.d.ts +17 -17
  111. package/node_modules/@eslint/markdown/dist/rules/no-missing-atx-heading-space.js +2 -3
  112. package/node_modules/@eslint/markdown/dist/rules/no-missing-label-refs.d.ts +16 -16
  113. package/node_modules/@eslint/markdown/dist/rules/no-missing-label-refs.js +2 -3
  114. package/node_modules/@eslint/markdown/dist/rules/no-missing-link-fragments.d.ts +16 -16
  115. package/node_modules/@eslint/markdown/dist/rules/no-missing-link-fragments.js +2 -3
  116. package/node_modules/@eslint/markdown/dist/rules/no-multiple-h1.d.ts +16 -16
  117. package/node_modules/@eslint/markdown/dist/rules/no-multiple-h1.js +2 -3
  118. package/node_modules/@eslint/markdown/dist/rules/no-reference-like-urls.d.ts +15 -15
  119. package/node_modules/@eslint/markdown/dist/rules/no-reference-like-urls.js +2 -3
  120. package/node_modules/@eslint/markdown/dist/rules/no-reversed-media-syntax.d.ts +15 -15
  121. package/node_modules/@eslint/markdown/dist/rules/no-reversed-media-syntax.js +2 -3
  122. package/node_modules/@eslint/markdown/dist/rules/no-space-in-emphasis.d.ts +17 -17
  123. package/node_modules/@eslint/markdown/dist/rules/no-space-in-emphasis.js +2 -3
  124. package/node_modules/@eslint/markdown/dist/rules/no-unused-definitions.d.ts +17 -17
  125. package/node_modules/@eslint/markdown/dist/rules/no-unused-definitions.js +2 -3
  126. package/node_modules/@eslint/markdown/dist/rules/require-alt-text.d.ts +14 -14
  127. package/node_modules/@eslint/markdown/dist/rules/require-alt-text.js +2 -3
  128. package/node_modules/@eslint/markdown/dist/rules/table-column-count.d.ts +17 -17
  129. package/node_modules/@eslint/markdown/dist/rules/table-column-count.js +2 -3
  130. package/node_modules/@eslint/markdown/package.json +5 -10
  131. package/node_modules/@eslint-community/eslint-utils/index.js +1 -1
  132. package/node_modules/@eslint-community/eslint-utils/index.js.map +1 -1
  133. package/node_modules/@eslint-community/eslint-utils/index.mjs +1 -1
  134. package/node_modules/@eslint-community/eslint-utils/index.mjs.map +1 -1
  135. package/node_modules/@eslint-community/eslint-utils/package.json +12 -7
  136. package/node_modules/@html-eslint/core/dist/index.js +1 -0
  137. package/node_modules/@html-eslint/core/dist/index.js.map +1 -1
  138. package/node_modules/@html-eslint/core/dist/index.mjs +1 -0
  139. package/node_modules/@html-eslint/core/dist/index.mjs.map +1 -1
  140. package/node_modules/@html-eslint/core/package.json +3 -3
  141. package/node_modules/@html-eslint/eslint-plugin/lib/rules/require-content.js +20 -1
  142. package/node_modules/@html-eslint/eslint-plugin/lib/rules/require-input-label.js +110 -8
  143. package/node_modules/@html-eslint/eslint-plugin/lib/rules/utils/node.js +13 -0
  144. package/node_modules/@html-eslint/eslint-plugin/package.json +7 -7
  145. package/node_modules/@html-eslint/eslint-plugin/types/rules/require-content.d.ts.map +1 -1
  146. package/node_modules/@html-eslint/eslint-plugin/types/rules/require-input-label.d.ts.map +1 -1
  147. package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/node.d.ts +7 -0
  148. package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/node.d.ts.map +1 -1
  149. package/node_modules/@html-eslint/parser/lib/parser.js +0 -1
  150. package/node_modules/@html-eslint/parser/package.json +4 -4
  151. package/node_modules/@html-eslint/parser/types/parser.d.ts.map +1 -1
  152. package/node_modules/@html-eslint/template-parser/package.json +3 -3
  153. package/node_modules/@html-eslint/template-syntax-parser/package.json +3 -3
  154. package/node_modules/@html-eslint/types/package.json +2 -2
  155. package/node_modules/@rviscomi/capo.js/README.md +4 -4
  156. package/node_modules/@rviscomi/capo.js/dist/adapters/adapter.cjs +7 -2
  157. package/node_modules/@rviscomi/capo.js/dist/adapters/browser.cjs +31 -3
  158. package/node_modules/@rviscomi/capo.js/dist/adapters/index.cjs +36 -4
  159. package/node_modules/@rviscomi/capo.js/dist/adapters/test-suite.cjs +6 -1
  160. package/node_modules/@rviscomi/capo.js/dist/analyzer.cjs +53 -24
  161. package/node_modules/@rviscomi/capo.js/dist/chrome/README.md +53 -0
  162. package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/capo.html +1 -1
  163. package/node_modules/@rviscomi/capo.js/dist/chrome/capo.js +3 -0
  164. package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/chrome.js +56 -18
  165. package/node_modules/@rviscomi/capo.js/dist/chrome/manifest.json +26 -0
  166. package/node_modules/@rviscomi/capo.js/dist/chrome/options/options.js +1 -0
  167. package/node_modules/@rviscomi/capo.js/dist/chrome.zip +0 -0
  168. package/node_modules/@rviscomi/capo.js/dist/firefox/README.md +53 -0
  169. package/node_modules/@rviscomi/capo.js/dist/firefox/background.js +7 -0
  170. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.css +59 -0
  171. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.html +12 -0
  172. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.js +3 -0
  173. package/node_modules/@rviscomi/capo.js/dist/firefox/chrome.js +120 -0
  174. package/node_modules/@rviscomi/capo.js/dist/firefox/images/icon128.png +0 -0
  175. package/node_modules/@rviscomi/capo.js/dist/firefox/manifest.json +39 -0
  176. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.css +81 -0
  177. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.html +43 -0
  178. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.js +1 -0
  179. package/node_modules/@rviscomi/capo.js/dist/firefox/styles/open-props.css +291 -0
  180. package/node_modules/@rviscomi/capo.js/dist/firefox.zip +0 -0
  181. package/node_modules/@rviscomi/capo.js/dist/index.cjs +93 -33
  182. package/node_modules/@rviscomi/capo.js/dist/lib/colors.cjs +1 -0
  183. package/node_modules/@rviscomi/capo.js/dist/lib/io.cjs +137 -28
  184. package/node_modules/@rviscomi/capo.js/dist/lib/options.cjs +61 -0
  185. package/node_modules/@rviscomi/capo.js/dist/lib/rules.cjs +28 -13
  186. package/node_modules/@rviscomi/capo.js/dist/lib/validation.cjs +31 -16
  187. package/node_modules/@rviscomi/capo.js/dist/source.zip +0 -0
  188. package/node_modules/@rviscomi/capo.js/dist/types/adapters/adapter.d.ts +105 -0
  189. package/node_modules/@rviscomi/capo.js/dist/types/adapters/browser.d.ts +107 -0
  190. package/node_modules/@rviscomi/capo.js/dist/types/adapters/index.d.ts +7 -0
  191. package/node_modules/@rviscomi/capo.js/dist/types/adapters/test-suite.d.ts +52 -0
  192. package/node_modules/@rviscomi/capo.js/dist/types/analyzer.d.ts +195 -0
  193. package/node_modules/@rviscomi/capo.js/dist/types/index.d.ts +29 -0
  194. package/node_modules/@rviscomi/capo.js/dist/types/lib/colors.d.ts +20 -0
  195. package/node_modules/@rviscomi/capo.js/dist/types/lib/io.d.ts +166 -0
  196. package/node_modules/@rviscomi/capo.js/dist/types/lib/options.d.ts +114 -0
  197. package/node_modules/@rviscomi/capo.js/dist/types/lib/rules.d.ts +111 -0
  198. package/node_modules/@rviscomi/capo.js/dist/types/lib/validation.d.ts +61 -0
  199. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/adapter.d.ts +105 -0
  200. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/browser.d.ts +107 -0
  201. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/index.d.ts +7 -0
  202. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/test-suite.d.ts +52 -0
  203. package/node_modules/@rviscomi/capo.js/dist/types/src/analyzer.d.ts +195 -0
  204. package/node_modules/@rviscomi/capo.js/dist/types/src/index.d.ts +13 -0
  205. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/colors.d.ts +20 -0
  206. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/io.d.ts +166 -0
  207. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/options.d.ts +114 -0
  208. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/rules.d.ts +111 -0
  209. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/validation.d.ts +61 -0
  210. package/node_modules/@rviscomi/capo.js/package.json +34 -16
  211. package/node_modules/@rviscomi/capo.js/src/adapters/adapter.js +16 -5
  212. package/node_modules/@rviscomi/capo.js/src/adapters/browser.js +30 -4
  213. package/node_modules/@rviscomi/capo.js/src/adapters/test-suite.js +11 -10
  214. package/node_modules/@rviscomi/capo.js/src/analyzer.js +47 -25
  215. package/node_modules/@rviscomi/capo.js/src/extension/README.md +53 -0
  216. package/node_modules/@rviscomi/capo.js/src/extension/background.js +7 -0
  217. package/node_modules/@rviscomi/capo.js/src/extension/capo.css +59 -0
  218. package/node_modules/@rviscomi/capo.js/src/extension/capo.html +12 -0
  219. package/node_modules/@rviscomi/capo.js/src/extension/capo.js +93 -0
  220. package/node_modules/@rviscomi/capo.js/src/extension/chrome.js +120 -0
  221. package/node_modules/@rviscomi/capo.js/src/extension/images/icon128.png +0 -0
  222. package/node_modules/@rviscomi/capo.js/src/extension/images/icon256.png +0 -0
  223. package/node_modules/@rviscomi/capo.js/{crx → src/extension}/manifest.json +1 -1
  224. package/node_modules/@rviscomi/capo.js/src/extension/options/options.css +81 -0
  225. package/node_modules/@rviscomi/capo.js/src/extension/options/options.html +43 -0
  226. package/node_modules/@rviscomi/capo.js/src/extension/options.js +87 -0
  227. package/node_modules/@rviscomi/capo.js/src/extension/styles/open-props.css +291 -0
  228. package/node_modules/@rviscomi/capo.js/src/index.js +10 -0
  229. package/node_modules/@rviscomi/capo.js/src/lib/colors.js +14 -0
  230. package/node_modules/@rviscomi/capo.js/src/lib/io.js +171 -32
  231. package/node_modules/@rviscomi/capo.js/src/lib/options.js +82 -1
  232. package/node_modules/@rviscomi/capo.js/src/lib/rules.js +120 -43
  233. package/node_modules/@rviscomi/capo.js/src/lib/validation.js +211 -86
  234. package/node_modules/@rviscomi/capo.js/src/web/capo.js +5 -8
  235. package/node_modules/@types/hast/README.md +2 -2
  236. package/node_modules/@types/hast/index.d.ts +642 -0
  237. package/node_modules/@types/hast/package.json +9 -3
  238. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/all.d.ts +0 -4
  239. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/all.js +0 -4
  240. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/all.js +0 -4
  241. package/node_modules/@typescript-eslint/eslint-plugin/dist/index.d.ts +0 -4
  242. package/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +47 -0
  243. package/node_modules/@typescript-eslint/eslint-plugin/dist/raw-plugin.d.ts +0 -4
  244. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js +4 -4
  245. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.d.ts +1 -1
  246. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js +23 -10
  247. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js +1 -1
  248. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js +16 -2
  249. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js +41 -3
  250. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-restricted-imports.js +12 -0
  251. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.d.ts +1 -1
  252. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js +5 -4
  253. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js +1 -1
  254. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-parameter-property-assignment.js +1 -1
  255. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-template-expression.js +2 -2
  256. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js +5 -1
  257. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js +1 -1
  258. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js +2 -1
  259. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js +1 -1
  260. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js +36 -9
  261. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/index.js +11 -2
  262. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/legacy.js +11 -2
  263. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/package.json +1 -1
  264. package/node_modules/@typescript-eslint/eslint-plugin/package.json +22 -11
  265. package/node_modules/@typescript-eslint/parser/dist/index.js +47 -0
  266. package/node_modules/@typescript-eslint/parser/dist/parser.js +11 -6
  267. package/node_modules/@typescript-eslint/parser/package.json +9 -7
  268. package/node_modules/@typescript-eslint/project-service/package.json +7 -5
  269. package/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js +2 -2
  270. package/node_modules/@typescript-eslint/scope-manager/dist/scope/index.d.ts +1 -0
  271. package/node_modules/@typescript-eslint/scope-manager/dist/scope/index.js +1 -0
  272. package/node_modules/@typescript-eslint/scope-manager/package.json +8 -6
  273. package/node_modules/@typescript-eslint/tsconfig-utils/package.json +5 -3
  274. package/node_modules/@typescript-eslint/type-utils/package.json +9 -7
  275. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +10 -0
  276. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +13 -0
  277. package/node_modules/@typescript-eslint/types/package.json +5 -3
  278. package/node_modules/@typescript-eslint/typescript-estree/dist/check-syntax-errors.js +22 -6
  279. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +5 -4
  280. package/node_modules/@typescript-eslint/typescript-estree/dist/getImportClausePhaseModifier.d.ts +4 -0
  281. package/node_modules/@typescript-eslint/typescript-estree/dist/getImportClausePhaseModifier.js +56 -0
  282. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js +1 -1
  283. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.d.ts +1 -1
  284. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +27 -18
  285. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +8 -0
  286. package/node_modules/@typescript-eslint/typescript-estree/package.json +9 -7
  287. package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts +1 -1
  288. package/node_modules/@typescript-eslint/utils/package.json +8 -6
  289. package/node_modules/@typescript-eslint/visitor-keys/package.json +6 -4
  290. package/node_modules/acorn/CHANGELOG.md +12 -0
  291. package/node_modules/acorn/README.md +5 -0
  292. package/node_modules/acorn/dist/acorn.d.mts +8 -0
  293. package/node_modules/acorn/dist/acorn.d.ts +8 -0
  294. package/node_modules/acorn/dist/acorn.js +16 -7
  295. package/node_modules/acorn/dist/acorn.mjs +16 -7
  296. package/node_modules/acorn/package.json +1 -1
  297. package/node_modules/astro-eslint-parser/lib/index.d.mts +113 -18
  298. package/node_modules/astro-eslint-parser/lib/index.mjs +871 -1172
  299. package/node_modules/astro-eslint-parser/package.json +7 -9
  300. package/node_modules/brace-expansion/README.md +11 -0
  301. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
  302. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  303. package/node_modules/brace-expansion/dist/commonjs/index.js +162 -84
  304. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  305. package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
  306. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  307. package/node_modules/brace-expansion/dist/esm/index.js +161 -83
  308. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  309. package/node_modules/brace-expansion/package.json +2 -2
  310. package/node_modules/eslint/README.md +2 -2
  311. package/node_modules/eslint/lib/cli-engine/formatters/html.js +1 -1
  312. package/node_modules/eslint/lib/languages/js/index.js +1 -1
  313. package/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +1 -1
  314. package/node_modules/eslint/lib/linter/vfile.js +1 -1
  315. package/node_modules/eslint/lib/rules/class-methods-use-this.js +6 -5
  316. package/node_modules/eslint/lib/rules/complexity.js +1 -1
  317. package/node_modules/eslint/lib/rules/eqeqeq.js +26 -6
  318. package/node_modules/eslint/lib/rules/func-name-matching.js +3 -3
  319. package/node_modules/eslint/lib/rules/generator-star-spacing.js +4 -6
  320. package/node_modules/eslint/lib/rules/indent.js +4 -6
  321. package/node_modules/eslint/lib/rules/key-spacing.js +5 -7
  322. package/node_modules/eslint/lib/rules/max-len.js +1 -1
  323. package/node_modules/eslint/lib/rules/max-nested-callbacks.js +11 -1
  324. package/node_modules/eslint/lib/rules/no-compare-neg-zero.js +91 -8
  325. package/node_modules/eslint/lib/rules/no-control-regex.js +3 -0
  326. package/node_modules/eslint/lib/rules/no-implicit-coercion.js +22 -8
  327. package/node_modules/eslint/lib/rules/no-invalid-regexp.js +3 -1
  328. package/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +5 -7
  329. package/node_modules/eslint/lib/rules/no-promise-executor-return.js +5 -7
  330. package/node_modules/eslint/lib/rules/no-script-url.js +4 -6
  331. package/node_modules/eslint/lib/rules/no-shadow.js +14 -20
  332. package/node_modules/eslint/lib/rules/no-unreachable-loop.js +8 -4
  333. package/node_modules/eslint/lib/rules/prefer-numeric-literals.js +14 -6
  334. package/node_modules/eslint/lib/rules/prefer-object-has-own.js +4 -6
  335. package/node_modules/eslint/lib/rules/prefer-object-spread.js +9 -1
  336. package/node_modules/eslint/lib/rules/prefer-template.js +1 -1
  337. package/node_modules/eslint/lib/rules/preserve-caught-error.js +268 -116
  338. package/node_modules/eslint/lib/rules/quotes.js +1 -1
  339. package/node_modules/eslint/lib/rules/radix.js +58 -57
  340. package/node_modules/eslint/lib/rules/use-isnan.js +20 -12
  341. package/node_modules/eslint/lib/rules/utils/ast-utils.js +1 -1
  342. package/node_modules/eslint/lib/shared/serialization.js +1 -1
  343. package/node_modules/eslint/lib/shared/translate-cli-options.js +3 -3
  344. package/node_modules/eslint/lib/types/config-api.d.ts +8 -1
  345. package/node_modules/eslint/lib/types/index.d.ts +3 -6
  346. package/node_modules/eslint/lib/types/rules.d.ts +17 -9
  347. package/node_modules/eslint/package.json +7 -7
  348. package/node_modules/eslint-plugin-astro/README.md +10 -2
  349. package/node_modules/eslint-plugin-astro/lib/index.d.mts +0 -1
  350. package/node_modules/eslint-plugin-astro/lib/index.mjs +76 -637
  351. package/node_modules/eslint-plugin-astro/package.json +11 -11
  352. package/node_modules/eslint-plugin-toml/README.md +2 -0
  353. package/node_modules/eslint-plugin-toml/lib/index.d.mts +6 -5
  354. package/node_modules/eslint-plugin-toml/lib/index.mjs +32 -3
  355. package/node_modules/eslint-plugin-toml/package.json +7 -7
  356. package/node_modules/eslint-plugin-yml/README.md +1 -0
  357. package/node_modules/eslint-plugin-yml/lib/index.mjs +125 -21
  358. package/node_modules/eslint-plugin-yml/package.json +7 -7
  359. package/node_modules/flatted/golang/pkg/flatted/flatted.go +16 -14
  360. package/node_modules/flatted/package.json +10 -5
  361. package/node_modules/flatted/types/index.d.ts +1 -1
  362. package/node_modules/globals/globals.json +105 -33
  363. package/node_modules/globals/index.d.ts +105 -33
  364. package/node_modules/globals/package.json +2 -2
  365. package/node_modules/mdn-data/css/properties.json +64 -16
  366. package/node_modules/mdn-data/css/properties.schema.json +1 -7
  367. package/node_modules/mdn-data/css/syntaxes.json +1 -1
  368. package/node_modules/mdn-data/l10n/css.json +3 -62
  369. package/node_modules/mdn-data/package.json +1 -1
  370. package/node_modules/minimatch/package.json +9 -9
  371. package/node_modules/nanoid/non-secure/index.cjs +2 -2
  372. package/node_modules/nanoid/non-secure/index.js +2 -2
  373. package/node_modules/nanoid/package.json +1 -1
  374. package/node_modules/picomatch/README.md +15 -21
  375. package/node_modules/picomatch/lib/parse.js +39 -9
  376. package/node_modules/picomatch/lib/picomatch.js +14 -2
  377. package/node_modules/picomatch/package.json +3 -2
  378. package/node_modules/postcss/README.md +1 -2
  379. package/node_modules/postcss/lib/container.js +81 -34
  380. package/node_modules/postcss/lib/fromJSON.js +65 -26
  381. package/node_modules/postcss/lib/input.js +7 -1
  382. package/node_modules/postcss/lib/lazy-result.js +77 -14
  383. package/node_modules/postcss/lib/list.js +1 -0
  384. package/node_modules/postcss/lib/node.d.ts +2 -2
  385. package/node_modules/postcss/lib/node.js +90 -52
  386. package/node_modules/postcss/lib/postcss.d.ts +4 -1
  387. package/node_modules/postcss/lib/previous-map.js +6 -3
  388. package/node_modules/postcss/lib/processor.js +1 -1
  389. package/node_modules/postcss/lib/root.js +16 -1
  390. package/node_modules/postcss/lib/stringifier.js +112 -25
  391. package/node_modules/postcss/lib/warning.js +10 -0
  392. package/node_modules/postcss/package.json +2 -2
  393. package/node_modules/typescript-eslint/dist/index.js +47 -0
  394. package/node_modules/typescript-eslint/package.json +14 -6
  395. package/node_modules/yaml-eslint-parser/lib/chunk-CfYAbeIz.mjs +13 -0
  396. package/node_modules/yaml-eslint-parser/lib/index.d.mts +2 -2
  397. package/node_modules/yaml-eslint-parser/lib/index.mjs +164 -157
  398. package/node_modules/yaml-eslint-parser/package.json +17 -18
  399. package/package.json +23 -23
  400. package/node_modules/@astrojs/compiler/LICENSE +0 -53
  401. package/node_modules/@astrojs/compiler/README.md +0 -72
  402. package/node_modules/@astrojs/compiler/dist/astro.wasm +0 -0
  403. package/node_modules/@astrojs/compiler/dist/browser/index.cjs +0 -2
  404. package/node_modules/@astrojs/compiler/dist/browser/index.d.ts +0 -11
  405. package/node_modules/@astrojs/compiler/dist/browser/index.js +0 -1
  406. package/node_modules/@astrojs/compiler/dist/browser/utils.cjs +0 -3
  407. package/node_modules/@astrojs/compiler/dist/browser/utils.d.ts +0 -29
  408. package/node_modules/@astrojs/compiler/dist/browser/utils.js +0 -3
  409. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.cjs +0 -2
  410. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.d.ts +0 -37
  411. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.js +0 -1
  412. package/node_modules/@astrojs/compiler/dist/chunk-QR6QDSEV.js +0 -2
  413. package/node_modules/@astrojs/compiler/dist/chunk-W5DTLHV4.js +0 -1
  414. package/node_modules/@astrojs/compiler/dist/node/index.cjs +0 -1
  415. package/node_modules/@astrojs/compiler/dist/node/index.d.ts +0 -12
  416. package/node_modules/@astrojs/compiler/dist/node/index.js +0 -1
  417. package/node_modules/@astrojs/compiler/dist/node/sync.cjs +0 -1
  418. package/node_modules/@astrojs/compiler/dist/node/sync.d.ts +0 -16
  419. package/node_modules/@astrojs/compiler/dist/node/sync.js +0 -1
  420. package/node_modules/@astrojs/compiler/dist/node/utils.cjs +0 -3
  421. package/node_modules/@astrojs/compiler/dist/node/utils.d.ts +0 -29
  422. package/node_modules/@astrojs/compiler/dist/node/utils.js +0 -3
  423. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.cjs +0 -1
  424. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.d.ts +0 -37
  425. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.js +0 -1
  426. package/node_modules/@astrojs/compiler/dist/shared/ast.cjs +0 -1
  427. package/node_modules/@astrojs/compiler/dist/shared/ast.d.ts +0 -74
  428. package/node_modules/@astrojs/compiler/dist/shared/ast.js +0 -0
  429. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.cjs +0 -1
  430. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.d.ts +0 -18
  431. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.js +0 -1
  432. package/node_modules/@astrojs/compiler/dist/shared/types.cjs +0 -1
  433. package/node_modules/@astrojs/compiler/dist/shared/types.d.ts +0 -153
  434. package/node_modules/@astrojs/compiler/dist/shared/types.js +0 -1
  435. package/node_modules/@astrojs/compiler/package.json +0 -58
  436. package/node_modules/@astrojs/compiler/sync.d.ts +0 -1
  437. package/node_modules/@astrojs/compiler/types.d.ts +0 -1
  438. package/node_modules/@astrojs/compiler/utils.d.ts +0 -1
  439. package/node_modules/@pkgr/core/index.d.cts +0 -3
  440. package/node_modules/@pkgr/core/lib/constants.d.ts +0 -6
  441. package/node_modules/@pkgr/core/lib/constants.js +0 -9
  442. package/node_modules/@pkgr/core/lib/constants.js.map +0 -1
  443. package/node_modules/@pkgr/core/lib/helpers.d.ts +0 -19
  444. package/node_modules/@pkgr/core/lib/helpers.js +0 -67
  445. package/node_modules/@pkgr/core/lib/helpers.js.map +0 -1
  446. package/node_modules/@pkgr/core/lib/index.cjs +0 -91
  447. package/node_modules/@pkgr/core/lib/index.d.ts +0 -2
  448. package/node_modules/@pkgr/core/lib/index.js +0 -3
  449. package/node_modules/@pkgr/core/lib/index.js.map +0 -1
  450. package/node_modules/@pkgr/core/package.json +0 -38
  451. package/node_modules/@rviscomi/capo.js/crx/README.md +0 -10
  452. package/node_modules/@rviscomi/capo.js/crx/capo.js +0 -3
  453. package/node_modules/@rviscomi/capo.js/crx/options/options.js +0 -1
  454. package/node_modules/@rviscomi/capo.js/docs/.vscode/extensions.json +0 -4
  455. package/node_modules/@rviscomi/capo.js/docs/.vscode/launch.json +0 -11
  456. package/node_modules/@rviscomi/capo.js/docs/README.md +0 -51
  457. package/node_modules/@rviscomi/capo.js/docs/astro.config.mjs +0 -82
  458. package/node_modules/@rviscomi/capo.js/docs/package-lock.json +0 -7439
  459. package/node_modules/@rviscomi/capo.js/docs/package.json +0 -21
  460. package/node_modules/@rviscomi/capo.js/docs/public/capo-social-alt.webp +0 -0
  461. package/node_modules/@rviscomi/capo.js/docs/public/capo-social.png +0 -0
  462. package/node_modules/@rviscomi/capo.js/docs/public/capo-social.webp +0 -0
  463. package/node_modules/@rviscomi/capo.js/docs/public/favicon.svg +0 -13
  464. package/node_modules/@rviscomi/capo.js/docs/src/assets/bookmarklet-setup.png +0 -0
  465. package/node_modules/@rviscomi/capo.js/docs/src/assets/bookmarklet.png +0 -0
  466. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo-chrome.png +0 -0
  467. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo-extension.png +0 -0
  468. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo800.png +0 -0
  469. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console-expanded.png +0 -0
  470. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console-interactive.png +0 -0
  471. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console.png +0 -0
  472. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-hover-validation.png +0 -0
  473. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-menu.png +0 -0
  474. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-options-dark.png +0 -0
  475. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-options-light.png +0 -0
  476. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-store.png +0 -0
  477. package/node_modules/@rviscomi/capo.js/docs/src/assets/custom-palette.png +0 -0
  478. package/node_modules/@rviscomi/capo.js/docs/src/assets/developer-mode.png +0 -0
  479. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-console.png +0 -0
  480. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-snippet.png +0 -0
  481. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-sources.png +0 -0
  482. package/node_modules/@rviscomi/capo.js/docs/src/assets/houston.webp +0 -0
  483. package/node_modules/@rviscomi/capo.js/docs/src/assets/load-unpacked.png +0 -0
  484. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-areas.png +0 -0
  485. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-base.png +0 -0
  486. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-crx-stripes.png +0 -0
  487. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-csp.png +0 -0
  488. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-invalid-element.png +0 -0
  489. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-origin-trial.png +0 -0
  490. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-title.png +0 -0
  491. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoClient.astro +0 -165
  492. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoOptions.astro +0 -10
  493. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoPalette.astro +0 -26
  494. package/node_modules/@rviscomi/capo.js/docs/src/components/InlineCapoIcon.astro +0 -15
  495. package/node_modules/@rviscomi/capo.js/docs/src/components/InlineCapoWeightBars.astro +0 -39
  496. package/node_modules/@rviscomi/capo.js/docs/src/components/VirtualConsole.astro +0 -11
  497. package/node_modules/@rviscomi/capo.js/docs/src/content/config.ts +0 -7
  498. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/contributing.mdx +0 -8
  499. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/crx-local.mdx +0 -28
  500. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/custom-adapters.mdx +0 -273
  501. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/index.mdx +0 -108
  502. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/migration-v2.mdx +0 -62
  503. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/actionability.mdx +0 -6
  504. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/assessment-mode.mdx +0 -29
  505. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/config.mdx +0 -195
  506. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/demo.mdx +0 -9
  507. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/extension.mdx +0 -116
  508. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/performance.mdx +0 -6
  509. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/quick-start.mdx +0 -26
  510. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/rules.mdx +0 -202
  511. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/validation.mdx +0 -197
  512. package/node_modules/@rviscomi/capo.js/docs/src/env.d.ts +0 -2
  513. package/node_modules/@rviscomi/capo.js/docs/src/lib/VirtualConsole.js +0 -190
  514. package/node_modules/@rviscomi/capo.js/docs/src/lib/capo.js +0 -1533
  515. package/node_modules/@rviscomi/capo.js/docs/src/styles/custom.css +0 -7
  516. package/node_modules/@rviscomi/capo.js/docs/src/styles/virtual-console.css +0 -131
  517. package/node_modules/@rviscomi/capo.js/docs/tests/VirtualConsole.test.js +0 -108
  518. package/node_modules/@rviscomi/capo.js/docs/tsconfig.json +0 -3
  519. package/node_modules/@rviscomi/capo.js/src/crx/capo.js +0 -62
  520. package/node_modules/@rviscomi/capo.js/src/crx/options.js +0 -69
  521. package/node_modules/astrojs-compiler-sync/LICENSE +0 -53
  522. package/node_modules/astrojs-compiler-sync/README.md +0 -3
  523. package/node_modules/astrojs-compiler-sync/browser/index.d.ts +0 -6
  524. package/node_modules/astrojs-compiler-sync/browser/index.js +0 -76
  525. package/node_modules/astrojs-compiler-sync/browser/wasm_exec.js +0 -665
  526. package/node_modules/astrojs-compiler-sync/lib/astrojs-compiler-worker.js +0 -5
  527. package/node_modules/astrojs-compiler-sync/lib/compiler-sync.cjs +0 -31
  528. package/node_modules/astrojs-compiler-sync/lib/index.cjs +0 -30
  529. package/node_modules/astrojs-compiler-sync/lib/index.d.cts +0 -3
  530. package/node_modules/astrojs-compiler-sync/lib/index.d.ts +0 -14
  531. package/node_modules/astrojs-compiler-sync/lib/index.js +0 -18
  532. package/node_modules/astrojs-compiler-sync/package.json +0 -100
  533. package/node_modules/entities/LICENSE +0 -11
  534. package/node_modules/entities/dist/decode-codepoint.d.ts +0 -8
  535. package/node_modules/entities/dist/decode-codepoint.d.ts.map +0 -1
  536. package/node_modules/entities/dist/decode-codepoint.js +0 -46
  537. package/node_modules/entities/dist/decode-codepoint.js.map +0 -1
  538. package/node_modules/entities/dist/decode.d.ts +0 -194
  539. package/node_modules/entities/dist/decode.d.ts.map +0 -1
  540. package/node_modules/entities/dist/decode.js +0 -544
  541. package/node_modules/entities/dist/decode.js.map +0 -1
  542. package/node_modules/entities/dist/encode.d.ts +0 -24
  543. package/node_modules/entities/dist/encode.d.ts.map +0 -1
  544. package/node_modules/entities/dist/encode.js +0 -90
  545. package/node_modules/entities/dist/encode.js.map +0 -1
  546. package/node_modules/entities/dist/escape.d.ts +0 -48
  547. package/node_modules/entities/dist/escape.d.ts.map +0 -1
  548. package/node_modules/entities/dist/escape.js +0 -132
  549. package/node_modules/entities/dist/escape.js.map +0 -1
  550. package/node_modules/entities/dist/generated/decode-data-html.d.ts +0 -3
  551. package/node_modules/entities/dist/generated/decode-data-html.d.ts.map +0 -1
  552. package/node_modules/entities/dist/generated/decode-data-html.js +0 -5
  553. package/node_modules/entities/dist/generated/decode-data-html.js.map +0 -1
  554. package/node_modules/entities/dist/generated/decode-data-xml.d.ts +0 -3
  555. package/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +0 -1
  556. package/node_modules/entities/dist/generated/decode-data-xml.js +0 -5
  557. package/node_modules/entities/dist/generated/decode-data-xml.js.map +0 -1
  558. package/node_modules/entities/dist/generated/encode-html.d.ts +0 -5
  559. package/node_modules/entities/dist/generated/encode-html.d.ts.map +0 -1
  560. package/node_modules/entities/dist/generated/encode-html.js +0 -12
  561. package/node_modules/entities/dist/generated/encode-html.js.map +0 -1
  562. package/node_modules/entities/dist/index.d.ts +0 -89
  563. package/node_modules/entities/dist/index.d.ts.map +0 -1
  564. package/node_modules/entities/dist/index.js +0 -91
  565. package/node_modules/entities/dist/index.js.map +0 -1
  566. package/node_modules/entities/dist/internal/bin-trie-flags.d.ts +0 -17
  567. package/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +0 -1
  568. package/node_modules/entities/dist/internal/bin-trie-flags.js +0 -18
  569. package/node_modules/entities/dist/internal/bin-trie-flags.js.map +0 -1
  570. package/node_modules/entities/dist/internal/decode-shared.d.ts +0 -7
  571. package/node_modules/entities/dist/internal/decode-shared.d.ts.map +0 -1
  572. package/node_modules/entities/dist/internal/decode-shared.js +0 -17
  573. package/node_modules/entities/dist/internal/decode-shared.js.map +0 -1
  574. package/node_modules/entities/dist/internal/encode-shared.d.ts +0 -33
  575. package/node_modules/entities/dist/internal/encode-shared.d.ts.map +0 -1
  576. package/node_modules/entities/dist/internal/encode-shared.js +0 -93
  577. package/node_modules/entities/dist/internal/encode-shared.js.map +0 -1
  578. package/node_modules/entities/package.json +0 -83
  579. package/node_modules/entities/readme.md +0 -131
  580. package/node_modules/entities/src/decode-codepoint.ts +0 -50
  581. package/node_modules/entities/src/decode.ts +0 -671
  582. package/node_modules/entities/src/encode.ts +0 -95
  583. package/node_modules/entities/src/escape.ts +0 -160
  584. package/node_modules/entities/src/generated/decode-data-html.ts +0 -7
  585. package/node_modules/entities/src/generated/decode-data-xml.ts +0 -7
  586. package/node_modules/entities/src/generated/encode-html.ts +0 -18
  587. package/node_modules/entities/src/index.ts +0 -162
  588. package/node_modules/entities/src/internal/bin-trie-flags.ts +0 -16
  589. package/node_modules/entities/src/internal/decode-shared.ts +0 -18
  590. package/node_modules/entities/src/internal/encode-shared.ts +0 -123
  591. package/node_modules/parse5/README.md +0 -38
  592. package/node_modules/parse5/dist/common/doctype.d.ts +0 -4
  593. package/node_modules/parse5/dist/common/doctype.js +0 -114
  594. package/node_modules/parse5/dist/common/error-codes.d.ts +0 -67
  595. package/node_modules/parse5/dist/common/error-codes.js +0 -63
  596. package/node_modules/parse5/dist/common/foreign-content.d.ts +0 -9
  597. package/node_modules/parse5/dist/common/foreign-content.js +0 -228
  598. package/node_modules/parse5/dist/common/html.d.ts +0 -289
  599. package/node_modules/parse5/dist/common/html.js +0 -523
  600. package/node_modules/parse5/dist/common/token.d.ts +0 -84
  601. package/node_modules/parse5/dist/common/token.js +0 -20
  602. package/node_modules/parse5/dist/common/unicode.d.ts +0 -42
  603. package/node_modules/parse5/dist/common/unicode.js +0 -62
  604. package/node_modules/parse5/dist/index.d.ts +0 -71
  605. package/node_modules/parse5/dist/index.js +0 -42
  606. package/node_modules/parse5/dist/parser/formatting-element-list.d.ts +0 -36
  607. package/node_modules/parse5/dist/parser/formatting-element-list.js +0 -110
  608. package/node_modules/parse5/dist/parser/index.d.ts +0 -221
  609. package/node_modules/parse5/dist/parser/index.js +0 -3245
  610. package/node_modules/parse5/dist/parser/open-element-stack.d.ts +0 -53
  611. package/node_modules/parse5/dist/parser/open-element-stack.js +0 -324
  612. package/node_modules/parse5/dist/serializer/index.d.ts +0 -60
  613. package/node_modules/parse5/dist/serializer/index.js +0 -168
  614. package/node_modules/parse5/dist/tokenizer/index.d.ts +0 -247
  615. package/node_modules/parse5/dist/tokenizer/index.js +0 -2712
  616. package/node_modules/parse5/dist/tokenizer/preprocessor.d.ts +0 -36
  617. package/node_modules/parse5/dist/tokenizer/preprocessor.js +0 -196
  618. package/node_modules/parse5/dist/tree-adapters/default.d.ts +0 -84
  619. package/node_modules/parse5/dist/tree-adapters/default.js +0 -173
  620. package/node_modules/parse5/dist/tree-adapters/interface.d.ts +0 -255
  621. package/node_modules/parse5/dist/tree-adapters/interface.js +0 -1
  622. package/node_modules/parse5/package.json +0 -53
  623. package/node_modules/synckit/README.md +0 -256
  624. package/node_modules/synckit/lib/common.d.ts +0 -5
  625. package/node_modules/synckit/lib/common.js +0 -22
  626. package/node_modules/synckit/lib/common.js.map +0 -1
  627. package/node_modules/synckit/lib/constants.d.ts +0 -38
  628. package/node_modules/synckit/lib/constants.js +0 -54
  629. package/node_modules/synckit/lib/constants.js.map +0 -1
  630. package/node_modules/synckit/lib/helpers.d.ts +0 -27
  631. package/node_modules/synckit/lib/helpers.js +0 -411
  632. package/node_modules/synckit/lib/helpers.js.map +0 -1
  633. package/node_modules/synckit/lib/index.cjs +0 -588
  634. package/node_modules/synckit/lib/index.d.cts +0 -138
  635. package/node_modules/synckit/lib/index.d.ts +0 -7
  636. package/node_modules/synckit/lib/index.js +0 -68
  637. package/node_modules/synckit/lib/index.js.map +0 -1
  638. package/node_modules/synckit/lib/types.d.ts +0 -48
  639. package/node_modules/synckit/lib/types.js +0 -2
  640. package/node_modules/synckit/lib/types.js.map +0 -1
  641. package/node_modules/synckit/package.json +0 -45
  642. package/node_modules/yaml-eslint-parser/lib/chunk-15K8U1wQ.mjs +0 -18
  643. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/background.js +0 -0
  644. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/capo.css +0 -0
  645. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/images/icon128.png +0 -0
  646. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/images/icon256.png +0 -0
  647. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/options/options.css +0 -0
  648. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/options/options.html +0 -0
  649. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/styles/open-props.css +0 -0
  650. /package/node_modules/@rviscomi/capo.js/{docs/src/assets/capo256.png → dist/firefox/images/icon256.png} +0 -0
  651. /package/node_modules/eslint-plugin-toml/lib/{chunk-CfYAbeIz.mjs → rolldown-runtime-D7D4PA-g.mjs} +0 -0
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@rviscomi/capo.js",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
4
7
  "description": "Get your ﹤𝚑𝚎𝚊𝚍﹥ in order",
5
8
  "author": "Rick Viscomi",
6
9
  "license": "Apache-2.0",
@@ -14,13 +17,12 @@
14
17
  "homepage": "https://rviscomi.github.io/capo.js/",
15
18
  "files": [
16
19
  "src",
17
- "dist",
18
- "crx",
19
- "docs"
20
+ "dist"
20
21
  ],
21
22
  "type": "module",
22
23
  "main": "dist/index.cjs",
23
24
  "module": "src/index.js",
25
+ "types": "./dist/types/index.d.ts",
24
26
  "alias": {
25
27
  "@rviscomi/capo.js": "./src/index.js",
26
28
  "@rviscomi/capo.js/adapters/browser": "./src/adapters/browser.js",
@@ -29,34 +31,42 @@
29
31
  },
30
32
  "exports": {
31
33
  ".": {
34
+ "types": "./dist/types/index.d.ts",
32
35
  "import": "./src/index.js",
33
36
  "require": "./dist/index.cjs"
34
37
  },
35
38
  "./adapters": {
39
+ "types": "./dist/types/adapters/index.d.ts",
36
40
  "import": "./src/adapters/index.js",
37
41
  "require": "./dist/adapters/index.cjs"
38
42
  },
39
43
  "./adapters/browser": {
44
+ "types": "./dist/types/adapters/browser.d.ts",
40
45
  "import": "./src/adapters/browser.js",
41
46
  "require": "./dist/adapters/browser.cjs"
42
47
  },
43
48
  "./rules": {
49
+ "types": "./dist/types/lib/rules.d.ts",
44
50
  "import": "./src/lib/rules.js",
45
51
  "require": "./dist/lib/rules.cjs"
46
52
  },
47
53
  "./validation": {
54
+ "types": "./dist/types/lib/validation.d.ts",
48
55
  "import": "./src/lib/validation.js",
49
56
  "require": "./dist/lib/validation.cjs"
50
57
  },
51
58
  "./lib/io": {
59
+ "types": "./dist/types/lib/io.d.ts",
52
60
  "import": "./src/lib/io.js",
53
61
  "require": "./dist/lib/io.cjs"
54
62
  },
55
63
  "./lib/options": {
64
+ "types": "./dist/types/lib/options.d.ts",
56
65
  "import": "./src/lib/options.js",
57
66
  "require": "./dist/lib/options.cjs"
58
67
  },
59
68
  "./adapters/test-suite": {
69
+ "types": "./dist/types/adapters/test-suite.d.ts",
60
70
  "import": "./src/adapters/test-suite.js",
61
71
  "require": "./dist/adapters/test-suite.cjs"
62
72
  }
@@ -65,15 +75,14 @@
65
75
  "doc": "docs"
66
76
  },
67
77
  "targets": {
68
-
69
- "crx": {
70
- "source": "src/crx/capo.js",
71
- "distDir": "crx",
78
+ "chrome": {
79
+ "source": "src/extension/capo.js",
80
+ "distDir": "dist/chrome",
72
81
  "sourceMap": false
73
82
  },
74
- "crx-options": {
75
- "source": "src/crx/options.js",
76
- "distDir": "crx/options",
83
+ "chrome-options": {
84
+ "source": "src/extension/options.js",
85
+ "distDir": "dist/chrome/options",
77
86
  "sourceMap": false
78
87
  },
79
88
  "web": {
@@ -85,8 +94,13 @@
85
94
  }
86
95
  },
87
96
  "scripts": {
97
+ "typecheck": "tsc --noEmit",
98
+ "typecheck:ext": "tsc --noEmit -p tsconfig.extension.json",
99
+ "typecheck:test": "tsc --noEmit -p tsconfig.test.json",
100
+ "build:types": "tsc -p tsconfig.json",
88
101
  "watch": "parcel watch",
89
- "build": "npm run build:cjs && parcel build",
102
+ "build": "npm run build:cjs && npm run build:types && parcel build && node scripts/build-extension.js",
103
+ "package:source": "zip -r -q dist/source.zip . -x \"node_modules/*\" \"dist/*\" \".git/*\" \".parcel-cache/*\" \"docs/node_modules/*\" \"docs/.astro/*\" \"docs/dist/*\" \".github/*\" \"*/.DS_Store\" \".DS_Store\"",
90
104
  "build:cjs": "esbuild src/index.js src/analyzer.js src/adapters/adapter.js src/adapters/index.js src/adapters/browser.js src/lib/rules.js src/lib/validation.js src/lib/io.js src/lib/options.js src/lib/colors.js src/adapters/test-suite.js --bundle --platform=node --format=cjs --outdir=dist --out-extension:.js=.cjs",
91
105
  "test": "node --test tests/**/*.test.js",
92
106
  "test:watch": "node --test --watch tests/**/*.test.js",
@@ -97,9 +111,13 @@
97
111
  },
98
112
  "devDependencies": {
99
113
  "@parcel/cache": "^2.16.4",
100
- "dedent": "^1.7.0",
101
- "esbuild": "^0.27.3",
102
- "jsdom": "^27.0.1",
103
- "parcel": "latest"
114
+ "@types/jsdom": "^28.0.3",
115
+ "@types/node": "^26.1.1",
116
+ "chrome-types": "^0.1.436",
117
+ "dedent": "^1.7.2",
118
+ "esbuild": "^0.28.1",
119
+ "jsdom": "^29.1.1",
120
+ "parcel": "^2.16.4",
121
+ "typescript": "^7.0.2"
104
122
  }
105
123
  }
@@ -4,10 +4,18 @@
4
4
  * This file defines the contract that all adapters must implement.
5
5
  * Adapters abstract away environment-specific operations (browser DOM vs AST nodes)
6
6
  * to make capo.js core logic reusable across different contexts.
7
- *
8
- * @interface HTMLAdapter
9
7
  */
10
8
 
9
+ /**
10
+ * Source location information for a node
11
+ * @typedef {Object} SourceLocation
12
+ * @property {number} line
13
+ * @property {number} column
14
+ * @property {number} [endLine]
15
+ * @property {number} [endColumn]
16
+ */
17
+
18
+ /** @type {readonly string[]} */
11
19
  const REQUIRED_METHODS = [
12
20
  'isElement',
13
21
  'getTagName',
@@ -22,7 +30,7 @@ const REQUIRED_METHODS = [
22
30
  ];
23
31
 
24
32
  /**
25
- * Base adapter interface (documentation only)
33
+ * Base adapter interface
26
34
  *
27
35
  * Actual adapters should implement all these methods.
28
36
  * This serves as both documentation and a reference implementation.
@@ -124,7 +132,7 @@ export class AdapterInterface {
124
132
  /**
125
133
  * Get source location for a node (optional, for linting)
126
134
  * @param {any} node - Element node
127
- * @returns {{ line: number, column: number, endLine?: number, endColumn?: number } | null}
135
+ * @returns {SourceLocation | null}
128
136
  */
129
137
  getLocation(node) {
130
138
  return null;
@@ -146,8 +154,11 @@ export class AdapterInterface {
146
154
  * @throws {Error} If adapter is missing required methods
147
155
  */
148
156
  export function validateAdapter(adapter) {
157
+ if (!adapter || typeof adapter !== 'object') {
158
+ throw new Error('Adapter must be an object');
159
+ }
149
160
  for (const method of REQUIRED_METHODS) {
150
- if (typeof adapter[method] !== 'function') {
161
+ if (typeof /** @type {Record<string, any>} */ (adapter)[method] !== 'function') {
151
162
  throw new Error(`Adapter missing required method: ${method}()`);
152
163
  }
153
164
  }
@@ -14,10 +14,9 @@ import { AdapterInterface } from './adapter.js';
14
14
  * Wraps native DOM Element APIs for use with capo.js core logic.
15
15
  *
16
16
  * @extends AdapterInterface
17
- * @implements {HTMLAdapter}
18
17
  * @example
19
18
  * import { BrowserAdapter } from './adapters/browser.js';
20
- * import { Analyzer } from '../analyzer.js';
19
+ * import { analyzeHead } from '../analyzer.js';
21
20
  *
22
21
  * const adapter = new BrowserAdapter();
23
22
  * const head = document.querySelector('head');
@@ -26,6 +25,7 @@ import { AdapterInterface } from './adapter.js';
26
25
  export class BrowserAdapter extends AdapterInterface {
27
26
  /**
28
27
  * Check if node is an Element (not text, comment, etc.)
28
+ * @override
29
29
  * @param {any} node - The node to check
30
30
  * @returns {boolean}
31
31
  */
@@ -37,6 +37,7 @@ export class BrowserAdapter extends AdapterInterface {
37
37
 
38
38
  /**
39
39
  * Get the tag name of an element (lowercase)
40
+ * @override
40
41
  * @param {any} node - Element node
41
42
  * @returns {string} - Tag name like 'meta', 'link', 'script'
42
43
  */
@@ -44,11 +45,14 @@ export class BrowserAdapter extends AdapterInterface {
44
45
  if (!node || !node.tagName) {
45
46
  return '';
46
47
  }
47
- return node.tagName.toLowerCase();
48
+ const name = node.tagName.toLowerCase();
49
+ if (name === 'static-head') return 'head';
50
+ return name;
48
51
  }
49
52
 
50
53
  /**
51
54
  * Get attribute value from element
55
+ * @override
52
56
  * @param {any} node - Element node
53
57
  * @param {string} attrName - Attribute name (case-insensitive)
54
58
  * @returns {string | null} - Attribute value or null if not found
@@ -62,6 +66,7 @@ export class BrowserAdapter extends AdapterInterface {
62
66
 
63
67
  /**
64
68
  * Check if element has a specific attribute
69
+ * @override
65
70
  * @param {any} node - Element node
66
71
  * @param {string} attrName - Attribute name (case-insensitive)
67
72
  * @returns {boolean} - True if attribute exists
@@ -75,6 +80,7 @@ export class BrowserAdapter extends AdapterInterface {
75
80
 
76
81
  /**
77
82
  * Get all attribute names for an element
83
+ * @override
78
84
  * @param {any} node - Element node
79
85
  * @returns {string[]} - Array of attribute names
80
86
  */
@@ -87,6 +93,7 @@ export class BrowserAdapter extends AdapterInterface {
87
93
 
88
94
  /**
89
95
  * Get text content of a node (for inline scripts/styles)
96
+ * @override
90
97
  * @param {any} node - Element node
91
98
  * @returns {string} - Text content
92
99
  */
@@ -99,11 +106,26 @@ export class BrowserAdapter extends AdapterInterface {
99
106
 
100
107
  /**
101
108
  * Get child elements of a node
109
+ * @override
102
110
  * @param {any} node - Parent node
103
111
  * @returns {any[]} - Array of child element nodes (excluding text/comment nodes)
104
112
  */
105
113
  getChildren(node) {
106
- if (!node || !node.children) {
114
+ if (!node) {
115
+ return [];
116
+ }
117
+ if (this.getTagName(node) === 'noscript') {
118
+ const content = node.innerHTML || '';
119
+ if (content.trim()) {
120
+ const doc = node.ownerDocument || (typeof document !== 'undefined' ? document : null);
121
+ if (doc) {
122
+ const temp = doc.createElement('div');
123
+ temp.innerHTML = content;
124
+ return Array.from(temp.children);
125
+ }
126
+ }
127
+ }
128
+ if (!node.children) {
107
129
  return [];
108
130
  }
109
131
  return Array.from(node.children);
@@ -111,6 +133,7 @@ export class BrowserAdapter extends AdapterInterface {
111
133
 
112
134
  /**
113
135
  * Get parent element of a node
136
+ * @override
114
137
  * @param {any} node - Child node
115
138
  * @returns {any | null} - Parent element node, or null if no parent
116
139
  */
@@ -123,6 +146,7 @@ export class BrowserAdapter extends AdapterInterface {
123
146
 
124
147
  /**
125
148
  * Get sibling elements of a node
149
+ * @override
126
150
  * @param {any} node - Element node
127
151
  * @returns {any[]} - Array of sibling element nodes (excluding the node itself)
128
152
  */
@@ -143,6 +167,7 @@ export class BrowserAdapter extends AdapterInterface {
143
167
  * Browser DOM elements don't have source location information,
144
168
  * so this always returns null.
145
169
  *
170
+ * @override
146
171
  * @param {any} node - Element node
147
172
  * @returns {null}
148
173
  */
@@ -153,6 +178,7 @@ export class BrowserAdapter extends AdapterInterface {
153
178
 
154
179
  /**
155
180
  * Stringify element for logging/debugging
181
+ * @override
156
182
  * @param {any} node - Element node
157
183
  * @returns {string} - String representation like "<meta charset='utf-8'>"
158
184
  */
@@ -24,13 +24,17 @@ import { describe, it } from 'node:test';
24
24
  import assert from 'node:assert/strict';
25
25
  import { validateAdapter } from './adapter.js';
26
26
 
27
+ /**
28
+ * @typedef {Object} AdapterTestSuiteOptions
29
+ * @property {(html: string) => any} createElement - Function that creates test nodes from HTML strings
30
+ * @property {boolean} [supportsLocation=false] - Whether adapter supports getLocation()
31
+ */
32
+
27
33
  /**
28
34
  * Run the standard adapter test suite
29
35
  *
30
- * @param {Function} AdapterClass - The adapter class to test
31
- * @param {Object} options - Test configuration
32
- * @param {Function} options.createElement - Function that creates test nodes from HTML strings
33
- * @param {boolean} [options.supportsLocation=false] - Whether adapter supports getLocation()
36
+ * @param {new () => any} AdapterClass - The adapter class to test
37
+ * @param {AdapterTestSuiteOptions} options - Test configuration
34
38
  */
35
39
  export function runAdapterTestSuite(AdapterClass, options) {
36
40
  const { createElement, supportsLocation = false } = options;
@@ -39,6 +43,7 @@ export function runAdapterTestSuite(AdapterClass, options) {
39
43
  throw new Error('createElement function is required in test options');
40
44
  }
41
45
 
46
+ /** @type {any} */
42
47
  let adapter;
43
48
 
44
49
  function setup() {
@@ -240,7 +245,6 @@ export function runAdapterTestSuite(AdapterClass, options) {
240
245
  assert.ok(parent, 'Should return a parent');
241
246
  assert.equal(adapter.getTagName(parent), 'head');
242
247
  } else {
243
- // If createElement doesn't support nested structures, skip this test
244
248
  assert.ok(true, 'Skipped - createElement does not support nested structures');
245
249
  }
246
250
  });
@@ -249,7 +253,6 @@ export function runAdapterTestSuite(AdapterClass, options) {
249
253
  setup();
250
254
  const el = createElement('<meta charset="utf-8">');
251
255
  const parent = adapter.getParent(el);
252
- // Parent may be null or the synthetic container
253
256
  assert.ok(parent === null || adapter.isElement(parent), 'Should return null or element');
254
257
  });
255
258
 
@@ -272,7 +275,6 @@ export function runAdapterTestSuite(AdapterClass, options) {
272
275
  assert.ok(siblings.length > 0, 'Should have siblings');
273
276
  assert.ok(!siblings.includes(meta), 'Should not include element itself');
274
277
  } else {
275
- // If createElement doesn't support nested structures, skip this test
276
278
  assert.ok(true, 'Skipped - createElement does not support nested structures');
277
279
  }
278
280
  });
@@ -285,7 +287,7 @@ export function runAdapterTestSuite(AdapterClass, options) {
285
287
  const meta = children[0];
286
288
  const siblings = adapter.getSiblings(meta);
287
289
  assert.ok(!siblings.includes(meta), 'Should not include element itself');
288
- assert.ok(!siblings.some(s => s === meta), 'Should not contain element itself');
290
+ assert.ok(!siblings.some((/** @type {any} */ s) => s === meta), 'Should not contain element itself');
289
291
  } else {
290
292
  assert.ok(true, 'Skipped - createElement does not support nested structures');
291
293
  }
@@ -296,7 +298,6 @@ export function runAdapterTestSuite(AdapterClass, options) {
296
298
  const el = createElement('<meta charset="utf-8">');
297
299
  const siblings = adapter.getSiblings(el);
298
300
  assert.ok(Array.isArray(siblings), 'Should return an array');
299
- // May be empty if no siblings, or may contain siblings if createElement adds container
300
301
  });
301
302
 
302
303
  it('should handle null node gracefully', () => {
@@ -373,7 +374,7 @@ export function runAdapterTestSuite(AdapterClass, options) {
373
374
  * This is a lighter-weight alternative that just checks the adapter
374
375
  * implements all required methods without full behavior testing.
375
376
  *
376
- * @param {Function} AdapterClass - The adapter class to test
377
+ * @param {new () => any} AdapterClass - The adapter class to test
377
378
  */
378
379
  export function testAdapterCompliance(AdapterClass) {
379
380
  describe('Adapter Compliance', () => {
@@ -9,49 +9,69 @@ import * as rules from './lib/rules.js';
9
9
  import { getValidationWarnings, getCustomValidations } from './lib/validation.js';
10
10
 
11
11
  /**
12
- * @typedef {Object} AnalysisResult
13
- * @property {Array<WeightInfo>} weights - Weight information for each element
14
- * @property {Array<ValidationWarning>} validationWarnings - Document-level validation warnings
15
- * @property {Array<CustomValidation>} customValidations - Element-level validation warnings
16
- * @property {any} headElement - Reference to the analyzed head element
17
- */
18
-
19
- /**
12
+ * @typedef {import('./adapters/adapter.js').AdapterInterface} AdapterInterface
13
+ *
20
14
  * @typedef {Object} WeightInfo
21
15
  * @property {any} element - The DOM/AST element
22
16
  * @property {number} weight - Computed weight (0-10)
23
- * @property {string} category - Weight category name (META, TITLE, etc.)
24
17
  */
25
18
 
26
19
  /**
27
20
  * @typedef {Object} ValidationWarning
21
+ * @property {string} [ruleId] - The rule identifier
28
22
  * @property {string} warning - Warning message
29
- * @property {any|Array<any>} [element] - Associated element(s)
23
+ * @property {any} [element] - Associated element
30
24
  * @property {Array<any>} [elements] - Associated elements array
31
25
  */
32
26
 
33
27
  /**
34
28
  * @typedef {Object} CustomValidation
29
+ * @property {string} [ruleId] - The rule identifier
35
30
  * @property {any} element - The element with validation issues
36
31
  * @property {Array<string>} warnings - Validation warning messages
32
+ * @property {any} [payload] - Extra diagnostic payload
33
+ */
34
+
35
+ /**
36
+ * @typedef {Object} AnalysisResult
37
+ * @property {Array<WeightInfo>} weights - Weight information for each element
38
+ * @property {Array<ValidationWarning>} validationWarnings - Document-level validation warnings
39
+ * @property {Array<CustomValidation>} customValidations - Element-level validation warnings
40
+ * @property {any} headElement - Reference to the analyzed head element
41
+ */
42
+
43
+ /**
44
+ * @typedef {Object} OrderingViolation
45
+ * @property {number} index
46
+ * @property {any} currentElement
47
+ * @property {any} nextElement
48
+ * @property {number} currentWeight
49
+ * @property {number} nextWeight
50
+ * @property {string} currentCategory
51
+ * @property {string} nextCategory
52
+ * @property {string} message
53
+ */
54
+
55
+ /**
56
+ * @typedef {AnalysisResult & { orderingViolations: Array<OrderingViolation> }} AnalysisResultWithOrdering
57
+ */
58
+
59
+ /**
60
+ * @typedef {Object} AnalyzeHeadOptions
61
+ * @property {boolean} [includeValidation=true] - Whether to include document-level validation warnings
62
+ * @property {boolean} [includeCustomValidations=true] - Whether to include element-level custom validations
37
63
  */
38
64
 
39
65
  /**
40
66
  * Analyze the head element and return element weights, validation warnings, and custom validations.
41
67
  *
42
68
  * @param {any} headNode - The head element to analyze
43
- * @param {Object} adapter - Adapter for element operations
44
- * @param {Object} [options={}] - Analysis options
45
- * @param {boolean} [options.includeValidation=true] - Whether to include document-level validation warnings
46
- * @param {boolean} [options.includeCustomValidations=true] - Whether to include element-level custom validations
47
- * @returns {Object} Analysis results
48
- * @returns {Array} returns.weights - Array of element weight objects
49
- * @returns {Array} returns.validationWarnings - Document-level validation warnings
50
- * @returns {Array} returns.customValidations - Element-level custom validation results
51
- * @returns {any} returns.headElement - The analyzed head element
69
+ * @param {AdapterInterface} adapter - Adapter for element operations
70
+ * @param {AnalyzeHeadOptions} [options={}] - Analysis options
71
+ * @returns {AnalysisResult} Analysis results
52
72
  *
53
73
  * @example
54
- * const adapter = new HtmlEslintAdapter();
74
+ * const adapter = new BrowserAdapter();
55
75
  * const results = analyzeHead(head, adapter);
56
76
  *
57
77
  * console.log(`Found ${results.weights.length} elements`);
@@ -88,11 +108,12 @@ export function analyzeHead(headNode, adapter, options = {}) {
88
108
  * Get custom validations for all elements in head
89
109
  *
90
110
  * @param {any} headNode - The <head> element
91
- * @param {Object} adapter - HTMLAdapter implementation
111
+ * @param {AdapterInterface} adapter - HTMLAdapter implementation
92
112
  * @returns {Array<CustomValidation>}
93
113
  * @private
94
114
  */
95
115
  function getElementValidations(headNode, adapter) {
116
+ /** @type {Array<CustomValidation>} */
96
117
  const customValidations = [];
97
118
  const children = adapter.getChildren(headNode);
98
119
 
@@ -137,7 +158,7 @@ export function getWeightCategory(weight) {
137
158
  * Check if elements are in optimal order
138
159
  *
139
160
  * @param {Array<WeightInfo>} weights - Weight information array
140
- * @returns {Array<Object>} Array of ordering violations
161
+ * @returns {Array<OrderingViolation>} Array of ordering violations
141
162
  *
142
163
  * @example
143
164
  * const weights = analyzeHead(head, adapter).weights;
@@ -145,6 +166,7 @@ export function getWeightCategory(weight) {
145
166
  * console.log(`${violations.length} ordering issues found`);
146
167
  */
147
168
  export function checkOrdering(weights) {
169
+ /** @type {Array<OrderingViolation>} */
148
170
  const violations = [];
149
171
 
150
172
  for (let i = 0; i < weights.length - 1; i++) {
@@ -176,9 +198,9 @@ export function checkOrdering(weights) {
176
198
  * Convenience function that combines analyzeHead() and checkOrdering()
177
199
  *
178
200
  * @param {any} headNode - The <head> element
179
- * @param {Object} adapter - HTMLAdapter implementation
180
- * @param {Object} [options={}] - Analysis options
181
- * @returns {Object} Combined analysis with weights, violations, and validations
201
+ * @param {AdapterInterface} adapter - HTMLAdapter implementation
202
+ * @param {AnalyzeHeadOptions} [options={}] - Analysis options
203
+ * @returns {AnalysisResultWithOrdering} Combined analysis with weights, violations, and validations
182
204
  *
183
205
  * @example
184
206
  * const analysis = analyzeHeadWithOrdering(head, adapter);
@@ -0,0 +1,53 @@
1
+ # Capo Browser Extension Source Code
2
+
3
+ This directory contains the source code for the Capo browser extension (available for Chrome and Firefox).
4
+
5
+ ## Build Instructions
6
+
7
+ This extension is built from source using Node.js and Parcel. Follow these steps to produce the exact binary package submitted for verification.
8
+
9
+ ### Requirements
10
+
11
+ - **Operating System:** macOS, Linux, or Windows.
12
+ - **Environment:**
13
+ - **Node.js:** v18.0.0 or higher (v22.x recommended).
14
+ - **npm:** v9.0.0 or higher (v10.x recommended).
15
+
16
+ ### 1. Installation of Prerequisites
17
+
18
+ If Node.js and npm are not installed:
19
+ - **macOS (via Homebrew):** `brew install node`
20
+ - **Windows / Linux:** Download the installer from [nodejs.org](https://nodejs.org/).
21
+
22
+ Verify installation:
23
+ ```bash
24
+ node -v
25
+ npm -v
26
+ ```
27
+
28
+ ### 2. Install Project Dependencies
29
+
30
+ Run the following command from the root of the source code directory to install all required development and build dependencies:
31
+
32
+ ```bash
33
+ npm install
34
+ ```
35
+
36
+ ### 3. Execute the Build Script
37
+
38
+ Run the build script to compile and package the extension:
39
+
40
+ ```bash
41
+ npm run build
42
+ ```
43
+
44
+ This runs:
45
+ - `npm run build:cjs`: Compiles CommonJS bundles using `esbuild`.
46
+ - `parcel build`: Compiles, bundles, and minifies the extension source code (`src/extension/capo.js` and `src/extension/options.js`) using `Parcel`.
47
+ - `node scripts/build-extension.js`: Copies static files, generates the Firefox-compatible manifest, and packages them.
48
+
49
+ ### 4. Locate Build Outputs
50
+
51
+ Once the build is complete:
52
+ - The compiled Firefox extension files will be in `dist/firefox/`.
53
+ - The final zip package submitted to Mozilla is located at `dist/firefox.zip`.
@@ -0,0 +1,7 @@
1
+ chrome.runtime.onInstalled.addListener(function (details) {
2
+ if (details.reason == "install") {
3
+ chrome.tabs.create({
4
+ url: "https://rviscomi.github.io/capo.js/user/extension/?utm_source=installed&utm_medium=extension&utm_campaign=capo",
5
+ });
6
+ }
7
+ });
@@ -0,0 +1,59 @@
1
+ body {
2
+ padding: 0;
3
+ margin: 0;
4
+ height: 60px;
5
+ background-color: #ccc;
6
+ }
7
+
8
+ .capo-container {
9
+ display: flex;
10
+ align-content: stretch;
11
+ width: 600px;
12
+ }
13
+
14
+ .capo-head-element {
15
+ content: '';
16
+ width: 100%;
17
+ height: 30px;
18
+ box-sizing: border-box;
19
+ }
20
+ .capo-head-element.invalid {
21
+ background-image: repeating-linear-gradient(
22
+ 45deg,
23
+ rgba(0, 0, 0, 0),
24
+ rgba(0, 0, 0, 0) 3px,
25
+ rgba(255, 0, 0, 0.3) 3px,
26
+ rgba(255, 0, 0, 0.3) 6px
27
+ );
28
+ }
29
+ .capo-head-element.invalid:is(
30
+ [data-weight="10"],
31
+ [data-weight="9"],
32
+ [data-weight="8"],
33
+ [data-weight="7"]
34
+ ) {
35
+ background-image: repeating-linear-gradient(
36
+ 45deg,
37
+ rgba(255, 255, 255, 0.3),
38
+ rgba(255, 255, 255, 0.3) 3px,
39
+ rgba(0, 0, 0, 0) 3px,
40
+ rgba(0, 0, 0, 0) 6px
41
+ );
42
+ }.capo-head-element.invalid:is(
43
+ [data-weight="2"],
44
+ [data-weight="1"]
45
+ ) {
46
+ background-image: repeating-linear-gradient(
47
+ 45deg,
48
+ rgba(255, 255, 255, 0.3),
49
+ rgba(255, 255, 255, 0.3) 3px,
50
+ rgba(255, 0, 0, 0.3) 3px,
51
+ rgba(255, 0, 0, 0.3) 6px
52
+ );
53
+ }
54
+ .capo-head-element:hover {
55
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.1);
56
+ }
57
+ .capo-head-element.invalid:hover {
58
+ box-shadow: inset 0 0 0 9999px rgba(255, 0, 0, 0.1);
59
+ }
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <link rel="stylesheet" href="capo.css">
5
+ </head>
6
+ <body>
7
+ <div id="actual" class="capo-container"></div>
8
+ <div id="sorted" class="capo-container"></div>
9
+
10
+ <script type="module" src="chrome.js"></script>
11
+ </body>
12
+ </html>