happy-dom 15.0.0 → 15.2.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.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/cjs/ClassMethodBinder.cjs +8 -6
- package/cjs/ClassMethodBinder.cjs.map +1 -1
- package/cjs/ClassMethodBinder.d.ts +4 -2
- package/cjs/ClassMethodBinder.d.ts.map +1 -1
- package/cjs/PropertySymbol.cjs +20 -9
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +15 -4
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.cjs +64 -35
- package/cjs/async-task-manager/AsyncTaskManager.cjs.map +1 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts +11 -1
- package/cjs/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/cjs/browser/Browser.cjs +30 -0
- package/cjs/browser/Browser.cjs.map +1 -1
- package/cjs/browser/Browser.d.ts +3 -0
- package/cjs/browser/Browser.d.ts.map +1 -1
- package/cjs/browser/BrowserFrame.cjs +3 -7
- package/cjs/browser/BrowserFrame.cjs.map +1 -1
- package/cjs/browser/BrowserFrame.d.ts +1 -4
- package/cjs/browser/BrowserFrame.d.ts.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.cjs +2 -1
- package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
- package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowser.cjs +30 -0
- package/cjs/browser/detached-browser/DetachedBrowser.cjs.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowser.d.ts +3 -0
- package/cjs/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs +3 -7
- package/cjs/browser/detached-browser/DetachedBrowserFrame.cjs.map +1 -1
- package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
- package/cjs/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
- package/cjs/browser/types/IBrowser.cjs +24 -0
- package/cjs/browser/types/IBrowser.cjs.map +1 -1
- package/cjs/browser/types/IBrowser.d.ts +3 -0
- package/cjs/browser/types/IBrowser.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserFrame.d.ts +0 -3
- package/cjs/browser/types/IBrowserFrame.d.ts.map +1 -1
- package/cjs/browser/types/IBrowserSettings.d.ts +1 -0
- package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserExceptionObserver.cjs +100 -0
- package/cjs/browser/utilities/BrowserExceptionObserver.cjs.map +1 -0
- package/{lib/browser/utilities/BrowserFrameExceptionObserver.d.ts → cjs/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
- package/cjs/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
- package/cjs/browser/utilities/BrowserFrameFactory.cjs +27 -35
- package/cjs/browser/utilities/BrowserFrameFactory.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs +52 -29
- package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
- package/cjs/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/cjs/clipboard/Clipboard.cjs +18 -15
- package/cjs/clipboard/Clipboard.cjs.map +1 -1
- package/cjs/clipboard/Clipboard.d.ts +2 -2
- package/cjs/clipboard/Clipboard.d.ts.map +1 -1
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +27 -4
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +6 -5
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs +5 -5
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.cjs.map +1 -1
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
- package/cjs/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
- package/cjs/custom-element/CustomElementRegistry.cjs +37 -17
- package/cjs/custom-element/CustomElementRegistry.cjs.map +1 -1
- package/cjs/custom-element/CustomElementRegistry.d.ts +2 -3
- package/cjs/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/cjs/dom-implementation/DOMImplementation.cjs +12 -7
- package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
- package/cjs/dom-implementation/DOMImplementation.d.ts +7 -3
- package/cjs/dom-implementation/DOMImplementation.d.ts.map +1 -1
- package/cjs/dom-parser/DOMParser.cjs +6 -15
- package/cjs/dom-parser/DOMParser.cjs.map +1 -1
- package/cjs/dom-parser/DOMParser.d.ts +2 -6
- package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
- package/cjs/event/Event.cjs +76 -18
- package/cjs/event/Event.cjs.map +1 -1
- package/cjs/event/Event.d.ts +49 -7
- package/cjs/event/Event.d.ts.map +1 -1
- package/cjs/event/EventTarget.cjs +153 -141
- package/cjs/event/EventTarget.cjs.map +1 -1
- package/cjs/event/EventTarget.d.ts +12 -8
- package/cjs/event/EventTarget.d.ts.map +1 -1
- package/cjs/event/MessagePort.cjs.map +1 -1
- package/cjs/event/MessagePort.d.ts +1 -2
- package/cjs/event/MessagePort.d.ts.map +1 -1
- package/cjs/event/{IEventListener.cjs → TEventListener.cjs} +1 -1
- package/cjs/event/TEventListener.cjs.map +1 -0
- package/cjs/event/TEventListener.d.ts +5 -0
- package/cjs/event/TEventListener.d.ts.map +1 -0
- package/cjs/event/TEventListenerFunction.cjs +3 -0
- package/cjs/event/TEventListenerFunction.cjs.map +1 -0
- package/cjs/event/TEventListenerFunction.d.ts +4 -0
- package/cjs/event/TEventListenerFunction.d.ts.map +1 -0
- package/cjs/event/{IMessagePort.cjs → TEventListenerObject.cjs} +1 -1
- package/cjs/event/TEventListenerObject.cjs.map +1 -0
- package/cjs/event/TEventListenerObject.d.ts +6 -0
- package/cjs/event/TEventListenerObject.d.ts.map +1 -0
- package/cjs/event/events/CustomEvent.cjs +38 -6
- package/cjs/event/events/CustomEvent.cjs.map +1 -1
- package/cjs/event/events/CustomEvent.d.ts +8 -1
- package/cjs/event/events/CustomEvent.d.ts.map +1 -1
- package/cjs/event/events/IErrorEventInit.d.ts.map +1 -1
- package/cjs/event/events/IMessageEventInit.d.ts +2 -2
- package/cjs/event/events/IMessageEventInit.d.ts.map +1 -1
- package/cjs/event/events/MessageEvent.cjs.map +1 -1
- package/cjs/event/events/MessageEvent.d.ts +2 -2
- package/cjs/event/events/MessageEvent.d.ts.map +1 -1
- package/cjs/fetch/AbortController.cjs +2 -11
- package/cjs/fetch/AbortController.cjs.map +1 -1
- package/cjs/fetch/AbortController.d.ts +3 -4
- package/cjs/fetch/AbortController.d.ts.map +1 -1
- package/cjs/fetch/AbortSignal.cjs +48 -4
- package/cjs/fetch/AbortSignal.cjs.map +1 -1
- package/cjs/fetch/AbortSignal.d.ts +19 -0
- package/cjs/fetch/AbortSignal.d.ts.map +1 -1
- package/cjs/fetch/Fetch.cjs +24 -14
- package/cjs/fetch/Fetch.cjs.map +1 -1
- package/cjs/fetch/Fetch.d.ts.map +1 -1
- package/cjs/fetch/Request.cjs +62 -45
- package/cjs/fetch/Request.cjs.map +1 -1
- package/cjs/fetch/Request.d.ts +3 -14
- package/cjs/fetch/Request.d.ts.map +1 -1
- package/cjs/fetch/ResourceFetch.cjs +2 -3
- package/cjs/fetch/ResourceFetch.cjs.map +1 -1
- package/cjs/fetch/ResourceFetch.d.ts.map +1 -1
- package/cjs/fetch/Response.cjs +63 -40
- package/cjs/fetch/Response.cjs.map +1 -1
- package/cjs/fetch/Response.d.ts +3 -10
- package/cjs/fetch/Response.d.ts.map +1 -1
- package/cjs/fetch/SyncFetch.cjs +12 -13
- package/cjs/fetch/SyncFetch.cjs.map +1 -1
- package/cjs/fetch/SyncFetch.d.ts.map +1 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.cjs +12 -6
- package/cjs/fetch/multipart/MultipartFormDataParser.cjs.map +1 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
- package/cjs/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
- package/cjs/fetch/multipart/MultipartReader.cjs +5 -3
- package/cjs/fetch/multipart/MultipartReader.cjs.map +1 -1
- package/cjs/fetch/multipart/MultipartReader.d.ts +4 -1
- package/cjs/fetch/multipart/MultipartReader.d.ts.map +1 -1
- package/cjs/fetch/utilities/FetchBodyUtility.cjs +10 -5
- package/cjs/fetch/utilities/FetchBodyUtility.cjs.map +1 -1
- package/cjs/fetch/utilities/FetchBodyUtility.d.ts +5 -2
- package/cjs/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
- package/cjs/file/FileReader.cjs +11 -11
- package/cjs/file/FileReader.cjs.map +1 -1
- package/cjs/file/FileReader.d.ts +1 -4
- package/cjs/file/FileReader.d.ts.map +1 -1
- package/cjs/history/History.cjs +28 -14
- package/cjs/history/History.cjs.map +1 -1
- package/cjs/history/History.d.ts +2 -2
- package/cjs/history/History.d.ts.map +1 -1
- package/cjs/index.d.ts +2 -2
- package/cjs/location/Location.cjs +43 -22
- package/cjs/location/Location.cjs.map +1 -1
- package/cjs/location/Location.d.ts +4 -0
- package/cjs/location/Location.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryItem.cjs +26 -26
- package/cjs/match-media/MediaQueryItem.cjs.map +1 -1
- package/cjs/match-media/MediaQueryItem.d.ts +3 -3
- package/cjs/match-media/MediaQueryItem.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryList.cjs +7 -7
- package/cjs/match-media/MediaQueryList.cjs.map +1 -1
- package/cjs/match-media/MediaQueryList.d.ts +5 -5
- package/cjs/match-media/MediaQueryList.d.ts.map +1 -1
- package/cjs/match-media/MediaQueryParser.cjs +4 -4
- package/cjs/match-media/MediaQueryParser.cjs.map +1 -1
- package/cjs/match-media/MediaQueryParser.d.ts +2 -2
- package/cjs/match-media/MediaQueryParser.d.ts.map +1 -1
- package/cjs/mutation-observer/MutationObserver.cjs +17 -15
- package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
- package/cjs/mutation-observer/MutationObserver.d.ts +3 -0
- package/cjs/mutation-observer/MutationObserver.d.ts.map +1 -1
- package/cjs/navigator/Navigator.cjs +13 -10
- package/cjs/navigator/Navigator.cjs.map +1 -1
- package/cjs/navigator/Navigator.d.ts +2 -2
- package/cjs/navigator/Navigator.d.ts.map +1 -1
- package/cjs/nodes/NodeFactory.cjs +1 -1
- package/cjs/nodes/NodeFactory.cjs.map +1 -1
- package/cjs/nodes/document/Document.cjs +69 -51
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +9 -16
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/document/DocumentReadyStateManager.cjs +12 -10
- package/cjs/nodes/document/DocumentReadyStateManager.cjs.map +1 -1
- package/cjs/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +33 -20
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +7 -3
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/HTMLCollection.cjs +1 -4
- package/cjs/nodes/element/HTMLCollection.cjs.map +1 -1
- package/cjs/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.cjs +4 -0
- package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs +0 -9
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +5 -5
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +7 -8
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-audio-element/Audio.cjs +28 -0
- package/cjs/nodes/html-audio-element/Audio.cjs.map +1 -1
- package/cjs/nodes/html-audio-element/Audio.d.ts +4 -0
- package/cjs/nodes/html-audio-element/Audio.d.ts.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +63 -35
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs +2 -4
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.cjs.map +1 -1
- package/cjs/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.cjs +2 -6
- package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.d.ts +1 -10
- package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +130 -89
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts +14 -2
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs +6 -7
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +30 -38
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-image-element/Image.cjs +28 -0
- package/cjs/nodes/html-image-element/Image.cjs.map +1 -1
- package/cjs/nodes/html-image-element/Image.d.ts +4 -0
- package/cjs/nodes/html-image-element/Image.d.ts.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +88 -56
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +4 -3
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +10 -16
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +12 -16
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/MediaStream.cjs +3 -0
- package/cjs/nodes/html-media-element/MediaStream.cjs.map +1 -1
- package/cjs/nodes/html-media-element/MediaStream.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/MediaStreamTrack.cjs +3 -0
- package/cjs/nodes/html-media-element/MediaStreamTrack.cjs.map +1 -1
- package/cjs/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/TextTrack.cjs +3 -0
- package/cjs/nodes/html-media-element/TextTrack.cjs.map +1 -1
- package/cjs/nodes/html-media-element/TextTrack.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/TextTrackCue.cjs +3 -0
- package/cjs/nodes/html-media-element/TextTrackCue.cjs.map +1 -1
- package/cjs/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/VTTCue.cjs +7 -8
- package/cjs/nodes/html-media-element/VTTCue.cjs.map +1 -1
- package/cjs/nodes/html-media-element/VTTCue.d.ts +1 -4
- package/cjs/nodes/html-media-element/VTTCue.d.ts.map +1 -1
- package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs +30 -6
- package/cjs/nodes/html-meter-element/HTMLMeterElement.cjs.map +1 -1
- package/cjs/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
- package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs +26 -2
- package/cjs/nodes/html-progress-element/HTMLProgressElement.cjs.map +1 -1
- package/cjs/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +21 -27
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +5 -5
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs +8 -9
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs +5 -6
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs.map +1 -1
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +1 -2
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-track-element/HTMLTrackElement.cjs +1 -2
- package/cjs/nodes/html-track-element/HTMLTrackElement.cjs.map +1 -1
- package/cjs/nodes/node/Node.cjs +23 -22
- package/cjs/nodes/node/Node.cjs.map +1 -1
- package/cjs/nodes/node/Node.d.ts +1 -2
- package/cjs/nodes/node/Node.d.ts.map +1 -1
- package/cjs/nodes/node/NodeList.cjs +4 -6
- package/cjs/nodes/node/NodeList.cjs.map +1 -1
- package/cjs/nodes/node/NodeList.d.ts.map +1 -1
- package/cjs/nodes/text/Text.cjs +1 -2
- package/cjs/nodes/text/Text.cjs.map +1 -1
- package/cjs/nodes/text/Text.d.ts.map +1 -1
- package/cjs/permissions/Permissions.cjs +13 -2
- package/cjs/permissions/Permissions.cjs.map +1 -1
- package/cjs/permissions/Permissions.d.ts +7 -0
- package/cjs/permissions/Permissions.d.ts.map +1 -1
- package/cjs/query-selector/QuerySelector.cjs +12 -10
- package/cjs/query-selector/QuerySelector.cjs.map +1 -1
- package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
- package/cjs/range/Range.cjs +26 -23
- package/cjs/range/Range.cjs.map +1 -1
- package/cjs/range/Range.d.ts +2 -2
- package/cjs/range/Range.d.ts.map +1 -1
- package/cjs/selection/Selection.cjs +16 -17
- package/cjs/selection/Selection.cjs.map +1 -1
- package/cjs/selection/Selection.d.ts.map +1 -1
- package/cjs/window/BrowserWindow.cjs +136 -266
- package/cjs/window/BrowserWindow.cjs.map +1 -1
- package/cjs/window/BrowserWindow.d.ts +115 -117
- package/cjs/window/BrowserWindow.d.ts.map +1 -1
- package/cjs/window/VMGlobalPropertyScript.cjs +0 -1
- package/cjs/window/VMGlobalPropertyScript.cjs.map +1 -1
- package/cjs/window/VMGlobalPropertyScript.d.ts.map +1 -1
- package/cjs/window/WindowBrowserContext.cjs +117 -0
- package/cjs/window/WindowBrowserContext.cjs.map +1 -0
- package/cjs/window/WindowBrowserContext.d.ts +75 -0
- package/cjs/window/WindowBrowserContext.d.ts.map +1 -0
- package/cjs/window/WindowClassExtender.cjs +332 -0
- package/cjs/window/WindowClassExtender.cjs.map +1 -0
- package/cjs/window/WindowClassExtender.d.ts +15 -0
- package/cjs/window/WindowClassExtender.d.ts.map +1 -0
- package/cjs/window/WindowPageOpenUtility.cjs +11 -1
- package/cjs/window/WindowPageOpenUtility.cjs.map +1 -1
- package/cjs/window/WindowPageOpenUtility.d.ts.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.cjs +33 -33
- package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.d.ts +2 -11
- package/cjs/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/lib/ClassMethodBinder.d.ts +4 -2
- package/lib/ClassMethodBinder.d.ts.map +1 -1
- package/lib/ClassMethodBinder.js +8 -6
- package/lib/ClassMethodBinder.js.map +1 -1
- package/lib/PropertySymbol.d.ts +15 -4
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +15 -4
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts +11 -1
- package/lib/async-task-manager/AsyncTaskManager.d.ts.map +1 -1
- package/lib/async-task-manager/AsyncTaskManager.js +64 -35
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
- package/lib/browser/Browser.d.ts +3 -0
- package/lib/browser/Browser.d.ts.map +1 -1
- package/lib/browser/Browser.js +7 -0
- package/lib/browser/Browser.js.map +1 -1
- package/lib/browser/BrowserFrame.d.ts +1 -4
- package/lib/browser/BrowserFrame.d.ts.map +1 -1
- package/lib/browser/BrowserFrame.js +3 -7
- package/lib/browser/BrowserFrame.js.map +1 -1
- package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
- package/lib/browser/DefaultBrowserSettings.js +2 -1
- package/lib/browser/DefaultBrowserSettings.js.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowser.d.ts +3 -0
- package/lib/browser/detached-browser/DetachedBrowser.d.ts.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowser.js +7 -0
- package/lib/browser/detached-browser/DetachedBrowser.js.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts +1 -4
- package/lib/browser/detached-browser/DetachedBrowserFrame.d.ts.map +1 -1
- package/lib/browser/detached-browser/DetachedBrowserFrame.js +3 -7
- package/lib/browser/detached-browser/DetachedBrowserFrame.js.map +1 -1
- package/lib/browser/types/IBrowser.d.ts +3 -0
- package/lib/browser/types/IBrowser.d.ts.map +1 -1
- package/lib/browser/types/IBrowser.js +1 -1
- package/lib/browser/types/IBrowser.js.map +1 -1
- package/lib/browser/types/IBrowserFrame.d.ts +0 -3
- package/lib/browser/types/IBrowserFrame.d.ts.map +1 -1
- package/lib/browser/types/IBrowserSettings.d.ts +1 -0
- package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
- package/{cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts → lib/browser/utilities/BrowserExceptionObserver.d.ts} +9 -7
- package/lib/browser/utilities/BrowserExceptionObserver.d.ts.map +1 -0
- package/lib/browser/utilities/BrowserExceptionObserver.js +97 -0
- package/lib/browser/utilities/BrowserExceptionObserver.js.map +1 -0
- package/lib/browser/utilities/BrowserFrameFactory.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameFactory.js +27 -35
- package/lib/browser/utilities/BrowserFrameFactory.js.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.d.ts.map +1 -1
- package/lib/browser/utilities/BrowserFrameNavigator.js +52 -29
- package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
- package/lib/clipboard/Clipboard.d.ts +2 -2
- package/lib/clipboard/Clipboard.d.ts.map +1 -1
- package/lib/clipboard/Clipboard.js +18 -15
- package/lib/clipboard/Clipboard.js.map +1 -1
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js +4 -4
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +6 -5
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts +2 -2
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.d.ts.map +1 -1
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js +5 -5
- package/lib/css/declaration/measurement-converter/CSSMeasurementConverter.js.map +1 -1
- package/lib/custom-element/CustomElementRegistry.d.ts +2 -3
- package/lib/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/lib/custom-element/CustomElementRegistry.js +37 -17
- package/lib/custom-element/CustomElementRegistry.js.map +1 -1
- package/lib/dom-implementation/DOMImplementation.d.ts +7 -3
- package/lib/dom-implementation/DOMImplementation.d.ts.map +1 -1
- package/lib/dom-implementation/DOMImplementation.js +12 -7
- package/lib/dom-implementation/DOMImplementation.js.map +1 -1
- package/lib/dom-parser/DOMParser.d.ts +2 -6
- package/lib/dom-parser/DOMParser.d.ts.map +1 -1
- package/lib/dom-parser/DOMParser.js +6 -15
- package/lib/dom-parser/DOMParser.js.map +1 -1
- package/lib/event/Event.d.ts +49 -7
- package/lib/event/Event.d.ts.map +1 -1
- package/lib/event/Event.js +76 -18
- package/lib/event/Event.js.map +1 -1
- package/lib/event/EventTarget.d.ts +12 -8
- package/lib/event/EventTarget.d.ts.map +1 -1
- package/lib/event/EventTarget.js +153 -141
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/event/MessagePort.d.ts +1 -2
- package/lib/event/MessagePort.d.ts.map +1 -1
- package/lib/event/MessagePort.js.map +1 -1
- package/lib/event/TEventListener.d.ts +5 -0
- package/lib/event/TEventListener.d.ts.map +1 -0
- package/lib/event/TEventListener.js +2 -0
- package/lib/event/TEventListener.js.map +1 -0
- package/lib/event/TEventListenerFunction.d.ts +4 -0
- package/lib/event/TEventListenerFunction.d.ts.map +1 -0
- package/lib/event/TEventListenerFunction.js +2 -0
- package/lib/event/TEventListenerFunction.js.map +1 -0
- package/lib/event/TEventListenerObject.d.ts +6 -0
- package/lib/event/TEventListenerObject.d.ts.map +1 -0
- package/lib/event/TEventListenerObject.js +2 -0
- package/lib/event/TEventListenerObject.js.map +1 -0
- package/lib/event/events/CustomEvent.d.ts +8 -1
- package/lib/event/events/CustomEvent.d.ts.map +1 -1
- package/lib/event/events/CustomEvent.js +15 -6
- package/lib/event/events/CustomEvent.js.map +1 -1
- package/lib/event/events/IErrorEventInit.d.ts.map +1 -1
- package/lib/event/events/IMessageEventInit.d.ts +2 -2
- package/lib/event/events/IMessageEventInit.d.ts.map +1 -1
- package/lib/event/events/MessageEvent.d.ts +2 -2
- package/lib/event/events/MessageEvent.d.ts.map +1 -1
- package/lib/event/events/MessageEvent.js.map +1 -1
- package/lib/fetch/AbortController.d.ts +3 -4
- package/lib/fetch/AbortController.d.ts.map +1 -1
- package/lib/fetch/AbortController.js +2 -8
- package/lib/fetch/AbortController.js.map +1 -1
- package/lib/fetch/AbortSignal.d.ts +19 -0
- package/lib/fetch/AbortSignal.d.ts.map +1 -1
- package/lib/fetch/AbortSignal.js +48 -4
- package/lib/fetch/AbortSignal.js.map +1 -1
- package/lib/fetch/Fetch.d.ts.map +1 -1
- package/lib/fetch/Fetch.js +24 -14
- package/lib/fetch/Fetch.js.map +1 -1
- package/lib/fetch/Request.d.ts +3 -14
- package/lib/fetch/Request.d.ts.map +1 -1
- package/lib/fetch/Request.js +62 -45
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/ResourceFetch.d.ts.map +1 -1
- package/lib/fetch/ResourceFetch.js +2 -3
- package/lib/fetch/ResourceFetch.js.map +1 -1
- package/lib/fetch/Response.d.ts +3 -10
- package/lib/fetch/Response.d.ts.map +1 -1
- package/lib/fetch/Response.js +63 -40
- package/lib/fetch/Response.js.map +1 -1
- package/lib/fetch/SyncFetch.d.ts.map +1 -1
- package/lib/fetch/SyncFetch.js +12 -13
- package/lib/fetch/SyncFetch.js.map +1 -1
- package/lib/fetch/multipart/MultipartFormDataParser.d.ts +3 -1
- package/lib/fetch/multipart/MultipartFormDataParser.d.ts.map +1 -1
- package/lib/fetch/multipart/MultipartFormDataParser.js +12 -6
- package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -1
- package/lib/fetch/multipart/MultipartReader.d.ts +4 -1
- package/lib/fetch/multipart/MultipartReader.d.ts.map +1 -1
- package/lib/fetch/multipart/MultipartReader.js +5 -3
- package/lib/fetch/multipart/MultipartReader.js.map +1 -1
- package/lib/fetch/utilities/FetchBodyUtility.d.ts +5 -2
- package/lib/fetch/utilities/FetchBodyUtility.d.ts.map +1 -1
- package/lib/fetch/utilities/FetchBodyUtility.js +10 -5
- package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -1
- package/lib/file/FileReader.d.ts +1 -4
- package/lib/file/FileReader.d.ts.map +1 -1
- package/lib/file/FileReader.js +11 -11
- package/lib/file/FileReader.js.map +1 -1
- package/lib/history/History.d.ts +2 -2
- package/lib/history/History.d.ts.map +1 -1
- package/lib/history/History.js +28 -14
- package/lib/history/History.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/location/Location.d.ts +4 -0
- package/lib/location/Location.d.ts.map +1 -1
- package/lib/location/Location.js +43 -22
- package/lib/location/Location.js.map +1 -1
- package/lib/match-media/MediaQueryItem.d.ts +3 -3
- package/lib/match-media/MediaQueryItem.d.ts.map +1 -1
- package/lib/match-media/MediaQueryItem.js +26 -26
- package/lib/match-media/MediaQueryItem.js.map +1 -1
- package/lib/match-media/MediaQueryList.d.ts +5 -5
- package/lib/match-media/MediaQueryList.d.ts.map +1 -1
- package/lib/match-media/MediaQueryList.js +7 -7
- package/lib/match-media/MediaQueryList.js.map +1 -1
- package/lib/match-media/MediaQueryParser.d.ts +2 -2
- package/lib/match-media/MediaQueryParser.d.ts.map +1 -1
- package/lib/match-media/MediaQueryParser.js +4 -4
- package/lib/match-media/MediaQueryParser.js.map +1 -1
- package/lib/mutation-observer/MutationObserver.d.ts +3 -0
- package/lib/mutation-observer/MutationObserver.d.ts.map +1 -1
- package/lib/mutation-observer/MutationObserver.js +17 -15
- package/lib/mutation-observer/MutationObserver.js.map +1 -1
- package/lib/navigator/Navigator.d.ts +2 -2
- package/lib/navigator/Navigator.d.ts.map +1 -1
- package/lib/navigator/Navigator.js +13 -10
- package/lib/navigator/Navigator.js.map +1 -1
- package/lib/nodes/NodeFactory.js +1 -1
- package/lib/nodes/NodeFactory.js.map +1 -1
- package/lib/nodes/document/Document.d.ts +9 -16
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +69 -51
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document/DocumentReadyStateManager.d.ts.map +1 -1
- package/lib/nodes/document/DocumentReadyStateManager.js +12 -10
- package/lib/nodes/document/DocumentReadyStateManager.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +7 -3
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +33 -20
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/lib/nodes/element/HTMLCollection.js +1 -4
- package/lib/nodes/element/HTMLCollection.js.map +1 -1
- package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMap.js +4 -0
- package/lib/nodes/element/NamedNodeMap.js.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.js +0 -6
- package/lib/nodes/element/NamedNodeMapProxyFactory.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +5 -5
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.js +7 -8
- package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
- package/lib/nodes/html-audio-element/Audio.d.ts +4 -0
- package/lib/nodes/html-audio-element/Audio.d.ts.map +1 -1
- package/lib/nodes/html-audio-element/Audio.js +5 -0
- package/lib/nodes/html-audio-element/Audio.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +27 -3
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js +63 -35
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.d.ts.map +1 -1
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.js +2 -4
- package/lib/nodes/html-canvas-element/HTMLCanvasElement.js.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.d.ts +1 -10
- package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.js +2 -6
- package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts +14 -2
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +130 -89
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts +1 -3
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.js +6 -7
- package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +0 -6
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +30 -38
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-image-element/Image.d.ts +4 -0
- package/lib/nodes/html-image-element/Image.d.ts.map +1 -1
- package/lib/nodes/html-image-element/Image.js +5 -0
- package/lib/nodes/html-image-element/Image.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +25 -0
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +88 -56
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts +8 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.js +4 -3
- package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +0 -6
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +10 -16
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +12 -16
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-media-element/MediaStream.d.ts.map +1 -1
- package/lib/nodes/html-media-element/MediaStream.js +3 -0
- package/lib/nodes/html-media-element/MediaStream.js.map +1 -1
- package/lib/nodes/html-media-element/MediaStreamTrack.d.ts.map +1 -1
- package/lib/nodes/html-media-element/MediaStreamTrack.js +3 -0
- package/lib/nodes/html-media-element/MediaStreamTrack.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrack.d.ts.map +1 -1
- package/lib/nodes/html-media-element/TextTrack.js +3 -0
- package/lib/nodes/html-media-element/TextTrack.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrackCue.d.ts.map +1 -1
- package/lib/nodes/html-media-element/TextTrackCue.js +3 -0
- package/lib/nodes/html-media-element/TextTrackCue.js.map +1 -1
- package/lib/nodes/html-media-element/VTTCue.d.ts +1 -4
- package/lib/nodes/html-media-element/VTTCue.d.ts.map +1 -1
- package/lib/nodes/html-media-element/VTTCue.js +7 -8
- package/lib/nodes/html-media-element/VTTCue.js.map +1 -1
- package/lib/nodes/html-meter-element/HTMLMeterElement.d.ts.map +1 -1
- package/lib/nodes/html-meter-element/HTMLMeterElement.js +7 -6
- package/lib/nodes/html-meter-element/HTMLMeterElement.js.map +1 -1
- package/lib/nodes/html-progress-element/HTMLProgressElement.d.ts.map +1 -1
- package/lib/nodes/html-progress-element/HTMLProgressElement.js +3 -2
- package/lib/nodes/html-progress-element/HTMLProgressElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +0 -6
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +21 -27
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +5 -5
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.js +8 -9
- package/lib/nodes/html-table-element/HTMLTableElement.js.map +1 -1
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.d.ts.map +1 -1
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.js +5 -6
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +1 -2
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/html-track-element/HTMLTrackElement.js +1 -2
- package/lib/nodes/html-track-element/HTMLTrackElement.js.map +1 -1
- package/lib/nodes/node/Node.d.ts +1 -2
- package/lib/nodes/node/Node.d.ts.map +1 -1
- package/lib/nodes/node/Node.js +23 -22
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/node/NodeList.d.ts.map +1 -1
- package/lib/nodes/node/NodeList.js +4 -6
- package/lib/nodes/node/NodeList.js.map +1 -1
- package/lib/nodes/text/Text.d.ts.map +1 -1
- package/lib/nodes/text/Text.js +1 -2
- package/lib/nodes/text/Text.js.map +1 -1
- package/lib/permissions/Permissions.d.ts +7 -0
- package/lib/permissions/Permissions.d.ts.map +1 -1
- package/lib/permissions/Permissions.js +13 -2
- package/lib/permissions/Permissions.js.map +1 -1
- package/lib/query-selector/QuerySelector.d.ts.map +1 -1
- package/lib/query-selector/QuerySelector.js +12 -10
- package/lib/query-selector/QuerySelector.js.map +1 -1
- package/lib/range/Range.d.ts +2 -2
- package/lib/range/Range.d.ts.map +1 -1
- package/lib/range/Range.js +26 -23
- package/lib/range/Range.js.map +1 -1
- package/lib/selection/Selection.d.ts.map +1 -1
- package/lib/selection/Selection.js +16 -17
- package/lib/selection/Selection.js.map +1 -1
- package/lib/window/BrowserWindow.d.ts +115 -117
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +140 -270
- package/lib/window/BrowserWindow.js.map +1 -1
- package/lib/window/VMGlobalPropertyScript.d.ts.map +1 -1
- package/lib/window/VMGlobalPropertyScript.js +0 -1
- package/lib/window/VMGlobalPropertyScript.js.map +1 -1
- package/lib/window/WindowBrowserContext.d.ts +75 -0
- package/lib/window/WindowBrowserContext.d.ts.map +1 -0
- package/lib/window/WindowBrowserContext.js +91 -0
- package/lib/window/WindowBrowserContext.js.map +1 -0
- package/lib/window/WindowClassExtender.d.ts +15 -0
- package/lib/window/WindowClassExtender.d.ts.map +1 -0
- package/lib/window/WindowClassExtender.js +303 -0
- package/lib/window/WindowClassExtender.js.map +1 -0
- package/lib/window/WindowPageOpenUtility.d.ts.map +1 -1
- package/lib/window/WindowPageOpenUtility.js +11 -1
- package/lib/window/WindowPageOpenUtility.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.d.ts +2 -11
- package/lib/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.js +33 -33
- package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
- package/package.json +1 -1
- package/src/ClassMethodBinder.ts +10 -7
- package/src/PropertySymbol.ts +15 -4
- package/src/async-task-manager/AsyncTaskManager.ts +71 -39
- package/src/browser/Browser.ts +7 -0
- package/src/browser/BrowserFrame.ts +3 -7
- package/src/browser/DefaultBrowserSettings.ts +2 -1
- package/src/browser/detached-browser/DetachedBrowser.ts +7 -0
- package/src/browser/detached-browser/DetachedBrowserFrame.ts +3 -7
- package/src/browser/types/IBrowser.ts +3 -0
- package/src/browser/types/IBrowserFrame.ts +0 -3
- package/src/browser/types/IBrowserSettings.ts +1 -0
- package/src/browser/utilities/BrowserExceptionObserver.ts +125 -0
- package/src/browser/utilities/BrowserFrameFactory.ts +29 -33
- package/src/browser/utilities/BrowserFrameNavigator.ts +60 -38
- package/src/clipboard/Clipboard.ts +20 -14
- package/src/css/declaration/AbstractCSSStyleDeclaration.ts +4 -4
- package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +6 -7
- package/src/css/declaration/measurement-converter/CSSMeasurementConverter.ts +6 -8
- package/src/custom-element/CustomElementRegistry.ts +45 -17
- package/src/dom-implementation/DOMImplementation.ts +15 -10
- package/src/dom-parser/DOMParser.ts +11 -16
- package/src/event/Event.ts +85 -18
- package/src/event/EventTarget.ts +200 -185
- package/src/event/MessagePort.ts +1 -2
- package/src/event/TEventListener.ts +6 -0
- package/src/event/TEventListenerFunction.ts +5 -0
- package/src/event/TEventListenerObject.ts +7 -0
- package/src/event/events/CustomEvent.ts +16 -6
- package/src/event/events/IErrorEventInit.ts +0 -1
- package/src/event/events/IMessageEventInit.ts +2 -2
- package/src/event/events/MessageEvent.ts +2 -2
- package/src/fetch/AbortController.ts +5 -7
- package/src/fetch/AbortSignal.ts +69 -4
- package/src/fetch/Fetch.ts +39 -15
- package/src/fetch/Request.ts +83 -55
- package/src/fetch/ResourceFetch.ts +2 -3
- package/src/fetch/Response.ts +80 -45
- package/src/fetch/SyncFetch.ts +15 -13
- package/src/fetch/multipart/MultipartFormDataParser.ts +16 -5
- package/src/fetch/multipart/MultipartReader.ts +6 -3
- package/src/fetch/utilities/FetchBodyUtility.ts +23 -8
- package/src/file/FileReader.ts +16 -12
- package/src/history/History.ts +31 -14
- package/src/index.ts +2 -2
- package/src/location/Location.ts +46 -22
- package/src/match-media/MediaQueryItem.ts +27 -30
- package/src/match-media/MediaQueryList.ts +11 -21
- package/src/match-media/MediaQueryParser.ts +5 -5
- package/src/mutation-observer/MutationObserver.ts +25 -17
- package/src/navigator/Navigator.ts +14 -12
- package/src/nodes/NodeFactory.ts +1 -1
- package/src/nodes/document/Document.ts +67 -62
- package/src/nodes/document/DocumentReadyStateManager.ts +13 -10
- package/src/nodes/element/Element.ts +44 -29
- package/src/nodes/element/HTMLCollection.ts +1 -4
- package/src/nodes/element/NamedNodeMap.ts +4 -0
- package/src/nodes/element/NamedNodeMapProxyFactory.ts +0 -6
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +4 -8
- package/src/nodes/html-area-element/HTMLAreaElement.ts +7 -11
- package/src/nodes/html-audio-element/Audio.ts +6 -0
- package/src/nodes/html-button-element/HTMLButtonElement.ts +67 -37
- package/src/nodes/html-canvas-element/HTMLCanvasElement.ts +5 -3
- package/src/nodes/html-document/HTMLDocument.ts +2 -8
- package/src/nodes/html-element/HTMLElement.ts +151 -129
- package/src/nodes/html-form-element/HTMLFormElement.ts +7 -9
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +31 -42
- package/src/nodes/html-image-element/Image.ts +6 -0
- package/src/nodes/html-input-element/HTMLInputElement.ts +96 -61
- package/src/nodes/html-label-element/HTMLLabelElement.ts +21 -6
- package/src/nodes/html-link-element/HTMLLinkElement.ts +12 -19
- package/src/nodes/html-media-element/HTMLMediaElement.ts +15 -12
- package/src/nodes/html-media-element/MediaStream.ts +6 -0
- package/src/nodes/html-media-element/MediaStreamTrack.ts +6 -0
- package/src/nodes/html-media-element/TextTrack.ts +6 -0
- package/src/nodes/html-media-element/TextTrackCue.ts +6 -0
- package/src/nodes/html-media-element/VTTCue.ts +10 -9
- package/src/nodes/html-meter-element/HTMLMeterElement.ts +8 -6
- package/src/nodes/html-progress-element/HTMLProgressElement.ts +4 -2
- package/src/nodes/html-script-element/HTMLScriptElement.ts +25 -45
- package/src/nodes/html-select-element/HTMLSelectElement.ts +6 -5
- package/src/nodes/html-table-element/HTMLTableElement.ts +8 -9
- package/src/nodes/html-table-row-element/HTMLTableRowElement.ts +5 -6
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +1 -2
- package/src/nodes/html-track-element/HTMLTrackElement.ts +1 -1
- package/src/nodes/node/Node.ts +28 -26
- package/src/nodes/node/NodeList.ts +10 -11
- package/src/nodes/text/Text.ts +1 -2
- package/src/permissions/Permissions.ts +17 -1
- package/src/query-selector/QuerySelector.ts +15 -10
- package/src/range/Range.ts +39 -23
- package/src/selection/Selection.ts +27 -17
- package/src/window/BrowserWindow.ts +308 -335
- package/src/window/VMGlobalPropertyScript.ts +0 -1
- package/src/window/WindowBrowserContext.ts +114 -0
- package/src/window/WindowClassExtender.ts +306 -0
- package/src/window/WindowPageOpenUtility.ts +11 -1
- package/src/xml-http-request/XMLHttpRequest.ts +39 -36
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs +0 -80
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.cjs.map +0 -1
- package/cjs/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
- package/cjs/event/IEventListener.cjs.map +0 -1
- package/cjs/event/IEventListener.d.ts +0 -13
- package/cjs/event/IEventListener.d.ts.map +0 -1
- package/cjs/event/IMessagePort.cjs.map +0 -1
- package/cjs/event/IMessagePort.d.ts +0 -24
- package/cjs/event/IMessagePort.d.ts.map +0 -1
- package/cjs/window/WindowBrowserSettingsReader.cjs +0 -72
- package/cjs/window/WindowBrowserSettingsReader.cjs.map +0 -1
- package/cjs/window/WindowBrowserSettingsReader.d.ts +0 -29
- package/cjs/window/WindowBrowserSettingsReader.d.ts.map +0 -1
- package/lib/browser/utilities/BrowserFrameExceptionObserver.d.ts.map +0 -1
- package/lib/browser/utilities/BrowserFrameExceptionObserver.js +0 -77
- package/lib/browser/utilities/BrowserFrameExceptionObserver.js.map +0 -1
- package/lib/event/IEventListener.d.ts +0 -13
- package/lib/event/IEventListener.d.ts.map +0 -1
- package/lib/event/IEventListener.js +0 -2
- package/lib/event/IEventListener.js.map +0 -1
- package/lib/event/IMessagePort.d.ts +0 -24
- package/lib/event/IMessagePort.d.ts.map +0 -1
- package/lib/event/IMessagePort.js +0 -2
- package/lib/event/IMessagePort.js.map +0 -1
- package/lib/window/WindowBrowserSettingsReader.d.ts +0 -29
- package/lib/window/WindowBrowserSettingsReader.d.ts.map +0 -1
- package/lib/window/WindowBrowserSettingsReader.js +0 -46
- package/lib/window/WindowBrowserSettingsReader.js.map +0 -1
- package/src/browser/utilities/BrowserFrameExceptionObserver.ts +0 -111
- package/src/event/IEventListener.ts +0 -13
- package/src/event/IMessagePort.ts +0 -26
- package/src/window/WindowBrowserSettingsReader.ts +0 -55
package/src/fetch/AbortSignal.ts
CHANGED
@@ -2,7 +2,7 @@ import EventTarget from '../event/EventTarget.js';
|
|
2
2
|
import * as PropertySymbol from '../PropertySymbol.js';
|
3
3
|
import Event from '../event/Event.js';
|
4
4
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
5
|
-
import
|
5
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
6
6
|
|
7
7
|
/**
|
8
8
|
* AbortSignal.
|
@@ -10,10 +10,30 @@ import DOMException from '../exception/DOMException.js';
|
|
10
10
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
|
11
11
|
*/
|
12
12
|
export default class AbortSignal extends EventTarget {
|
13
|
+
// Injected by WindowClassExtender
|
14
|
+
protected declare static [PropertySymbol.window]: BrowserWindow;
|
15
|
+
protected declare [PropertySymbol.window]: BrowserWindow;
|
16
|
+
|
17
|
+
// Public properties
|
13
18
|
public readonly aborted: boolean = false;
|
14
19
|
public readonly reason: Error | null = null;
|
20
|
+
|
21
|
+
// Events
|
15
22
|
public onabort: ((this: AbortSignal, event: Event) => void) | null = null;
|
16
23
|
|
24
|
+
/**
|
25
|
+
* Constructor.
|
26
|
+
*/
|
27
|
+
constructor() {
|
28
|
+
super();
|
29
|
+
|
30
|
+
if (!this[PropertySymbol.window]) {
|
31
|
+
throw new TypeError(
|
32
|
+
`Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
|
33
|
+
);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
17
37
|
/**
|
18
38
|
* Return a default description for the AbortSignal class.
|
19
39
|
*/
|
@@ -32,7 +52,10 @@ export default class AbortSignal extends EventTarget {
|
|
32
52
|
}
|
33
53
|
(<Error>this.reason) =
|
34
54
|
reason ||
|
35
|
-
new DOMException(
|
55
|
+
new this[PropertySymbol.window].DOMException(
|
56
|
+
'signal is aborted without reason',
|
57
|
+
DOMExceptionNameEnum.abortError
|
58
|
+
);
|
36
59
|
(<boolean>this.aborted) = true;
|
37
60
|
this.dispatchEvent(new Event('abort'));
|
38
61
|
}
|
@@ -53,11 +76,53 @@ export default class AbortSignal extends EventTarget {
|
|
53
76
|
* @returns AbortSignal instance.
|
54
77
|
*/
|
55
78
|
public static abort(reason?: Error): AbortSignal {
|
56
|
-
const signal = new
|
79
|
+
const signal = new this();
|
57
80
|
(<Error>signal.reason) =
|
58
81
|
reason ||
|
59
|
-
new DOMException(
|
82
|
+
new this[PropertySymbol.window].DOMException(
|
83
|
+
'signal is aborted without reason',
|
84
|
+
DOMExceptionNameEnum.abortError
|
85
|
+
);
|
60
86
|
(<boolean>signal.aborted) = true;
|
61
87
|
return signal;
|
62
88
|
}
|
89
|
+
|
90
|
+
/**
|
91
|
+
* Takes an iterable of abort signals and returns an AbortSignal that is
|
92
|
+
* aborted when any of the input iterable abort signals are aborted.
|
93
|
+
*
|
94
|
+
* The abort reason will be set to the reason of the first signal that is
|
95
|
+
* aborted. If any of the given abort signals are already aborted then so will
|
96
|
+
* be the returned AbortSignal.
|
97
|
+
*
|
98
|
+
* @param [signals] Iterable of abort signals.
|
99
|
+
* @returns AbortSignal instance.
|
100
|
+
*/
|
101
|
+
public static any(signals: AbortSignal[]): AbortSignal {
|
102
|
+
for (const signal of signals) {
|
103
|
+
if (signal.aborted) {
|
104
|
+
return this.abort(signal.reason);
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
const anySignal = new this();
|
109
|
+
const handlers = new Map<AbortSignal, () => void>();
|
110
|
+
|
111
|
+
const stopListening = (): void => {
|
112
|
+
for (const signal of signals) {
|
113
|
+
signal.removeEventListener('abort', handlers.get(signal));
|
114
|
+
}
|
115
|
+
};
|
116
|
+
|
117
|
+
for (const signal of signals) {
|
118
|
+
const handler = (): void => {
|
119
|
+
stopListening();
|
120
|
+
anySignal[PropertySymbol.abort](signal.reason);
|
121
|
+
};
|
122
|
+
handlers.set(signal, handler);
|
123
|
+
signal.addEventListener('abort', handler);
|
124
|
+
}
|
125
|
+
|
126
|
+
return anySignal;
|
127
|
+
}
|
63
128
|
}
|
package/src/fetch/Fetch.ts
CHANGED
@@ -3,7 +3,6 @@ import * as PropertySymbol from '../PropertySymbol.js';
|
|
3
3
|
import IRequestInfo from './types/IRequestInfo.js';
|
4
4
|
import Headers from './Headers.js';
|
5
5
|
import FetchRequestReferrerUtility from './utilities/FetchRequestReferrerUtility.js';
|
6
|
-
import DOMException from '../exception/DOMException.js';
|
7
6
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
8
7
|
import HTTP, { IncomingMessage } from 'http';
|
9
8
|
import HTTPS from 'https';
|
@@ -85,7 +84,7 @@ export default class Fetch {
|
|
85
84
|
this.#window = options.window;
|
86
85
|
this.request =
|
87
86
|
typeof options.url === 'string' || options.url instanceof URL
|
88
|
-
? new options.
|
87
|
+
? new options.window.Request(options.url, options.init)
|
89
88
|
: <Request>options.url;
|
90
89
|
if (options.contentType) {
|
91
90
|
(<string>this.request[PropertySymbol.contentType]) = options.contentType;
|
@@ -105,7 +104,10 @@ export default class Fetch {
|
|
105
104
|
FetchRequestValidationUtility.validateSchema(this.request);
|
106
105
|
|
107
106
|
if (this.request.signal.aborted) {
|
108
|
-
throw new DOMException(
|
107
|
+
throw new this.#window.DOMException(
|
108
|
+
'The operation was aborted.',
|
109
|
+
DOMExceptionNameEnum.abortError
|
110
|
+
);
|
109
111
|
}
|
110
112
|
|
111
113
|
if (this.request[PropertySymbol.url].protocol === 'data:') {
|
@@ -121,7 +123,7 @@ export default class Fetch {
|
|
121
123
|
this.request[PropertySymbol.url].protocol === 'http:' &&
|
122
124
|
this.#window.location.protocol === 'https:'
|
123
125
|
) {
|
124
|
-
throw new DOMException(
|
126
|
+
throw new this.#window.DOMException(
|
125
127
|
`Mixed Content: The page at '${this.#window.location.href}' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint '${this.request.url}'. This request has been blocked; the content must be served over HTTPS.`,
|
126
128
|
DOMExceptionNameEnum.securityError
|
127
129
|
);
|
@@ -142,7 +144,7 @@ export default class Fetch {
|
|
142
144
|
this.#window.console.warn(
|
143
145
|
`Cross-Origin Request Blocked: The Same Origin Policy dissallows reading the remote resource at "${this.request.url}".`
|
144
146
|
);
|
145
|
-
throw new DOMException(
|
147
|
+
throw new this.#window.DOMException(
|
146
148
|
`Cross-Origin Request Blocked: The Same Origin Policy dissallows reading the remote resource at "${this.request.url}".`,
|
147
149
|
DOMExceptionNameEnum.networkError
|
148
150
|
);
|
@@ -342,7 +344,7 @@ export default class Fetch {
|
|
342
344
|
);
|
343
345
|
|
344
346
|
if (this.resolve) {
|
345
|
-
throw new Error('Fetch already sent.');
|
347
|
+
throw new this.#window.Error('Fetch already sent.');
|
346
348
|
}
|
347
349
|
|
348
350
|
this.resolve = (response: Response | Promise<Response>): void => {
|
@@ -417,7 +419,10 @@ export default class Fetch {
|
|
417
419
|
private onSocket(socket: Socket): void {
|
418
420
|
const onSocketClose = (): void => {
|
419
421
|
if (this.isChunkedTransfer && !this.isProperLastChunkReceived) {
|
420
|
-
const error = new DOMException(
|
422
|
+
const error = new this.#window.DOMException(
|
423
|
+
'Premature close.',
|
424
|
+
DOMExceptionNameEnum.networkError
|
425
|
+
);
|
421
426
|
|
422
427
|
if (this.response && this.response.body) {
|
423
428
|
this.response.body[PropertySymbol.error] = error;
|
@@ -469,8 +474,8 @@ export default class Fetch {
|
|
469
474
|
this.finalizeRequest();
|
470
475
|
this.#window.console.error(error);
|
471
476
|
this.reject(
|
472
|
-
new DOMException(
|
473
|
-
`
|
477
|
+
new this.#window.DOMException(
|
478
|
+
`Failed to execute "fetch()" on "Window" with URL "${this.request.url}": ${error.message}`,
|
474
479
|
DOMExceptionNameEnum.networkError
|
475
480
|
)
|
476
481
|
);
|
@@ -480,7 +485,20 @@ export default class Fetch {
|
|
480
485
|
* Triggered when the async task manager aborts.
|
481
486
|
*/
|
482
487
|
private onAsyncTaskManagerAbort(): void {
|
483
|
-
const error = new DOMException(
|
488
|
+
const error = new this.#window.DOMException(
|
489
|
+
'The operation was aborted.',
|
490
|
+
DOMExceptionNameEnum.abortError
|
491
|
+
);
|
492
|
+
|
493
|
+
this.request[PropertySymbol.aborted] = true;
|
494
|
+
|
495
|
+
if (this.request.body) {
|
496
|
+
this.request.body[PropertySymbol.error] = error;
|
497
|
+
}
|
498
|
+
|
499
|
+
if (this.listeners.onSignalAbort) {
|
500
|
+
this.request.signal.removeEventListener('abort', this.listeners.onSignalAbort);
|
501
|
+
}
|
484
502
|
|
485
503
|
if (this.nodeRequest && !this.nodeRequest.destroyed) {
|
486
504
|
this.nodeRequest.destroy(error);
|
@@ -670,7 +688,7 @@ export default class Fetch {
|
|
670
688
|
case 'error':
|
671
689
|
this.finalizeRequest();
|
672
690
|
this.reject(
|
673
|
-
new DOMException(
|
691
|
+
new this.#window.DOMException(
|
674
692
|
`URI requested responds with a redirect, redirect mode is set to "error": ${this.request.url}`,
|
675
693
|
DOMExceptionNameEnum.abortError
|
676
694
|
)
|
@@ -693,7 +711,7 @@ export default class Fetch {
|
|
693
711
|
} catch {
|
694
712
|
this.finalizeRequest();
|
695
713
|
this.reject(
|
696
|
-
new DOMException(
|
714
|
+
new this.#window.DOMException(
|
697
715
|
`URI requested responds with an invalid redirect URL: ${locationHeader}`,
|
698
716
|
DOMExceptionNameEnum.uriMismatchError
|
699
717
|
)
|
@@ -709,7 +727,7 @@ export default class Fetch {
|
|
709
727
|
if (FetchResponseRedirectUtility.isMaxRedirectsReached(this.redirectCount)) {
|
710
728
|
this.finalizeRequest();
|
711
729
|
this.reject(
|
712
|
-
new DOMException(
|
730
|
+
new this.#window.DOMException(
|
713
731
|
`Maximum redirects reached at: ${this.request.url}`,
|
714
732
|
DOMExceptionNameEnum.networkError
|
715
733
|
)
|
@@ -777,7 +795,7 @@ export default class Fetch {
|
|
777
795
|
default:
|
778
796
|
this.finalizeRequest();
|
779
797
|
this.reject(
|
780
|
-
new DOMException(
|
798
|
+
new this.#window.DOMException(
|
781
799
|
`Redirect option '${this.request.redirect}' is not a valid value of IRequestRedirect`
|
782
800
|
)
|
783
801
|
);
|
@@ -799,11 +817,17 @@ export default class Fetch {
|
|
799
817
|
* @param reason Reason.
|
800
818
|
*/
|
801
819
|
private abort(reason?: Error): void {
|
802
|
-
const error = new DOMException(
|
820
|
+
const error = new this.#window.DOMException(
|
803
821
|
'The operation was aborted.' + (reason ? ' ' + reason.toString() : ''),
|
804
822
|
DOMExceptionNameEnum.abortError
|
805
823
|
);
|
806
824
|
|
825
|
+
this.request[PropertySymbol.aborted] = true;
|
826
|
+
|
827
|
+
if (this.request.body) {
|
828
|
+
this.request.body[PropertySymbol.error] = error;
|
829
|
+
}
|
830
|
+
|
807
831
|
if (this.nodeRequest && !this.nodeRequest.destroyed) {
|
808
832
|
this.nodeRequest.destroy(error);
|
809
833
|
}
|
package/src/fetch/Request.ts
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
import * as PropertySymbol from '../PropertySymbol.js';
|
2
|
-
import Document from '../nodes/document/Document.js';
|
3
2
|
import IRequestInit from './types/IRequestInit.js';
|
4
3
|
import URL from '../url/URL.js';
|
5
|
-
import DOMException from '../exception/DOMException.js';
|
6
4
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
7
5
|
import IRequestInfo from './types/IRequestInfo.js';
|
8
6
|
import Headers from './Headers.js';
|
@@ -18,8 +16,8 @@ import FetchRequestHeaderUtility from './utilities/FetchRequestHeaderUtility.js'
|
|
18
16
|
import IRequestCredentials from './types/IRequestCredentials.js';
|
19
17
|
import FormData from '../form-data/FormData.js';
|
20
18
|
import MultipartFormDataParser from './multipart/MultipartFormDataParser.js';
|
21
|
-
import AsyncTaskManager from '../async-task-manager/AsyncTaskManager.js';
|
22
19
|
import BrowserWindow from '../window/BrowserWindow.js';
|
20
|
+
import WindowBrowserContext from '../window/WindowBrowserContext.js';
|
23
21
|
|
24
22
|
/**
|
25
23
|
* Fetch request.
|
@@ -30,6 +28,9 @@ import BrowserWindow from '../window/BrowserWindow.js';
|
|
30
28
|
* @see https://fetch.spec.whatwg.org/#request-class
|
31
29
|
*/
|
32
30
|
export default class Request implements Request {
|
31
|
+
// Injected by WindowClassExtender
|
32
|
+
protected declare [PropertySymbol.window]: BrowserWindow;
|
33
|
+
|
33
34
|
// Public properties
|
34
35
|
public readonly method: string;
|
35
36
|
public readonly body: ReadableStream | null;
|
@@ -41,42 +42,39 @@ export default class Request implements Request {
|
|
41
42
|
public readonly credentials: IRequestCredentials;
|
42
43
|
|
43
44
|
// Internal properties
|
45
|
+
public [PropertySymbol.aborted]: boolean = false;
|
44
46
|
public [PropertySymbol.contentLength]: number | null = null;
|
45
47
|
public [PropertySymbol.contentType]: string | null = null;
|
46
48
|
public [PropertySymbol.referrer]: '' | 'no-referrer' | 'client' | URL = 'client';
|
47
49
|
public [PropertySymbol.url]: URL;
|
48
50
|
public [PropertySymbol.bodyBuffer]: Buffer | null;
|
49
51
|
|
50
|
-
// Private properties
|
51
|
-
readonly #window: BrowserWindow;
|
52
|
-
readonly #asyncTaskManager: AsyncTaskManager;
|
53
|
-
|
54
52
|
/**
|
55
53
|
* Constructor.
|
56
54
|
*
|
57
|
-
* @param injected Injected properties.
|
58
|
-
* @param injected.window
|
59
55
|
* @param input Input.
|
60
|
-
* @param injected.asyncTaskManager
|
61
56
|
* @param [init] Init.
|
62
57
|
*/
|
63
|
-
constructor(
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
58
|
+
constructor(input: IRequestInfo, init?: IRequestInit) {
|
59
|
+
const window = this[PropertySymbol.window];
|
60
|
+
|
61
|
+
if (!window) {
|
62
|
+
throw new TypeError(
|
63
|
+
`Failed to construct 'Request': 'Request' was constructed outside a Window context.`
|
64
|
+
);
|
65
|
+
}
|
70
66
|
|
71
67
|
if (!input) {
|
72
|
-
throw new TypeError(
|
68
|
+
throw new window.TypeError(
|
69
|
+
`Failed to contruct 'Request': 1 argument required, only 0 present.`
|
70
|
+
);
|
73
71
|
}
|
74
72
|
|
75
73
|
this.method = (init?.method || (<Request>input).method || 'GET').toUpperCase();
|
76
74
|
|
77
75
|
const { stream, buffer, contentType, contentLength } = FetchBodyUtility.getBodyStream(
|
78
76
|
input instanceof Request && (input[PropertySymbol.bodyBuffer] || input.body)
|
79
|
-
? input[PropertySymbol.bodyBuffer] || FetchBodyUtility.cloneBodyStream(input)
|
77
|
+
? input[PropertySymbol.bodyBuffer] || FetchBodyUtility.cloneBodyStream(window, input)
|
80
78
|
: init?.body
|
81
79
|
);
|
82
80
|
|
@@ -106,9 +104,9 @@ export default class Request implements Request {
|
|
106
104
|
this.referrerPolicy = <IRequestReferrerPolicy>(
|
107
105
|
(init?.referrerPolicy || (<Request>input).referrerPolicy || '').toLowerCase()
|
108
106
|
);
|
109
|
-
this.signal = init?.signal || (<Request>input).signal || new AbortSignal();
|
107
|
+
this.signal = init?.signal || (<Request>input).signal || new window.AbortSignal();
|
110
108
|
this[PropertySymbol.referrer] = FetchRequestReferrerUtility.getInitialReferrer(
|
111
|
-
|
109
|
+
window,
|
112
110
|
init?.referrer !== null && init?.referrer !== undefined
|
113
111
|
? init?.referrer
|
114
112
|
: (<Request>input).referrer
|
@@ -119,16 +117,16 @@ export default class Request implements Request {
|
|
119
117
|
} else {
|
120
118
|
try {
|
121
119
|
if (input instanceof Request && input.url) {
|
122
|
-
this[PropertySymbol.url] = new URL(input.url,
|
120
|
+
this[PropertySymbol.url] = new URL(input.url, window.location.href);
|
123
121
|
} else {
|
124
|
-
this[PropertySymbol.url] = new URL(<string>input,
|
122
|
+
this[PropertySymbol.url] = new URL(<string>input, window.location.href);
|
125
123
|
}
|
126
124
|
} catch (error) {
|
127
|
-
throw new DOMException(
|
128
|
-
`Failed to construct 'Request
|
129
|
-
|
125
|
+
throw new window.DOMException(
|
126
|
+
`Failed to construct 'Request': Invalid URL "${input}" on document location '${
|
127
|
+
window.location
|
130
128
|
}'.${
|
131
|
-
|
129
|
+
window.location.origin === 'null'
|
132
130
|
? ' Relative URLs are not permitted on current document location.'
|
133
131
|
: ''
|
134
132
|
}`,
|
@@ -144,13 +142,6 @@ export default class Request implements Request {
|
|
144
142
|
FetchRequestValidationUtility.validateRedirect(this.redirect);
|
145
143
|
}
|
146
144
|
|
147
|
-
/**
|
148
|
-
* Returns owner document.
|
149
|
-
*/
|
150
|
-
protected get [PropertySymbol.ownerDocument](): Document {
|
151
|
-
throw new Error('[PropertySymbol.ownerDocument] getter needs to be implemented by sub-class.');
|
152
|
-
}
|
153
|
-
|
154
145
|
/**
|
155
146
|
* Returns referrer.
|
156
147
|
*
|
@@ -192,26 +183,35 @@ export default class Request implements Request {
|
|
192
183
|
* @returns Array buffer.
|
193
184
|
*/
|
194
185
|
public async arrayBuffer(): Promise<ArrayBuffer> {
|
186
|
+
const window = this[PropertySymbol.window];
|
187
|
+
|
195
188
|
if (this.bodyUsed) {
|
196
|
-
throw new DOMException(
|
189
|
+
throw new window.DOMException(
|
197
190
|
`Body has already been used for "${this.url}".`,
|
198
191
|
DOMExceptionNameEnum.invalidStateError
|
199
192
|
);
|
200
193
|
}
|
201
194
|
|
195
|
+
const asyncTaskManager = new WindowBrowserContext(window).getAsyncTaskManager();
|
196
|
+
|
202
197
|
(<boolean>this.bodyUsed) = true;
|
203
198
|
|
204
|
-
const taskID =
|
199
|
+
const taskID = asyncTaskManager.startTask(() => {
|
200
|
+
if (this.body) {
|
201
|
+
this.body[PropertySymbol.aborted] = true;
|
202
|
+
}
|
203
|
+
this.signal[PropertySymbol.abort]();
|
204
|
+
});
|
205
205
|
let buffer: Buffer;
|
206
206
|
|
207
207
|
try {
|
208
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
208
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
209
209
|
} catch (error) {
|
210
|
-
|
210
|
+
asyncTaskManager.endTask(taskID);
|
211
211
|
throw error;
|
212
212
|
}
|
213
213
|
|
214
|
-
|
214
|
+
asyncTaskManager.endTask(taskID);
|
215
215
|
|
216
216
|
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
217
217
|
}
|
@@ -234,26 +234,35 @@ export default class Request implements Request {
|
|
234
234
|
* @returns Buffer.
|
235
235
|
*/
|
236
236
|
public async buffer(): Promise<Buffer> {
|
237
|
+
const window = this[PropertySymbol.window];
|
238
|
+
|
237
239
|
if (this.bodyUsed) {
|
238
|
-
throw new DOMException(
|
240
|
+
throw new window.DOMException(
|
239
241
|
`Body has already been used for "${this.url}".`,
|
240
242
|
DOMExceptionNameEnum.invalidStateError
|
241
243
|
);
|
242
244
|
}
|
243
245
|
|
246
|
+
const asyncTaskManager = new WindowBrowserContext(window).getAsyncTaskManager();
|
247
|
+
|
244
248
|
(<boolean>this.bodyUsed) = true;
|
245
249
|
|
246
|
-
const taskID =
|
250
|
+
const taskID = asyncTaskManager.startTask(() => {
|
251
|
+
if (this.body) {
|
252
|
+
this.body[PropertySymbol.aborted] = true;
|
253
|
+
}
|
254
|
+
this.signal[PropertySymbol.abort]();
|
255
|
+
});
|
247
256
|
let buffer: Buffer;
|
248
257
|
|
249
258
|
try {
|
250
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
259
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
251
260
|
} catch (error) {
|
252
|
-
|
261
|
+
asyncTaskManager.endTask(taskID);
|
253
262
|
throw error;
|
254
263
|
}
|
255
264
|
|
256
|
-
|
265
|
+
asyncTaskManager.endTask(taskID);
|
257
266
|
|
258
267
|
return buffer;
|
259
268
|
}
|
@@ -264,26 +273,35 @@ export default class Request implements Request {
|
|
264
273
|
* @returns Text.
|
265
274
|
*/
|
266
275
|
public async text(): Promise<string> {
|
276
|
+
const window = this[PropertySymbol.window];
|
277
|
+
|
267
278
|
if (this.bodyUsed) {
|
268
|
-
throw new DOMException(
|
279
|
+
throw new window.DOMException(
|
269
280
|
`Body has already been used for "${this.url}".`,
|
270
281
|
DOMExceptionNameEnum.invalidStateError
|
271
282
|
);
|
272
283
|
}
|
273
284
|
|
285
|
+
const asyncTaskManager = new WindowBrowserContext(window).getAsyncTaskManager();
|
286
|
+
|
274
287
|
(<boolean>this.bodyUsed) = true;
|
275
288
|
|
276
|
-
const taskID =
|
289
|
+
const taskID = asyncTaskManager.startTask(() => {
|
290
|
+
if (this.body) {
|
291
|
+
this.body[PropertySymbol.aborted] = true;
|
292
|
+
}
|
293
|
+
this.signal[PropertySymbol.abort]();
|
294
|
+
});
|
277
295
|
let buffer: Buffer;
|
278
296
|
|
279
297
|
try {
|
280
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
298
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
281
299
|
} catch (error) {
|
282
|
-
|
300
|
+
asyncTaskManager.endTask(taskID);
|
283
301
|
throw error;
|
284
302
|
}
|
285
303
|
|
286
|
-
|
304
|
+
asyncTaskManager.endTask(taskID);
|
287
305
|
|
288
306
|
return new TextDecoder().decode(buffer);
|
289
307
|
}
|
@@ -304,12 +322,13 @@ export default class Request implements Request {
|
|
304
322
|
* @returns FormData.
|
305
323
|
*/
|
306
324
|
public async formData(): Promise<FormData> {
|
325
|
+
const window = this[PropertySymbol.window];
|
326
|
+
const asyncTaskManager = new WindowBrowserContext(window).getAsyncTaskManager();
|
307
327
|
const contentType = this[PropertySymbol.contentType];
|
308
|
-
const asyncTaskManager = this.#asyncTaskManager;
|
309
328
|
|
310
329
|
if (/multipart/i.test(contentType)) {
|
311
330
|
if (this.bodyUsed) {
|
312
|
-
throw new DOMException(
|
331
|
+
throw new window.DOMException(
|
313
332
|
`Body has already been used for "${this.url}".`,
|
314
333
|
DOMExceptionNameEnum.invalidStateError
|
315
334
|
);
|
@@ -317,11 +336,20 @@ export default class Request implements Request {
|
|
317
336
|
|
318
337
|
(<boolean>this.bodyUsed) = true;
|
319
338
|
|
320
|
-
const taskID = asyncTaskManager.startTask(() =>
|
339
|
+
const taskID = asyncTaskManager.startTask(() => {
|
340
|
+
if (this.body) {
|
341
|
+
this.body[PropertySymbol.aborted] = true;
|
342
|
+
}
|
343
|
+
this.signal[PropertySymbol.abort]();
|
344
|
+
});
|
321
345
|
let formData: FormData;
|
322
346
|
|
323
347
|
try {
|
324
|
-
const result = await MultipartFormDataParser.streamToFormData(
|
348
|
+
const result = await MultipartFormDataParser.streamToFormData(
|
349
|
+
window,
|
350
|
+
this.body,
|
351
|
+
contentType
|
352
|
+
);
|
325
353
|
formData = result.formData;
|
326
354
|
} catch (error) {
|
327
355
|
asyncTaskManager.endTask(taskID);
|
@@ -344,7 +372,7 @@ export default class Request implements Request {
|
|
344
372
|
return formData;
|
345
373
|
}
|
346
374
|
|
347
|
-
throw new DOMException(
|
375
|
+
throw new window.DOMException(
|
348
376
|
`Failed to construct FormData object: The "content-type" header is neither "application/x-www-form-urlencoded" nor "multipart/form-data".`,
|
349
377
|
DOMExceptionNameEnum.invalidStateError
|
350
378
|
);
|
@@ -356,6 +384,6 @@ export default class Request implements Request {
|
|
356
384
|
* @returns Clone.
|
357
385
|
*/
|
358
386
|
public clone(): Request {
|
359
|
-
return new this
|
387
|
+
return new this[PropertySymbol.window].Request(this);
|
360
388
|
}
|
361
389
|
}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import DOMException from '../exception/DOMException.js';
|
2
1
|
import BrowserWindow from '../window/BrowserWindow.js';
|
3
2
|
import URL from '../url/URL.js';
|
4
3
|
import IBrowserFrame from '../browser/types/IBrowserFrame.js';
|
@@ -40,7 +39,7 @@ export default class ResourceFetch {
|
|
40
39
|
const response = await fetch.send();
|
41
40
|
|
42
41
|
if (!response.ok) {
|
43
|
-
throw new DOMException(
|
42
|
+
throw new this.window.DOMException(
|
44
43
|
`Failed to perform request to "${new URL(url, this.window.location.href).href}". Status ${
|
45
44
|
response.status
|
46
45
|
} ${response.statusText}.`
|
@@ -67,7 +66,7 @@ export default class ResourceFetch {
|
|
67
66
|
const response = fetch.send();
|
68
67
|
|
69
68
|
if (!response.ok) {
|
70
|
-
throw new DOMException(
|
69
|
+
throw new this.window.DOMException(
|
71
70
|
`Failed to perform request to "${new URL(url, this.window.location.href).href}". Status ${
|
72
71
|
response.status
|
73
72
|
} ${response.statusText}.`
|