happy-dom 7.7.2 → 7.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/README.md +62 -27
- package/lib/async-task-manager/AsyncTaskManager.d.ts +3 -8
- package/lib/async-task-manager/AsyncTaskManager.js +21 -24
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
- package/lib/event/IEventListener.d.ts +1 -1
- package/lib/exception/DOMExceptionNameEnum.d.ts +4 -1
- package/lib/exception/DOMExceptionNameEnum.js +3 -0
- package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
- package/lib/fetch/FetchHandler.d.ts +3 -2
- package/lib/fetch/FetchHandler.js +31 -3
- package/lib/fetch/FetchHandler.js.map +1 -1
- package/lib/fetch/RequestInfo.d.ts +5 -0
- package/lib/fetch/RequestInfo.js +3 -0
- package/lib/fetch/RequestInfo.js.map +1 -0
- package/lib/fetch/ResourceFetchHandler.d.ts +2 -2
- package/lib/fetch/ResourceFetchHandler.js +9 -8
- package/lib/fetch/ResourceFetchHandler.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.js +3 -4
- package/lib/index.js.map +1 -1
- package/lib/location/Location.d.ts +2 -1
- package/lib/location/Location.js +4 -7
- package/lib/location/Location.js.map +1 -1
- package/lib/location/RelativeURL.d.ts +3 -1
- package/lib/location/RelativeURL.js +2 -11
- package/lib/location/RelativeURL.js.map +1 -1
- package/lib/nodes/document/Document.d.ts +12 -2
- package/lib/nodes/document/Document.js +16 -2
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document/IDocument.d.ts +2 -0
- package/lib/nodes/html-link-element/HTMLLinkElement.js +5 -2
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-script-element/ScriptUtility.js +4 -0
- package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
- package/lib/window/IHappyDOMSettings.d.ts +9 -0
- package/lib/window/IHappyDOMSettings.js +3 -0
- package/lib/window/IHappyDOMSettings.js.map +1 -0
- package/lib/window/IWindow.d.ts +15 -6
- package/lib/window/Window.d.ts +18 -3
- package/lib/window/Window.js +26 -4
- package/lib/window/Window.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.d.ts +196 -0
- package/lib/xml-http-request/XMLHttpRequest.js +777 -0
- package/lib/xml-http-request/XMLHttpRequest.js.map +1 -0
- package/lib/xml-http-request/XMLHttpRequestCertificate.d.ts +5 -0
- package/lib/xml-http-request/XMLHttpRequestCertificate.js +55 -0
- package/lib/xml-http-request/XMLHttpRequestCertificate.js.map +1 -0
- package/lib/xml-http-request/XMLHttpRequestEventTarget.d.ts +15 -0
- package/lib/xml-http-request/XMLHttpRequestEventTarget.js +23 -0
- package/lib/xml-http-request/XMLHttpRequestEventTarget.js.map +1 -0
- package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.d.ts +8 -0
- package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.js +12 -0
- package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.js.map +1 -0
- package/lib/xml-http-request/XMLHttpRequestUpload.d.ts +6 -0
- package/lib/xml-http-request/XMLHttpRequestUpload.js +13 -0
- package/lib/xml-http-request/XMLHttpRequestUpload.js.map +1 -0
- package/lib/xml-http-request/XMLHttpResponseTypeEnum.d.ts +8 -0
- package/lib/xml-http-request/XMLHttpResponseTypeEnum.js +12 -0
- package/lib/xml-http-request/XMLHttpResponseTypeEnum.js.map +1 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.d.ts +15 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.js +55 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.js.map +1 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.d.ts +35 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js +62 -0
- package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js.map +1 -0
- package/package.json +2 -3
- package/src/async-task-manager/AsyncTaskManager.ts +24 -26
- package/src/event/IEventListener.ts +1 -1
- package/src/exception/DOMExceptionNameEnum.ts +4 -1
- package/src/fetch/FetchHandler.ts +40 -4
- package/src/fetch/RequestInfo.ts +6 -0
- package/src/fetch/ResourceFetchHandler.ts +10 -8
- package/src/index.ts +1 -2
- package/src/location/Location.ts +3 -3
- package/src/location/RelativeURL.ts +3 -14
- package/src/nodes/document/Document.ts +18 -2
- package/src/nodes/document/IDocument.ts +2 -0
- package/src/nodes/html-link-element/HTMLLinkElement.ts +7 -2
- package/src/nodes/html-script-element/HTMLScriptElement.ts +1 -1
- package/src/nodes/html-script-element/ScriptUtility.ts +8 -0
- package/src/window/IHappyDOMSettings.ts +9 -0
- package/src/window/IWindow.ts +15 -6
- package/src/window/Window.ts +36 -5
- package/src/xml-http-request/XMLHttpRequest.ts +998 -0
- package/src/xml-http-request/XMLHttpRequestCertificate.ts +52 -0
- package/src/xml-http-request/XMLHttpRequestEventTarget.ts +17 -0
- package/src/xml-http-request/XMLHttpRequestReadyStateEnum.ts +9 -0
- package/src/xml-http-request/XMLHttpRequestUpload.ts +6 -0
- package/src/xml-http-request/XMLHttpResponseTypeEnum.ts +9 -0
- package/src/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.ts +53 -0
- package/src/xml-http-request/utilities/XMLHttpRequestURLUtility.ts +64 -0
- package/lib/location/URL.d.ts +0 -53
- package/lib/location/URL.js +0 -96
- package/lib/location/URL.js.map +0 -1
- package/src/location/URL.ts +0 -102
package/README.md
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|

|
2
2
|
|
3
|
-
|
4
3
|
# About
|
5
4
|
|
6
5
|
[Happy DOM](https://github.com/capricorn86/happy-dom) is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG [DOM](https://dom.spec.whatwg.org/) and [HTML](https://html.spec.whatwg.org/multipage/).
|
@@ -9,7 +8,6 @@ The goal of [Happy DOM](https://github.com/capricorn86/happy-dom) is to emulate
|
|
9
8
|
|
10
9
|
[Happy DOM](https://github.com/capricorn86/happy-dom) focuses heavily on performance and can be used as an alternative to [JSDOM](https://github.com/jsdom/jsdom).
|
11
10
|
|
12
|
-
|
13
11
|
### DOM Features
|
14
12
|
|
15
13
|
- Custom Elements (Web Components)
|
@@ -26,8 +24,6 @@ The goal of [Happy DOM](https://github.com/capricorn86/happy-dom) is to emulate
|
|
26
24
|
|
27
25
|
And much more..
|
28
26
|
|
29
|
-
|
30
|
-
|
31
27
|
### Works With
|
32
28
|
|
33
29
|
- [Google LitHTML](https://lit-html.polymer-project.org)
|
@@ -40,20 +36,14 @@ And much more..
|
|
40
36
|
|
41
37
|
- [Vue](https://vuejs.org/)
|
42
38
|
|
43
|
-
|
44
|
-
|
45
39
|
# Installation
|
46
40
|
|
47
41
|
```bash
|
48
42
|
npm install happy-dom
|
49
43
|
```
|
50
44
|
|
51
|
-
|
52
|
-
|
53
45
|
# Usage
|
54
46
|
|
55
|
-
|
56
|
-
|
57
47
|
## Basic Usage
|
58
48
|
|
59
49
|
A simple example of how you can use Happy DOM.
|
@@ -75,8 +65,6 @@ container.appendChild(button);
|
|
75
65
|
console.log(document.body.innerHTML);
|
76
66
|
```
|
77
67
|
|
78
|
-
|
79
|
-
|
80
68
|
## VM Context
|
81
69
|
|
82
70
|
The default Window class is a [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options). A [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options) will execute JavaScript code scoped within the context where the Window instance will be the global object.
|
@@ -85,9 +73,9 @@ The default Window class is a [VM context](https://nodejs.org/api/vm.html#vm_vm_
|
|
85
73
|
import { Window } from 'happy-dom';
|
86
74
|
|
87
75
|
const window = new Window({
|
88
|
-
|
89
|
-
|
90
|
-
|
76
|
+
innerWidth: 1024,
|
77
|
+
innerHeight: 768,
|
78
|
+
url: 'http://localhost:8080'
|
91
79
|
});
|
92
80
|
const document = window.document;
|
93
81
|
|
@@ -146,9 +134,9 @@ The example below will show you how to setup a Node [VM context](https://nodejs.
|
|
146
134
|
import { Window } from 'happy-dom';
|
147
135
|
|
148
136
|
const window = new Window({
|
149
|
-
|
150
|
-
|
151
|
-
|
137
|
+
innerWidth: 1024,
|
138
|
+
innerHeight: 768,
|
139
|
+
url: 'http://localhost:8080'
|
152
140
|
});
|
153
141
|
const document = window.document;
|
154
142
|
|
@@ -207,19 +195,15 @@ Will output:
|
|
207
195
|
console.log(document.body.querySelector('div').getInnerHTML({ includeShadowRoots: true }));
|
208
196
|
```
|
209
197
|
|
210
|
-
|
211
|
-
|
212
198
|
## Additional Features
|
213
199
|
|
214
|
-
Happy DOM exposes two functions that may be useful when working with asynchrounous code.
|
215
|
-
|
216
200
|
**whenAsyncComplete()**
|
217
201
|
|
218
202
|
Returns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that is resolved when all async tasks has been completed.
|
219
203
|
|
220
204
|
```javascript
|
221
205
|
window.happyDOM.whenAsyncComplete().then(() => {
|
222
|
-
|
206
|
+
// Do something when all async tasks are completed.
|
223
207
|
});
|
224
208
|
```
|
225
209
|
|
@@ -229,7 +213,7 @@ This method will cancel all running async tasks.
|
|
229
213
|
|
230
214
|
```javascript
|
231
215
|
window.setTimeout(() => {
|
232
|
-
|
216
|
+
// This timeout will be canceled
|
233
217
|
});
|
234
218
|
window.happyDOM.cancelAsync();
|
235
219
|
```
|
@@ -250,7 +234,60 @@ Sets the property `window.innerHeight` and dispatches a "resize" event.
|
|
250
234
|
window.happyDOM.setInnerHeight(768);
|
251
235
|
```
|
252
236
|
|
237
|
+
**setURL()**
|
238
|
+
|
239
|
+
Sets the property `window.location.href`.
|
240
|
+
|
241
|
+
```javascript
|
242
|
+
window.happyDOM.setURL('https://localhost:3000');
|
243
|
+
```
|
244
|
+
|
245
|
+
## Settings
|
246
|
+
|
247
|
+
Settings can be sent to the constructor or by setting them on the "window.happyDOM.settings" property.
|
248
|
+
|
249
|
+
Set by constructor:
|
250
|
+
|
251
|
+
```javascript
|
252
|
+
const window = new Window({
|
253
|
+
innerWidth: 1024,
|
254
|
+
innerHeight: 768,
|
255
|
+
url: 'https://localhost:8080',
|
256
|
+
settings: {
|
257
|
+
disableJavaScriptFileLoading: true,
|
258
|
+
disableJavaScriptEvaluation: true,
|
259
|
+
disableCSSFileLoading: true,
|
260
|
+
enableFileSystemHttpRequests: true
|
261
|
+
}
|
262
|
+
});
|
263
|
+
```
|
264
|
+
|
265
|
+
Set by property:
|
266
|
+
|
267
|
+
```javascript
|
268
|
+
const window = new Window();
|
269
|
+
|
270
|
+
window.happyDOM.settings.disableJavaScriptFileLoading = true;
|
271
|
+
window.happyDOM.settings.disableJavaScriptEvaluation = true;
|
272
|
+
window.happyDOM.settings.disableCSSFileLoading = true;
|
273
|
+
window.happyDOM.settings.enableFileSystemHttpRequests = true;
|
274
|
+
```
|
275
|
+
|
276
|
+
**disableJavaScriptFileLoading**
|
277
|
+
|
278
|
+
Set it to "true" to disable JavaScript file loading. Defaults to "false".
|
279
|
+
|
280
|
+
**disableJavaScriptEvaluation**
|
281
|
+
|
282
|
+
Set it to "true" to completely disable JavaScript evaluation. Defaults to "false".
|
253
283
|
|
284
|
+
**disableCSSFileLoading**
|
285
|
+
|
286
|
+
Set it to "true" to disable CSS file loading using the HTMLLinkElement. Defaults to "false".
|
287
|
+
|
288
|
+
**enableFileSystemHttpRequests**
|
289
|
+
|
290
|
+
Set it to "true" to enable file system HTTP requests using XMLHttpRequest. Defaults to "false".
|
254
291
|
|
255
292
|
# Performance
|
256
293
|
|
@@ -268,12 +305,10 @@ window.happyDOM.setInnerHeight(768);
|
|
268
305
|
|
269
306
|
[See how the test was done here](https://github.com/capricorn86/happy-dom-performance-test)
|
270
307
|
|
271
|
-
|
272
|
-
|
273
308
|
# Jest
|
274
309
|
|
275
310
|
Happy DOM provide with a package called [@happy-dom/jest-environment](https://github.com/capricorn86/happy-dom/tree/master/packages/jest-environment) that makes it possible to use Happy DOM with [Jest](https://jestjs.io/).
|
276
311
|
|
277
312
|
# Global Registration
|
278
313
|
|
279
|
-
Happy DOM provide with a package called [@happy-dom/global-registrator](https://github.com/capricorn86/happy-dom/tree/master/packages/global-registrator) that can register Happy DOM globally. It makes it possible to use Happy DOM for testing in a Node environment.
|
314
|
+
Happy DOM provide with a package called [@happy-dom/global-registrator](https://github.com/capricorn86/happy-dom/tree/master/packages/global-registrator) that can register Happy DOM globally. It makes it possible to use Happy DOM for testing in a Node environment.
|
@@ -15,7 +15,7 @@ export default class AsyncTaskManager {
|
|
15
15
|
*/
|
16
16
|
whenComplete(): Promise<void>;
|
17
17
|
/**
|
18
|
-
*
|
18
|
+
* Ends all tasks.
|
19
19
|
*
|
20
20
|
* @param [error] Error.
|
21
21
|
*/
|
@@ -35,9 +35,10 @@ export default class AsyncTaskManager {
|
|
35
35
|
/**
|
36
36
|
* Starts an async task.
|
37
37
|
*
|
38
|
+
* @param abortHandler Abort handler.
|
38
39
|
* @returns Task ID.
|
39
40
|
*/
|
40
|
-
startTask(): number;
|
41
|
+
startTask(abortHandler?: () => void): number;
|
41
42
|
/**
|
42
43
|
* Ends an async task.
|
43
44
|
*
|
@@ -50,12 +51,6 @@ export default class AsyncTaskManager {
|
|
50
51
|
* @returns Count.
|
51
52
|
*/
|
52
53
|
getTaskCount(): number;
|
53
|
-
/**
|
54
|
-
* Returns the amount of running timers.
|
55
|
-
*
|
56
|
-
* @returns Count.
|
57
|
-
*/
|
58
|
-
getTimerCount(): number;
|
59
54
|
/**
|
60
55
|
* Returns a new task ID.
|
61
56
|
*
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
*/
|
6
6
|
class AsyncTaskManager {
|
7
7
|
constructor() {
|
8
|
-
this.runningTasks =
|
8
|
+
this.runningTasks = {};
|
9
9
|
this.runningTimers = [];
|
10
10
|
this.queue = [];
|
11
11
|
}
|
@@ -25,18 +25,23 @@ class AsyncTaskManager {
|
|
25
25
|
});
|
26
26
|
}
|
27
27
|
/**
|
28
|
-
*
|
28
|
+
* Ends all tasks.
|
29
29
|
*
|
30
30
|
* @param [error] Error.
|
31
31
|
*/
|
32
32
|
cancelAll(error) {
|
33
|
-
|
34
|
-
|
35
|
-
}
|
33
|
+
const runningTimers = this.runningTimers;
|
34
|
+
const runningTasks = this.runningTasks;
|
36
35
|
const promises = this.queue;
|
37
|
-
this.runningTasks =
|
36
|
+
this.runningTasks = {};
|
38
37
|
this.runningTimers = [];
|
39
38
|
this.queue = [];
|
39
|
+
for (const timer of runningTimers) {
|
40
|
+
global.clearTimeout(timer);
|
41
|
+
}
|
42
|
+
for (const key of Object.keys(runningTasks)) {
|
43
|
+
runningTasks[key]();
|
44
|
+
}
|
40
45
|
for (const promise of promises) {
|
41
46
|
if (error) {
|
42
47
|
promise.reject(error);
|
@@ -64,18 +69,19 @@ class AsyncTaskManager {
|
|
64
69
|
if (index !== -1) {
|
65
70
|
this.runningTimers.splice(index, 1);
|
66
71
|
}
|
67
|
-
if (!this.runningTasks.length && !this.runningTimers.length) {
|
72
|
+
if (!Object.keys(this.runningTasks).length && !this.runningTimers.length) {
|
68
73
|
this.cancelAll();
|
69
74
|
}
|
70
75
|
}
|
71
76
|
/**
|
72
77
|
* Starts an async task.
|
73
78
|
*
|
79
|
+
* @param abortHandler Abort handler.
|
74
80
|
* @returns Task ID.
|
75
81
|
*/
|
76
|
-
startTask() {
|
82
|
+
startTask(abortHandler) {
|
77
83
|
const taskID = this.newTaskID();
|
78
|
-
this.runningTasks
|
84
|
+
this.runningTasks[taskID] = abortHandler ? abortHandler : () => { };
|
79
85
|
return taskID;
|
80
86
|
}
|
81
87
|
/**
|
@@ -84,12 +90,11 @@ class AsyncTaskManager {
|
|
84
90
|
* @param taskID Task ID.
|
85
91
|
*/
|
86
92
|
endTask(taskID) {
|
87
|
-
|
88
|
-
|
89
|
-
this.runningTasks.
|
90
|
-
|
91
|
-
|
92
|
-
this.cancelAll();
|
93
|
+
if (this.runningTasks[taskID]) {
|
94
|
+
delete this.runningTasks[taskID];
|
95
|
+
if (!Object.keys(this.runningTasks).length && !this.runningTimers.length) {
|
96
|
+
this.cancelAll();
|
97
|
+
}
|
93
98
|
}
|
94
99
|
}
|
95
100
|
/**
|
@@ -98,15 +103,7 @@ class AsyncTaskManager {
|
|
98
103
|
* @returns Count.
|
99
104
|
*/
|
100
105
|
getTaskCount() {
|
101
|
-
return this.runningTasks.length;
|
102
|
-
}
|
103
|
-
/**
|
104
|
-
* Returns the amount of running timers.
|
105
|
-
*
|
106
|
-
* @returns Count.
|
107
|
-
*/
|
108
|
-
getTimerCount() {
|
109
|
-
return this.runningTimers.length;
|
106
|
+
return Object.keys(this.runningTasks).length;
|
110
107
|
}
|
111
108
|
/**
|
112
109
|
* Returns a new task ID.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,gBAAgB;IAArC;QAES,iBAAY,
|
1
|
+
{"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":"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"}
|
@@ -8,6 +8,9 @@ declare enum DOMExceptionNameEnum {
|
|
8
8
|
invalidNodeTypeError = "InvalidNodeTypeError",
|
9
9
|
invalidCharacterError = "InvalidCharacterError",
|
10
10
|
notFoundError = "NotFoundError",
|
11
|
-
|
11
|
+
securityError = "SecurityError",
|
12
|
+
networkError = "NetworkError",
|
13
|
+
domException = "DOMException",
|
14
|
+
invalidAccessError = "InvalidAccessError"
|
12
15
|
}
|
13
16
|
export default DOMExceptionNameEnum;
|
@@ -11,7 +11,10 @@ var DOMExceptionNameEnum;
|
|
11
11
|
DOMExceptionNameEnum["invalidNodeTypeError"] = "InvalidNodeTypeError";
|
12
12
|
DOMExceptionNameEnum["invalidCharacterError"] = "InvalidCharacterError";
|
13
13
|
DOMExceptionNameEnum["notFoundError"] = "NotFoundError";
|
14
|
+
DOMExceptionNameEnum["securityError"] = "SecurityError";
|
15
|
+
DOMExceptionNameEnum["networkError"] = "NetworkError";
|
14
16
|
DOMExceptionNameEnum["domException"] = "DOMException";
|
17
|
+
DOMExceptionNameEnum["invalidAccessError"] = "InvalidAccessError";
|
15
18
|
})(DOMExceptionNameEnum || (DOMExceptionNameEnum = {}));
|
16
19
|
exports.default = DOMExceptionNameEnum;
|
17
20
|
//# sourceMappingURL=DOMExceptionNameEnum.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMExceptionNameEnum.js","sourceRoot":"","sources":["../../src/exception/DOMExceptionNameEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,
|
1
|
+
{"version":3,"file":"DOMExceptionNameEnum.js","sourceRoot":"","sources":["../../src/exception/DOMExceptionNameEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,oBAcJ;AAdD,WAAK,oBAAoB;IACxB,+DAAuC,CAAA;IACvC,yDAAiC,CAAA;IACjC,mDAA2B,CAAA;IAC3B,uEAA+C,CAAA;IAC/C,+DAAuC,CAAA;IACvC,iEAAyC,CAAA;IACzC,qEAA6C,CAAA;IAC7C,uEAA+C,CAAA;IAC/C,uDAA+B,CAAA;IAC/B,uDAA+B,CAAA;IAC/B,qDAA6B,CAAA;IAC7B,qDAA6B,CAAA;IAC7B,iEAAyC,CAAA;AAC1C,CAAC,EAdI,oBAAoB,KAApB,oBAAoB,QAcxB;AACD,kBAAe,oBAAoB,CAAC"}
|
@@ -1,17 +1,18 @@
|
|
1
1
|
import IRequestInit from './IRequestInit';
|
2
2
|
import IDocument from '../nodes/document/IDocument';
|
3
3
|
import IResponse from './IResponse';
|
4
|
+
import RequestInfo from './RequestInfo';
|
4
5
|
/**
|
5
6
|
* Helper class for performing fetch.
|
6
7
|
*/
|
7
8
|
export default class FetchHandler {
|
8
9
|
/**
|
9
|
-
* Returns resource data
|
10
|
+
* Returns resource data asynchronously.
|
10
11
|
*
|
11
12
|
* @param document Document.
|
12
13
|
* @param url URL to resource.
|
13
14
|
* @param [init] Init.
|
14
15
|
* @returns Response.
|
15
16
|
*/
|
16
|
-
static fetch(document: IDocument, url:
|
17
|
+
static fetch(document: IDocument, url: RequestInfo, init?: IRequestInit): Promise<IResponse>;
|
17
18
|
}
|
@@ -6,12 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const RelativeURL_1 = __importDefault(require("../location/RelativeURL"));
|
7
7
|
const Response_1 = __importDefault(require("./Response"));
|
8
8
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
9
|
+
const Request_1 = __importDefault(require("./Request"));
|
10
|
+
const url_1 = require("url");
|
9
11
|
/**
|
10
12
|
* Helper class for performing fetch.
|
11
13
|
*/
|
12
14
|
class FetchHandler {
|
13
15
|
/**
|
14
|
-
* Returns resource data
|
16
|
+
* Returns resource data asynchronously.
|
15
17
|
*
|
16
18
|
* @param document Document.
|
17
19
|
* @param url URL to resource.
|
@@ -19,11 +21,37 @@ class FetchHandler {
|
|
19
21
|
* @returns Response.
|
20
22
|
*/
|
21
23
|
static fetch(document, url, init) {
|
22
|
-
// We want to only load NodeFetch when it is needed to improve performance and not have direct dependencies to server side packages.
|
23
24
|
const taskManager = document.defaultView.happyDOM.asyncTaskManager;
|
25
|
+
const requestInit = { ...init, headers: { ...init?.headers } };
|
26
|
+
const cookie = document.defaultView.document.cookie;
|
27
|
+
const referer = document.defaultView.location.origin;
|
28
|
+
requestInit.headers['user-agent'] = document.defaultView.navigator.userAgent;
|
29
|
+
// We need set referer to solve anti-hotlinking.
|
30
|
+
// And the browser will set the referer to the origin of the page.
|
31
|
+
// Referer is "null" when the URL is set to "about:blank".
|
32
|
+
// This is also how the browser behaves.
|
33
|
+
if (referer !== 'null') {
|
34
|
+
requestInit.headers['referer'] = referer;
|
35
|
+
}
|
36
|
+
if (cookie) {
|
37
|
+
requestInit.headers['set-cookie'] = cookie;
|
38
|
+
}
|
39
|
+
let request;
|
40
|
+
if (typeof url === 'string') {
|
41
|
+
request = new Request_1.default(RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url));
|
42
|
+
}
|
43
|
+
else if (url instanceof url_1.URL) {
|
44
|
+
// URLs are always absolute, no need for getAbsoluteURL.
|
45
|
+
request = new Request_1.default(url);
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
request = new Request_1.default(RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url.url), {
|
49
|
+
...url
|
50
|
+
});
|
51
|
+
}
|
24
52
|
return new Promise((resolve, reject) => {
|
25
53
|
const taskID = taskManager.startTask();
|
26
|
-
(0, node_fetch_1.default)(
|
54
|
+
(0, node_fetch_1.default)(request, requestInit)
|
27
55
|
.then((response) => {
|
28
56
|
if (taskManager.getTaskCount() === 0) {
|
29
57
|
reject(new Error('Failed to complete fetch request. Task was canceled.'));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FetchHandler.js","sourceRoot":"","sources":["../../src/fetch/FetchHandler.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAIlD,0DAAkC;AAClC,4DAAmC;
|
1
|
+
{"version":3,"file":"FetchHandler.js","sourceRoot":"","sources":["../../src/fetch/FetchHandler.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RequestInfo.js","sourceRoot":"","sources":["../../src/fetch/RequestInfo.ts"],"names":[],"mappings":""}
|
@@ -4,7 +4,7 @@ import IDocument from '../nodes/document/IDocument';
|
|
4
4
|
*/
|
5
5
|
export default class ResourceFetchHandler {
|
6
6
|
/**
|
7
|
-
* Returns resource data
|
7
|
+
* Returns resource data asynchronously.
|
8
8
|
*
|
9
9
|
* @param document Document.
|
10
10
|
* @param url URL.
|
@@ -12,7 +12,7 @@ export default class ResourceFetchHandler {
|
|
12
12
|
*/
|
13
13
|
static fetch(document: IDocument, url: string): Promise<string>;
|
14
14
|
/**
|
15
|
-
* Returns resource data
|
15
|
+
* Returns resource data synchronously.
|
16
16
|
*
|
17
17
|
* @param document Document.
|
18
18
|
* @param url URL.
|
@@ -10,7 +10,7 @@ const DOMException_1 = __importDefault(require("../exception/DOMException"));
|
|
10
10
|
*/
|
11
11
|
class ResourceFetchHandler {
|
12
12
|
/**
|
13
|
-
* Returns resource data
|
13
|
+
* Returns resource data asynchronously.
|
14
14
|
*
|
15
15
|
* @param document Document.
|
16
16
|
* @param url URL.
|
@@ -24,7 +24,7 @@ class ResourceFetchHandler {
|
|
24
24
|
return await response.text();
|
25
25
|
}
|
26
26
|
/**
|
27
|
-
* Returns resource data
|
27
|
+
* Returns resource data synchronously.
|
28
28
|
*
|
29
29
|
* @param document Document.
|
30
30
|
* @param url URL.
|
@@ -32,13 +32,14 @@ class ResourceFetchHandler {
|
|
32
32
|
*/
|
33
33
|
static fetchSync(document, url) {
|
34
34
|
// We want to only load SyncRequest when it is needed to improve performance and not have direct dependencies to server side packages.
|
35
|
-
const absoluteURL = RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url);
|
36
|
-
const
|
37
|
-
|
38
|
-
|
39
|
-
|
35
|
+
const absoluteURL = RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url).href;
|
36
|
+
const xhr = new document.defaultView.XMLHttpRequest();
|
37
|
+
xhr.open('GET', absoluteURL, false);
|
38
|
+
xhr.send();
|
39
|
+
if (xhr.status !== 200) {
|
40
|
+
throw new DOMException_1.default(`Failed to perform request to "${absoluteURL}". Status code: ${xhr.status}`);
|
40
41
|
}
|
41
|
-
return
|
42
|
+
return xhr.responseText;
|
42
43
|
}
|
43
44
|
}
|
44
45
|
exports.default = ResourceFetchHandler;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResourceFetchHandler.js","sourceRoot":"","sources":["../../src/fetch/ResourceFetchHandler.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAClD,6EAAqD;AAGrD;;GAEG;AACH,MAAqB,oBAAoB;IACxC;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAmB,EAAE,GAAW;QACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACjB,MAAM,IAAI,sBAAY,CACrB,iCAAiC,GAAG,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CACxE,CAAC;SACF;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,SAAS,CAAC,QAAmB,EAAE,GAAW;QACvD,sIAAsI;QACtI,MAAM,WAAW,GAAG,qBAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"ResourceFetchHandler.js","sourceRoot":"","sources":["../../src/fetch/ResourceFetchHandler.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAClD,6EAAqD;AAGrD;;GAEG;AACH,MAAqB,oBAAoB;IACxC;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAmB,EAAE,GAAW;QACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACjB,MAAM,IAAI,sBAAY,CACrB,iCAAiC,GAAG,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CACxE,CAAC;SACF;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,SAAS,CAAC,QAAmB,EAAE,GAAW;QACvD,sIAAsI;QACtI,MAAM,WAAW,GAAG,qBAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAExF,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEX,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;YACvB,MAAM,IAAI,sBAAY,CACrB,iCAAiC,WAAW,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAC3E,CAAC;SACF;QAED,OAAO,GAAG,CAAC,YAAY,CAAC;IACzB,CAAC;CACD;AAzCD,uCAyCC"}
|
package/lib/index.d.ts
CHANGED
@@ -4,7 +4,7 @@ import Window from './window/Window';
|
|
4
4
|
import DataTransfer from './event/DataTransfer';
|
5
5
|
import DataTransferItem from './event/DataTransferItem';
|
6
6
|
import DataTransferItemList from './event/DataTransferItemList';
|
7
|
-
import URL from '
|
7
|
+
import { URL, URLSearchParams } from 'url';
|
8
8
|
import Location from './location/Location';
|
9
9
|
import MutationObserver from './mutation-observer/MutationObserver';
|
10
10
|
import ResizeObserver from './resize-observer/ResizeObserver';
|
@@ -115,7 +115,6 @@ import CSSMediaRule from './css/rules/CSSMediaRule';
|
|
115
115
|
import CSSStyleRule from './css/rules/CSSStyleRule';
|
116
116
|
import Storage from './storage/Storage';
|
117
117
|
import DOMRect from './nodes/element/DOMRect';
|
118
|
-
import { URLSearchParams } from 'url';
|
119
118
|
import Selection from './selection/Selection';
|
120
119
|
import Range from './range/Range';
|
121
120
|
import HTMLDialogElement from './nodes/html-dialog-element/HTMLDialogElement';
|
package/lib/index.js
CHANGED
@@ -15,8 +15,9 @@ const DataTransferItem_1 = __importDefault(require("./event/DataTransferItem"));
|
|
15
15
|
exports.DataTransferItem = DataTransferItem_1.default;
|
16
16
|
const DataTransferItemList_1 = __importDefault(require("./event/DataTransferItemList"));
|
17
17
|
exports.DataTransferItemList = DataTransferItemList_1.default;
|
18
|
-
const
|
19
|
-
exports
|
18
|
+
const url_1 = require("url");
|
19
|
+
Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return url_1.URL; } });
|
20
|
+
Object.defineProperty(exports, "URLSearchParams", { enumerable: true, get: function () { return url_1.URLSearchParams; } });
|
20
21
|
const Location_1 = __importDefault(require("./location/Location"));
|
21
22
|
exports.Location = Location_1.default;
|
22
23
|
const MutationObserver_1 = __importDefault(require("./mutation-observer/MutationObserver"));
|
@@ -157,8 +158,6 @@ const Storage_1 = __importDefault(require("./storage/Storage"));
|
|
157
158
|
exports.Storage = Storage_1.default;
|
158
159
|
const DOMRect_1 = __importDefault(require("./nodes/element/DOMRect"));
|
159
160
|
exports.DOMRect = DOMRect_1.default;
|
160
|
-
const url_1 = require("url");
|
161
|
-
Object.defineProperty(exports, "URLSearchParams", { enumerable: true, get: function () { return url_1.URLSearchParams; } });
|
162
161
|
const Selection_1 = __importDefault(require("./selection/Selection"));
|
163
162
|
exports.Selection = Selection_1.default;
|
164
163
|
const Range_1 = __importDefault(require("./range/Range"));
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AAAA,yEAAiD;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|