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
package/cli/init.js CHANGED
File without changes
File without changes
@@ -1,6 +1,5 @@
1
1
  import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler } from "../core/handlers/RequestHandler";
3
- import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
2
+ import { RequestHandler, RequestHandlerDefaultInfo } from "../core/handlers/RequestHandler";
4
3
  import { SetupApi } from "../core/SetupApi";
5
4
 
6
5
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
@@ -55,7 +54,7 @@ interface SetupWorker {
55
54
  *
56
55
  * @see {@link https://mswjs.io/docs/api/setup-worker/use `worker.use()` API reference}
57
56
  */
58
- use: (...handlers: Array<RequestHandler | WebSocketHandler>) => void;
57
+ use: (...handlers: RequestHandler[]) => void;
59
58
  /**
60
59
  * Marks all request handlers that respond using `res.once()` as unused.
61
60
  *
@@ -68,13 +67,13 @@ interface SetupWorker {
68
67
  *
69
68
  * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()` API reference}
70
69
  */
71
- resetHandlers: (...nextHandlers: Array<RequestHandler | WebSocketHandler>) => void;
70
+ resetHandlers: (...nextHandlers: RequestHandler[]) => void;
72
71
  /**
73
72
  * Returns a readonly list of currently active request handlers.
74
73
  *
75
74
  * @see {@link https://mswjs.io/docs/api/setup-worker/list-handlers `worker.listHandlers()` API reference}
76
75
  */
77
- listHandlers(): ReadonlyArray<RequestHandler | WebSocketHandler>;
76
+ listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
78
77
  /**
79
78
  * Life-cycle events.
80
79
  * Life-cycle events allow you to subscribe to the internal library events occurring during the request/response handling.
@@ -89,7 +88,7 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
89
88
  private startHandler;
90
89
  private stopHandler;
91
90
  private listeners;
92
- constructor(...handlers: Array<RequestHandler | WebSocketHandler>);
91
+ constructor(...handlers: Array<RequestHandler>);
93
92
  private createWorkerContext;
94
93
  start(options?: StartOptions): StartReturnType;
95
94
  stop(): void;
@@ -100,6 +99,6 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
100
99
  *
101
100
  * @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker()` API reference}
102
101
  */
103
- declare function setupWorker(...handlers: Array<RequestHandler | WebSocketHandler>): SetupWorker;
102
+ declare function setupWorker(...handlers: Array<RequestHandler>): SetupWorker;
104
103
 
105
104
  export { type SetupWorker, SetupWorkerApi, type StartOptions, setupWorker };
@@ -1,6 +1,5 @@
1
1
  import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler } from "../core/handlers/RequestHandler";
3
- import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
2
+ import { RequestHandler, RequestHandlerDefaultInfo } from "../core/handlers/RequestHandler";
4
3
  import { SetupApi } from "../core/SetupApi";
5
4
 
6
5
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
@@ -55,7 +54,7 @@ interface SetupWorker {
55
54
  *
56
55
  * @see {@link https://mswjs.io/docs/api/setup-worker/use `worker.use()` API reference}
57
56
  */
58
- use: (...handlers: Array<RequestHandler | WebSocketHandler>) => void;
57
+ use: (...handlers: RequestHandler[]) => void;
59
58
  /**
60
59
  * Marks all request handlers that respond using `res.once()` as unused.
61
60
  *
@@ -68,13 +67,13 @@ interface SetupWorker {
68
67
  *
69
68
  * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()` API reference}
70
69
  */
71
- resetHandlers: (...nextHandlers: Array<RequestHandler | WebSocketHandler>) => void;
70
+ resetHandlers: (...nextHandlers: RequestHandler[]) => void;
72
71
  /**
73
72
  * Returns a readonly list of currently active request handlers.
74
73
  *
75
74
  * @see {@link https://mswjs.io/docs/api/setup-worker/list-handlers `worker.listHandlers()` API reference}
76
75
  */
77
- listHandlers(): ReadonlyArray<RequestHandler | WebSocketHandler>;
76
+ listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
78
77
  /**
79
78
  * Life-cycle events.
80
79
  * Life-cycle events allow you to subscribe to the internal library events occurring during the request/response handling.
@@ -89,7 +88,7 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
89
88
  private startHandler;
90
89
  private stopHandler;
91
90
  private listeners;
92
- constructor(...handlers: Array<RequestHandler | WebSocketHandler>);
91
+ constructor(...handlers: Array<RequestHandler>);
93
92
  private createWorkerContext;
94
93
  start(options?: StartOptions): StartReturnType;
95
94
  stop(): void;
@@ -100,6 +99,6 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
100
99
  *
101
100
  * @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker()` API reference}
102
101
  */
103
- declare function setupWorker(...handlers: Array<RequestHandler | WebSocketHandler>): SetupWorker;
102
+ declare function setupWorker(...handlers: Array<RequestHandler>): SetupWorker;
104
103
 
105
104
  export { type SetupWorker, SetupWorkerApi, type StartOptions, setupWorker };
@@ -397,7 +397,7 @@ You can also automate this process and make the worker script update automatical
397
397
  }
398
398
  }
399
399
 
400
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
400
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-6HYIRFX2.mjs
401
401
  var encoder = new TextEncoder();
402
402
  function encodeBuffer(text) {
403
403
  return encoder.encode(text);
@@ -412,6 +412,17 @@ function toArrayBuffer(array) {
412
412
  array.byteOffset + array.byteLength
413
413
  );
414
414
  }
415
+
416
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-OMISYKWR.mjs
417
+ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
418
+ function isPropertyAccessible(obj, key) {
419
+ try {
420
+ obj[key];
421
+ return true;
422
+ } catch (e) {
423
+ return false;
424
+ }
425
+ }
415
426
  var RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([
416
427
  101,
417
428
  103,
@@ -422,9 +433,27 @@ var RESPONSE_STATUS_CODES_WITHOUT_BODY = /* @__PURE__ */ new Set([
422
433
  function isResponseWithoutBody(status) {
423
434
  return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);
424
435
  }
425
-
426
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-HAGW22AN.mjs
427
- var IS_PATCHED_MODULE = Symbol("isPatchedModule");
436
+ function createServerErrorResponse(body) {
437
+ return new Response(
438
+ JSON.stringify(
439
+ body instanceof Error ? {
440
+ name: body.name,
441
+ message: body.message,
442
+ stack: body.stack
443
+ } : body
444
+ ),
445
+ {
446
+ status: 500,
447
+ statusText: "Unhandled Exception",
448
+ headers: {
449
+ "Content-Type": "application/json"
450
+ }
451
+ }
452
+ );
453
+ }
454
+ function isResponseError(response) {
455
+ return isPropertyAccessible(response, "type") && response.type === "error";
456
+ }
428
457
 
429
458
  // node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
430
459
  var __defProp2 = Object.defineProperty;
@@ -863,7 +892,7 @@ var _Emitter = class {
863
892
  var Emitter = _Emitter;
864
893
  Emitter.defaultMaxListeners = 10;
865
894
 
866
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
895
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
867
896
  var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
868
897
  function getGlobalSymbol(symbol) {
869
898
  return (
@@ -1011,7 +1040,7 @@ function createRequestId() {
1011
1040
  return Math.random().toString(16).slice(2);
1012
1041
  }
1013
1042
 
1014
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1043
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1015
1044
  var BatchInterceptor = class extends Interceptor {
1016
1045
  constructor(options) {
1017
1046
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1295,7 +1324,7 @@ var DeferredPromise = class extends Promise {
1295
1324
  }
1296
1325
  };
1297
1326
 
1298
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1327
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1299
1328
  var RequestController = class {
1300
1329
  constructor(request) {
1301
1330
  this.request = request;
@@ -1333,15 +1362,7 @@ async function emitAsync(emitter, eventName, ...data) {
1333
1362
  }
1334
1363
  }
1335
1364
 
1336
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-3FNUI33J.mjs
1337
- function isPropertyAccessible(obj, key) {
1338
- try {
1339
- obj[key];
1340
- return true;
1341
- } catch (e) {
1342
- return false;
1343
- }
1344
- }
1365
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-MAEPOYB6.mjs
1345
1366
  function canParseUrl(url) {
1346
1367
  try {
1347
1368
  new URL(url);
@@ -1394,64 +1415,113 @@ var _FetchInterceptor = class extends Interceptor {
1394
1415
  { once: true }
1395
1416
  );
1396
1417
  }
1397
- const resolverResult = await until(async () => {
1398
- const listenersFinished = emitAsync(this.emitter, "request", {
1399
- request: interactiveRequest,
1400
- requestId
1418
+ const responsePromise = new DeferredPromise();
1419
+ const respondWith = (response) => {
1420
+ this.logger.info("responding with a mock response:", response);
1421
+ if (this.emitter.listenerCount("response") > 0) {
1422
+ this.logger.info('emitting the "response" event...');
1423
+ const responseClone = response.clone();
1424
+ this.emitter.emit("response", {
1425
+ response: responseClone,
1426
+ isMockedResponse: true,
1427
+ request: interactiveRequest,
1428
+ requestId
1429
+ });
1430
+ }
1431
+ Object.defineProperty(response, "url", {
1432
+ writable: false,
1433
+ enumerable: true,
1434
+ configurable: false,
1435
+ value: request.url
1401
1436
  });
1402
- await Promise.race([
1403
- requestAborted,
1404
- // Put the listeners invocation Promise in the same race condition
1405
- // with the request abort Promise because otherwise awaiting the listeners
1406
- // would always yield some response (or undefined).
1407
- listenersFinished,
1408
- requestController.responsePromise
1409
- ]);
1410
- this.logger.info("all request listeners have been resolved!");
1411
- const mockedResponse2 = await requestController.responsePromise;
1412
- this.logger.info("event.respondWith called with:", mockedResponse2);
1413
- return mockedResponse2;
1414
- });
1437
+ responsePromise.resolve(response);
1438
+ };
1439
+ const errorWith = (reason) => {
1440
+ responsePromise.reject(reason);
1441
+ };
1442
+ const resolverResult = await until(
1443
+ async () => {
1444
+ const listenersFinished = emitAsync(this.emitter, "request", {
1445
+ request: interactiveRequest,
1446
+ requestId
1447
+ });
1448
+ await Promise.race([
1449
+ requestAborted,
1450
+ // Put the listeners invocation Promise in the same race condition
1451
+ // with the request abort Promise because otherwise awaiting the listeners
1452
+ // would always yield some response (or undefined).
1453
+ listenersFinished,
1454
+ requestController.responsePromise
1455
+ ]);
1456
+ this.logger.info("all request listeners have been resolved!");
1457
+ const mockedResponse2 = await requestController.responsePromise;
1458
+ this.logger.info("event.respondWith called with:", mockedResponse2);
1459
+ return mockedResponse2;
1460
+ }
1461
+ );
1415
1462
  if (requestAborted.state === "rejected") {
1416
- return Promise.reject(requestAborted.rejectionReason);
1463
+ this.logger.info(
1464
+ "request has been aborted:",
1465
+ requestAborted.rejectionReason
1466
+ );
1467
+ responsePromise.reject(requestAborted.rejectionReason);
1468
+ return responsePromise;
1417
1469
  }
1418
1470
  if (resolverResult.error) {
1419
- return Promise.reject(createNetworkError(resolverResult.error));
1471
+ this.logger.info(
1472
+ "request listerner threw an error:",
1473
+ resolverResult.error
1474
+ );
1475
+ if (resolverResult.error instanceof Response) {
1476
+ if (isResponseError(resolverResult.error)) {
1477
+ errorWith(createNetworkError(resolverResult.error));
1478
+ } else {
1479
+ respondWith(resolverResult.error);
1480
+ }
1481
+ }
1482
+ if (this.emitter.listenerCount("unhandledException") > 0) {
1483
+ await emitAsync(this.emitter, "unhandledException", {
1484
+ error: resolverResult.error,
1485
+ request,
1486
+ requestId,
1487
+ controller: {
1488
+ respondWith,
1489
+ errorWith
1490
+ }
1491
+ });
1492
+ if (responsePromise.state !== "pending") {
1493
+ return responsePromise;
1494
+ }
1495
+ }
1496
+ respondWith(createServerErrorResponse(resolverResult.error));
1497
+ return responsePromise;
1420
1498
  }
1421
1499
  const mockedResponse = resolverResult.data;
1422
1500
  if (mockedResponse && !((_a = request.signal) == null ? void 0 : _a.aborted)) {
1423
1501
  this.logger.info("received mocked response:", mockedResponse);
1424
- if (isPropertyAccessible(mockedResponse, "type") && mockedResponse.type === "error") {
1502
+ if (isResponseError(mockedResponse)) {
1425
1503
  this.logger.info(
1426
1504
  "received a network error response, rejecting the request promise..."
1427
1505
  );
1428
- return Promise.reject(createNetworkError(mockedResponse));
1506
+ errorWith(createNetworkError(mockedResponse));
1507
+ } else {
1508
+ respondWith(mockedResponse);
1429
1509
  }
1430
- const responseClone = mockedResponse.clone();
1431
- this.emitter.emit("response", {
1432
- response: responseClone,
1433
- isMockedResponse: true,
1434
- request: interactiveRequest,
1435
- requestId
1436
- });
1437
- Object.defineProperty(mockedResponse, "url", {
1438
- writable: false,
1439
- enumerable: true,
1440
- configurable: false,
1441
- value: request.url
1442
- });
1443
- return mockedResponse;
1510
+ return responsePromise;
1444
1511
  }
1445
1512
  this.logger.info("no mocked response received!");
1446
1513
  return pureFetch(request).then((response) => {
1447
- const responseClone = response.clone();
1448
- this.logger.info("original fetch performed", responseClone);
1449
- this.emitter.emit("response", {
1450
- response: responseClone,
1451
- isMockedResponse: false,
1452
- request: interactiveRequest,
1453
- requestId
1454
- });
1514
+ this.logger.info("original fetch performed", response);
1515
+ if (this.emitter.listenerCount("response") > 0) {
1516
+ this.logger.info('emitting the "response" event...');
1517
+ const responseClone = response.clone();
1518
+ this.emitter.emit("response", {
1519
+ response: responseClone,
1520
+ isMockedResponse: false,
1521
+ request: interactiveRequest,
1522
+ requestId
1523
+ });
1524
+ }
1455
1525
  return response;
1456
1526
  });
1457
1527
  };
@@ -1480,7 +1550,7 @@ function createNetworkError(cause) {
1480
1550
  });
1481
1551
  }
1482
1552
 
1483
- // node_modules/.pnpm/@mswjs+interceptors@0.27.1/node_modules/@mswjs/interceptors/lib/browser/chunk-VYFS2IF2.mjs
1553
+ // node_modules/.pnpm/@mswjs+interceptors@0.29.0/node_modules/@mswjs/interceptors/lib/browser/chunk-732REFPX.mjs
1484
1554
  function concatArrayBuffer(left, right) {
1485
1555
  const result = new Uint8Array(left.byteLength + right.byteLength);
1486
1556
  result.set(left, 0);
@@ -2131,7 +2201,31 @@ function createXMLHttpRequestProxy({
2131
2201
  "request listener threw an exception, aborting request...",
2132
2202
  resolverResult.error
2133
2203
  );
2134
- xhrRequestController.errorWith(resolverResult.error);
2204
+ if (resolverResult.error instanceof Response) {
2205
+ if (isResponseError(resolverResult.error)) {
2206
+ xhrRequestController.errorWith(new TypeError("Network error"));
2207
+ } else {
2208
+ this.respondWith(resolverResult.error);
2209
+ }
2210
+ return;
2211
+ }
2212
+ if (emitter.listenerCount("unhandledException") > 0) {
2213
+ await emitAsync(emitter, "unhandledException", {
2214
+ error: resolverResult.error,
2215
+ request,
2216
+ requestId,
2217
+ controller: {
2218
+ respondWith: xhrRequestController.respondWith.bind(xhrRequestController),
2219
+ errorWith: xhrRequestController.errorWith.bind(xhrRequestController)
2220
+ }
2221
+ });
2222
+ if (originalRequest.readyState > XMLHttpRequest.OPENED) {
2223
+ return;
2224
+ }
2225
+ }
2226
+ xhrRequestController.respondWith(
2227
+ createServerErrorResponse(resolverResult.error)
2228
+ );
2135
2229
  return;
2136
2230
  }
2137
2231
  const mockedResponse = resolverResult.data;
@@ -2141,7 +2235,7 @@ function createXMLHttpRequestProxy({
2141
2235
  mockedResponse.status,
2142
2236
  mockedResponse.statusText
2143
2237
  );
2144
- if (mockedResponse.type === "error") {
2238
+ if (isResponseError(mockedResponse)) {
2145
2239
  this.logger.info(
2146
2240
  "received a network error response, rejecting the request promise..."
2147
2241
  );
@@ -2312,9 +2406,6 @@ function supportsReadableStreamTransfer() {
2312
2406
  }
2313
2407
 
2314
2408
  // src/browser/setupWorker/setupWorker.ts
2315
- var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor.js");
2316
- var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent.js");
2317
- var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger.js");
2318
2409
  var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2319
2410
  context;
2320
2411
  startHandler = null;
@@ -2430,22 +2521,6 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2430
2521
  DEFAULT_START_OPTIONS,
2431
2522
  options
2432
2523
  );
2433
- (0, import_handleWebSocketEvent.handleWebSocketEvent)({
2434
- getHandlers: () => {
2435
- return this.handlersController.currentHandlers();
2436
- },
2437
- onMockedConnection: (connection) => {
2438
- if (!this.context.startOptions.quiet) {
2439
- (0, import_attachWebSocketLogger.attachWebSocketLogger)(connection);
2440
- }
2441
- },
2442
- onPassthroughConnection() {
2443
- }
2444
- });
2445
- import_webSocketInterceptor.webSocketInterceptor.apply();
2446
- this.subscriptions.push(() => {
2447
- import_webSocketInterceptor.webSocketInterceptor.dispose();
2448
- });
2449
2524
  return await this.startHandler(this.context.startOptions, options);
2450
2525
  }
2451
2526
  stop() {