happy-dom 15.0.0 → 15.1.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 +14 -4
- package/cjs/fetch/AbortSignal.cjs.map +1 -1
- package/cjs/fetch/AbortSignal.d.ts +7 -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 +7 -0
- package/lib/fetch/AbortSignal.d.ts.map +1 -1
- package/lib/fetch/AbortSignal.js +14 -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 +30 -4
- package/src/fetch/Fetch.ts +44 -16
- 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 +20 -14
- 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/Response.ts
CHANGED
@@ -8,13 +8,12 @@ import URL from '../url/URL.js';
|
|
8
8
|
import { ReadableStream } from 'stream/web';
|
9
9
|
import FormData from '../form-data/FormData.js';
|
10
10
|
import FetchBodyUtility from './utilities/FetchBodyUtility.js';
|
11
|
-
import DOMException from '../exception/DOMException.js';
|
12
11
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
13
12
|
import MultipartFormDataParser from './multipart/MultipartFormDataParser.js';
|
14
13
|
import BrowserWindow from '../window/BrowserWindow.js';
|
15
|
-
import IBrowserFrame from '../browser/types/IBrowserFrame.js';
|
16
14
|
import ICachedResponse from './cache/response/ICachedResponse.js';
|
17
15
|
import { Buffer } from 'buffer';
|
16
|
+
import WindowBrowserContext from '../window/WindowBrowserContext.js';
|
18
17
|
|
19
18
|
const REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308];
|
20
19
|
|
@@ -27,8 +26,9 @@ const REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308];
|
|
27
26
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Response/Response
|
28
27
|
*/
|
29
28
|
export default class Response implements Response {
|
30
|
-
//
|
31
|
-
protected static [PropertySymbol.window]: BrowserWindow;
|
29
|
+
// Injected by WindowClassExtender
|
30
|
+
protected declare static [PropertySymbol.window]: BrowserWindow;
|
31
|
+
protected declare [PropertySymbol.window]: BrowserWindow;
|
32
32
|
|
33
33
|
// Public properties
|
34
34
|
public readonly body: ReadableStream | null = null;
|
@@ -43,26 +43,20 @@ export default class Response implements Response {
|
|
43
43
|
public readonly headers: Headers;
|
44
44
|
public [PropertySymbol.cachedResponse]: ICachedResponse | null = null;
|
45
45
|
public [PropertySymbol.buffer]: Buffer | null = null;
|
46
|
-
readonly #window: BrowserWindow;
|
47
|
-
readonly #browserFrame: IBrowserFrame;
|
48
46
|
|
49
47
|
/**
|
50
48
|
* Constructor.
|
51
49
|
*
|
52
|
-
* @param
|
53
|
-
* @param input Input.
|
54
|
-
* @param injected.window
|
55
|
-
* @param body
|
56
|
-
* @param injected.browserFrame
|
50
|
+
* @param body Body.
|
57
51
|
* @param [init] Init.
|
58
52
|
*/
|
59
|
-
constructor(
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
53
|
+
constructor(body?: IResponseBody, init?: IResponseInit) {
|
54
|
+
if (!this[PropertySymbol.window]) {
|
55
|
+
throw new TypeError(
|
56
|
+
`Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
|
57
|
+
);
|
58
|
+
}
|
59
|
+
|
66
60
|
this.status = init?.status !== undefined ? init.status : 200;
|
67
61
|
this.statusText = init?.statusText || '';
|
68
62
|
this.ok = this.status >= 200 && this.status < 300;
|
@@ -101,28 +95,37 @@ export default class Response implements Response {
|
|
101
95
|
* @returns Array buffer.
|
102
96
|
*/
|
103
97
|
public async arrayBuffer(): Promise<ArrayBuffer> {
|
98
|
+
const window = this[PropertySymbol.window];
|
99
|
+
|
104
100
|
if (this.bodyUsed) {
|
105
|
-
throw new DOMException(
|
101
|
+
throw new window.DOMException(
|
106
102
|
`Body has already been used for "${this.url}".`,
|
107
103
|
DOMExceptionNameEnum.invalidStateError
|
108
104
|
);
|
109
105
|
}
|
110
106
|
|
107
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
108
|
+
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
109
|
+
|
111
110
|
(<boolean>this.bodyUsed) = true;
|
112
111
|
|
113
112
|
let buffer: Buffer | null = this[PropertySymbol.buffer];
|
114
113
|
|
115
114
|
if (!buffer) {
|
116
|
-
const taskID =
|
115
|
+
const taskID = asyncTaskManager.startTask(() => {
|
116
|
+
if (this.body) {
|
117
|
+
this.body[PropertySymbol.aborted] = true;
|
118
|
+
}
|
119
|
+
});
|
117
120
|
|
118
121
|
try {
|
119
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
122
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
120
123
|
} catch (error) {
|
121
|
-
|
124
|
+
asyncTaskManager.endTask(taskID);
|
122
125
|
throw error;
|
123
126
|
}
|
124
127
|
|
125
|
-
|
128
|
+
asyncTaskManager.endTask(taskID);
|
126
129
|
}
|
127
130
|
|
128
131
|
this.#storeBodyInCache(buffer);
|
@@ -148,26 +151,35 @@ export default class Response implements Response {
|
|
148
151
|
* @returns Buffer.
|
149
152
|
*/
|
150
153
|
public async buffer(): Promise<Buffer> {
|
154
|
+
const window = this[PropertySymbol.window];
|
155
|
+
|
151
156
|
if (this.bodyUsed) {
|
152
|
-
throw new DOMException(
|
157
|
+
throw new window.DOMException(
|
153
158
|
`Body has already been used for "${this.url}".`,
|
154
159
|
DOMExceptionNameEnum.invalidStateError
|
155
160
|
);
|
156
161
|
}
|
157
162
|
|
163
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
164
|
+
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
165
|
+
|
158
166
|
(<boolean>this.bodyUsed) = true;
|
159
167
|
|
160
168
|
let buffer: Buffer | null = this[PropertySymbol.buffer];
|
161
169
|
|
162
170
|
if (!buffer) {
|
163
|
-
const taskID =
|
171
|
+
const taskID = asyncTaskManager.startTask(() => {
|
172
|
+
if (this.body) {
|
173
|
+
this.body[PropertySymbol.aborted] = true;
|
174
|
+
}
|
175
|
+
});
|
164
176
|
try {
|
165
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
177
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
166
178
|
} catch (error) {
|
167
|
-
|
179
|
+
asyncTaskManager.endTask(taskID);
|
168
180
|
throw error;
|
169
181
|
}
|
170
|
-
|
182
|
+
asyncTaskManager.endTask(taskID);
|
171
183
|
}
|
172
184
|
|
173
185
|
this.#storeBodyInCache(buffer);
|
@@ -181,26 +193,35 @@ export default class Response implements Response {
|
|
181
193
|
* @returns Text.
|
182
194
|
*/
|
183
195
|
public async text(): Promise<string> {
|
196
|
+
const window = this[PropertySymbol.window];
|
197
|
+
|
184
198
|
if (this.bodyUsed) {
|
185
|
-
throw new DOMException(
|
199
|
+
throw new window.DOMException(
|
186
200
|
`Body has already been used for "${this.url}".`,
|
187
201
|
DOMExceptionNameEnum.invalidStateError
|
188
202
|
);
|
189
203
|
}
|
190
204
|
|
205
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
206
|
+
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
207
|
+
|
191
208
|
(<boolean>this.bodyUsed) = true;
|
192
209
|
|
193
210
|
let buffer: Buffer | null = this[PropertySymbol.buffer];
|
194
211
|
|
195
212
|
if (!buffer) {
|
196
|
-
const taskID =
|
213
|
+
const taskID = asyncTaskManager.startTask(() => {
|
214
|
+
if (this.body) {
|
215
|
+
this.body[PropertySymbol.aborted] = true;
|
216
|
+
}
|
217
|
+
});
|
197
218
|
try {
|
198
|
-
buffer = await FetchBodyUtility.consumeBodyStream(this.body);
|
219
|
+
buffer = await FetchBodyUtility.consumeBodyStream(window, this.body);
|
199
220
|
} catch (error) {
|
200
|
-
|
221
|
+
asyncTaskManager.endTask(taskID);
|
201
222
|
throw error;
|
202
223
|
}
|
203
|
-
|
224
|
+
asyncTaskManager.endTask(taskID);
|
204
225
|
}
|
205
226
|
|
206
227
|
this.#storeBodyInCache(buffer);
|
@@ -224,12 +245,14 @@ export default class Response implements Response {
|
|
224
245
|
* @returns Form data.
|
225
246
|
*/
|
226
247
|
public async formData(): Promise<FormData> {
|
248
|
+
const window = this[PropertySymbol.window];
|
249
|
+
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
250
|
+
const asyncTaskManager = browserFrame[PropertySymbol.asyncTaskManager];
|
227
251
|
const contentType = this.headers.get('Content-Type');
|
228
|
-
const asyncTaskManager = this.#browserFrame[PropertySymbol.asyncTaskManager];
|
229
252
|
|
230
253
|
if (/multipart/i.test(contentType)) {
|
231
254
|
if (this.bodyUsed) {
|
232
|
-
throw new DOMException(
|
255
|
+
throw new window.DOMException(
|
233
256
|
`Body has already been used for "${this.url}".`,
|
234
257
|
DOMExceptionNameEnum.invalidStateError
|
235
258
|
);
|
@@ -237,12 +260,20 @@ export default class Response implements Response {
|
|
237
260
|
|
238
261
|
(<boolean>this.bodyUsed) = true;
|
239
262
|
|
240
|
-
const taskID = asyncTaskManager.startTask()
|
263
|
+
const taskID = browserFrame[PropertySymbol.asyncTaskManager].startTask(() => {
|
264
|
+
if (this.body) {
|
265
|
+
this.body[PropertySymbol.aborted] = true;
|
266
|
+
}
|
267
|
+
});
|
241
268
|
let formData: FormData;
|
242
269
|
let buffer: Buffer;
|
243
270
|
|
244
271
|
try {
|
245
|
-
const result = await MultipartFormDataParser.streamToFormData(
|
272
|
+
const result = await MultipartFormDataParser.streamToFormData(
|
273
|
+
window,
|
274
|
+
this.body,
|
275
|
+
contentType
|
276
|
+
);
|
246
277
|
formData = result.formData;
|
247
278
|
buffer = result.buffer;
|
248
279
|
} catch (error) {
|
@@ -267,7 +298,7 @@ export default class Response implements Response {
|
|
267
298
|
return formData;
|
268
299
|
}
|
269
300
|
|
270
|
-
throw new DOMException(
|
301
|
+
throw new window.DOMException(
|
271
302
|
`Failed to build FormData object: The "content-type" header is neither "application/x-www-form-urlencoded" nor "multipart/form-data".`,
|
272
303
|
DOMExceptionNameEnum.invalidStateError
|
273
304
|
);
|
@@ -279,9 +310,10 @@ export default class Response implements Response {
|
|
279
310
|
* @returns Clone.
|
280
311
|
*/
|
281
312
|
public clone(): Response {
|
282
|
-
const
|
313
|
+
const window = this[PropertySymbol.window];
|
314
|
+
const body = FetchBodyUtility.cloneBodyStream(window, this);
|
283
315
|
|
284
|
-
const response = new
|
316
|
+
const response = new window.Response(body, {
|
285
317
|
status: this.status,
|
286
318
|
statusText: this.statusText,
|
287
319
|
headers: this.headers
|
@@ -317,14 +349,16 @@ export default class Response implements Response {
|
|
317
349
|
* @returns Response.
|
318
350
|
*/
|
319
351
|
public static redirect(url: string, status = 302): Response {
|
352
|
+
const window = this[PropertySymbol.window];
|
353
|
+
|
320
354
|
if (!REDIRECT_STATUS_CODES.includes(status)) {
|
321
|
-
throw new DOMException(
|
355
|
+
throw new window.DOMException(
|
322
356
|
'Failed to create redirect response: Invalid redirect status code.',
|
323
357
|
DOMExceptionNameEnum.invalidStateError
|
324
358
|
);
|
325
359
|
}
|
326
360
|
|
327
|
-
return new
|
361
|
+
return new window.Response(null, {
|
328
362
|
headers: {
|
329
363
|
location: new URL(url).toString()
|
330
364
|
},
|
@@ -354,19 +388,20 @@ export default class Response implements Response {
|
|
354
388
|
* @returns Response.
|
355
389
|
*/
|
356
390
|
public static json(data: object, init?: IResponseInit): Response {
|
391
|
+
const window = this[PropertySymbol.window];
|
357
392
|
const body = JSON.stringify(data);
|
358
393
|
|
359
394
|
if (body === undefined) {
|
360
|
-
throw new TypeError('data is not JSON serializable');
|
395
|
+
throw new window.TypeError('data is not JSON serializable');
|
361
396
|
}
|
362
397
|
|
363
|
-
const headers = new
|
398
|
+
const headers = new window.Headers(init && init.headers);
|
364
399
|
|
365
400
|
if (!headers.has('Content-Type')) {
|
366
401
|
headers.set('Content-Type', 'application/json');
|
367
402
|
}
|
368
403
|
|
369
|
-
return new
|
404
|
+
return new window.Response(body, {
|
370
405
|
status: 200,
|
371
406
|
...init,
|
372
407
|
headers
|
package/src/fetch/SyncFetch.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import IRequestInit from './types/IRequestInit.js';
|
2
2
|
import * as PropertySymbol from '../PropertySymbol.js';
|
3
3
|
import IRequestInfo from './types/IRequestInfo.js';
|
4
|
-
import DOMException from '../exception/DOMException.js';
|
5
4
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
6
5
|
import URL from '../url/URL.js';
|
7
6
|
import Request from './Request.js';
|
@@ -70,7 +69,7 @@ export default class SyncFetch {
|
|
70
69
|
this.#window = options.window;
|
71
70
|
this.request =
|
72
71
|
typeof options.url === 'string' || options.url instanceof URL
|
73
|
-
? new options.
|
72
|
+
? new options.window.Request(options.url, options.init)
|
74
73
|
: <Request>options.url;
|
75
74
|
if (options.contentType) {
|
76
75
|
(<string>this.request[PropertySymbol.contentType]) = options.contentType;
|
@@ -90,7 +89,10 @@ export default class SyncFetch {
|
|
90
89
|
FetchRequestValidationUtility.validateSchema(this.request);
|
91
90
|
|
92
91
|
if (this.request.signal.aborted) {
|
93
|
-
throw new DOMException(
|
92
|
+
throw new this.#window.DOMException(
|
93
|
+
'The operation was aborted.',
|
94
|
+
DOMExceptionNameEnum.abortError
|
95
|
+
);
|
94
96
|
}
|
95
97
|
|
96
98
|
if (this.request[PropertySymbol.url].protocol === 'data:') {
|
@@ -111,8 +113,12 @@ export default class SyncFetch {
|
|
111
113
|
this.request[PropertySymbol.url].protocol === 'http:' &&
|
112
114
|
this.#window.location.protocol === 'https:'
|
113
115
|
) {
|
114
|
-
throw new DOMException(
|
115
|
-
`Mixed Content: The page at '${
|
116
|
+
throw new this.#window.DOMException(
|
117
|
+
`Mixed Content: The page at '${
|
118
|
+
this.#window.location.href
|
119
|
+
}' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint '${
|
120
|
+
this.request.url
|
121
|
+
}'. This request has been blocked; the content must be served over HTTPS.`,
|
116
122
|
DOMExceptionNameEnum.securityError
|
117
123
|
);
|
118
124
|
}
|
@@ -127,7 +133,7 @@ export default class SyncFetch {
|
|
127
133
|
this.#window.console.warn(
|
128
134
|
`Cross-Origin Request Blocked: The Same Origin Policy dissallows reading the remote resource at "${this.request.url}".`
|
129
135
|
);
|
130
|
-
throw new DOMException(
|
136
|
+
throw new this.#window.DOMException(
|
131
137
|
`Cross-Origin Request Blocked: The Same Origin Policy dissallows reading the remote resource at "${this.request.url}".`,
|
132
138
|
DOMExceptionNameEnum.networkError
|
133
139
|
);
|
@@ -322,7 +328,7 @@ export default class SyncFetch {
|
|
322
328
|
*/
|
323
329
|
public sendRequest(): ISyncResponse {
|
324
330
|
if (!this.request[PropertySymbol.bodyBuffer] && this.request.body) {
|
325
|
-
throw new DOMException(
|
331
|
+
throw new this.#window.DOMException(
|
326
332
|
`Streams are not supported as request body for synchrounous requests.`,
|
327
333
|
DOMExceptionNameEnum.notSupportedError
|
328
334
|
);
|
@@ -347,7 +353,7 @@ export default class SyncFetch {
|
|
347
353
|
|
348
354
|
// If content length is 0, then there was an error
|
349
355
|
if (!content.length) {
|
350
|
-
throw new DOMException(
|
356
|
+
throw new this.#window.DOMException(
|
351
357
|
`Synchronous fetch to "${this.request.url}" failed.`,
|
352
358
|
DOMExceptionNameEnum.networkError
|
353
359
|
);
|
@@ -356,7 +362,7 @@ export default class SyncFetch {
|
|
356
362
|
const { error, incomingMessage } = <ISyncHTTPResponse>JSON.parse(content.toString());
|
357
363
|
|
358
364
|
if (error) {
|
359
|
-
throw new DOMException(
|
365
|
+
throw new this.#window.DOMException(
|
360
366
|
`Synchronous fetch to "${this.request.url}" failed. Error: ${error}`,
|
361
367
|
DOMExceptionNameEnum.networkError
|
362
368
|
);
|
@@ -441,7 +447,7 @@ export default class SyncFetch {
|
|
441
447
|
return Zlib.brotliDecompressSync(options.body);
|
442
448
|
}
|
443
449
|
} catch (error) {
|
444
|
-
throw new DOMException(
|
450
|
+
throw new this.#window.DOMException(
|
445
451
|
`Failed to read response body. Error: ${error.message}.`,
|
446
452
|
DOMExceptionNameEnum.encodingError
|
447
453
|
);
|
@@ -463,7 +469,7 @@ export default class SyncFetch {
|
|
463
469
|
|
464
470
|
switch (this.request.redirect) {
|
465
471
|
case 'error':
|
466
|
-
throw new DOMException(
|
472
|
+
throw new this.#window.DOMException(
|
467
473
|
`URI requested responds with a redirect, redirect mode is set to "error": ${this.request.url}`,
|
468
474
|
DOMExceptionNameEnum.abortError
|
469
475
|
);
|
@@ -480,7 +486,7 @@ export default class SyncFetch {
|
|
480
486
|
try {
|
481
487
|
locationURL = new URL(locationHeader, this.request.url);
|
482
488
|
} catch {
|
483
|
-
throw new DOMException(
|
489
|
+
throw new this.#window.DOMException(
|
484
490
|
`URI requested responds with an invalid redirect URL: ${locationHeader}`,
|
485
491
|
DOMExceptionNameEnum.uriMismatchError
|
486
492
|
);
|
@@ -492,7 +498,7 @@ export default class SyncFetch {
|
|
492
498
|
}
|
493
499
|
|
494
500
|
if (FetchResponseRedirectUtility.isMaxRedirectsReached(this.redirectCount)) {
|
495
|
-
throw new DOMException(
|
501
|
+
throw new this.#window.DOMException(
|
496
502
|
`Maximum redirects reached at: ${this.request.url}`,
|
497
503
|
DOMExceptionNameEnum.networkError
|
498
504
|
);
|
@@ -546,7 +552,7 @@ export default class SyncFetch {
|
|
546
552
|
|
547
553
|
return fetch.send();
|
548
554
|
default:
|
549
|
-
throw new DOMException(
|
555
|
+
throw new this.#window.DOMException(
|
550
556
|
`Redirect option '${this.request.redirect}' is not a valid value of IRequestRedirect`
|
551
557
|
);
|
552
558
|
}
|
@@ -2,9 +2,9 @@ import FormData from '../../form-data/FormData.js';
|
|
2
2
|
import { ReadableStream } from 'stream/web';
|
3
3
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
4
4
|
import MultipartReader from './MultipartReader.js';
|
5
|
-
import DOMException from '../../exception/DOMException.js';
|
6
5
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
7
6
|
import { Buffer } from 'buffer';
|
7
|
+
import BrowserWindow from '../../window/BrowserWindow.js';
|
8
8
|
|
9
9
|
/**
|
10
10
|
* Multipart form data factory.
|
@@ -16,16 +16,18 @@ export default class MultipartFormDataParser {
|
|
16
16
|
/**
|
17
17
|
* Returns form data.
|
18
18
|
*
|
19
|
+
* @param window Window.
|
19
20
|
* @param body Body.
|
20
21
|
* @param contentType Content type header value.
|
21
22
|
* @returns Form data.
|
22
23
|
*/
|
23
24
|
public static async streamToFormData(
|
25
|
+
window: BrowserWindow,
|
24
26
|
body: ReadableStream,
|
25
27
|
contentType: string
|
26
28
|
): Promise<{ formData: FormData; buffer: Buffer }> {
|
27
29
|
if (!/multipart/i.test(contentType)) {
|
28
|
-
throw new DOMException(
|
30
|
+
throw new window.DOMException(
|
29
31
|
`Failed to build FormData object: The "content-type" header isn't of type "multipart/form-data".`,
|
30
32
|
DOMExceptionNameEnum.invalidStateError
|
31
33
|
);
|
@@ -34,14 +36,14 @@ export default class MultipartFormDataParser {
|
|
34
36
|
const match = contentType.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
|
35
37
|
|
36
38
|
if (!match) {
|
37
|
-
throw new DOMException(
|
39
|
+
throw new window.DOMException(
|
38
40
|
`Failed to build FormData object: The "content-type" header doesn't contain any multipart boundary.`,
|
39
41
|
DOMExceptionNameEnum.invalidStateError
|
40
42
|
);
|
41
43
|
}
|
42
44
|
|
43
45
|
const bodyReader = body.getReader();
|
44
|
-
const reader = new MultipartReader(match[1] || match[2]);
|
46
|
+
const reader = new MultipartReader(window, match[1] || match[2]);
|
45
47
|
const chunks = [];
|
46
48
|
let buffer: Buffer;
|
47
49
|
const bytes = 0;
|
@@ -49,6 +51,15 @@ export default class MultipartFormDataParser {
|
|
49
51
|
let readResult = await bodyReader.read();
|
50
52
|
|
51
53
|
while (!readResult.done) {
|
54
|
+
if (body[PropertySymbol.error]) {
|
55
|
+
throw body[PropertySymbol.error];
|
56
|
+
}
|
57
|
+
if (body[PropertySymbol.aborted]) {
|
58
|
+
throw new window.DOMException(
|
59
|
+
'Failed to read response body: The stream was aborted.',
|
60
|
+
DOMExceptionNameEnum.abortError
|
61
|
+
);
|
62
|
+
}
|
52
63
|
reader.write(readResult.value);
|
53
64
|
readResult = await bodyReader.read();
|
54
65
|
}
|
@@ -57,7 +68,7 @@ export default class MultipartFormDataParser {
|
|
57
68
|
buffer =
|
58
69
|
typeof chunks[0] === 'string' ? Buffer.from(chunks.join('')) : Buffer.concat(chunks, bytes);
|
59
70
|
} catch (error) {
|
60
|
-
throw new DOMException(
|
71
|
+
throw new window.DOMException(
|
61
72
|
`Could not create Buffer from response body. Error: ${error.message}.`,
|
62
73
|
DOMExceptionNameEnum.invalidStateError
|
63
74
|
);
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import DOMException from '../../exception/DOMException.js';
|
2
1
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
3
2
|
import File from '../../file/File.js';
|
4
3
|
import FormData from '../../form-data/FormData.js';
|
4
|
+
import BrowserWindow from '../../window/BrowserWindow.js';
|
5
5
|
|
6
6
|
enum MultiparParserStateEnum {
|
7
7
|
boundary = 0,
|
@@ -37,15 +37,18 @@ export default class MultipartReader {
|
|
37
37
|
contentType: null,
|
38
38
|
header: ''
|
39
39
|
};
|
40
|
+
private window: BrowserWindow;
|
40
41
|
|
41
42
|
/**
|
42
43
|
* Constructor.
|
43
44
|
*
|
45
|
+
* @param window Window.
|
44
46
|
* @param formData Form data.
|
45
47
|
* @param boundary Boundary.
|
46
48
|
*/
|
47
|
-
constructor(boundary: string) {
|
49
|
+
constructor(window: BrowserWindow, boundary: string) {
|
48
50
|
const boundaryHeader = `--${boundary}`;
|
51
|
+
this.window = window;
|
49
52
|
this.boundary = new Uint8Array(boundaryHeader.length);
|
50
53
|
|
51
54
|
for (let i = 0, max = boundaryHeader.length; i < max; i++) {
|
@@ -156,7 +159,7 @@ export default class MultipartReader {
|
|
156
159
|
*/
|
157
160
|
public end(): FormData {
|
158
161
|
if (this.state !== MultiparParserStateEnum.data) {
|
159
|
-
throw new DOMException(
|
162
|
+
throw new this.window.DOMException(
|
160
163
|
`Unexpected end of multipart stream. Expected state to be "${MultiparParserStateEnum.data}" but got "${this.state}".`,
|
161
164
|
DOMExceptionNameEnum.invalidStateError
|
162
165
|
);
|
@@ -10,6 +10,7 @@ import IRequestBody from '../types/IRequestBody.js';
|
|
10
10
|
import IResponseBody from '../types/IResponseBody.js';
|
11
11
|
import { Buffer } from 'buffer';
|
12
12
|
import Stream from 'stream';
|
13
|
+
import BrowserWindow from '../../window/BrowserWindow.js';
|
13
14
|
|
14
15
|
/**
|
15
16
|
* Fetch body utility.
|
@@ -97,17 +98,21 @@ export default class FetchBodyUtility {
|
|
97
98
|
* It is actually not cloning the stream.
|
98
99
|
* It creates a pass through stream and pipes the original stream to it.
|
99
100
|
*
|
101
|
+
* @param window Window.
|
100
102
|
* @param requestOrResponse Request or Response.
|
101
103
|
* @param requestOrResponse.body Body.
|
102
104
|
* @param requestOrResponse.bodyUsed Body used.
|
103
105
|
* @returns New stream.
|
104
106
|
*/
|
105
|
-
public static cloneBodyStream(
|
106
|
-
|
107
|
-
|
108
|
-
|
107
|
+
public static cloneBodyStream(
|
108
|
+
window: BrowserWindow,
|
109
|
+
requestOrResponse: {
|
110
|
+
body: ReadableStream | null;
|
111
|
+
bodyUsed: boolean;
|
112
|
+
}
|
113
|
+
): ReadableStream {
|
109
114
|
if (requestOrResponse.bodyUsed) {
|
110
|
-
throw new DOMException(
|
115
|
+
throw new window.DOMException(
|
111
116
|
`Failed to clone body stream of request: Request body is already used.`,
|
112
117
|
DOMExceptionNameEnum.invalidStateError
|
113
118
|
);
|
@@ -153,10 +158,14 @@ export default class FetchBodyUtility {
|
|
153
158
|
* https://github.com/node-fetch/node-fetch/blob/main/src/body.js (MIT)
|
154
159
|
*
|
155
160
|
* @see https://fetch.spec.whatwg.org/#concept-body-consume-body
|
161
|
+
* @param window Window.
|
156
162
|
* @param body Body stream.
|
157
163
|
* @returns Promise.
|
158
164
|
*/
|
159
|
-
public static async consumeBodyStream(
|
165
|
+
public static async consumeBodyStream(
|
166
|
+
window: BrowserWindow,
|
167
|
+
body: ReadableStream | null
|
168
|
+
): Promise<Buffer> {
|
160
169
|
if (body === null || !(body instanceof ReadableStream)) {
|
161
170
|
return Buffer.alloc(0);
|
162
171
|
}
|
@@ -175,6 +184,12 @@ export default class FetchBodyUtility {
|
|
175
184
|
if (body[PropertySymbol.error]) {
|
176
185
|
throw body[PropertySymbol.error];
|
177
186
|
}
|
187
|
+
if (body[PropertySymbol.aborted]) {
|
188
|
+
throw new window.DOMException(
|
189
|
+
'Failed to read response body: The stream was aborted.',
|
190
|
+
DOMExceptionNameEnum.abortError
|
191
|
+
);
|
192
|
+
}
|
178
193
|
const chunk = readResult.value;
|
179
194
|
bytes += chunk.length;
|
180
195
|
chunks.push(chunk);
|
@@ -184,7 +199,7 @@ export default class FetchBodyUtility {
|
|
184
199
|
if (error instanceof DOMException) {
|
185
200
|
throw error;
|
186
201
|
}
|
187
|
-
throw new DOMException(
|
202
|
+
throw new window.DOMException(
|
188
203
|
`Failed to read response body. Error: ${error.message}.`,
|
189
204
|
DOMExceptionNameEnum.encodingError
|
190
205
|
);
|
@@ -197,7 +212,7 @@ export default class FetchBodyUtility {
|
|
197
212
|
|
198
213
|
return Buffer.concat(chunks, bytes);
|
199
214
|
} catch (error) {
|
200
|
-
throw new DOMException(
|
215
|
+
throw new window.DOMException(
|
201
216
|
`Could not create Buffer from response body. Error: ${error.message}.`,
|
202
217
|
DOMExceptionNameEnum.invalidStateError
|
203
218
|
);
|
package/src/file/FileReader.ts
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
import WhatwgMIMEType from 'whatwg-mimetype';
|
2
2
|
import * as PropertySymbol from '../PropertySymbol.js';
|
3
|
-
import BrowserWindow from '../window/BrowserWindow.js';
|
4
3
|
import ProgressEvent from '../event/events/ProgressEvent.js';
|
5
|
-
import DOMException from '../exception/DOMException.js';
|
6
4
|
import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
|
7
5
|
import Blob from './Blob.js';
|
8
6
|
import FileReaderReadyStateEnum from './FileReaderReadyStateEnum.js';
|
@@ -31,16 +29,18 @@ export default class FileReader extends EventTarget {
|
|
31
29
|
#isTerminated = false;
|
32
30
|
#loadTimeout: NodeJS.Timeout | null = null;
|
33
31
|
#parseTimeout: NodeJS.Timeout | null = null;
|
34
|
-
readonly #window: BrowserWindow;
|
35
32
|
|
36
33
|
/**
|
37
34
|
* Constructor.
|
38
|
-
*
|
39
|
-
* @param window Window.
|
40
35
|
*/
|
41
|
-
constructor(
|
36
|
+
constructor() {
|
42
37
|
super();
|
43
|
-
|
38
|
+
|
39
|
+
if (!this[PropertySymbol.window]) {
|
40
|
+
throw new TypeError(
|
41
|
+
`Failed to construct '${this.constructor.name}': '${this.constructor.name}' was constructed outside a Window context.`
|
42
|
+
);
|
43
|
+
}
|
44
44
|
}
|
45
45
|
|
46
46
|
/**
|
@@ -84,8 +84,10 @@ export default class FileReader extends EventTarget {
|
|
84
84
|
* Aborts the file reader.
|
85
85
|
*/
|
86
86
|
public abort(): void {
|
87
|
-
this
|
88
|
-
|
87
|
+
const window = this[PropertySymbol.window];
|
88
|
+
|
89
|
+
window.clearTimeout(this.#loadTimeout);
|
90
|
+
window.clearTimeout(this.#parseTimeout);
|
89
91
|
|
90
92
|
if (
|
91
93
|
this.readyState === FileReaderReadyStateEnum.empty ||
|
@@ -113,8 +115,10 @@ export default class FileReader extends EventTarget {
|
|
113
115
|
* @param [encoding] Encoding.
|
114
116
|
*/
|
115
117
|
#readFile(blob: Blob, format: FileReaderFormatEnum, encoding: string | null = null): void {
|
118
|
+
const window = this[PropertySymbol.window];
|
119
|
+
|
116
120
|
if (this.readyState === FileReaderReadyStateEnum.loading) {
|
117
|
-
throw new DOMException(
|
121
|
+
throw new window.DOMException(
|
118
122
|
'The object is in an invalid state.',
|
119
123
|
DOMExceptionNameEnum.invalidStateError
|
120
124
|
);
|
@@ -122,7 +126,7 @@ export default class FileReader extends EventTarget {
|
|
122
126
|
|
123
127
|
(<number>this.readyState) = FileReaderReadyStateEnum.loading;
|
124
128
|
|
125
|
-
this.#loadTimeout =
|
129
|
+
this.#loadTimeout = window.setTimeout(() => {
|
126
130
|
if (this.#isTerminated) {
|
127
131
|
this.#isTerminated = false;
|
128
132
|
return;
|
@@ -143,7 +147,7 @@ export default class FileReader extends EventTarget {
|
|
143
147
|
})
|
144
148
|
);
|
145
149
|
|
146
|
-
this.#parseTimeout =
|
150
|
+
this.#parseTimeout = window.setTimeout(() => {
|
147
151
|
if (this.#isTerminated) {
|
148
152
|
this.#isTerminated = false;
|
149
153
|
return;
|