happy-dom 16.8.1 → 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 (365) 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/utilities/AttributeUtility.cjs +36 -0
  150. package/cjs/utilities/AttributeUtility.cjs.map +1 -0
  151. package/cjs/utilities/AttributeUtility.d.ts +18 -0
  152. package/cjs/utilities/AttributeUtility.d.ts.map +1 -0
  153. package/cjs/window/BrowserWindow.cjs +73 -6
  154. package/cjs/window/BrowserWindow.cjs.map +1 -1
  155. package/cjs/window/BrowserWindow.d.ts +14 -0
  156. package/cjs/window/BrowserWindow.d.ts.map +1 -1
  157. package/lib/PropertySymbol.d.ts +12 -0
  158. package/lib/PropertySymbol.d.ts.map +1 -1
  159. package/lib/PropertySymbol.js +12 -0
  160. package/lib/PropertySymbol.js.map +1 -1
  161. package/lib/async-task-manager/AsyncTaskManager.d.ts +5 -0
  162. package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
  163. package/lib/async-task-manager/AsyncTaskManager.js +67 -18
  164. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  165. package/lib/browser/BrowserSettingsFactory.d.ts.map +1 -1
  166. package/lib/browser/BrowserSettingsFactory.js +4 -0
  167. package/lib/browser/BrowserSettingsFactory.js.map +1 -1
  168. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  169. package/lib/browser/DefaultBrowserSettings.js +3 -0
  170. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  171. package/lib/browser/types/IBrowserSettings.d.ts +6 -0
  172. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  173. package/lib/browser/types/IOptionalBrowserSettings.d.ts +6 -0
  174. package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  175. package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
  176. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  177. package/lib/dom/DOMTokenList.d.ts +5 -3
  178. package/lib/dom/DOMTokenList.d.ts.map +1 -1
  179. package/lib/dom/DOMTokenList.js +7 -4
  180. package/lib/dom/DOMTokenList.js.map +1 -1
  181. package/lib/event/EventTarget.d.ts.map +1 -1
  182. package/lib/event/EventTarget.js +31 -5
  183. package/lib/event/EventTarget.js.map +1 -1
  184. package/lib/fetch/Fetch.d.ts +3 -0
  185. package/lib/fetch/Fetch.d.ts.map +1 -1
  186. package/lib/fetch/Fetch.js +64 -10
  187. package/lib/fetch/Fetch.js.map +1 -1
  188. package/lib/fetch/Request.d.ts +65 -9
  189. package/lib/fetch/Request.d.ts.map +1 -1
  190. package/lib/fetch/Request.js +116 -24
  191. package/lib/fetch/Request.js.map +1 -1
  192. package/lib/fetch/ResourceFetch.d.ts +21 -11
  193. package/lib/fetch/ResourceFetch.d.ts.map +1 -1
  194. package/lib/fetch/ResourceFetch.js +68 -13
  195. package/lib/fetch/ResourceFetch.js.map +1 -1
  196. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  197. package/lib/fetch/SyncFetch.js +36 -7
  198. package/lib/fetch/SyncFetch.js.map +1 -1
  199. package/lib/fetch/preload/PreloadEntry.d.ts +26 -0
  200. package/lib/fetch/preload/PreloadEntry.d.ts.map +1 -0
  201. package/lib/fetch/preload/PreloadEntry.js +41 -0
  202. package/lib/fetch/preload/PreloadEntry.js.map +1 -0
  203. package/lib/fetch/preload/PreloadUtility.d.ts +26 -0
  204. package/lib/fetch/preload/PreloadUtility.d.ts.map +1 -0
  205. package/lib/fetch/preload/PreloadUtility.js +26 -0
  206. package/lib/fetch/preload/PreloadUtility.js.map +1 -0
  207. package/lib/fetch/types/IRequestInit.d.ts +2 -0
  208. package/lib/fetch/types/IRequestInit.d.ts.map +1 -1
  209. package/lib/fetch/types/IRequestMode.d.ts +3 -0
  210. package/lib/fetch/types/IRequestMode.d.ts.map +1 -0
  211. package/lib/fetch/types/IRequestMode.js +2 -0
  212. package/lib/fetch/types/IRequestMode.js.map +1 -0
  213. package/lib/fetch/utilities/FetchRequestReferrerUtility.js +1 -1
  214. package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -1
  215. package/lib/module/CSSModule.d.ts +34 -0
  216. package/lib/module/CSSModule.d.ts.map +1 -0
  217. package/lib/module/CSSModule.js +44 -0
  218. package/lib/module/CSSModule.js.map +1 -0
  219. package/lib/module/ECMAScriptModule.d.ts +36 -0
  220. package/lib/module/ECMAScriptModule.d.ts.map +1 -0
  221. package/lib/module/ECMAScriptModule.js +128 -0
  222. package/lib/module/ECMAScriptModule.js.map +1 -0
  223. package/lib/module/ECMAScriptModuleCompiler.d.ts +31 -0
  224. package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
  225. package/lib/module/ECMAScriptModuleCompiler.js +521 -0
  226. package/lib/module/ECMAScriptModuleCompiler.js.map +1 -0
  227. package/lib/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
  228. package/lib/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
  229. package/lib/module/IECMAScriptModuleCompiledResult.js +2 -0
  230. package/lib/module/IECMAScriptModuleCompiledResult.js.map +1 -0
  231. package/lib/module/IECMAScriptModuleImport.d.ts +5 -0
  232. package/lib/module/IECMAScriptModuleImport.d.ts.map +1 -0
  233. package/lib/module/IECMAScriptModuleImport.js +2 -0
  234. package/lib/module/IECMAScriptModuleImport.js.map +1 -0
  235. package/lib/module/IModule.d.ts +21 -0
  236. package/lib/module/IModule.d.ts.map +1 -0
  237. package/lib/module/IModule.js +2 -0
  238. package/lib/module/IModule.js.map +1 -0
  239. package/lib/module/IModuleImportMap.d.ts +10 -0
  240. package/lib/module/IModuleImportMap.d.ts.map +1 -0
  241. package/lib/module/IModuleImportMap.js +2 -0
  242. package/lib/module/IModuleImportMap.js.map +1 -0
  243. package/lib/module/IModuleImportMapRule.d.ts +5 -0
  244. package/lib/module/IModuleImportMapRule.d.ts.map +1 -0
  245. package/lib/module/IModuleImportMapRule.js +2 -0
  246. package/lib/module/IModuleImportMapRule.js.map +1 -0
  247. package/lib/module/IModuleImportMapScope.d.ts +6 -0
  248. package/lib/module/IModuleImportMapScope.d.ts.map +1 -0
  249. package/lib/module/IModuleImportMapScope.js +2 -0
  250. package/lib/module/IModuleImportMapScope.js.map +1 -0
  251. package/lib/module/JSONModule.d.ts +33 -0
  252. package/lib/module/JSONModule.d.ts.map +1 -0
  253. package/lib/module/JSONModule.js +49 -0
  254. package/lib/module/JSONModule.js.map +1 -0
  255. package/lib/module/ModuleFactory.d.ts +33 -0
  256. package/lib/module/ModuleFactory.d.ts.map +1 -0
  257. package/lib/module/ModuleFactory.js +107 -0
  258. package/lib/module/ModuleFactory.js.map +1 -0
  259. package/lib/module/ModuleURLUtility.d.ts +17 -0
  260. package/lib/module/ModuleURLUtility.d.ts.map +1 -0
  261. package/lib/module/ModuleURLUtility.js +41 -0
  262. package/lib/module/ModuleURLUtility.js.map +1 -0
  263. package/lib/module/UnresolvedModule.d.ts +43 -0
  264. package/lib/module/UnresolvedModule.d.ts.map +1 -0
  265. package/lib/module/UnresolvedModule.js +67 -0
  266. package/lib/module/UnresolvedModule.js.map +1 -0
  267. package/lib/nodes/document/Document.d.ts +2 -0
  268. package/lib/nodes/document/Document.d.ts.map +1 -1
  269. package/lib/nodes/document/Document.js +1 -0
  270. package/lib/nodes/document/Document.js.map +1 -1
  271. package/lib/nodes/element/Element.d.ts +6 -0
  272. package/lib/nodes/element/Element.d.ts.map +1 -1
  273. package/lib/nodes/element/Element.js +21 -5
  274. package/lib/nodes/element/Element.js.map +1 -1
  275. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
  276. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  277. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +8 -0
  278. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  279. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
  280. package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
  281. package/lib/nodes/html-area-element/HTMLAreaElement.js +8 -0
  282. package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
  283. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  284. package/lib/nodes/html-element/HTMLElement.js +3 -0
  285. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  286. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  287. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +7 -3
  288. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  289. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
  290. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  291. package/lib/nodes/html-link-element/HTMLLinkElement.js +147 -19
  292. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  293. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
  294. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  295. package/lib/nodes/html-media-element/HTMLMediaElement.js +8 -0
  296. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  297. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
  298. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  299. package/lib/nodes/html-script-element/HTMLScriptElement.js +380 -46
  300. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  301. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
  302. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
  303. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js +0 -1
  304. package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js.map +1 -1
  305. package/lib/utilities/AttributeUtility.d.ts +18 -0
  306. package/lib/utilities/AttributeUtility.d.ts.map +1 -0
  307. package/lib/utilities/AttributeUtility.js +29 -0
  308. package/lib/utilities/AttributeUtility.js.map +1 -0
  309. package/lib/window/BrowserWindow.d.ts +14 -0
  310. package/lib/window/BrowserWindow.d.ts.map +1 -1
  311. package/lib/window/BrowserWindow.js +73 -6
  312. package/lib/window/BrowserWindow.js.map +1 -1
  313. package/package.json +1 -1
  314. package/src/PropertySymbol.ts +12 -0
  315. package/src/async-task-manager/AsyncTaskManager.ts +81 -19
  316. package/src/browser/BrowserSettingsFactory.ts +4 -0
  317. package/src/browser/DefaultBrowserSettings.ts +3 -0
  318. package/src/browser/types/IBrowserSettings.ts +7 -0
  319. package/src/browser/types/IOptionalBrowserSettings.ts +7 -0
  320. package/src/browser/utilities/BrowserFrameNavigator.ts +2 -7
  321. package/src/dom/DOMTokenList.ts +12 -4
  322. package/src/event/EventTarget.ts +31 -11
  323. package/src/fetch/Fetch.ts +82 -16
  324. package/src/fetch/Request.ts +132 -24
  325. package/src/fetch/ResourceFetch.ts +99 -14
  326. package/src/fetch/SyncFetch.ts +41 -9
  327. package/src/fetch/preload/PreloadEntry.ts +46 -0
  328. package/src/fetch/preload/PreloadUtility.ts +33 -0
  329. package/src/fetch/types/IRequestInit.ts +2 -0
  330. package/src/fetch/types/IRequestMode.ts +2 -0
  331. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +1 -1
  332. package/src/module/CSSModule.ts +54 -0
  333. package/src/module/ECMAScriptModule.ts +171 -0
  334. package/src/module/ECMAScriptModuleCompiler.ts +567 -0
  335. package/src/module/IECMAScriptModuleCompiledResult.ts +14 -0
  336. package/src/module/IECMAScriptModuleImport.ts +4 -0
  337. package/src/module/IModule.ts +20 -0
  338. package/src/module/IModuleImportMap.ts +10 -0
  339. package/src/module/IModuleImportMapRule.ts +4 -0
  340. package/src/module/IModuleImportMapScope.ts +6 -0
  341. package/src/module/JSONModule.ts +59 -0
  342. package/src/module/ModuleFactory.ts +134 -0
  343. package/src/module/ModuleURLUtility.ts +51 -0
  344. package/src/module/UnresolvedModule.ts +77 -0
  345. package/src/nodes/document/Document.ts +2 -0
  346. package/src/nodes/element/Element.ts +25 -7
  347. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +9 -0
  348. package/src/nodes/html-area-element/HTMLAreaElement.ts +9 -0
  349. package/src/nodes/html-element/HTMLElement.ts +3 -0
  350. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +9 -8
  351. package/src/nodes/html-link-element/HTMLLinkElement.ts +181 -28
  352. package/src/nodes/html-media-element/HTMLMediaElement.ts +9 -0
  353. package/src/nodes/html-script-element/HTMLScriptElement.ts +441 -69
  354. package/src/nodes/html-table-cell-element/HTMLTableCellElement.ts +0 -3
  355. package/src/utilities/AttributeUtility.ts +43 -0
  356. package/src/window/BrowserWindow.ts +77 -10
  357. package/cjs/window/WindowErrorUtility.cjs +0 -85
  358. package/cjs/window/WindowErrorUtility.cjs.map +0 -1
  359. package/cjs/window/WindowErrorUtility.d.ts +0 -27
  360. package/cjs/window/WindowErrorUtility.d.ts.map +0 -1
  361. package/lib/window/WindowErrorUtility.d.ts +0 -27
  362. package/lib/window/WindowErrorUtility.d.ts.map +0 -1
  363. package/lib/window/WindowErrorUtility.js +0 -56
  364. package/lib/window/WindowErrorUtility.js.map +0 -1
  365. package/src/window/WindowErrorUtility.ts +0 -68
@@ -196,7 +196,6 @@ import XMLSerializer from '../xml-serializer/XMLSerializer.js';
196
196
  import CrossOriginBrowserWindow from './CrossOriginBrowserWindow.js';
197
197
  import INodeJSGlobal from './INodeJSGlobal.js';
198
198
  import VMGlobalPropertyScript from './VMGlobalPropertyScript.js';
199
- import WindowErrorUtility from './WindowErrorUtility.js';
200
199
  import WindowPageOpenUtility from './WindowPageOpenUtility.js';
201
200
  import {
202
201
  PerformanceObserver,
@@ -307,6 +306,8 @@ import DOMPoint from '../dom/DOMPoint.js';
307
306
  import SVGAnimatedLengthList from '../svg/SVGAnimatedLengthList.js';
308
307
  import CustomElementReactionStack from '../custom-element/CustomElementReactionStack.js';
309
308
  import IScrollToOptions from './IScrollToOptions.js';
309
+ import IModule from '../module/IModule.js';
310
+ import IModuleImportMap from '../module/IModuleImportMap.js';
310
311
 
311
312
  const TIMER = {
312
313
  setTimeout: globalThis.setTimeout.bind(globalThis),
@@ -795,6 +796,16 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
795
796
  public [PropertySymbol.window]: BrowserWindow = this;
796
797
  public [PropertySymbol.internalId]: number = -1;
797
798
  public [PropertySymbol.customElementReactionStack] = new CustomElementReactionStack(this);
799
+ public [PropertySymbol.modules]: {
800
+ json: Map<string, IModule>;
801
+ css: Map<string, IModule>;
802
+ esm: Map<string, IModule>;
803
+ } = {
804
+ json: new Map(),
805
+ css: new Map(),
806
+ esm: new Map()
807
+ };
808
+ public [PropertySymbol.moduleImportMap]: IModuleImportMap | null = null;
798
809
 
799
810
  // Private properties
800
811
  #browserFrame: IBrowserFrame;
@@ -1311,7 +1322,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1311
1322
  zeroDelayTimeout.timeouts = null;
1312
1323
  for (const timeout of timeouts) {
1313
1324
  if (useTryCatch) {
1314
- WindowErrorUtility.captureError(this, () => timeout.callback());
1325
+ let result: any;
1326
+ try {
1327
+ result = timeout.callback();
1328
+ } catch (error) {
1329
+ this[PropertySymbol.dispatchError](error);
1330
+ }
1331
+ if (result instanceof Promise) {
1332
+ result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
1333
+ }
1315
1334
  } else {
1316
1335
  timeout.callback();
1317
1336
  }
@@ -1339,7 +1358,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1339
1358
  // We need to call endTimer() before the callback as the callback might throw an error.
1340
1359
  this.#browserFrame[PropertySymbol.asyncTaskManager].endTimer(id);
1341
1360
  if (useTryCatch) {
1342
- WindowErrorUtility.captureError(this, () => callback(...args));
1361
+ let result: any;
1362
+ try {
1363
+ result = callback(...args);
1364
+ } catch (error) {
1365
+ this[PropertySymbol.dispatchError](error);
1366
+ }
1367
+ if (result instanceof Promise) {
1368
+ result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
1369
+ }
1343
1370
  } else {
1344
1371
  callback(...args);
1345
1372
  }
@@ -1399,11 +1426,19 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1399
1426
  const id = TIMER.setInterval(
1400
1427
  () => {
1401
1428
  if (useTryCatch) {
1402
- WindowErrorUtility.captureError(
1403
- this,
1404
- () => callback(...args),
1405
- () => this.clearInterval(id)
1406
- );
1429
+ let result: any;
1430
+ try {
1431
+ result = callback(...args);
1432
+ } catch (error) {
1433
+ this.clearInterval(id);
1434
+ this[PropertySymbol.dispatchError](error);
1435
+ }
1436
+ if (result instanceof Promise) {
1437
+ result.catch((error: Error) => {
1438
+ this.clearInterval(id);
1439
+ this[PropertySymbol.dispatchError](error);
1440
+ });
1441
+ }
1407
1442
  } else {
1408
1443
  callback(...args);
1409
1444
  }
@@ -1466,7 +1501,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1466
1501
  // We need to call endImmediate() before the callback as the callback might throw an error.
1467
1502
  this.#browserFrame[PropertySymbol.asyncTaskManager].endImmediate(id);
1468
1503
  if (useTryCatch) {
1469
- WindowErrorUtility.captureError(this, () => callback(this.performance.now()));
1504
+ let result: any;
1505
+ try {
1506
+ result = callback(this.performance.now());
1507
+ } catch (error) {
1508
+ this[PropertySymbol.dispatchError](error);
1509
+ }
1510
+ if (result instanceof Promise) {
1511
+ result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
1512
+ }
1470
1513
  } else {
1471
1514
  callback(this.performance.now());
1472
1515
  }
@@ -1513,7 +1556,15 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1513
1556
  // We need to call endTask() before the callback as the callback might throw an error.
1514
1557
  this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskId);
1515
1558
  if (useTryCatch) {
1516
- WindowErrorUtility.captureError(this, <() => unknown>callback);
1559
+ let result: any;
1560
+ try {
1561
+ result = callback();
1562
+ } catch (error) {
1563
+ this[PropertySymbol.dispatchError](error);
1564
+ }
1565
+ if (result instanceof Promise) {
1566
+ result.catch((error: Error) => this[PropertySymbol.dispatchError](error));
1567
+ }
1517
1568
  } else {
1518
1569
  callback();
1519
1570
  }
@@ -1665,6 +1716,16 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1665
1716
  }
1666
1717
  }
1667
1718
 
1719
+ /**
1720
+ * Dispatches an error event and outputs the error to the console.
1721
+ *
1722
+ * @param error Error.
1723
+ */
1724
+ public [PropertySymbol.dispatchError](error: Error): void {
1725
+ this.#browserFrame?.page?.console.error(error);
1726
+ this.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
1727
+ }
1728
+
1668
1729
  /**
1669
1730
  * Setup of VM context.
1670
1731
  */
@@ -1731,6 +1792,12 @@ export default class BrowserWindow extends EventTarget implements INodeJSGlobal
1731
1792
  this.history[PropertySymbol.destroy]();
1732
1793
  }
1733
1794
 
1795
+ this[PropertySymbol.modules].json.clear();
1796
+ this[PropertySymbol.modules].css.clear();
1797
+ this[PropertySymbol.modules].esm.clear();
1798
+
1799
+ this.document[PropertySymbol.preloads].clear();
1800
+
1734
1801
  this.document[PropertySymbol.activeElement] = null;
1735
1802
  this.document[PropertySymbol.nextActiveElement] = null;
1736
1803
  this.document[PropertySymbol.currentScript] = null;
@@ -1,85 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const PropertySymbol = __importStar(require("../PropertySymbol.cjs"));
30
- const ErrorEvent_js_1 = __importDefault(require("../event/events/ErrorEvent.cjs"));
31
- /**
32
- * Error utility.
33
- */
34
- class WindowErrorUtility {
35
- /**
36
- * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
37
- * If the callback returns a Promise, it will catch errors from the promise.
38
- *
39
- * It will also output the errors to the console.
40
- *
41
- * @param elementOrWindow Element or Window.
42
- * @param callback Callback.
43
- * @param [cleanup] Cleanup callback on error.
44
- * @returns Result.
45
- */
46
- static captureError(elementOrWindow, callback, cleanup) {
47
- let result = null;
48
- try {
49
- result = callback();
50
- }
51
- catch (error) {
52
- this.dispatchError(elementOrWindow, error);
53
- if (cleanup) {
54
- cleanup();
55
- }
56
- }
57
- if (result && result instanceof Promise) {
58
- result.catch((error) => {
59
- this.dispatchError(elementOrWindow, error);
60
- if (cleanup) {
61
- cleanup();
62
- }
63
- });
64
- }
65
- return result;
66
- }
67
- /**
68
- * Dispatches an error event and outputs it to the console.
69
- *
70
- * @param elementOrWindow Element or Window.
71
- * @param error Error.
72
- */
73
- static dispatchError(elementOrWindow, error) {
74
- if (elementOrWindow.console) {
75
- elementOrWindow.console.error(error);
76
- elementOrWindow.dispatchEvent(new ErrorEvent_js_1.default('error', { message: error.message, error }));
77
- }
78
- else {
79
- elementOrWindow[PropertySymbol.ownerDocument][PropertySymbol.defaultView]?.console.error(error);
80
- elementOrWindow.dispatchEvent(new ErrorEvent_js_1.default('error', { message: error.message, error }));
81
- }
82
- }
83
- }
84
- exports.default = WindowErrorUtility;
85
- //# sourceMappingURL=WindowErrorUtility.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WindowErrorUtility.cjs","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAAuD;AACvD,kFAAuD;AAGvD;;GAEG;AACH,MAAqB,kBAAkB;IACtC;;;;;;;;;;OAUG;IACI,MAAM,CAAC,YAAY,CACzB,eAAwC,EACxC,QAAiB,EACjB,OAAoB;QAEpB,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACJ,MAAM,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACX,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,eAAwC,EAAE,KAAY;QACjF,IAAoB,eAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,eAAe,CAAC,aAAa,CAAC,IAAI,uBAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACG,eAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CACvD,cAAc,CAAC,WAAW,CAC1B,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACd,eAAgB,CAAC,aAAa,CACvC,IAAI,uBAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;CACD;AA3DD,qCA2DC"}
@@ -1,27 +0,0 @@
1
- import BrowserWindow from './BrowserWindow.cjs';
2
- import Element from '../nodes/element/Element.cjs';
3
- /**
4
- * Error utility.
5
- */
6
- export default class WindowErrorUtility {
7
- /**
8
- * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
9
- * If the callback returns a Promise, it will catch errors from the promise.
10
- *
11
- * It will also output the errors to the console.
12
- *
13
- * @param elementOrWindow Element or Window.
14
- * @param callback Callback.
15
- * @param [cleanup] Cleanup callback on error.
16
- * @returns Result.
17
- */
18
- static captureError<T>(elementOrWindow: BrowserWindow | Element, callback: () => T, cleanup?: () => void): T | null;
19
- /**
20
- * Dispatches an error event and outputs it to the console.
21
- *
22
- * @param elementOrWindow Element or Window.
23
- * @param error Error.
24
- */
25
- static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void;
26
- }
27
- //# sourceMappingURL=WindowErrorUtility.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WindowErrorUtility.d.ts","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;WACW,YAAY,CAAC,CAAC,EAC3B,eAAe,EAAE,aAAa,GAAG,OAAO,EACxC,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,MAAM,IAAI,GAClB,CAAC,GAAG,IAAI;IAwBX;;;;;OAKG;WACW,aAAa,CAAC,eAAe,EAAE,aAAa,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAazF"}
@@ -1,27 +0,0 @@
1
- import BrowserWindow from './BrowserWindow.js';
2
- import Element from '../nodes/element/Element.js';
3
- /**
4
- * Error utility.
5
- */
6
- export default class WindowErrorUtility {
7
- /**
8
- * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
9
- * If the callback returns a Promise, it will catch errors from the promise.
10
- *
11
- * It will also output the errors to the console.
12
- *
13
- * @param elementOrWindow Element or Window.
14
- * @param callback Callback.
15
- * @param [cleanup] Cleanup callback on error.
16
- * @returns Result.
17
- */
18
- static captureError<T>(elementOrWindow: BrowserWindow | Element, callback: () => T, cleanup?: () => void): T | null;
19
- /**
20
- * Dispatches an error event and outputs it to the console.
21
- *
22
- * @param elementOrWindow Element or Window.
23
- * @param error Error.
24
- */
25
- static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void;
26
- }
27
- //# sourceMappingURL=WindowErrorUtility.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WindowErrorUtility.d.ts","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;WACW,YAAY,CAAC,CAAC,EAC3B,eAAe,EAAE,aAAa,GAAG,OAAO,EACxC,QAAQ,EAAE,MAAM,CAAC,EACjB,OAAO,CAAC,EAAE,MAAM,IAAI,GAClB,CAAC,GAAG,IAAI;IAwBX;;;;;OAKG;WACW,aAAa,CAAC,eAAe,EAAE,aAAa,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAazF"}
@@ -1,56 +0,0 @@
1
- import * as PropertySymbol from '../PropertySymbol.js';
2
- import ErrorEvent from '../event/events/ErrorEvent.js';
3
- /**
4
- * Error utility.
5
- */
6
- export default class WindowErrorUtility {
7
- /**
8
- * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
9
- * If the callback returns a Promise, it will catch errors from the promise.
10
- *
11
- * It will also output the errors to the console.
12
- *
13
- * @param elementOrWindow Element or Window.
14
- * @param callback Callback.
15
- * @param [cleanup] Cleanup callback on error.
16
- * @returns Result.
17
- */
18
- static captureError(elementOrWindow, callback, cleanup) {
19
- let result = null;
20
- try {
21
- result = callback();
22
- }
23
- catch (error) {
24
- this.dispatchError(elementOrWindow, error);
25
- if (cleanup) {
26
- cleanup();
27
- }
28
- }
29
- if (result && result instanceof Promise) {
30
- result.catch((error) => {
31
- this.dispatchError(elementOrWindow, error);
32
- if (cleanup) {
33
- cleanup();
34
- }
35
- });
36
- }
37
- return result;
38
- }
39
- /**
40
- * Dispatches an error event and outputs it to the console.
41
- *
42
- * @param elementOrWindow Element or Window.
43
- * @param error Error.
44
- */
45
- static dispatchError(elementOrWindow, error) {
46
- if (elementOrWindow.console) {
47
- elementOrWindow.console.error(error);
48
- elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
49
- }
50
- else {
51
- elementOrWindow[PropertySymbol.ownerDocument][PropertySymbol.defaultView]?.console.error(error);
52
- elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
53
- }
54
- }
55
- }
56
- //# sourceMappingURL=WindowErrorUtility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WindowErrorUtility.js","sourceRoot":"","sources":["../../src/window/WindowErrorUtility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAGvD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;;;;;;;OAUG;IACI,MAAM,CAAC,YAAY,CACzB,eAAwC,EACxC,QAAiB,EACjB,OAAoB;QAEpB,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACJ,MAAM,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;gBACX,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,eAAwC,EAAE,KAAY;QACjF,IAAoB,eAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,eAAe,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACG,eAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CACvD,cAAc,CAAC,WAAW,CAC1B,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACd,eAAgB,CAAC,aAAa,CACvC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
@@ -1,68 +0,0 @@
1
- import BrowserWindow from './BrowserWindow.js';
2
- import * as PropertySymbol from '../PropertySymbol.js';
3
- import ErrorEvent from '../event/events/ErrorEvent.js';
4
- import Element from '../nodes/element/Element.js';
5
-
6
- /**
7
- * Error utility.
8
- */
9
- export default class WindowErrorUtility {
10
- /**
11
- * Calls a function synchronously wrapped in a try/catch block to capture errors and dispatch error events.
12
- * If the callback returns a Promise, it will catch errors from the promise.
13
- *
14
- * It will also output the errors to the console.
15
- *
16
- * @param elementOrWindow Element or Window.
17
- * @param callback Callback.
18
- * @param [cleanup] Cleanup callback on error.
19
- * @returns Result.
20
- */
21
- public static captureError<T>(
22
- elementOrWindow: BrowserWindow | Element,
23
- callback: () => T,
24
- cleanup?: () => void
25
- ): T | null {
26
- let result = null;
27
-
28
- try {
29
- result = callback();
30
- } catch (error) {
31
- this.dispatchError(elementOrWindow, error);
32
- if (cleanup) {
33
- cleanup();
34
- }
35
- }
36
-
37
- if (result && result instanceof Promise) {
38
- result.catch((error) => {
39
- this.dispatchError(elementOrWindow, error);
40
- if (cleanup) {
41
- cleanup();
42
- }
43
- });
44
- }
45
-
46
- return result;
47
- }
48
-
49
- /**
50
- * Dispatches an error event and outputs it to the console.
51
- *
52
- * @param elementOrWindow Element or Window.
53
- * @param error Error.
54
- */
55
- public static dispatchError(elementOrWindow: BrowserWindow | Element, error: Error): void {
56
- if ((<BrowserWindow>elementOrWindow).console) {
57
- (<BrowserWindow>elementOrWindow).console.error(error);
58
- elementOrWindow.dispatchEvent(new ErrorEvent('error', { message: error.message, error }));
59
- } else {
60
- (<Element>elementOrWindow)[PropertySymbol.ownerDocument][
61
- PropertySymbol.defaultView
62
- ]?.console.error(error);
63
- (<Element>elementOrWindow).dispatchEvent(
64
- new ErrorEvent('error', { message: error.message, error })
65
- );
66
- }
67
- }
68
- }