msw 2.3.0-ws.rc-5 → 2.3.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 (189) hide show
  1. package/cli/init.js +0 -0
  2. package/config/scripts/postinstall.js +0 -0
  3. package/lib/browser/index.d.mts +6 -7
  4. package/lib/browser/index.d.ts +6 -7
  5. package/lib/browser/index.js +156 -81
  6. package/lib/browser/index.js.map +1 -1
  7. package/lib/browser/index.mjs +156 -81
  8. package/lib/browser/index.mjs.map +1 -1
  9. package/lib/core/{GraphQLHandler-DGyzNtRQ.d.ts → GraphQLHandler-COiPfZ8k.d.ts} +1 -1
  10. package/lib/core/{GraphQLHandler-CzcXr7At.d.mts → GraphQLHandler-Dq_WRbKe.d.mts} +1 -1
  11. package/lib/core/{HttpResponse-BOzDwzB6.d.ts → HttpResponse-B07UKAkU.d.ts} +2 -2
  12. package/lib/core/{HttpResponse-CSyJ1cbO.d.mts → HttpResponse-C7niBMwb.d.mts} +2 -2
  13. package/lib/core/HttpResponse.d.mts +1 -1
  14. package/lib/core/HttpResponse.d.ts +1 -1
  15. package/lib/core/SetupApi.d.mts +12 -15
  16. package/lib/core/SetupApi.d.ts +12 -15
  17. package/lib/core/SetupApi.js +1 -3
  18. package/lib/core/SetupApi.js.map +1 -1
  19. package/lib/core/SetupApi.mjs +1 -3
  20. package/lib/core/SetupApi.mjs.map +1 -1
  21. package/lib/core/getResponse.d.mts +1 -1
  22. package/lib/core/getResponse.d.ts +1 -1
  23. package/lib/core/graphql.d.mts +2 -2
  24. package/lib/core/graphql.d.ts +2 -2
  25. package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
  26. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  27. package/lib/core/handlers/HttpHandler.d.mts +1 -1
  28. package/lib/core/handlers/HttpHandler.d.ts +1 -1
  29. package/lib/core/handlers/RequestHandler.d.mts +1 -1
  30. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  31. package/lib/core/http.d.mts +1 -1
  32. package/lib/core/http.d.ts +1 -1
  33. package/lib/core/index.d.mts +2 -5
  34. package/lib/core/index.d.ts +2 -5
  35. package/lib/core/index.js +1 -5
  36. package/lib/core/index.js.map +1 -1
  37. package/lib/core/index.mjs +1 -7
  38. package/lib/core/index.mjs.map +1 -1
  39. package/lib/core/passthrough.d.mts +1 -1
  40. package/lib/core/passthrough.d.ts +1 -1
  41. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  42. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  43. package/lib/core/utils/executeHandlers.d.mts +1 -1
  44. package/lib/core/utils/executeHandlers.d.ts +1 -1
  45. package/lib/core/utils/executeHandlers.js +0 -4
  46. package/lib/core/utils/executeHandlers.js.map +1 -1
  47. package/lib/core/utils/executeHandlers.mjs +0 -6
  48. package/lib/core/utils/executeHandlers.mjs.map +1 -1
  49. package/lib/core/utils/handleRequest.d.mts +2 -2
  50. package/lib/core/utils/handleRequest.d.ts +2 -2
  51. package/lib/core/utils/handleRequest.js.map +1 -1
  52. package/lib/core/utils/handleRequest.mjs.map +1 -1
  53. package/lib/core/utils/internal/Disposable.d.mts +2 -2
  54. package/lib/core/utils/internal/Disposable.d.ts +2 -2
  55. package/lib/core/utils/internal/Disposable.js +5 -2
  56. package/lib/core/utils/internal/Disposable.js.map +1 -1
  57. package/lib/core/utils/internal/Disposable.mjs +5 -2
  58. package/lib/core/utils/internal/Disposable.mjs.map +1 -1
  59. package/lib/core/utils/internal/devUtils.d.mts +10 -1
  60. package/lib/core/utils/internal/devUtils.d.ts +10 -1
  61. package/lib/core/utils/internal/devUtils.js +7 -0
  62. package/lib/core/utils/internal/devUtils.js.map +1 -1
  63. package/lib/core/utils/internal/devUtils.mjs +7 -0
  64. package/lib/core/utils/internal/devUtils.mjs.map +1 -1
  65. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
  66. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  67. package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
  68. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  69. package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
  70. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  71. package/lib/core/utils/logging/getTimestamp.d.mts +1 -4
  72. package/lib/core/utils/logging/getTimestamp.d.ts +1 -4
  73. package/lib/core/utils/logging/getTimestamp.js +2 -6
  74. package/lib/core/utils/logging/getTimestamp.js.map +1 -1
  75. package/lib/core/utils/logging/getTimestamp.mjs +2 -6
  76. package/lib/core/utils/logging/getTimestamp.mjs.map +1 -1
  77. package/lib/core/utils/matching/matchRequestUrl.d.mts +1 -2
  78. package/lib/core/utils/matching/matchRequestUrl.d.ts +1 -2
  79. package/lib/core/utils/matching/matchRequestUrl.js +0 -4
  80. package/lib/core/utils/matching/matchRequestUrl.js.map +1 -1
  81. package/lib/core/utils/matching/matchRequestUrl.mjs +0 -4
  82. package/lib/core/utils/matching/matchRequestUrl.mjs.map +1 -1
  83. package/lib/core/utils/request/onUnhandledRequest.js +3 -3
  84. package/lib/core/utils/request/onUnhandledRequest.js.map +1 -1
  85. package/lib/core/utils/request/onUnhandledRequest.mjs +4 -4
  86. package/lib/core/utils/request/onUnhandledRequest.mjs.map +1 -1
  87. package/lib/iife/index.js +177 -1063
  88. package/lib/iife/index.js.map +1 -1
  89. package/lib/mockServiceWorker.js +1 -1
  90. package/lib/native/index.d.mts +5 -6
  91. package/lib/native/index.d.ts +5 -6
  92. package/lib/native/index.js +5 -13
  93. package/lib/native/index.js.map +1 -1
  94. package/lib/native/index.mjs +6 -14
  95. package/lib/native/index.mjs.map +1 -1
  96. package/lib/node/index.d.mts +7 -8
  97. package/lib/node/index.d.ts +7 -8
  98. package/lib/node/index.js +5 -13
  99. package/lib/node/index.js.map +1 -1
  100. package/lib/node/index.mjs +6 -14
  101. package/lib/node/index.mjs.map +1 -1
  102. package/package.json +36 -29
  103. package/src/browser/setupWorker/glossary.ts +10 -10
  104. package/src/browser/setupWorker/setupWorker.ts +3 -34
  105. package/src/core/SetupApi.ts +20 -28
  106. package/src/core/index.ts +1 -8
  107. package/src/core/utils/executeHandlers.ts +2 -6
  108. package/src/core/utils/handleRequest.ts +2 -1
  109. package/src/core/utils/internal/Disposable.ts +6 -3
  110. package/src/core/utils/internal/devUtils.test.ts +21 -0
  111. package/src/core/utils/internal/devUtils.ts +13 -0
  112. package/src/core/utils/logging/getTimestamp.test.ts +6 -20
  113. package/src/core/utils/logging/getTimestamp.ts +6 -11
  114. package/src/core/utils/matching/matchRequestUrl.test.ts +0 -44
  115. package/src/core/utils/matching/matchRequestUrl.ts +0 -4
  116. package/src/core/utils/request/onUnhandledRequest.test.ts +30 -4
  117. package/src/core/utils/request/onUnhandledRequest.ts +4 -4
  118. package/src/node/SetupServerApi.ts +7 -8
  119. package/src/node/SetupServerCommonApi.ts +8 -15
  120. package/src/node/glossary.ts +7 -5
  121. package/src/node/setupServer.ts +1 -2
  122. package/lib/core/handlers/WebSocketHandler.d.mts +0 -32
  123. package/lib/core/handlers/WebSocketHandler.d.ts +0 -32
  124. package/lib/core/handlers/WebSocketHandler.js +0 -62
  125. package/lib/core/handlers/WebSocketHandler.js.map +0 -1
  126. package/lib/core/handlers/WebSocketHandler.mjs +0 -44
  127. package/lib/core/handlers/WebSocketHandler.mjs.map +0 -1
  128. package/lib/core/ws/WebSocketClientManager.d.mts +0 -64
  129. package/lib/core/ws/WebSocketClientManager.d.ts +0 -64
  130. package/lib/core/ws/WebSocketClientManager.js +0 -123
  131. package/lib/core/ws/WebSocketClientManager.js.map +0 -1
  132. package/lib/core/ws/WebSocketClientManager.mjs +0 -103
  133. package/lib/core/ws/WebSocketClientManager.mjs.map +0 -1
  134. package/lib/core/ws/handleWebSocketEvent.d.mts +0 -16
  135. package/lib/core/ws/handleWebSocketEvent.d.ts +0 -16
  136. package/lib/core/ws/handleWebSocketEvent.js +0 -56
  137. package/lib/core/ws/handleWebSocketEvent.js.map +0 -1
  138. package/lib/core/ws/handleWebSocketEvent.mjs +0 -36
  139. package/lib/core/ws/handleWebSocketEvent.mjs.map +0 -1
  140. package/lib/core/ws/utils/attachWebSocketLogger.d.mts +0 -34
  141. package/lib/core/ws/utils/attachWebSocketLogger.d.ts +0 -34
  142. package/lib/core/ws/utils/attachWebSocketLogger.js +0 -217
  143. package/lib/core/ws/utils/attachWebSocketLogger.js.map +0 -1
  144. package/lib/core/ws/utils/attachWebSocketLogger.mjs +0 -197
  145. package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +0 -1
  146. package/lib/core/ws/utils/getMessageLength.d.mts +0 -11
  147. package/lib/core/ws/utils/getMessageLength.d.ts +0 -11
  148. package/lib/core/ws/utils/getMessageLength.js +0 -33
  149. package/lib/core/ws/utils/getMessageLength.js.map +0 -1
  150. package/lib/core/ws/utils/getMessageLength.mjs +0 -13
  151. package/lib/core/ws/utils/getMessageLength.mjs.map +0 -1
  152. package/lib/core/ws/utils/getPublicData.d.mts +0 -5
  153. package/lib/core/ws/utils/getPublicData.d.ts +0 -5
  154. package/lib/core/ws/utils/getPublicData.js +0 -36
  155. package/lib/core/ws/utils/getPublicData.js.map +0 -1
  156. package/lib/core/ws/utils/getPublicData.mjs +0 -16
  157. package/lib/core/ws/utils/getPublicData.mjs.map +0 -1
  158. package/lib/core/ws/utils/truncateMessage.d.mts +0 -3
  159. package/lib/core/ws/utils/truncateMessage.d.ts +0 -3
  160. package/lib/core/ws/utils/truncateMessage.js +0 -31
  161. package/lib/core/ws/utils/truncateMessage.js.map +0 -1
  162. package/lib/core/ws/utils/truncateMessage.mjs +0 -11
  163. package/lib/core/ws/utils/truncateMessage.mjs.map +0 -1
  164. package/lib/core/ws/webSocketInterceptor.d.mts +0 -5
  165. package/lib/core/ws/webSocketInterceptor.d.ts +0 -5
  166. package/lib/core/ws/webSocketInterceptor.js +0 -26
  167. package/lib/core/ws/webSocketInterceptor.js.map +0 -1
  168. package/lib/core/ws/webSocketInterceptor.mjs +0 -6
  169. package/lib/core/ws/webSocketInterceptor.mjs.map +0 -1
  170. package/lib/core/ws.d.mts +0 -49
  171. package/lib/core/ws.d.ts +0 -49
  172. package/lib/core/ws.js +0 -63
  173. package/lib/core/ws.js.map +0 -1
  174. package/lib/core/ws.mjs +0 -46
  175. package/lib/core/ws.mjs.map +0 -1
  176. package/src/core/handlers/WebSocketHandler.ts +0 -71
  177. package/src/core/ws/WebSocketClientManager.test.ts +0 -159
  178. package/src/core/ws/WebSocketClientManager.ts +0 -170
  179. package/src/core/ws/handleWebSocketEvent.ts +0 -56
  180. package/src/core/ws/utils/attachWebSocketLogger.ts +0 -269
  181. package/src/core/ws/utils/getMessageLength.test.ts +0 -16
  182. package/src/core/ws/utils/getMessageLength.ts +0 -19
  183. package/src/core/ws/utils/getPublicData.test.ts +0 -38
  184. package/src/core/ws/utils/getPublicData.ts +0 -17
  185. package/src/core/ws/utils/truncateMessage.test.ts +0 -12
  186. package/src/core/ws/utils/truncateMessage.ts +0 -9
  187. package/src/core/ws/webSocketInterceptor.ts +0 -3
  188. package/src/core/ws.test.ts +0 -23
  189. package/src/core/ws.ts +0 -122
@@ -370,7 +370,7 @@ You can also automate this process and make the worker script update automatical
370
370
  }
371
371
  }
372
372
 
373
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
373
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs
374
374
  var encoder = new TextEncoder();
375
375
  function encodeBuffer(text) {
376
376
  return encoder.encode(text);
@@ -385,6 +385,17 @@ function toArrayBuffer(array) {
385
385
  array.byteOffset + array.byteLength
386
386
  );
387
387
  }
388
+
389
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-OMISYKWR.mjs
390
+ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
391
+ function isPropertyAccessible(obj, key) {
392
+ try {
393
+ obj[key];
394
+ return true;
395
+ } catch (e) {
396
+ return false;
397
+ }
398
+ }
388
399
  var RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([
389
400
  101,
390
401
  103,
@@ -395,9 +406,27 @@ var RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([
395
406
  function isResponseWithoutBody(status) {
396
407
  return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);
397
408
  }
398
-
399
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-HAGW22AN.mjs
400
- var IS_PATCHED_MODULE = Symbol("isPatchedModule");
409
+ function createServerErrorResponse(body) {
410
+ return new Response(
411
+ JSON.stringify(
412
+ body instanceof Error ? {
413
+ name: body.name,
414
+ message: body.message,
415
+ stack: body.stack
416
+ } : body
417
+ ),
418
+ {
419
+ status: 500,
420
+ statusText: "Unhandled Exception",
421
+ headers: {
422
+ "Content-Type": "application/json"
423
+ }
424
+ }
425
+ );
426
+ }
427
+ function isResponseError(response) {
428
+ return isPropertyAccessible(response, "type") && response.type === "error";
429
+ }
401
430
 
402
431
  // node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
403
432
  var __defProp = Object.defineProperty;
@@ -836,7 +865,7 @@ var _Emitter = class {
836
865
  var Emitter = _Emitter;
837
866
  Emitter.defaultMaxListeners = 10;
838
867
 
839
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
868
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
840
869
  var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
841
870
  function getGlobalSymbol(symbol) {
842
871
  return (
@@ -984,7 +1013,7 @@ function createRequestId() {
984
1013
  return Math.random().toString(16).slice(2);
985
1014
  }
986
1015
 
987
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1016
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/index.mjs
988
1017
  var BatchInterceptor = class extends Interceptor {
989
1018
  constructor(options) {
990
1019
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1268,7 +1297,7 @@ var DeferredPromise = class extends Promise {
1268
1297
  }
1269
1298
  };
1270
1299
 
1271
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1300
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1272
1301
  var RequestController = class {
1273
1302
  constructor(request) {
1274
1303
  this.request = request;
@@ -1306,15 +1335,7 @@ async function emitAsync(emitter, eventName, ...data) {
1306
1335
  }
1307
1336
  }
1308
1337
 
1309
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-3FNUI33J.mjs
1310
- function isPropertyAccessible(obj, key) {
1311
- try {
1312
- obj[key];
1313
- return true;
1314
- } catch (e) {
1315
- return false;
1316
- }
1317
- }
1338
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-MAEPOYB6.mjs
1318
1339
  function canParseUrl(url) {
1319
1340
  try {
1320
1341
  new URL(url);
@@ -1367,64 +1388,113 @@ var _FetchInterceptor = class extends Interceptor {
1367
1388
  { once: true }
1368
1389
  );
1369
1390
  }
1370
- const resolverResult = await until(async () => {
1371
- const listenersFinished = emitAsync(this.emitter, "request", {
1372
- request: interactiveRequest,
1373
- requestId
1391
+ const responsePromise = new DeferredPromise();
1392
+ const respondWith = (response) => {
1393
+ this.logger.info("responding with a mock response:", response);
1394
+ if (this.emitter.listenerCount("response") > 0) {
1395
+ this.logger.info('emitting the "response" event...');
1396
+ const responseClone = response.clone();
1397
+ this.emitter.emit("response", {
1398
+ response: responseClone,
1399
+ isMockedResponse: true,
1400
+ request: interactiveRequest,
1401
+ requestId
1402
+ });
1403
+ }
1404
+ Object.defineProperty(response, "url", {
1405
+ writable: false,
1406
+ enumerable: true,
1407
+ configurable: false,
1408
+ value: request.url
1374
1409
  });
1375
- await Promise.race([
1376
- requestAborted,
1377
- // Put the listeners invocation Promise in the same race condition
1378
- // with the request abort Promise because otherwise awaiting the listeners
1379
- // would always yield some response (or undefined).
1380
- listenersFinished,
1381
- requestController.responsePromise
1382
- ]);
1383
- this.logger.info("all request listeners have been resolved!");
1384
- const mockedResponse2 = await requestController.responsePromise;
1385
- this.logger.info("event.respondWith called with:", mockedResponse2);
1386
- return mockedResponse2;
1387
- });
1410
+ responsePromise.resolve(response);
1411
+ };
1412
+ const errorWith = (reason) => {
1413
+ responsePromise.reject(reason);
1414
+ };
1415
+ const resolverResult = await until(
1416
+ async () => {
1417
+ const listenersFinished = emitAsync(this.emitter, "request", {
1418
+ request: interactiveRequest,
1419
+ requestId
1420
+ });
1421
+ await Promise.race([
1422
+ requestAborted,
1423
+ // Put the listeners invocation Promise in the same race condition
1424
+ // with the request abort Promise because otherwise awaiting the listeners
1425
+ // would always yield some response (or undefined).
1426
+ listenersFinished,
1427
+ requestController.responsePromise
1428
+ ]);
1429
+ this.logger.info("all request listeners have been resolved!");
1430
+ const mockedResponse2 = await requestController.responsePromise;
1431
+ this.logger.info("event.respondWith called with:", mockedResponse2);
1432
+ return mockedResponse2;
1433
+ }
1434
+ );
1388
1435
  if (requestAborted.state === "rejected") {
1389
- return Promise.reject(requestAborted.rejectionReason);
1436
+ this.logger.info(
1437
+ "request has been aborted:",
1438
+ requestAborted.rejectionReason
1439
+ );
1440
+ responsePromise.reject(requestAborted.rejectionReason);
1441
+ return responsePromise;
1390
1442
  }
1391
1443
  if (resolverResult.error) {
1392
- return Promise.reject(createNetworkError(resolverResult.error));
1444
+ this.logger.info(
1445
+ "request listerner threw an error:",
1446
+ resolverResult.error
1447
+ );
1448
+ if (resolverResult.error instanceof Response) {
1449
+ if (isResponseError(resolverResult.error)) {
1450
+ errorWith(createNetworkError(resolverResult.error));
1451
+ } else {
1452
+ respondWith(resolverResult.error);
1453
+ }
1454
+ }
1455
+ if (this.emitter.listenerCount("unhandledException") > 0) {
1456
+ await emitAsync(this.emitter, "unhandledException", {
1457
+ error: resolverResult.error,
1458
+ request,
1459
+ requestId,
1460
+ controller: {
1461
+ respondWith,
1462
+ errorWith
1463
+ }
1464
+ });
1465
+ if (responsePromise.state !== "pending") {
1466
+ return responsePromise;
1467
+ }
1468
+ }
1469
+ respondWith(createServerErrorResponse(resolverResult.error));
1470
+ return responsePromise;
1393
1471
  }
1394
1472
  const mockedResponse = resolverResult.data;
1395
1473
  if (mockedResponse && !((_a = request.signal) == null ? void 0 : _a.aborted)) {
1396
1474
  this.logger.info("received mocked response:", mockedResponse);
1397
- if (isPropertyAccessible(mockedResponse, "type") && mockedResponse.type === "error") {
1475
+ if (isResponseError(mockedResponse)) {
1398
1476
  this.logger.info(
1399
1477
  "received a network error response, rejecting the request promise..."
1400
1478
  );
1401
- return Promise.reject(createNetworkError(mockedResponse));
1479
+ errorWith(createNetworkError(mockedResponse));
1480
+ } else {
1481
+ respondWith(mockedResponse);
1402
1482
  }
1403
- const responseClone = mockedResponse.clone();
1404
- this.emitter.emit("response", {
1405
- response: responseClone,
1406
- isMockedResponse: true,
1407
- request: interactiveRequest,
1408
- requestId
1409
- });
1410
- Object.defineProperty(mockedResponse, "url", {
1411
- writable: false,
1412
- enumerable: true,
1413
- configurable: false,
1414
- value: request.url
1415
- });
1416
- return mockedResponse;
1483
+ return responsePromise;
1417
1484
  }
1418
1485
  this.logger.info("no mocked response received!");
1419
1486
  return pureFetch(request).then((response) => {
1420
- const responseClone = response.clone();
1421
- this.logger.info("original fetch performed", responseClone);
1422
- this.emitter.emit("response", {
1423
- response: responseClone,
1424
- isMockedResponse: false,
1425
- request: interactiveRequest,
1426
- requestId
1427
- });
1487
+ this.logger.info("original fetch performed", response);
1488
+ if (this.emitter.listenerCount("response") > 0) {
1489
+ this.logger.info('emitting the "response" event...');
1490
+ const responseClone = response.clone();
1491
+ this.emitter.emit("response", {
1492
+ response: responseClone,
1493
+ isMockedResponse: false,
1494
+ request: interactiveRequest,
1495
+ requestId
1496
+ });
1497
+ }
1428
1498
  return response;
1429
1499
  });
1430
1500
  };
@@ -1453,7 +1523,7 @@ function createNetworkError(cause) {
1453
1523
  });
1454
1524
  }
1455
1525
 
1456
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-VYFS2IF2.mjs
1526
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-732REFPX.mjs
1457
1527
  function concatArrayBuffer(left, right) {
1458
1528
  const result = new Uint8Array(left.byteLength + right.byteLength);
1459
1529
  result.set(left, 0);
@@ -2104,7 +2174,31 @@ function createXMLHttpRequestProxy({
2104
2174
  "request listener threw an exception, aborting request...",
2105
2175
  resolverResult.error
2106
2176
  );
2107
- xhrRequestController.errorWith(resolverResult.error);
2177
+ if (resolverResult.error instanceof Response) {
2178
+ if (isResponseError(resolverResult.error)) {
2179
+ xhrRequestController.errorWith(new TypeError("Network error"));
2180
+ } else {
2181
+ this.respondWith(resolverResult.error);
2182
+ }
2183
+ return;
2184
+ }
2185
+ if (emitter.listenerCount("unhandledException") > 0) {
2186
+ await emitAsync(emitter, "unhandledException", {
2187
+ error: resolverResult.error,
2188
+ request,
2189
+ requestId,
2190
+ controller: {
2191
+ respondWith: xhrRequestController.respondWith.bind(xhrRequestController),
2192
+ errorWith: xhrRequestController.errorWith.bind(xhrRequestController)
2193
+ }
2194
+ });
2195
+ if (originalRequest.readyState > XMLHttpRequest.OPENED) {
2196
+ return;
2197
+ }
2198
+ }
2199
+ xhrRequestController.respondWith(
2200
+ createServerErrorResponse(resolverResult.error)
2201
+ );
2108
2202
  return;
2109
2203
  }
2110
2204
  const mockedResponse = resolverResult.data;
@@ -2114,7 +2208,7 @@ function createXMLHttpRequestProxy({
2114
2208
  mockedResponse.status,
2115
2209
  mockedResponse.statusText
2116
2210
  );
2117
- if (mockedResponse.type === "error") {
2211
+ if (isResponseError(mockedResponse)) {
2118
2212
  this.logger.info(
2119
2213
  "received a network error response, rejecting the request promise..."
2120
2214
  );
@@ -2285,9 +2379,6 @@ function supportsReadableStreamTransfer() {
2285
2379
  }
2286
2380
 
2287
2381
  // src/browser/setupWorker/setupWorker.ts
2288
- import { webSocketInterceptor } from '../core/ws/webSocketInterceptor.mjs';
2289
- import { handleWebSocketEvent } from '../core/ws/handleWebSocketEvent.mjs';
2290
- import { attachWebSocketLogger } from '../core/ws/utils/attachWebSocketLogger.mjs';
2291
2382
  var SetupWorkerApi = class extends SetupApi {
2292
2383
  context;
2293
2384
  startHandler = null;
@@ -2403,22 +2494,6 @@ var SetupWorkerApi = class extends SetupApi {
2403
2494
  DEFAULT_START_OPTIONS,
2404
2495
  options
2405
2496
  );
2406
- handleWebSocketEvent({
2407
- getHandlers: () => {
2408
- return this.handlersController.currentHandlers();
2409
- },
2410
- onMockedConnection: (connection) => {
2411
- if (!this.context.startOptions.quiet) {
2412
- attachWebSocketLogger(connection);
2413
- }
2414
- },
2415
- onPassthroughConnection() {
2416
- }
2417
- });
2418
- webSocketInterceptor.apply();
2419
- this.subscriptions.push(() => {
2420
- webSocketInterceptor.dispose();
2421
- });
2422
2497
  return await this.startHandler(this.context.startOptions, options);
2423
2498
  }
2424
2499
  stop() {