happy-dom 16.8.1 → 17.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/query-selector/QuerySelector.cjs +16 -7
- package/cjs/query-selector/QuerySelector.cjs.map +1 -1
- package/cjs/query-selector/QuerySelector.d.ts +2 -1
- package/cjs/query-selector/QuerySelector.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/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/query-selector/QuerySelector.d.ts +2 -1
- package/lib/query-selector/QuerySelector.d.ts.map +1 -1
- package/lib/query-selector/QuerySelector.js +16 -7
- package/lib/query-selector/QuerySelector.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/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/query-selector/QuerySelector.ts +19 -8
- 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
@@ -5,11 +5,14 @@ import Event from '../../event/Event.js';
|
|
5
5
|
import ErrorEvent from '../../event/events/ErrorEvent.js';
|
6
6
|
import DOMTokenList from '../../dom/DOMTokenList.js';
|
7
7
|
import Attr from '../attr/Attr.js';
|
8
|
-
import WindowErrorUtility from '../../window/WindowErrorUtility.js';
|
9
8
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
10
9
|
import ResourceFetch from '../../fetch/ResourceFetch.js';
|
11
|
-
import DocumentReadyStateManager from '../document/DocumentReadyStateManager.js';
|
12
10
|
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
11
|
+
import Fetch from '../../fetch/Fetch.js';
|
12
|
+
import BrowserErrorCaptureEnum from '../../browser/enums/BrowserErrorCaptureEnum.js';
|
13
|
+
import ModuleFactory from '../../module/ModuleFactory.js';
|
14
|
+
import PreloadUtility from '../../fetch/preload/PreloadUtility.js';
|
15
|
+
import PreloadEntry from '../../fetch/preload/PreloadEntry.js';
|
13
16
|
|
14
17
|
/**
|
15
18
|
* HTML Link Element.
|
@@ -45,12 +48,22 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
45
48
|
this[PropertySymbol.relList] = new DOMTokenList(
|
46
49
|
PropertySymbol.illegalConstructor,
|
47
50
|
this,
|
48
|
-
'rel'
|
51
|
+
'rel',
|
52
|
+
['stylesheet', 'modulepreload', 'preload']
|
49
53
|
);
|
50
54
|
}
|
51
55
|
return <DOMTokenList>this[PropertySymbol.relList];
|
52
56
|
}
|
53
57
|
|
58
|
+
/**
|
59
|
+
* Sets rel list.
|
60
|
+
*
|
61
|
+
* @param value Value.
|
62
|
+
*/
|
63
|
+
public set relList(value: string) {
|
64
|
+
this.setAttribute('rel', value);
|
65
|
+
}
|
66
|
+
|
54
67
|
/**
|
55
68
|
* Returns as.
|
56
69
|
*
|
@@ -61,9 +74,9 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
61
74
|
}
|
62
75
|
|
63
76
|
/**
|
64
|
-
* Sets
|
77
|
+
* Sets as.
|
65
78
|
*
|
66
|
-
* @param
|
79
|
+
* @param as As.
|
67
80
|
*/
|
68
81
|
public set as(as: string) {
|
69
82
|
this.setAttribute('as', as);
|
@@ -209,8 +222,22 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
209
222
|
*/
|
210
223
|
public override [PropertySymbol.connectedToDocument](): void {
|
211
224
|
super[PropertySymbol.connectedToDocument]();
|
212
|
-
|
213
|
-
|
225
|
+
|
226
|
+
const rel = this.getAttribute('rel');
|
227
|
+
const href = this.getAttribute('href');
|
228
|
+
|
229
|
+
if (rel && href) {
|
230
|
+
switch (rel) {
|
231
|
+
case 'stylesheet':
|
232
|
+
this.#loadStyleSheet(href);
|
233
|
+
break;
|
234
|
+
case 'modulepreload':
|
235
|
+
this.#preloadModule(href);
|
236
|
+
break;
|
237
|
+
case 'preload':
|
238
|
+
this.#preloadResource(href);
|
239
|
+
break;
|
240
|
+
}
|
214
241
|
}
|
215
242
|
}
|
216
243
|
|
@@ -223,10 +250,138 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
223
250
|
): void {
|
224
251
|
super[PropertySymbol.onSetAttribute](attribute, replacedAttribute);
|
225
252
|
|
226
|
-
if (attribute[PropertySymbol.name] === 'rel') {
|
227
|
-
this
|
228
|
-
|
229
|
-
|
253
|
+
if (attribute[PropertySymbol.name] === 'rel' || attribute[PropertySymbol.name] === 'href') {
|
254
|
+
const rel = this.getAttribute('rel');
|
255
|
+
const href = this.getAttribute('href');
|
256
|
+
|
257
|
+
if (rel && href) {
|
258
|
+
switch (rel) {
|
259
|
+
case 'stylesheet':
|
260
|
+
this.#loadStyleSheet(href);
|
261
|
+
break;
|
262
|
+
case 'modulepreload':
|
263
|
+
this.#preloadModule(href);
|
264
|
+
break;
|
265
|
+
case 'preload':
|
266
|
+
this.#preloadResource(href);
|
267
|
+
break;
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
271
|
+
}
|
272
|
+
|
273
|
+
/**
|
274
|
+
* Preloads a module.
|
275
|
+
*
|
276
|
+
* @param url URL.
|
277
|
+
*/
|
278
|
+
async #preloadModule(url: string): Promise<void> {
|
279
|
+
const absoluteURL = new URL(url, this[PropertySymbol.ownerDocument].location.href);
|
280
|
+
const window = this[PropertySymbol.window];
|
281
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
282
|
+
const browserSettings = new WindowBrowserContext(window).getSettings();
|
283
|
+
|
284
|
+
if (
|
285
|
+
!browserSettings ||
|
286
|
+
!this[PropertySymbol.isConnected] ||
|
287
|
+
browserSettings.disableJavaScriptFileLoading ||
|
288
|
+
browserSettings.disableJavaScriptEvaluation
|
289
|
+
) {
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
|
293
|
+
if (
|
294
|
+
browserSettings.disableErrorCapturing ||
|
295
|
+
browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
|
296
|
+
) {
|
297
|
+
const module = await ModuleFactory.getModule(window, absoluteURL, url);
|
298
|
+
await module.preload();
|
299
|
+
} else {
|
300
|
+
try {
|
301
|
+
const module = await ModuleFactory.getModule(window, absoluteURL, url);
|
302
|
+
await module.preload();
|
303
|
+
} catch (error) {
|
304
|
+
browserFrame.page?.console.error(error);
|
305
|
+
window[PropertySymbol.dispatchError](error);
|
306
|
+
return;
|
307
|
+
}
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
/**
|
312
|
+
* Preloads a resource.
|
313
|
+
*
|
314
|
+
* @param url URL.
|
315
|
+
*/
|
316
|
+
async #preloadResource(url: string): Promise<void> {
|
317
|
+
const window = this[PropertySymbol.window];
|
318
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
319
|
+
const browserSettings = browserFrame.page?.context?.browser?.settings;
|
320
|
+
const as = this.as;
|
321
|
+
|
322
|
+
// Only "script", "style" and "fetch" are supported for now.
|
323
|
+
if (
|
324
|
+
!browserFrame ||
|
325
|
+
!this[PropertySymbol.isConnected] ||
|
326
|
+
(as !== 'script' && as !== 'style' && as !== 'fetch')
|
327
|
+
) {
|
328
|
+
return;
|
329
|
+
}
|
330
|
+
|
331
|
+
if (
|
332
|
+
as === 'script' &&
|
333
|
+
(browserSettings.disableJavaScriptFileLoading || browserSettings.disableJavaScriptEvaluation)
|
334
|
+
) {
|
335
|
+
return;
|
336
|
+
}
|
337
|
+
|
338
|
+
if (as === 'style' && browserSettings.disableCSSFileLoading) {
|
339
|
+
return;
|
340
|
+
}
|
341
|
+
|
342
|
+
const absoluteURL = new URL(url, window.location.href).href;
|
343
|
+
|
344
|
+
const preloadKey = PreloadUtility.getKey({
|
345
|
+
url: absoluteURL,
|
346
|
+
destination: as,
|
347
|
+
mode: 'cors',
|
348
|
+
credentialsMode: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
|
349
|
+
});
|
350
|
+
|
351
|
+
if (window.document[PropertySymbol.preloads].has(preloadKey)) {
|
352
|
+
return;
|
353
|
+
}
|
354
|
+
|
355
|
+
const preloadEntry = new PreloadEntry();
|
356
|
+
|
357
|
+
window.document[PropertySymbol.preloads].set(preloadKey, preloadEntry);
|
358
|
+
|
359
|
+
const fetch = new Fetch({
|
360
|
+
browserFrame,
|
361
|
+
window,
|
362
|
+
url: absoluteURL,
|
363
|
+
disableSameOriginPolicy: as === 'script' || as === 'style',
|
364
|
+
disablePreload: true,
|
365
|
+
init: {
|
366
|
+
credentials: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
|
367
|
+
}
|
368
|
+
});
|
369
|
+
|
370
|
+
try {
|
371
|
+
const response = await fetch.send();
|
372
|
+
|
373
|
+
if (!response[PropertySymbol.buffer]) {
|
374
|
+
await response.buffer();
|
375
|
+
}
|
376
|
+
|
377
|
+
preloadEntry.responseAvailable(null, response);
|
378
|
+
} catch (error) {
|
379
|
+
preloadEntry.responseAvailable(error, null);
|
380
|
+
window.document[PropertySymbol.preloads].delete(preloadKey);
|
381
|
+
|
382
|
+
browserFrame.page?.console?.error(
|
383
|
+
`Failed to preload resource "${absoluteURL}": ${error.message}`
|
384
|
+
);
|
230
385
|
}
|
231
386
|
}
|
232
387
|
|
@@ -236,7 +391,7 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
236
391
|
* @param url URL.
|
237
392
|
* @param rel Rel.
|
238
393
|
*/
|
239
|
-
async #loadStyleSheet(url: string | null
|
394
|
+
async #loadStyleSheet(url: string | null): Promise<void> {
|
240
395
|
const window = this[PropertySymbol.window];
|
241
396
|
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
242
397
|
|
@@ -246,7 +401,7 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
246
401
|
|
247
402
|
const browserSettings = browserFrame.page?.context?.browser?.settings;
|
248
403
|
|
249
|
-
if (!
|
404
|
+
if (!this[PropertySymbol.evaluateCSS] || !this[PropertySymbol.isConnected]) {
|
250
405
|
return;
|
251
406
|
}
|
252
407
|
|
@@ -265,24 +420,19 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
265
420
|
if (browserSettings.handleDisabledFileLoadingAsSuccess) {
|
266
421
|
this.dispatchEvent(new Event('load'));
|
267
422
|
} else {
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
`Failed to load external stylesheet "${absoluteURL}". CSS file loading is disabled.`,
|
272
|
-
DOMExceptionNameEnum.notSupportedError
|
273
|
-
)
|
423
|
+
const error = new window.DOMException(
|
424
|
+
`Failed to load external stylesheet "${absoluteURL}". CSS file loading is disabled.`,
|
425
|
+
DOMExceptionNameEnum.notSupportedError
|
274
426
|
);
|
427
|
+
|
428
|
+
browserFrame.page?.console.error(error);
|
429
|
+
this.dispatchEvent(new Event('error'));
|
275
430
|
}
|
276
431
|
return;
|
277
432
|
}
|
278
433
|
|
279
|
-
const resourceFetch = new ResourceFetch(
|
280
|
-
|
281
|
-
window: window
|
282
|
-
});
|
283
|
-
const readyStateManager = (<{ [PropertySymbol.readyStateManager]: DocumentReadyStateManager }>(
|
284
|
-
(<unknown>window)
|
285
|
-
))[PropertySymbol.readyStateManager];
|
434
|
+
const resourceFetch = new ResourceFetch(window);
|
435
|
+
const readyStateManager = window[PropertySymbol.readyStateManager];
|
286
436
|
|
287
437
|
this.#loadedStyleSheetURL = absoluteURL;
|
288
438
|
|
@@ -292,7 +442,9 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
292
442
|
let error: Error | null = null;
|
293
443
|
|
294
444
|
try {
|
295
|
-
code = await resourceFetch.fetch(absoluteURL
|
445
|
+
code = await resourceFetch.fetch(absoluteURL, 'style', {
|
446
|
+
credentials: this.crossOrigin === 'use-credentials' ? 'include' : 'same-origin'
|
447
|
+
});
|
296
448
|
} catch (e) {
|
297
449
|
error = e;
|
298
450
|
}
|
@@ -300,7 +452,8 @@ export default class HTMLLinkElement extends HTMLElement {
|
|
300
452
|
readyStateManager.endTask();
|
301
453
|
|
302
454
|
if (error) {
|
303
|
-
|
455
|
+
browserFrame.page?.console.error(error);
|
456
|
+
this.dispatchEvent(new Event('error'));
|
304
457
|
} else {
|
305
458
|
const styleSheet = new CSSStyleSheet();
|
306
459
|
styleSheet.replaceSync(code);
|
@@ -309,6 +309,15 @@ export default class HTMLMediaElement extends HTMLElement {
|
|
309
309
|
return this[PropertySymbol.controlsList];
|
310
310
|
}
|
311
311
|
|
312
|
+
/**
|
313
|
+
* Sets controlsList.
|
314
|
+
*
|
315
|
+
* @param value Value.
|
316
|
+
*/
|
317
|
+
public set controlsList(value: string) {
|
318
|
+
this.setAttribute('controlslist', value);
|
319
|
+
}
|
320
|
+
|
312
321
|
/**
|
313
322
|
* Returns mediaKeys.
|
314
323
|
*
|