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
@@ -0,0 +1,36 @@
1
+ import BrowserWindow from '../window/BrowserWindow.cjs';
2
+ import { URL } from 'url';
3
+ import IModule from './IModule.cjs';
4
+ import * as PropertySymbol from '../PropertySymbol.cjs';
5
+ import Location from '../location/Location.cjs';
6
+ /**
7
+ * ECMAScript module.
8
+ */
9
+ export default class ECMAScriptModule implements IModule {
10
+ #private;
11
+ readonly url: URL;
12
+ readonly [PropertySymbol.window]: BrowserWindow;
13
+ /**
14
+ * Constructor.
15
+ *
16
+ * @param window Window.
17
+ * @param url Module URL.
18
+ * @param source Source code.
19
+ */
20
+ constructor(window: BrowserWindow, url: URL | Location, source: string);
21
+ /**
22
+ * Compiles and evaluates the module.
23
+ *
24
+ * @returns Module exports.
25
+ */
26
+ evaluate(): Promise<{
27
+ [key: string]: any;
28
+ } | null>;
29
+ /**
30
+ * Compiles and preloads the module and its imports.
31
+ *
32
+ * @returns Promise.
33
+ */
34
+ preload(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=ECMAScriptModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECMAScriptModule.d.ts","sourceRoot":"","sources":["../../src/module/ECMAScriptModule.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAO/C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,OAAO;;IACvD,SAAgB,GAAG,EAAE,GAAG,CAAC;IACzB,SAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAMvD;;;;;;OAMG;gBACS,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM;IAMtE;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;IA4C/D;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgFrC"}
@@ -0,0 +1,550 @@
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 BrowserErrorCaptureEnum_js_1 = __importDefault(require("../browser/enums/BrowserErrorCaptureEnum.cjs"));
30
+ const WindowBrowserContext_js_1 = __importDefault(require("../window/WindowBrowserContext.cjs"));
31
+ const ModuleURLUtility_js_1 = __importDefault(require("./ModuleURLUtility.cjs"));
32
+ const PropertySymbol = __importStar(require("../PropertySymbol.cjs"));
33
+ /**
34
+ * Code regexp.
35
+ *
36
+ * Group 1: Import without exported properties.
37
+ * Group 2: Dynamic import function call.
38
+ * Group 3: Import exported variables.
39
+ * Group 4: Import exported url.
40
+ * Group 5: Import with group.
41
+ * Group 6: Import with type.
42
+ * Group 7: Modules in export from module statement.
43
+ * Group 8: Import in export from module statement.
44
+ * Group 9: Export default statement.
45
+ * Group 10: Export function or class type.
46
+ * Group 11: Export function or class name.
47
+ * Group 12: Export object.
48
+ * Group 13: Export variable type (var, let or const).
49
+ * Group 14: Export variable name.
50
+ * Group 15: Export variable name end character (= or ;).
51
+ * Group 16: Slash (RegExp or comment).
52
+ * Group 17: Parentheses.
53
+ * Group 18: Curly braces.
54
+ * Group 19: Square brackets.
55
+ * Group 20: Escape template string (${).
56
+ * Group 21: Template string apostrophe (`).
57
+ * Group 22: String apostrophe (').
58
+ * Group 23: String apostrophe (").
59
+ * Group 24: Line feed character.
60
+ */
61
+ const CODE_REGEXP = /import\s*["']([^"']+)["'];{0,1}|import\s*\(([^)]+)\)|(import[\s{])|[\s}]from\s*["']([^"']+)["'](\s+with\s*{\s*type\s*:\s*["']([^"']+)["']\s*}){0,1}|export\s([a-zA-Z0-9-_$]+|\*|\*\s+as\s+["'a-zA-Z0-9-_$]+|{[^}]+})\s*from\s["']([^"']+)["']|(export\s*default\s*)|export\s*(function\*{0,1}|class)\s*([^({\s]+)|export\s*{([^}]+)}|export\s+(var|let|const)\s+([^=;]+)(=|;)|(\/)|(\(|\))|({|})|(\[|\])|(\${)|(`)|(')|(")|(\n)/gm;
62
+ /**
63
+ * Import regexp.
64
+ *
65
+ * Group 1: Import braces.
66
+ * Group 2: Import all as.
67
+ * Group 3: Import default.
68
+ */
69
+ const IMPORT_REGEXP = /{([^}]+)}|\*\s+as\s+([a-zA-Z0-9-_$]+)|([a-zA-Z0-9-_$]+)/gm;
70
+ /**
71
+ * Valid preceding token before a statement.
72
+ */
73
+ const PRECEDING_STATEMENT_TOKEN_REGEXP = /['"`(){}\s;=>]/;
74
+ /**
75
+ * Valid preceding token before a regexp.
76
+ */
77
+ const PRECEDING_REGEXP_TOKEN_REGEXP = /[([=\{\},;"'+-]/;
78
+ /**
79
+ * Multiline comment regexp.
80
+ */
81
+ const MULTILINE_COMMENT_REGEXP = /\/\*|\*\//gm;
82
+ /**
83
+ * ECMAScript module compiler.
84
+ */
85
+ class ECMAScriptModuleCompiler {
86
+ window;
87
+ /**
88
+ * Constructor.
89
+ *
90
+ * @param window Window.
91
+ * @param url Module URL.
92
+ */
93
+ constructor(window) {
94
+ this.window = window;
95
+ }
96
+ /**
97
+ * Compiles code and returns imports and compiled code.
98
+ *
99
+ * @param moduleURL Module URL.
100
+ * @param code Code.
101
+ * @returns Result.
102
+ */
103
+ compile(moduleURL, code) {
104
+ const browserSettings = new WindowBrowserContext_js_1.default(this.window).getSettings();
105
+ const regExp = new RegExp(CODE_REGEXP);
106
+ const imports = [];
107
+ const count = {
108
+ comment: 0,
109
+ singleLineComment: 0,
110
+ parantheses: 0,
111
+ curlyBraces: 0,
112
+ squareBrackets: 0,
113
+ regExp: 0,
114
+ regExpSquareBrackets: 0,
115
+ escapeTemplateString: 0,
116
+ simpleString: 0,
117
+ doubleString: 0
118
+ };
119
+ const stack = {
120
+ templateString: { index: null, code: [] }
121
+ };
122
+ const templateString = [];
123
+ const exportSpreadVariables = [];
124
+ let newCode = `(async function anonymous($happy_dom) {\n//# sourceURL=${moduleURL}\n`;
125
+ let match;
126
+ let precedingToken;
127
+ let isEscaped;
128
+ let lastIndex = 0;
129
+ let importStartIndex = -1;
130
+ let skipMatchedCode = false;
131
+ if (!browserSettings.disableErrorCapturing &&
132
+ browserSettings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch) {
133
+ newCode += 'try {\n';
134
+ }
135
+ while ((match = regExp.exec(code))) {
136
+ if (importStartIndex === -1) {
137
+ newCode += code.substring(lastIndex, match.index);
138
+ }
139
+ precedingToken = code[match.index - 1] || ' ';
140
+ isEscaped = precedingToken === '\\' && code[match.index - 2] !== '\\';
141
+ // Imports and exports are only valid outside any statement, string or comment at the top level
142
+ if (count.comment === 0 &&
143
+ count.singleLineComment === 0 &&
144
+ count.parantheses === 0 &&
145
+ count.curlyBraces === 0 &&
146
+ count.squareBrackets === 0 &&
147
+ count.regExp === 0 &&
148
+ count.simpleString === 0 &&
149
+ count.doubleString === 0 &&
150
+ templateString.length === 0) {
151
+ if (match[1] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
152
+ // Import without exported properties
153
+ imports.push({
154
+ url: ModuleURLUtility_js_1.default.getURL(this.window, moduleURL, match[1]).href,
155
+ type: 'esm'
156
+ });
157
+ skipMatchedCode = true;
158
+ }
159
+ else if (match[3] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
160
+ // Import statement start
161
+ if (importStartIndex !== -1) {
162
+ throw new this.window.TypeError(`Failed to parse module: Unexpected import statement in "${moduleURL}"`);
163
+ }
164
+ importStartIndex = match.index + match[0].length - 1;
165
+ skipMatchedCode = true;
166
+ }
167
+ else if (match[4]) {
168
+ // Import statement end
169
+ if (importStartIndex !== -1) {
170
+ const url = ModuleURLUtility_js_1.default.getURL(this.window, moduleURL, match[4]).href;
171
+ const variables = code.substring(importStartIndex, match.index + 1);
172
+ const importRegExp = new RegExp(IMPORT_REGEXP);
173
+ const importCode = [];
174
+ let importMatch;
175
+ while ((importMatch = importRegExp.exec(variables))) {
176
+ if (importMatch[1]) {
177
+ // Import braces
178
+ importCode.push(`const {${importMatch[1].replace(/\s+as\s+/gm, ': ')}} = $happy_dom.imports.get('${url}')`);
179
+ }
180
+ else if (importMatch[2]) {
181
+ // Import all as
182
+ importCode.push(`const ${importMatch[2]} = $happy_dom.imports.get('${url}')`);
183
+ }
184
+ else if (importMatch[3]) {
185
+ // Import default
186
+ importCode.push(`const ${importMatch[3]} = $happy_dom.imports.get('${url}').default`);
187
+ }
188
+ }
189
+ newCode += importCode.join(';\n');
190
+ importStartIndex = -1;
191
+ imports.push({ url, type: match[6] || 'esm' });
192
+ skipMatchedCode = true;
193
+ }
194
+ }
195
+ else if (match[7] && match[8] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
196
+ // Export from module statement
197
+ const url = ModuleURLUtility_js_1.default.getURL(this.window, moduleURL, match[8]).href;
198
+ const imported = match[7];
199
+ if (imported === '*') {
200
+ newCode += `Object.assign($happy_dom.exports, $happy_dom.imports.get('${url}'))`;
201
+ imports.push({ url, type: 'esm' });
202
+ }
203
+ else if (imported[0] === '*') {
204
+ const parts = imported.split(/\s+as\s+/);
205
+ if (parts.length === 2) {
206
+ const exportName = parts[1].replace(/["']/g, '');
207
+ newCode += `$happy_dom.exports['${exportName}'] = $happy_dom.imports.get('${url}')`;
208
+ imports.push({ url, type: 'esm' });
209
+ }
210
+ }
211
+ else if (imported[0] === '{') {
212
+ const parts = this.removeMultilineComments(imported)
213
+ .slice(1, -1)
214
+ .split(/\s*,\s*/);
215
+ const exportCode = [];
216
+ for (const part of parts) {
217
+ const nameParts = part.trim().split(/\s+as\s+/);
218
+ const exportName = (nameParts[1] || nameParts[0]).replace(/["']/g, '');
219
+ const importName = nameParts[0].replace(/["']/g, '');
220
+ if (exportName && importName) {
221
+ exportCode.push(`$happy_dom.exports['${exportName}'] = $happy_dom.imports.get('${url}')['${importName}']`);
222
+ }
223
+ }
224
+ newCode += exportCode.join(';\n');
225
+ imports.push({ url, type: 'esm' });
226
+ }
227
+ skipMatchedCode = true;
228
+ }
229
+ else if (match[9] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
230
+ // Export default statement
231
+ newCode += '$happy_dom.exports.default = ';
232
+ skipMatchedCode = true;
233
+ }
234
+ else if (match[10] &&
235
+ match[11] &&
236
+ PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
237
+ // Export function or class type
238
+ newCode += `$happy_dom.exports['${match[11]}'] = ${match[10]} ${match[11]}`;
239
+ skipMatchedCode = true;
240
+ }
241
+ else if (match[12] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
242
+ // Export object
243
+ const parts = this.removeMultilineComments(match[12]).split(/\s*,\s*/);
244
+ const exportCode = [];
245
+ for (const part of parts) {
246
+ const nameParts = part.trim().split(/\s+as\s+/);
247
+ const exportName = (nameParts[1] || nameParts[0]).replace(/["']/g, '');
248
+ const importName = nameParts[0].replace(/["']/g, '');
249
+ if (exportName && importName) {
250
+ exportCode.push(`$happy_dom.exports['${exportName}'] = ${importName}`);
251
+ }
252
+ }
253
+ newCode += exportCode.join(';\n');
254
+ skipMatchedCode = true;
255
+ }
256
+ else if (match[13] && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
257
+ // Export variable
258
+ if (match[15] === '=') {
259
+ const exportName = this.removeMultilineComments(match[14]).trim();
260
+ if ((exportName[0] === '{' && exportName[exportName.length - 1] === '}') ||
261
+ (exportName[0] === '[' && exportName[exportName.length - 1] === ']')) {
262
+ const parts = exportName.slice(1, -1).split(/\s*,\s*/);
263
+ const variableObject = new Map();
264
+ for (const part of parts) {
265
+ const nameParts = part.trim().split(/\s*:\s*/);
266
+ const exportName = (nameParts[1] || nameParts[0]).replace(/["']/g, '');
267
+ const importName = nameParts[0].replace(/["']/g, '');
268
+ if (exportName && importName) {
269
+ variableObject.set(exportName, importName);
270
+ }
271
+ }
272
+ newCode += `const $happy_dom_export_${exportSpreadVariables.length} =`;
273
+ exportSpreadVariables.push(variableObject);
274
+ }
275
+ else {
276
+ newCode += `$happy_dom.exports['${exportName}'] =`;
277
+ }
278
+ }
279
+ else {
280
+ // TODO: If there is no =, we should ignore until we know what is is useful for
281
+ // Example: export let name1, name2, name3;
282
+ newCode += `/*Unknown export: ${match[0]}*/`;
283
+ this.window.console.warn(`Unknown export in "${moduleURL}": ${match[0]}`);
284
+ }
285
+ skipMatchedCode = true;
286
+ }
287
+ }
288
+ if (match[2]) {
289
+ // Dynamic import function call
290
+ if (count.simpleString === 0 &&
291
+ count.doubleString === 0 &&
292
+ count.comment === 0 &&
293
+ count.singleLineComment === 0 &&
294
+ count.regExp === 0 &&
295
+ (templateString.length === 0 || templateString[0] > 0) &&
296
+ PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) {
297
+ newCode += `$happy_dom.dynamicImport(${match[2]})`;
298
+ skipMatchedCode = true;
299
+ }
300
+ }
301
+ else if (match[16]) {
302
+ // Slash (RegExp or Comment)
303
+ if (count.simpleString === 0 &&
304
+ count.doubleString === 0 &&
305
+ count.singleLineComment === 0 &&
306
+ count.regExpSquareBrackets === 0 &&
307
+ (templateString.length === 0 || templateString[0] > 0)) {
308
+ if (count.comment === 1) {
309
+ if (precedingToken === '*') {
310
+ count.comment = 0;
311
+ }
312
+ }
313
+ else {
314
+ if (count.regExp === 0) {
315
+ if (code[match.index + 1] === '*') {
316
+ count.comment = 1;
317
+ }
318
+ else if (code[match.index + 1] === '/') {
319
+ count.singleLineComment = 1;
320
+ }
321
+ else {
322
+ if (!isEscaped) {
323
+ let index = match.index - 1;
324
+ let nonSpacePrecedingToken = code[index];
325
+ while (nonSpacePrecedingToken === ' ' || nonSpacePrecedingToken === '\n') {
326
+ index--;
327
+ nonSpacePrecedingToken = code[index];
328
+ }
329
+ if (PRECEDING_REGEXP_TOKEN_REGEXP.test(nonSpacePrecedingToken)) {
330
+ count.regExp = 1;
331
+ }
332
+ }
333
+ }
334
+ }
335
+ else if (!isEscaped) {
336
+ count.regExp = 0;
337
+ }
338
+ }
339
+ }
340
+ }
341
+ else if (match[17]) {
342
+ // Parentheses
343
+ if (count.simpleString === 0 &&
344
+ count.doubleString === 0 &&
345
+ count.regExp === 0 &&
346
+ count.comment === 0 &&
347
+ count.singleLineComment === 0 &&
348
+ (templateString.length === 0 || templateString[0] > 0)) {
349
+ if (match[17] === '(') {
350
+ count.parantheses++;
351
+ }
352
+ else if (match[17] === ')' && count.parantheses > 0) {
353
+ count.parantheses--;
354
+ }
355
+ }
356
+ }
357
+ else if (match[18]) {
358
+ // Curly braces
359
+ if (count.simpleString === 0 &&
360
+ count.doubleString === 0 &&
361
+ count.regExp === 0 &&
362
+ count.comment === 0 &&
363
+ count.singleLineComment === 0 &&
364
+ (templateString.length === 0 || templateString[0] > 0)) {
365
+ if (match[18] === '{') {
366
+ if (templateString.length) {
367
+ templateString[0]++;
368
+ }
369
+ count.curlyBraces++;
370
+ }
371
+ else if (match[18] === '}') {
372
+ if (templateString.length && templateString[0] > 0) {
373
+ templateString[0]--;
374
+ }
375
+ if (count.curlyBraces > 0) {
376
+ count.curlyBraces--;
377
+ }
378
+ }
379
+ }
380
+ }
381
+ else if (match[19]) {
382
+ // Square brackets
383
+ if (count.simpleString === 0 &&
384
+ count.doubleString === 0 &&
385
+ count.comment === 0 &&
386
+ count.singleLineComment === 0 &&
387
+ (templateString.length === 0 || templateString[0] > 0)) {
388
+ // We need to check for square brackets in RegExp as well to know when the RegExp ends
389
+ if (count.regExp === 1) {
390
+ if (!isEscaped) {
391
+ if (match[19] === '[' && count.regExpSquareBrackets === 0) {
392
+ count.regExpSquareBrackets = 1;
393
+ }
394
+ else if (match[19] === ']' && count.regExpSquareBrackets === 1) {
395
+ count.regExpSquareBrackets = 0;
396
+ }
397
+ }
398
+ }
399
+ else {
400
+ if (match[19] === '[') {
401
+ count.squareBrackets++;
402
+ }
403
+ else if (match[19] === ']' && count.squareBrackets > 0) {
404
+ count.squareBrackets--;
405
+ }
406
+ }
407
+ }
408
+ }
409
+ else if (match[20]) {
410
+ // Escape template string (${)
411
+ if (count.simpleString === 0 &&
412
+ count.doubleString === 0 &&
413
+ count.comment === 0 &&
414
+ count.singleLineComment === 0 &&
415
+ count.regExp === 0 &&
416
+ !isEscaped) {
417
+ if (templateString.length > 0) {
418
+ templateString[0]++;
419
+ }
420
+ count.curlyBraces++;
421
+ }
422
+ }
423
+ else if (match[21]) {
424
+ // Template string
425
+ if (count.simpleString === 0 &&
426
+ count.doubleString === 0 &&
427
+ count.comment === 0 &&
428
+ count.singleLineComment === 0 &&
429
+ count.regExp === 0 &&
430
+ !isEscaped) {
431
+ if (templateString?.[0] == 0) {
432
+ templateString.shift();
433
+ stack.templateString.code.push(code.substring(stack.templateString.index, match.index + 1));
434
+ }
435
+ else {
436
+ templateString.unshift(0);
437
+ stack.templateString.index = match.index;
438
+ }
439
+ }
440
+ }
441
+ else if (match[22]) {
442
+ // String apostrophe (')
443
+ if (count.doubleString === 0 &&
444
+ count.comment === 0 &&
445
+ count.singleLineComment === 0 &&
446
+ count.regExp === 0 &&
447
+ !isEscaped &&
448
+ (templateString.length === 0 || templateString[0] > 0)) {
449
+ if (count.simpleString === 0) {
450
+ count.simpleString = 1;
451
+ }
452
+ else {
453
+ count.simpleString = 0;
454
+ }
455
+ }
456
+ }
457
+ else if (match[23]) {
458
+ // String apostrophe (")
459
+ if (count.simpleString === 0 &&
460
+ count.comment === 0 &&
461
+ count.singleLineComment === 0 &&
462
+ count.regExp === 0 &&
463
+ !isEscaped &&
464
+ (templateString.length === 0 || templateString[0] > 0)) {
465
+ if (count.doubleString === 0) {
466
+ count.doubleString = 1;
467
+ }
468
+ else {
469
+ count.doubleString = 0;
470
+ }
471
+ }
472
+ }
473
+ else if (match[24]) {
474
+ // Line feed character
475
+ count.singleLineComment = 0;
476
+ }
477
+ // Unless the code has been handled by transforming imports or exports, we add it to the new code
478
+ if (!skipMatchedCode && importStartIndex === -1) {
479
+ newCode += match[0];
480
+ }
481
+ skipMatchedCode = false;
482
+ lastIndex = regExp.lastIndex;
483
+ }
484
+ if (importStartIndex !== -1) {
485
+ // We will end up here if there is an import statement without a valid "from" part
486
+ // E.g. "import defaultExport from invalid;" or just "import defaultExport;"
487
+ throw new this.window.TypeError(`Failed to parse module: Unexpected import statement in "${moduleURL}"`);
488
+ }
489
+ newCode += code.substring(lastIndex);
490
+ if (exportSpreadVariables.length > 0) {
491
+ newCode += '\n\n';
492
+ for (let i = 0; i < exportSpreadVariables.length; i++) {
493
+ for (const [exportName, importName] of exportSpreadVariables[i]) {
494
+ newCode += `$happy_dom.exports['${exportName}'] = $happy_dom_export_${i}['${importName}'];\n`;
495
+ }
496
+ }
497
+ }
498
+ if (!browserSettings.disableErrorCapturing &&
499
+ browserSettings.errorCapture === BrowserErrorCaptureEnum_js_1.default.tryAndCatch) {
500
+ newCode += `\n} catch(e) {\n $happy_dom.dispatchError(e);\n}`;
501
+ }
502
+ newCode += '\n})';
503
+ try {
504
+ return { imports, execute: this.window.eval(newCode) };
505
+ }
506
+ catch (e) {
507
+ const error = new this.window.SyntaxError(`Failed to parse module '${moduleURL}': ${e.message}`);
508
+ if (browserSettings.disableErrorCapturing ||
509
+ browserSettings.errorCapture !== BrowserErrorCaptureEnum_js_1.default.tryAndCatch) {
510
+ throw error;
511
+ }
512
+ else {
513
+ this.window[PropertySymbol.dispatchError](error);
514
+ return {
515
+ imports,
516
+ execute: () => { }
517
+ };
518
+ }
519
+ }
520
+ }
521
+ /**
522
+ * Remove multiline comments.
523
+ *
524
+ * @param code Code.
525
+ * @returns Code without multiline comments.
526
+ */
527
+ removeMultilineComments(code) {
528
+ const regexp = new RegExp(MULTILINE_COMMENT_REGEXP);
529
+ let match;
530
+ let count = 0;
531
+ let lastIndex = 0;
532
+ let newCode = '';
533
+ while ((match = regexp.exec(code))) {
534
+ if (count === 0) {
535
+ newCode += code.substring(lastIndex, match.index);
536
+ }
537
+ if (match[0] === '/*') {
538
+ count++;
539
+ }
540
+ else if (match[0] === '*/' && count > 0) {
541
+ count--;
542
+ }
543
+ lastIndex = regexp.lastIndex;
544
+ }
545
+ newCode += code.substring(lastIndex);
546
+ return newCode;
547
+ }
548
+ }
549
+ exports.default = ECMAScriptModuleCompiler;
550
+ //# sourceMappingURL=ECMAScriptModuleCompiler.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECMAScriptModuleCompiler.cjs","sourceRoot":"","sources":["../../src/module/ECMAScriptModuleCompiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import BrowserWindow from '../window/BrowserWindow.cjs';
2
+ import IECMAScriptModuleCompiledResult from './IECMAScriptModuleCompiledResult.cjs';
3
+ /**
4
+ * ECMAScript module compiler.
5
+ */
6
+ export default class ECMAScriptModuleCompiler {
7
+ readonly window: BrowserWindow;
8
+ /**
9
+ * Constructor.
10
+ *
11
+ * @param window Window.
12
+ * @param url Module URL.
13
+ */
14
+ constructor(window: BrowserWindow);
15
+ /**
16
+ * Compiles code and returns imports and compiled code.
17
+ *
18
+ * @param moduleURL Module URL.
19
+ * @param code Code.
20
+ * @returns Result.
21
+ */
22
+ compile(moduleURL: string, code: string): IECMAScriptModuleCompiledResult;
23
+ /**
24
+ * Remove multiline comments.
25
+ *
26
+ * @param code Code.
27
+ * @returns Code without multiline comments.
28
+ */
29
+ private removeMultilineComments;
30
+ }
31
+ //# sourceMappingURL=ECMAScriptModuleCompiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECMAScriptModuleCompiler.d.ts","sourceRoot":"","sources":["../../src/module/ECMAScriptModuleCompiler.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAEvD,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AA4DnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAC5C,SAAgB,MAAM,EAAE,aAAa,CAAC;IAEtC;;;;;OAKG;gBACS,MAAM,EAAE,aAAa;IAIjC;;;;;;OAMG;IACI,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,+BAA+B;IAichF;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;CAyB/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IECMAScriptModuleCompiledResult.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IECMAScriptModuleCompiledResult.cjs","sourceRoot":"","sources":["../../src/module/IECMAScriptModuleCompiledResult.ts"],"names":[],"mappings":""}