happy-dom 16.8.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/cjs/PropertySymbol.cjs +13 -1
  2. package/cjs/PropertySymbol.cjs.map +1 -1
  3. package/cjs/PropertySymbol.d.ts +12 -0
  4. package/cjs/PropertySymbol.d.ts.map +1 -1
  5. package/cjs/async-task-manager/AsyncTaskManager.cjs +67 -18
  6. package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
  7. package/cjs/async-task-manager/AsyncTaskManager.d.ts +5 -0
  8. package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  9. package/cjs/browser/BrowserSettingsFactory.cjs +4 -0
  10. package/cjs/browser/BrowserSettingsFactory.cjs.map +1 -1
  11. package/cjs/browser/BrowserSettingsFactory.d.ts.map +1 -1
  12. package/cjs/browser/DefaultBrowserSettings.cjs +3 -0
  13. package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
  14. package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
  15. package/cjs/browser/types/IBrowserSettings.d.ts +6 -0
  16. package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
  17. package/cjs/browser/types/IOptionalBrowserSettings.d.ts +6 -0
  18. package/cjs/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  19. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  20. package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  21. package/cjs/dom/DOMTokenList.cjs +7 -4
  22. package/cjs/dom/DOMTokenList.cjs.map +1 -1
  23. package/cjs/dom/DOMTokenList.d.ts +5 -3
  24. package/cjs/dom/DOMTokenList.d.ts.map +1 -1
  25. package/cjs/event/EventTarget.cjs +31 -5
  26. package/cjs/event/EventTarget.cjs.map +1 -1
  27. package/cjs/event/EventTarget.d.ts.map +1 -1
  28. package/cjs/fetch/Fetch.cjs +67 -13
  29. package/cjs/fetch/Fetch.cjs.map +1 -1
  30. package/cjs/fetch/Fetch.d.ts +3 -0
  31. package/cjs/fetch/Fetch.d.ts.map +1 -1
  32. package/cjs/fetch/Request.cjs +119 -27
  33. package/cjs/fetch/Request.cjs.map +1 -1
  34. package/cjs/fetch/Request.d.ts +65 -9
  35. package/cjs/fetch/Request.d.ts.map +1 -1
  36. package/cjs/fetch/ResourceFetch.cjs +91 -13
  37. package/cjs/fetch/ResourceFetch.cjs.map +1 -1
  38. package/cjs/fetch/ResourceFetch.d.ts +21 -11
  39. package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
  40. package/cjs/fetch/SyncFetch.cjs +36 -7
  41. package/cjs/fetch/SyncFetch.cjs.map +1 -1
  42. package/cjs/fetch/SyncFetch.d.ts.map +1 -1
  43. package/cjs/fetch/preload/PreloadEntry.cjs +44 -0
  44. package/cjs/fetch/preload/PreloadEntry.cjs.map +1 -0
  45. package/cjs/fetch/preload/PreloadEntry.d.ts +26 -0
  46. package/cjs/fetch/preload/PreloadEntry.d.ts.map +1 -0
  47. package/cjs/fetch/preload/PreloadUtility.cjs +29 -0
  48. package/cjs/fetch/preload/PreloadUtility.cjs.map +1 -0
  49. package/cjs/fetch/preload/PreloadUtility.d.ts +26 -0
  50. package/cjs/fetch/preload/PreloadUtility.d.ts.map +1 -0
  51. package/cjs/fetch/types/IRequestInit.d.ts +2 -0
  52. package/cjs/fetch/types/IRequestInit.d.ts.map +1 -1
  53. package/cjs/fetch/types/IRequestMode.cjs +3 -0
  54. package/cjs/fetch/types/IRequestMode.cjs.map +1 -0
  55. package/cjs/fetch/types/IRequestMode.d.ts +3 -0
  56. package/cjs/fetch/types/IRequestMode.d.ts.map +1 -0
  57. package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs +1 -1
  58. package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs.map +1 -1
  59. package/cjs/module/CSSModule.cjs +47 -0
  60. package/cjs/module/CSSModule.cjs.map +1 -0
  61. package/cjs/module/CSSModule.d.ts +34 -0
  62. package/cjs/module/CSSModule.d.ts.map +1 -0
  63. package/cjs/module/ECMAScriptModule.cjs +157 -0
  64. package/cjs/module/ECMAScriptModule.cjs.map +1 -0
  65. package/cjs/module/ECMAScriptModule.d.ts +36 -0
  66. package/cjs/module/ECMAScriptModule.d.ts.map +1 -0
  67. package/cjs/module/ECMAScriptModuleCompiler.cjs +550 -0
  68. package/cjs/module/ECMAScriptModuleCompiler.cjs.map +1 -0
  69. package/cjs/module/ECMAScriptModuleCompiler.d.ts +31 -0
  70. package/cjs/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
  71. package/cjs/module/IECMAScriptModuleCompiledResult.cjs +3 -0
  72. package/cjs/module/IECMAScriptModuleCompiledResult.cjs.map +1 -0
  73. package/cjs/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
  74. package/cjs/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
  75. package/cjs/module/IECMAScriptModuleImport.cjs +3 -0
  76. package/cjs/module/IECMAScriptModuleImport.cjs.map +1 -0
  77. package/cjs/module/IECMAScriptModuleImport.d.ts +5 -0
  78. package/cjs/module/IECMAScriptModuleImport.d.ts.map +1 -0
  79. package/cjs/module/IModule.cjs +3 -0
  80. package/cjs/module/IModule.cjs.map +1 -0
  81. package/cjs/module/IModule.d.ts +21 -0
  82. package/cjs/module/IModule.d.ts.map +1 -0
  83. package/cjs/module/IModuleImportMap.cjs +3 -0
  84. package/cjs/module/IModuleImportMap.cjs.map +1 -0
  85. package/cjs/module/IModuleImportMap.d.ts +10 -0
  86. package/cjs/module/IModuleImportMap.d.ts.map +1 -0
  87. package/cjs/module/IModuleImportMapRule.cjs +3 -0
  88. package/cjs/module/IModuleImportMapRule.cjs.map +1 -0
  89. package/cjs/module/IModuleImportMapRule.d.ts +5 -0
  90. package/cjs/module/IModuleImportMapRule.d.ts.map +1 -0
  91. package/cjs/module/IModuleImportMapScope.cjs +3 -0
  92. package/cjs/module/IModuleImportMapScope.cjs.map +1 -0
  93. package/cjs/module/IModuleImportMapScope.d.ts +6 -0
  94. package/cjs/module/IModuleImportMapScope.d.ts.map +1 -0
  95. package/cjs/module/JSONModule.cjs +52 -0
  96. package/cjs/module/JSONModule.cjs.map +1 -0
  97. package/cjs/module/JSONModule.d.ts +33 -0
  98. package/cjs/module/JSONModule.d.ts.map +1 -0
  99. package/cjs/module/ModuleFactory.cjs +136 -0
  100. package/cjs/module/ModuleFactory.cjs.map +1 -0
  101. package/cjs/module/ModuleFactory.d.ts +33 -0
  102. package/cjs/module/ModuleFactory.d.ts.map +1 -0
  103. package/cjs/module/ModuleURLUtility.cjs +67 -0
  104. package/cjs/module/ModuleURLUtility.cjs.map +1 -0
  105. package/cjs/module/ModuleURLUtility.d.ts +17 -0
  106. package/cjs/module/ModuleURLUtility.d.ts.map +1 -0
  107. package/cjs/module/UnresolvedModule.cjs +70 -0
  108. package/cjs/module/UnresolvedModule.cjs.map +1 -0
  109. package/cjs/module/UnresolvedModule.d.ts +43 -0
  110. package/cjs/module/UnresolvedModule.d.ts.map +1 -0
  111. package/cjs/nodes/document/Document.cjs +1 -0
  112. package/cjs/nodes/document/Document.cjs.map +1 -1
  113. package/cjs/nodes/document/Document.d.ts +2 -0
  114. package/cjs/nodes/document/Document.d.ts.map +1 -1
  115. package/cjs/nodes/element/Element.cjs +21 -5
  116. package/cjs/nodes/element/Element.cjs.map +1 -1
  117. package/cjs/nodes/element/Element.d.ts +6 -0
  118. package/cjs/nodes/element/Element.d.ts.map +1 -1
  119. package/cjs/nodes/element/NamedNodeMap.cjs +1 -0
  120. package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
  121. package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
  122. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +8 -0
  123. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  124. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
  125. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  126. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +8 -0
  127. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
  128. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
  129. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  130. package/cjs/nodes/html-element/HTMLElement.cjs +3 -0
  131. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  132. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  133. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +7 -3
  134. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  135. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  136. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +147 -19
  137. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  138. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
  139. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  140. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +8 -0
  141. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  142. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
  143. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  144. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +380 -46
  145. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  146. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
  147. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  148. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs +0 -1
  149. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs.map +1 -1
  150. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
  151. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
  152. package/cjs/utilities/AttributeUtility.cjs +36 -0
  153. package/cjs/utilities/AttributeUtility.cjs.map +1 -0
  154. package/cjs/utilities/AttributeUtility.d.ts +18 -0
  155. package/cjs/utilities/AttributeUtility.d.ts.map +1 -0
  156. package/cjs/window/BrowserWindow.cjs +73 -6
  157. package/cjs/window/BrowserWindow.cjs.map +1 -1
  158. package/cjs/window/BrowserWindow.d.ts +14 -0
  159. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  160. package/lib/PropertySymbol.d.ts +12 -0
  161. package/lib/PropertySymbol.d.ts.map +1 -1
  162. package/lib/PropertySymbol.js +12 -0
  163. package/lib/PropertySymbol.js.map +1 -1
  164. package/lib/async-task-manager/AsyncTaskManager.d.ts +5 -0
  165. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  166. package/lib/async-task-manager/AsyncTaskManager.js +67 -18
  167. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  168. package/lib/browser/BrowserSettingsFactory.d.ts.map +1 -1
  169. package/lib/browser/BrowserSettingsFactory.js +4 -0
  170. package/lib/browser/BrowserSettingsFactory.js.map +1 -1
  171. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  172. package/lib/browser/DefaultBrowserSettings.js +3 -0
  173. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  174. package/lib/browser/types/IBrowserSettings.d.ts +6 -0
  175. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  176. package/lib/browser/types/IOptionalBrowserSettings.d.ts +6 -0
  177. package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  178. package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  179. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  180. package/lib/dom/DOMTokenList.d.ts +5 -3
  181. package/lib/dom/DOMTokenList.d.ts.map +1 -1
  182. package/lib/dom/DOMTokenList.js +7 -4
  183. package/lib/dom/DOMTokenList.js.map +1 -1
  184. package/lib/event/EventTarget.d.ts.map +1 -1
  185. package/lib/event/EventTarget.js +31 -5
  186. package/lib/event/EventTarget.js.map +1 -1
  187. package/lib/fetch/Fetch.d.ts +3 -0
  188. package/lib/fetch/Fetch.d.ts.map +1 -1
  189. package/lib/fetch/Fetch.js +64 -10
  190. package/lib/fetch/Fetch.js.map +1 -1
  191. package/lib/fetch/Request.d.ts +65 -9
  192. package/lib/fetch/Request.d.ts.map +1 -1
  193. package/lib/fetch/Request.js +116 -24
  194. package/lib/fetch/Request.js.map +1 -1
  195. package/lib/fetch/ResourceFetch.d.ts +21 -11
  196. package/lib/fetch/ResourceFetch.d.ts.map +1 -1
  197. package/lib/fetch/ResourceFetch.js +68 -13
  198. package/lib/fetch/ResourceFetch.js.map +1 -1
  199. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  200. package/lib/fetch/SyncFetch.js +36 -7
  201. package/lib/fetch/SyncFetch.js.map +1 -1
  202. package/lib/fetch/preload/PreloadEntry.d.ts +26 -0
  203. package/lib/fetch/preload/PreloadEntry.d.ts.map +1 -0
  204. package/lib/fetch/preload/PreloadEntry.js +41 -0
  205. package/lib/fetch/preload/PreloadEntry.js.map +1 -0
  206. package/lib/fetch/preload/PreloadUtility.d.ts +26 -0
  207. package/lib/fetch/preload/PreloadUtility.d.ts.map +1 -0
  208. package/lib/fetch/preload/PreloadUtility.js +26 -0
  209. package/lib/fetch/preload/PreloadUtility.js.map +1 -0
  210. package/lib/fetch/types/IRequestInit.d.ts +2 -0
  211. package/lib/fetch/types/IRequestInit.d.ts.map +1 -1
  212. package/lib/fetch/types/IRequestMode.d.ts +3 -0
  213. package/lib/fetch/types/IRequestMode.d.ts.map +1 -0
  214. package/lib/fetch/types/IRequestMode.js +2 -0
  215. package/lib/fetch/types/IRequestMode.js.map +1 -0
  216. package/lib/fetch/utilities/FetchRequestReferrerUtility.js +1 -1
  217. package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -1
  218. package/lib/module/CSSModule.d.ts +34 -0
  219. package/lib/module/CSSModule.d.ts.map +1 -0
  220. package/lib/module/CSSModule.js +44 -0
  221. package/lib/module/CSSModule.js.map +1 -0
  222. package/lib/module/ECMAScriptModule.d.ts +36 -0
  223. package/lib/module/ECMAScriptModule.d.ts.map +1 -0
  224. package/lib/module/ECMAScriptModule.js +128 -0
  225. package/lib/module/ECMAScriptModule.js.map +1 -0
  226. package/lib/module/ECMAScriptModuleCompiler.d.ts +31 -0
  227. package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
  228. package/lib/module/ECMAScriptModuleCompiler.js +521 -0
  229. package/lib/module/ECMAScriptModuleCompiler.js.map +1 -0
  230. package/lib/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
  231. package/lib/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
  232. package/lib/module/IECMAScriptModuleCompiledResult.js +2 -0
  233. package/lib/module/IECMAScriptModuleCompiledResult.js.map +1 -0
  234. package/lib/module/IECMAScriptModuleImport.d.ts +5 -0
  235. package/lib/module/IECMAScriptModuleImport.d.ts.map +1 -0
  236. package/lib/module/IECMAScriptModuleImport.js +2 -0
  237. package/lib/module/IECMAScriptModuleImport.js.map +1 -0
  238. package/lib/module/IModule.d.ts +21 -0
  239. package/lib/module/IModule.d.ts.map +1 -0
  240. package/lib/module/IModule.js +2 -0
  241. package/lib/module/IModule.js.map +1 -0
  242. package/lib/module/IModuleImportMap.d.ts +10 -0
  243. package/lib/module/IModuleImportMap.d.ts.map +1 -0
  244. package/lib/module/IModuleImportMap.js +2 -0
  245. package/lib/module/IModuleImportMap.js.map +1 -0
  246. package/lib/module/IModuleImportMapRule.d.ts +5 -0
  247. package/lib/module/IModuleImportMapRule.d.ts.map +1 -0
  248. package/lib/module/IModuleImportMapRule.js +2 -0
  249. package/lib/module/IModuleImportMapRule.js.map +1 -0
  250. package/lib/module/IModuleImportMapScope.d.ts +6 -0
  251. package/lib/module/IModuleImportMapScope.d.ts.map +1 -0
  252. package/lib/module/IModuleImportMapScope.js +2 -0
  253. package/lib/module/IModuleImportMapScope.js.map +1 -0
  254. package/lib/module/JSONModule.d.ts +33 -0
  255. package/lib/module/JSONModule.d.ts.map +1 -0
  256. package/lib/module/JSONModule.js +49 -0
  257. package/lib/module/JSONModule.js.map +1 -0
  258. package/lib/module/ModuleFactory.d.ts +33 -0
  259. package/lib/module/ModuleFactory.d.ts.map +1 -0
  260. package/lib/module/ModuleFactory.js +107 -0
  261. package/lib/module/ModuleFactory.js.map +1 -0
  262. package/lib/module/ModuleURLUtility.d.ts +17 -0
  263. package/lib/module/ModuleURLUtility.d.ts.map +1 -0
  264. package/lib/module/ModuleURLUtility.js +41 -0
  265. package/lib/module/ModuleURLUtility.js.map +1 -0
  266. package/lib/module/UnresolvedModule.d.ts +43 -0
  267. package/lib/module/UnresolvedModule.d.ts.map +1 -0
  268. package/lib/module/UnresolvedModule.js +67 -0
  269. package/lib/module/UnresolvedModule.js.map +1 -0
  270. package/lib/nodes/document/Document.d.ts +2 -0
  271. package/lib/nodes/document/Document.d.ts.map +1 -1
  272. package/lib/nodes/document/Document.js +1 -0
  273. package/lib/nodes/document/Document.js.map +1 -1
  274. package/lib/nodes/element/Element.d.ts +6 -0
  275. package/lib/nodes/element/Element.d.ts.map +1 -1
  276. package/lib/nodes/element/Element.js +21 -5
  277. package/lib/nodes/element/Element.js.map +1 -1
  278. package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
  279. package/lib/nodes/element/NamedNodeMap.js +1 -0
  280. package/lib/nodes/element/NamedNodeMap.js.map +1 -1
  281. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
  282. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  283. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +8 -0
  284. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  285. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
  286. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  287. package/lib/nodes/html-area-element/HTMLAreaElement.js +8 -0
  288. package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
  289. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  290. package/lib/nodes/html-element/HTMLElement.js +3 -0
  291. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  292. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  293. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +7 -3
  294. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  295. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
  296. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  297. package/lib/nodes/html-link-element/HTMLLinkElement.js +147 -19
  298. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  299. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
  300. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  301. package/lib/nodes/html-media-element/HTMLMediaElement.js +8 -0
  302. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  303. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
  304. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  305. package/lib/nodes/html-script-element/HTMLScriptElement.js +380 -46
  306. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  307. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
  308. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
  309. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js +0 -1
  310. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js.map +1 -1
  311. package/lib/utilities/AttributeUtility.d.ts +18 -0
  312. package/lib/utilities/AttributeUtility.d.ts.map +1 -0
  313. package/lib/utilities/AttributeUtility.js +29 -0
  314. package/lib/utilities/AttributeUtility.js.map +1 -0
  315. package/lib/window/BrowserWindow.d.ts +14 -0
  316. package/lib/window/BrowserWindow.d.ts.map +1 -1
  317. package/lib/window/BrowserWindow.js +73 -6
  318. package/lib/window/BrowserWindow.js.map +1 -1
  319. package/package.json +1 -1
  320. package/src/PropertySymbol.ts +12 -0
  321. package/src/async-task-manager/AsyncTaskManager.ts +81 -19
  322. package/src/browser/BrowserSettingsFactory.ts +4 -0
  323. package/src/browser/DefaultBrowserSettings.ts +3 -0
  324. package/src/browser/types/IBrowserSettings.ts +7 -0
  325. package/src/browser/types/IOptionalBrowserSettings.ts +7 -0
  326. package/src/browser/utilities/BrowserFrameNavigator.ts +2 -7
  327. package/src/dom/DOMTokenList.ts +12 -4
  328. package/src/event/EventTarget.ts +31 -11
  329. package/src/fetch/Fetch.ts +82 -16
  330. package/src/fetch/Request.ts +132 -24
  331. package/src/fetch/ResourceFetch.ts +99 -14
  332. package/src/fetch/SyncFetch.ts +41 -9
  333. package/src/fetch/preload/PreloadEntry.ts +46 -0
  334. package/src/fetch/preload/PreloadUtility.ts +33 -0
  335. package/src/fetch/types/IRequestInit.ts +2 -0
  336. package/src/fetch/types/IRequestMode.ts +2 -0
  337. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +1 -1
  338. package/src/module/CSSModule.ts +54 -0
  339. package/src/module/ECMAScriptModule.ts +171 -0
  340. package/src/module/ECMAScriptModuleCompiler.ts +567 -0
  341. package/src/module/IECMAScriptModuleCompiledResult.ts +14 -0
  342. package/src/module/IECMAScriptModuleImport.ts +4 -0
  343. package/src/module/IModule.ts +20 -0
  344. package/src/module/IModuleImportMap.ts +10 -0
  345. package/src/module/IModuleImportMapRule.ts +4 -0
  346. package/src/module/IModuleImportMapScope.ts +6 -0
  347. package/src/module/JSONModule.ts +59 -0
  348. package/src/module/ModuleFactory.ts +134 -0
  349. package/src/module/ModuleURLUtility.ts +51 -0
  350. package/src/module/UnresolvedModule.ts +77 -0
  351. package/src/nodes/document/Document.ts +2 -0
  352. package/src/nodes/element/Element.ts +25 -7
  353. package/src/nodes/element/NamedNodeMap.ts +1 -0
  354. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +9 -0
  355. package/src/nodes/html-area-element/HTMLAreaElement.ts +9 -0
  356. package/src/nodes/html-element/HTMLElement.ts +3 -0
  357. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +9 -8
  358. package/src/nodes/html-link-element/HTMLLinkElement.ts +181 -28
  359. package/src/nodes/html-media-element/HTMLMediaElement.ts +9 -0
  360. package/src/nodes/html-script-element/HTMLScriptElement.ts +441 -69
  361. package/src/nodes/html-table-cell-element/HTMLTableCellElement.ts +0 -3
  362. package/src/utilities/AttributeUtility.ts +43 -0
  363. package/src/window/BrowserWindow.ts +77 -10
  364. package/cjs/window/WindowErrorUtility.cjs +0 -85
  365. package/cjs/window/WindowErrorUtility.cjs.map +0 -1
  366. package/cjs/window/WindowErrorUtility.d.ts +0 -27
  367. package/cjs/window/WindowErrorUtility.d.ts.map +0 -1
  368. package/lib/window/WindowErrorUtility.d.ts +0 -27
  369. package/lib/window/WindowErrorUtility.d.ts.map +0 -1
  370. package/lib/window/WindowErrorUtility.js +0 -56
  371. package/lib/window/WindowErrorUtility.js.map +0 -1
  372. package/src/window/WindowErrorUtility.ts +0 -68
@@ -5,11 +5,14 @@ import Event from '../../event/Event.js';
5
5
  import ErrorEvent from '../../event/events/ErrorEvent.js';
6
6
  import DOMTokenList from '../../dom/DOMTokenList.js';
7
7
  import Attr from '../attr/Attr.js';
8
- import WindowErrorUtility from '../../window/WindowErrorUtility.js';
9
8
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
10
9
  import ResourceFetch from '../../fetch/ResourceFetch.js';
11
- import DocumentReadyStateManager from '../document/DocumentReadyStateManager.js';
12
10
  import WindowBrowserContext from '../../window/WindowBrowserContext.js';
11
+ import Fetch from '../../fetch/Fetch.js';
12
+ import BrowserErrorCaptureEnum from '../../browser/enums/BrowserErrorCaptureEnum.js';
13
+ import ModuleFactory from '../../module/ModuleFactory.js';
14
+ import PreloadUtility from '../../fetch/preload/PreloadUtility.js';
15
+ import PreloadEntry from '../../fetch/preload/PreloadEntry.js';
13
16
 
14
17
  /**
15
18
  * HTML Link Element.
@@ -45,12 +48,22 @@ export default class HTMLLinkElement extends HTMLElement {
45
48
  this[PropertySymbol.relList] = new DOMTokenList(
46
49
  PropertySymbol.illegalConstructor,
47
50
  this,
48
- 'rel'
51
+ 'rel',
52
+ ['stylesheet', 'modulepreload', 'preload']
49
53
  );
50
54
  }
51
55
  return <DOMTokenList>this[PropertySymbol.relList];
52
56
  }
53
57
 
58
+ /**
59
+ * Sets rel list.
60
+ *
61
+ * @param value Value.
62
+ */
63
+ public set relList(value: string) {
64
+ this.setAttribute('rel', value);
65
+ }
66
+
54
67
  /**
55
68
  * Returns as.
56
69
  *
@@ -61,9 +74,9 @@ export default class HTMLLinkElement extends HTMLElement {
61
74
  }
62
75
 
63
76
  /**
64
- * Sets crossOrigin.
77
+ * Sets as.
65
78
  *
66
- * @param crossOrigin CrossOrigin.
79
+ * @param as As.
67
80
  */
68
81
  public set as(as: string) {
69
82
  this.setAttribute('as', as);
@@ -209,8 +222,22 @@ export default class HTMLLinkElement extends HTMLElement {
209
222
  */
210
223
  public override [PropertySymbol.connectedToDocument](): void {
211
224
  super[PropertySymbol.connectedToDocument]();
212
- if (this[PropertySymbol.evaluateCSS]) {
213
- this.#loadStyleSheet(this.getAttribute('href'), this.getAttribute('rel'));
225
+
226
+ const rel = this.getAttribute('rel');
227
+ const href = this.getAttribute('href');
228
+
229
+ if (rel && href) {
230
+ switch (rel) {
231
+ case 'stylesheet':
232
+ this.#loadStyleSheet(href);
233
+ break;
234
+ case 'modulepreload':
235
+ this.#preloadModule(href);
236
+ break;
237
+ case 'preload':
238
+ this.#preloadResource(href);
239
+ break;
240
+ }
214
241
  }
215
242
  }
216
243
 
@@ -223,10 +250,138 @@ export default class HTMLLinkElement extends HTMLElement {
223
250
  ): void {
224
251
  super[PropertySymbol.onSetAttribute](attribute, replacedAttribute);
225
252
 
226
- if (attribute[PropertySymbol.name] === 'rel') {
227
- this.#loadStyleSheet(this.getAttribute('href'), attribute[PropertySymbol.value]);
228
- } else if (attribute[PropertySymbol.name] === 'href') {
229
- this.#loadStyleSheet(attribute[PropertySymbol.value], this.getAttribute('rel'));
253
+ if (attribute[PropertySymbol.name] === 'rel' || attribute[PropertySymbol.name] === 'href') {
254
+ const rel = this.getAttribute('rel');
255
+ const href = this.getAttribute('href');
256
+
257
+ if (rel && href) {
258
+ switch (rel) {
259
+ case 'stylesheet':
260
+ this.#loadStyleSheet(href);
261
+ break;
262
+ case 'modulepreload':
263
+ this.#preloadModule(href);
264
+ break;
265
+ case 'preload':
266
+ this.#preloadResource(href);
267
+ break;
268
+ }
269
+ }
270
+ }
271
+ }
272
+
273
+ /**
274
+ * Preloads a module.
275
+ *
276
+ * @param url URL.
277
+ */
278
+ async #preloadModule(url: string): Promise<void> {
279
+ const absoluteURL = new URL(url, this[PropertySymbol.ownerDocument].location.href);
280
+ const window = this[PropertySymbol.window];
281
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
282
+ const browserSettings = new WindowBrowserContext(window).getSettings();
283
+
284
+ if (
285
+ !browserSettings ||
286
+ !this[PropertySymbol.isConnected] ||
287
+ browserSettings.disableJavaScriptFileLoading ||
288
+ browserSettings.disableJavaScriptEvaluation
289
+ ) {
290
+ return;
291
+ }
292
+
293
+ if (
294
+ browserSettings.disableErrorCapturing ||
295
+ browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
296
+ ) {
297
+ const module = await ModuleFactory.getModule(window, absoluteURL, url);
298
+ await module.preload();
299
+ } else {
300
+ try {
301
+ const module = await ModuleFactory.getModule(window, absoluteURL, url);
302
+ await module.preload();
303
+ } catch (error) {
304
+ browserFrame.page?.console.error(error);
305
+ window[PropertySymbol.dispatchError](error);
306
+ return;
307
+ }
308
+ }
309
+ }
310
+
311
+ /**
312
+ * Preloads a resource.
313
+ *
314
+ * @param url URL.
315
+ */
316
+ async #preloadResource(url: string): Promise<void> {
317
+ const window = this[PropertySymbol.window];
318
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
319
+ const browserSettings = browserFrame.page?.context?.browser?.settings;
320
+ const as = this.as;
321
+
322
+ // Only "script", "style" and "fetch" are supported for now.
323
+ if (
324
+ !browserFrame ||
325
+ !this[PropertySymbol.isConnected] ||
326
+ (as !== 'script' && as !== 'style' && as !== 'fetch')
327
+ ) {
328
+ return;
329
+ }
330
+
331
+ if (
332
+ as === 'script' &&
333
+ (browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
334
+ ) {
335
+ return;
336
+ }
337
+
338
+ if (as === 'style' && browserSettings.disableCSSFileLoading) {
339
+ return;
340
+ }
341
+
342
+ const absoluteURL = new URL(url, window.location.href).href;
343
+
344
+ const preloadKey = PreloadUtility.getKey({
345
+ url: absoluteURL,
346
+ destination: as,
347
+ mode: 'cors',
348
+ credentialsMode: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
349
+ });
350
+
351
+ if (window.document[PropertySymbol.preloads].has(preloadKey)) {
352
+ return;
353
+ }
354
+
355
+ const preloadEntry = new PreloadEntry();
356
+
357
+ window.document[PropertySymbol.preloads].set(preloadKey, preloadEntry);
358
+
359
+ const fetch = new Fetch({
360
+ browserFrame,
361
+ window,
362
+ url: absoluteURL,
363
+ disableSameOriginPolicy: as === 'script' || as === 'style',
364
+ disablePreload: true,
365
+ init: {
366
+ credentials: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
367
+ }
368
+ });
369
+
370
+ try {
371
+ const response = await fetch.send();
372
+
373
+ if (!response[PropertySymbol.buffer]) {
374
+ await response.buffer();
375
+ }
376
+
377
+ preloadEntry.responseAvailable(null, response);
378
+ } catch (error) {
379
+ preloadEntry.responseAvailable(error, null);
380
+ window.document[PropertySymbol.preloads].delete(preloadKey);
381
+
382
+ browserFrame.page?.console?.error(
383
+ `Failed to preload resource "${absoluteURL}": ${error.message}`
384
+ );
230
385
  }
231
386
  }
232
387
 
@@ -236,7 +391,7 @@ export default class HTMLLinkElement extends HTMLElement {
236
391
  * @param url URL.
237
392
  * @param rel Rel.
238
393
  */
239
- async #loadStyleSheet(url: string | null, rel: string | null): Promise<void> {
394
+ async #loadStyleSheet(url: string | null): Promise<void> {
240
395
  const window = this[PropertySymbol.window];
241
396
  const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
242
397
 
@@ -246,7 +401,7 @@ export default class HTMLLinkElement extends HTMLElement {
246
401
 
247
402
  const browserSettings = browserFrame.page?.context?.browser?.settings;
248
403
 
249
- if (!url || !rel || rel.toLowerCase() !== 'stylesheet' || !this[PropertySymbol.isConnected]) {
404
+ if (!this[PropertySymbol.evaluateCSS] || !this[PropertySymbol.isConnected]) {
250
405
  return;
251
406
  }
252
407
 
@@ -265,24 +420,19 @@ export default class HTMLLinkElement extends HTMLElement {
265
420
  if (browserSettings.handleDisabledFileLoadingAsSuccess) {
266
421
  this.dispatchEvent(new Event('load'));
267
422
  } else {
268
- WindowErrorUtility.dispatchError(
269
- this,
270
- new window.DOMException(
271
- `Failed to load external stylesheet "${absoluteURL}". CSS file loading is disabled.`,
272
- DOMExceptionNameEnum.notSupportedError
273
- )
423
+ const error = new window.DOMException(
424
+ `Failed to load external stylesheet "${absoluteURL}". CSS file loading is disabled.`,
425
+ DOMExceptionNameEnum.notSupportedError
274
426
  );
427
+
428
+ browserFrame.page?.console.error(error);
429
+ this.dispatchEvent(new Event('error'));
275
430
  }
276
431
  return;
277
432
  }
278
433
 
279
- const resourceFetch = new ResourceFetch({
280
- browserFrame,
281
- window: window
282
- });
283
- const readyStateManager = (<{ [PropertySymbol.readyStateManager]: DocumentReadyStateManager }>(
284
- (<unknown>window)
285
- ))[PropertySymbol.readyStateManager];
434
+ const resourceFetch = new ResourceFetch(window);
435
+ const readyStateManager = window[PropertySymbol.readyStateManager];
286
436
 
287
437
  this.#loadedStyleSheetURL = absoluteURL;
288
438
 
@@ -292,7 +442,9 @@ export default class HTMLLinkElement extends HTMLElement {
292
442
  let error: Error | null = null;
293
443
 
294
444
  try {
295
- code = await resourceFetch.fetch(absoluteURL);
445
+ code = await resourceFetch.fetch(absoluteURL, 'style', {
446
+ credentials: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
447
+ });
296
448
  } catch (e) {
297
449
  error = e;
298
450
  }
@@ -300,7 +452,8 @@ export default class HTMLLinkElement extends HTMLElement {
300
452
  readyStateManager.endTask();
301
453
 
302
454
  if (error) {
303
- WindowErrorUtility.dispatchError(this, error);
455
+ browserFrame.page?.console.error(error);
456
+ this.dispatchEvent(new Event('error'));
304
457
  } else {
305
458
  const styleSheet = new CSSStyleSheet();
306
459
  styleSheet.replaceSync(code);
@@ -309,6 +309,15 @@ export default class HTMLMediaElement extends HTMLElement {
309
309
  return this[PropertySymbol.controlsList];
310
310
  }
311
311
 
312
+ /**
313
+ * Sets controlsList.
314
+ *
315
+ * @param value Value.
316
+ */
317
+ public set controlsList(value: string) {
318
+ this.setAttribute('controlslist', value);
319
+ }
320
+
312
321
  /**
313
322
  * Returns mediaKeys.
314
323
  *