happy-dom 16.6.0 → 16.7.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.
Files changed (54) hide show
  1. package/cjs/browser/DefaultBrowserSettings.cjs +3 -1
  2. package/cjs/browser/DefaultBrowserSettings.cjs.map +1 -1
  3. package/cjs/browser/DefaultBrowserSettings.d.ts.map +1 -1
  4. package/cjs/browser/types/IBrowserSettings.d.ts +9 -1
  5. package/cjs/browser/types/IBrowserSettings.d.ts.map +1 -1
  6. package/cjs/browser/types/IOptionalBrowserSettings.d.ts +9 -1
  7. package/cjs/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  8. package/cjs/fetch/Fetch.cjs +62 -9
  9. package/cjs/fetch/Fetch.cjs.map +1 -1
  10. package/cjs/fetch/Fetch.d.ts +7 -1
  11. package/cjs/fetch/Fetch.d.ts.map +1 -1
  12. package/cjs/fetch/SyncFetch.cjs +45 -1
  13. package/cjs/fetch/SyncFetch.cjs.map +1 -1
  14. package/cjs/fetch/SyncFetch.d.ts +6 -0
  15. package/cjs/fetch/SyncFetch.d.ts.map +1 -1
  16. package/cjs/fetch/types/IVirtualServer.cjs +3 -0
  17. package/cjs/fetch/types/IVirtualServer.cjs.map +1 -0
  18. package/cjs/fetch/types/IVirtualServer.d.ts +8 -0
  19. package/cjs/fetch/types/IVirtualServer.d.ts.map +1 -0
  20. package/cjs/fetch/utilities/VirtualServerUtility.cjs +83 -0
  21. package/cjs/fetch/utilities/VirtualServerUtility.cjs.map +1 -0
  22. package/cjs/fetch/utilities/VirtualServerUtility.d.ts +30 -0
  23. package/cjs/fetch/utilities/VirtualServerUtility.d.ts.map +1 -0
  24. package/lib/browser/DefaultBrowserSettings.d.ts.map +1 -1
  25. package/lib/browser/DefaultBrowserSettings.js +3 -1
  26. package/lib/browser/DefaultBrowserSettings.js.map +1 -1
  27. package/lib/browser/types/IBrowserSettings.d.ts +9 -1
  28. package/lib/browser/types/IBrowserSettings.d.ts.map +1 -1
  29. package/lib/browser/types/IOptionalBrowserSettings.d.ts +9 -1
  30. package/lib/browser/types/IOptionalBrowserSettings.d.ts.map +1 -1
  31. package/lib/fetch/Fetch.d.ts +7 -1
  32. package/lib/fetch/Fetch.d.ts.map +1 -1
  33. package/lib/fetch/Fetch.js +62 -9
  34. package/lib/fetch/Fetch.js.map +1 -1
  35. package/lib/fetch/SyncFetch.d.ts +6 -0
  36. package/lib/fetch/SyncFetch.d.ts.map +1 -1
  37. package/lib/fetch/SyncFetch.js +45 -1
  38. package/lib/fetch/SyncFetch.js.map +1 -1
  39. package/lib/fetch/types/IVirtualServer.d.ts +8 -0
  40. package/lib/fetch/types/IVirtualServer.d.ts.map +1 -0
  41. package/lib/fetch/types/IVirtualServer.js +2 -0
  42. package/lib/fetch/types/IVirtualServer.js.map +1 -0
  43. package/lib/fetch/utilities/VirtualServerUtility.d.ts +30 -0
  44. package/lib/fetch/utilities/VirtualServerUtility.d.ts.map +1 -0
  45. package/lib/fetch/utilities/VirtualServerUtility.js +77 -0
  46. package/lib/fetch/utilities/VirtualServerUtility.js.map +1 -0
  47. package/package.json +1 -1
  48. package/src/browser/DefaultBrowserSettings.ts +3 -1
  49. package/src/browser/types/IBrowserSettings.ts +10 -1
  50. package/src/browser/types/IOptionalBrowserSettings.ts +10 -1
  51. package/src/fetch/Fetch.ts +91 -12
  52. package/src/fetch/SyncFetch.ts +60 -1
  53. package/src/fetch/types/IVirtualServer.ts +7 -0
  54. package/src/fetch/utilities/VirtualServerUtility.ts +89 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SyncFetch.js","sourceRoot":"","sources":["../../src/fetch/SyncFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncFetch.js","sourceRoot":"","sources":["../../src/fetch/SyncFetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Virtual server used for simulating a server that reads from the file system.
3
+ */
4
+ export default interface IVirtualServer {
5
+ url: string | RegExp;
6
+ directory: string;
7
+ }
8
+ //# sourceMappingURL=IVirtualServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVirtualServer.d.ts","sourceRoot":"","sources":["../../../src/fetch/types/IVirtualServer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,cAAc;IACtC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IVirtualServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVirtualServer.js","sourceRoot":"","sources":["../../../src/fetch/types/IVirtualServer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import BrowserWindow from '../../window/BrowserWindow.js';
2
+ import Response from '../Response.js';
3
+ import ISyncResponse from '../types/ISyncResponse.js';
4
+ /**
5
+ * Virtual server utility.
6
+ */
7
+ export default class VirtualServerUtility {
8
+ /**
9
+ * Returns the filesystem path for a request URL if it matches a virtual server.
10
+ *
11
+ * @param window Window.
12
+ * @param requestURL Request URL.
13
+ */
14
+ static getFilepath(window: BrowserWindow, requestURL: string): string | null;
15
+ /**
16
+ * Returns a 404 response.
17
+ *
18
+ * @param window Window.
19
+ * @returns 404 response.
20
+ */
21
+ static getNotFoundResponse(window: BrowserWindow): Response;
22
+ /**
23
+ * Returns a 404 response.
24
+ *
25
+ * @param window Window.
26
+ * @returns 404 response.
27
+ */
28
+ static getNotFoundSyncResponse(window: BrowserWindow): ISyncResponse;
29
+ }
30
+ //# sourceMappingURL=VirtualServerUtility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualServerUtility.d.ts","sourceRoot":"","sources":["../../../src/fetch/utilities/VirtualServerUtility.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAG1D,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAKtD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACxC;;;;;OAKG;WACW,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkCnF;;;;;OAKG;WACW,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ;IAUlE;;;;;OAKG;WACW,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;CAa3E"}
@@ -0,0 +1,77 @@
1
+ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
2
+ import Path from 'path';
3
+ const NOT_FOUND_HTML = '<html><head><title>Happy DOM Virtual Server - 404 Not Found</title></head><body><h1>Happy DOM Virtual Server - 404 Not Found</h1></body></html>';
4
+ /**
5
+ * Virtual server utility.
6
+ */
7
+ export default class VirtualServerUtility {
8
+ /**
9
+ * Returns the filesystem path for a request URL if it matches a virtual server.
10
+ *
11
+ * @param window Window.
12
+ * @param requestURL Request URL.
13
+ */
14
+ static getFilepath(window, requestURL) {
15
+ const browserSettings = new WindowBrowserContext(window).getSettings();
16
+ if (!browserSettings || !browserSettings.fetch.virtualServers) {
17
+ return null;
18
+ }
19
+ for (const virtualServer of browserSettings.fetch.virtualServers) {
20
+ let baseURL;
21
+ if (typeof virtualServer.url === 'string') {
22
+ const url = new URL(virtualServer.url[virtualServer.url.length - 1] === '/'
23
+ ? virtualServer.url.slice(0, -1)
24
+ : virtualServer.url, window.location.origin);
25
+ if (requestURL.startsWith(url.href)) {
26
+ baseURL = url;
27
+ }
28
+ }
29
+ else if (virtualServer.url instanceof RegExp) {
30
+ const match = requestURL.match(virtualServer.url);
31
+ if (match) {
32
+ baseURL = new URL(match[0][match[0].length - 1] === '/' ? match[0].slice(0, -1) : match[0], window.location.origin);
33
+ }
34
+ }
35
+ if (baseURL) {
36
+ const path = requestURL.slice(baseURL.href.length).split('?')[0].split('#')[0];
37
+ return Path.join(Path.resolve(virtualServer.directory), path.replaceAll('/', Path.sep));
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ /**
43
+ * Returns a 404 response.
44
+ *
45
+ * @param window Window.
46
+ * @returns 404 response.
47
+ */
48
+ static getNotFoundResponse(window) {
49
+ return new window.Response(NOT_FOUND_HTML, {
50
+ status: 404,
51
+ statusText: 'Not Found',
52
+ headers: {
53
+ 'Content-Type': 'text/html'
54
+ }
55
+ });
56
+ }
57
+ /**
58
+ * Returns a 404 response.
59
+ *
60
+ * @param window Window.
61
+ * @returns 404 response.
62
+ */
63
+ static getNotFoundSyncResponse(window) {
64
+ return {
65
+ status: 404,
66
+ statusText: 'Not Found',
67
+ ok: false,
68
+ url: null,
69
+ redirected: false,
70
+ headers: new window.Headers({
71
+ 'Content-Type': 'text/html'
72
+ }),
73
+ body: Buffer.from(NOT_FOUND_HTML)
74
+ };
75
+ }
76
+ }
77
+ //# sourceMappingURL=VirtualServerUtility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualServerUtility.js","sourceRoot":"","sources":["../../../src/fetch/utilities/VirtualServerUtility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "16.6.0",
3
+ "version": "16.7.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -19,7 +19,9 @@ export default <IBrowserSettings>{
19
19
  preventTimerLoops: false
20
20
  },
21
21
  fetch: {
22
- disableSameOriginPolicy: false
22
+ disableSameOriginPolicy: false,
23
+ interceptor: null,
24
+ virtualServers: null
23
25
  },
24
26
  navigation: {
25
27
  disableMainFrameNavigation: false,
@@ -1,6 +1,7 @@
1
1
  import BrowserErrorCaptureEnum from '../enums/BrowserErrorCaptureEnum.js';
2
2
  import BrowserNavigationCrossOriginPolicyEnum from '../enums/BrowserNavigationCrossOriginPolicyEnum.js';
3
3
  import IFetchInterceptor from '../../fetch/types/IFetchInterceptor.js';
4
+ import IVirtualServer from '../../fetch/types/IVirtualServer.js';
4
5
 
5
6
  /**
6
7
  * Browser settings.
@@ -42,7 +43,15 @@ export default interface IBrowserSettings {
42
43
  */
43
44
  disableSameOriginPolicy: boolean;
44
45
 
45
- interceptor?: IFetchInterceptor;
46
+ /**
47
+ * Fetch interceptor.
48
+ */
49
+ interceptor: IFetchInterceptor | null;
50
+
51
+ /**
52
+ * Virtual servers used for simulating a server that reads from the file system.
53
+ */
54
+ virtualServers: IVirtualServer[] | null;
46
55
  };
47
56
 
48
57
  /**
@@ -1,6 +1,7 @@
1
1
  import BrowserErrorCaptureEnum from '../enums/BrowserErrorCaptureEnum.js';
2
2
  import BrowserNavigationCrossOriginPolicyEnum from '../enums/BrowserNavigationCrossOriginPolicyEnum.js';
3
3
  import IFetchInterceptor from '../../fetch/types/IFetchInterceptor.js';
4
+ import IVirtualServer from '../../fetch/types/IVirtualServer.js';
4
5
 
5
6
  export default interface IOptionalBrowserSettings {
6
7
  /** Disables JavaScript evaluation. */
@@ -36,7 +37,15 @@ export default interface IOptionalBrowserSettings {
36
37
  */
37
38
  disableSameOriginPolicy?: boolean;
38
39
 
39
- interceptor?: IFetchInterceptor;
40
+ /**
41
+ * Fetch interceptor.
42
+ */
43
+ interceptor?: IFetchInterceptor | null;
44
+
45
+ /**
46
+ * Virtual servers used for simulating a server that reads from the file system.
47
+ */
48
+ virtualServers?: IVirtualServer[] | null;
40
49
  };
41
50
 
42
51
  /**
@@ -8,6 +8,8 @@ import HTTP, { IncomingMessage } from 'http';
8
8
  import HTTPS from 'https';
9
9
  import Zlib from 'zlib';
10
10
  import URL from '../url/URL.js';
11
+ import FS from 'fs';
12
+ import Path from 'path';
11
13
  import { Socket } from 'net';
12
14
  import Stream from 'stream';
13
15
  import DataURIParser from './data-uri/DataURIParser.js';
@@ -27,6 +29,7 @@ import FetchHTTPSCertificate from './certificate/FetchHTTPSCertificate.js';
27
29
  import { Buffer } from 'buffer';
28
30
  import FetchBodyUtility from './utilities/FetchBodyUtility.js';
29
31
  import IFetchInterceptor from './types/IFetchInterceptor.js';
32
+ import VirtualServerUtility from './utilities/VirtualServerUtility.js';
30
33
 
31
34
  const LAST_CHUNK = Buffer.from('0\r\n\r\n');
32
35
 
@@ -51,7 +54,7 @@ export default class Fetch {
51
54
  private nodeResponse: IncomingMessage | null = null;
52
55
  private response: Response | null = null;
53
56
  private responseHeaders: Headers | null = null;
54
- private interceptor?: IFetchInterceptor;
57
+ private interceptor: IFetchInterceptor | null;
55
58
  private request: Request;
56
59
  private redirectCount = 0;
57
60
  private disableCache: boolean;
@@ -111,17 +114,27 @@ export default class Fetch {
111
114
  */
112
115
  public async send(): Promise<Response> {
113
116
  FetchRequestReferrerUtility.prepareRequest(new URL(this.#window.location.href), this.request);
114
- const beforeRequestResponse = this.interceptor?.beforeAsyncRequest
115
- ? await this.interceptor.beforeAsyncRequest({
116
- request: this.request,
117
- window: this.#window
118
- })
119
- : undefined;
120
- if (beforeRequestResponse instanceof Response) {
121
- return beforeRequestResponse;
117
+
118
+ if (this.interceptor?.beforeAsyncRequest) {
119
+ const taskID = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask();
120
+ const response = await this.interceptor.beforeAsyncRequest({
121
+ request: this.request,
122
+ window: this.#window
123
+ });
124
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
125
+ if (response instanceof Response) {
126
+ return response;
127
+ }
122
128
  }
129
+
123
130
  FetchRequestValidationUtility.validateSchema(this.request);
124
131
 
132
+ const virtualServerResponse = await this.getVirtualServerResponse();
133
+
134
+ if (virtualServerResponse) {
135
+ return virtualServerResponse;
136
+ }
137
+
125
138
  if (this.request.signal.aborted) {
126
139
  throw new this.#window.DOMException(
127
140
  'The operation was aborted.',
@@ -171,7 +184,7 @@ export default class Fetch {
171
184
  const compliesWithCrossOriginPolicy = await this.compliesWithCrossOriginPolicy();
172
185
 
173
186
  if (!compliesWithCrossOriginPolicy) {
174
- this.#window.console.warn(
187
+ this.#browserFrame?.page?.console.warn(
175
188
  `Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at "${this.request.url}".`
176
189
  );
177
190
  throw new this.#window.DOMException(
@@ -270,6 +283,62 @@ export default class Fetch {
270
283
  return response;
271
284
  }
272
285
 
286
+ /**
287
+ * Returns virtual server response.
288
+ *
289
+ * @returns Response.
290
+ */
291
+ private async getVirtualServerResponse(): Promise<Response | null> {
292
+ const filePath = VirtualServerUtility.getFilepath(this.#window, this.request.url);
293
+
294
+ if (!filePath) {
295
+ return null;
296
+ }
297
+
298
+ if (this.request.method !== 'GET') {
299
+ this.#browserFrame?.page?.console.error(
300
+ `${this.request.method} ${this.request.url} 404 (Not Found)`
301
+ );
302
+ return VirtualServerUtility.getNotFoundResponse(this.#window);
303
+ }
304
+
305
+ const taskID = this.#browserFrame[PropertySymbol.asyncTaskManager].startTask();
306
+ let buffer: Buffer;
307
+
308
+ try {
309
+ const stat = await FS.promises.stat(filePath);
310
+ buffer = await FS.promises.readFile(
311
+ stat.isDirectory() ? Path.join(filePath, 'index.html') : filePath
312
+ );
313
+ } catch (error) {
314
+ this.#browserFrame?.page?.console.error(
315
+ `${this.request.method} ${this.request.url} 404 (Not Found)`
316
+ );
317
+
318
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
319
+
320
+ return VirtualServerUtility.getNotFoundResponse(this.#window);
321
+ }
322
+
323
+ this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
324
+
325
+ const body = new this.#window.ReadableStream({
326
+ start(controller) {
327
+ setTimeout(() => {
328
+ controller.enqueue(buffer);
329
+ controller.close();
330
+ });
331
+ }
332
+ });
333
+
334
+ const response = new this.#window.Response(body);
335
+
336
+ response[PropertySymbol.buffer] = buffer;
337
+ (<string>response.url) = this.request.url;
338
+
339
+ return response;
340
+ }
341
+
273
342
  /**
274
343
  * Checks if the request complies with the Cross-Origin policy.
275
344
  *
@@ -410,7 +479,17 @@ export default class Fetch {
410
479
  })
411
480
  : undefined;
412
481
  this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
413
- resolve(interceptedResponse instanceof Response ? interceptedResponse : response);
482
+ const returnResponse =
483
+ interceptedResponse instanceof Response ? interceptedResponse : response;
484
+
485
+ // The browser outputs errors to the console when the response is not ok.
486
+ if (returnResponse instanceof Response && !returnResponse.ok) {
487
+ this.#browserFrame?.page?.console.error(
488
+ `${this.request.method} ${this.request.url} ${returnResponse.status} (${returnResponse.statusText})`
489
+ );
490
+ }
491
+
492
+ resolve(returnResponse);
414
493
  };
415
494
  this.reject = (error: Error): void => {
416
495
  this.#browserFrame[PropertySymbol.asyncTaskManager].endTask(taskID);
@@ -517,7 +596,7 @@ export default class Fetch {
517
596
  */
518
597
  private onError(error: Error): void {
519
598
  this.finalizeRequest();
520
- this.#window.console.error(error);
599
+ this.#browserFrame?.page?.console.error(error);
521
600
  this.reject(
522
601
  new this.#window.DOMException(
523
602
  `Failed to execute "fetch()" on "Window" with URL "${this.request.url}": ${error.message}`,
@@ -3,6 +3,8 @@ import * as PropertySymbol from '../PropertySymbol.js';
3
3
  import IRequestInfo from './types/IRequestInfo.js';
4
4
  import DOMExceptionNameEnum from '../exception/DOMExceptionNameEnum.js';
5
5
  import URL from '../url/URL.js';
6
+ import FS from 'fs';
7
+ import Path from 'path';
6
8
  import Request from './Request.js';
7
9
  import IBrowserFrame from '../browser/types/IBrowserFrame.js';
8
10
  import BrowserWindow from '../window/BrowserWindow.js';
@@ -21,6 +23,7 @@ import FetchResponseRedirectUtility from './utilities/FetchResponseRedirectUtili
21
23
  import FetchCORSUtility from './utilities/FetchCORSUtility.js';
22
24
  import Fetch from './Fetch.js';
23
25
  import IFetchInterceptor from './types/IFetchInterceptor.js';
26
+ import VirtualServerUtility from './utilities/VirtualServerUtility.js';
24
27
 
25
28
  interface ISyncHTTPResponse {
26
29
  error: string;
@@ -96,6 +99,7 @@ export default class SyncFetch {
96
99
  */
97
100
  public send(): ISyncResponse {
98
101
  FetchRequestReferrerUtility.prepareRequest(new URL(this.#window.location.href), this.request);
102
+
99
103
  const beforeRequestResponse = this.interceptor?.beforeSyncRequest
100
104
  ? this.interceptor.beforeSyncRequest({
101
105
  request: this.request,
@@ -105,8 +109,15 @@ export default class SyncFetch {
105
109
  if (typeof beforeRequestResponse === 'object') {
106
110
  return beforeRequestResponse;
107
111
  }
112
+
108
113
  FetchRequestValidationUtility.validateSchema(this.request);
109
114
 
115
+ const virtualServerResponse = this.getVirtualServerResponse();
116
+
117
+ if (virtualServerResponse) {
118
+ return virtualServerResponse;
119
+ }
120
+
110
121
  if (this.request.signal.aborted) {
111
122
  throw new this.#window.DOMException(
112
123
  'The operation was aborted.',
@@ -256,6 +267,47 @@ export default class SyncFetch {
256
267
  };
257
268
  }
258
269
 
270
+ /**
271
+ * Returns virtual server response.
272
+ *
273
+ * @returns Response.
274
+ */
275
+ private getVirtualServerResponse(): ISyncResponse | null {
276
+ const filePath = VirtualServerUtility.getFilepath(this.#window, this.request.url);
277
+
278
+ if (!filePath) {
279
+ return null;
280
+ }
281
+
282
+ if (this.request.method !== 'GET') {
283
+ this.#browserFrame?.page?.console.error(
284
+ `${this.request.method} ${this.request.url} 404 (Not Found)`
285
+ );
286
+ return VirtualServerUtility.getNotFoundSyncResponse(this.#window);
287
+ }
288
+
289
+ let buffer: Buffer;
290
+ try {
291
+ const stat = FS.statSync(filePath);
292
+ buffer = FS.readFileSync(stat.isDirectory() ? Path.join(filePath, 'index.html') : filePath);
293
+ } catch {
294
+ this.#browserFrame?.page?.console.error(
295
+ `${this.request.method} ${this.request.url} 404 (Not Found)`
296
+ );
297
+ return VirtualServerUtility.getNotFoundSyncResponse(this.#window);
298
+ }
299
+
300
+ return {
301
+ status: 200,
302
+ statusText: '',
303
+ ok: true,
304
+ url: this.request.url,
305
+ redirected: false,
306
+ headers: new this.#window.Headers(),
307
+ body: buffer
308
+ };
309
+ }
310
+
259
311
  /**
260
312
  * Checks if the request complies with the Cross-Origin policy.
261
313
  *
@@ -443,7 +495,14 @@ export default class SyncFetch {
443
495
  request: this.request
444
496
  })
445
497
  : undefined;
446
- return typeof interceptedResponse === 'object' ? interceptedResponse : redirectedResponse;
498
+ const returnResponse =
499
+ typeof interceptedResponse === 'object' ? interceptedResponse : redirectedResponse;
500
+ if (!returnResponse.ok) {
501
+ this.#browserFrame?.page?.console.error(
502
+ `${this.request.method} ${this.request.url} ${returnResponse.status} (${returnResponse.statusText})`
503
+ );
504
+ }
505
+ return returnResponse;
447
506
  }
448
507
 
449
508
  /**
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Virtual server used for simulating a server that reads from the file system.
3
+ */
4
+ export default interface IVirtualServer {
5
+ url: string | RegExp;
6
+ directory: string;
7
+ }
@@ -0,0 +1,89 @@
1
+ import BrowserWindow from '../../window/BrowserWindow.js';
2
+ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
3
+ import Path from 'path';
4
+ import Response from '../Response.js';
5
+ import ISyncResponse from '../types/ISyncResponse.js';
6
+
7
+ const NOT_FOUND_HTML =
8
+ '<html><head><title>Happy DOM Virtual Server - 404 Not Found</title></head><body><h1>Happy DOM Virtual Server - 404 Not Found</h1></body></html>';
9
+
10
+ /**
11
+ * Virtual server utility.
12
+ */
13
+ export default class VirtualServerUtility {
14
+ /**
15
+ * Returns the filesystem path for a request URL if it matches a virtual server.
16
+ *
17
+ * @param window Window.
18
+ * @param requestURL Request URL.
19
+ */
20
+ public static getFilepath(window: BrowserWindow, requestURL: string): string | null {
21
+ const browserSettings = new WindowBrowserContext(window).getSettings();
22
+ if (!browserSettings || !browserSettings.fetch.virtualServers) {
23
+ return null;
24
+ }
25
+ for (const virtualServer of browserSettings.fetch.virtualServers) {
26
+ let baseURL: URL;
27
+ if (typeof virtualServer.url === 'string') {
28
+ const url = new URL(
29
+ virtualServer.url[virtualServer.url.length - 1] === '/'
30
+ ? virtualServer.url.slice(0, -1)
31
+ : virtualServer.url,
32
+ window.location.origin
33
+ );
34
+ if (requestURL.startsWith(url.href)) {
35
+ baseURL = url;
36
+ }
37
+ } else if (virtualServer.url instanceof RegExp) {
38
+ const match = requestURL.match(virtualServer.url);
39
+ if (match) {
40
+ baseURL = new URL(
41
+ match[0][match[0].length - 1] === '/' ? match[0].slice(0, -1) : match[0],
42
+ window.location.origin
43
+ );
44
+ }
45
+ }
46
+ if (baseURL) {
47
+ const path = requestURL.slice(baseURL.href.length).split('?')[0].split('#')[0];
48
+ return Path.join(Path.resolve(virtualServer.directory), path.replaceAll('/', Path.sep));
49
+ }
50
+ }
51
+ return null;
52
+ }
53
+
54
+ /**
55
+ * Returns a 404 response.
56
+ *
57
+ * @param window Window.
58
+ * @returns 404 response.
59
+ */
60
+ public static getNotFoundResponse(window: BrowserWindow): Response {
61
+ return new window.Response(NOT_FOUND_HTML, {
62
+ status: 404,
63
+ statusText: 'Not Found',
64
+ headers: {
65
+ 'Content-Type': 'text/html'
66
+ }
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Returns a 404 response.
72
+ *
73
+ * @param window Window.
74
+ * @returns 404 response.
75
+ */
76
+ public static getNotFoundSyncResponse(window: BrowserWindow): ISyncResponse {
77
+ return <ISyncResponse>{
78
+ status: 404,
79
+ statusText: 'Not Found',
80
+ ok: false,
81
+ url: null,
82
+ redirected: false,
83
+ headers: new window.Headers({
84
+ 'Content-Type': 'text/html'
85
+ }),
86
+ body: Buffer.from(NOT_FOUND_HTML)
87
+ };
88
+ }
89
+ }