@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,2712 +0,0 @@
1
- import { Preprocessor } from './preprocessor.js';
2
- import { CODE_POINTS as $, SEQUENCES as $$, REPLACEMENT_CHARACTER, isSurrogate, isUndefinedCodePoint, isControlCodePoint, } from '../common/unicode.js';
3
- import { TokenType, getTokenAttr, } from '../common/token.js';
4
- import { htmlDecodeTree, EntityDecoder, DecodingMode } from 'entities/decode';
5
- import { ERR } from '../common/error-codes.js';
6
- import { TAG_ID, getTagID } from '../common/html.js';
7
- //States
8
- var State;
9
- (function (State) {
10
- State[State["DATA"] = 0] = "DATA";
11
- State[State["RCDATA"] = 1] = "RCDATA";
12
- State[State["RAWTEXT"] = 2] = "RAWTEXT";
13
- State[State["SCRIPT_DATA"] = 3] = "SCRIPT_DATA";
14
- State[State["PLAINTEXT"] = 4] = "PLAINTEXT";
15
- State[State["TAG_OPEN"] = 5] = "TAG_OPEN";
16
- State[State["END_TAG_OPEN"] = 6] = "END_TAG_OPEN";
17
- State[State["TAG_NAME"] = 7] = "TAG_NAME";
18
- State[State["RCDATA_LESS_THAN_SIGN"] = 8] = "RCDATA_LESS_THAN_SIGN";
19
- State[State["RCDATA_END_TAG_OPEN"] = 9] = "RCDATA_END_TAG_OPEN";
20
- State[State["RCDATA_END_TAG_NAME"] = 10] = "RCDATA_END_TAG_NAME";
21
- State[State["RAWTEXT_LESS_THAN_SIGN"] = 11] = "RAWTEXT_LESS_THAN_SIGN";
22
- State[State["RAWTEXT_END_TAG_OPEN"] = 12] = "RAWTEXT_END_TAG_OPEN";
23
- State[State["RAWTEXT_END_TAG_NAME"] = 13] = "RAWTEXT_END_TAG_NAME";
24
- State[State["SCRIPT_DATA_LESS_THAN_SIGN"] = 14] = "SCRIPT_DATA_LESS_THAN_SIGN";
25
- State[State["SCRIPT_DATA_END_TAG_OPEN"] = 15] = "SCRIPT_DATA_END_TAG_OPEN";
26
- State[State["SCRIPT_DATA_END_TAG_NAME"] = 16] = "SCRIPT_DATA_END_TAG_NAME";
27
- State[State["SCRIPT_DATA_ESCAPE_START"] = 17] = "SCRIPT_DATA_ESCAPE_START";
28
- State[State["SCRIPT_DATA_ESCAPE_START_DASH"] = 18] = "SCRIPT_DATA_ESCAPE_START_DASH";
29
- State[State["SCRIPT_DATA_ESCAPED"] = 19] = "SCRIPT_DATA_ESCAPED";
30
- State[State["SCRIPT_DATA_ESCAPED_DASH"] = 20] = "SCRIPT_DATA_ESCAPED_DASH";
31
- State[State["SCRIPT_DATA_ESCAPED_DASH_DASH"] = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH";
32
- State[State["SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN"] = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN";
33
- State[State["SCRIPT_DATA_ESCAPED_END_TAG_OPEN"] = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN";
34
- State[State["SCRIPT_DATA_ESCAPED_END_TAG_NAME"] = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME";
35
- State[State["SCRIPT_DATA_DOUBLE_ESCAPE_START"] = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START";
36
- State[State["SCRIPT_DATA_DOUBLE_ESCAPED"] = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED";
37
- State[State["SCRIPT_DATA_DOUBLE_ESCAPED_DASH"] = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH";
38
- State[State["SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH"] = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH";
39
- State[State["SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN"] = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN";
40
- State[State["SCRIPT_DATA_DOUBLE_ESCAPE_END"] = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END";
41
- State[State["BEFORE_ATTRIBUTE_NAME"] = 31] = "BEFORE_ATTRIBUTE_NAME";
42
- State[State["ATTRIBUTE_NAME"] = 32] = "ATTRIBUTE_NAME";
43
- State[State["AFTER_ATTRIBUTE_NAME"] = 33] = "AFTER_ATTRIBUTE_NAME";
44
- State[State["BEFORE_ATTRIBUTE_VALUE"] = 34] = "BEFORE_ATTRIBUTE_VALUE";
45
- State[State["ATTRIBUTE_VALUE_DOUBLE_QUOTED"] = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED";
46
- State[State["ATTRIBUTE_VALUE_SINGLE_QUOTED"] = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED";
47
- State[State["ATTRIBUTE_VALUE_UNQUOTED"] = 37] = "ATTRIBUTE_VALUE_UNQUOTED";
48
- State[State["AFTER_ATTRIBUTE_VALUE_QUOTED"] = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED";
49
- State[State["SELF_CLOSING_START_TAG"] = 39] = "SELF_CLOSING_START_TAG";
50
- State[State["BOGUS_COMMENT"] = 40] = "BOGUS_COMMENT";
51
- State[State["MARKUP_DECLARATION_OPEN"] = 41] = "MARKUP_DECLARATION_OPEN";
52
- State[State["COMMENT_START"] = 42] = "COMMENT_START";
53
- State[State["COMMENT_START_DASH"] = 43] = "COMMENT_START_DASH";
54
- State[State["COMMENT"] = 44] = "COMMENT";
55
- State[State["COMMENT_LESS_THAN_SIGN"] = 45] = "COMMENT_LESS_THAN_SIGN";
56
- State[State["COMMENT_LESS_THAN_SIGN_BANG"] = 46] = "COMMENT_LESS_THAN_SIGN_BANG";
57
- State[State["COMMENT_LESS_THAN_SIGN_BANG_DASH"] = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH";
58
- State[State["COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH"] = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH";
59
- State[State["COMMENT_END_DASH"] = 49] = "COMMENT_END_DASH";
60
- State[State["COMMENT_END"] = 50] = "COMMENT_END";
61
- State[State["COMMENT_END_BANG"] = 51] = "COMMENT_END_BANG";
62
- State[State["DOCTYPE"] = 52] = "DOCTYPE";
63
- State[State["BEFORE_DOCTYPE_NAME"] = 53] = "BEFORE_DOCTYPE_NAME";
64
- State[State["DOCTYPE_NAME"] = 54] = "DOCTYPE_NAME";
65
- State[State["AFTER_DOCTYPE_NAME"] = 55] = "AFTER_DOCTYPE_NAME";
66
- State[State["AFTER_DOCTYPE_PUBLIC_KEYWORD"] = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD";
67
- State[State["BEFORE_DOCTYPE_PUBLIC_IDENTIFIER"] = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER";
68
- State[State["DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED"] = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED";
69
- State[State["DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED"] = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED";
70
- State[State["AFTER_DOCTYPE_PUBLIC_IDENTIFIER"] = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER";
71
- State[State["BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS"] = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS";
72
- State[State["AFTER_DOCTYPE_SYSTEM_KEYWORD"] = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD";
73
- State[State["BEFORE_DOCTYPE_SYSTEM_IDENTIFIER"] = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER";
74
- State[State["DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED"] = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED";
75
- State[State["DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED"] = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED";
76
- State[State["AFTER_DOCTYPE_SYSTEM_IDENTIFIER"] = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER";
77
- State[State["BOGUS_DOCTYPE"] = 67] = "BOGUS_DOCTYPE";
78
- State[State["CDATA_SECTION"] = 68] = "CDATA_SECTION";
79
- State[State["CDATA_SECTION_BRACKET"] = 69] = "CDATA_SECTION_BRACKET";
80
- State[State["CDATA_SECTION_END"] = 70] = "CDATA_SECTION_END";
81
- State[State["CHARACTER_REFERENCE"] = 71] = "CHARACTER_REFERENCE";
82
- State[State["AMBIGUOUS_AMPERSAND"] = 72] = "AMBIGUOUS_AMPERSAND";
83
- })(State || (State = {}));
84
- //Tokenizer initial states for different modes
85
- export const TokenizerMode = {
86
- DATA: State.DATA,
87
- RCDATA: State.RCDATA,
88
- RAWTEXT: State.RAWTEXT,
89
- SCRIPT_DATA: State.SCRIPT_DATA,
90
- PLAINTEXT: State.PLAINTEXT,
91
- CDATA_SECTION: State.CDATA_SECTION,
92
- };
93
- //Utils
94
- //OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline
95
- //this functions if they will be situated in another module due to context switch.
96
- //Always perform inlining check before modifying this functions ('node --trace-inlining').
97
- function isAsciiDigit(cp) {
98
- return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;
99
- }
100
- function isAsciiUpper(cp) {
101
- return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;
102
- }
103
- function isAsciiLower(cp) {
104
- return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;
105
- }
106
- function isAsciiLetter(cp) {
107
- return isAsciiLower(cp) || isAsciiUpper(cp);
108
- }
109
- function isAsciiAlphaNumeric(cp) {
110
- return isAsciiLetter(cp) || isAsciiDigit(cp);
111
- }
112
- function toAsciiLower(cp) {
113
- return cp + 32;
114
- }
115
- function isWhitespace(cp) {
116
- return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;
117
- }
118
- function isScriptDataDoubleEscapeSequenceEnd(cp) {
119
- return isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN;
120
- }
121
- function getErrorForNumericCharacterReference(code) {
122
- if (code === $.NULL) {
123
- return ERR.nullCharacterReference;
124
- }
125
- else if (code > 1114111) {
126
- return ERR.characterReferenceOutsideUnicodeRange;
127
- }
128
- else if (isSurrogate(code)) {
129
- return ERR.surrogateCharacterReference;
130
- }
131
- else if (isUndefinedCodePoint(code)) {
132
- return ERR.noncharacterCharacterReference;
133
- }
134
- else if (isControlCodePoint(code) || code === $.CARRIAGE_RETURN) {
135
- return ERR.controlCharacterReference;
136
- }
137
- return null;
138
- }
139
- //Tokenizer
140
- export class Tokenizer {
141
- constructor(options, handler) {
142
- this.options = options;
143
- this.handler = handler;
144
- this.paused = false;
145
- /** Ensures that the parsing loop isn't run multiple times at once. */
146
- this.inLoop = false;
147
- /**
148
- * Indicates that the current adjusted node exists, is not an element in the HTML namespace,
149
- * and that it is not an integration point for either MathML or HTML.
150
- *
151
- * @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}
152
- */
153
- this.inForeignNode = false;
154
- this.lastStartTagName = '';
155
- this.active = false;
156
- this.state = State.DATA;
157
- this.returnState = State.DATA;
158
- this.entityStartPos = 0;
159
- this.consumedAfterSnapshot = -1;
160
- this.currentCharacterToken = null;
161
- this.currentToken = null;
162
- this.currentAttr = { name: '', value: '' };
163
- this.preprocessor = new Preprocessor(handler);
164
- this.currentLocation = this.getCurrentLocation(-1);
165
- this.entityDecoder = new EntityDecoder(htmlDecodeTree, (cp, consumed) => {
166
- // Note: Set `pos` _before_ flushing, as flushing might drop
167
- // the current chunk and invalidate `entityStartPos`.
168
- this.preprocessor.pos = this.entityStartPos + consumed - 1;
169
- this._flushCodePointConsumedAsCharacterReference(cp);
170
- }, handler.onParseError
171
- ? {
172
- missingSemicolonAfterCharacterReference: () => {
173
- this._err(ERR.missingSemicolonAfterCharacterReference, 1);
174
- },
175
- absenceOfDigitsInNumericCharacterReference: (consumed) => {
176
- this._err(ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed);
177
- },
178
- validateNumericCharacterReference: (code) => {
179
- const error = getErrorForNumericCharacterReference(code);
180
- if (error)
181
- this._err(error, 1);
182
- },
183
- }
184
- : undefined);
185
- }
186
- //Errors
187
- _err(code, cpOffset = 0) {
188
- var _a, _b;
189
- (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code, cpOffset));
190
- }
191
- // NOTE: `offset` may never run across line boundaries.
192
- getCurrentLocation(offset) {
193
- if (!this.options.sourceCodeLocationInfo) {
194
- return null;
195
- }
196
- return {
197
- startLine: this.preprocessor.line,
198
- startCol: this.preprocessor.col - offset,
199
- startOffset: this.preprocessor.offset - offset,
200
- endLine: -1,
201
- endCol: -1,
202
- endOffset: -1,
203
- };
204
- }
205
- _runParsingLoop() {
206
- if (this.inLoop)
207
- return;
208
- this.inLoop = true;
209
- while (this.active && !this.paused) {
210
- this.consumedAfterSnapshot = 0;
211
- const cp = this._consume();
212
- if (!this._ensureHibernation()) {
213
- this._callState(cp);
214
- }
215
- }
216
- this.inLoop = false;
217
- }
218
- //API
219
- pause() {
220
- this.paused = true;
221
- }
222
- resume(writeCallback) {
223
- if (!this.paused) {
224
- throw new Error('Parser was already resumed');
225
- }
226
- this.paused = false;
227
- // Necessary for synchronous resume.
228
- if (this.inLoop)
229
- return;
230
- this._runParsingLoop();
231
- if (!this.paused) {
232
- writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
233
- }
234
- }
235
- write(chunk, isLastChunk, writeCallback) {
236
- this.active = true;
237
- this.preprocessor.write(chunk, isLastChunk);
238
- this._runParsingLoop();
239
- if (!this.paused) {
240
- writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
241
- }
242
- }
243
- insertHtmlAtCurrentPos(chunk) {
244
- this.active = true;
245
- this.preprocessor.insertHtmlAtCurrentPos(chunk);
246
- this._runParsingLoop();
247
- }
248
- //Hibernation
249
- _ensureHibernation() {
250
- if (this.preprocessor.endOfChunkHit) {
251
- this.preprocessor.retreat(this.consumedAfterSnapshot);
252
- this.consumedAfterSnapshot = 0;
253
- this.active = false;
254
- return true;
255
- }
256
- return false;
257
- }
258
- //Consumption
259
- _consume() {
260
- this.consumedAfterSnapshot++;
261
- return this.preprocessor.advance();
262
- }
263
- _advanceBy(count) {
264
- this.consumedAfterSnapshot += count;
265
- for (let i = 0; i < count; i++) {
266
- this.preprocessor.advance();
267
- }
268
- }
269
- _consumeSequenceIfMatch(pattern, caseSensitive) {
270
- if (this.preprocessor.startsWith(pattern, caseSensitive)) {
271
- // We will already have consumed one character before calling this method.
272
- this._advanceBy(pattern.length - 1);
273
- return true;
274
- }
275
- return false;
276
- }
277
- //Token creation
278
- _createStartTagToken() {
279
- this.currentToken = {
280
- type: TokenType.START_TAG,
281
- tagName: '',
282
- tagID: TAG_ID.UNKNOWN,
283
- selfClosing: false,
284
- ackSelfClosing: false,
285
- attrs: [],
286
- location: this.getCurrentLocation(1),
287
- };
288
- }
289
- _createEndTagToken() {
290
- this.currentToken = {
291
- type: TokenType.END_TAG,
292
- tagName: '',
293
- tagID: TAG_ID.UNKNOWN,
294
- selfClosing: false,
295
- ackSelfClosing: false,
296
- attrs: [],
297
- location: this.getCurrentLocation(2),
298
- };
299
- }
300
- _createCommentToken(offset) {
301
- this.currentToken = {
302
- type: TokenType.COMMENT,
303
- data: '',
304
- location: this.getCurrentLocation(offset),
305
- };
306
- }
307
- _createDoctypeToken(initialName) {
308
- this.currentToken = {
309
- type: TokenType.DOCTYPE,
310
- name: initialName,
311
- forceQuirks: false,
312
- publicId: null,
313
- systemId: null,
314
- location: this.currentLocation,
315
- };
316
- }
317
- _createCharacterToken(type, chars) {
318
- this.currentCharacterToken = {
319
- type,
320
- chars,
321
- location: this.currentLocation,
322
- };
323
- }
324
- //Tag attributes
325
- _createAttr(attrNameFirstCh) {
326
- this.currentAttr = {
327
- name: attrNameFirstCh,
328
- value: '',
329
- };
330
- this.currentLocation = this.getCurrentLocation(0);
331
- }
332
- _leaveAttrName() {
333
- var _a;
334
- var _b;
335
- const token = this.currentToken;
336
- if (getTokenAttr(token, this.currentAttr.name) === null) {
337
- token.attrs.push(this.currentAttr);
338
- if (token.location && this.currentLocation) {
339
- const attrLocations = ((_a = (_b = token.location).attrs) !== null && _a !== void 0 ? _a : (_b.attrs = Object.create(null)));
340
- attrLocations[this.currentAttr.name] = this.currentLocation;
341
- // Set end location
342
- this._leaveAttrValue();
343
- }
344
- }
345
- else {
346
- this._err(ERR.duplicateAttribute);
347
- }
348
- }
349
- _leaveAttrValue() {
350
- if (this.currentLocation) {
351
- this.currentLocation.endLine = this.preprocessor.line;
352
- this.currentLocation.endCol = this.preprocessor.col;
353
- this.currentLocation.endOffset = this.preprocessor.offset;
354
- }
355
- }
356
- //Token emission
357
- prepareToken(ct) {
358
- this._emitCurrentCharacterToken(ct.location);
359
- this.currentToken = null;
360
- if (ct.location) {
361
- ct.location.endLine = this.preprocessor.line;
362
- ct.location.endCol = this.preprocessor.col + 1;
363
- ct.location.endOffset = this.preprocessor.offset + 1;
364
- }
365
- this.currentLocation = this.getCurrentLocation(-1);
366
- }
367
- emitCurrentTagToken() {
368
- const ct = this.currentToken;
369
- this.prepareToken(ct);
370
- ct.tagID = getTagID(ct.tagName);
371
- if (ct.type === TokenType.START_TAG) {
372
- this.lastStartTagName = ct.tagName;
373
- this.handler.onStartTag(ct);
374
- }
375
- else {
376
- if (ct.attrs.length > 0) {
377
- this._err(ERR.endTagWithAttributes);
378
- }
379
- if (ct.selfClosing) {
380
- this._err(ERR.endTagWithTrailingSolidus);
381
- }
382
- this.handler.onEndTag(ct);
383
- }
384
- this.preprocessor.dropParsedChunk();
385
- }
386
- emitCurrentComment(ct) {
387
- this.prepareToken(ct);
388
- this.handler.onComment(ct);
389
- this.preprocessor.dropParsedChunk();
390
- }
391
- emitCurrentDoctype(ct) {
392
- this.prepareToken(ct);
393
- this.handler.onDoctype(ct);
394
- this.preprocessor.dropParsedChunk();
395
- }
396
- _emitCurrentCharacterToken(nextLocation) {
397
- if (this.currentCharacterToken) {
398
- //NOTE: if we have a pending character token, make it's end location equal to the
399
- //current token's start location.
400
- if (nextLocation && this.currentCharacterToken.location) {
401
- this.currentCharacterToken.location.endLine = nextLocation.startLine;
402
- this.currentCharacterToken.location.endCol = nextLocation.startCol;
403
- this.currentCharacterToken.location.endOffset = nextLocation.startOffset;
404
- }
405
- switch (this.currentCharacterToken.type) {
406
- case TokenType.CHARACTER: {
407
- this.handler.onCharacter(this.currentCharacterToken);
408
- break;
409
- }
410
- case TokenType.NULL_CHARACTER: {
411
- this.handler.onNullCharacter(this.currentCharacterToken);
412
- break;
413
- }
414
- case TokenType.WHITESPACE_CHARACTER: {
415
- this.handler.onWhitespaceCharacter(this.currentCharacterToken);
416
- break;
417
- }
418
- }
419
- this.currentCharacterToken = null;
420
- }
421
- }
422
- _emitEOFToken() {
423
- const location = this.getCurrentLocation(0);
424
- if (location) {
425
- location.endLine = location.startLine;
426
- location.endCol = location.startCol;
427
- location.endOffset = location.startOffset;
428
- }
429
- this._emitCurrentCharacterToken(location);
430
- this.handler.onEof({ type: TokenType.EOF, location });
431
- this.active = false;
432
- }
433
- //Characters emission
434
- //OPTIMIZATION: The specification uses only one type of character token (one token per character).
435
- //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
436
- //If we have a sequence of characters that belong to the same group, the parser can process it
437
- //as a single solid character token.
438
- //So, there are 3 types of character tokens in parse5:
439
- //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000')
440
- //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n \r\t \f')
441
- //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
442
- _appendCharToCurrentCharacterToken(type, ch) {
443
- if (this.currentCharacterToken) {
444
- if (this.currentCharacterToken.type === type) {
445
- this.currentCharacterToken.chars += ch;
446
- return;
447
- }
448
- else {
449
- this.currentLocation = this.getCurrentLocation(0);
450
- this._emitCurrentCharacterToken(this.currentLocation);
451
- this.preprocessor.dropParsedChunk();
452
- }
453
- }
454
- this._createCharacterToken(type, ch);
455
- }
456
- _emitCodePoint(cp) {
457
- const type = isWhitespace(cp)
458
- ? TokenType.WHITESPACE_CHARACTER
459
- : cp === $.NULL
460
- ? TokenType.NULL_CHARACTER
461
- : TokenType.CHARACTER;
462
- // OPTIMIZATION: Use String.fromCharCode for BMP characters (< 0x10000) which is faster
463
- // than String.fromCodePoint. Characters outside BMP are rare in HTML.
464
- this._appendCharToCurrentCharacterToken(type, cp < 65536 ? String.fromCharCode(cp) : String.fromCodePoint(cp));
465
- }
466
- //NOTE: used when we emit characters explicitly.
467
- //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.
468
- _emitChars(ch) {
469
- this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch);
470
- }
471
- // Character reference helpers
472
- _startCharacterReference() {
473
- this.returnState = this.state;
474
- this.state = State.CHARACTER_REFERENCE;
475
- this.entityStartPos = this.preprocessor.pos;
476
- this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? DecodingMode.Attribute : DecodingMode.Legacy);
477
- }
478
- _isCharacterReferenceInAttribute() {
479
- return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||
480
- this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED ||
481
- this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED);
482
- }
483
- _flushCodePointConsumedAsCharacterReference(cp) {
484
- if (this._isCharacterReferenceInAttribute()) {
485
- this.currentAttr.value += String.fromCodePoint(cp);
486
- }
487
- else {
488
- this._emitCodePoint(cp);
489
- }
490
- }
491
- // Calling states this way turns out to be much faster than any other approach.
492
- _callState(cp) {
493
- switch (this.state) {
494
- case State.DATA: {
495
- this._stateData(cp);
496
- break;
497
- }
498
- case State.RCDATA: {
499
- this._stateRcdata(cp);
500
- break;
501
- }
502
- case State.RAWTEXT: {
503
- this._stateRawtext(cp);
504
- break;
505
- }
506
- case State.SCRIPT_DATA: {
507
- this._stateScriptData(cp);
508
- break;
509
- }
510
- case State.PLAINTEXT: {
511
- this._statePlaintext(cp);
512
- break;
513
- }
514
- case State.TAG_OPEN: {
515
- this._stateTagOpen(cp);
516
- break;
517
- }
518
- case State.END_TAG_OPEN: {
519
- this._stateEndTagOpen(cp);
520
- break;
521
- }
522
- case State.TAG_NAME: {
523
- this._stateTagName(cp);
524
- break;
525
- }
526
- case State.RCDATA_LESS_THAN_SIGN: {
527
- this._stateRcdataLessThanSign(cp);
528
- break;
529
- }
530
- case State.RCDATA_END_TAG_OPEN: {
531
- this._stateRcdataEndTagOpen(cp);
532
- break;
533
- }
534
- case State.RCDATA_END_TAG_NAME: {
535
- this._stateRcdataEndTagName(cp);
536
- break;
537
- }
538
- case State.RAWTEXT_LESS_THAN_SIGN: {
539
- this._stateRawtextLessThanSign(cp);
540
- break;
541
- }
542
- case State.RAWTEXT_END_TAG_OPEN: {
543
- this._stateRawtextEndTagOpen(cp);
544
- break;
545
- }
546
- case State.RAWTEXT_END_TAG_NAME: {
547
- this._stateRawtextEndTagName(cp);
548
- break;
549
- }
550
- case State.SCRIPT_DATA_LESS_THAN_SIGN: {
551
- this._stateScriptDataLessThanSign(cp);
552
- break;
553
- }
554
- case State.SCRIPT_DATA_END_TAG_OPEN: {
555
- this._stateScriptDataEndTagOpen(cp);
556
- break;
557
- }
558
- case State.SCRIPT_DATA_END_TAG_NAME: {
559
- this._stateScriptDataEndTagName(cp);
560
- break;
561
- }
562
- case State.SCRIPT_DATA_ESCAPE_START: {
563
- this._stateScriptDataEscapeStart(cp);
564
- break;
565
- }
566
- case State.SCRIPT_DATA_ESCAPE_START_DASH: {
567
- this._stateScriptDataEscapeStartDash(cp);
568
- break;
569
- }
570
- case State.SCRIPT_DATA_ESCAPED: {
571
- this._stateScriptDataEscaped(cp);
572
- break;
573
- }
574
- case State.SCRIPT_DATA_ESCAPED_DASH: {
575
- this._stateScriptDataEscapedDash(cp);
576
- break;
577
- }
578
- case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {
579
- this._stateScriptDataEscapedDashDash(cp);
580
- break;
581
- }
582
- case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
583
- this._stateScriptDataEscapedLessThanSign(cp);
584
- break;
585
- }
586
- case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
587
- this._stateScriptDataEscapedEndTagOpen(cp);
588
- break;
589
- }
590
- case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
591
- this._stateScriptDataEscapedEndTagName(cp);
592
- break;
593
- }
594
- case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
595
- this._stateScriptDataDoubleEscapeStart(cp);
596
- break;
597
- }
598
- case State.SCRIPT_DATA_DOUBLE_ESCAPED: {
599
- this._stateScriptDataDoubleEscaped(cp);
600
- break;
601
- }
602
- case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
603
- this._stateScriptDataDoubleEscapedDash(cp);
604
- break;
605
- }
606
- case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
607
- this._stateScriptDataDoubleEscapedDashDash(cp);
608
- break;
609
- }
610
- case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
611
- this._stateScriptDataDoubleEscapedLessThanSign(cp);
612
- break;
613
- }
614
- case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
615
- this._stateScriptDataDoubleEscapeEnd(cp);
616
- break;
617
- }
618
- case State.BEFORE_ATTRIBUTE_NAME: {
619
- this._stateBeforeAttributeName(cp);
620
- break;
621
- }
622
- case State.ATTRIBUTE_NAME: {
623
- this._stateAttributeName(cp);
624
- break;
625
- }
626
- case State.AFTER_ATTRIBUTE_NAME: {
627
- this._stateAfterAttributeName(cp);
628
- break;
629
- }
630
- case State.BEFORE_ATTRIBUTE_VALUE: {
631
- this._stateBeforeAttributeValue(cp);
632
- break;
633
- }
634
- case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
635
- this._stateAttributeValueDoubleQuoted(cp);
636
- break;
637
- }
638
- case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
639
- this._stateAttributeValueSingleQuoted(cp);
640
- break;
641
- }
642
- case State.ATTRIBUTE_VALUE_UNQUOTED: {
643
- this._stateAttributeValueUnquoted(cp);
644
- break;
645
- }
646
- case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {
647
- this._stateAfterAttributeValueQuoted(cp);
648
- break;
649
- }
650
- case State.SELF_CLOSING_START_TAG: {
651
- this._stateSelfClosingStartTag(cp);
652
- break;
653
- }
654
- case State.BOGUS_COMMENT: {
655
- this._stateBogusComment(cp);
656
- break;
657
- }
658
- case State.MARKUP_DECLARATION_OPEN: {
659
- this._stateMarkupDeclarationOpen(cp);
660
- break;
661
- }
662
- case State.COMMENT_START: {
663
- this._stateCommentStart(cp);
664
- break;
665
- }
666
- case State.COMMENT_START_DASH: {
667
- this._stateCommentStartDash(cp);
668
- break;
669
- }
670
- case State.COMMENT: {
671
- this._stateComment(cp);
672
- break;
673
- }
674
- case State.COMMENT_LESS_THAN_SIGN: {
675
- this._stateCommentLessThanSign(cp);
676
- break;
677
- }
678
- case State.COMMENT_LESS_THAN_SIGN_BANG: {
679
- this._stateCommentLessThanSignBang(cp);
680
- break;
681
- }
682
- case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
683
- this._stateCommentLessThanSignBangDash(cp);
684
- break;
685
- }
686
- case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
687
- this._stateCommentLessThanSignBangDashDash(cp);
688
- break;
689
- }
690
- case State.COMMENT_END_DASH: {
691
- this._stateCommentEndDash(cp);
692
- break;
693
- }
694
- case State.COMMENT_END: {
695
- this._stateCommentEnd(cp);
696
- break;
697
- }
698
- case State.COMMENT_END_BANG: {
699
- this._stateCommentEndBang(cp);
700
- break;
701
- }
702
- case State.DOCTYPE: {
703
- this._stateDoctype(cp);
704
- break;
705
- }
706
- case State.BEFORE_DOCTYPE_NAME: {
707
- this._stateBeforeDoctypeName(cp);
708
- break;
709
- }
710
- case State.DOCTYPE_NAME: {
711
- this._stateDoctypeName(cp);
712
- break;
713
- }
714
- case State.AFTER_DOCTYPE_NAME: {
715
- this._stateAfterDoctypeName(cp);
716
- break;
717
- }
718
- case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
719
- this._stateAfterDoctypePublicKeyword(cp);
720
- break;
721
- }
722
- case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
723
- this._stateBeforeDoctypePublicIdentifier(cp);
724
- break;
725
- }
726
- case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
727
- this._stateDoctypePublicIdentifierDoubleQuoted(cp);
728
- break;
729
- }
730
- case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
731
- this._stateDoctypePublicIdentifierSingleQuoted(cp);
732
- break;
733
- }
734
- case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
735
- this._stateAfterDoctypePublicIdentifier(cp);
736
- break;
737
- }
738
- case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
739
- this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);
740
- break;
741
- }
742
- case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
743
- this._stateAfterDoctypeSystemKeyword(cp);
744
- break;
745
- }
746
- case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
747
- this._stateBeforeDoctypeSystemIdentifier(cp);
748
- break;
749
- }
750
- case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
751
- this._stateDoctypeSystemIdentifierDoubleQuoted(cp);
752
- break;
753
- }
754
- case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
755
- this._stateDoctypeSystemIdentifierSingleQuoted(cp);
756
- break;
757
- }
758
- case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
759
- this._stateAfterDoctypeSystemIdentifier(cp);
760
- break;
761
- }
762
- case State.BOGUS_DOCTYPE: {
763
- this._stateBogusDoctype(cp);
764
- break;
765
- }
766
- case State.CDATA_SECTION: {
767
- this._stateCdataSection(cp);
768
- break;
769
- }
770
- case State.CDATA_SECTION_BRACKET: {
771
- this._stateCdataSectionBracket(cp);
772
- break;
773
- }
774
- case State.CDATA_SECTION_END: {
775
- this._stateCdataSectionEnd(cp);
776
- break;
777
- }
778
- case State.CHARACTER_REFERENCE: {
779
- this._stateCharacterReference();
780
- break;
781
- }
782
- case State.AMBIGUOUS_AMPERSAND: {
783
- this._stateAmbiguousAmpersand(cp);
784
- break;
785
- }
786
- default: {
787
- throw new Error('Unknown state');
788
- }
789
- }
790
- }
791
- // State machine
792
- // Data state
793
- //------------------------------------------------------------------
794
- _stateData(cp) {
795
- switch (cp) {
796
- case $.LESS_THAN_SIGN: {
797
- this.state = State.TAG_OPEN;
798
- break;
799
- }
800
- case $.AMPERSAND: {
801
- this._startCharacterReference();
802
- break;
803
- }
804
- case $.NULL: {
805
- this._err(ERR.unexpectedNullCharacter);
806
- this._emitCodePoint(cp);
807
- break;
808
- }
809
- case $.EOF: {
810
- this._emitEOFToken();
811
- break;
812
- }
813
- default: {
814
- this._emitCodePoint(cp);
815
- }
816
- }
817
- }
818
- // RCDATA state
819
- //------------------------------------------------------------------
820
- _stateRcdata(cp) {
821
- switch (cp) {
822
- case $.AMPERSAND: {
823
- this._startCharacterReference();
824
- break;
825
- }
826
- case $.LESS_THAN_SIGN: {
827
- this.state = State.RCDATA_LESS_THAN_SIGN;
828
- break;
829
- }
830
- case $.NULL: {
831
- this._err(ERR.unexpectedNullCharacter);
832
- this._emitChars(REPLACEMENT_CHARACTER);
833
- break;
834
- }
835
- case $.EOF: {
836
- this._emitEOFToken();
837
- break;
838
- }
839
- default: {
840
- this._emitCodePoint(cp);
841
- }
842
- }
843
- }
844
- // RAWTEXT state
845
- //------------------------------------------------------------------
846
- _stateRawtext(cp) {
847
- switch (cp) {
848
- case $.LESS_THAN_SIGN: {
849
- this.state = State.RAWTEXT_LESS_THAN_SIGN;
850
- break;
851
- }
852
- case $.NULL: {
853
- this._err(ERR.unexpectedNullCharacter);
854
- this._emitChars(REPLACEMENT_CHARACTER);
855
- break;
856
- }
857
- case $.EOF: {
858
- this._emitEOFToken();
859
- break;
860
- }
861
- default: {
862
- this._emitCodePoint(cp);
863
- }
864
- }
865
- }
866
- // Script data state
867
- //------------------------------------------------------------------
868
- _stateScriptData(cp) {
869
- switch (cp) {
870
- case $.LESS_THAN_SIGN: {
871
- this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;
872
- break;
873
- }
874
- case $.NULL: {
875
- this._err(ERR.unexpectedNullCharacter);
876
- this._emitChars(REPLACEMENT_CHARACTER);
877
- break;
878
- }
879
- case $.EOF: {
880
- this._emitEOFToken();
881
- break;
882
- }
883
- default: {
884
- this._emitCodePoint(cp);
885
- }
886
- }
887
- }
888
- // PLAINTEXT state
889
- //------------------------------------------------------------------
890
- _statePlaintext(cp) {
891
- switch (cp) {
892
- case $.NULL: {
893
- this._err(ERR.unexpectedNullCharacter);
894
- this._emitChars(REPLACEMENT_CHARACTER);
895
- break;
896
- }
897
- case $.EOF: {
898
- this._emitEOFToken();
899
- break;
900
- }
901
- default: {
902
- this._emitCodePoint(cp);
903
- }
904
- }
905
- }
906
- // Tag open state
907
- //------------------------------------------------------------------
908
- _stateTagOpen(cp) {
909
- if (isAsciiLetter(cp)) {
910
- this._createStartTagToken();
911
- this.state = State.TAG_NAME;
912
- this._stateTagName(cp);
913
- }
914
- else
915
- switch (cp) {
916
- case $.EXCLAMATION_MARK: {
917
- this.state = State.MARKUP_DECLARATION_OPEN;
918
- break;
919
- }
920
- case $.SOLIDUS: {
921
- this.state = State.END_TAG_OPEN;
922
- break;
923
- }
924
- case $.QUESTION_MARK: {
925
- this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);
926
- this._createCommentToken(1);
927
- this.state = State.BOGUS_COMMENT;
928
- this._stateBogusComment(cp);
929
- break;
930
- }
931
- case $.EOF: {
932
- this._err(ERR.eofBeforeTagName);
933
- this._emitChars('<');
934
- this._emitEOFToken();
935
- break;
936
- }
937
- default: {
938
- this._err(ERR.invalidFirstCharacterOfTagName);
939
- this._emitChars('<');
940
- this.state = State.DATA;
941
- this._stateData(cp);
942
- }
943
- }
944
- }
945
- // End tag open state
946
- //------------------------------------------------------------------
947
- _stateEndTagOpen(cp) {
948
- if (isAsciiLetter(cp)) {
949
- this._createEndTagToken();
950
- this.state = State.TAG_NAME;
951
- this._stateTagName(cp);
952
- }
953
- else
954
- switch (cp) {
955
- case $.GREATER_THAN_SIGN: {
956
- this._err(ERR.missingEndTagName);
957
- this.state = State.DATA;
958
- break;
959
- }
960
- case $.EOF: {
961
- this._err(ERR.eofBeforeTagName);
962
- this._emitChars('</');
963
- this._emitEOFToken();
964
- break;
965
- }
966
- default: {
967
- this._err(ERR.invalidFirstCharacterOfTagName);
968
- this._createCommentToken(2);
969
- this.state = State.BOGUS_COMMENT;
970
- this._stateBogusComment(cp);
971
- }
972
- }
973
- }
974
- // Tag name state
975
- //------------------------------------------------------------------
976
- _stateTagName(cp) {
977
- const token = this.currentToken;
978
- switch (cp) {
979
- case $.SPACE:
980
- case $.LINE_FEED:
981
- case $.TABULATION:
982
- case $.FORM_FEED: {
983
- this.state = State.BEFORE_ATTRIBUTE_NAME;
984
- break;
985
- }
986
- case $.SOLIDUS: {
987
- this.state = State.SELF_CLOSING_START_TAG;
988
- break;
989
- }
990
- case $.GREATER_THAN_SIGN: {
991
- this.state = State.DATA;
992
- this.emitCurrentTagToken();
993
- break;
994
- }
995
- case $.NULL: {
996
- this._err(ERR.unexpectedNullCharacter);
997
- token.tagName += REPLACEMENT_CHARACTER;
998
- break;
999
- }
1000
- case $.EOF: {
1001
- this._err(ERR.eofInTag);
1002
- this._emitEOFToken();
1003
- break;
1004
- }
1005
- default: {
1006
- token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
1007
- }
1008
- }
1009
- }
1010
- // RCDATA less-than sign state
1011
- //------------------------------------------------------------------
1012
- _stateRcdataLessThanSign(cp) {
1013
- if (cp === $.SOLIDUS) {
1014
- this.state = State.RCDATA_END_TAG_OPEN;
1015
- }
1016
- else {
1017
- this._emitChars('<');
1018
- this.state = State.RCDATA;
1019
- this._stateRcdata(cp);
1020
- }
1021
- }
1022
- // RCDATA end tag open state
1023
- //------------------------------------------------------------------
1024
- _stateRcdataEndTagOpen(cp) {
1025
- if (isAsciiLetter(cp)) {
1026
- this.state = State.RCDATA_END_TAG_NAME;
1027
- this._stateRcdataEndTagName(cp);
1028
- }
1029
- else {
1030
- this._emitChars('</');
1031
- this.state = State.RCDATA;
1032
- this._stateRcdata(cp);
1033
- }
1034
- }
1035
- handleSpecialEndTag(_cp) {
1036
- if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {
1037
- return !this._ensureHibernation();
1038
- }
1039
- this._createEndTagToken();
1040
- const token = this.currentToken;
1041
- token.tagName = this.lastStartTagName;
1042
- const cp = this.preprocessor.peek(this.lastStartTagName.length);
1043
- switch (cp) {
1044
- case $.SPACE:
1045
- case $.LINE_FEED:
1046
- case $.TABULATION:
1047
- case $.FORM_FEED: {
1048
- this._advanceBy(this.lastStartTagName.length);
1049
- this.state = State.BEFORE_ATTRIBUTE_NAME;
1050
- return false;
1051
- }
1052
- case $.SOLIDUS: {
1053
- this._advanceBy(this.lastStartTagName.length);
1054
- this.state = State.SELF_CLOSING_START_TAG;
1055
- return false;
1056
- }
1057
- case $.GREATER_THAN_SIGN: {
1058
- this._advanceBy(this.lastStartTagName.length);
1059
- this.emitCurrentTagToken();
1060
- this.state = State.DATA;
1061
- return false;
1062
- }
1063
- default: {
1064
- return !this._ensureHibernation();
1065
- }
1066
- }
1067
- }
1068
- // RCDATA end tag name state
1069
- //------------------------------------------------------------------
1070
- _stateRcdataEndTagName(cp) {
1071
- if (this.handleSpecialEndTag(cp)) {
1072
- this._emitChars('</');
1073
- this.state = State.RCDATA;
1074
- this._stateRcdata(cp);
1075
- }
1076
- }
1077
- // RAWTEXT less-than sign state
1078
- //------------------------------------------------------------------
1079
- _stateRawtextLessThanSign(cp) {
1080
- if (cp === $.SOLIDUS) {
1081
- this.state = State.RAWTEXT_END_TAG_OPEN;
1082
- }
1083
- else {
1084
- this._emitChars('<');
1085
- this.state = State.RAWTEXT;
1086
- this._stateRawtext(cp);
1087
- }
1088
- }
1089
- // RAWTEXT end tag open state
1090
- //------------------------------------------------------------------
1091
- _stateRawtextEndTagOpen(cp) {
1092
- if (isAsciiLetter(cp)) {
1093
- this.state = State.RAWTEXT_END_TAG_NAME;
1094
- this._stateRawtextEndTagName(cp);
1095
- }
1096
- else {
1097
- this._emitChars('</');
1098
- this.state = State.RAWTEXT;
1099
- this._stateRawtext(cp);
1100
- }
1101
- }
1102
- // RAWTEXT end tag name state
1103
- //------------------------------------------------------------------
1104
- _stateRawtextEndTagName(cp) {
1105
- if (this.handleSpecialEndTag(cp)) {
1106
- this._emitChars('</');
1107
- this.state = State.RAWTEXT;
1108
- this._stateRawtext(cp);
1109
- }
1110
- }
1111
- // Script data less-than sign state
1112
- //------------------------------------------------------------------
1113
- _stateScriptDataLessThanSign(cp) {
1114
- switch (cp) {
1115
- case $.SOLIDUS: {
1116
- this.state = State.SCRIPT_DATA_END_TAG_OPEN;
1117
- break;
1118
- }
1119
- case $.EXCLAMATION_MARK: {
1120
- this.state = State.SCRIPT_DATA_ESCAPE_START;
1121
- this._emitChars('<!');
1122
- break;
1123
- }
1124
- default: {
1125
- this._emitChars('<');
1126
- this.state = State.SCRIPT_DATA;
1127
- this._stateScriptData(cp);
1128
- }
1129
- }
1130
- }
1131
- // Script data end tag open state
1132
- //------------------------------------------------------------------
1133
- _stateScriptDataEndTagOpen(cp) {
1134
- if (isAsciiLetter(cp)) {
1135
- this.state = State.SCRIPT_DATA_END_TAG_NAME;
1136
- this._stateScriptDataEndTagName(cp);
1137
- }
1138
- else {
1139
- this._emitChars('</');
1140
- this.state = State.SCRIPT_DATA;
1141
- this._stateScriptData(cp);
1142
- }
1143
- }
1144
- // Script data end tag name state
1145
- //------------------------------------------------------------------
1146
- _stateScriptDataEndTagName(cp) {
1147
- if (this.handleSpecialEndTag(cp)) {
1148
- this._emitChars('</');
1149
- this.state = State.SCRIPT_DATA;
1150
- this._stateScriptData(cp);
1151
- }
1152
- }
1153
- // Script data escape start state
1154
- //------------------------------------------------------------------
1155
- _stateScriptDataEscapeStart(cp) {
1156
- if (cp === $.HYPHEN_MINUS) {
1157
- this.state = State.SCRIPT_DATA_ESCAPE_START_DASH;
1158
- this._emitChars('-');
1159
- }
1160
- else {
1161
- this.state = State.SCRIPT_DATA;
1162
- this._stateScriptData(cp);
1163
- }
1164
- }
1165
- // Script data escape start dash state
1166
- //------------------------------------------------------------------
1167
- _stateScriptDataEscapeStartDash(cp) {
1168
- if (cp === $.HYPHEN_MINUS) {
1169
- this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;
1170
- this._emitChars('-');
1171
- }
1172
- else {
1173
- this.state = State.SCRIPT_DATA;
1174
- this._stateScriptData(cp);
1175
- }
1176
- }
1177
- // Script data escaped state
1178
- //------------------------------------------------------------------
1179
- _stateScriptDataEscaped(cp) {
1180
- switch (cp) {
1181
- case $.HYPHEN_MINUS: {
1182
- this.state = State.SCRIPT_DATA_ESCAPED_DASH;
1183
- this._emitChars('-');
1184
- break;
1185
- }
1186
- case $.LESS_THAN_SIGN: {
1187
- this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
1188
- break;
1189
- }
1190
- case $.NULL: {
1191
- this._err(ERR.unexpectedNullCharacter);
1192
- this._emitChars(REPLACEMENT_CHARACTER);
1193
- break;
1194
- }
1195
- case $.EOF: {
1196
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1197
- this._emitEOFToken();
1198
- break;
1199
- }
1200
- default: {
1201
- this._emitCodePoint(cp);
1202
- }
1203
- }
1204
- }
1205
- // Script data escaped dash state
1206
- //------------------------------------------------------------------
1207
- _stateScriptDataEscapedDash(cp) {
1208
- switch (cp) {
1209
- case $.HYPHEN_MINUS: {
1210
- this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;
1211
- this._emitChars('-');
1212
- break;
1213
- }
1214
- case $.LESS_THAN_SIGN: {
1215
- this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
1216
- break;
1217
- }
1218
- case $.NULL: {
1219
- this._err(ERR.unexpectedNullCharacter);
1220
- this.state = State.SCRIPT_DATA_ESCAPED;
1221
- this._emitChars(REPLACEMENT_CHARACTER);
1222
- break;
1223
- }
1224
- case $.EOF: {
1225
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1226
- this._emitEOFToken();
1227
- break;
1228
- }
1229
- default: {
1230
- this.state = State.SCRIPT_DATA_ESCAPED;
1231
- this._emitCodePoint(cp);
1232
- }
1233
- }
1234
- }
1235
- // Script data escaped dash dash state
1236
- //------------------------------------------------------------------
1237
- _stateScriptDataEscapedDashDash(cp) {
1238
- switch (cp) {
1239
- case $.HYPHEN_MINUS: {
1240
- this._emitChars('-');
1241
- break;
1242
- }
1243
- case $.LESS_THAN_SIGN: {
1244
- this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
1245
- break;
1246
- }
1247
- case $.GREATER_THAN_SIGN: {
1248
- this.state = State.SCRIPT_DATA;
1249
- this._emitChars('>');
1250
- break;
1251
- }
1252
- case $.NULL: {
1253
- this._err(ERR.unexpectedNullCharacter);
1254
- this.state = State.SCRIPT_DATA_ESCAPED;
1255
- this._emitChars(REPLACEMENT_CHARACTER);
1256
- break;
1257
- }
1258
- case $.EOF: {
1259
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1260
- this._emitEOFToken();
1261
- break;
1262
- }
1263
- default: {
1264
- this.state = State.SCRIPT_DATA_ESCAPED;
1265
- this._emitCodePoint(cp);
1266
- }
1267
- }
1268
- }
1269
- // Script data escaped less-than sign state
1270
- //------------------------------------------------------------------
1271
- _stateScriptDataEscapedLessThanSign(cp) {
1272
- if (cp === $.SOLIDUS) {
1273
- this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;
1274
- }
1275
- else if (isAsciiLetter(cp)) {
1276
- this._emitChars('<');
1277
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;
1278
- this._stateScriptDataDoubleEscapeStart(cp);
1279
- }
1280
- else {
1281
- this._emitChars('<');
1282
- this.state = State.SCRIPT_DATA_ESCAPED;
1283
- this._stateScriptDataEscaped(cp);
1284
- }
1285
- }
1286
- // Script data escaped end tag open state
1287
- //------------------------------------------------------------------
1288
- _stateScriptDataEscapedEndTagOpen(cp) {
1289
- if (isAsciiLetter(cp)) {
1290
- this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;
1291
- this._stateScriptDataEscapedEndTagName(cp);
1292
- }
1293
- else {
1294
- this._emitChars('</');
1295
- this.state = State.SCRIPT_DATA_ESCAPED;
1296
- this._stateScriptDataEscaped(cp);
1297
- }
1298
- }
1299
- // Script data escaped end tag name state
1300
- //------------------------------------------------------------------
1301
- _stateScriptDataEscapedEndTagName(cp) {
1302
- if (this.handleSpecialEndTag(cp)) {
1303
- this._emitChars('</');
1304
- this.state = State.SCRIPT_DATA_ESCAPED;
1305
- this._stateScriptDataEscaped(cp);
1306
- }
1307
- }
1308
- // Script data double escape start state
1309
- //------------------------------------------------------------------
1310
- _stateScriptDataDoubleEscapeStart(cp) {
1311
- if (this.preprocessor.startsWith($$.SCRIPT, false) &&
1312
- isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {
1313
- this._emitCodePoint(cp);
1314
- for (let i = 0; i < $$.SCRIPT.length; i++) {
1315
- this._emitCodePoint(this._consume());
1316
- }
1317
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1318
- }
1319
- else if (!this._ensureHibernation()) {
1320
- this.state = State.SCRIPT_DATA_ESCAPED;
1321
- this._stateScriptDataEscaped(cp);
1322
- }
1323
- }
1324
- // Script data double escaped state
1325
- //------------------------------------------------------------------
1326
- _stateScriptDataDoubleEscaped(cp) {
1327
- switch (cp) {
1328
- case $.HYPHEN_MINUS: {
1329
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;
1330
- this._emitChars('-');
1331
- break;
1332
- }
1333
- case $.LESS_THAN_SIGN: {
1334
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
1335
- this._emitChars('<');
1336
- break;
1337
- }
1338
- case $.NULL: {
1339
- this._err(ERR.unexpectedNullCharacter);
1340
- this._emitChars(REPLACEMENT_CHARACTER);
1341
- break;
1342
- }
1343
- case $.EOF: {
1344
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1345
- this._emitEOFToken();
1346
- break;
1347
- }
1348
- default: {
1349
- this._emitCodePoint(cp);
1350
- }
1351
- }
1352
- }
1353
- // Script data double escaped dash state
1354
- //------------------------------------------------------------------
1355
- _stateScriptDataDoubleEscapedDash(cp) {
1356
- switch (cp) {
1357
- case $.HYPHEN_MINUS: {
1358
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;
1359
- this._emitChars('-');
1360
- break;
1361
- }
1362
- case $.LESS_THAN_SIGN: {
1363
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
1364
- this._emitChars('<');
1365
- break;
1366
- }
1367
- case $.NULL: {
1368
- this._err(ERR.unexpectedNullCharacter);
1369
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1370
- this._emitChars(REPLACEMENT_CHARACTER);
1371
- break;
1372
- }
1373
- case $.EOF: {
1374
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1375
- this._emitEOFToken();
1376
- break;
1377
- }
1378
- default: {
1379
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1380
- this._emitCodePoint(cp);
1381
- }
1382
- }
1383
- }
1384
- // Script data double escaped dash dash state
1385
- //------------------------------------------------------------------
1386
- _stateScriptDataDoubleEscapedDashDash(cp) {
1387
- switch (cp) {
1388
- case $.HYPHEN_MINUS: {
1389
- this._emitChars('-');
1390
- break;
1391
- }
1392
- case $.LESS_THAN_SIGN: {
1393
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
1394
- this._emitChars('<');
1395
- break;
1396
- }
1397
- case $.GREATER_THAN_SIGN: {
1398
- this.state = State.SCRIPT_DATA;
1399
- this._emitChars('>');
1400
- break;
1401
- }
1402
- case $.NULL: {
1403
- this._err(ERR.unexpectedNullCharacter);
1404
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1405
- this._emitChars(REPLACEMENT_CHARACTER);
1406
- break;
1407
- }
1408
- case $.EOF: {
1409
- this._err(ERR.eofInScriptHtmlCommentLikeText);
1410
- this._emitEOFToken();
1411
- break;
1412
- }
1413
- default: {
1414
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1415
- this._emitCodePoint(cp);
1416
- }
1417
- }
1418
- }
1419
- // Script data double escaped less-than sign state
1420
- //------------------------------------------------------------------
1421
- _stateScriptDataDoubleEscapedLessThanSign(cp) {
1422
- if (cp === $.SOLIDUS) {
1423
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;
1424
- this._emitChars('/');
1425
- }
1426
- else {
1427
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1428
- this._stateScriptDataDoubleEscaped(cp);
1429
- }
1430
- }
1431
- // Script data double escape end state
1432
- //------------------------------------------------------------------
1433
- _stateScriptDataDoubleEscapeEnd(cp) {
1434
- if (this.preprocessor.startsWith($$.SCRIPT, false) &&
1435
- isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {
1436
- this._emitCodePoint(cp);
1437
- for (let i = 0; i < $$.SCRIPT.length; i++) {
1438
- this._emitCodePoint(this._consume());
1439
- }
1440
- this.state = State.SCRIPT_DATA_ESCAPED;
1441
- }
1442
- else if (!this._ensureHibernation()) {
1443
- this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;
1444
- this._stateScriptDataDoubleEscaped(cp);
1445
- }
1446
- }
1447
- // Before attribute name state
1448
- //------------------------------------------------------------------
1449
- _stateBeforeAttributeName(cp) {
1450
- switch (cp) {
1451
- case $.SPACE:
1452
- case $.LINE_FEED:
1453
- case $.TABULATION:
1454
- case $.FORM_FEED: {
1455
- // Ignore whitespace
1456
- break;
1457
- }
1458
- case $.SOLIDUS:
1459
- case $.GREATER_THAN_SIGN:
1460
- case $.EOF: {
1461
- this.state = State.AFTER_ATTRIBUTE_NAME;
1462
- this._stateAfterAttributeName(cp);
1463
- break;
1464
- }
1465
- case $.EQUALS_SIGN: {
1466
- this._err(ERR.unexpectedEqualsSignBeforeAttributeName);
1467
- this._createAttr('=');
1468
- this.state = State.ATTRIBUTE_NAME;
1469
- break;
1470
- }
1471
- default: {
1472
- this._createAttr('');
1473
- this.state = State.ATTRIBUTE_NAME;
1474
- this._stateAttributeName(cp);
1475
- }
1476
- }
1477
- }
1478
- // Attribute name state
1479
- //------------------------------------------------------------------
1480
- _stateAttributeName(cp) {
1481
- switch (cp) {
1482
- case $.SPACE:
1483
- case $.LINE_FEED:
1484
- case $.TABULATION:
1485
- case $.FORM_FEED:
1486
- case $.SOLIDUS:
1487
- case $.GREATER_THAN_SIGN:
1488
- case $.EOF: {
1489
- this._leaveAttrName();
1490
- this.state = State.AFTER_ATTRIBUTE_NAME;
1491
- this._stateAfterAttributeName(cp);
1492
- break;
1493
- }
1494
- case $.EQUALS_SIGN: {
1495
- this._leaveAttrName();
1496
- this.state = State.BEFORE_ATTRIBUTE_VALUE;
1497
- break;
1498
- }
1499
- case $.QUOTATION_MARK:
1500
- case $.APOSTROPHE:
1501
- case $.LESS_THAN_SIGN: {
1502
- this._err(ERR.unexpectedCharacterInAttributeName);
1503
- this.currentAttr.name += String.fromCodePoint(cp);
1504
- break;
1505
- }
1506
- case $.NULL: {
1507
- this._err(ERR.unexpectedNullCharacter);
1508
- this.currentAttr.name += REPLACEMENT_CHARACTER;
1509
- break;
1510
- }
1511
- default: {
1512
- this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
1513
- }
1514
- }
1515
- }
1516
- // After attribute name state
1517
- //------------------------------------------------------------------
1518
- _stateAfterAttributeName(cp) {
1519
- switch (cp) {
1520
- case $.SPACE:
1521
- case $.LINE_FEED:
1522
- case $.TABULATION:
1523
- case $.FORM_FEED: {
1524
- // Ignore whitespace
1525
- break;
1526
- }
1527
- case $.SOLIDUS: {
1528
- this.state = State.SELF_CLOSING_START_TAG;
1529
- break;
1530
- }
1531
- case $.EQUALS_SIGN: {
1532
- this.state = State.BEFORE_ATTRIBUTE_VALUE;
1533
- break;
1534
- }
1535
- case $.GREATER_THAN_SIGN: {
1536
- this.state = State.DATA;
1537
- this.emitCurrentTagToken();
1538
- break;
1539
- }
1540
- case $.EOF: {
1541
- this._err(ERR.eofInTag);
1542
- this._emitEOFToken();
1543
- break;
1544
- }
1545
- default: {
1546
- this._createAttr('');
1547
- this.state = State.ATTRIBUTE_NAME;
1548
- this._stateAttributeName(cp);
1549
- }
1550
- }
1551
- }
1552
- // Before attribute value state
1553
- //------------------------------------------------------------------
1554
- _stateBeforeAttributeValue(cp) {
1555
- switch (cp) {
1556
- case $.SPACE:
1557
- case $.LINE_FEED:
1558
- case $.TABULATION:
1559
- case $.FORM_FEED: {
1560
- // Ignore whitespace
1561
- break;
1562
- }
1563
- case $.QUOTATION_MARK: {
1564
- this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
1565
- break;
1566
- }
1567
- case $.APOSTROPHE: {
1568
- this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;
1569
- break;
1570
- }
1571
- case $.GREATER_THAN_SIGN: {
1572
- this._err(ERR.missingAttributeValue);
1573
- this.state = State.DATA;
1574
- this.emitCurrentTagToken();
1575
- break;
1576
- }
1577
- default: {
1578
- this.state = State.ATTRIBUTE_VALUE_UNQUOTED;
1579
- this._stateAttributeValueUnquoted(cp);
1580
- }
1581
- }
1582
- }
1583
- // Attribute value (double-quoted) state
1584
- //------------------------------------------------------------------
1585
- _stateAttributeValueDoubleQuoted(cp) {
1586
- switch (cp) {
1587
- case $.QUOTATION_MARK: {
1588
- this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;
1589
- break;
1590
- }
1591
- case $.AMPERSAND: {
1592
- this._startCharacterReference();
1593
- break;
1594
- }
1595
- case $.NULL: {
1596
- this._err(ERR.unexpectedNullCharacter);
1597
- this.currentAttr.value += REPLACEMENT_CHARACTER;
1598
- break;
1599
- }
1600
- case $.EOF: {
1601
- this._err(ERR.eofInTag);
1602
- this._emitEOFToken();
1603
- break;
1604
- }
1605
- default: {
1606
- this.currentAttr.value += String.fromCodePoint(cp);
1607
- }
1608
- }
1609
- }
1610
- // Attribute value (single-quoted) state
1611
- //------------------------------------------------------------------
1612
- _stateAttributeValueSingleQuoted(cp) {
1613
- switch (cp) {
1614
- case $.APOSTROPHE: {
1615
- this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;
1616
- break;
1617
- }
1618
- case $.AMPERSAND: {
1619
- this._startCharacterReference();
1620
- break;
1621
- }
1622
- case $.NULL: {
1623
- this._err(ERR.unexpectedNullCharacter);
1624
- this.currentAttr.value += REPLACEMENT_CHARACTER;
1625
- break;
1626
- }
1627
- case $.EOF: {
1628
- this._err(ERR.eofInTag);
1629
- this._emitEOFToken();
1630
- break;
1631
- }
1632
- default: {
1633
- this.currentAttr.value += String.fromCodePoint(cp);
1634
- }
1635
- }
1636
- }
1637
- // Attribute value (unquoted) state
1638
- //------------------------------------------------------------------
1639
- _stateAttributeValueUnquoted(cp) {
1640
- switch (cp) {
1641
- case $.SPACE:
1642
- case $.LINE_FEED:
1643
- case $.TABULATION:
1644
- case $.FORM_FEED: {
1645
- this._leaveAttrValue();
1646
- this.state = State.BEFORE_ATTRIBUTE_NAME;
1647
- break;
1648
- }
1649
- case $.AMPERSAND: {
1650
- this._startCharacterReference();
1651
- break;
1652
- }
1653
- case $.GREATER_THAN_SIGN: {
1654
- this._leaveAttrValue();
1655
- this.state = State.DATA;
1656
- this.emitCurrentTagToken();
1657
- break;
1658
- }
1659
- case $.NULL: {
1660
- this._err(ERR.unexpectedNullCharacter);
1661
- this.currentAttr.value += REPLACEMENT_CHARACTER;
1662
- break;
1663
- }
1664
- case $.QUOTATION_MARK:
1665
- case $.APOSTROPHE:
1666
- case $.LESS_THAN_SIGN:
1667
- case $.EQUALS_SIGN:
1668
- case $.GRAVE_ACCENT: {
1669
- this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);
1670
- this.currentAttr.value += String.fromCodePoint(cp);
1671
- break;
1672
- }
1673
- case $.EOF: {
1674
- this._err(ERR.eofInTag);
1675
- this._emitEOFToken();
1676
- break;
1677
- }
1678
- default: {
1679
- this.currentAttr.value += String.fromCodePoint(cp);
1680
- }
1681
- }
1682
- }
1683
- // After attribute value (quoted) state
1684
- //------------------------------------------------------------------
1685
- _stateAfterAttributeValueQuoted(cp) {
1686
- switch (cp) {
1687
- case $.SPACE:
1688
- case $.LINE_FEED:
1689
- case $.TABULATION:
1690
- case $.FORM_FEED: {
1691
- this._leaveAttrValue();
1692
- this.state = State.BEFORE_ATTRIBUTE_NAME;
1693
- break;
1694
- }
1695
- case $.SOLIDUS: {
1696
- this._leaveAttrValue();
1697
- this.state = State.SELF_CLOSING_START_TAG;
1698
- break;
1699
- }
1700
- case $.GREATER_THAN_SIGN: {
1701
- this._leaveAttrValue();
1702
- this.state = State.DATA;
1703
- this.emitCurrentTagToken();
1704
- break;
1705
- }
1706
- case $.EOF: {
1707
- this._err(ERR.eofInTag);
1708
- this._emitEOFToken();
1709
- break;
1710
- }
1711
- default: {
1712
- this._err(ERR.missingWhitespaceBetweenAttributes);
1713
- this.state = State.BEFORE_ATTRIBUTE_NAME;
1714
- this._stateBeforeAttributeName(cp);
1715
- }
1716
- }
1717
- }
1718
- // Self-closing start tag state
1719
- //------------------------------------------------------------------
1720
- _stateSelfClosingStartTag(cp) {
1721
- switch (cp) {
1722
- case $.GREATER_THAN_SIGN: {
1723
- const token = this.currentToken;
1724
- token.selfClosing = true;
1725
- this.state = State.DATA;
1726
- this.emitCurrentTagToken();
1727
- break;
1728
- }
1729
- case $.EOF: {
1730
- this._err(ERR.eofInTag);
1731
- this._emitEOFToken();
1732
- break;
1733
- }
1734
- default: {
1735
- this._err(ERR.unexpectedSolidusInTag);
1736
- this.state = State.BEFORE_ATTRIBUTE_NAME;
1737
- this._stateBeforeAttributeName(cp);
1738
- }
1739
- }
1740
- }
1741
- // Bogus comment state
1742
- //------------------------------------------------------------------
1743
- _stateBogusComment(cp) {
1744
- const token = this.currentToken;
1745
- switch (cp) {
1746
- case $.GREATER_THAN_SIGN: {
1747
- this.state = State.DATA;
1748
- this.emitCurrentComment(token);
1749
- break;
1750
- }
1751
- case $.EOF: {
1752
- this.emitCurrentComment(token);
1753
- this._emitEOFToken();
1754
- break;
1755
- }
1756
- case $.NULL: {
1757
- this._err(ERR.unexpectedNullCharacter);
1758
- token.data += REPLACEMENT_CHARACTER;
1759
- break;
1760
- }
1761
- default: {
1762
- token.data += String.fromCodePoint(cp);
1763
- }
1764
- }
1765
- }
1766
- // Markup declaration open state
1767
- //------------------------------------------------------------------
1768
- _stateMarkupDeclarationOpen(cp) {
1769
- if (this._consumeSequenceIfMatch($$.DASH_DASH, true)) {
1770
- this._createCommentToken($$.DASH_DASH.length + 1);
1771
- this.state = State.COMMENT_START;
1772
- }
1773
- else if (this._consumeSequenceIfMatch($$.DOCTYPE, false)) {
1774
- // NOTE: Doctypes tokens are created without fixed offsets. We keep track of the moment a doctype *might* start here.
1775
- this.currentLocation = this.getCurrentLocation($$.DOCTYPE.length + 1);
1776
- this.state = State.DOCTYPE;
1777
- }
1778
- else if (this._consumeSequenceIfMatch($$.CDATA_START, true)) {
1779
- if (this.inForeignNode) {
1780
- this.state = State.CDATA_SECTION;
1781
- }
1782
- else {
1783
- this._err(ERR.cdataInHtmlContent);
1784
- this._createCommentToken($$.CDATA_START.length + 1);
1785
- this.currentToken.data = '[CDATA[';
1786
- this.state = State.BOGUS_COMMENT;
1787
- }
1788
- }
1789
- //NOTE: Sequence lookups can be abrupted by hibernation. In that case, lookup
1790
- //results are no longer valid and we will need to start over.
1791
- else if (!this._ensureHibernation()) {
1792
- this._err(ERR.incorrectlyOpenedComment);
1793
- this._createCommentToken(2);
1794
- this.state = State.BOGUS_COMMENT;
1795
- this._stateBogusComment(cp);
1796
- }
1797
- }
1798
- // Comment start state
1799
- //------------------------------------------------------------------
1800
- _stateCommentStart(cp) {
1801
- switch (cp) {
1802
- case $.HYPHEN_MINUS: {
1803
- this.state = State.COMMENT_START_DASH;
1804
- break;
1805
- }
1806
- case $.GREATER_THAN_SIGN: {
1807
- this._err(ERR.abruptClosingOfEmptyComment);
1808
- this.state = State.DATA;
1809
- const token = this.currentToken;
1810
- this.emitCurrentComment(token);
1811
- break;
1812
- }
1813
- default: {
1814
- this.state = State.COMMENT;
1815
- this._stateComment(cp);
1816
- }
1817
- }
1818
- }
1819
- // Comment start dash state
1820
- //------------------------------------------------------------------
1821
- _stateCommentStartDash(cp) {
1822
- const token = this.currentToken;
1823
- switch (cp) {
1824
- case $.HYPHEN_MINUS: {
1825
- this.state = State.COMMENT_END;
1826
- break;
1827
- }
1828
- case $.GREATER_THAN_SIGN: {
1829
- this._err(ERR.abruptClosingOfEmptyComment);
1830
- this.state = State.DATA;
1831
- this.emitCurrentComment(token);
1832
- break;
1833
- }
1834
- case $.EOF: {
1835
- this._err(ERR.eofInComment);
1836
- this.emitCurrentComment(token);
1837
- this._emitEOFToken();
1838
- break;
1839
- }
1840
- default: {
1841
- token.data += '-';
1842
- this.state = State.COMMENT;
1843
- this._stateComment(cp);
1844
- }
1845
- }
1846
- }
1847
- // Comment state
1848
- //------------------------------------------------------------------
1849
- _stateComment(cp) {
1850
- const token = this.currentToken;
1851
- switch (cp) {
1852
- case $.HYPHEN_MINUS: {
1853
- this.state = State.COMMENT_END_DASH;
1854
- break;
1855
- }
1856
- case $.LESS_THAN_SIGN: {
1857
- token.data += '<';
1858
- this.state = State.COMMENT_LESS_THAN_SIGN;
1859
- break;
1860
- }
1861
- case $.NULL: {
1862
- this._err(ERR.unexpectedNullCharacter);
1863
- token.data += REPLACEMENT_CHARACTER;
1864
- break;
1865
- }
1866
- case $.EOF: {
1867
- this._err(ERR.eofInComment);
1868
- this.emitCurrentComment(token);
1869
- this._emitEOFToken();
1870
- break;
1871
- }
1872
- default: {
1873
- token.data += String.fromCodePoint(cp);
1874
- }
1875
- }
1876
- }
1877
- // Comment less-than sign state
1878
- //------------------------------------------------------------------
1879
- _stateCommentLessThanSign(cp) {
1880
- const token = this.currentToken;
1881
- switch (cp) {
1882
- case $.EXCLAMATION_MARK: {
1883
- token.data += '!';
1884
- this.state = State.COMMENT_LESS_THAN_SIGN_BANG;
1885
- break;
1886
- }
1887
- case $.LESS_THAN_SIGN: {
1888
- token.data += '<';
1889
- break;
1890
- }
1891
- default: {
1892
- this.state = State.COMMENT;
1893
- this._stateComment(cp);
1894
- }
1895
- }
1896
- }
1897
- // Comment less-than sign bang state
1898
- //------------------------------------------------------------------
1899
- _stateCommentLessThanSignBang(cp) {
1900
- if (cp === $.HYPHEN_MINUS) {
1901
- this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;
1902
- }
1903
- else {
1904
- this.state = State.COMMENT;
1905
- this._stateComment(cp);
1906
- }
1907
- }
1908
- // Comment less-than sign bang dash state
1909
- //------------------------------------------------------------------
1910
- _stateCommentLessThanSignBangDash(cp) {
1911
- if (cp === $.HYPHEN_MINUS) {
1912
- this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;
1913
- }
1914
- else {
1915
- this.state = State.COMMENT_END_DASH;
1916
- this._stateCommentEndDash(cp);
1917
- }
1918
- }
1919
- // Comment less-than sign bang dash dash state
1920
- //------------------------------------------------------------------
1921
- _stateCommentLessThanSignBangDashDash(cp) {
1922
- if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {
1923
- this._err(ERR.nestedComment);
1924
- }
1925
- this.state = State.COMMENT_END;
1926
- this._stateCommentEnd(cp);
1927
- }
1928
- // Comment end dash state
1929
- //------------------------------------------------------------------
1930
- _stateCommentEndDash(cp) {
1931
- const token = this.currentToken;
1932
- switch (cp) {
1933
- case $.HYPHEN_MINUS: {
1934
- this.state = State.COMMENT_END;
1935
- break;
1936
- }
1937
- case $.EOF: {
1938
- this._err(ERR.eofInComment);
1939
- this.emitCurrentComment(token);
1940
- this._emitEOFToken();
1941
- break;
1942
- }
1943
- default: {
1944
- token.data += '-';
1945
- this.state = State.COMMENT;
1946
- this._stateComment(cp);
1947
- }
1948
- }
1949
- }
1950
- // Comment end state
1951
- //------------------------------------------------------------------
1952
- _stateCommentEnd(cp) {
1953
- const token = this.currentToken;
1954
- switch (cp) {
1955
- case $.GREATER_THAN_SIGN: {
1956
- this.state = State.DATA;
1957
- this.emitCurrentComment(token);
1958
- break;
1959
- }
1960
- case $.EXCLAMATION_MARK: {
1961
- this.state = State.COMMENT_END_BANG;
1962
- break;
1963
- }
1964
- case $.HYPHEN_MINUS: {
1965
- token.data += '-';
1966
- break;
1967
- }
1968
- case $.EOF: {
1969
- this._err(ERR.eofInComment);
1970
- this.emitCurrentComment(token);
1971
- this._emitEOFToken();
1972
- break;
1973
- }
1974
- default: {
1975
- token.data += '--';
1976
- this.state = State.COMMENT;
1977
- this._stateComment(cp);
1978
- }
1979
- }
1980
- }
1981
- // Comment end bang state
1982
- //------------------------------------------------------------------
1983
- _stateCommentEndBang(cp) {
1984
- const token = this.currentToken;
1985
- switch (cp) {
1986
- case $.HYPHEN_MINUS: {
1987
- token.data += '--!';
1988
- this.state = State.COMMENT_END_DASH;
1989
- break;
1990
- }
1991
- case $.GREATER_THAN_SIGN: {
1992
- this._err(ERR.incorrectlyClosedComment);
1993
- this.state = State.DATA;
1994
- this.emitCurrentComment(token);
1995
- break;
1996
- }
1997
- case $.EOF: {
1998
- this._err(ERR.eofInComment);
1999
- this.emitCurrentComment(token);
2000
- this._emitEOFToken();
2001
- break;
2002
- }
2003
- default: {
2004
- token.data += '--!';
2005
- this.state = State.COMMENT;
2006
- this._stateComment(cp);
2007
- }
2008
- }
2009
- }
2010
- // DOCTYPE state
2011
- //------------------------------------------------------------------
2012
- _stateDoctype(cp) {
2013
- switch (cp) {
2014
- case $.SPACE:
2015
- case $.LINE_FEED:
2016
- case $.TABULATION:
2017
- case $.FORM_FEED: {
2018
- this.state = State.BEFORE_DOCTYPE_NAME;
2019
- break;
2020
- }
2021
- case $.GREATER_THAN_SIGN: {
2022
- this.state = State.BEFORE_DOCTYPE_NAME;
2023
- this._stateBeforeDoctypeName(cp);
2024
- break;
2025
- }
2026
- case $.EOF: {
2027
- this._err(ERR.eofInDoctype);
2028
- this._createDoctypeToken(null);
2029
- const token = this.currentToken;
2030
- token.forceQuirks = true;
2031
- this.emitCurrentDoctype(token);
2032
- this._emitEOFToken();
2033
- break;
2034
- }
2035
- default: {
2036
- this._err(ERR.missingWhitespaceBeforeDoctypeName);
2037
- this.state = State.BEFORE_DOCTYPE_NAME;
2038
- this._stateBeforeDoctypeName(cp);
2039
- }
2040
- }
2041
- }
2042
- // Before DOCTYPE name state
2043
- //------------------------------------------------------------------
2044
- _stateBeforeDoctypeName(cp) {
2045
- if (isAsciiUpper(cp)) {
2046
- this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));
2047
- this.state = State.DOCTYPE_NAME;
2048
- }
2049
- else
2050
- switch (cp) {
2051
- case $.SPACE:
2052
- case $.LINE_FEED:
2053
- case $.TABULATION:
2054
- case $.FORM_FEED: {
2055
- // Ignore whitespace
2056
- break;
2057
- }
2058
- case $.NULL: {
2059
- this._err(ERR.unexpectedNullCharacter);
2060
- this._createDoctypeToken(REPLACEMENT_CHARACTER);
2061
- this.state = State.DOCTYPE_NAME;
2062
- break;
2063
- }
2064
- case $.GREATER_THAN_SIGN: {
2065
- this._err(ERR.missingDoctypeName);
2066
- this._createDoctypeToken(null);
2067
- const token = this.currentToken;
2068
- token.forceQuirks = true;
2069
- this.emitCurrentDoctype(token);
2070
- this.state = State.DATA;
2071
- break;
2072
- }
2073
- case $.EOF: {
2074
- this._err(ERR.eofInDoctype);
2075
- this._createDoctypeToken(null);
2076
- const token = this.currentToken;
2077
- token.forceQuirks = true;
2078
- this.emitCurrentDoctype(token);
2079
- this._emitEOFToken();
2080
- break;
2081
- }
2082
- default: {
2083
- this._createDoctypeToken(String.fromCodePoint(cp));
2084
- this.state = State.DOCTYPE_NAME;
2085
- }
2086
- }
2087
- }
2088
- // DOCTYPE name state
2089
- //------------------------------------------------------------------
2090
- _stateDoctypeName(cp) {
2091
- const token = this.currentToken;
2092
- switch (cp) {
2093
- case $.SPACE:
2094
- case $.LINE_FEED:
2095
- case $.TABULATION:
2096
- case $.FORM_FEED: {
2097
- this.state = State.AFTER_DOCTYPE_NAME;
2098
- break;
2099
- }
2100
- case $.GREATER_THAN_SIGN: {
2101
- this.state = State.DATA;
2102
- this.emitCurrentDoctype(token);
2103
- break;
2104
- }
2105
- case $.NULL: {
2106
- this._err(ERR.unexpectedNullCharacter);
2107
- token.name += REPLACEMENT_CHARACTER;
2108
- break;
2109
- }
2110
- case $.EOF: {
2111
- this._err(ERR.eofInDoctype);
2112
- token.forceQuirks = true;
2113
- this.emitCurrentDoctype(token);
2114
- this._emitEOFToken();
2115
- break;
2116
- }
2117
- default: {
2118
- token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
2119
- }
2120
- }
2121
- }
2122
- // After DOCTYPE name state
2123
- //------------------------------------------------------------------
2124
- _stateAfterDoctypeName(cp) {
2125
- const token = this.currentToken;
2126
- switch (cp) {
2127
- case $.SPACE:
2128
- case $.LINE_FEED:
2129
- case $.TABULATION:
2130
- case $.FORM_FEED: {
2131
- // Ignore whitespace
2132
- break;
2133
- }
2134
- case $.GREATER_THAN_SIGN: {
2135
- this.state = State.DATA;
2136
- this.emitCurrentDoctype(token);
2137
- break;
2138
- }
2139
- case $.EOF: {
2140
- this._err(ERR.eofInDoctype);
2141
- token.forceQuirks = true;
2142
- this.emitCurrentDoctype(token);
2143
- this._emitEOFToken();
2144
- break;
2145
- }
2146
- default: {
2147
- if (this._consumeSequenceIfMatch($$.PUBLIC, false)) {
2148
- this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;
2149
- }
2150
- else if (this._consumeSequenceIfMatch($$.SYSTEM, false)) {
2151
- this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;
2152
- }
2153
- //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup
2154
- //results are no longer valid and we will need to start over.
2155
- else if (!this._ensureHibernation()) {
2156
- this._err(ERR.invalidCharacterSequenceAfterDoctypeName);
2157
- token.forceQuirks = true;
2158
- this.state = State.BOGUS_DOCTYPE;
2159
- this._stateBogusDoctype(cp);
2160
- }
2161
- }
2162
- }
2163
- }
2164
- // After DOCTYPE public keyword state
2165
- //------------------------------------------------------------------
2166
- _stateAfterDoctypePublicKeyword(cp) {
2167
- const token = this.currentToken;
2168
- switch (cp) {
2169
- case $.SPACE:
2170
- case $.LINE_FEED:
2171
- case $.TABULATION:
2172
- case $.FORM_FEED: {
2173
- this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
2174
- break;
2175
- }
2176
- case $.QUOTATION_MARK: {
2177
- this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);
2178
- token.publicId = '';
2179
- this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
2180
- break;
2181
- }
2182
- case $.APOSTROPHE: {
2183
- this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);
2184
- token.publicId = '';
2185
- this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
2186
- break;
2187
- }
2188
- case $.GREATER_THAN_SIGN: {
2189
- this._err(ERR.missingDoctypePublicIdentifier);
2190
- token.forceQuirks = true;
2191
- this.state = State.DATA;
2192
- this.emitCurrentDoctype(token);
2193
- break;
2194
- }
2195
- case $.EOF: {
2196
- this._err(ERR.eofInDoctype);
2197
- token.forceQuirks = true;
2198
- this.emitCurrentDoctype(token);
2199
- this._emitEOFToken();
2200
- break;
2201
- }
2202
- default: {
2203
- this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);
2204
- token.forceQuirks = true;
2205
- this.state = State.BOGUS_DOCTYPE;
2206
- this._stateBogusDoctype(cp);
2207
- }
2208
- }
2209
- }
2210
- // Before DOCTYPE public identifier state
2211
- //------------------------------------------------------------------
2212
- _stateBeforeDoctypePublicIdentifier(cp) {
2213
- const token = this.currentToken;
2214
- switch (cp) {
2215
- case $.SPACE:
2216
- case $.LINE_FEED:
2217
- case $.TABULATION:
2218
- case $.FORM_FEED: {
2219
- // Ignore whitespace
2220
- break;
2221
- }
2222
- case $.QUOTATION_MARK: {
2223
- token.publicId = '';
2224
- this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
2225
- break;
2226
- }
2227
- case $.APOSTROPHE: {
2228
- token.publicId = '';
2229
- this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
2230
- break;
2231
- }
2232
- case $.GREATER_THAN_SIGN: {
2233
- this._err(ERR.missingDoctypePublicIdentifier);
2234
- token.forceQuirks = true;
2235
- this.state = State.DATA;
2236
- this.emitCurrentDoctype(token);
2237
- break;
2238
- }
2239
- case $.EOF: {
2240
- this._err(ERR.eofInDoctype);
2241
- token.forceQuirks = true;
2242
- this.emitCurrentDoctype(token);
2243
- this._emitEOFToken();
2244
- break;
2245
- }
2246
- default: {
2247
- this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);
2248
- token.forceQuirks = true;
2249
- this.state = State.BOGUS_DOCTYPE;
2250
- this._stateBogusDoctype(cp);
2251
- }
2252
- }
2253
- }
2254
- // DOCTYPE public identifier (double-quoted) state
2255
- //------------------------------------------------------------------
2256
- _stateDoctypePublicIdentifierDoubleQuoted(cp) {
2257
- const token = this.currentToken;
2258
- switch (cp) {
2259
- case $.QUOTATION_MARK: {
2260
- this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
2261
- break;
2262
- }
2263
- case $.NULL: {
2264
- this._err(ERR.unexpectedNullCharacter);
2265
- token.publicId += REPLACEMENT_CHARACTER;
2266
- break;
2267
- }
2268
- case $.GREATER_THAN_SIGN: {
2269
- this._err(ERR.abruptDoctypePublicIdentifier);
2270
- token.forceQuirks = true;
2271
- this.emitCurrentDoctype(token);
2272
- this.state = State.DATA;
2273
- break;
2274
- }
2275
- case $.EOF: {
2276
- this._err(ERR.eofInDoctype);
2277
- token.forceQuirks = true;
2278
- this.emitCurrentDoctype(token);
2279
- this._emitEOFToken();
2280
- break;
2281
- }
2282
- default: {
2283
- token.publicId += String.fromCodePoint(cp);
2284
- }
2285
- }
2286
- }
2287
- // DOCTYPE public identifier (single-quoted) state
2288
- //------------------------------------------------------------------
2289
- _stateDoctypePublicIdentifierSingleQuoted(cp) {
2290
- const token = this.currentToken;
2291
- switch (cp) {
2292
- case $.APOSTROPHE: {
2293
- this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
2294
- break;
2295
- }
2296
- case $.NULL: {
2297
- this._err(ERR.unexpectedNullCharacter);
2298
- token.publicId += REPLACEMENT_CHARACTER;
2299
- break;
2300
- }
2301
- case $.GREATER_THAN_SIGN: {
2302
- this._err(ERR.abruptDoctypePublicIdentifier);
2303
- token.forceQuirks = true;
2304
- this.emitCurrentDoctype(token);
2305
- this.state = State.DATA;
2306
- break;
2307
- }
2308
- case $.EOF: {
2309
- this._err(ERR.eofInDoctype);
2310
- token.forceQuirks = true;
2311
- this.emitCurrentDoctype(token);
2312
- this._emitEOFToken();
2313
- break;
2314
- }
2315
- default: {
2316
- token.publicId += String.fromCodePoint(cp);
2317
- }
2318
- }
2319
- }
2320
- // After DOCTYPE public identifier state
2321
- //------------------------------------------------------------------
2322
- _stateAfterDoctypePublicIdentifier(cp) {
2323
- const token = this.currentToken;
2324
- switch (cp) {
2325
- case $.SPACE:
2326
- case $.LINE_FEED:
2327
- case $.TABULATION:
2328
- case $.FORM_FEED: {
2329
- this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
2330
- break;
2331
- }
2332
- case $.GREATER_THAN_SIGN: {
2333
- this.state = State.DATA;
2334
- this.emitCurrentDoctype(token);
2335
- break;
2336
- }
2337
- case $.QUOTATION_MARK: {
2338
- this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
2339
- token.systemId = '';
2340
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
2341
- break;
2342
- }
2343
- case $.APOSTROPHE: {
2344
- this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
2345
- token.systemId = '';
2346
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
2347
- break;
2348
- }
2349
- case $.EOF: {
2350
- this._err(ERR.eofInDoctype);
2351
- token.forceQuirks = true;
2352
- this.emitCurrentDoctype(token);
2353
- this._emitEOFToken();
2354
- break;
2355
- }
2356
- default: {
2357
- this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);
2358
- token.forceQuirks = true;
2359
- this.state = State.BOGUS_DOCTYPE;
2360
- this._stateBogusDoctype(cp);
2361
- }
2362
- }
2363
- }
2364
- // Between DOCTYPE public and system identifiers state
2365
- //------------------------------------------------------------------
2366
- _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {
2367
- const token = this.currentToken;
2368
- switch (cp) {
2369
- case $.SPACE:
2370
- case $.LINE_FEED:
2371
- case $.TABULATION:
2372
- case $.FORM_FEED: {
2373
- // Ignore whitespace
2374
- break;
2375
- }
2376
- case $.GREATER_THAN_SIGN: {
2377
- this.emitCurrentDoctype(token);
2378
- this.state = State.DATA;
2379
- break;
2380
- }
2381
- case $.QUOTATION_MARK: {
2382
- token.systemId = '';
2383
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
2384
- break;
2385
- }
2386
- case $.APOSTROPHE: {
2387
- token.systemId = '';
2388
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
2389
- break;
2390
- }
2391
- case $.EOF: {
2392
- this._err(ERR.eofInDoctype);
2393
- token.forceQuirks = true;
2394
- this.emitCurrentDoctype(token);
2395
- this._emitEOFToken();
2396
- break;
2397
- }
2398
- default: {
2399
- this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);
2400
- token.forceQuirks = true;
2401
- this.state = State.BOGUS_DOCTYPE;
2402
- this._stateBogusDoctype(cp);
2403
- }
2404
- }
2405
- }
2406
- // After DOCTYPE system keyword state
2407
- //------------------------------------------------------------------
2408
- _stateAfterDoctypeSystemKeyword(cp) {
2409
- const token = this.currentToken;
2410
- switch (cp) {
2411
- case $.SPACE:
2412
- case $.LINE_FEED:
2413
- case $.TABULATION:
2414
- case $.FORM_FEED: {
2415
- this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
2416
- break;
2417
- }
2418
- case $.QUOTATION_MARK: {
2419
- this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);
2420
- token.systemId = '';
2421
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
2422
- break;
2423
- }
2424
- case $.APOSTROPHE: {
2425
- this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);
2426
- token.systemId = '';
2427
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
2428
- break;
2429
- }
2430
- case $.GREATER_THAN_SIGN: {
2431
- this._err(ERR.missingDoctypeSystemIdentifier);
2432
- token.forceQuirks = true;
2433
- this.state = State.DATA;
2434
- this.emitCurrentDoctype(token);
2435
- break;
2436
- }
2437
- case $.EOF: {
2438
- this._err(ERR.eofInDoctype);
2439
- token.forceQuirks = true;
2440
- this.emitCurrentDoctype(token);
2441
- this._emitEOFToken();
2442
- break;
2443
- }
2444
- default: {
2445
- this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);
2446
- token.forceQuirks = true;
2447
- this.state = State.BOGUS_DOCTYPE;
2448
- this._stateBogusDoctype(cp);
2449
- }
2450
- }
2451
- }
2452
- // Before DOCTYPE system identifier state
2453
- //------------------------------------------------------------------
2454
- _stateBeforeDoctypeSystemIdentifier(cp) {
2455
- const token = this.currentToken;
2456
- switch (cp) {
2457
- case $.SPACE:
2458
- case $.LINE_FEED:
2459
- case $.TABULATION:
2460
- case $.FORM_FEED: {
2461
- // Ignore whitespace
2462
- break;
2463
- }
2464
- case $.QUOTATION_MARK: {
2465
- token.systemId = '';
2466
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
2467
- break;
2468
- }
2469
- case $.APOSTROPHE: {
2470
- token.systemId = '';
2471
- this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
2472
- break;
2473
- }
2474
- case $.GREATER_THAN_SIGN: {
2475
- this._err(ERR.missingDoctypeSystemIdentifier);
2476
- token.forceQuirks = true;
2477
- this.state = State.DATA;
2478
- this.emitCurrentDoctype(token);
2479
- break;
2480
- }
2481
- case $.EOF: {
2482
- this._err(ERR.eofInDoctype);
2483
- token.forceQuirks = true;
2484
- this.emitCurrentDoctype(token);
2485
- this._emitEOFToken();
2486
- break;
2487
- }
2488
- default: {
2489
- this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);
2490
- token.forceQuirks = true;
2491
- this.state = State.BOGUS_DOCTYPE;
2492
- this._stateBogusDoctype(cp);
2493
- }
2494
- }
2495
- }
2496
- // DOCTYPE system identifier (double-quoted) state
2497
- //------------------------------------------------------------------
2498
- _stateDoctypeSystemIdentifierDoubleQuoted(cp) {
2499
- const token = this.currentToken;
2500
- switch (cp) {
2501
- case $.QUOTATION_MARK: {
2502
- this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
2503
- break;
2504
- }
2505
- case $.NULL: {
2506
- this._err(ERR.unexpectedNullCharacter);
2507
- token.systemId += REPLACEMENT_CHARACTER;
2508
- break;
2509
- }
2510
- case $.GREATER_THAN_SIGN: {
2511
- this._err(ERR.abruptDoctypeSystemIdentifier);
2512
- token.forceQuirks = true;
2513
- this.emitCurrentDoctype(token);
2514
- this.state = State.DATA;
2515
- break;
2516
- }
2517
- case $.EOF: {
2518
- this._err(ERR.eofInDoctype);
2519
- token.forceQuirks = true;
2520
- this.emitCurrentDoctype(token);
2521
- this._emitEOFToken();
2522
- break;
2523
- }
2524
- default: {
2525
- token.systemId += String.fromCodePoint(cp);
2526
- }
2527
- }
2528
- }
2529
- // DOCTYPE system identifier (single-quoted) state
2530
- //------------------------------------------------------------------
2531
- _stateDoctypeSystemIdentifierSingleQuoted(cp) {
2532
- const token = this.currentToken;
2533
- switch (cp) {
2534
- case $.APOSTROPHE: {
2535
- this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
2536
- break;
2537
- }
2538
- case $.NULL: {
2539
- this._err(ERR.unexpectedNullCharacter);
2540
- token.systemId += REPLACEMENT_CHARACTER;
2541
- break;
2542
- }
2543
- case $.GREATER_THAN_SIGN: {
2544
- this._err(ERR.abruptDoctypeSystemIdentifier);
2545
- token.forceQuirks = true;
2546
- this.emitCurrentDoctype(token);
2547
- this.state = State.DATA;
2548
- break;
2549
- }
2550
- case $.EOF: {
2551
- this._err(ERR.eofInDoctype);
2552
- token.forceQuirks = true;
2553
- this.emitCurrentDoctype(token);
2554
- this._emitEOFToken();
2555
- break;
2556
- }
2557
- default: {
2558
- token.systemId += String.fromCodePoint(cp);
2559
- }
2560
- }
2561
- }
2562
- // After DOCTYPE system identifier state
2563
- //------------------------------------------------------------------
2564
- _stateAfterDoctypeSystemIdentifier(cp) {
2565
- const token = this.currentToken;
2566
- switch (cp) {
2567
- case $.SPACE:
2568
- case $.LINE_FEED:
2569
- case $.TABULATION:
2570
- case $.FORM_FEED: {
2571
- // Ignore whitespace
2572
- break;
2573
- }
2574
- case $.GREATER_THAN_SIGN: {
2575
- this.emitCurrentDoctype(token);
2576
- this.state = State.DATA;
2577
- break;
2578
- }
2579
- case $.EOF: {
2580
- this._err(ERR.eofInDoctype);
2581
- token.forceQuirks = true;
2582
- this.emitCurrentDoctype(token);
2583
- this._emitEOFToken();
2584
- break;
2585
- }
2586
- default: {
2587
- this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);
2588
- this.state = State.BOGUS_DOCTYPE;
2589
- this._stateBogusDoctype(cp);
2590
- }
2591
- }
2592
- }
2593
- // Bogus DOCTYPE state
2594
- //------------------------------------------------------------------
2595
- _stateBogusDoctype(cp) {
2596
- const token = this.currentToken;
2597
- switch (cp) {
2598
- case $.GREATER_THAN_SIGN: {
2599
- this.emitCurrentDoctype(token);
2600
- this.state = State.DATA;
2601
- break;
2602
- }
2603
- case $.NULL: {
2604
- this._err(ERR.unexpectedNullCharacter);
2605
- break;
2606
- }
2607
- case $.EOF: {
2608
- this.emitCurrentDoctype(token);
2609
- this._emitEOFToken();
2610
- break;
2611
- }
2612
- default:
2613
- // Do nothing
2614
- }
2615
- }
2616
- // CDATA section state
2617
- //------------------------------------------------------------------
2618
- _stateCdataSection(cp) {
2619
- switch (cp) {
2620
- case $.RIGHT_SQUARE_BRACKET: {
2621
- this.state = State.CDATA_SECTION_BRACKET;
2622
- break;
2623
- }
2624
- case $.EOF: {
2625
- this._err(ERR.eofInCdata);
2626
- this._emitEOFToken();
2627
- break;
2628
- }
2629
- default: {
2630
- this._emitCodePoint(cp);
2631
- }
2632
- }
2633
- }
2634
- // CDATA section bracket state
2635
- //------------------------------------------------------------------
2636
- _stateCdataSectionBracket(cp) {
2637
- if (cp === $.RIGHT_SQUARE_BRACKET) {
2638
- this.state = State.CDATA_SECTION_END;
2639
- }
2640
- else {
2641
- this._emitChars(']');
2642
- this.state = State.CDATA_SECTION;
2643
- this._stateCdataSection(cp);
2644
- }
2645
- }
2646
- // CDATA section end state
2647
- //------------------------------------------------------------------
2648
- _stateCdataSectionEnd(cp) {
2649
- switch (cp) {
2650
- case $.GREATER_THAN_SIGN: {
2651
- this.state = State.DATA;
2652
- break;
2653
- }
2654
- case $.RIGHT_SQUARE_BRACKET: {
2655
- this._emitChars(']');
2656
- break;
2657
- }
2658
- default: {
2659
- this._emitChars(']]');
2660
- this.state = State.CDATA_SECTION;
2661
- this._stateCdataSection(cp);
2662
- }
2663
- }
2664
- }
2665
- // Character reference state
2666
- //------------------------------------------------------------------
2667
- _stateCharacterReference() {
2668
- let length = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
2669
- if (length < 0) {
2670
- if (this.preprocessor.lastChunkWritten) {
2671
- length = this.entityDecoder.end();
2672
- }
2673
- else {
2674
- // Wait for the rest of the entity.
2675
- this.active = false;
2676
- // Mark the entire buffer as read.
2677
- this.preprocessor.pos = this.preprocessor.html.length - 1;
2678
- this.consumedAfterSnapshot = 0;
2679
- this.preprocessor.endOfChunkHit = true;
2680
- return;
2681
- }
2682
- }
2683
- if (length === 0) {
2684
- // This was not a valid entity. Go back to the beginning, and
2685
- // figure out what to do.
2686
- this.preprocessor.pos = this.entityStartPos;
2687
- this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);
2688
- this.state =
2689
- !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric(this.preprocessor.peek(1))
2690
- ? State.AMBIGUOUS_AMPERSAND
2691
- : this.returnState;
2692
- }
2693
- else {
2694
- // We successfully parsed an entity. Switch to the return state.
2695
- this.state = this.returnState;
2696
- }
2697
- }
2698
- // Ambiguos ampersand state
2699
- //------------------------------------------------------------------
2700
- _stateAmbiguousAmpersand(cp) {
2701
- if (isAsciiAlphaNumeric(cp)) {
2702
- this._flushCodePointConsumedAsCharacterReference(cp);
2703
- }
2704
- else {
2705
- if (cp === $.SEMICOLON) {
2706
- this._err(ERR.unknownNamedCharacterReference);
2707
- }
2708
- this.state = this.returnState;
2709
- this._callState(cp);
2710
- }
2711
- }
2712
- }