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