happy-dom 16.8.1 → 17.0.1

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 (374) 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/html-anchor-element/HTMLAnchorElement.cjs +8 -0
  120. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  121. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
  122. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  123. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +8 -0
  124. package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
  125. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
  126. package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  127. package/cjs/nodes/html-element/HTMLElement.cjs +3 -0
  128. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  129. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  130. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +7 -3
  131. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  132. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  133. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +147 -19
  134. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  135. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
  136. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  137. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +8 -0
  138. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  139. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
  140. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  141. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +380 -46
  142. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  143. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
  144. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  145. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs +0 -1
  146. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs.map +1 -1
  147. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
  148. package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
  149. package/cjs/query-selector/QuerySelector.cjs +16 -7
  150. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  151. package/cjs/query-selector/QuerySelector.d.ts +2 -1
  152. package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
  153. package/cjs/utilities/AttributeUtility.cjs +36 -0
  154. package/cjs/utilities/AttributeUtility.cjs.map +1 -0
  155. package/cjs/utilities/AttributeUtility.d.ts +18 -0
  156. package/cjs/utilities/AttributeUtility.d.ts.map +1 -0
  157. package/cjs/window/BrowserWindow.cjs +73 -6
  158. package/cjs/window/BrowserWindow.cjs.map +1 -1
  159. package/cjs/window/BrowserWindow.d.ts +14 -0
  160. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  161. package/lib/PropertySymbol.d.ts +12 -0
  162. package/lib/PropertySymbol.d.ts.map +1 -1
  163. package/lib/PropertySymbol.js +12 -0
  164. package/lib/PropertySymbol.js.map +1 -1
  165. package/lib/async-task-manager/AsyncTaskManager.d.ts +5 -0
  166. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  167. package/lib/async-task-manager/AsyncTaskManager.js +67 -18
  168. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  169. package/lib/browser/BrowserSettingsFactory.d.ts.map +1 -1
  170. package/lib/browser/BrowserSettingsFactory.js +4 -0
  171. package/lib/browser/BrowserSettingsFactory.js.map +1 -1
  172. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  173. package/lib/browser/DefaultBrowserSettings.js +3 -0
  174. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  175. package/lib/browser/types/IBrowserSettings.d.ts +6 -0
  176. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  177. package/lib/browser/types/IOptionalBrowserSettings.d.ts +6 -0
  178. package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  179. package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  180. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  181. package/lib/dom/DOMTokenList.d.ts +5 -3
  182. package/lib/dom/DOMTokenList.d.ts.map +1 -1
  183. package/lib/dom/DOMTokenList.js +7 -4
  184. package/lib/dom/DOMTokenList.js.map +1 -1
  185. package/lib/event/EventTarget.d.ts.map +1 -1
  186. package/lib/event/EventTarget.js +31 -5
  187. package/lib/event/EventTarget.js.map +1 -1
  188. package/lib/fetch/Fetch.d.ts +3 -0
  189. package/lib/fetch/Fetch.d.ts.map +1 -1
  190. package/lib/fetch/Fetch.js +64 -10
  191. package/lib/fetch/Fetch.js.map +1 -1
  192. package/lib/fetch/Request.d.ts +65 -9
  193. package/lib/fetch/Request.d.ts.map +1 -1
  194. package/lib/fetch/Request.js +116 -24
  195. package/lib/fetch/Request.js.map +1 -1
  196. package/lib/fetch/ResourceFetch.d.ts +21 -11
  197. package/lib/fetch/ResourceFetch.d.ts.map +1 -1
  198. package/lib/fetch/ResourceFetch.js +68 -13
  199. package/lib/fetch/ResourceFetch.js.map +1 -1
  200. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  201. package/lib/fetch/SyncFetch.js +36 -7
  202. package/lib/fetch/SyncFetch.js.map +1 -1
  203. package/lib/fetch/preload/PreloadEntry.d.ts +26 -0
  204. package/lib/fetch/preload/PreloadEntry.d.ts.map +1 -0
  205. package/lib/fetch/preload/PreloadEntry.js +41 -0
  206. package/lib/fetch/preload/PreloadEntry.js.map +1 -0
  207. package/lib/fetch/preload/PreloadUtility.d.ts +26 -0
  208. package/lib/fetch/preload/PreloadUtility.d.ts.map +1 -0
  209. package/lib/fetch/preload/PreloadUtility.js +26 -0
  210. package/lib/fetch/preload/PreloadUtility.js.map +1 -0
  211. package/lib/fetch/types/IRequestInit.d.ts +2 -0
  212. package/lib/fetch/types/IRequestInit.d.ts.map +1 -1
  213. package/lib/fetch/types/IRequestMode.d.ts +3 -0
  214. package/lib/fetch/types/IRequestMode.d.ts.map +1 -0
  215. package/lib/fetch/types/IRequestMode.js +2 -0
  216. package/lib/fetch/types/IRequestMode.js.map +1 -0
  217. package/lib/fetch/utilities/FetchRequestReferrerUtility.js +1 -1
  218. package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -1
  219. package/lib/module/CSSModule.d.ts +34 -0
  220. package/lib/module/CSSModule.d.ts.map +1 -0
  221. package/lib/module/CSSModule.js +44 -0
  222. package/lib/module/CSSModule.js.map +1 -0
  223. package/lib/module/ECMAScriptModule.d.ts +36 -0
  224. package/lib/module/ECMAScriptModule.d.ts.map +1 -0
  225. package/lib/module/ECMAScriptModule.js +128 -0
  226. package/lib/module/ECMAScriptModule.js.map +1 -0
  227. package/lib/module/ECMAScriptModuleCompiler.d.ts +31 -0
  228. package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
  229. package/lib/module/ECMAScriptModuleCompiler.js +521 -0
  230. package/lib/module/ECMAScriptModuleCompiler.js.map +1 -0
  231. package/lib/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
  232. package/lib/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
  233. package/lib/module/IECMAScriptModuleCompiledResult.js +2 -0
  234. package/lib/module/IECMAScriptModuleCompiledResult.js.map +1 -0
  235. package/lib/module/IECMAScriptModuleImport.d.ts +5 -0
  236. package/lib/module/IECMAScriptModuleImport.d.ts.map +1 -0
  237. package/lib/module/IECMAScriptModuleImport.js +2 -0
  238. package/lib/module/IECMAScriptModuleImport.js.map +1 -0
  239. package/lib/module/IModule.d.ts +21 -0
  240. package/lib/module/IModule.d.ts.map +1 -0
  241. package/lib/module/IModule.js +2 -0
  242. package/lib/module/IModule.js.map +1 -0
  243. package/lib/module/IModuleImportMap.d.ts +10 -0
  244. package/lib/module/IModuleImportMap.d.ts.map +1 -0
  245. package/lib/module/IModuleImportMap.js +2 -0
  246. package/lib/module/IModuleImportMap.js.map +1 -0
  247. package/lib/module/IModuleImportMapRule.d.ts +5 -0
  248. package/lib/module/IModuleImportMapRule.d.ts.map +1 -0
  249. package/lib/module/IModuleImportMapRule.js +2 -0
  250. package/lib/module/IModuleImportMapRule.js.map +1 -0
  251. package/lib/module/IModuleImportMapScope.d.ts +6 -0
  252. package/lib/module/IModuleImportMapScope.d.ts.map +1 -0
  253. package/lib/module/IModuleImportMapScope.js +2 -0
  254. package/lib/module/IModuleImportMapScope.js.map +1 -0
  255. package/lib/module/JSONModule.d.ts +33 -0
  256. package/lib/module/JSONModule.d.ts.map +1 -0
  257. package/lib/module/JSONModule.js +49 -0
  258. package/lib/module/JSONModule.js.map +1 -0
  259. package/lib/module/ModuleFactory.d.ts +33 -0
  260. package/lib/module/ModuleFactory.d.ts.map +1 -0
  261. package/lib/module/ModuleFactory.js +107 -0
  262. package/lib/module/ModuleFactory.js.map +1 -0
  263. package/lib/module/ModuleURLUtility.d.ts +17 -0
  264. package/lib/module/ModuleURLUtility.d.ts.map +1 -0
  265. package/lib/module/ModuleURLUtility.js +41 -0
  266. package/lib/module/ModuleURLUtility.js.map +1 -0
  267. package/lib/module/UnresolvedModule.d.ts +43 -0
  268. package/lib/module/UnresolvedModule.d.ts.map +1 -0
  269. package/lib/module/UnresolvedModule.js +67 -0
  270. package/lib/module/UnresolvedModule.js.map +1 -0
  271. package/lib/nodes/document/Document.d.ts +2 -0
  272. package/lib/nodes/document/Document.d.ts.map +1 -1
  273. package/lib/nodes/document/Document.js +1 -0
  274. package/lib/nodes/document/Document.js.map +1 -1
  275. package/lib/nodes/element/Element.d.ts +6 -0
  276. package/lib/nodes/element/Element.d.ts.map +1 -1
  277. package/lib/nodes/element/Element.js +21 -5
  278. package/lib/nodes/element/Element.js.map +1 -1
  279. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
  280. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  281. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +8 -0
  282. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  283. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
  284. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  285. package/lib/nodes/html-area-element/HTMLAreaElement.js +8 -0
  286. package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
  287. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  288. package/lib/nodes/html-element/HTMLElement.js +3 -0
  289. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  290. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  291. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +7 -3
  292. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  293. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
  294. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  295. package/lib/nodes/html-link-element/HTMLLinkElement.js +147 -19
  296. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  297. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
  298. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  299. package/lib/nodes/html-media-element/HTMLMediaElement.js +8 -0
  300. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  301. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
  302. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  303. package/lib/nodes/html-script-element/HTMLScriptElement.js +380 -46
  304. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  305. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
  306. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
  307. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js +0 -1
  308. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js.map +1 -1
  309. package/lib/query-selector/QuerySelector.d.ts +2 -1
  310. package/lib/query-selector/QuerySelector.d.ts.map +1 -1
  311. package/lib/query-selector/QuerySelector.js +16 -7
  312. package/lib/query-selector/QuerySelector.js.map +1 -1
  313. package/lib/utilities/AttributeUtility.d.ts +18 -0
  314. package/lib/utilities/AttributeUtility.d.ts.map +1 -0
  315. package/lib/utilities/AttributeUtility.js +29 -0
  316. package/lib/utilities/AttributeUtility.js.map +1 -0
  317. package/lib/window/BrowserWindow.d.ts +14 -0
  318. package/lib/window/BrowserWindow.d.ts.map +1 -1
  319. package/lib/window/BrowserWindow.js +73 -6
  320. package/lib/window/BrowserWindow.js.map +1 -1
  321. package/package.json +1 -1
  322. package/src/PropertySymbol.ts +12 -0
  323. package/src/async-task-manager/AsyncTaskManager.ts +81 -19
  324. package/src/browser/BrowserSettingsFactory.ts +4 -0
  325. package/src/browser/DefaultBrowserSettings.ts +3 -0
  326. package/src/browser/types/IBrowserSettings.ts +7 -0
  327. package/src/browser/types/IOptionalBrowserSettings.ts +7 -0
  328. package/src/browser/utilities/BrowserFrameNavigator.ts +2 -7
  329. package/src/dom/DOMTokenList.ts +12 -4
  330. package/src/event/EventTarget.ts +31 -11
  331. package/src/fetch/Fetch.ts +82 -16
  332. package/src/fetch/Request.ts +132 -24
  333. package/src/fetch/ResourceFetch.ts +99 -14
  334. package/src/fetch/SyncFetch.ts +41 -9
  335. package/src/fetch/preload/PreloadEntry.ts +46 -0
  336. package/src/fetch/preload/PreloadUtility.ts +33 -0
  337. package/src/fetch/types/IRequestInit.ts +2 -0
  338. package/src/fetch/types/IRequestMode.ts +2 -0
  339. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +1 -1
  340. package/src/module/CSSModule.ts +54 -0
  341. package/src/module/ECMAScriptModule.ts +171 -0
  342. package/src/module/ECMAScriptModuleCompiler.ts +567 -0
  343. package/src/module/IECMAScriptModuleCompiledResult.ts +14 -0
  344. package/src/module/IECMAScriptModuleImport.ts +4 -0
  345. package/src/module/IModule.ts +20 -0
  346. package/src/module/IModuleImportMap.ts +10 -0
  347. package/src/module/IModuleImportMapRule.ts +4 -0
  348. package/src/module/IModuleImportMapScope.ts +6 -0
  349. package/src/module/JSONModule.ts +59 -0
  350. package/src/module/ModuleFactory.ts +134 -0
  351. package/src/module/ModuleURLUtility.ts +51 -0
  352. package/src/module/UnresolvedModule.ts +77 -0
  353. package/src/nodes/document/Document.ts +2 -0
  354. package/src/nodes/element/Element.ts +25 -7
  355. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +9 -0
  356. package/src/nodes/html-area-element/HTMLAreaElement.ts +9 -0
  357. package/src/nodes/html-element/HTMLElement.ts +3 -0
  358. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +9 -8
  359. package/src/nodes/html-link-element/HTMLLinkElement.ts +181 -28
  360. package/src/nodes/html-media-element/HTMLMediaElement.ts +9 -0
  361. package/src/nodes/html-script-element/HTMLScriptElement.ts +441 -69
  362. package/src/nodes/html-table-cell-element/HTMLTableCellElement.ts +0 -3
  363. package/src/query-selector/QuerySelector.ts +19 -8
  364. package/src/utilities/AttributeUtility.ts +43 -0
  365. package/src/window/BrowserWindow.ts +77 -10
  366. package/cjs/window/WindowErrorUtility.cjs +0 -85
  367. package/cjs/window/WindowErrorUtility.cjs.map +0 -1
  368. package/cjs/window/WindowErrorUtility.d.ts +0 -27
  369. package/cjs/window/WindowErrorUtility.d.ts.map +0 -1
  370. package/lib/window/WindowErrorUtility.d.ts +0 -27
  371. package/lib/window/WindowErrorUtility.d.ts.map +0 -1
  372. package/lib/window/WindowErrorUtility.js +0 -56
  373. package/lib/window/WindowErrorUtility.js.map +0 -1
  374. package/src/window/WindowErrorUtility.ts +0 -68
@@ -0,0 +1,46 @@
1
+ import Response from '../Response.js';
2
+
3
+ /**
4
+ * Preload entry.
5
+ *
6
+ * @see https://html.spec.whatwg.org/multipage/links.html#preload-entry
7
+ */
8
+ export default class PreloadEntry {
9
+ public integrityMetadata: string | null = null;
10
+ public response: Response | null = null;
11
+ public error: Error | null = null;
12
+ #callback: { resolve: (response: Response) => void; reject: (error: Error) => void } | null =
13
+ null;
14
+
15
+ /**
16
+ * On response available.
17
+ *
18
+ * @returns Response.
19
+ */
20
+ public onResponseAvailable(): Promise<Response> {
21
+ return new Promise((resolve, reject) => {
22
+ this.#callback = { resolve, reject };
23
+ });
24
+ }
25
+
26
+ /**
27
+ * Response available.
28
+ *
29
+ * @param error
30
+ * @param response
31
+ */
32
+ public responseAvailable(error: Error | null, response: Response): void {
33
+ this.response = response;
34
+ this.error = error;
35
+
36
+ if (!this.#callback) {
37
+ return;
38
+ }
39
+
40
+ if (error) {
41
+ this.#callback.reject(error);
42
+ } else {
43
+ this.#callback.resolve(response);
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,33 @@
1
+ import IRequestCredentials from '../types/IRequestCredentials.js';
2
+ import IRequestMode from '../types/IRequestMode.js';
3
+
4
+ /**
5
+ * Utility for preloading resources.
6
+ *
7
+ * @see https://html.spec.whatwg.org/multipage/links.html#link-type-preload
8
+ */
9
+ export default class PreloadUtility {
10
+ /**
11
+ * Returns a key for a preload entry.
12
+ *
13
+ * @param options Options.
14
+ * @param options.url URL.
15
+ * @param options.destination Destination.
16
+ * @param options.mode Mode.
17
+ * @param options.credentialsMode Credentials mode.
18
+ * @returns Key.
19
+ */
20
+ public static getKey(options: {
21
+ url: string;
22
+ destination: string;
23
+ mode: IRequestMode;
24
+ credentialsMode: IRequestCredentials;
25
+ }): string {
26
+ return JSON.stringify({
27
+ url: options.url,
28
+ destination: options.destination,
29
+ mode: options.mode,
30
+ credentialsMode: options.credentialsMode
31
+ });
32
+ }
33
+ }
@@ -5,6 +5,7 @@ import IRequestReferrerPolicy from './IRequestReferrerPolicy.js';
5
5
  import IRequestRedirect from './IRequestRedirect.js';
6
6
  import IRequestBody from './IRequestBody.js';
7
7
  import IRequestCredentials from './IRequestCredentials.js';
8
+ import IRequestMode from './IRequestMode.js';
8
9
 
9
10
  /**
10
11
  * Fetch request init.
@@ -13,6 +14,7 @@ export default interface IRequestInit {
13
14
  body?: IRequestBody;
14
15
  headers?: IHeadersInit;
15
16
  method?: string;
17
+ mode?: IRequestMode;
16
18
  redirect?: IRequestRedirect;
17
19
  signal?: AbortSignal | null;
18
20
  referrer?: '' | 'no-referrer' | 'client' | string | URL;
@@ -0,0 +1,2 @@
1
+ type IRequestMode = 'same-origin' | 'cors' | 'no-cors' | 'navigate' | 'websocket';
2
+ export default IRequestMode;
@@ -31,7 +31,7 @@ export default class FetchRequestReferrerUtility {
31
31
  */
32
32
  public static prepareRequest(originURL: URL, request: Request): void {
33
33
  if (!request.referrerPolicy) {
34
- (<string>request.referrerPolicy) = 'strict-origin-when-cross-origin';
34
+ request[PropertySymbol.referrerPolicy] = 'strict-origin-when-cross-origin';
35
35
  }
36
36
 
37
37
  if (request.referrer && request.referrer !== 'no-referrer') {
@@ -0,0 +1,54 @@
1
+ import BrowserWindow from '../window/BrowserWindow.js';
2
+ import { URL } from 'url';
3
+ import IModule from './IModule.js';
4
+ import CSSStyleSheet from '../css/CSSStyleSheet.js';
5
+
6
+ /**
7
+ * CSS module.
8
+ */
9
+ export default class CSSModule implements IModule {
10
+ public readonly url: URL;
11
+ readonly #window: BrowserWindow;
12
+ readonly #source: string;
13
+ #exports: { default: CSSStyleSheet } | null = null;
14
+
15
+ /**
16
+ * Constructor.
17
+ *
18
+ * @param window Window.
19
+ * @param url Module URL.
20
+ * @param source Source code.
21
+ */
22
+ constructor(window: BrowserWindow, url: URL, source: string) {
23
+ this.#window = window;
24
+ this.url = url;
25
+ this.#source = source;
26
+ }
27
+
28
+ /**
29
+ * Compiles and evaluates the module.
30
+ *
31
+ * @returns Module exports.
32
+ */
33
+ public async evaluate(): Promise<{ default: CSSStyleSheet }> {
34
+ if (this.#exports) {
35
+ return this.#exports;
36
+ }
37
+
38
+ const styleSheet = new this.#window.CSSStyleSheet();
39
+ styleSheet.replaceSync(this.#source);
40
+
41
+ this.#exports = { default: styleSheet };
42
+
43
+ return this.#exports;
44
+ }
45
+
46
+ /**
47
+ * Compiles and preloads the module and its imports.
48
+ *
49
+ * @returns Promise.
50
+ */
51
+ public async preload(): Promise<void> {
52
+ await this.evaluate();
53
+ }
54
+ }
@@ -0,0 +1,171 @@
1
+ import BrowserWindow from '../window/BrowserWindow.js';
2
+ import { URL } from 'url';
3
+ import IModule from './IModule.js';
4
+ import ECMAScriptModuleCompiler from './ECMAScriptModuleCompiler.js';
5
+ import * as PropertySymbol from '../PropertySymbol.js';
6
+ import Location from '../location/Location.js';
7
+ import WindowBrowserContext from '../window/WindowBrowserContext.js';
8
+ import IECMAScriptModuleCompiledResult from './IECMAScriptModuleCompiledResult.js';
9
+ import ModuleFactory from './ModuleFactory.js';
10
+
11
+ const EMPTY_COMPILED_RESULT = { imports: [], execute: () => {} };
12
+
13
+ /**
14
+ * ECMAScript module.
15
+ */
16
+ export default class ECMAScriptModule implements IModule {
17
+ public readonly url: URL;
18
+ public readonly [PropertySymbol.window]: BrowserWindow;
19
+ readonly #source: string;
20
+ #preloaded: boolean = false;
21
+ #compiled: IECMAScriptModuleCompiledResult | null = null;
22
+ #exports: { [k: string]: any } | null = null;
23
+
24
+ /**
25
+ * Constructor.
26
+ *
27
+ * @param window Window.
28
+ * @param url Module URL.
29
+ * @param source Source code.
30
+ */
31
+ constructor(window: BrowserWindow, url: URL | Location, source: string) {
32
+ this[PropertySymbol.window] = window;
33
+ this.url = <URL>url;
34
+ this.#source = source;
35
+ }
36
+
37
+ /**
38
+ * Compiles and evaluates the module.
39
+ *
40
+ * @returns Module exports.
41
+ */
42
+ public async evaluate(): Promise<{ [key: string]: any } | null> {
43
+ if (this.#exports) {
44
+ return this.#exports;
45
+ }
46
+
47
+ const compiled = this.#compile();
48
+ const modulePromises: Promise<IModule>[] = [];
49
+ const window = this[PropertySymbol.window];
50
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
51
+
52
+ if (!browserFrame) {
53
+ return {};
54
+ }
55
+
56
+ for (const moduleImport of compiled.imports) {
57
+ modulePromises.push(
58
+ ModuleFactory.getModule(window, this.url, moduleImport.url, {
59
+ with: { type: moduleImport.type }
60
+ })
61
+ );
62
+ }
63
+
64
+ const modules = await Promise.all(modulePromises);
65
+
66
+ const imports = new Map<string, { [key: string]: any }>();
67
+
68
+ for (const module of modules) {
69
+ imports.set(module.url.href, await module.evaluate());
70
+ }
71
+
72
+ const exports = {};
73
+
74
+ this.#exports = exports;
75
+
76
+ compiled.execute({
77
+ dispatchError: window[PropertySymbol.dispatchError].bind(window),
78
+ dynamicImport: this.#import.bind(this),
79
+ imports,
80
+ exports
81
+ });
82
+
83
+ return exports;
84
+ }
85
+
86
+ /**
87
+ * Compiles and preloads the module and its imports.
88
+ *
89
+ * @returns Promise.
90
+ */
91
+ public async preload(): Promise<void> {
92
+ if (this.#preloaded) {
93
+ return;
94
+ }
95
+
96
+ this.#preloaded = true;
97
+
98
+ const compiled = this.#compile();
99
+ const modulePromises: Promise<IModule>[] = [];
100
+ const window = this[PropertySymbol.window];
101
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
102
+
103
+ if (!browserFrame) {
104
+ return;
105
+ }
106
+
107
+ for (const moduleImport of compiled.imports) {
108
+ modulePromises.push(
109
+ ModuleFactory.getModule(window, this.url, moduleImport.url, {
110
+ with: { type: moduleImport.type }
111
+ })
112
+ );
113
+ }
114
+
115
+ const modules = await Promise.all(modulePromises);
116
+
117
+ const promises: Promise<void>[] = [];
118
+ for (const module of modules) {
119
+ promises.push(module.preload());
120
+ }
121
+
122
+ await Promise.all(promises);
123
+ }
124
+
125
+ /**
126
+ * Compiles the module.
127
+ */
128
+ #compile(): IECMAScriptModuleCompiledResult {
129
+ if (this.#compiled) {
130
+ return this.#compiled;
131
+ }
132
+
133
+ // In case of an error, the compiled module will be empty.
134
+ this.#compiled = EMPTY_COMPILED_RESULT;
135
+
136
+ const compiler = new ECMAScriptModuleCompiler(this[PropertySymbol.window]);
137
+
138
+ this.#compiled = compiler.compile(this.url.href, this.#source);
139
+
140
+ return this.#compiled;
141
+ }
142
+
143
+ /**
144
+ * Imports a module.
145
+ *
146
+ * @param url URL.
147
+ * @param [options] Options.
148
+ * @param [options.with] With.
149
+ * @param [options.with.type] Type.
150
+ */
151
+ async #import(
152
+ url: string,
153
+ options?: { with?: { type?: string } }
154
+ ): Promise<{ [key: string]: any }> {
155
+ const window = this[PropertySymbol.window];
156
+ const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
157
+
158
+ if (!browserFrame) {
159
+ return;
160
+ }
161
+
162
+ const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
163
+ const taskID = asyncTaskManager?.startTask();
164
+ const module = await ModuleFactory.getModule(window, this.url, url, options);
165
+ const exports = await module.evaluate();
166
+
167
+ asyncTaskManager.endTask(taskID);
168
+
169
+ return exports;
170
+ }
171
+ }