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.

Files changed (97) hide show
  1. package/README.md +62 -27
  2. package/lib/async-task-manager/AsyncTaskManager.d.ts +3 -8
  3. package/lib/async-task-manager/AsyncTaskManager.js +21 -24
  4. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -1
  5. package/lib/event/IEventListener.d.ts +1 -1
  6. package/lib/exception/DOMExceptionNameEnum.d.ts +4 -1
  7. package/lib/exception/DOMExceptionNameEnum.js +3 -0
  8. package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
  9. package/lib/fetch/FetchHandler.d.ts +3 -2
  10. package/lib/fetch/FetchHandler.js +31 -3
  11. package/lib/fetch/FetchHandler.js.map +1 -1
  12. package/lib/fetch/RequestInfo.d.ts +5 -0
  13. package/lib/fetch/RequestInfo.js +3 -0
  14. package/lib/fetch/RequestInfo.js.map +1 -0
  15. package/lib/fetch/ResourceFetchHandler.d.ts +2 -2
  16. package/lib/fetch/ResourceFetchHandler.js +9 -8
  17. package/lib/fetch/ResourceFetchHandler.js.map +1 -1
  18. package/lib/index.d.ts +1 -2
  19. package/lib/index.js +3 -4
  20. package/lib/index.js.map +1 -1
  21. package/lib/location/Location.d.ts +2 -1
  22. package/lib/location/Location.js +4 -7
  23. package/lib/location/Location.js.map +1 -1
  24. package/lib/location/RelativeURL.d.ts +3 -1
  25. package/lib/location/RelativeURL.js +2 -11
  26. package/lib/location/RelativeURL.js.map +1 -1
  27. package/lib/nodes/document/Document.d.ts +12 -2
  28. package/lib/nodes/document/Document.js +16 -2
  29. package/lib/nodes/document/Document.js.map +1 -1
  30. package/lib/nodes/document/IDocument.d.ts +2 -0
  31. package/lib/nodes/html-link-element/HTMLLinkElement.js +5 -2
  32. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  33. package/lib/nodes/html-script-element/HTMLScriptElement.js +1 -1
  34. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  35. package/lib/nodes/html-script-element/ScriptUtility.js +4 -0
  36. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  37. package/lib/window/IHappyDOMSettings.d.ts +9 -0
  38. package/lib/window/IHappyDOMSettings.js +3 -0
  39. package/lib/window/IHappyDOMSettings.js.map +1 -0
  40. package/lib/window/IWindow.d.ts +15 -6
  41. package/lib/window/Window.d.ts +18 -3
  42. package/lib/window/Window.js +26 -4
  43. package/lib/window/Window.js.map +1 -1
  44. package/lib/xml-http-request/XMLHttpRequest.d.ts +196 -0
  45. package/lib/xml-http-request/XMLHttpRequest.js +777 -0
  46. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -0
  47. package/lib/xml-http-request/XMLHttpRequestCertificate.d.ts +5 -0
  48. package/lib/xml-http-request/XMLHttpRequestCertificate.js +55 -0
  49. package/lib/xml-http-request/XMLHttpRequestCertificate.js.map +1 -0
  50. package/lib/xml-http-request/XMLHttpRequestEventTarget.d.ts +15 -0
  51. package/lib/xml-http-request/XMLHttpRequestEventTarget.js +23 -0
  52. package/lib/xml-http-request/XMLHttpRequestEventTarget.js.map +1 -0
  53. package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.d.ts +8 -0
  54. package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.js +12 -0
  55. package/lib/xml-http-request/XMLHttpRequestReadyStateEnum.js.map +1 -0
  56. package/lib/xml-http-request/XMLHttpRequestUpload.d.ts +6 -0
  57. package/lib/xml-http-request/XMLHttpRequestUpload.js +13 -0
  58. package/lib/xml-http-request/XMLHttpRequestUpload.js.map +1 -0
  59. package/lib/xml-http-request/XMLHttpResponseTypeEnum.d.ts +8 -0
  60. package/lib/xml-http-request/XMLHttpResponseTypeEnum.js +12 -0
  61. package/lib/xml-http-request/XMLHttpResponseTypeEnum.js.map +1 -0
  62. package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.d.ts +15 -0
  63. package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.js +55 -0
  64. package/lib/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.js.map +1 -0
  65. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.d.ts +35 -0
  66. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js +62 -0
  67. package/lib/xml-http-request/utilities/XMLHttpRequestURLUtility.js.map +1 -0
  68. package/package.json +2 -3
  69. package/src/async-task-manager/AsyncTaskManager.ts +24 -26
  70. package/src/event/IEventListener.ts +1 -1
  71. package/src/exception/DOMExceptionNameEnum.ts +4 -1
  72. package/src/fetch/FetchHandler.ts +40 -4
  73. package/src/fetch/RequestInfo.ts +6 -0
  74. package/src/fetch/ResourceFetchHandler.ts +10 -8
  75. package/src/index.ts +1 -2
  76. package/src/location/Location.ts +3 -3
  77. package/src/location/RelativeURL.ts +3 -14
  78. package/src/nodes/document/Document.ts +18 -2
  79. package/src/nodes/document/IDocument.ts +2 -0
  80. package/src/nodes/html-link-element/HTMLLinkElement.ts +7 -2
  81. package/src/nodes/html-script-element/HTMLScriptElement.ts +1 -1
  82. package/src/nodes/html-script-element/ScriptUtility.ts +8 -0
  83. package/src/window/IHappyDOMSettings.ts +9 -0
  84. package/src/window/IWindow.ts +15 -6
  85. package/src/window/Window.ts +36 -5
  86. package/src/xml-http-request/XMLHttpRequest.ts +998 -0
  87. package/src/xml-http-request/XMLHttpRequestCertificate.ts +52 -0
  88. package/src/xml-http-request/XMLHttpRequestEventTarget.ts +17 -0
  89. package/src/xml-http-request/XMLHttpRequestReadyStateEnum.ts +9 -0
  90. package/src/xml-http-request/XMLHttpRequestUpload.ts +6 -0
  91. package/src/xml-http-request/XMLHttpResponseTypeEnum.ts +9 -0
  92. package/src/xml-http-request/utilities/XMLHttpRequestSyncRequestScriptBuilder.ts +53 -0
  93. package/src/xml-http-request/utilities/XMLHttpRequestURLUtility.ts +64 -0
  94. package/lib/location/URL.d.ts +0 -53
  95. package/lib/location/URL.js +0 -96
  96. package/lib/location/URL.js.map +0 -1
  97. package/src/location/URL.ts +0 -102
package/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  ![Happy DOM Logo](https://github.com/capricorn86/happy-dom/raw/master/docs/happy-dom-logo.jpg)
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
- innerWidth: 1024,
89
- innerHeight: 768,
90
- url: 'http://localhost:8080'
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
- innerWidth: 1024,
150
- innerHeight: 768,
151
- url: 'http://localhost:8080'
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
- // Do something when all async tasks are completed.
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
- // This timeout will be canceled
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
- * Cancels all tasks.
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
- * Cancels all tasks.
28
+ * Ends all tasks.
29
29
  *
30
30
  * @param [error] Error.
31
31
  */
32
32
  cancelAll(error) {
33
- for (const timerID of this.runningTimers) {
34
- global.clearTimeout(timerID);
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.push(taskID);
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
- const index = this.runningTasks.indexOf(taskID);
88
- if (index !== -1) {
89
- this.runningTasks.splice(index, 1);
90
- }
91
- if (!this.runningTasks.length && !this.runningTimers.length) {
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":"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"}
1
+ {"version":3,"file":"AsyncTaskManager.js","sourceRoot":"","sources":["../../src/async-task-manager/AsyncTaskManager.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,gBAAgB;IAArC;QAES,iBAAY,GAAgC,EAAE,CAAC;QAC/C,kBAAa,GAAqB,EAAE,CAAC;QACrC,UAAK,GAA8D,EAAE,CAAC;IAsH/E,CAAC;IApHA;;;;;OAKG;IACI,KAAK,CAAC,YAAY;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAa;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC5C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;SACpB;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC/B,IAAI,KAAK,EAAE;gBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACtB;iBAAM;gBACN,OAAO,CAAC,OAAO,EAAE,CAAC;aAClB;SACD;IACF,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,OAAuB;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,OAAuB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACzE,IAAI,CAAC,SAAS,EAAE,CAAC;SACjB;IACF,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,YAAyB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,MAAc;QAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;gBACzE,IAAI,CAAC,SAAS,EAAE,CAAC;aACjB;SACD;IACF,CAAC;IAED;;;;OAIG;IACI,YAAY;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACK,SAAS;QACU,IAAI,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC;QACrD,OAAiC,IAAI,CAAC,WAAY,CAAC,MAAM,CAAC;IAC3D,CAAC;;AAzHF,mCA0HC;AAzHe,uBAAM,GAAG,CAAC,CAAC"}
@@ -6,7 +6,7 @@ export default interface IEventListener {
6
6
  /**
7
7
  * Handles event.
8
8
  *
9
- * @param type Event type.
9
+ * @param event Event.
10
10
  */
11
11
  handleEvent(event: Event): void;
12
12
  }
@@ -8,6 +8,9 @@ declare enum DOMExceptionNameEnum {
8
8
  invalidNodeTypeError = "InvalidNodeTypeError",
9
9
  invalidCharacterError = "InvalidCharacterError",
10
10
  notFoundError = "NotFoundError",
11
- domException = "DOMException"
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,oBAWJ;AAXD,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,qDAA6B,CAAA;AAC9B,CAAC,EAXI,oBAAoB,KAApB,oBAAoB,QAWxB;AACD,kBAAe,oBAAoB,CAAC"}
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 asynchonously.
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: string, init?: IRequestInit): Promise<IResponse>;
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 asynchonously.
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)(RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url), init)
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;AAEnC;;GAEG;AACH,MAAqB,YAAY;IAChC;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,QAAmB,EAAE,GAAW,EAAE,IAAmB;QACxE,oIAAoI;QACpI,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YAEvC,IAAA,oBAAS,EAAC,qBAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC;iBAC7E,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAClB,IAAI,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;oBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;iBAC1E;qBAAM;oBACN,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;oBAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,SAAS,CAAC,EAAE;wBAClD,IAAI,kBAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,aAAa,EAAE;4BACpE,IAAI,OAAO,kBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;gCAClD,QAAQ,CAAC,GAAG,CAAC,GAAG,kBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BACvD;iCAAM;gCACN,QAAQ,CAAC,GAAG,CAAC,GAAG,kBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;6BACxC;yBACD;qBACD;oBAED,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5B,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAClB;YACF,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AA3CD,+BA2CC"}
1
+ {"version":3,"file":"FetchHandler.js","sourceRoot":"","sources":["../../src/fetch/FetchHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { URL } from 'url';
3
+ import IRequest from './IRequest';
4
+ declare type RequestInfo = IRequest | string | URL;
5
+ export default RequestInfo;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=RequestInfo.js.map
@@ -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 asynchonously.
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 synchonously.
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 asynchonously.
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 synchonously.
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 syncRequest = require('sync-request');
37
- const response = syncRequest('GET', absoluteURL);
38
- if (response.isError()) {
39
- throw new DOMException_1.default(`Failed to perform request to "${absoluteURL}". Status code: ${response.statusCode}`);
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 response.getBody().toString();
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;QACnF,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,IAAI,sBAAY,CACrB,iCAAiC,WAAW,mBAAmB,QAAQ,CAAC,UAAU,EAAE,CACpF,CAAC;SACF;QAED,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;CACD;AAvCD,uCAuCC"}
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 './location/URL';
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 URL_1 = __importDefault(require("./location/URL"));
19
- exports.URL = URL_1.default;
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AAAA,yEAAiD;AA+HhD,uBA/HM,sBAAY,CA+HN;AA7Hb,6DAAqC;AA8HpC,iBA9HM,gBAAM,CA8HN;AA7HP,wEAAgD;AA+H/C,uBA/HM,sBAAY,CA+HN;AA9Hb,gFAAwD;AA+HvD,2BA/HM,0BAAgB,CA+HN;AA9HjB,wFAAgE;AA+H/D,+BA/HM,8BAAoB,CA+HN;AA9HrB,6BAA2C;AA+H1C,oFA/HQ,SAAG,OA+HR;AA+GH,gGA9Oa,qBAAe,OA8Ob;AA7OhB,mEAA2C;AA+H1C,mBA/HM,kBAAQ,CA+HN;AA9HT,4FAAoE;AA+HnE,2BA/HM,0BAAgB,CA+HN;AA9HjB,sFAA8D;AA+H7D,yBA/HM,wBAAc,CA+HN;AA9Hf,uDAA+B;AA+H9B,eA/HM,cAAI,CA+HN;AA9HL,uDAA+B;AA+H9B,eA/HM,cAAI,CA+HN;AA9HL,mEAA2C;AA+H1C,qBA/HM,oBAAU,CA+HN;AA9HX,4EAAoD;AA+HnD,uBA/HM,sBAAY,CA+HN;AA9Hb,gEAAwC;AA+HvC,kBA/HM,iBAAO,CA+HN;AA9HR,gGAAwE;AA+HvE,8BA/HM,6BAAmB,CA+HN;AA9HpB,6DAAqC;AA+HpC,iBA/HM,gBAAM,CA+HN;AA9HP,6FAAqE;AA+HpE,2BA/HM,0BAAgB,CA+HN;AA9HjB,0EAAkD;AA+HjD,qBA/HM,oBAAU,CA+HN;AA9HX,0DAAkC;AA+HjC,gBA/HM,eAAK,CA+HN;AA9HN,sEAA8C;AA+H7C,sBA/HM,qBAAW,CA+HN;AA3HZ,8DAAsC;AA+HrC,kBA/HM,iBAAO,CA+HN;AA9HR,2EAAmD;AA+HlD,qBA/HM,oBAAU,CA+HN;AA9HX,2EAAmD;AA+HlD,qBA/HM,oBAAU,CA+HN;AA9HX,6EAAqD;AAkIpD,sBAlIM,qBAAW,CAkIN;AAjIZ,mFAA2D;AA8H1D,yBA9HM,wBAAc,CA8HN;AApHf,2EAAmD;AA+HlD,qBA/HM,oBAAU,CA+HN;AA9HX,iFAAyD;AA+HxD,wBA/HM,uBAAa,CA+HN;AA9Hd,2EAAmD;AA+HlD,qBA/HM,oBAAU,CA+HN;AA9HX,iFAAyD;AA+HxD,wBA/HM,uBAAa,CA+HN;AA9Hd,2EAAmD;AA+HlD,qBA/HM,oBAAU,CA+HN;AA9HX,uEAA+C;AA+H9C,oBA/HM,mBAAS,CA+HN;AA9HV,yEAAiD;AA+HhD,mBA/HM,kBAAQ,CA+HN;AA7HT,sFAA8D;AA+H7D,uBA/HM,sBAAY,CA+HN;AA9Hb,mFAA2D;AA+H1D,sBA/HM,qBAAW,CA+HN;AA9HZ,mFAA2D;AA+H1D,sBA/HM,qBAAW,CA+HN;AA9HZ,sEAA8C;AA+H7C,kBA/HM,iBAAO,CA+HN;AA5HR,mFAA2D;AA+H1D,sBA/HM,qBAAW,CA+HN;AA7HZ,4GAAoF;AA+HnF,8BA/HM,6BAAmB,CA+HN;AA7HpB,gGAAwE;AA+HvE,0BA/HM,yBAAe,CA+HN;AA7HhB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,6GAAqF;AA+HpF,8BA/HM,6BAAmB,CA+HN;AA7HpB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,6EAAqD;AA+HpD,gBA/HM,eAAK,CA+HN;AA9HN,sGAA8E;AA+H7E,4BA/HM,2BAAiB,CA+HN;AA9HlB,gGAAwE;AA+HvE,0BA/HM,yBAAe,CA+HN;AA7HhB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,gGAAwE;AA+HvE,0BA/HM,yBAAe,CA+HN;AA7HhB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,gGAAwE;AA+HvE,0BA/HM,yBAAe,CA+HN;AA5HhB,mGAA2E;AA8H1E,2BA9HM,0BAAgB,CA8HN;AA7HjB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,mGAA2E;AA+H1E,2BA/HM,0BAAgB,CA+HN;AA7HjB,gGAAwE;AA+HvE,0BA/HM,yBAAe,CA+HN;AA7HhB,gFAAwD;AA+HvD,qBA/HM,oBAAU,CA+HN;AA7HX,gGAAwE;AA+HvE,6BA/HM,4BAAkB,CA+HN;AA7HnB,sFAA8D;AA+H7D,wBA/HM,uBAAa,CA+HN;AA7Hd,kGAA0E;AA+HzE,2BA/HM,0BAAgB,CA+HN;AA7HjB,gFAAwD;AA+HvD,qBA/HM,oBAAU,CA+HN;AA7HX,6DAAqC;AA+HpC,eA/HM,cAAI,CA+HN;AA5HL,6DAAqC;AA+HpC,eA/HM,cAAI,CA+HN;AA7HL,sEAA8C;AA+H7C,kBA/HM,iBAAO,CA+HN;AA7HR,sFAA8D;AA+H7D,uBA/HM,sBAAY,CA+HN;AA7Hb,0EAAkD;AA+HjD,qBA/HM,oBAAU,CA+HN;AA9HX,mGAA2E;AA+H1E,gCA/HM,+BAAqB,CA+HN;AA9HtB,uEAA+C;AA+H9C,oBA/HM,mBAAS,CA+HN;AA9HV,mFAA2D;AA+H1D,wBA/HM,uBAAa,CA+HN;AA9Hd,wEAAgD;AA+H/C,wBA/HM,uBAAa,CA+HN;AA9Hd,4DAAoC;AA+HnC,kBA/HM,iBAAO,CA+HN;AA9HR,oFAA4D;AA+H3D,2BA/HM,0BAAgB,CA+HN;AA9HjB,kFAA0D;AA+HzD,0BA/HM,yBAAe,CA+HN;AA9HhB,kFAA0D;AA+HzD,0BA/HM,yBAAe,CA+HN;AA9HhB,oFAA4D;AA+H3D,2BA/HM,0BAAgB,CA+HN;AA9HjB,4EAAoD;AA+HnD,uBA/HM,sBAAY,CA+HN;AA9Hb,4EAAoD;AA+HnD,uBA/HM,sBAAY,CA+HN;AA9Hb,gEAAwC;AA+HvC,kBA/HM,iBAAO,CA+HN;AA9HR,sEAA8C;AA+H7C,kBA/HM,iBAAO,CA+HN;AA9HR,sEAA8C;AAgI7C,oBAhIM,mBAAS,CAgIN;AA/HV,0DAAkC;AAgIjC,gBAhIM,eAAK,CAgIN;AA/HN,sGAA8E;AAgI7E,4BAhIM,2BAAiB,CAgIN;AA9HlB,6DAAqC;AAgIpC,eAhIM,cAAI,CAgIN;AA9HL,iHAAyF;AAgIxF,gCAhIM,+BAAqB,CAgIN"}
@@ -1,4 +1,5 @@
1
- import URL from './URL';
1
+ /// <reference types="node" />
2
+ import { URL } from 'url';
2
3
  /**
3
4
  *
4
5
  */