happy-dom 2.50.0 → 2.51.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/lib/async-task-manager/AsyncTaskManager.d.ts +65 -0
- package/lib/{window → async-task-manager}/AsyncTaskManager.js +52 -55
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -0
- package/lib/fetch/FetchHandler.d.ts +17 -0
- package/lib/fetch/FetchHandler.js +59 -0
- package/lib/fetch/FetchHandler.js.map +1 -0
- package/lib/fetch/Headers.d.ts +7 -0
- package/lib/fetch/Headers.js +53 -0
- package/lib/fetch/Headers.js.map +1 -0
- package/lib/fetch/IAbortSignal.d.ts +16 -0
- package/lib/fetch/IAbortSignal.js +4 -0
- package/lib/fetch/IAbortSignal.js.map +1 -0
- package/lib/fetch/IBody.d.ts +17 -0
- package/lib/{window/IFetchOptions.js → fetch/IBody.js} +1 -1
- package/lib/fetch/IBody.js.map +1 -0
- package/lib/fetch/IHeaders.d.ts +18 -0
- package/lib/fetch/IHeaders.js +3 -0
- package/lib/fetch/IHeaders.js.map +1 -0
- package/lib/fetch/IHeadersInit.d.ts +5 -0
- package/lib/fetch/IHeadersInit.js +3 -0
- package/lib/fetch/IHeadersInit.js.map +1 -0
- package/lib/fetch/IRequest.d.ts +18 -0
- package/lib/fetch/IRequest.js +3 -0
- package/lib/fetch/IRequest.js.map +1 -0
- package/lib/fetch/IRequestInit.d.ts +15 -0
- package/lib/fetch/IRequestInit.js +3 -0
- package/lib/fetch/IRequestInit.js.map +1 -0
- package/lib/fetch/IResponse.d.ts +20 -0
- package/lib/{window → fetch}/IResponse.js +0 -0
- package/lib/{window → fetch}/IResponse.js.map +1 -1
- package/lib/fetch/IResponseInit.d.ts +9 -0
- package/lib/fetch/IResponseInit.js +3 -0
- package/lib/fetch/IResponseInit.js.map +1 -0
- package/lib/fetch/Request.d.ts +69 -0
- package/lib/fetch/Request.js +179 -0
- package/lib/fetch/Request.js.map +1 -0
- package/lib/fetch/ResourceFetchHandler.d.ts +22 -0
- package/lib/fetch/{ResourceFetcher.js → ResourceFetchHandler.js} +19 -26
- package/lib/fetch/ResourceFetchHandler.js.map +1 -0
- package/lib/fetch/Response.d.ts +69 -0
- package/lib/fetch/Response.js +179 -0
- package/lib/fetch/Response.js.map +1 -0
- package/lib/file/Blob.d.ts +8 -1
- package/lib/file/Blob.js +48 -0
- package/lib/file/Blob.js.map +1 -1
- package/lib/file/IBlob.d.ts +10 -0
- package/lib/file/IBlob.js +3 -0
- package/lib/file/IBlob.js.map +1 -0
- package/lib/form-data/IFormData.d.ts +30 -0
- package/lib/form-data/IFormData.js +3 -0
- package/lib/form-data/IFormData.js.map +1 -0
- package/lib/index.d.ts +3 -5
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +3 -3
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-script-element/ScriptUtility.js +3 -9
- package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
- package/lib/window/IWindow.d.ts +20 -16
- package/lib/window/Window.d.ts +45 -10
- package/lib/window/Window.js +72 -66
- package/lib/window/Window.js.map +1 -1
- package/package.json +3 -2
- package/src/async-task-manager/AsyncTaskManager.ts +128 -0
- package/src/fetch/FetchHandler.ts +54 -0
- package/src/fetch/Headers.ts +7 -0
- package/src/fetch/IAbortSignal.ts +34 -0
- package/src/fetch/IBody.ts +18 -0
- package/src/fetch/IHeaders.ts +18 -0
- package/src/fetch/IHeadersInit.ts +5 -0
- package/src/fetch/IRequest.ts +59 -0
- package/src/fetch/IRequestInit.ts +41 -0
- package/src/fetch/IResponse.ts +22 -0
- package/src/fetch/IResponseInit.ts +10 -0
- package/src/fetch/Request.ts +149 -0
- package/src/fetch/ResourceFetchHandler.ts +47 -0
- package/src/fetch/Response.ts +149 -0
- package/src/file/Blob.ts +12 -1
- package/src/file/IBlob.ts +10 -0
- package/src/form-data/IFormData.ts +33 -0
- package/src/index.ts +2 -6
- package/src/nodes/html-link-element/HTMLLinkElement.ts +3 -3
- package/src/nodes/html-script-element/ScriptUtility.ts +3 -9
- package/src/window/IWindow.ts +14 -16
- package/src/window/Window.ts +68 -67
- package/lib/fetch/ResourceFetcher.d.ts +0 -30
- package/lib/fetch/ResourceFetcher.js.map +0 -1
- package/lib/url-search-params/URLSearchParams.d.ts +0 -87
- package/lib/url-search-params/URLSearchParams.js +0 -196
- package/lib/url-search-params/URLSearchParams.js.map +0 -1
- package/lib/window/AsyncTaskManager.d.ts +0 -54
- package/lib/window/AsyncTaskManager.js.map +0 -1
- package/lib/window/AsyncTaskTypeEnum.d.ts +0 -5
- package/lib/window/AsyncTaskTypeEnum.js +0 -9
- package/lib/window/AsyncTaskTypeEnum.js.map +0 -1
- package/lib/window/IFetchOptions.d.ts +0 -13
- package/lib/window/IFetchOptions.js.map +0 -1
- package/lib/window/IResponse.d.ts +0 -32
- package/src/fetch/ResourceFetcher.ts +0 -55
- package/src/url-search-params/URLSearchParams.ts +0 -198
- package/src/window/AsyncTaskManager.ts +0 -127
- package/src/window/AsyncTaskTypeEnum.ts +0 -5
- package/src/window/IFetchOptions.ts +0 -11
- package/src/window/IResponse.ts +0 -34
@@ -0,0 +1,30 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import Stream from 'stream';
|
3
|
+
import HTTP from 'http';
|
4
|
+
interface IHeaders {
|
5
|
+
[key: string]: unknown;
|
6
|
+
}
|
7
|
+
interface IAppendOptions {
|
8
|
+
header?: string | IHeaders;
|
9
|
+
knownLength?: number;
|
10
|
+
filename?: string;
|
11
|
+
filepath?: string;
|
12
|
+
contentType?: string;
|
13
|
+
}
|
14
|
+
interface ISubmitOptions extends HTTP.RequestOptions {
|
15
|
+
protocol?: 'https:' | 'http:';
|
16
|
+
}
|
17
|
+
export default interface IFormData extends Stream.Readable {
|
18
|
+
append(key: string, value: unknown, options?: IAppendOptions | string): void;
|
19
|
+
getHeaders(userHeaders?: IHeaders): {
|
20
|
+
[key: string]: IHeaders;
|
21
|
+
};
|
22
|
+
submit(params: string | ISubmitOptions, callback?: (error: Error | null, response: HTTP.IncomingMessage) => void): HTTP.ClientRequest;
|
23
|
+
getBuffer(): Buffer;
|
24
|
+
setBoundary(boundary: string): void;
|
25
|
+
getBoundary(): string;
|
26
|
+
getLength(callback: (err: Error | null, length: number) => void): void;
|
27
|
+
getLengthSync(): number;
|
28
|
+
hasKnownLength(): boolean;
|
29
|
+
}
|
30
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IFormData.js","sourceRoot":"","sources":["../../src/form-data/IFormData.ts"],"names":[],"mappings":""}
|
package/lib/index.d.ts
CHANGED
@@ -14,9 +14,7 @@ import DOMException from './exception/DOMException';
|
|
14
14
|
import History from './history/History';
|
15
15
|
import CSSStyleDeclaration from './css/CSSStyleDeclaration';
|
16
16
|
import Screen from './screen/Screen';
|
17
|
-
import AsyncTaskManager from './
|
18
|
-
import IResponse from './window/IResponse';
|
19
|
-
import IFetchOptions from './window/IFetchOptions';
|
17
|
+
import AsyncTaskManager from './async-task-manager/AsyncTaskManager';
|
20
18
|
import NodeFilter from './tree-walker/NodeFilter';
|
21
19
|
import Event from './event/Event';
|
22
20
|
import EventTarget from './event/EventTarget';
|
@@ -101,6 +99,6 @@ import XMLParser from './xml-parser/XMLParser';
|
|
101
99
|
import XMLSerializer from './xml-serializer/XMLSerializer';
|
102
100
|
import CSSStyleSheet from './css/CSSStyleSheet';
|
103
101
|
import Storage from './storage/Storage';
|
104
|
-
import URLSearchParams from '
|
102
|
+
import { URLSearchParams } from 'url';
|
105
103
|
import Selection from './selection/Selection';
|
106
|
-
export { AsyncWindow, Window, IWindow, DataTransfer, DataTransferItem, DataTransferItemList, URL, Location, MutationObserver, ResizeObserver, Blob, File, FileReader, DOMException, History, CSSStyleDeclaration, Screen, AsyncTaskManager,
|
104
|
+
export { AsyncWindow, Window, IWindow, DataTransfer, DataTransferItem, DataTransferItemList, URL, Location, MutationObserver, ResizeObserver, Blob, File, FileReader, DOMException, History, CSSStyleDeclaration, Screen, AsyncTaskManager, NodeFilter, Event, EventTarget, IEventInit, IEventListener, IUIEventInit, UIEvent, ErrorEvent, FocusEvent, AnimationEvent, IAnimationEventInit, ICustomEventInit, CustomEvent, IErrorEventInit, IFocusEventInit, IInputEventInit, IKeyboardEventInit, IMouseEventInit, IProgressEventInit, IWheelEventInit, InputEvent, KeyboardEvent, MouseEvent, ProgressEvent, WheelEvent, DOMParser, Document, IDocument, HTMLDocument, XMLDocument, SVGDocument, Element, IElement, IHTMLCollection, HTMLElement, IHTMLElement, HTMLTemplateElement, IHTMLTemplateElement, HTMLFormElement, IHTMLFormElement, HTMLInputElement, IHTMLInputElement, HTMLTextAreaElement, IHTMLTextAreaElement, HTMLImageElement, IHTMLImageElement, Image, HTMLScriptElement, HTMLLinkElement, IHTMLLinkElement, HTMLStyleElement, IHTMLStyleElement, HTMLSlotElement, IHTMLSlotElement, HTMLLabelElement, IHTMLLabelElement, HTMLMetaElement, IHTMLMetaElement, SVGElement, ISVGElement, SVGGraphicsElement, ISVGGraphicsElement, SVGSVGElement, ISVGSVGElement, DocumentFragment, IDocumentFragment, ShadowRoot, IShadowRoot, Node, INode, INodeList, Text, IText, Comment, IComment, DocumentType, IDocumentType, TreeWalker, CustomElementRegistry, XMLParser, XMLSerializer, CSSStyleSheet, Storage, URLSearchParams, Selection };
|
package/lib/index.js
CHANGED
@@ -35,7 +35,7 @@ var CSSStyleDeclaration_1 = __importDefault(require("./css/CSSStyleDeclaration")
|
|
35
35
|
exports.CSSStyleDeclaration = CSSStyleDeclaration_1.default;
|
36
36
|
var Screen_1 = __importDefault(require("./screen/Screen"));
|
37
37
|
exports.Screen = Screen_1.default;
|
38
|
-
var AsyncTaskManager_1 = __importDefault(require("./
|
38
|
+
var AsyncTaskManager_1 = __importDefault(require("./async-task-manager/AsyncTaskManager"));
|
39
39
|
exports.AsyncTaskManager = AsyncTaskManager_1.default;
|
40
40
|
var NodeFilter_1 = __importDefault(require("./tree-walker/NodeFilter"));
|
41
41
|
exports.NodeFilter = NodeFilter_1.default;
|
@@ -133,8 +133,8 @@ var CSSStyleSheet_1 = __importDefault(require("./css/CSSStyleSheet"));
|
|
133
133
|
exports.CSSStyleSheet = CSSStyleSheet_1.default;
|
134
134
|
var Storage_1 = __importDefault(require("./storage/Storage"));
|
135
135
|
exports.Storage = Storage_1.default;
|
136
|
-
var
|
137
|
-
exports
|
136
|
+
var url_1 = require("url");
|
137
|
+
Object.defineProperty(exports, "URLSearchParams", { enumerable: true, get: function () { return url_1.URLSearchParams; } });
|
138
138
|
var Selection_1 = __importDefault(require("./selection/Selection"));
|
139
139
|
exports.Selection = Selection_1.default;
|
140
140
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AAAA,2DAAqC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
@@ -19,7 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
19
|
};
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
21
21
|
var CSSStyleSheet_1 = __importDefault(require("../../css/CSSStyleSheet"));
|
22
|
-
var
|
22
|
+
var ResourceFetchHandler_1 = __importDefault(require("../../fetch/ResourceFetchHandler"));
|
23
23
|
var HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
|
24
24
|
var Event_1 = __importDefault(require("../../event/Event"));
|
25
25
|
var ErrorEvent_1 = __importDefault(require("../../event/events/ErrorEvent"));
|
@@ -234,7 +234,7 @@ var HTMLLinkElement = /** @class */ (function (_super) {
|
|
234
234
|
rel.toLowerCase() === 'stylesheet' &&
|
235
235
|
this.isConnected) {
|
236
236
|
this.ownerDocument._readyStateManager.startTask();
|
237
|
-
|
237
|
+
ResourceFetchHandler_1.default.fetch(this.ownerDocument, href)
|
238
238
|
.then(function (code) {
|
239
239
|
var styleSheet = new CSSStyleSheet_1.default();
|
240
240
|
styleSheet.replaceSync(code);
|
@@ -273,7 +273,7 @@ var HTMLLinkElement = /** @class */ (function (_super) {
|
|
273
273
|
var rel = this.getAttributeNS(null, 'rel');
|
274
274
|
if (href !== null && rel && rel.toLowerCase() === 'stylesheet') {
|
275
275
|
this.ownerDocument._readyStateManager.startTask();
|
276
|
-
|
276
|
+
ResourceFetchHandler_1.default.fetch(this.ownerDocument, href)
|
277
277
|
.then(function (code) {
|
278
278
|
var styleSheet = new CSSStyleSheet_1.default();
|
279
279
|
styleSheet.replaceSync(code);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,0EAAoD;AACpD,
|
1
|
+
{"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":"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"}
|
@@ -41,7 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
42
42
|
var Event_1 = __importDefault(require("../../event/Event"));
|
43
43
|
var ErrorEvent_1 = __importDefault(require("../../event/events/ErrorEvent"));
|
44
|
-
var
|
44
|
+
var ResourceFetchHandler_1 = __importDefault(require("../../fetch/ResourceFetchHandler"));
|
45
45
|
/**
|
46
46
|
* Helper class for getting the URL relative to a Location object.
|
47
47
|
*/
|
@@ -69,10 +69,7 @@ var ScriptUtility = /** @class */ (function () {
|
|
69
69
|
_a.label = 1;
|
70
70
|
case 1:
|
71
71
|
_a.trys.push([1, 3, , 4]);
|
72
|
-
return [4 /*yield*/,
|
73
|
-
window: element.ownerDocument.defaultView,
|
74
|
-
url: src
|
75
|
-
})];
|
72
|
+
return [4 /*yield*/, ResourceFetchHandler_1.default.fetch(element.ownerDocument, src)];
|
76
73
|
case 2:
|
77
74
|
code = _a.sent();
|
78
75
|
return [3 /*break*/, 4];
|
@@ -101,10 +98,7 @@ var ScriptUtility = /** @class */ (function () {
|
|
101
98
|
case 5:
|
102
99
|
code = null;
|
103
100
|
try {
|
104
|
-
code =
|
105
|
-
window: element.ownerDocument.defaultView,
|
106
|
-
url: src
|
107
|
-
});
|
101
|
+
code = ResourceFetchHandler_1.default.fetchSync(element.ownerDocument, src);
|
108
102
|
}
|
109
103
|
catch (error) {
|
110
104
|
element.dispatchEvent(new ErrorEvent_1.default('error', {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ScriptUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-script-element/ScriptUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAAsC;AACtC,6EAAuD;AACvD,
|
1
|
+
{"version":3,"file":"ScriptUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-script-element/ScriptUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4DAAsC;AACtC,6EAAuD;AACvD,0FAAoE;AAGpE;;GAEG;AACH;IAAA;IAuEA,CAAC;IAtEA;;;;;;OAMG;IACiB,gCAAkB,GAAtC,UAAuC,OAA0B;;;;;;wBAC1D,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC1C,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;6BACzD,KAAK,EAAL,wBAAK;wBACJ,IAAI,GAAG,IAAI,CAAC;wBACL,OAAO,CAAC,aAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;;;;wBAEzD,qBAAM,8BAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,EAAA;;wBAAnE,IAAI,GAAG,SAA4D,CAAC;;;;wBAEpE,OAAO,CAAC,aAAa,CACpB,IAAI,oBAAU,CAAC,OAAO,EAAE;4BACvB,OAAO,EAAE,OAAK,CAAC,OAAO;4BACtB,KAAK,SAAA;yBACL,CAAC,CACF,CAAC;wBACF,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAC9C,IAAI,oBAAU,CAAC,OAAO,EAAE;4BACvB,OAAO,EAAE,OAAK,CAAC,OAAO;4BACtB,KAAK,SAAA;yBACL,CAAC,CACF,CAAC;wBACF,IACC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;4BAC5B,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EACrD;4BACD,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAC;yBACvD;;;wBAEF,IAAI,IAAI,EAAE;4BACT,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC;yBACzC;wBACU,OAAO,CAAC,aAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;;;wBAE3D,IAAI,GAAG,IAAI,CAAC;wBAChB,IAAI;4BACH,IAAI,GAAG,8BAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;yBAClE;wBAAC,OAAO,KAAK,EAAE;4BACf,OAAO,CAAC,aAAa,CACpB,IAAI,oBAAU,CAAC,OAAO,EAAE;gCACvB,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,KAAK,OAAA;6BACL,CAAC,CACF,CAAC;4BACF,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAC9C,IAAI,oBAAU,CAAC,OAAO,EAAE;gCACvB,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,KAAK,OAAA;6BACL,CAAC,CACF,CAAC;4BACF,IACC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gCAC5B,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EACrD;gCACD,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;6BACvD;yBACD;wBACD,IAAI,IAAI,EAAE;4BACT,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC;yBACzC;;;;;;KAEF;IACF,oBAAC;AAAD,CAAC,AAvED,IAuEC"}
|
package/lib/window/IWindow.d.ts
CHANGED
@@ -61,13 +61,15 @@ import UIEvent from '../event/UIEvent';
|
|
61
61
|
import ErrorEvent from '../event/events/ErrorEvent';
|
62
62
|
import StorageEvent from '../event/events/StorageEvent';
|
63
63
|
import Screen from '../screen/Screen';
|
64
|
-
import AsyncTaskManager from '
|
65
|
-
import IResponse from '
|
64
|
+
import AsyncTaskManager from '../async-task-manager/AsyncTaskManager';
|
65
|
+
import IResponse from '../fetch/IResponse';
|
66
|
+
import IResponseInit from '../fetch/IResponseInit';
|
67
|
+
import IRequest from '../fetch/IRequest';
|
68
|
+
import IRequestInit from '../fetch/IRequestInit';
|
69
|
+
import IHeaders from '../fetch/IHeaders';
|
66
70
|
import Storage from '../storage/Storage';
|
67
|
-
import IFetchOptions from './IFetchOptions';
|
68
71
|
import NodeFilter from '../tree-walker/NodeFilter';
|
69
72
|
import Window from './Window';
|
70
|
-
import URLSearchParams from '../url-search-params/URLSearchParams';
|
71
73
|
import HTMLCollection from '../nodes/element/HTMLCollection';
|
72
74
|
import NodeList from '../nodes/node/NodeList';
|
73
75
|
import Selection from '../selection/Selection';
|
@@ -77,6 +79,7 @@ import MimeType from '../navigator/MimeType';
|
|
77
79
|
import MimeTypeArray from '../navigator/MimeTypeArray';
|
78
80
|
import Plugin from '../navigator/Plugin';
|
79
81
|
import PluginArray from '../navigator/PluginArray';
|
82
|
+
import { URLSearchParams } from 'url';
|
80
83
|
/**
|
81
84
|
* Window.
|
82
85
|
*/
|
@@ -138,7 +141,15 @@ export default interface IWindow extends IEventTarget {
|
|
138
141
|
readonly Location: typeof Location;
|
139
142
|
readonly CustomElementRegistry: typeof CustomElementRegistry;
|
140
143
|
readonly Window: typeof Window;
|
141
|
-
readonly Headers:
|
144
|
+
readonly Headers: {
|
145
|
+
new (init?: string[][] | Record<string, string> | IHeaders): IHeaders;
|
146
|
+
};
|
147
|
+
readonly Request: {
|
148
|
+
new (input: string | IRequest, init?: IRequestInit): IRequest;
|
149
|
+
};
|
150
|
+
readonly Response: {
|
151
|
+
new (body?: unknown | null, init?: IResponseInit): IResponse;
|
152
|
+
};
|
142
153
|
readonly XMLSerializer: typeof XMLSerializer;
|
143
154
|
readonly ResizeObserver: typeof ResizeObserver;
|
144
155
|
readonly CSSStyleSheet: typeof CSSStyleSheet;
|
@@ -217,7 +228,6 @@ export default interface IWindow extends IEventTarget {
|
|
217
228
|
/**
|
218
229
|
* Sets a timer which executes a function once the timer expires.
|
219
230
|
*
|
220
|
-
* @override
|
221
231
|
* @param callback Function to be executed.
|
222
232
|
* @param [delay=0] Delay in ms.
|
223
233
|
* @returns Timeout ID.
|
@@ -226,14 +236,12 @@ export default interface IWindow extends IEventTarget {
|
|
226
236
|
/**
|
227
237
|
* Cancels a timeout previously established by calling setTimeout().
|
228
238
|
*
|
229
|
-
* @override
|
230
239
|
* @param id ID of the timeout.
|
231
240
|
*/
|
232
241
|
clearTimeout(id: NodeJS.Timeout): void;
|
233
242
|
/**
|
234
243
|
* Calls a function with a fixed time delay between each call.
|
235
244
|
*
|
236
|
-
* @override
|
237
245
|
* @param callback Function to be executed.
|
238
246
|
* @param [delay=0] Delay in ms.
|
239
247
|
* @returns Interval ID.
|
@@ -242,14 +250,12 @@ export default interface IWindow extends IEventTarget {
|
|
242
250
|
/**
|
243
251
|
* Cancels a timed repeating action which was previously established by a call to setInterval().
|
244
252
|
*
|
245
|
-
* @override
|
246
253
|
* @param id ID of the interval.
|
247
254
|
*/
|
248
255
|
clearInterval(id: NodeJS.Timeout): void;
|
249
256
|
/**
|
250
257
|
* Mock animation frames with timeouts.
|
251
258
|
*
|
252
|
-
* @override
|
253
259
|
* @param {Function} callback Callback.
|
254
260
|
* @returns {NodeJS.Timeout} Timeout ID.
|
255
261
|
*/
|
@@ -257,17 +263,15 @@ export default interface IWindow extends IEventTarget {
|
|
257
263
|
/**
|
258
264
|
* Mock animation frames with timeouts.
|
259
265
|
*
|
260
|
-
* @override
|
261
266
|
* @param {NodeJS.Timeout} id Timeout ID.
|
262
267
|
*/
|
263
268
|
cancelAnimationFrame(id: NodeJS.Timeout): void;
|
264
269
|
/**
|
265
|
-
*
|
270
|
+
* This method provides an easy, logical way to fetch resources asynchronously across the network.
|
266
271
|
*
|
267
|
-
* @
|
268
|
-
* @param
|
269
|
-
* @param [options] Options.
|
272
|
+
* @param url URL.
|
273
|
+
* @param [init] Init.
|
270
274
|
* @returns Promise.
|
271
275
|
*/
|
272
|
-
fetch(url: string,
|
276
|
+
fetch(url: string, init?: IRequestInit): Promise<IResponse>;
|
273
277
|
}
|
package/lib/window/Window.d.ts
CHANGED
@@ -61,12 +61,15 @@ import UIEvent from '../event/UIEvent';
|
|
61
61
|
import ErrorEvent from '../event/events/ErrorEvent';
|
62
62
|
import StorageEvent from '../event/events/StorageEvent';
|
63
63
|
import Screen from '../screen/Screen';
|
64
|
-
import AsyncTaskManager from '
|
65
|
-
import IResponse from '
|
64
|
+
import AsyncTaskManager from '../async-task-manager/AsyncTaskManager';
|
65
|
+
import IResponse from '../fetch/IResponse';
|
66
|
+
import IResponseInit from '../fetch/IResponseInit';
|
67
|
+
import IRequest from '../fetch/IRequest';
|
68
|
+
import IRequestInit from '../fetch/IRequestInit';
|
69
|
+
import IHeaders from '../fetch/IHeaders';
|
70
|
+
import IHeadersInit from '../fetch/IHeadersInit';
|
66
71
|
import Storage from '../storage/Storage';
|
67
|
-
import IFetchOptions from './IFetchOptions';
|
68
72
|
import IWindow from './IWindow';
|
69
|
-
import URLSearchParams from '../url-search-params/URLSearchParams';
|
70
73
|
import HTMLCollection from '../nodes/element/HTMLCollection';
|
71
74
|
import NodeList from '../nodes/node/NodeList';
|
72
75
|
import MediaQueryList from '../match-media/MediaQueryList';
|
@@ -77,6 +80,7 @@ import MimeType from '../navigator/MimeType';
|
|
77
80
|
import MimeTypeArray from '../navigator/MimeTypeArray';
|
78
81
|
import Plugin from '../navigator/Plugin';
|
79
82
|
import PluginArray from '../navigator/PluginArray';
|
83
|
+
import { URLSearchParams } from 'url';
|
80
84
|
/**
|
81
85
|
* Handles the Window.
|
82
86
|
*/
|
@@ -155,7 +159,6 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
155
159
|
readonly Location: typeof Location;
|
156
160
|
readonly CustomElementRegistry: typeof CustomElementRegistry;
|
157
161
|
readonly Window: typeof Window;
|
158
|
-
readonly Headers: MapConstructor;
|
159
162
|
readonly XMLSerializer: typeof XMLSerializer;
|
160
163
|
readonly ResizeObserver: typeof ResizeObserver;
|
161
164
|
readonly CSSStyleSheet: typeof CSSStyleSheet;
|
@@ -197,7 +200,6 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
197
200
|
readonly sessionStorage: Storage;
|
198
201
|
readonly localStorage: Storage;
|
199
202
|
readonly performance: PerfHooks.Performance;
|
200
|
-
Array: ArrayConstructor;
|
201
203
|
ArrayBuffer: ArrayBufferConstructor;
|
202
204
|
Boolean: BooleanConstructor;
|
203
205
|
Buffer: any;
|
@@ -263,6 +265,7 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
263
265
|
prototype: AbortSignal;
|
264
266
|
};
|
265
267
|
private _objectClass;
|
268
|
+
private _arrayClass;
|
266
269
|
private _functionClass;
|
267
270
|
/**
|
268
271
|
* Constructor.
|
@@ -274,6 +277,12 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
274
277
|
* @returns Object class.
|
275
278
|
*/
|
276
279
|
get Object(): typeof globalThis.Object;
|
280
|
+
/**
|
281
|
+
* Returns Array class.
|
282
|
+
*
|
283
|
+
* @returns Array class.
|
284
|
+
*/
|
285
|
+
get Array(): typeof globalThis.Array;
|
277
286
|
/**
|
278
287
|
* Returns Function class.
|
279
288
|
*
|
@@ -286,6 +295,32 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
286
295
|
* @returns CSS interface.
|
287
296
|
*/
|
288
297
|
get CSS(): CSS;
|
298
|
+
/**
|
299
|
+
* Returns Headers class.
|
300
|
+
*
|
301
|
+
* @returns Headers.
|
302
|
+
*/
|
303
|
+
get Headers(): {
|
304
|
+
new (init?: IHeadersInit): IHeaders;
|
305
|
+
};
|
306
|
+
/**
|
307
|
+
* Returns Request class.
|
308
|
+
*
|
309
|
+
* @returns Request.
|
310
|
+
*/
|
311
|
+
get Request(): {
|
312
|
+
new (input: string | {
|
313
|
+
href: string;
|
314
|
+
} | IRequest, init?: IRequestInit): IRequest;
|
315
|
+
};
|
316
|
+
/**
|
317
|
+
* Returns Response class.
|
318
|
+
*
|
319
|
+
* @returns Response.
|
320
|
+
*/
|
321
|
+
get Response(): {
|
322
|
+
new (body?: NodeJS.ReadableStream | null, init?: IResponseInit): IResponse;
|
323
|
+
};
|
289
324
|
/**
|
290
325
|
* Evaluates code.
|
291
326
|
*
|
@@ -377,12 +412,12 @@ export default class Window extends EventTarget implements IWindow, NodeJS.Globa
|
|
377
412
|
*/
|
378
413
|
cancelAnimationFrame(id: NodeJS.Timeout): void;
|
379
414
|
/**
|
380
|
-
*
|
415
|
+
* This method provides an easy, logical way to fetch resources asynchronously across the network.
|
381
416
|
*
|
382
417
|
* @override
|
383
|
-
* @param url URL
|
384
|
-
* @param [
|
418
|
+
* @param url URL.
|
419
|
+
* @param [init] Init.
|
385
420
|
* @returns Promise.
|
386
421
|
*/
|
387
|
-
fetch(url: string,
|
422
|
+
fetch(url: string, init?: IRequestInit): Promise<IResponse>;
|
388
423
|
}
|
package/lib/window/Window.js
CHANGED
@@ -142,11 +142,8 @@ var UIEvent_1 = __importDefault(require("../event/UIEvent"));
|
|
142
142
|
var ErrorEvent_1 = __importDefault(require("../event/events/ErrorEvent"));
|
143
143
|
var StorageEvent_1 = __importDefault(require("../event/events/StorageEvent"));
|
144
144
|
var Screen_1 = __importDefault(require("../screen/Screen"));
|
145
|
-
var AsyncTaskManager_1 = __importDefault(require("
|
146
|
-
var AsyncTaskTypeEnum_1 = __importDefault(require("./AsyncTaskTypeEnum"));
|
147
|
-
var RelativeURL_1 = __importDefault(require("../location/RelativeURL"));
|
145
|
+
var AsyncTaskManager_1 = __importDefault(require("../async-task-manager/AsyncTaskManager"));
|
148
146
|
var Storage_1 = __importDefault(require("../storage/Storage"));
|
149
|
-
var URLSearchParams_1 = __importDefault(require("../url-search-params/URLSearchParams"));
|
150
147
|
var HTMLCollection_1 = __importDefault(require("../nodes/element/HTMLCollection"));
|
151
148
|
var NodeList_1 = __importDefault(require("../nodes/node/NodeList"));
|
152
149
|
var MediaQueryList_1 = __importDefault(require("../match-media/MediaQueryList"));
|
@@ -157,7 +154,8 @@ var MimeType_1 = __importDefault(require("../navigator/MimeType"));
|
|
157
154
|
var MimeTypeArray_1 = __importDefault(require("../navigator/MimeTypeArray"));
|
158
155
|
var Plugin_1 = __importDefault(require("../navigator/Plugin"));
|
159
156
|
var PluginArray_1 = __importDefault(require("../navigator/PluginArray"));
|
160
|
-
var
|
157
|
+
var FetchHandler_1 = __importDefault(require("../fetch/FetchHandler"));
|
158
|
+
var url_1 = require("url");
|
161
159
|
/**
|
162
160
|
* Handles the Window.
|
163
161
|
*/
|
@@ -179,7 +177,7 @@ var Window = /** @class */ (function (_super) {
|
|
179
177
|
});
|
180
178
|
}); },
|
181
179
|
cancelAsync: function () {
|
182
|
-
_this.happyDOM.asyncTaskManager.
|
180
|
+
_this.happyDOM.asyncTaskManager.cancelAll();
|
183
181
|
},
|
184
182
|
asyncTaskManager: new AsyncTaskManager_1.default()
|
185
183
|
};
|
@@ -236,7 +234,6 @@ var Window = /** @class */ (function (_super) {
|
|
236
234
|
_this.Location = Location_1.default;
|
237
235
|
_this.CustomElementRegistry = CustomElementRegistry_1.default;
|
238
236
|
_this.Window = Window;
|
239
|
-
_this.Headers = Map;
|
240
237
|
_this.XMLSerializer = XMLSerializer_1.default;
|
241
238
|
_this.ResizeObserver = ResizeObserver_1.default;
|
242
239
|
_this.CSSStyleSheet = CSSStyleSheet_1.default;
|
@@ -247,7 +244,7 @@ var Window = /** @class */ (function (_super) {
|
|
247
244
|
_this.History = History_1.default;
|
248
245
|
_this.Screen = Screen_1.default;
|
249
246
|
_this.Storage = Storage_1.default;
|
250
|
-
_this.URLSearchParams =
|
247
|
+
_this.URLSearchParams = url_1.URLSearchParams;
|
251
248
|
_this.HTMLCollection = HTMLCollection_1.default;
|
252
249
|
_this.NodeList = NodeList_1.default;
|
253
250
|
_this.MediaQueryList = MediaQueryList_1.default;
|
@@ -279,7 +276,6 @@ var Window = /** @class */ (function (_super) {
|
|
279
276
|
_this.localStorage = new Storage_1.default();
|
280
277
|
_this.performance = PerfHooks.performance;
|
281
278
|
// Node.js Globals
|
282
|
-
_this.Array = global ? global.Array : null;
|
283
279
|
_this.ArrayBuffer = global ? global.ArrayBuffer : null;
|
284
280
|
_this.Boolean = global ? global.Boolean : null;
|
285
281
|
_this.Buffer = null;
|
@@ -340,6 +336,7 @@ var Window = /** @class */ (function (_super) {
|
|
340
336
|
_this.AbortSignal = global ? global.AbortSignal : null;
|
341
337
|
// Private properties
|
342
338
|
_this._objectClass = null;
|
339
|
+
_this._arrayClass = null;
|
343
340
|
_this._functionClass = null;
|
344
341
|
_this.document = new HTMLDocument_1.default();
|
345
342
|
_this.document.defaultView = _this;
|
@@ -388,6 +385,24 @@ var Window = /** @class */ (function (_super) {
|
|
388
385
|
enumerable: false,
|
389
386
|
configurable: true
|
390
387
|
});
|
388
|
+
Object.defineProperty(Window.prototype, "Array", {
|
389
|
+
/**
|
390
|
+
* Returns Array class.
|
391
|
+
*
|
392
|
+
* @returns Array class.
|
393
|
+
*/
|
394
|
+
get: function () {
|
395
|
+
if (this._arrayClass) {
|
396
|
+
return this._arrayClass;
|
397
|
+
}
|
398
|
+
// When inside a VM global.Object is not the same as [].constructor
|
399
|
+
// We will therefore run the code inside the VM to get the real constructor
|
400
|
+
this._arrayClass = this.eval('[].constructor');
|
401
|
+
return this._arrayClass;
|
402
|
+
},
|
403
|
+
enumerable: false,
|
404
|
+
configurable: true
|
405
|
+
});
|
391
406
|
Object.defineProperty(Window.prototype, "Function", {
|
392
407
|
/**
|
393
408
|
* Returns Function class.
|
@@ -418,6 +433,46 @@ var Window = /** @class */ (function (_super) {
|
|
418
433
|
enumerable: false,
|
419
434
|
configurable: true
|
420
435
|
});
|
436
|
+
Object.defineProperty(Window.prototype, "Headers", {
|
437
|
+
/**
|
438
|
+
* Returns Headers class.
|
439
|
+
*
|
440
|
+
* @returns Headers.
|
441
|
+
*/
|
442
|
+
get: function () {
|
443
|
+
return require('../fetch/Headers').default;
|
444
|
+
},
|
445
|
+
enumerable: false,
|
446
|
+
configurable: true
|
447
|
+
});
|
448
|
+
Object.defineProperty(Window.prototype, "Request", {
|
449
|
+
/**
|
450
|
+
* Returns Request class.
|
451
|
+
*
|
452
|
+
* @returns Request.
|
453
|
+
*/
|
454
|
+
get: function () {
|
455
|
+
var Request = require('../fetch/Request').default;
|
456
|
+
Request._ownerDocument = Request._ownerDocument || this.document;
|
457
|
+
return Request;
|
458
|
+
},
|
459
|
+
enumerable: false,
|
460
|
+
configurable: true
|
461
|
+
});
|
462
|
+
Object.defineProperty(Window.prototype, "Response", {
|
463
|
+
/**
|
464
|
+
* Returns Response class.
|
465
|
+
*
|
466
|
+
* @returns Response.
|
467
|
+
*/
|
468
|
+
get: function () {
|
469
|
+
var Response = require('../fetch/Response').default;
|
470
|
+
Response._ownerDocument = Response._ownerDocument || this.document;
|
471
|
+
return Response;
|
472
|
+
},
|
473
|
+
enumerable: false,
|
474
|
+
configurable: true
|
475
|
+
});
|
421
476
|
/**
|
422
477
|
* Evaluates code.
|
423
478
|
*
|
@@ -577,69 +632,20 @@ var Window = /** @class */ (function (_super) {
|
|
577
632
|
this.clearTimeout(id);
|
578
633
|
};
|
579
634
|
/**
|
580
|
-
*
|
635
|
+
* This method provides an easy, logical way to fetch resources asynchronously across the network.
|
581
636
|
*
|
582
637
|
* @override
|
583
|
-
* @param url URL
|
584
|
-
* @param [
|
638
|
+
* @param url URL.
|
639
|
+
* @param [init] Init.
|
585
640
|
* @returns Promise.
|
586
641
|
*/
|
587
|
-
Window.prototype.fetch = function (url,
|
642
|
+
Window.prototype.fetch = function (url, init) {
|
588
643
|
return __awaiter(this, void 0, void 0, function () {
|
589
|
-
var _this = this;
|
590
644
|
return __generator(this, function (_a) {
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
}
|
596
|
-
catch (error) {
|
597
|
-
throw new Error('Failed to perform fetch. "node-fetch" could not be loaded.');
|
598
|
-
}
|
599
|
-
_this.happyDOM.asyncTaskManager.startTask(AsyncTaskTypeEnum_1.default.fetch);
|
600
|
-
fetch(RelativeURL_1.default.getAbsoluteURL(_this.location, url), options)
|
601
|
-
.then(function (response) {
|
602
|
-
if (_this.happyDOM.asyncTaskManager.getRunningCount(AsyncTaskTypeEnum_1.default.fetch) === 0) {
|
603
|
-
reject(new Error('Failed to complete fetch request. Task was canceled.'));
|
604
|
-
}
|
605
|
-
else {
|
606
|
-
var _loop_1 = function (methodName) {
|
607
|
-
var asyncMethod = response[methodName];
|
608
|
-
response[methodName] = function () {
|
609
|
-
return new Promise(function (resolve, reject) {
|
610
|
-
_this.happyDOM.asyncTaskManager.startTask(AsyncTaskTypeEnum_1.default.fetch);
|
611
|
-
asyncMethod
|
612
|
-
.call(response)
|
613
|
-
.then(function (response) {
|
614
|
-
if (_this.happyDOM.asyncTaskManager.getRunningCount(AsyncTaskTypeEnum_1.default.fetch) ===
|
615
|
-
0) {
|
616
|
-
reject(new Error('Failed to complete fetch request. Task was canceled.'));
|
617
|
-
}
|
618
|
-
else {
|
619
|
-
resolve(response);
|
620
|
-
_this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch);
|
621
|
-
}
|
622
|
-
})
|
623
|
-
.catch(function (error) {
|
624
|
-
reject(error);
|
625
|
-
_this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch, error);
|
626
|
-
});
|
627
|
-
});
|
628
|
-
};
|
629
|
-
};
|
630
|
-
for (var _i = 0, FETCH_RESPONSE_TYPE_METHODS_1 = FETCH_RESPONSE_TYPE_METHODS; _i < FETCH_RESPONSE_TYPE_METHODS_1.length; _i++) {
|
631
|
-
var methodName = FETCH_RESPONSE_TYPE_METHODS_1[_i];
|
632
|
-
_loop_1(methodName);
|
633
|
-
}
|
634
|
-
resolve(response);
|
635
|
-
_this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch);
|
636
|
-
}
|
637
|
-
})
|
638
|
-
.catch(function (error) {
|
639
|
-
reject(error);
|
640
|
-
_this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch, error);
|
641
|
-
});
|
642
|
-
})];
|
645
|
+
switch (_a.label) {
|
646
|
+
case 0: return [4 /*yield*/, FetchHandler_1.default.fetch(this.document, url, init)];
|
647
|
+
case 1: return [2 /*return*/, _a.sent()];
|
648
|
+
}
|
643
649
|
});
|
644
650
|
});
|
645
651
|
};
|