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
@@ -0,0 +1,134 @@
|
|
1
|
+
import { URL } from 'url';
|
2
|
+
import IModule from './IModule.js';
|
3
|
+
import * as PropertySymbol from '../PropertySymbol.js';
|
4
|
+
import CSSModule from './CSSModule.js';
|
5
|
+
import JSONModule from './JSONModule.js';
|
6
|
+
import UnresolvedModule from './UnresolvedModule.js';
|
7
|
+
import WindowBrowserContext from '../window/WindowBrowserContext.js';
|
8
|
+
import ResourceFetch from '../fetch/ResourceFetch.js';
|
9
|
+
import ECMAScriptModule from './ECMAScriptModule.js';
|
10
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
11
|
+
import Location from '../location/Location.js';
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Module factory.
|
15
|
+
*/
|
16
|
+
export default class ModuleFactory {
|
17
|
+
/**
|
18
|
+
* Fetches the source code of the module from the given URL and creates a new module instance.
|
19
|
+
*
|
20
|
+
* @param window Window.
|
21
|
+
* @param parentURL Parent URL.
|
22
|
+
* @param url Module URL.
|
23
|
+
* @param [options] Options.
|
24
|
+
* @param [options.with] Options.
|
25
|
+
* @param [options.with.type] Module type.
|
26
|
+
*/
|
27
|
+
public static async getModule(
|
28
|
+
window: BrowserWindow,
|
29
|
+
parentURL: URL | Location,
|
30
|
+
url: string,
|
31
|
+
options?: { with?: { type?: string } }
|
32
|
+
): Promise<IModule> {
|
33
|
+
const absoluteURL = this.getURL(window, parentURL, url);
|
34
|
+
const absoluteURLString = absoluteURL.href;
|
35
|
+
const type = options?.with?.type || 'esm';
|
36
|
+
|
37
|
+
if (type !== 'esm' && type !== 'css' && type !== 'json') {
|
38
|
+
throw new window.TypeError(
|
39
|
+
`Failed to import module "${absoluteURL}" from "${parentURL}": Unkown type "${type}"`
|
40
|
+
);
|
41
|
+
}
|
42
|
+
|
43
|
+
const cached = <IModule>window[PropertySymbol.modules][type].get(absoluteURLString);
|
44
|
+
|
45
|
+
if (cached) {
|
46
|
+
if (cached instanceof UnresolvedModule) {
|
47
|
+
await new Promise((resolve, reject) => {
|
48
|
+
cached.addResolveListener(resolve, reject);
|
49
|
+
});
|
50
|
+
return <IModule>window[PropertySymbol.modules][type].get(absoluteURLString);
|
51
|
+
}
|
52
|
+
return cached;
|
53
|
+
}
|
54
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
55
|
+
|
56
|
+
if (!browserFrame) {
|
57
|
+
throw new window.TypeError(
|
58
|
+
`Failed to import module "${absoluteURL}" from "${parentURL}": Window is closed and is no longer attached to a frame`
|
59
|
+
);
|
60
|
+
}
|
61
|
+
|
62
|
+
const unresolvedModule = new UnresolvedModule(window, absoluteURL);
|
63
|
+
|
64
|
+
window[PropertySymbol.modules][type].set(absoluteURLString, unresolvedModule);
|
65
|
+
|
66
|
+
const resourceFetch = new ResourceFetch(window);
|
67
|
+
let source: string;
|
68
|
+
try {
|
69
|
+
source = await resourceFetch.fetch(absoluteURL, 'module');
|
70
|
+
} catch (error) {
|
71
|
+
unresolvedModule.resolve(error);
|
72
|
+
throw error;
|
73
|
+
}
|
74
|
+
let module: IModule;
|
75
|
+
|
76
|
+
switch (type) {
|
77
|
+
case 'json':
|
78
|
+
module = new JSONModule(window, absoluteURL, source);
|
79
|
+
break;
|
80
|
+
case 'css':
|
81
|
+
module = new CSSModule(window, absoluteURL, source);
|
82
|
+
break;
|
83
|
+
case 'esm':
|
84
|
+
module = new ECMAScriptModule(window, absoluteURL, source);
|
85
|
+
break;
|
86
|
+
}
|
87
|
+
|
88
|
+
window[PropertySymbol.modules][type].set(absoluteURLString, module);
|
89
|
+
|
90
|
+
unresolvedModule.resolve();
|
91
|
+
|
92
|
+
return module;
|
93
|
+
}
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Returns module URL based on parent URL and the import map.
|
97
|
+
*
|
98
|
+
* @param window Window.
|
99
|
+
* @param parentURL Parent URL.
|
100
|
+
* @param url Module URL.
|
101
|
+
*/
|
102
|
+
private static getURL(window: BrowserWindow, parentURL: URL | Location, url: string): URL {
|
103
|
+
const parentURLString = parentURL.href;
|
104
|
+
const absoluteURL = new URL(url, parentURLString);
|
105
|
+
const absoluteURLString = absoluteURL.href;
|
106
|
+
const importMap = window[PropertySymbol.moduleImportMap];
|
107
|
+
|
108
|
+
if (!importMap) {
|
109
|
+
return absoluteURL;
|
110
|
+
}
|
111
|
+
|
112
|
+
if (importMap.scopes) {
|
113
|
+
for (const scope of importMap.scopes) {
|
114
|
+
if (parentURLString.includes(scope.scope)) {
|
115
|
+
for (const rule of scope.rules) {
|
116
|
+
if (absoluteURLString.startsWith(rule.from)) {
|
117
|
+
return new URL(rule.to + absoluteURLString.replace(rule.from, ''));
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
if (importMap.imports) {
|
125
|
+
for (const rule of importMap.imports) {
|
126
|
+
if (absoluteURLString.startsWith(rule.from)) {
|
127
|
+
return new URL(rule.to + absoluteURLString.replace(rule.from, ''));
|
128
|
+
}
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
return absoluteURL;
|
133
|
+
}
|
134
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { URL } from 'url';
|
2
|
+
import * as PropertySymbol from '../PropertySymbol.js';
|
3
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
4
|
+
import Location from '../location/Location.js';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Module URL utility.
|
8
|
+
*/
|
9
|
+
export default class ModuleURLUtility {
|
10
|
+
/**
|
11
|
+
* Returns module URL based on parent URL and the import map.
|
12
|
+
*
|
13
|
+
* @param window Window.
|
14
|
+
* @param parentURL Parent URL.
|
15
|
+
* @param url Module URL.
|
16
|
+
*/
|
17
|
+
public static getURL(
|
18
|
+
window: BrowserWindow,
|
19
|
+
parentURL: URL | Location | string,
|
20
|
+
url: string
|
21
|
+
): URL {
|
22
|
+
const parentURLString = typeof parentURL === 'string' ? parentURL : parentURL.href;
|
23
|
+
const importMap = window[PropertySymbol.moduleImportMap];
|
24
|
+
|
25
|
+
if (!importMap) {
|
26
|
+
return new URL(url, parentURLString);
|
27
|
+
}
|
28
|
+
|
29
|
+
if (importMap.scopes.length) {
|
30
|
+
for (const scope of importMap.scopes) {
|
31
|
+
if (parentURLString.includes(scope.scope)) {
|
32
|
+
for (const rule of scope.rules) {
|
33
|
+
if (url.startsWith(rule.from)) {
|
34
|
+
return new URL(rule.to + url.replace(rule.from, ''), parentURLString);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
if (importMap.imports.length) {
|
42
|
+
for (const rule of importMap.imports) {
|
43
|
+
if (url.startsWith(rule.from)) {
|
44
|
+
return new URL(rule.to + url.replace(rule.from, ''), parentURLString);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
return new URL(url, parentURLString);
|
50
|
+
}
|
51
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
2
|
+
import { URL } from 'url';
|
3
|
+
import IModule from './IModule.js';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* CSS module.
|
7
|
+
*/
|
8
|
+
export default class UnresolvedModule implements IModule {
|
9
|
+
public readonly url: URL;
|
10
|
+
readonly #window: BrowserWindow;
|
11
|
+
#hooks: { resolve: (value: unknown) => void; reject: (error: Error) => void }[] = [];
|
12
|
+
#error: Error | null = null;
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Constructor.
|
16
|
+
*
|
17
|
+
* @param window Window.
|
18
|
+
* @param url Module URL.
|
19
|
+
*/
|
20
|
+
constructor(window: BrowserWindow, url: URL) {
|
21
|
+
this.#window = window;
|
22
|
+
this.url = url;
|
23
|
+
}
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Compiles and evaluates the module.
|
27
|
+
*
|
28
|
+
* @returns Module exports.
|
29
|
+
*/
|
30
|
+
public async evaluate(): Promise<null> {
|
31
|
+
throw new this.#window.TypeError('Unresolved module. We should never end up here.');
|
32
|
+
}
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Compiles and preloads the module and its imports.
|
36
|
+
*
|
37
|
+
* @returns Promise.
|
38
|
+
*/
|
39
|
+
public async preload(): Promise<void> {
|
40
|
+
throw new this.#window.TypeError('Unresolved module. We should never end up here.');
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Add a hook to be called when the module is resolved.
|
45
|
+
*
|
46
|
+
* @param resolve Resolve.
|
47
|
+
* @param reject Reject.
|
48
|
+
*/
|
49
|
+
public addResolveListener(
|
50
|
+
resolve: (value: unknown) => void,
|
51
|
+
reject: (error: Error) => void
|
52
|
+
): void {
|
53
|
+
if (this.#error) {
|
54
|
+
reject(this.#error);
|
55
|
+
return;
|
56
|
+
}
|
57
|
+
this.#hooks.push({ resolve, reject });
|
58
|
+
}
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Resolves the module.
|
62
|
+
*
|
63
|
+
* @param [error] Error.
|
64
|
+
*/
|
65
|
+
public resolve(error?: Error): void {
|
66
|
+
if (error) {
|
67
|
+
this.#error = error;
|
68
|
+
}
|
69
|
+
for (const hook of this.#hooks) {
|
70
|
+
if (error) {
|
71
|
+
hook.reject(error);
|
72
|
+
} else {
|
73
|
+
hook.resolve(null);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
@@ -49,6 +49,7 @@ import NodeFactory from '../NodeFactory.js';
|
|
49
49
|
import SVGElementConfig from '../../config/SVGElementConfig.js';
|
50
50
|
import StringUtility from '../../utilities/StringUtility.js';
|
51
51
|
import HTMLParser from '../../html-parser/HTMLParser.js';
|
52
|
+
import PreloadEntry from '../../fetch/preload/PreloadEntry.js';
|
52
53
|
|
53
54
|
const PROCESSING_INSTRUCTION_TARGET_REGEXP = /^[a-z][a-z0-9-]+$/;
|
54
55
|
|
@@ -80,6 +81,7 @@ export default class Document extends Node {
|
|
80
81
|
> = new Map();
|
81
82
|
public [PropertySymbol.contentType]: string = 'text/html';
|
82
83
|
public [PropertySymbol.xmlProcessingInstruction]: ProcessingInstruction | null = null;
|
84
|
+
public [PropertySymbol.preloads]: Map<string, PreloadEntry> = new Map();
|
83
85
|
public declare cloneNode: (deep?: boolean) => Document;
|
84
86
|
|
85
87
|
// Private properties
|
@@ -14,7 +14,6 @@ import Attr from '../attr/Attr.js';
|
|
14
14
|
import NamedNodeMap from './NamedNodeMap.js';
|
15
15
|
import Event from '../../event/Event.js';
|
16
16
|
import EventPhaseEnum from '../../event/EventPhaseEnum.js';
|
17
|
-
import WindowErrorUtility from '../../window/WindowErrorUtility.js';
|
18
17
|
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
19
18
|
import BrowserErrorCaptureEnum from '../../browser/enums/BrowserErrorCaptureEnum.js';
|
20
19
|
import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
@@ -33,6 +32,7 @@ import NodeFactory from '../NodeFactory.js';
|
|
33
32
|
import HTMLSerializer from '../../html-serializer/HTMLSerializer.js';
|
34
33
|
import HTMLParser from '../../html-parser/HTMLParser.js';
|
35
34
|
import IScrollToOptions from '../../window/IScrollToOptions.js';
|
35
|
+
import { AttributeUtility } from '../../utilities/AttributeUtility.js';
|
36
36
|
|
37
37
|
type InsertAdjacentPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';
|
38
38
|
|
@@ -259,6 +259,15 @@ export default class Element
|
|
259
259
|
return <DOMTokenList>this[PropertySymbol.classList];
|
260
260
|
}
|
261
261
|
|
262
|
+
/**
|
263
|
+
* Sets class list.
|
264
|
+
*
|
265
|
+
* @param value Class list.
|
266
|
+
*/
|
267
|
+
public set classList(value: string) {
|
268
|
+
this.setAttribute('class', value);
|
269
|
+
}
|
270
|
+
|
262
271
|
/**
|
263
272
|
* Returns ID.
|
264
273
|
*
|
@@ -669,6 +678,12 @@ export default class Element
|
|
669
678
|
* @param value Value.
|
670
679
|
*/
|
671
680
|
public setAttribute(name: string, value: string): void {
|
681
|
+
AttributeUtility.validateAttributeName(
|
682
|
+
name,
|
683
|
+
this[PropertySymbol.ownerDocument][PropertySymbol.contentType],
|
684
|
+
{ method: 'setAttribute', instance: 'Element' }
|
685
|
+
);
|
686
|
+
name = String(name);
|
672
687
|
const namespaceURI = this[PropertySymbol.namespaceURI];
|
673
688
|
// TODO: Is it correct to check for namespaceURI === NamespaceURI.svg?
|
674
689
|
const attribute =
|
@@ -1258,7 +1273,8 @@ export default class Element
|
|
1258
1273
|
*/
|
1259
1274
|
public override dispatchEvent(event: Event): boolean {
|
1260
1275
|
const returnValue = super.dispatchEvent(event);
|
1261
|
-
const
|
1276
|
+
const window = this[PropertySymbol.window];
|
1277
|
+
const browserSettings = new WindowBrowserContext(window).getSettings();
|
1262
1278
|
|
1263
1279
|
if (
|
1264
1280
|
browserSettings &&
|
@@ -1269,17 +1285,19 @@ export default class Element
|
|
1269
1285
|
const attribute = this.getAttribute('on' + event.type);
|
1270
1286
|
|
1271
1287
|
if (attribute && !event[PropertySymbol.immediatePropagationStopped]) {
|
1272
|
-
const code = `//# sourceURL=${
|
1288
|
+
const code = `//# sourceURL=${window.location.href}\n${attribute}`;
|
1273
1289
|
|
1274
1290
|
if (
|
1275
1291
|
browserSettings.disableErrorCapturing ||
|
1276
1292
|
browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
|
1277
1293
|
) {
|
1278
|
-
|
1294
|
+
window.eval(code);
|
1279
1295
|
} else {
|
1280
|
-
|
1281
|
-
|
1282
|
-
)
|
1296
|
+
try {
|
1297
|
+
window.eval(code);
|
1298
|
+
} catch (error) {
|
1299
|
+
window[PropertySymbol.dispatchError](error);
|
1300
|
+
}
|
1283
1301
|
}
|
1284
1302
|
}
|
1285
1303
|
}
|
@@ -294,6 +294,15 @@ export default class HTMLAnchorElement extends HTMLElement implements IHTMLHyper
|
|
294
294
|
return <DOMTokenList>this[PropertySymbol.relList];
|
295
295
|
}
|
296
296
|
|
297
|
+
/**
|
298
|
+
* Sets rel list.
|
299
|
+
*
|
300
|
+
* @param value Value.
|
301
|
+
*/
|
302
|
+
public set relList(value: string) {
|
303
|
+
this.setAttribute('rel', value);
|
304
|
+
}
|
305
|
+
|
297
306
|
/**
|
298
307
|
* Returns search.
|
299
308
|
*
|
@@ -158,6 +158,15 @@ export default class HTMLAreaElement extends HTMLElement implements IHTMLHyperli
|
|
158
158
|
return <DOMTokenList>this[PropertySymbol.relList];
|
159
159
|
}
|
160
160
|
|
161
|
+
/**
|
162
|
+
* Sets rel list.
|
163
|
+
*
|
164
|
+
* @param value Value.
|
165
|
+
*/
|
166
|
+
public set relList(value: string) {
|
167
|
+
this.setAttribute('rel', value);
|
168
|
+
}
|
169
|
+
|
161
170
|
/**
|
162
171
|
* Returns target.
|
163
172
|
*
|
@@ -746,6 +746,9 @@ export default class HTMLElement extends Element {
|
|
746
746
|
}
|
747
747
|
|
748
748
|
if (newElement[PropertySymbol.isConnected]) {
|
749
|
+
if (newElement[PropertySymbol.shadowRoot]) {
|
750
|
+
newElement[PropertySymbol.shadowRoot][PropertySymbol.isConnected] = true;
|
751
|
+
}
|
749
752
|
newElement[PropertySymbol.connectedToDocument]();
|
750
753
|
}
|
751
754
|
}
|
@@ -9,7 +9,6 @@ import DOMTokenList from '../../dom/DOMTokenList.js';
|
|
9
9
|
import Attr from '../attr/Attr.js';
|
10
10
|
import BrowserFrameFactory from '../../browser/utilities/BrowserFrameFactory.js';
|
11
11
|
import BrowserFrameURL from '../../browser/utilities/BrowserFrameURL.js';
|
12
|
-
import WindowErrorUtility from '../../window/WindowErrorUtility.js';
|
13
12
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
14
13
|
import IRequestReferrerPolicy from '../../fetch/types/IRequestReferrerPolicy.js';
|
15
14
|
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
@@ -375,13 +374,12 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
375
374
|
}
|
376
375
|
|
377
376
|
if (browserFrame.page.context.browser.settings.disableIframePageLoading) {
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
`Failed to load iframe page "${targetURL.href}". Iframe page loading is disabled.`,
|
382
|
-
DOMExceptionNameEnum.notSupportedError
|
383
|
-
)
|
377
|
+
const error = new window.DOMException(
|
378
|
+
`Failed to load iframe page "${targetURL.href}". Iframe page loading is disabled.`,
|
379
|
+
DOMExceptionNameEnum.notSupportedError
|
384
380
|
);
|
381
|
+
browserFrame.page?.console.error(error);
|
382
|
+
this.dispatchEvent(new Event('error'));
|
385
383
|
return;
|
386
384
|
}
|
387
385
|
|
@@ -400,7 +398,10 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
400
398
|
referrerPolicy: <IRequestReferrerPolicy>this.referrerPolicy
|
401
399
|
})
|
402
400
|
.then(() => this.dispatchEvent(new Event('load')))
|
403
|
-
.catch((error) =>
|
401
|
+
.catch((error) => {
|
402
|
+
browserFrame.page?.console.error(error);
|
403
|
+
this.dispatchEvent(new Event('error'));
|
404
|
+
});
|
404
405
|
|
405
406
|
this.#contentWindowContainer.window = isSameOrigin
|
406
407
|
? this.#iframe.window
|