@dooboostore/dom-parser 1.0.2 → 1.0.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 (727) hide show
  1. package/README.MD +369 -6
  2. package/dist/cjs/DomParser.js +11 -1
  3. package/dist/cjs/DomParser.js.map +2 -2
  4. package/dist/cjs/bundle-entry.js +36 -0
  5. package/dist/cjs/bundle-entry.js.map +7 -0
  6. package/dist/cjs/factory/ElementFactory.js +31 -7
  7. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  8. package/dist/cjs/index.js +26 -0
  9. package/dist/cjs/index.js.map +2 -2
  10. package/dist/cjs/node/CharacterData.js.map +1 -1
  11. package/dist/cjs/node/ChildNode.js +0 -15
  12. package/dist/cjs/node/ChildNode.js.map +3 -3
  13. package/dist/cjs/node/ChildNodeBase.js +20 -0
  14. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  15. package/dist/cjs/node/Comment.js.map +2 -2
  16. package/dist/cjs/node/Document.js +0 -27
  17. package/dist/cjs/node/Document.js.map +4 -4
  18. package/dist/cjs/node/DocumentBase.js +168 -205
  19. package/dist/cjs/node/DocumentBase.js.map +2 -2
  20. package/dist/cjs/node/DocumentFragment.js +0 -15
  21. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  22. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  23. package/dist/cjs/node/Node.js.map +1 -1
  24. package/dist/cjs/node/NodeBase.js +44 -2
  25. package/dist/cjs/node/NodeBase.js.map +2 -2
  26. package/dist/cjs/node/NodeFilter.js +43 -0
  27. package/dist/cjs/node/NodeFilter.js.map +7 -0
  28. package/dist/cjs/node/NodeIterator.js +1 -28
  29. package/dist/cjs/node/NodeIterator.js.map +2 -2
  30. package/dist/cjs/node/ParentNode.js +0 -15
  31. package/dist/cjs/node/ParentNode.js.map +3 -3
  32. package/dist/cjs/node/ParentNodeBase.js +10 -10
  33. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  34. package/dist/cjs/node/ShadowRootBase.js +79 -0
  35. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  36. package/dist/cjs/node/Text.js +0 -15
  37. package/dist/cjs/node/Text.js.map +3 -3
  38. package/dist/cjs/node/TextBase.js +0 -3
  39. package/dist/cjs/node/TextBase.js.map +2 -2
  40. package/dist/cjs/node/TreeWalker.js +272 -0
  41. package/dist/cjs/node/TreeWalker.js.map +7 -0
  42. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  43. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  44. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  45. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  47. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  48. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  49. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  50. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  51. package/dist/cjs/node/collection/index.js +6 -6
  52. package/dist/cjs/node/collection/index.js.map +2 -2
  53. package/dist/cjs/node/elements/Element.js +0 -15
  54. package/dist/cjs/node/elements/Element.js.map +3 -3
  55. package/dist/cjs/node/elements/ElementBase.js +163 -331
  56. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  57. package/dist/cjs/node/elements/HTMLAnchorElement.js +2 -2
  58. package/dist/cjs/node/elements/HTMLAnchorElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLAreaElement.js +2 -2
  60. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  61. package/dist/cjs/node/elements/{HTMLGenericElement.js → HTMLAudioElement.js} +8 -11
  62. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLBaseElement.js +2 -2
  64. package/dist/cjs/node/elements/HTMLBaseElement.js.map +2 -2
  65. package/dist/cjs/node/elements/HTMLBodyElement.js +2 -2
  66. package/dist/cjs/node/elements/HTMLBodyElement.js.map +2 -2
  67. package/dist/cjs/node/elements/HTMLButtonElement.js +3 -3
  68. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  69. package/dist/cjs/node/elements/HTMLCanvasElement.js +2 -2
  70. package/dist/cjs/node/elements/HTMLCanvasElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLCaptionElement.js +2 -2
  72. package/dist/cjs/node/elements/HTMLCaptionElement.js.map +2 -2
  73. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLDListElement.js} +9 -16
  74. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  75. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  76. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  77. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  78. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  79. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  80. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  81. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  82. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  83. package/dist/cjs/node/elements/HTMLDivElement.js +2 -2
  84. package/dist/cjs/node/elements/HTMLDivElement.js.map +2 -2
  85. package/dist/cjs/node/elements/HTMLElement.js +13 -0
  86. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  87. package/dist/cjs/node/elements/HTMLElementBase.js +44 -44
  88. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  89. package/dist/cjs/node/elements/HTMLEmbedElement.js +2 -2
  90. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  91. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  92. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  93. package/dist/cjs/node/elements/HTMLFormElement.js +2 -2
  94. package/dist/cjs/node/elements/HTMLFormElement.js.map +2 -2
  95. package/dist/cjs/node/elements/HTMLH1Element.js +2 -2
  96. package/dist/cjs/node/elements/HTMLH1Element.js.map +2 -2
  97. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  98. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  99. package/dist/cjs/node/elements/HTMLHeadElement.js +2 -2
  100. package/dist/cjs/node/elements/HTMLHeadElement.js.map +2 -2
  101. package/dist/cjs/node/elements/HTMLHtmlElement.js +2 -2
  102. package/dist/cjs/node/elements/HTMLHtmlElement.js.map +2 -2
  103. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  104. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  105. package/dist/cjs/node/elements/HTMLImgElement.js +2 -2
  106. package/dist/cjs/node/elements/HTMLImgElement.js.map +2 -2
  107. package/dist/cjs/node/elements/HTMLInputElement.js +2 -2
  108. package/dist/cjs/node/elements/HTMLInputElement.js.map +2 -2
  109. package/dist/cjs/node/elements/HTMLLIElement.js +2 -2
  110. package/dist/cjs/node/elements/HTMLLIElement.js.map +2 -2
  111. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  112. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  113. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  114. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  115. package/dist/cjs/node/elements/HTMLLinkElement.js +2 -2
  116. package/dist/cjs/node/elements/HTMLLinkElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  118. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  119. package/dist/cjs/node/elements/HTMLMetaElement.js +2 -2
  120. package/dist/cjs/node/elements/HTMLMetaElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  122. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  123. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  124. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  125. package/dist/cjs/node/elements/HTMLOListElement.js +2 -2
  126. package/dist/cjs/node/elements/HTMLOListElement.js.map +2 -2
  127. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  129. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  130. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  131. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  132. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  133. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  134. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  135. package/dist/cjs/node/elements/HTMLPElement.js +2 -2
  136. package/dist/cjs/node/elements/HTMLPElement.js.map +2 -2
  137. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  138. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  139. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  140. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  141. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  142. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  143. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  144. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  145. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  146. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  147. package/dist/cjs/node/elements/HTMLScriptElement.js +2 -2
  148. package/dist/cjs/node/elements/HTMLScriptElement.js.map +2 -2
  149. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  150. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  151. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  152. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  153. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  154. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  155. package/dist/cjs/node/elements/HTMLSpanElement.js +2 -2
  156. package/dist/cjs/node/elements/HTMLSpanElement.js.map +2 -2
  157. package/dist/cjs/node/elements/HTMLStyleElement.js +2 -2
  158. package/dist/cjs/node/elements/HTMLStyleElement.js.map +2 -2
  159. package/dist/cjs/node/elements/HTMLTableElement.js +2 -2
  160. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  161. package/dist/cjs/node/elements/HTMLTbodyElement.js +2 -2
  162. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  163. package/dist/cjs/node/elements/HTMLTdElement.js +2 -2
  164. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  165. package/dist/cjs/node/elements/HTMLTemplateElement.js +2 -2
  166. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  167. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  168. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  169. package/dist/cjs/node/elements/HTMLTfootElement.js +2 -2
  170. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  171. package/dist/cjs/node/elements/HTMLThElement.js +2 -2
  172. package/dist/cjs/node/elements/HTMLThElement.js.map +2 -2
  173. package/dist/cjs/node/elements/HTMLTheadElement.js +2 -2
  174. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  175. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  176. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  177. package/dist/cjs/node/elements/HTMLTitleElement.js +2 -2
  178. package/dist/cjs/node/elements/HTMLTitleElement.js.map +2 -2
  179. package/dist/cjs/node/elements/HTMLTrElement.js +2 -2
  180. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  181. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  182. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  183. package/dist/cjs/node/elements/HTMLUListElement.js +2 -2
  184. package/dist/cjs/node/elements/HTMLUListElement.js.map +2 -2
  185. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  186. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  187. package/dist/cjs/node/elements/MathMLElement.js +2 -2
  188. package/dist/cjs/node/elements/MathMLElement.js.map +2 -2
  189. package/dist/cjs/node/elements/SVGElement.js +2 -2
  190. package/dist/cjs/node/elements/SVGElement.js.map +2 -2
  191. package/dist/cjs/node/elements/index.js +181 -94
  192. package/dist/cjs/node/elements/index.js.map +2 -2
  193. package/dist/cjs/node/index.js +6 -16
  194. package/dist/cjs/node/index.js.map +2 -2
  195. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  196. package/dist/cjs/window/CustomElementRegistryImp.js +113 -0
  197. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  198. package/dist/cjs/window/Window.js +0 -15
  199. package/dist/cjs/window/Window.js.map +3 -3
  200. package/dist/cjs/window/WindowBase.js +210 -613
  201. package/dist/cjs/window/WindowBase.js.map +2 -2
  202. package/dist/cjs/window/index.js +0 -5
  203. package/dist/cjs/window/index.js.map +2 -2
  204. package/dist/esm/DomParser.js +11 -1
  205. package/dist/esm/DomParser.js.map +2 -2
  206. package/dist/esm/bundle-entry.js +6 -0
  207. package/dist/esm/bundle-entry.js.map +7 -0
  208. package/dist/esm/factory/ElementFactory.js +32 -8
  209. package/dist/esm/factory/ElementFactory.js.map +2 -2
  210. package/dist/esm/index.js +26 -0
  211. package/dist/esm/index.js.map +2 -2
  212. package/dist/esm/node/ChildNodeBase.js +20 -0
  213. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  214. package/dist/esm/node/Comment.js.map +2 -2
  215. package/dist/esm/node/Document.js +0 -8
  216. package/dist/esm/node/Document.js.map +4 -4
  217. package/dist/esm/node/DocumentBase.js +165 -202
  218. package/dist/esm/node/DocumentBase.js.map +2 -2
  219. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  220. package/dist/esm/node/Node.js.map +1 -1
  221. package/dist/esm/node/NodeBase.js +45 -22
  222. package/dist/esm/node/NodeBase.js.map +2 -2
  223. package/dist/esm/node/NodeFilter.js +24 -0
  224. package/dist/esm/node/NodeFilter.js.map +7 -0
  225. package/dist/esm/node/NodeIterator.js +1 -28
  226. package/dist/esm/node/NodeIterator.js.map +2 -2
  227. package/dist/esm/node/ParentNodeBase.js +4 -4
  228. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  229. package/dist/esm/node/ShadowRootBase.js +60 -0
  230. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  231. package/dist/esm/node/TextBase.js +0 -3
  232. package/dist/esm/node/TextBase.js.map +2 -2
  233. package/dist/esm/node/TreeWalker.js +253 -0
  234. package/dist/esm/node/TreeWalker.js.map +7 -0
  235. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  236. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  237. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  238. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  239. package/dist/esm/node/collection/NodeList.js.map +1 -1
  240. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  241. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  242. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  243. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  244. package/dist/esm/node/collection/index.js +6 -6
  245. package/dist/esm/node/collection/index.js.map +2 -2
  246. package/dist/esm/node/elements/ElementBase.js +163 -331
  247. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  248. package/dist/esm/node/elements/HTMLAnchorElement.js +2 -2
  249. package/dist/esm/node/elements/HTMLAnchorElement.js.map +2 -2
  250. package/dist/esm/node/elements/HTMLAreaElement.js +2 -2
  251. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLBaseElement.js +2 -2
  255. package/dist/esm/node/elements/HTMLBaseElement.js.map +2 -2
  256. package/dist/esm/node/elements/HTMLBodyElement.js +2 -2
  257. package/dist/esm/node/elements/HTMLBodyElement.js.map +2 -2
  258. package/dist/esm/node/elements/HTMLButtonElement.js +3 -3
  259. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  260. package/dist/esm/node/elements/HTMLCanvasElement.js +2 -2
  261. package/dist/esm/node/elements/HTMLCanvasElement.js.map +2 -2
  262. package/dist/esm/node/elements/HTMLCaptionElement.js +2 -2
  263. package/dist/esm/node/elements/HTMLCaptionElement.js.map +2 -2
  264. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  265. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  266. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  267. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  268. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  269. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  270. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  271. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  272. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  273. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  274. package/dist/esm/node/elements/HTMLDivElement.js +2 -2
  275. package/dist/esm/node/elements/HTMLDivElement.js.map +2 -2
  276. package/dist/esm/node/elements/HTMLElement.js +9 -0
  277. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  278. package/dist/esm/node/elements/HTMLElementBase.js +43 -43
  279. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  280. package/dist/esm/node/elements/HTMLEmbedElement.js +2 -2
  281. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  282. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  283. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  284. package/dist/esm/node/elements/HTMLFormElement.js +2 -2
  285. package/dist/esm/node/elements/HTMLFormElement.js.map +2 -2
  286. package/dist/esm/node/elements/HTMLH1Element.js +2 -2
  287. package/dist/esm/node/elements/HTMLH1Element.js.map +2 -2
  288. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  289. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  290. package/dist/esm/node/elements/HTMLHeadElement.js +2 -2
  291. package/dist/esm/node/elements/HTMLHeadElement.js.map +2 -2
  292. package/dist/esm/node/elements/HTMLHtmlElement.js +2 -2
  293. package/dist/esm/node/elements/HTMLHtmlElement.js.map +2 -2
  294. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  295. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  296. package/dist/esm/node/elements/HTMLImgElement.js +2 -2
  297. package/dist/esm/node/elements/HTMLImgElement.js.map +2 -2
  298. package/dist/esm/node/elements/HTMLInputElement.js +2 -2
  299. package/dist/esm/node/elements/HTMLInputElement.js.map +2 -2
  300. package/dist/esm/node/elements/HTMLLIElement.js +2 -2
  301. package/dist/esm/node/elements/HTMLLIElement.js.map +2 -2
  302. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  303. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  304. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  305. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  306. package/dist/esm/node/elements/HTMLLinkElement.js +2 -2
  307. package/dist/esm/node/elements/HTMLLinkElement.js.map +2 -2
  308. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  309. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  310. package/dist/esm/node/elements/HTMLMetaElement.js +2 -2
  311. package/dist/esm/node/elements/HTMLMetaElement.js.map +2 -2
  312. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  313. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  314. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  315. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  316. package/dist/esm/node/elements/HTMLOListElement.js +2 -2
  317. package/dist/esm/node/elements/HTMLOListElement.js.map +2 -2
  318. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  319. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  320. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  321. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  322. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  323. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  324. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  325. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  326. package/dist/esm/node/elements/HTMLPElement.js +2 -2
  327. package/dist/esm/node/elements/HTMLPElement.js.map +2 -2
  328. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  329. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  330. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  331. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  332. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  333. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  334. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  335. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  336. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  337. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  338. package/dist/esm/node/elements/HTMLScriptElement.js +2 -2
  339. package/dist/esm/node/elements/HTMLScriptElement.js.map +2 -2
  340. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  341. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  342. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  343. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  344. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  345. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  346. package/dist/esm/node/elements/HTMLSpanElement.js +2 -2
  347. package/dist/esm/node/elements/HTMLSpanElement.js.map +2 -2
  348. package/dist/esm/node/elements/HTMLStyleElement.js +2 -2
  349. package/dist/esm/node/elements/HTMLStyleElement.js.map +2 -2
  350. package/dist/esm/node/elements/HTMLTableElement.js +2 -2
  351. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  352. package/dist/esm/node/elements/HTMLTbodyElement.js +2 -2
  353. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  354. package/dist/esm/node/elements/HTMLTdElement.js +2 -2
  355. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  356. package/dist/esm/node/elements/HTMLTemplateElement.js +2 -2
  357. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  358. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  359. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  360. package/dist/esm/node/elements/HTMLTfootElement.js +2 -2
  361. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  362. package/dist/esm/node/elements/HTMLThElement.js +2 -2
  363. package/dist/esm/node/elements/HTMLThElement.js.map +2 -2
  364. package/dist/esm/node/elements/HTMLTheadElement.js +2 -2
  365. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  366. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  367. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  368. package/dist/esm/node/elements/HTMLTitleElement.js +2 -2
  369. package/dist/esm/node/elements/HTMLTitleElement.js.map +2 -2
  370. package/dist/esm/node/elements/HTMLTrElement.js +2 -2
  371. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  372. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  373. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  374. package/dist/esm/node/elements/HTMLUListElement.js +2 -2
  375. package/dist/esm/node/elements/HTMLUListElement.js.map +2 -2
  376. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  377. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  378. package/dist/esm/node/elements/MathMLElement.js +2 -2
  379. package/dist/esm/node/elements/MathMLElement.js.map +2 -2
  380. package/dist/esm/node/elements/SVGElement.js +2 -2
  381. package/dist/esm/node/elements/SVGElement.js.map +2 -2
  382. package/dist/esm/node/elements/index.js +182 -95
  383. package/dist/esm/node/elements/index.js.map +2 -2
  384. package/dist/esm/node/index.js +7 -17
  385. package/dist/esm/node/index.js.map +2 -2
  386. package/dist/esm/utils/CSSSelector.js.map +2 -2
  387. package/dist/esm/window/CustomElementRegistryImp.js +94 -0
  388. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  389. package/dist/esm/window/WindowBase.js +259 -597
  390. package/dist/esm/window/WindowBase.js.map +2 -2
  391. package/dist/esm/window/index.js +0 -5
  392. package/dist/esm/window/index.js.map +2 -2
  393. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3477 -3558
  394. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  395. package/dist/types/DomParser.d.ts.map +1 -1
  396. package/dist/types/bundle-entry.d.ts +3 -0
  397. package/dist/types/bundle-entry.d.ts.map +1 -0
  398. package/dist/types/factory/ElementFactory.d.ts +1 -1
  399. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  400. package/dist/types/index.d.ts +14 -1
  401. package/dist/types/index.d.ts.map +1 -1
  402. package/dist/types/node/CharacterData.d.ts +0 -2
  403. package/dist/types/node/CharacterData.d.ts.map +1 -1
  404. package/dist/types/node/ChildNode.d.ts +0 -38
  405. package/dist/types/node/ChildNode.d.ts.map +1 -1
  406. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  407. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  408. package/dist/types/node/Comment.d.ts +1 -1
  409. package/dist/types/node/Comment.d.ts.map +1 -1
  410. package/dist/types/node/Document.d.ts +0 -856
  411. package/dist/types/node/Document.d.ts.map +1 -1
  412. package/dist/types/node/DocumentBase.d.ts +68 -110
  413. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  414. package/dist/types/node/DocumentFragment.d.ts +0 -38
  415. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  416. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  417. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  418. package/dist/types/node/Node.d.ts +0 -213
  419. package/dist/types/node/Node.d.ts.map +1 -1
  420. package/dist/types/node/NodeBase.d.ts +11 -8
  421. package/dist/types/node/NodeBase.d.ts.map +1 -1
  422. package/dist/types/node/NodeFilter.d.ts +25 -0
  423. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  424. package/dist/types/node/NodeIterator.d.ts +0 -34
  425. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  426. package/dist/types/node/ParentNode.d.ts +0 -84
  427. package/dist/types/node/ParentNode.d.ts.map +1 -1
  428. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  429. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  430. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  431. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  432. package/dist/types/node/Text.d.ts +0 -24
  433. package/dist/types/node/Text.d.ts.map +1 -1
  434. package/dist/types/node/TextBase.d.ts +2 -3
  435. package/dist/types/node/TextBase.d.ts.map +1 -1
  436. package/dist/types/node/TreeWalker.d.ts +48 -0
  437. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  438. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  439. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  440. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  441. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  442. package/dist/types/node/collection/NodeList.d.ts +0 -1
  443. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  444. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  445. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  446. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  447. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  448. package/dist/types/node/collection/index.d.ts +3 -3
  449. package/dist/types/node/collection/index.d.ts.map +1 -1
  450. package/dist/types/node/elements/Element.d.ts +0 -687
  451. package/dist/types/node/elements/Element.d.ts.map +1 -1
  452. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  453. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  454. package/dist/types/node/elements/HTMLAnchorElement.d.ts +2 -2
  455. package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -1
  456. package/dist/types/node/elements/HTMLAreaElement.d.ts +2 -3
  457. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  458. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  459. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  460. package/dist/types/node/elements/HTMLBaseElement.d.ts +2 -2
  461. package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -1
  462. package/dist/types/node/elements/HTMLBodyElement.d.ts +2 -2
  463. package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -1
  464. package/dist/types/node/elements/HTMLButtonElement.d.ts +3 -3
  465. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  466. package/dist/types/node/elements/HTMLCanvasElement.d.ts +2 -2
  467. package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -1
  468. package/dist/types/node/elements/HTMLCaptionElement.d.ts +2 -2
  469. package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -1
  470. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  471. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  472. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  473. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  474. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  475. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  476. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  477. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  478. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  479. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  480. package/dist/types/node/elements/HTMLDivElement.d.ts +2 -2
  481. package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -1
  482. package/dist/types/node/elements/HTMLElement.d.ts +3 -119
  483. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  484. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  485. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  486. package/dist/types/node/elements/HTMLEmbedElement.d.ts +2 -3
  487. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  488. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  489. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  490. package/dist/types/node/elements/HTMLFormElement.d.ts +2 -2
  491. package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -1
  492. package/dist/types/node/elements/HTMLH1Element.d.ts +2 -2
  493. package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -1
  494. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  495. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  496. package/dist/types/node/elements/HTMLHeadElement.d.ts +2 -2
  497. package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -1
  498. package/dist/types/node/elements/HTMLHtmlElement.d.ts +2 -2
  499. package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -1
  500. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  501. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  502. package/dist/types/node/elements/HTMLImgElement.d.ts +2 -2
  503. package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -1
  504. package/dist/types/node/elements/HTMLInputElement.d.ts +2 -2
  505. package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -1
  506. package/dist/types/node/elements/HTMLLIElement.d.ts +2 -2
  507. package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -1
  508. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  509. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  510. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  511. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  512. package/dist/types/node/elements/HTMLLinkElement.d.ts +2 -2
  513. package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -1
  514. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  515. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  516. package/dist/types/node/elements/HTMLMetaElement.d.ts +2 -2
  517. package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -1
  518. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  519. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  520. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  521. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  522. package/dist/types/node/elements/HTMLOListElement.d.ts +2 -2
  523. package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -1
  524. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  525. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  526. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  527. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  528. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  529. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  530. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  531. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  532. package/dist/types/node/elements/HTMLPElement.d.ts +2 -2
  533. package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -1
  534. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  535. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  536. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  537. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  538. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  539. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  540. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  541. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  542. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  543. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  544. package/dist/types/node/elements/HTMLScriptElement.d.ts +2 -2
  545. package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -1
  546. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  547. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  548. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  549. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  550. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  551. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  552. package/dist/types/node/elements/HTMLSpanElement.d.ts +2 -2
  553. package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -1
  554. package/dist/types/node/elements/HTMLStyleElement.d.ts +2 -2
  555. package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -1
  556. package/dist/types/node/elements/HTMLTableElement.d.ts +5 -6
  557. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  558. package/dist/types/node/elements/HTMLTbodyElement.d.ts +3 -4
  559. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  560. package/dist/types/node/elements/HTMLTdElement.d.ts +2 -2
  561. package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -1
  562. package/dist/types/node/elements/HTMLTemplateElement.d.ts +2 -3
  563. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  564. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  565. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  566. package/dist/types/node/elements/HTMLTfootElement.d.ts +4 -5
  567. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  568. package/dist/types/node/elements/HTMLThElement.d.ts +2 -2
  569. package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -1
  570. package/dist/types/node/elements/HTMLTheadElement.d.ts +4 -5
  571. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  572. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  573. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  574. package/dist/types/node/elements/HTMLTitleElement.d.ts +2 -2
  575. package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -1
  576. package/dist/types/node/elements/HTMLTrElement.d.ts +4 -5
  577. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  578. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  579. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  580. package/dist/types/node/elements/HTMLUListElement.d.ts +2 -2
  581. package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -1
  582. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  583. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  584. package/dist/types/node/elements/MathMLElement.d.ts +2 -2
  585. package/dist/types/node/elements/MathMLElement.d.ts.map +1 -1
  586. package/dist/types/node/elements/SVGElement.d.ts +2 -2
  587. package/dist/types/node/elements/SVGElement.d.ts.map +1 -1
  588. package/dist/types/node/elements/index.d.ts +108 -55
  589. package/dist/types/node/elements/index.d.ts.map +1 -1
  590. package/dist/types/node/index.d.ts +4 -7
  591. package/dist/types/node/index.d.ts.map +1 -1
  592. package/dist/types/utils/CSSSelector.d.ts +0 -1
  593. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  594. package/dist/types/window/CustomElementRegistryImp.d.ts +19 -0
  595. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  596. package/dist/types/window/Window.d.ts +0 -619
  597. package/dist/types/window/Window.d.ts.map +1 -1
  598. package/dist/types/window/WindowBase.d.ts +253 -286
  599. package/dist/types/window/WindowBase.d.ts.map +1 -1
  600. package/dist/types/window/index.d.ts +0 -1
  601. package/dist/types/window/index.d.ts.map +1 -1
  602. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3482 -3563
  603. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  604. package/package.json +6 -1
  605. package/src/DomParser.ts +29 -20
  606. package/src/bundle-entry.ts +2 -0
  607. package/src/factory/ElementFactory.ts +87 -54
  608. package/src/index.ts +22 -10
  609. package/src/node/CharacterData.ts +0 -2
  610. package/src/node/ChildNode.ts +42 -42
  611. package/src/node/ChildNodeBase.ts +60 -39
  612. package/src/node/Comment.ts +60 -60
  613. package/src/node/Document.ts +129 -882
  614. package/src/node/DocumentBase.ts +371 -467
  615. package/src/node/DocumentFragment.ts +38 -44
  616. package/src/node/DocumentFragmentBase.ts +4 -9
  617. package/src/node/Node.ts +231 -224
  618. package/src/node/NodeBase.ts +469 -443
  619. package/src/node/NodeFilter.ts +50 -0
  620. package/src/node/NodeIterator.ts +117 -172
  621. package/src/node/ParentNode.ts +93 -93
  622. package/src/node/ParentNodeBase.ts +7 -10
  623. package/src/node/ShadowRootBase.ts +87 -0
  624. package/src/node/Text.ts +30 -30
  625. package/src/node/TextBase.ts +92 -94
  626. package/src/node/TreeWalker.ts +280 -0
  627. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  628. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  629. package/src/node/collection/NodeList.ts +1 -1
  630. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  631. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  632. package/src/node/collection/index.ts +3 -3
  633. package/src/node/elements/Element.ts +212 -772
  634. package/src/node/elements/ElementBase.ts +840 -1204
  635. package/src/node/elements/HTMLAnchorElement.ts +2 -1
  636. package/src/node/elements/HTMLAreaElement.ts +2 -2
  637. package/src/node/elements/HTMLAudioElement.ts +11 -0
  638. package/src/node/elements/HTMLBaseElement.ts +2 -1
  639. package/src/node/elements/HTMLBodyElement.ts +2 -1
  640. package/src/node/elements/HTMLButtonElement.ts +65 -64
  641. package/src/node/elements/HTMLCanvasElement.ts +2 -1
  642. package/src/node/elements/HTMLCaptionElement.ts +2 -1
  643. package/src/node/elements/HTMLDListElement.ts +8 -0
  644. package/src/node/elements/HTMLDataElement.ts +7 -0
  645. package/src/node/elements/HTMLDataListElement.ts +8 -0
  646. package/src/node/elements/HTMLDetailsElement.ts +8 -0
  647. package/src/node/elements/HTMLDialogElement.ts +8 -0
  648. package/src/node/elements/HTMLDivElement.ts +2 -1
  649. package/src/node/elements/HTMLElement.ts +6 -137
  650. package/src/node/elements/HTMLElementBase.ts +472 -355
  651. package/src/node/elements/HTMLEmbedElement.ts +2 -2
  652. package/src/node/elements/HTMLFieldSetElement.ts +8 -0
  653. package/src/node/elements/HTMLFormElement.ts +2 -1
  654. package/src/node/elements/HTMLH1Element.ts +2 -1
  655. package/src/node/elements/HTMLHRElement.ts +8 -0
  656. package/src/node/elements/HTMLHeadElement.ts +2 -1
  657. package/src/node/elements/HTMLHtmlElement.ts +2 -1
  658. package/src/node/elements/HTMLIFrameElement.ts +8 -0
  659. package/src/node/elements/HTMLImgElement.ts +2 -1
  660. package/src/node/elements/HTMLInputElement.ts +2 -1
  661. package/src/node/elements/HTMLLIElement.ts +2 -1
  662. package/src/node/elements/HTMLLabelElement.ts +3 -0
  663. package/src/node/elements/HTMLLegendElement.ts +3 -0
  664. package/src/node/elements/HTMLLinkElement.ts +2 -1
  665. package/src/node/elements/HTMLMapElement.ts +3 -0
  666. package/src/node/elements/HTMLMetaElement.ts +2 -1
  667. package/src/node/elements/HTMLMeterElement.ts +3 -0
  668. package/src/node/elements/HTMLModElement.ts +3 -0
  669. package/src/node/elements/HTMLOListElement.ts +2 -1
  670. package/src/node/elements/HTMLObjectElement.ts +3 -0
  671. package/src/node/elements/HTMLOptGroupElement.ts +3 -0
  672. package/src/node/elements/HTMLOptionElement.ts +3 -0
  673. package/src/node/elements/HTMLOutputElement.ts +3 -0
  674. package/src/node/elements/HTMLPElement.ts +2 -1
  675. package/src/node/elements/HTMLParamElement.ts +3 -0
  676. package/src/node/elements/HTMLPictureElement.ts +3 -0
  677. package/src/node/elements/HTMLPreElement.ts +3 -0
  678. package/src/node/elements/HTMLProgressElement.ts +3 -0
  679. package/src/node/elements/HTMLQuoteElement.ts +3 -0
  680. package/src/node/elements/HTMLScriptElement.ts +2 -1
  681. package/src/node/elements/HTMLSelectElement.ts +3 -0
  682. package/src/node/elements/HTMLSlotElement.ts +3 -0
  683. package/src/node/elements/HTMLSourceElement.ts +3 -0
  684. package/src/node/elements/HTMLSpanElement.ts +2 -1
  685. package/src/node/elements/HTMLStyleElement.ts +2 -1
  686. package/src/node/elements/HTMLTableElement.ts +5 -8
  687. package/src/node/elements/HTMLTbodyElement.ts +4 -4
  688. package/src/node/elements/HTMLTdElement.ts +3 -2
  689. package/src/node/elements/HTMLTemplateElement.ts +5 -7
  690. package/src/node/elements/HTMLTextAreaElement.ts +3 -0
  691. package/src/node/elements/HTMLTfootElement.ts +4 -4
  692. package/src/node/elements/HTMLThElement.ts +2 -1
  693. package/src/node/elements/HTMLTheadElement.ts +5 -5
  694. package/src/node/elements/HTMLTimeElement.ts +3 -0
  695. package/src/node/elements/HTMLTitleElement.ts +2 -1
  696. package/src/node/elements/HTMLTrElement.ts +7 -5
  697. package/src/node/elements/HTMLTrackElement.ts +3 -0
  698. package/src/node/elements/HTMLUListElement.ts +2 -1
  699. package/src/node/elements/HTMLVideoElement.ts +11 -0
  700. package/src/node/elements/MathMLElement.ts +2 -1
  701. package/src/node/elements/SVGElement.ts +2 -1
  702. package/src/node/elements/index.ts +231 -153
  703. package/src/node/index.ts +8 -8
  704. package/src/utils/CSSSelector.ts +0 -1
  705. package/src/window/CustomElementRegistryImp.ts +138 -0
  706. package/src/window/Window.ts +716 -715
  707. package/src/window/WindowBase.ts +482 -847
  708. package/src/window/index.ts +0 -1
  709. package/tsconfig.json +1 -0
  710. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  711. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  712. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  713. package/dist/cjs/node/elements/HTMLGenericElement.js.map +0 -7
  714. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  715. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  716. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  717. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  718. package/dist/esm/node/elements/HTMLGenericElement.js +0 -13
  719. package/dist/esm/node/elements/HTMLGenericElement.js.map +0 -7
  720. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  721. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  722. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  723. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  724. package/dist/types/node/elements/HTMLGenericElement.d.ts +0 -6
  725. package/dist/types/node/elements/HTMLGenericElement.d.ts.map +0 -1
  726. package/src/node/collection/HTMLCollectionOf.ts +0 -26
  727. package/src/node/elements/HTMLGenericElement.ts +0 -13
@@ -1,36 +1,73 @@
1
1
  import { DocumentBase } from "../node/DocumentBase.js";
2
2
  import { NodeBase } from "../node/NodeBase.js";
3
3
  import { ElementBase } from "../node/elements/ElementBase.js";
4
- import { HTMLAnchorElement } from "../node/elements/HTMLAnchorElement.js";
5
- import { HTMLBodyElement } from "../node/elements/HTMLBodyElement.js";
6
- import { HTMLButtonElement } from "../node/elements/HTMLButtonElement.js";
7
- import { HTMLCanvasElement } from "../node/elements/HTMLCanvasElement.js";
8
- import { HTMLDivElement } from "../node/elements/HTMLDivElement.js";
9
- import { HTMLH1Element } from "../node/elements/HTMLH1Element.js";
10
- import { HTMLHeadElement } from "../node/elements/HTMLHeadElement.js";
11
- import { HTMLHtmlElement } from "../node/elements/HTMLHtmlElement.js";
12
- import { HTMLImgElement } from "../node/elements/HTMLImgElement.js";
13
- import { HTMLInputElement } from "../node/elements/HTMLInputElement.js";
14
- import { HTMLPElement } from "../node/elements/HTMLPElement.js";
15
- import { HTMLSpanElement } from "../node/elements/HTMLSpanElement.js";
16
- import { HTMLTitleElement } from "../node/elements/HTMLTitleElement.js";
17
- import { HTMLLinkElement } from "../node/elements/HTMLLinkElement.js";
18
- import { HTMLScriptElement } from "../node/elements/HTMLScriptElement.js";
19
- import { HTMLStyleElement } from "../node/elements/HTMLStyleElement.js";
20
- import { HTMLFormElement } from "../node/elements/HTMLFormElement.js";
21
- import { HTMLTableElement } from "../node/elements/HTMLTableElement.js";
22
- import { HTMLUListElement } from "../node/elements/HTMLUListElement.js";
23
- import { HTMLOListElement } from "../node/elements/HTMLOListElement.js";
24
- import { HTMLLIElement } from "../node/elements/HTMLLIElement.js";
25
- import { HTMLMetaElement } from "../node/elements/HTMLMetaElement.js";
26
- import { HTMLTemplateElement } from "../node/elements/HTMLTemplateElement.js";
27
- import { HTMLTheadElement } from "../node/elements/HTMLTheadElement.js";
28
- import { HTMLTfootElement } from "../node/elements/HTMLTfootElement.js";
29
- import { HTMLTrElement } from "../node/elements/HTMLTrElement.js";
30
- import { HTMLTdElement } from "../node/elements/HTMLTdElement.js";
31
- import { HTMLThElement } from "../node/elements/HTMLThElement.js";
32
- import { HTMLCaptionElement } from "../node/elements/HTMLCaptionElement.js";
33
- import { HTMLTbodyElement } from "../node/elements/HTMLTbodyElement.js";
4
+ import {
5
+ HTMLElement,
6
+ HTMLAnchorElement,
7
+ HTMLAreaElement,
8
+ HTMLAudioElement,
9
+ HTMLBaseElement,
10
+ HTMLBodyElement,
11
+ HTMLButtonElement,
12
+ HTMLCanvasElement,
13
+ HTMLCaptionElement,
14
+ HTMLDataElement,
15
+ HTMLDataListElement,
16
+ HTMLDetailsElement,
17
+ HTMLDialogElement,
18
+ HTMLDivElement,
19
+ HTMLDListElement,
20
+ HTMLEmbedElement,
21
+ HTMLFieldSetElement,
22
+ HTMLFormElement,
23
+ HTMLH1Element,
24
+ HTMLHeadElement,
25
+ HTMLHRElement,
26
+ HTMLHtmlElement,
27
+ HTMLIFrameElement,
28
+ HTMLImgElement,
29
+ HTMLInputElement,
30
+ HTMLLabelElement,
31
+ HTMLLegendElement,
32
+ HTMLLIElement,
33
+ HTMLLinkElement,
34
+ HTMLMapElement,
35
+ HTMLMetaElement,
36
+ HTMLMeterElement,
37
+ HTMLModElement,
38
+ HTMLObjectElement,
39
+ HTMLOListElement,
40
+ HTMLOptGroupElement,
41
+ HTMLOptionElement,
42
+ HTMLOutputElement,
43
+ HTMLPElement,
44
+ HTMLParamElement,
45
+ HTMLPictureElement,
46
+ HTMLPreElement,
47
+ HTMLProgressElement,
48
+ HTMLQuoteElement,
49
+ HTMLScriptElement,
50
+ HTMLSelectElement,
51
+ HTMLSlotElement,
52
+ HTMLSourceElement,
53
+ HTMLSpanElement,
54
+ HTMLStyleElement,
55
+ HTMLTableElement,
56
+ HTMLTbodyElement,
57
+ HTMLTdElement,
58
+ HTMLTemplateElement,
59
+ HTMLTextAreaElement,
60
+ HTMLTfootElement,
61
+ HTMLTheadElement,
62
+ HTMLThElement,
63
+ HTMLTimeElement,
64
+ HTMLTitleElement,
65
+ HTMLTrackElement,
66
+ HTMLTrElement,
67
+ HTMLUListElement,
68
+ HTMLVideoElement
69
+ } from "../node/elements/index.js";
70
+ import { CustomElementRegistryImp } from "./CustomElementRegistryImp.js";
34
71
  class LocationBase {
35
72
  constructor(initialUrl = "about:blank", urlChangeCallback) {
36
73
  this._href = "about:blank";
@@ -59,9 +96,7 @@ class LocationBase {
59
96
  return this._protocol;
60
97
  }
61
98
  set protocol(value) {
62
- if (!value.endsWith(":")) {
63
- value += ":";
64
- }
99
+ if (!value.endsWith(":")) value += ":";
65
100
  this._protocol = value;
66
101
  this.reconstructUrl();
67
102
  }
@@ -100,9 +135,7 @@ class LocationBase {
100
135
  return this._pathname;
101
136
  }
102
137
  set pathname(value) {
103
- if (!value.startsWith("/")) {
104
- value = "/" + value;
105
- }
138
+ if (!value.startsWith("/")) value = "/" + value;
106
139
  this._pathname = value;
107
140
  this.reconstructUrl();
108
141
  }
@@ -110,9 +143,7 @@ class LocationBase {
110
143
  return this._search;
111
144
  }
112
145
  set search(value) {
113
- if (value && !value.startsWith("?")) {
114
- value = "?" + value;
115
- }
146
+ if (value && !value.startsWith("?")) value = "?" + value;
116
147
  this._search = value;
117
148
  this.reconstructUrl();
118
149
  }
@@ -120,9 +151,7 @@ class LocationBase {
120
151
  return this._hash;
121
152
  }
122
153
  set hash(value) {
123
- if (value && !value.startsWith("#")) {
124
- value = "#" + value;
125
- }
154
+ if (value && !value.startsWith("#")) value = "#" + value;
126
155
  this._hash = value;
127
156
  this.reconstructUrl();
128
157
  }
@@ -137,13 +166,9 @@ class LocationBase {
137
166
  }
138
167
  }
139
168
  replace(url) {
140
- const oldHref = this._href;
141
- this.parseUrl(url);
142
- if (this._href !== oldHref && this.urlChangeCallback) {
143
- this.urlChangeCallback(this._href);
144
- }
169
+ this.assign(url);
145
170
  }
146
- reload(forcedReload) {
171
+ reload(_forcedReload) {
147
172
  }
148
173
  toString() {
149
174
  return this._href;
@@ -189,9 +214,7 @@ class LocationBase {
189
214
  let url = this._protocol;
190
215
  if (this._protocol !== "about:" && this._protocol !== "data:") {
191
216
  url += "//";
192
- if (this._host) {
193
- url += this._host;
194
- }
217
+ if (this._host) url += this._host;
195
218
  }
196
219
  url += this._pathname;
197
220
  url += this._search;
@@ -274,288 +297,150 @@ class NavigatorBase {
274
297
  this.cookieEnabled = false;
275
298
  this.onLine = true;
276
299
  }
300
+ canShare(data) {
301
+ throw new Error("Method not implemented.");
302
+ }
303
+ getGamepads() {
304
+ throw new Error("Method not implemented.");
305
+ }
306
+ requestMIDIAccess(options) {
307
+ throw new Error("Method not implemented.");
308
+ }
309
+ requestMediaKeySystemAccess(keySystem, supportedConfigurations) {
310
+ throw new Error("Method not implemented.");
311
+ }
312
+ sendBeacon(url, data) {
313
+ throw new Error("Method not implemented.");
314
+ }
315
+ share(data) {
316
+ throw new Error("Method not implemented.");
317
+ }
318
+ vibrate(pattern) {
319
+ throw new Error("Method not implemented.");
320
+ }
321
+ clearAppBadge() {
322
+ throw new Error("Method not implemented.");
323
+ }
324
+ setAppBadge(contents) {
325
+ throw new Error("Method not implemented.");
326
+ }
327
+ registerProtocolHandler(scheme, url) {
328
+ throw new Error("Method not implemented.");
329
+ }
330
+ javaEnabled() {
331
+ throw new Error("Method not implemented.");
332
+ }
277
333
  }
278
334
  class WindowBase {
279
335
  constructor(config) {
280
- // Event system
281
336
  this._eventListeners = [];
282
- // Timers and intervals tracking
283
337
  this._timers = /* @__PURE__ */ new Set();
284
338
  this._intervals = /* @__PURE__ */ new Set();
285
339
  this._animationFrames = /* @__PURE__ */ new Set();
286
340
  this._closed = false;
287
341
  this.cookieStore = {};
288
- this.customElements = {};
289
342
  this.devicePixelRatio = 1;
290
- this.event = void 0;
291
- this.external = {};
292
- this.frameElement = null;
293
- this.frames = {};
294
- this.innerHeight = 768;
295
- this.innerWidth = 1024;
296
- this.length = 0;
297
- this.locationbar = {};
298
- this.menubar = {};
299
- this.name = "";
300
- this.ondevicemotion = null;
301
- this.ondeviceorientation = null;
302
- this.ondeviceorientationabsolute = null;
303
- this.onorientationchange = null;
304
- this.opener = null;
305
- this.orientation = 0;
306
- this.originAgentCluster = false;
307
- this.outerHeight = 768;
308
- this.outerWidth = 1024;
309
- this.pageXOffset = 0;
310
- this.pageYOffset = 0;
311
- this.parent = {};
312
- this.personalbar = {};
313
- this.screen = {};
314
- this.screenLeft = 0;
315
- this.screenTop = 0;
316
- this.screenX = 0;
317
- this.screenY = 0;
318
- this.scrollX = 0;
319
- this.scrollY = 0;
320
- this.scrollbars = {};
321
343
  this.self = this;
322
- this.speechSynthesis = {};
323
- this.status = "";
324
- this.statusbar = {};
325
- this.toolbar = {};
326
- this.top = null;
327
- this.visualViewport = null;
328
344
  this.window = this;
329
345
  // Global constructors
330
- this.Node = NodeBase;
331
- this.Element = ElementBase;
332
- this.HTMLElement = ElementBase;
333
346
  this.Event = class Event {
347
+ constructor(type) {
348
+ this.type = type;
349
+ }
334
350
  };
335
- this.PopStateEvent = class PopStateEvent extends this.Event {
336
- };
337
- this.IntersectionObserver = class IntersectionObserver {
338
- };
339
- this.NodeFilter = class NodeFilter {
340
- };
341
- this.DocumentFragment = class DocumentFragment {
342
- };
343
- this.HTMLMetaElement = HTMLMetaElement;
344
- this.HTMLCanvasElement = HTMLCanvasElement;
345
- this.CanvasRenderingContext2D = class CanvasRenderingContext2D {
346
- };
347
- this.CanvasPattern = class CanvasPattern {
348
- };
349
- this.CanvasGradient = class CanvasGradient {
350
- };
351
- this.Path2D = class Path2D {
352
- };
353
- this.ImageData = class ImageData {
351
+ this.CustomEvent = class CustomEvent extends this.Event {
352
+ constructor(type, detail) {
353
+ super(type);
354
+ this.detail = detail;
355
+ }
354
356
  };
355
- // HTML element constructors
357
+ // All HTML element constructors
358
+ this.Node = NodeBase;
359
+ this.Element = ElementBase;
360
+ this.HTMLElement = HTMLElement;
356
361
  this.HTMLAnchorElement = HTMLAnchorElement;
362
+ this.HTMLAreaElement = HTMLAreaElement;
363
+ this.HTMLAudioElement = HTMLAudioElement;
364
+ this.HTMLBaseElement = HTMLBaseElement;
357
365
  this.HTMLBodyElement = HTMLBodyElement;
358
366
  this.HTMLButtonElement = HTMLButtonElement;
367
+ this.HTMLCanvasElement = HTMLCanvasElement;
368
+ this.HTMLCaptionElement = HTMLCaptionElement;
369
+ this.HTMLDataElement = HTMLDataElement;
370
+ this.HTMLDataListElement = HTMLDataListElement;
371
+ this.HTMLDetailsElement = HTMLDetailsElement;
372
+ this.HTMLDialogElement = HTMLDialogElement;
359
373
  this.HTMLDivElement = HTMLDivElement;
374
+ this.HTMLDListElement = HTMLDListElement;
375
+ this.HTMLEmbedElement = HTMLEmbedElement;
376
+ this.HTMLFieldSetElement = HTMLFieldSetElement;
377
+ this.HTMLFormElement = HTMLFormElement;
360
378
  this.HTMLH1Element = HTMLH1Element;
361
379
  this.HTMLHeadElement = HTMLHeadElement;
380
+ this.HTMLHRElement = HTMLHRElement;
362
381
  this.HTMLHtmlElement = HTMLHtmlElement;
382
+ this.HTMLIFrameElement = HTMLIFrameElement;
363
383
  this.HTMLImgElement = HTMLImgElement;
364
384
  this.HTMLInputElement = HTMLInputElement;
365
- this.HTMLPElement = HTMLPElement;
366
- this.HTMLSpanElement = HTMLSpanElement;
367
- this.HTMLTitleElement = HTMLTitleElement;
385
+ this.HTMLLabelElement = HTMLLabelElement;
386
+ this.HTMLLegendElement = HTMLLegendElement;
387
+ this.HTMLLIElement = HTMLLIElement;
368
388
  this.HTMLLinkElement = HTMLLinkElement;
389
+ this.HTMLMapElement = HTMLMapElement;
390
+ this.HTMLMetaElement = HTMLMetaElement;
391
+ this.HTMLMeterElement = HTMLMeterElement;
392
+ this.HTMLModElement = HTMLModElement;
393
+ this.HTMLObjectElement = HTMLObjectElement;
394
+ this.HTMLOListElement = HTMLOListElement;
395
+ this.HTMLOptGroupElement = HTMLOptGroupElement;
396
+ this.HTMLOptionElement = HTMLOptionElement;
397
+ this.HTMLOutputElement = HTMLOutputElement;
398
+ this.HTMLPElement = HTMLPElement;
399
+ this.HTMLParamElement = HTMLParamElement;
400
+ this.HTMLPictureElement = HTMLPictureElement;
401
+ this.HTMLPreElement = HTMLPreElement;
402
+ this.HTMLProgressElement = HTMLProgressElement;
403
+ this.HTMLQuoteElement = HTMLQuoteElement;
369
404
  this.HTMLScriptElement = HTMLScriptElement;
405
+ this.HTMLSelectElement = HTMLSelectElement;
406
+ this.HTMLSlotElement = HTMLSlotElement;
407
+ this.HTMLSourceElement = HTMLSourceElement;
408
+ this.HTMLSpanElement = HTMLSpanElement;
370
409
  this.HTMLStyleElement = HTMLStyleElement;
371
- this.HTMLFormElement = HTMLFormElement;
372
410
  this.HTMLTableElement = HTMLTableElement;
373
- this.HTMLUListElement = HTMLUListElement;
374
- this.HTMLOListElement = HTMLOListElement;
375
- this.HTMLLIElement = HTMLLIElement;
411
+ this.HTMLTbodyElement = HTMLTbodyElement;
412
+ this.HTMLTdElement = HTMLTdElement;
376
413
  this.HTMLTemplateElement = HTMLTemplateElement;
377
- this.HTMLTheadElement = HTMLTheadElement;
414
+ this.HTMLTextAreaElement = HTMLTextAreaElement;
378
415
  this.HTMLTfootElement = HTMLTfootElement;
379
- this.HTMLTrElement = HTMLTrElement;
380
- this.HTMLTdElement = HTMLTdElement;
416
+ this.HTMLTheadElement = HTMLTheadElement;
381
417
  this.HTMLThElement = HTMLThElement;
382
- this.HTMLCaptionElement = HTMLCaptionElement;
383
- this.HTMLTbodyElement = HTMLTbodyElement;
384
- // EventTarget methods (inherited)
385
- // These are already covered by addEventListener/removeEventListener/dispatchEvent
386
- // GlobalEventHandlers - empty implementations
387
- this.onabort = null;
388
- this.onanimationcancel = null;
389
- this.onanimationend = null;
390
- this.onanimationiteration = null;
391
- this.onanimationstart = null;
392
- this.onauxclick = null;
393
- this.onbeforeinput = null;
394
- this.onblur = null;
395
- this.oncancel = null;
396
- this.oncanplay = null;
397
- this.oncanplaythrough = null;
398
- this.onchange = null;
399
- this.onclick = null;
400
- this.onclose = null;
401
- this.oncontextmenu = null;
402
- this.oncopy = null;
403
- this.oncuechange = null;
404
- this.oncut = null;
405
- this.ondblclick = null;
406
- this.ondrag = null;
407
- this.ondragend = null;
408
- this.ondragenter = null;
409
- this.ondragleave = null;
410
- this.ondragover = null;
411
- this.ondragstart = null;
412
- this.ondrop = null;
413
- this.ondurationchange = null;
414
- this.onemptied = null;
415
- this.onended = null;
416
- this.onerror = null;
417
- this.onfocus = null;
418
- this.onformdata = null;
419
- this.ongotpointercapture = null;
420
- this.oninput = null;
421
- this.oninvalid = null;
422
- this.onkeydown = null;
423
- this.onkeypress = null;
424
- this.onkeyup = null;
425
- this.onload = null;
426
- this.onloadeddata = null;
427
- this.onloadedmetadata = null;
428
- this.onloadstart = null;
429
- this.onlostpointercapture = null;
430
- this.onmousedown = null;
431
- this.onmouseenter = null;
432
- this.onmouseleave = null;
433
- this.onmousemove = null;
434
- this.onmouseout = null;
435
- this.onmouseover = null;
436
- this.onmouseup = null;
437
- this.onpaste = null;
438
- this.onpause = null;
439
- this.onplay = null;
440
- this.onplaying = null;
441
- this.onpointercancel = null;
442
- this.onpointerdown = null;
443
- this.onpointerenter = null;
444
- this.onpointerleave = null;
445
- this.onpointermove = null;
446
- this.onpointerout = null;
447
- this.onpointerover = null;
448
- this.onpointerup = null;
449
- this.onprogress = null;
450
- this.onratechange = null;
451
- this.onreset = null;
452
- this.onresize = null;
453
- this.onscroll = null;
454
- this.onscrollend = null;
455
- this.onsecuritypolicyviolation = null;
456
- this.onseeked = null;
457
- this.onseeking = null;
458
- this.onselect = null;
459
- this.onselectionchange = null;
460
- this.onselectstart = null;
461
- this.onslotchange = null;
462
- this.onstalled = null;
463
- this.onsubmit = null;
464
- this.onsuspend = null;
465
- this.ontimeupdate = null;
466
- this.ontoggle = null;
467
- this.ontouchcancel = null;
468
- this.ontouchend = null;
469
- this.ontouchmove = null;
470
- this.ontouchstart = null;
471
- this.ontransitioncancel = null;
472
- this.ontransitionend = null;
473
- this.ontransitionrun = null;
474
- this.ontransitionstart = null;
475
- this.onvolumechange = null;
476
- this.onwaiting = null;
477
- this.onwebkitanimationend = null;
478
- this.onwebkitanimationiteration = null;
479
- this.onwebkitanimationstart = null;
480
- this.onwebkittransitionend = null;
481
- this.onwheel = null;
482
- // WindowEventHandlers - empty implementations
483
- this.onafterprint = null;
484
- this.onbeforeprint = null;
485
- this.onbeforeunload = null;
486
- this.onhashchange = null;
487
- this.onlanguagechange = null;
488
- this.onmessage = null;
489
- this.onmessageerror = null;
490
- this.onoffline = null;
491
- this.ononline = null;
492
- this.onpagehide = null;
493
- this.onpageshow = null;
494
- this.onpopstate = null;
495
- this.onrejectionhandled = null;
496
- this.onstorage = null;
497
- this.onunhandledrejection = null;
498
- this.onunload = null;
499
- // WindowLocalStorage
500
- this.localStorage = {};
501
- // WindowOrWorkerGlobalScope - empty implementations
502
- this.caches = {};
503
- this.crossOriginIsolated = false;
504
- this.crypto = {};
505
- this.indexedDB = {};
506
- this.isSecureContext = false;
507
- this.origin = "null";
508
- this.performance = {};
509
- // WindowSessionStorage
510
- this.sessionStorage = {};
418
+ this.HTMLTimeElement = HTMLTimeElement;
419
+ this.HTMLTitleElement = HTMLTitleElement;
420
+ this.HTMLTrackElement = HTMLTrackElement;
421
+ this.HTMLTrElement = HTMLTrElement;
422
+ this.HTMLUListElement = HTMLUListElement;
423
+ this.HTMLVideoElement = HTMLVideoElement;
424
+ // Type Aliases
425
+ this.HTMLImageElement = HTMLImgElement;
426
+ this.HTMLParagraphElement = HTMLPElement;
427
+ this.HTMLHeadingElement = HTMLH1Element;
428
+ this.HTMLTableSectionElement = HTMLTbodyElement;
429
+ this.HTMLTableCellElement = HTMLTdElement;
430
+ this.HTMLTableRowElement = HTMLTrElement;
511
431
  const documentBase = new DocumentBase();
512
- if (this.document && this.document.setWindow) {
513
- this.document.setWindow(this);
432
+ if (documentBase && documentBase.setWindow) {
433
+ documentBase.setWindow(this);
514
434
  }
515
435
  this._location = new LocationBase(config?.initialUrl);
516
436
  documentBase.setLocation(this._location);
517
437
  this.document = documentBase;
438
+ const customElementRegistryImp = new CustomElementRegistryImp();
439
+ customElementRegistryImp.setWindow(this);
440
+ this.customElements = customElementRegistryImp;
518
441
  this.history = new HistoryBase(this);
519
442
  this.navigator = new NavigatorBase();
520
443
  this.clientInformation = this.navigator;
521
- return new Proxy(this, {
522
- get(target, prop) {
523
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
524
- return target;
525
- }
526
- return target[prop];
527
- },
528
- set(target, prop, value) {
529
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
530
- return true;
531
- }
532
- target[prop] = value;
533
- return true;
534
- },
535
- has(target, prop) {
536
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
537
- return true;
538
- }
539
- return prop in target;
540
- },
541
- ownKeys(target) {
542
- const keys = Object.getOwnPropertyNames(target);
543
- for (let i = 0; i < target.length; i++) {
544
- keys.push(i.toString());
545
- }
546
- return keys;
547
- },
548
- getOwnPropertyDescriptor(target, prop) {
549
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
550
- return {
551
- enumerable: true,
552
- configurable: true,
553
- value: target
554
- };
555
- }
556
- return Object.getOwnPropertyDescriptor(target, prop);
557
- }
558
- });
559
444
  }
560
445
  get closed() {
561
446
  return this._closed;
@@ -564,168 +449,112 @@ class WindowBase {
564
449
  return this._location;
565
450
  }
566
451
  set location(href) {
567
- if (typeof href === "string") {
568
- this._location.href = href;
569
- } else {
570
- this._location.href = href.href;
571
- }
572
- }
573
- // Window methods - all with empty implementations for server-side
574
- alert(message) {
452
+ if (typeof href === "string") this._location.href = href;
453
+ else this._location.href = href.href;
575
454
  }
576
455
  blur() {
456
+ throw new Error("Method not implemented.");
577
457
  }
578
458
  cancelIdleCallback(handle) {
459
+ throw new Error("Method not implemented.");
579
460
  }
580
461
  captureEvents() {
581
- }
582
- close() {
583
- if (this._closed) return;
584
- this._closed = true;
585
- this._timers.forEach((id) => clearTimeout(id));
586
- this._timers.clear();
587
- this._intervals.forEach((id) => clearInterval(id));
588
- this._intervals.clear();
589
- this._animationFrames.forEach((id) => clearTimeout(id));
590
- this._animationFrames.clear();
591
- this._eventListeners.forEach((listener) => {
592
- listener.listener = null;
593
- });
594
- this._eventListeners.length = 0;
595
- this.onload = null;
596
- this.onunload = null;
597
- this.onbeforeunload = null;
598
- this.onpopstate = null;
599
- this.onerror = null;
600
- this.onmessage = null;
601
- this.onhashchange = null;
602
- if (this.document) {
603
- const doc = this.document;
604
- if (doc.body) {
605
- this.clearNodeRecursively(doc.body);
606
- }
607
- if (doc.head) {
608
- this.clearNodeRecursively(doc.head);
609
- }
610
- if (doc.documentElement) {
611
- this.clearNodeRecursively(doc.documentElement);
612
- }
613
- if (doc.setWindow) {
614
- doc.setWindow(null);
615
- }
616
- if (doc._eventListeners) {
617
- doc._eventListeners.forEach((listener) => {
618
- listener.listener = null;
619
- });
620
- doc._eventListeners.length = 0;
621
- }
622
- }
623
- if (this.history) {
624
- const hist = this.history;
625
- if (hist.historyStack) {
626
- hist.historyStack.forEach((entry) => {
627
- entry.state = null;
628
- });
629
- hist.historyStack.length = 0;
630
- }
631
- hist.state = null;
632
- hist.window = null;
633
- }
634
- if (this._location) {
635
- this._location.urlChangeCallback = null;
636
- }
637
- }
638
- /**
639
- * Recursively clear a node and its children to prevent memory leaks
640
- */
641
- clearNodeRecursively(node) {
642
- if (!node) return;
643
- while (node.firstChild) {
644
- const child = node.firstChild;
645
- node.removeChild(child);
646
- this.clearNodeRecursively(child);
647
- }
648
- if (node._eventListeners) {
649
- node._eventListeners.forEach((listener) => {
650
- listener.listener = null;
651
- });
652
- node._eventListeners.length = 0;
653
- }
654
- try {
655
- if (node.parentNode) {
656
- node.parentNode = null;
657
- }
658
- } catch (e) {
659
- }
660
- try {
661
- if (node.ownerDocument) {
662
- node.ownerDocument = null;
663
- }
664
- } catch (e) {
665
- }
666
- if (node._childNodes) {
667
- if (Array.isArray(node._childNodes)) {
668
- node._childNodes = [];
669
- } else if (node._childNodes instanceof Map) {
670
- node._childNodes.clear();
671
- }
672
- }
673
- if (node._attributes) {
674
- if (Array.isArray(node._attributes)) {
675
- node._attributes = [];
676
- } else if (node._attributes instanceof Map) {
677
- node._attributes.clear();
678
- }
679
- }
462
+ throw new Error("Method not implemented.");
680
463
  }
681
464
  confirm(message) {
682
- return false;
465
+ throw new Error("Method not implemented.");
683
466
  }
684
467
  focus() {
468
+ throw new Error("Method not implemented.");
685
469
  }
686
470
  getComputedStyle(elt, pseudoElt) {
687
- return {};
471
+ throw new Error("Method not implemented.");
688
472
  }
689
473
  getSelection() {
690
- return null;
474
+ throw new Error("Method not implemented.");
691
475
  }
692
476
  matchMedia(query) {
693
- return {};
477
+ throw new Error("Method not implemented.");
694
478
  }
695
479
  moveBy(x, y) {
480
+ throw new Error("Method not implemented.");
696
481
  }
697
482
  moveTo(x, y) {
483
+ throw new Error("Method not implemented.");
698
484
  }
699
485
  open(url, target, features) {
700
- return null;
486
+ throw new Error("Method not implemented.");
701
487
  }
702
- postMessage(message, targetOriginOrOptions, transfer) {
488
+ postMessage(message, targetOrigin, transfer) {
489
+ throw new Error("Method not implemented.");
703
490
  }
704
491
  print() {
492
+ throw new Error("Method not implemented.");
705
493
  }
706
494
  prompt(message, _default) {
707
- return null;
495
+ throw new Error("Method not implemented.");
708
496
  }
709
497
  releaseEvents() {
498
+ throw new Error("Method not implemented.");
710
499
  }
711
500
  requestIdleCallback(callback, options) {
712
- return 0;
501
+ throw new Error("Method not implemented.");
713
502
  }
714
503
  resizeBy(x, y) {
504
+ throw new Error("Method not implemented.");
715
505
  }
716
506
  resizeTo(width, height) {
507
+ throw new Error("Method not implemented.");
717
508
  }
718
- scroll(optionsOrX, y) {
509
+ scroll(x, y) {
510
+ throw new Error("Method not implemented.");
719
511
  }
720
- scrollBy(optionsOrX, y) {
512
+ scrollBy(x, y) {
513
+ throw new Error("Method not implemented.");
721
514
  }
722
- scrollTo(optionsOrX, y) {
515
+ scrollTo(x, y) {
516
+ throw new Error("Method not implemented.");
723
517
  }
724
518
  stop() {
519
+ throw new Error("Method not implemented.");
520
+ }
521
+ cancelAnimationFrame(handle) {
522
+ throw new Error("Method not implemented.");
523
+ }
524
+ requestAnimationFrame(callback) {
525
+ throw new Error("Method not implemented.");
526
+ }
527
+ atob(data) {
528
+ throw new Error("Method not implemented.");
529
+ }
530
+ btoa(data) {
531
+ throw new Error("Method not implemented.");
532
+ }
533
+ createImageBitmap(image, sx, sy, sw, sh, options) {
534
+ throw new Error("Method not implemented.");
535
+ }
536
+ fetch(input, init) {
537
+ throw new Error("Method not implemented.");
538
+ }
539
+ queueMicrotask(callback) {
540
+ throw new Error("Method not implemented.");
541
+ }
542
+ reportError(e) {
543
+ throw new Error("Method not implemented.");
544
+ }
545
+ structuredClone(value, options) {
546
+ throw new Error("Method not implemented.");
547
+ }
548
+ alert(_message) {
549
+ }
550
+ close() {
551
+ if (this._closed) return;
552
+ this._closed = true;
553
+ this._timers.forEach((id) => clearTimeout(id));
554
+ this._intervals.forEach((id) => clearInterval(id));
555
+ this._eventListeners.length = 0;
725
556
  }
726
- // Timer methods
727
557
  setTimeout(callback, delay, ...args) {
728
- if (this._closed) return 0;
729
558
  const id = setTimeout(() => {
730
559
  this._timers.delete(id);
731
560
  callback(...args);
@@ -738,7 +567,6 @@ class WindowBase {
738
567
  this._timers.delete(id);
739
568
  }
740
569
  setInterval(callback, delay, ...args) {
741
- if (this._closed) return 0;
742
570
  const id = setInterval(callback, delay, ...args);
743
571
  this._intervals.add(id);
744
572
  return id;
@@ -747,200 +575,34 @@ class WindowBase {
747
575
  clearInterval(id);
748
576
  this._intervals.delete(id);
749
577
  }
750
- // Animation methods
751
- requestAnimationFrame(callback) {
752
- if (this._closed) return 0;
753
- const id = this.setTimeout(callback, 16);
754
- this._animationFrames.add(id);
755
- return id;
756
- }
757
- cancelAnimationFrame(id) {
758
- this.clearTimeout(id);
759
- this._animationFrames.delete(id);
760
- }
761
578
  addEventListener(type, listener, options) {
762
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
763
- this._eventListeners.push({
764
- type,
765
- listener: typeof listener === "function" ? listener : listener.handleEvent,
766
- options
767
- });
768
- }
579
+ this._eventListeners.push({
580
+ type,
581
+ listener: typeof listener === "function" ? listener : listener?.handleEvent,
582
+ options
583
+ });
769
584
  }
770
- removeEventListener(type, listener, options) {
771
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
772
- const targetListener = typeof listener === "function" ? listener : listener.handleEvent;
773
- this._eventListeners = this._eventListeners.filter(
774
- (eventListener) => !(eventListener.type === type && eventListener.listener === targetListener)
775
- );
776
- }
585
+ removeEventListener(type, listener) {
586
+ const targetListener = typeof listener === "function" ? listener : listener?.handleEvent;
587
+ this._eventListeners = this._eventListeners.filter((l) => !(l.type === type && l.listener === targetListener));
777
588
  }
778
589
  dispatchEvent(event) {
779
- const eventListeners = this._eventListeners.filter((listener) => listener.type === event.type);
780
- for (const eventListener of eventListeners) {
590
+ const type = typeof event === "string" ? event : event.type;
591
+ const listeners = [...this._eventListeners.filter((l) => l.type === type)];
592
+ for (const l of listeners) {
781
593
  try {
782
- eventListener.listener.call(this, event);
783
- if (eventListener.options && typeof eventListener.options === "object" && eventListener.options.once) {
784
- this.removeEventListener(event.type, eventListener.listener);
594
+ l.listener.call(this, event);
595
+ if (l.options?.once) {
596
+ this.removeEventListener(type, l.listener);
785
597
  }
786
- } catch (error) {
787
- console.error("Error in event listener:", error);
598
+ } catch (e) {
599
+ console.error(`Error in Window event listener for ${type}:`, e);
788
600
  }
789
601
  }
790
602
  return true;
791
603
  }
792
- /**
793
- * Dispatch a popstate event to registered listeners
794
- */
795
604
  dispatchPopStateEvent(state, url) {
796
- const popStateEvent = {
797
- type: "popstate",
798
- state,
799
- url
800
- };
801
- this.dispatchEvent(popStateEvent);
802
- }
803
- atob(data) {
804
- return "";
805
- }
806
- btoa(data) {
807
- return "";
808
- }
809
- createImageBitmap(...args) {
810
- return Promise.resolve({});
811
- }
812
- fetch(input, init) {
813
- return Promise.resolve({});
814
- }
815
- queueMicrotask(callback) {
816
- }
817
- reportError(e) {
818
- }
819
- structuredClone(value, options) {
820
- return value;
821
- }
822
- /**
823
- * Recursive HTML parsing
824
- */
825
- parseHTMLRecursive(html, parent) {
826
- let position = 0;
827
- while (position < html.length) {
828
- const tagStart = html.indexOf("<", position);
829
- if (tagStart === -1) {
830
- const remainingText = html.substring(position).trim();
831
- if (remainingText) {
832
- const textNode = this.document.createTextNode(remainingText);
833
- parent.appendChild(textNode);
834
- }
835
- break;
836
- }
837
- if (tagStart > position) {
838
- const textContent = html.substring(position, tagStart).trim();
839
- if (textContent) {
840
- const textNode = this.document.createTextNode(textContent);
841
- parent.appendChild(textNode);
842
- }
843
- }
844
- const tagEnd = html.indexOf(">", tagStart);
845
- if (tagEnd === -1) break;
846
- const tagContent = html.substring(tagStart + 1, tagEnd);
847
- if (tagContent.startsWith("/")) {
848
- position = tagEnd + 1;
849
- break;
850
- }
851
- const isSelfClosing = tagContent.endsWith("/") || this.isSelfClosingTag(tagContent.split(/\s+/)[0]);
852
- const spaceIndex = tagContent.indexOf(" ");
853
- const tagName = spaceIndex === -1 ? tagContent.replace("/", "") : tagContent.substring(0, spaceIndex);
854
- const attributes = spaceIndex === -1 ? "" : tagContent.substring(spaceIndex + 1).replace("/", "");
855
- const element = this.document.createElement(tagName.toLowerCase());
856
- if (attributes.trim()) {
857
- this.parseAttributes(attributes, element);
858
- }
859
- if (tagName.toLowerCase() === "html") {
860
- this.document.documentElement = element;
861
- this.document.appendChild(element);
862
- } else if (tagName.toLowerCase() === "head") {
863
- this.document.head = element;
864
- if (this.document.documentElement) {
865
- this.document.documentElement.appendChild(element);
866
- } else {
867
- parent.appendChild(element);
868
- }
869
- } else if (tagName.toLowerCase() === "body") {
870
- this.document.body = element;
871
- if (this.document.documentElement) {
872
- this.document.documentElement.appendChild(element);
873
- } else {
874
- parent.appendChild(element);
875
- }
876
- } else {
877
- parent.appendChild(element);
878
- }
879
- if (isSelfClosing) {
880
- position = tagEnd + 1;
881
- } else {
882
- const closingTag = `</${tagName}>`;
883
- const closingTagIndex = this.findMatchingClosingTag(html, tagEnd + 1, tagName);
884
- if (closingTagIndex !== -1) {
885
- const innerContent = html.substring(tagEnd + 1, closingTagIndex);
886
- if (innerContent.trim()) {
887
- this.parseHTMLRecursive(innerContent, element);
888
- }
889
- position = closingTagIndex + closingTag.length;
890
- } else {
891
- position = tagEnd + 1;
892
- }
893
- }
894
- }
895
- }
896
- findMatchingClosingTag(html, startPos, tagName) {
897
- const openTag = `<${tagName}`;
898
- const closeTag = `</${tagName}>`;
899
- let depth = 1;
900
- let pos = startPos;
901
- while (pos < html.length && depth > 0) {
902
- const nextOpen = html.indexOf(openTag, pos);
903
- const nextClose = html.indexOf(closeTag, pos);
904
- if (nextClose === -1) return -1;
905
- if (nextOpen !== -1 && nextOpen < nextClose) {
906
- depth++;
907
- pos = nextOpen + openTag.length;
908
- } else {
909
- depth--;
910
- if (depth === 0) return nextClose;
911
- pos = nextClose + closeTag.length;
912
- }
913
- }
914
- return -1;
915
- }
916
- parseAttributes(attributeString, element) {
917
- const attrRegex = /([\w:-]+)(?:\s*=\s*(['"])(.*?)\2)?/g;
918
- let match;
919
- while ((match = attrRegex.exec(attributeString)) !== null) {
920
- const name = match[1];
921
- let value = match[3] || "";
922
- element.setAttribute(name, value);
923
- }
924
- }
925
- isSelfClosingTag(tagName) {
926
- const selfClosingTags = ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
927
- return selfClosingTags.includes(tagName.toLowerCase());
928
- }
929
- /**
930
- * Clear current document content
931
- */
932
- clearDocumentContent() {
933
- const doc = this.document;
934
- if (doc.head) {
935
- while (doc.head.firstChild) {
936
- doc.head.removeChild(doc.head.firstChild);
937
- }
938
- }
939
- if (doc.body) {
940
- while (doc.body.firstChild) {
941
- doc.body.removeChild(doc.body.firstChild);
942
- }
943
- }
605
+ this.dispatchEvent({ type: "popstate", state, url });
944
606
  }
945
607
  }
946
608
  export {