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.
- package/cjs/PropertySymbol.cjs +13 -1
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +12 -0
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.cjs +67 -18
- package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts +5 -0
- package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/cjs/browser/BrowserSettingsFactory.cjs +4 -0
- package/cjs/browser/BrowserSettingsFactory.cjs.map +1 -1
- package/cjs/browser/BrowserSettingsFactory.d.ts.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.cjs +3 -0
- package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserSettings.d.ts +6 -0
- package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/types/IOptionalBrowserSettings.d.ts +6 -0
- package/cjs/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/cjs/dom/DOMTokenList.cjs +7 -4
- package/cjs/dom/DOMTokenList.cjs.map +1 -1
- package/cjs/dom/DOMTokenList.d.ts +5 -3
- package/cjs/dom/DOMTokenList.d.ts.map +1 -1
- package/cjs/event/EventTarget.cjs +31 -5
- package/cjs/event/EventTarget.cjs.map +1 -1
- package/cjs/event/EventTarget.d.ts.map +1 -1
- package/cjs/fetch/Fetch.cjs +67 -13
- package/cjs/fetch/Fetch.cjs.map +1 -1
- package/cjs/fetch/Fetch.d.ts +3 -0
- package/cjs/fetch/Fetch.d.ts.map +1 -1
- package/cjs/fetch/Request.cjs +119 -27
- package/cjs/fetch/Request.cjs.map +1 -1
- package/cjs/fetch/Request.d.ts +65 -9
- package/cjs/fetch/Request.d.ts.map +1 -1
- package/cjs/fetch/ResourceFetch.cjs +91 -13
- package/cjs/fetch/ResourceFetch.cjs.map +1 -1
- package/cjs/fetch/ResourceFetch.d.ts +21 -11
- package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
- package/cjs/fetch/SyncFetch.cjs +36 -7
- package/cjs/fetch/SyncFetch.cjs.map +1 -1
- package/cjs/fetch/SyncFetch.d.ts.map +1 -1
- package/cjs/fetch/preload/PreloadEntry.cjs +44 -0
- package/cjs/fetch/preload/PreloadEntry.cjs.map +1 -0
- package/cjs/fetch/preload/PreloadEntry.d.ts +26 -0
- package/cjs/fetch/preload/PreloadEntry.d.ts.map +1 -0
- package/cjs/fetch/preload/PreloadUtility.cjs +29 -0
- package/cjs/fetch/preload/PreloadUtility.cjs.map +1 -0
- package/cjs/fetch/preload/PreloadUtility.d.ts +26 -0
- package/cjs/fetch/preload/PreloadUtility.d.ts.map +1 -0
- package/cjs/fetch/types/IRequestInit.d.ts +2 -0
- package/cjs/fetch/types/IRequestInit.d.ts.map +1 -1
- package/cjs/fetch/types/IRequestMode.cjs +3 -0
- package/cjs/fetch/types/IRequestMode.cjs.map +1 -0
- package/cjs/fetch/types/IRequestMode.d.ts +3 -0
- package/cjs/fetch/types/IRequestMode.d.ts.map +1 -0
- package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs +1 -1
- package/cjs/fetch/utilities/FetchRequestReferrerUtility.cjs.map +1 -1
- package/cjs/module/CSSModule.cjs +47 -0
- package/cjs/module/CSSModule.cjs.map +1 -0
- package/cjs/module/CSSModule.d.ts +34 -0
- package/cjs/module/CSSModule.d.ts.map +1 -0
- package/cjs/module/ECMAScriptModule.cjs +157 -0
- package/cjs/module/ECMAScriptModule.cjs.map +1 -0
- package/cjs/module/ECMAScriptModule.d.ts +36 -0
- package/cjs/module/ECMAScriptModule.d.ts.map +1 -0
- package/cjs/module/ECMAScriptModuleCompiler.cjs +550 -0
- package/cjs/module/ECMAScriptModuleCompiler.cjs.map +1 -0
- package/cjs/module/ECMAScriptModuleCompiler.d.ts +31 -0
- package/cjs/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.cjs +3 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.cjs.map +1 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
- package/cjs/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
- package/cjs/module/IECMAScriptModuleImport.cjs +3 -0
- package/cjs/module/IECMAScriptModuleImport.cjs.map +1 -0
- package/cjs/module/IECMAScriptModuleImport.d.ts +5 -0
- package/cjs/module/IECMAScriptModuleImport.d.ts.map +1 -0
- package/cjs/module/IModule.cjs +3 -0
- package/cjs/module/IModule.cjs.map +1 -0
- package/cjs/module/IModule.d.ts +21 -0
- package/cjs/module/IModule.d.ts.map +1 -0
- package/cjs/module/IModuleImportMap.cjs +3 -0
- package/cjs/module/IModuleImportMap.cjs.map +1 -0
- package/cjs/module/IModuleImportMap.d.ts +10 -0
- package/cjs/module/IModuleImportMap.d.ts.map +1 -0
- package/cjs/module/IModuleImportMapRule.cjs +3 -0
- package/cjs/module/IModuleImportMapRule.cjs.map +1 -0
- package/cjs/module/IModuleImportMapRule.d.ts +5 -0
- package/cjs/module/IModuleImportMapRule.d.ts.map +1 -0
- package/cjs/module/IModuleImportMapScope.cjs +3 -0
- package/cjs/module/IModuleImportMapScope.cjs.map +1 -0
- package/cjs/module/IModuleImportMapScope.d.ts +6 -0
- package/cjs/module/IModuleImportMapScope.d.ts.map +1 -0
- package/cjs/module/JSONModule.cjs +52 -0
- package/cjs/module/JSONModule.cjs.map +1 -0
- package/cjs/module/JSONModule.d.ts +33 -0
- package/cjs/module/JSONModule.d.ts.map +1 -0
- package/cjs/module/ModuleFactory.cjs +136 -0
- package/cjs/module/ModuleFactory.cjs.map +1 -0
- package/cjs/module/ModuleFactory.d.ts +33 -0
- package/cjs/module/ModuleFactory.d.ts.map +1 -0
- package/cjs/module/ModuleURLUtility.cjs +67 -0
- package/cjs/module/ModuleURLUtility.cjs.map +1 -0
- package/cjs/module/ModuleURLUtility.d.ts +17 -0
- package/cjs/module/ModuleURLUtility.d.ts.map +1 -0
- package/cjs/module/UnresolvedModule.cjs +70 -0
- package/cjs/module/UnresolvedModule.cjs.map +1 -0
- package/cjs/module/UnresolvedModule.d.ts +43 -0
- package/cjs/module/UnresolvedModule.d.ts.map +1 -0
- package/cjs/nodes/document/Document.cjs +1 -0
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +2 -0
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +21 -5
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +6 -0
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.cjs +1 -0
- package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +8 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +8 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +3 -0
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +7 -3
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +147 -19
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +8 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +380 -46
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs +0 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.cjs.map +1 -1
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
- package/cjs/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
- package/cjs/utilities/AttributeUtility.cjs +36 -0
- package/cjs/utilities/AttributeUtility.cjs.map +1 -0
- package/cjs/utilities/AttributeUtility.d.ts +18 -0
- package/cjs/utilities/AttributeUtility.d.ts.map +1 -0
- package/cjs/window/BrowserWindow.cjs +73 -6
- package/cjs/window/BrowserWindow.cjs.map +1 -1
- package/cjs/window/BrowserWindow.d.ts +14 -0
- package/cjs/window/BrowserWindow.d.ts.map +1 -1
- package/lib/PropertySymbol.d.ts +12 -0
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +12 -0
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts +5 -0
- package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.js +67 -18
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
- package/lib/browser/BrowserSettingsFactory.d.ts.map +1 -1
- package/lib/browser/BrowserSettingsFactory.js +4 -0
- package/lib/browser/BrowserSettingsFactory.js.map +1 -1
- package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/lib/browser/DefaultBrowserSettings.js +3 -0
- package/lib/browser/DefaultBrowserSettings.js.map +1 -1
- package/lib/browser/types/IBrowserSettings.d.ts +6 -0
- package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/lib/browser/types/IOptionalBrowserSettings.d.ts +6 -0
- package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
- package/lib/dom/DOMTokenList.d.ts +5 -3
- package/lib/dom/DOMTokenList.d.ts.map +1 -1
- package/lib/dom/DOMTokenList.js +7 -4
- package/lib/dom/DOMTokenList.js.map +1 -1
- package/lib/event/EventTarget.d.ts.map +1 -1
- package/lib/event/EventTarget.js +31 -5
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/fetch/Fetch.d.ts +3 -0
- package/lib/fetch/Fetch.d.ts.map +1 -1
- package/lib/fetch/Fetch.js +64 -10
- package/lib/fetch/Fetch.js.map +1 -1
- package/lib/fetch/Request.d.ts +65 -9
- package/lib/fetch/Request.d.ts.map +1 -1
- package/lib/fetch/Request.js +116 -24
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/ResourceFetch.d.ts +21 -11
- package/lib/fetch/ResourceFetch.d.ts.map +1 -1
- package/lib/fetch/ResourceFetch.js +68 -13
- package/lib/fetch/ResourceFetch.js.map +1 -1
- package/lib/fetch/SyncFetch.d.ts.map +1 -1
- package/lib/fetch/SyncFetch.js +36 -7
- package/lib/fetch/SyncFetch.js.map +1 -1
- package/lib/fetch/preload/PreloadEntry.d.ts +26 -0
- package/lib/fetch/preload/PreloadEntry.d.ts.map +1 -0
- package/lib/fetch/preload/PreloadEntry.js +41 -0
- package/lib/fetch/preload/PreloadEntry.js.map +1 -0
- package/lib/fetch/preload/PreloadUtility.d.ts +26 -0
- package/lib/fetch/preload/PreloadUtility.d.ts.map +1 -0
- package/lib/fetch/preload/PreloadUtility.js +26 -0
- package/lib/fetch/preload/PreloadUtility.js.map +1 -0
- package/lib/fetch/types/IRequestInit.d.ts +2 -0
- package/lib/fetch/types/IRequestInit.d.ts.map +1 -1
- package/lib/fetch/types/IRequestMode.d.ts +3 -0
- package/lib/fetch/types/IRequestMode.d.ts.map +1 -0
- package/lib/fetch/types/IRequestMode.js +2 -0
- package/lib/fetch/types/IRequestMode.js.map +1 -0
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js +1 -1
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -1
- package/lib/module/CSSModule.d.ts +34 -0
- package/lib/module/CSSModule.d.ts.map +1 -0
- package/lib/module/CSSModule.js +44 -0
- package/lib/module/CSSModule.js.map +1 -0
- package/lib/module/ECMAScriptModule.d.ts +36 -0
- package/lib/module/ECMAScriptModule.d.ts.map +1 -0
- package/lib/module/ECMAScriptModule.js +128 -0
- package/lib/module/ECMAScriptModule.js.map +1 -0
- package/lib/module/ECMAScriptModuleCompiler.d.ts +31 -0
- package/lib/module/ECMAScriptModuleCompiler.d.ts.map +1 -0
- package/lib/module/ECMAScriptModuleCompiler.js +521 -0
- package/lib/module/ECMAScriptModuleCompiler.js.map +1 -0
- package/lib/module/IECMAScriptModuleCompiledResult.d.ts +21 -0
- package/lib/module/IECMAScriptModuleCompiledResult.d.ts.map +1 -0
- package/lib/module/IECMAScriptModuleCompiledResult.js +2 -0
- package/lib/module/IECMAScriptModuleCompiledResult.js.map +1 -0
- package/lib/module/IECMAScriptModuleImport.d.ts +5 -0
- package/lib/module/IECMAScriptModuleImport.d.ts.map +1 -0
- package/lib/module/IECMAScriptModuleImport.js +2 -0
- package/lib/module/IECMAScriptModuleImport.js.map +1 -0
- package/lib/module/IModule.d.ts +21 -0
- package/lib/module/IModule.d.ts.map +1 -0
- package/lib/module/IModule.js +2 -0
- package/lib/module/IModule.js.map +1 -0
- package/lib/module/IModuleImportMap.d.ts +10 -0
- package/lib/module/IModuleImportMap.d.ts.map +1 -0
- package/lib/module/IModuleImportMap.js +2 -0
- package/lib/module/IModuleImportMap.js.map +1 -0
- package/lib/module/IModuleImportMapRule.d.ts +5 -0
- package/lib/module/IModuleImportMapRule.d.ts.map +1 -0
- package/lib/module/IModuleImportMapRule.js +2 -0
- package/lib/module/IModuleImportMapRule.js.map +1 -0
- package/lib/module/IModuleImportMapScope.d.ts +6 -0
- package/lib/module/IModuleImportMapScope.d.ts.map +1 -0
- package/lib/module/IModuleImportMapScope.js +2 -0
- package/lib/module/IModuleImportMapScope.js.map +1 -0
- package/lib/module/JSONModule.d.ts +33 -0
- package/lib/module/JSONModule.d.ts.map +1 -0
- package/lib/module/JSONModule.js +49 -0
- package/lib/module/JSONModule.js.map +1 -0
- package/lib/module/ModuleFactory.d.ts +33 -0
- package/lib/module/ModuleFactory.d.ts.map +1 -0
- package/lib/module/ModuleFactory.js +107 -0
- package/lib/module/ModuleFactory.js.map +1 -0
- package/lib/module/ModuleURLUtility.d.ts +17 -0
- package/lib/module/ModuleURLUtility.d.ts.map +1 -0
- package/lib/module/ModuleURLUtility.js +41 -0
- package/lib/module/ModuleURLUtility.js.map +1 -0
- package/lib/module/UnresolvedModule.d.ts +43 -0
- package/lib/module/UnresolvedModule.d.ts.map +1 -0
- package/lib/module/UnresolvedModule.js +67 -0
- package/lib/module/UnresolvedModule.js.map +1 -0
- package/lib/nodes/document/Document.d.ts +2 -0
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +1 -0
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +6 -0
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +21 -5
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMap.js +1 -0
- package/lib/nodes/element/NamedNodeMap.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +6 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +8 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +6 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.js +8 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +3 -0
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +7 -3
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +8 -2
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +147 -19
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +6 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +8 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +80 -0
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +380 -46
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts +0 -3
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.d.ts.map +1 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js +0 -1
- package/lib/nodes/html-table-cell-element/HTMLTableCellElement.js.map +1 -1
- package/lib/utilities/AttributeUtility.d.ts +18 -0
- package/lib/utilities/AttributeUtility.d.ts.map +1 -0
- package/lib/utilities/AttributeUtility.js +29 -0
- package/lib/utilities/AttributeUtility.js.map +1 -0
- package/lib/window/BrowserWindow.d.ts +14 -0
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +73 -6
- package/lib/window/BrowserWindow.js.map +1 -1
- package/package.json +1 -1
- package/src/PropertySymbol.ts +12 -0
- package/src/async-task-manager/AsyncTaskManager.ts +81 -19
- package/src/browser/BrowserSettingsFactory.ts +4 -0
- package/src/browser/DefaultBrowserSettings.ts +3 -0
- package/src/browser/types/IBrowserSettings.ts +7 -0
- package/src/browser/types/IOptionalBrowserSettings.ts +7 -0
- package/src/browser/utilities/BrowserFrameNavigator.ts +2 -7
- package/src/dom/DOMTokenList.ts +12 -4
- package/src/event/EventTarget.ts +31 -11
- package/src/fetch/Fetch.ts +82 -16
- package/src/fetch/Request.ts +132 -24
- package/src/fetch/ResourceFetch.ts +99 -14
- package/src/fetch/SyncFetch.ts +41 -9
- package/src/fetch/preload/PreloadEntry.ts +46 -0
- package/src/fetch/preload/PreloadUtility.ts +33 -0
- package/src/fetch/types/IRequestInit.ts +2 -0
- package/src/fetch/types/IRequestMode.ts +2 -0
- package/src/fetch/utilities/FetchRequestReferrerUtility.ts +1 -1
- package/src/module/CSSModule.ts +54 -0
- package/src/module/ECMAScriptModule.ts +171 -0
- package/src/module/ECMAScriptModuleCompiler.ts +567 -0
- package/src/module/IECMAScriptModuleCompiledResult.ts +14 -0
- package/src/module/IECMAScriptModuleImport.ts +4 -0
- package/src/module/IModule.ts +20 -0
- package/src/module/IModuleImportMap.ts +10 -0
- package/src/module/IModuleImportMapRule.ts +4 -0
- package/src/module/IModuleImportMapScope.ts +6 -0
- package/src/module/JSONModule.ts +59 -0
- package/src/module/ModuleFactory.ts +134 -0
- package/src/module/ModuleURLUtility.ts +51 -0
- package/src/module/UnresolvedModule.ts +77 -0
- package/src/nodes/document/Document.ts +2 -0
- package/src/nodes/element/Element.ts +25 -7
- package/src/nodes/element/NamedNodeMap.ts +1 -0
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +9 -0
- package/src/nodes/html-area-element/HTMLAreaElement.ts +9 -0
- package/src/nodes/html-element/HTMLElement.ts +3 -0
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +9 -8
- package/src/nodes/html-link-element/HTMLLinkElement.ts +181 -28
- package/src/nodes/html-media-element/HTMLMediaElement.ts +9 -0
- package/src/nodes/html-script-element/HTMLScriptElement.ts +441 -69
- package/src/nodes/html-table-cell-element/HTMLTableCellElement.ts +0 -3
- package/src/utilities/AttributeUtility.ts +43 -0
- package/src/window/BrowserWindow.ts +77 -10
- package/cjs/window/WindowErrorUtility.cjs +0 -85
- package/cjs/window/WindowErrorUtility.cjs.map +0 -1
- package/cjs/window/WindowErrorUtility.d.ts +0 -27
- package/cjs/window/WindowErrorUtility.d.ts.map +0 -1
- package/lib/window/WindowErrorUtility.d.ts +0 -27
- package/lib/window/WindowErrorUtility.d.ts.map +0 -1
- package/lib/window/WindowErrorUtility.js +0 -56
- package/lib/window/WindowErrorUtility.js.map +0 -1
- package/src/window/WindowErrorUtility.ts +0 -68
@@ -0,0 +1,46 @@
|
|
1
|
+
import Response from '../Response.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Preload entry.
|
5
|
+
*
|
6
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#preload-entry
|
7
|
+
*/
|
8
|
+
export default class PreloadEntry {
|
9
|
+
public integrityMetadata: string | null = null;
|
10
|
+
public response: Response | null = null;
|
11
|
+
public error: Error | null = null;
|
12
|
+
#callback: { resolve: (response: Response) => void; reject: (error: Error) => void } | null =
|
13
|
+
null;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* On response available.
|
17
|
+
*
|
18
|
+
* @returns Response.
|
19
|
+
*/
|
20
|
+
public onResponseAvailable(): Promise<Response> {
|
21
|
+
return new Promise((resolve, reject) => {
|
22
|
+
this.#callback = { resolve, reject };
|
23
|
+
});
|
24
|
+
}
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Response available.
|
28
|
+
*
|
29
|
+
* @param error
|
30
|
+
* @param response
|
31
|
+
*/
|
32
|
+
public responseAvailable(error: Error | null, response: Response): void {
|
33
|
+
this.response = response;
|
34
|
+
this.error = error;
|
35
|
+
|
36
|
+
if (!this.#callback) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
|
40
|
+
if (error) {
|
41
|
+
this.#callback.reject(error);
|
42
|
+
} else {
|
43
|
+
this.#callback.resolve(response);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import IRequestCredentials from '../types/IRequestCredentials.js';
|
2
|
+
import IRequestMode from '../types/IRequestMode.js';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Utility for preloading resources.
|
6
|
+
*
|
7
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#link-type-preload
|
8
|
+
*/
|
9
|
+
export default class PreloadUtility {
|
10
|
+
/**
|
11
|
+
* Returns a key for a preload entry.
|
12
|
+
*
|
13
|
+
* @param options Options.
|
14
|
+
* @param options.url URL.
|
15
|
+
* @param options.destination Destination.
|
16
|
+
* @param options.mode Mode.
|
17
|
+
* @param options.credentialsMode Credentials mode.
|
18
|
+
* @returns Key.
|
19
|
+
*/
|
20
|
+
public static getKey(options: {
|
21
|
+
url: string;
|
22
|
+
destination: string;
|
23
|
+
mode: IRequestMode;
|
24
|
+
credentialsMode: IRequestCredentials;
|
25
|
+
}): string {
|
26
|
+
return JSON.stringify({
|
27
|
+
url: options.url,
|
28
|
+
destination: options.destination,
|
29
|
+
mode: options.mode,
|
30
|
+
credentialsMode: options.credentialsMode
|
31
|
+
});
|
32
|
+
}
|
33
|
+
}
|
@@ -5,6 +5,7 @@ import IRequestReferrerPolicy from './IRequestReferrerPolicy.js';
|
|
5
5
|
import IRequestRedirect from './IRequestRedirect.js';
|
6
6
|
import IRequestBody from './IRequestBody.js';
|
7
7
|
import IRequestCredentials from './IRequestCredentials.js';
|
8
|
+
import IRequestMode from './IRequestMode.js';
|
8
9
|
|
9
10
|
/**
|
10
11
|
* Fetch request init.
|
@@ -13,6 +14,7 @@ export default interface IRequestInit {
|
|
13
14
|
body?: IRequestBody;
|
14
15
|
headers?: IHeadersInit;
|
15
16
|
method?: string;
|
17
|
+
mode?: IRequestMode;
|
16
18
|
redirect?: IRequestRedirect;
|
17
19
|
signal?: AbortSignal | null;
|
18
20
|
referrer?: '' | 'no-referrer' | 'client' | string | URL;
|
@@ -31,7 +31,7 @@ export default class FetchRequestReferrerUtility {
|
|
31
31
|
*/
|
32
32
|
public static prepareRequest(originURL: URL, request: Request): void {
|
33
33
|
if (!request.referrerPolicy) {
|
34
|
-
|
34
|
+
request[PropertySymbol.referrerPolicy] = 'strict-origin-when-cross-origin';
|
35
35
|
}
|
36
36
|
|
37
37
|
if (request.referrer && request.referrer !== 'no-referrer') {
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
2
|
+
import { URL } from 'url';
|
3
|
+
import IModule from './IModule.js';
|
4
|
+
import CSSStyleSheet from '../css/CSSStyleSheet.js';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* CSS module.
|
8
|
+
*/
|
9
|
+
export default class CSSModule implements IModule {
|
10
|
+
public readonly url: URL;
|
11
|
+
readonly #window: BrowserWindow;
|
12
|
+
readonly #source: string;
|
13
|
+
#exports: { default: CSSStyleSheet } | null = null;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Constructor.
|
17
|
+
*
|
18
|
+
* @param window Window.
|
19
|
+
* @param url Module URL.
|
20
|
+
* @param source Source code.
|
21
|
+
*/
|
22
|
+
constructor(window: BrowserWindow, url: URL, source: string) {
|
23
|
+
this.#window = window;
|
24
|
+
this.url = url;
|
25
|
+
this.#source = source;
|
26
|
+
}
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Compiles and evaluates the module.
|
30
|
+
*
|
31
|
+
* @returns Module exports.
|
32
|
+
*/
|
33
|
+
public async evaluate(): Promise<{ default: CSSStyleSheet }> {
|
34
|
+
if (this.#exports) {
|
35
|
+
return this.#exports;
|
36
|
+
}
|
37
|
+
|
38
|
+
const styleSheet = new this.#window.CSSStyleSheet();
|
39
|
+
styleSheet.replaceSync(this.#source);
|
40
|
+
|
41
|
+
this.#exports = { default: styleSheet };
|
42
|
+
|
43
|
+
return this.#exports;
|
44
|
+
}
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Compiles and preloads the module and its imports.
|
48
|
+
*
|
49
|
+
* @returns Promise.
|
50
|
+
*/
|
51
|
+
public async preload(): Promise<void> {
|
52
|
+
await this.evaluate();
|
53
|
+
}
|
54
|
+
}
|
@@ -0,0 +1,171 @@
|
|
1
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
2
|
+
import { URL } from 'url';
|
3
|
+
import IModule from './IModule.js';
|
4
|
+
import ECMAScriptModuleCompiler from './ECMAScriptModuleCompiler.js';
|
5
|
+
import * as PropertySymbol from '../PropertySymbol.js';
|
6
|
+
import Location from '../location/Location.js';
|
7
|
+
import WindowBrowserContext from '../window/WindowBrowserContext.js';
|
8
|
+
import IECMAScriptModuleCompiledResult from './IECMAScriptModuleCompiledResult.js';
|
9
|
+
import ModuleFactory from './ModuleFactory.js';
|
10
|
+
|
11
|
+
const EMPTY_COMPILED_RESULT = { imports: [], execute: () => {} };
|
12
|
+
|
13
|
+
/**
|
14
|
+
* ECMAScript module.
|
15
|
+
*/
|
16
|
+
export default class ECMAScriptModule implements IModule {
|
17
|
+
public readonly url: URL;
|
18
|
+
public readonly [PropertySymbol.window]: BrowserWindow;
|
19
|
+
readonly #source: string;
|
20
|
+
#preloaded: boolean = false;
|
21
|
+
#compiled: IECMAScriptModuleCompiledResult | null = null;
|
22
|
+
#exports: { [k: string]: any } | null = null;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Constructor.
|
26
|
+
*
|
27
|
+
* @param window Window.
|
28
|
+
* @param url Module URL.
|
29
|
+
* @param source Source code.
|
30
|
+
*/
|
31
|
+
constructor(window: BrowserWindow, url: URL | Location, source: string) {
|
32
|
+
this[PropertySymbol.window] = window;
|
33
|
+
this.url = <URL>url;
|
34
|
+
this.#source = source;
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Compiles and evaluates the module.
|
39
|
+
*
|
40
|
+
* @returns Module exports.
|
41
|
+
*/
|
42
|
+
public async evaluate(): Promise<{ [key: string]: any } | null> {
|
43
|
+
if (this.#exports) {
|
44
|
+
return this.#exports;
|
45
|
+
}
|
46
|
+
|
47
|
+
const compiled = this.#compile();
|
48
|
+
const modulePromises: Promise<IModule>[] = [];
|
49
|
+
const window = this[PropertySymbol.window];
|
50
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
51
|
+
|
52
|
+
if (!browserFrame) {
|
53
|
+
return {};
|
54
|
+
}
|
55
|
+
|
56
|
+
for (const moduleImport of compiled.imports) {
|
57
|
+
modulePromises.push(
|
58
|
+
ModuleFactory.getModule(window, this.url, moduleImport.url, {
|
59
|
+
with: { type: moduleImport.type }
|
60
|
+
})
|
61
|
+
);
|
62
|
+
}
|
63
|
+
|
64
|
+
const modules = await Promise.all(modulePromises);
|
65
|
+
|
66
|
+
const imports = new Map<string, { [key: string]: any }>();
|
67
|
+
|
68
|
+
for (const module of modules) {
|
69
|
+
imports.set(module.url.href, await module.evaluate());
|
70
|
+
}
|
71
|
+
|
72
|
+
const exports = {};
|
73
|
+
|
74
|
+
this.#exports = exports;
|
75
|
+
|
76
|
+
compiled.execute({
|
77
|
+
dispatchError: window[PropertySymbol.dispatchError].bind(window),
|
78
|
+
dynamicImport: this.#import.bind(this),
|
79
|
+
imports,
|
80
|
+
exports
|
81
|
+
});
|
82
|
+
|
83
|
+
return exports;
|
84
|
+
}
|
85
|
+
|
86
|
+
/**
|
87
|
+
* Compiles and preloads the module and its imports.
|
88
|
+
*
|
89
|
+
* @returns Promise.
|
90
|
+
*/
|
91
|
+
public async preload(): Promise<void> {
|
92
|
+
if (this.#preloaded) {
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
|
96
|
+
this.#preloaded = true;
|
97
|
+
|
98
|
+
const compiled = this.#compile();
|
99
|
+
const modulePromises: Promise<IModule>[] = [];
|
100
|
+
const window = this[PropertySymbol.window];
|
101
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
102
|
+
|
103
|
+
if (!browserFrame) {
|
104
|
+
return;
|
105
|
+
}
|
106
|
+
|
107
|
+
for (const moduleImport of compiled.imports) {
|
108
|
+
modulePromises.push(
|
109
|
+
ModuleFactory.getModule(window, this.url, moduleImport.url, {
|
110
|
+
with: { type: moduleImport.type }
|
111
|
+
})
|
112
|
+
);
|
113
|
+
}
|
114
|
+
|
115
|
+
const modules = await Promise.all(modulePromises);
|
116
|
+
|
117
|
+
const promises: Promise<void>[] = [];
|
118
|
+
for (const module of modules) {
|
119
|
+
promises.push(module.preload());
|
120
|
+
}
|
121
|
+
|
122
|
+
await Promise.all(promises);
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Compiles the module.
|
127
|
+
*/
|
128
|
+
#compile(): IECMAScriptModuleCompiledResult {
|
129
|
+
if (this.#compiled) {
|
130
|
+
return this.#compiled;
|
131
|
+
}
|
132
|
+
|
133
|
+
// In case of an error, the compiled module will be empty.
|
134
|
+
this.#compiled = EMPTY_COMPILED_RESULT;
|
135
|
+
|
136
|
+
const compiler = new ECMAScriptModuleCompiler(this[PropertySymbol.window]);
|
137
|
+
|
138
|
+
this.#compiled = compiler.compile(this.url.href, this.#source);
|
139
|
+
|
140
|
+
return this.#compiled;
|
141
|
+
}
|
142
|
+
|
143
|
+
/**
|
144
|
+
* Imports a module.
|
145
|
+
*
|
146
|
+
* @param url URL.
|
147
|
+
* @param [options] Options.
|
148
|
+
* @param [options.with] With.
|
149
|
+
* @param [options.with.type] Type.
|
150
|
+
*/
|
151
|
+
async #import(
|
152
|
+
url: string,
|
153
|
+
options?: { with?: { type?: string } }
|
154
|
+
): Promise<{ [key: string]: any }> {
|
155
|
+
const window = this[PropertySymbol.window];
|
156
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
157
|
+
|
158
|
+
if (!browserFrame) {
|
159
|
+
return;
|
160
|
+
}
|
161
|
+
|
162
|
+
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
163
|
+
const taskID = asyncTaskManager?.startTask();
|
164
|
+
const module = await ModuleFactory.getModule(window, this.url, url, options);
|
165
|
+
const exports = await module.evaluate();
|
166
|
+
|
167
|
+
asyncTaskManager.endTask(taskID);
|
168
|
+
|
169
|
+
return exports;
|
170
|
+
}
|
171
|
+
}
|