@dooboostore/dom-parser 1.0.2 → 1.0.3

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 (518) hide show
  1. package/dist/cjs/DomParser.js +10 -1
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +168 -205
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +163 -331
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +41 -43
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +210 -613
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +10 -1
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +165 -202
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +163 -331
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +40 -42
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +259 -597
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3449 -3551
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts.map +1 -1
  273. package/dist/types/factory/ElementFactory.d.ts +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +3 -1
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/dist/types/node/CharacterData.d.ts +0 -2
  278. package/dist/types/node/CharacterData.d.ts.map +1 -1
  279. package/dist/types/node/ChildNode.d.ts +0 -38
  280. package/dist/types/node/ChildNode.d.ts.map +1 -1
  281. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  282. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  283. package/dist/types/node/Comment.d.ts +1 -1
  284. package/dist/types/node/Comment.d.ts.map +1 -1
  285. package/dist/types/node/Document.d.ts +0 -856
  286. package/dist/types/node/Document.d.ts.map +1 -1
  287. package/dist/types/node/DocumentBase.d.ts +68 -110
  288. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  289. package/dist/types/node/DocumentFragment.d.ts +0 -38
  290. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  291. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  292. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  293. package/dist/types/node/Node.d.ts +0 -213
  294. package/dist/types/node/Node.d.ts.map +1 -1
  295. package/dist/types/node/NodeBase.d.ts +11 -8
  296. package/dist/types/node/NodeBase.d.ts.map +1 -1
  297. package/dist/types/node/NodeFilter.d.ts +25 -0
  298. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  299. package/dist/types/node/NodeIterator.d.ts +0 -34
  300. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  301. package/dist/types/node/ParentNode.d.ts +0 -84
  302. package/dist/types/node/ParentNode.d.ts.map +1 -1
  303. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  304. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  305. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  306. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  307. package/dist/types/node/Text.d.ts +0 -24
  308. package/dist/types/node/Text.d.ts.map +1 -1
  309. package/dist/types/node/TextBase.d.ts +2 -3
  310. package/dist/types/node/TextBase.d.ts.map +1 -1
  311. package/dist/types/node/TreeWalker.d.ts +48 -0
  312. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  313. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  314. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  315. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  317. package/dist/types/node/collection/NodeList.d.ts +0 -1
  318. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  319. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  320. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  321. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  323. package/dist/types/node/collection/index.d.ts +3 -3
  324. package/dist/types/node/collection/index.d.ts.map +1 -1
  325. package/dist/types/node/elements/Element.d.ts +0 -687
  326. package/dist/types/node/elements/Element.d.ts.map +1 -1
  327. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  328. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  329. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  331. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  333. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  335. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  336. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  337. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  339. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  341. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  343. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  345. package/dist/types/node/elements/HTMLElement.d.ts +2 -119
  346. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  347. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  348. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  349. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  351. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  353. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  355. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  357. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  359. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  361. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  363. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  365. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  367. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  369. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  371. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  373. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  375. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  377. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  379. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  381. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  383. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  385. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  387. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  389. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  391. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  392. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  393. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  395. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  397. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  399. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  401. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  403. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  405. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  406. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  407. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  409. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  411. package/dist/types/node/elements/index.d.ts +106 -52
  412. package/dist/types/node/elements/index.d.ts.map +1 -1
  413. package/dist/types/node/index.d.ts +4 -7
  414. package/dist/types/node/index.d.ts.map +1 -1
  415. package/dist/types/utils/CSSSelector.d.ts +0 -1
  416. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  417. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  418. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  419. package/dist/types/window/Window.d.ts +0 -619
  420. package/dist/types/window/Window.d.ts.map +1 -1
  421. package/dist/types/window/WindowBase.d.ts +253 -286
  422. package/dist/types/window/WindowBase.d.ts.map +1 -1
  423. package/dist/types/window/index.d.ts +0 -1
  424. package/dist/types/window/index.d.ts.map +1 -1
  425. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3460 -3562
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  427. package/package.json +1 -1
  428. package/src/DomParser.ts +28 -20
  429. package/src/factory/ElementFactory.ts +79 -53
  430. package/src/index.ts +11 -10
  431. package/src/node/CharacterData.ts +0 -2
  432. package/src/node/ChildNode.ts +42 -42
  433. package/src/node/ChildNodeBase.ts +60 -39
  434. package/src/node/Comment.ts +60 -60
  435. package/src/node/Document.ts +129 -882
  436. package/src/node/DocumentBase.ts +371 -467
  437. package/src/node/DocumentFragment.ts +38 -44
  438. package/src/node/DocumentFragmentBase.ts +4 -9
  439. package/src/node/Node.ts +231 -224
  440. package/src/node/NodeBase.ts +469 -443
  441. package/src/node/NodeFilter.ts +50 -0
  442. package/src/node/NodeIterator.ts +117 -172
  443. package/src/node/ParentNode.ts +93 -93
  444. package/src/node/ParentNodeBase.ts +7 -10
  445. package/src/node/ShadowRootBase.ts +87 -0
  446. package/src/node/Text.ts +30 -30
  447. package/src/node/TextBase.ts +92 -94
  448. package/src/node/TreeWalker.ts +280 -0
  449. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  450. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  451. package/src/node/collection/NodeList.ts +1 -1
  452. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  453. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  454. package/src/node/collection/index.ts +3 -3
  455. package/src/node/elements/Element.ts +212 -772
  456. package/src/node/elements/ElementBase.ts +840 -1204
  457. package/src/node/elements/HTMLAreaElement.ts +0 -1
  458. package/src/node/elements/HTMLAudioElement.ts +10 -0
  459. package/src/node/elements/HTMLButtonElement.ts +63 -63
  460. package/src/node/elements/HTMLDListElement.ts +2 -0
  461. package/src/node/elements/HTMLDataElement.ts +6 -0
  462. package/src/node/elements/HTMLDataListElement.ts +2 -0
  463. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  464. package/src/node/elements/HTMLDialogElement.ts +2 -0
  465. package/src/node/elements/HTMLElement.ts +2 -137
  466. package/src/node/elements/HTMLElementBase.ts +466 -355
  467. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  468. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  469. package/src/node/elements/HTMLHRElement.ts +2 -0
  470. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  471. package/src/node/elements/HTMLLabelElement.ts +2 -0
  472. package/src/node/elements/HTMLLegendElement.ts +2 -0
  473. package/src/node/elements/HTMLMapElement.ts +2 -0
  474. package/src/node/elements/HTMLMeterElement.ts +2 -0
  475. package/src/node/elements/HTMLModElement.ts +2 -0
  476. package/src/node/elements/HTMLObjectElement.ts +2 -0
  477. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  478. package/src/node/elements/HTMLOptionElement.ts +2 -0
  479. package/src/node/elements/HTMLOutputElement.ts +2 -0
  480. package/src/node/elements/HTMLParamElement.ts +2 -0
  481. package/src/node/elements/HTMLPictureElement.ts +2 -0
  482. package/src/node/elements/HTMLPreElement.ts +2 -0
  483. package/src/node/elements/HTMLProgressElement.ts +2 -0
  484. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  485. package/src/node/elements/HTMLSelectElement.ts +2 -0
  486. package/src/node/elements/HTMLSlotElement.ts +2 -0
  487. package/src/node/elements/HTMLSourceElement.ts +2 -0
  488. package/src/node/elements/HTMLTableElement.ts +3 -7
  489. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  490. package/src/node/elements/HTMLTdElement.ts +1 -1
  491. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  492. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  493. package/src/node/elements/HTMLTfootElement.ts +2 -3
  494. package/src/node/elements/HTMLTheadElement.ts +2 -3
  495. package/src/node/elements/HTMLTimeElement.ts +2 -0
  496. package/src/node/elements/HTMLTrElement.ts +3 -4
  497. package/src/node/elements/HTMLTrackElement.ts +2 -0
  498. package/src/node/elements/HTMLVideoElement.ts +10 -0
  499. package/src/node/elements/index.ts +226 -149
  500. package/src/node/index.ts +8 -8
  501. package/src/utils/CSSSelector.ts +0 -1
  502. package/src/window/CustomElementRegistryImp.ts +120 -0
  503. package/src/window/Window.ts +716 -715
  504. package/src/window/WindowBase.ts +482 -847
  505. package/src/window/index.ts +0 -1
  506. package/tsconfig.json +1 -0
  507. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  508. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  509. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  510. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  512. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  513. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  514. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  515. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  517. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  518. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -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 {