msw 2.5.1 → 2.6.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 (190) hide show
  1. package/lib/browser/index.d.mts +7 -6
  2. package/lib/browser/index.d.ts +7 -6
  3. package/lib/browser/index.js +29 -1
  4. package/lib/browser/index.js.map +1 -1
  5. package/lib/browser/index.mjs +29 -1
  6. package/lib/browser/index.mjs.map +1 -1
  7. package/lib/core/{GraphQLHandler-ClMB0BOy.d.mts → GraphQLHandler-Doool6Q_.d.mts} +1 -1
  8. package/lib/core/{GraphQLHandler-D6mLMXGZ.d.ts → GraphQLHandler-udzgBRPf.d.ts} +1 -1
  9. package/lib/core/{HttpResponse-vn-Pb4Bi.d.mts → HttpResponse-BLGmJolh.d.mts} +1 -1
  10. package/lib/core/{HttpResponse-DaYkf3ml.d.ts → HttpResponse-Cgbkdkje.d.ts} +1 -1
  11. package/lib/core/HttpResponse.d.mts +1 -1
  12. package/lib/core/HttpResponse.d.ts +1 -1
  13. package/lib/core/SetupApi.d.mts +15 -12
  14. package/lib/core/SetupApi.d.ts +15 -12
  15. package/lib/core/SetupApi.js +3 -1
  16. package/lib/core/SetupApi.js.map +1 -1
  17. package/lib/core/SetupApi.mjs +3 -1
  18. package/lib/core/SetupApi.mjs.map +1 -1
  19. package/lib/core/getResponse.d.mts +1 -1
  20. package/lib/core/getResponse.d.ts +1 -1
  21. package/lib/core/graphql.d.mts +2 -2
  22. package/lib/core/graphql.d.ts +2 -2
  23. package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
  24. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  25. package/lib/core/handlers/HttpHandler.d.mts +1 -1
  26. package/lib/core/handlers/HttpHandler.d.ts +1 -1
  27. package/lib/core/handlers/RequestHandler.d.mts +1 -1
  28. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  29. package/lib/core/handlers/WebSocketHandler.d.mts +33 -0
  30. package/lib/core/handlers/WebSocketHandler.d.ts +33 -0
  31. package/lib/core/handlers/WebSocketHandler.js +120 -0
  32. package/lib/core/handlers/WebSocketHandler.js.map +1 -0
  33. package/lib/core/handlers/WebSocketHandler.mjs +102 -0
  34. package/lib/core/handlers/WebSocketHandler.mjs.map +1 -0
  35. package/lib/core/http.d.mts +1 -1
  36. package/lib/core/http.d.ts +1 -1
  37. package/lib/core/index.d.mts +5 -2
  38. package/lib/core/index.d.ts +5 -2
  39. package/lib/core/index.js +5 -1
  40. package/lib/core/index.js.map +1 -1
  41. package/lib/core/index.mjs +7 -1
  42. package/lib/core/index.mjs.map +1 -1
  43. package/lib/core/passthrough.d.mts +1 -1
  44. package/lib/core/passthrough.d.ts +1 -1
  45. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  46. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  47. package/lib/core/utils/executeHandlers.d.mts +1 -1
  48. package/lib/core/utils/executeHandlers.d.ts +1 -1
  49. package/lib/core/utils/executeHandlers.js +4 -0
  50. package/lib/core/utils/executeHandlers.js.map +1 -1
  51. package/lib/core/utils/executeHandlers.mjs +6 -0
  52. package/lib/core/utils/executeHandlers.mjs.map +1 -1
  53. package/lib/core/utils/handleRequest.d.mts +2 -2
  54. package/lib/core/utils/handleRequest.d.ts +2 -2
  55. package/lib/core/utils/handleRequest.js.map +1 -1
  56. package/lib/core/utils/handleRequest.mjs.map +1 -1
  57. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
  58. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  59. package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
  60. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  61. package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
  62. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  63. package/lib/core/utils/logging/getTimestamp.d.mts +4 -1
  64. package/lib/core/utils/logging/getTimestamp.d.ts +4 -1
  65. package/lib/core/utils/logging/getTimestamp.js +6 -2
  66. package/lib/core/utils/logging/getTimestamp.js.map +1 -1
  67. package/lib/core/utils/logging/getTimestamp.mjs +6 -2
  68. package/lib/core/utils/logging/getTimestamp.mjs.map +1 -1
  69. package/lib/core/utils/matching/matchRequestUrl.d.mts +2 -1
  70. package/lib/core/utils/matching/matchRequestUrl.d.ts +2 -1
  71. package/lib/core/utils/matching/matchRequestUrl.js +4 -0
  72. package/lib/core/utils/matching/matchRequestUrl.js.map +1 -1
  73. package/lib/core/utils/matching/matchRequestUrl.mjs +4 -0
  74. package/lib/core/utils/matching/matchRequestUrl.mjs.map +1 -1
  75. package/lib/core/ws/WebSocketClientManager.d.mts +63 -0
  76. package/lib/core/ws/WebSocketClientManager.d.ts +63 -0
  77. package/lib/core/ws/WebSocketClientManager.js +149 -0
  78. package/lib/core/ws/WebSocketClientManager.js.map +1 -0
  79. package/lib/core/ws/WebSocketClientManager.mjs +129 -0
  80. package/lib/core/ws/WebSocketClientManager.mjs.map +1 -0
  81. package/lib/core/ws/WebSocketClientStore.d.mts +13 -0
  82. package/lib/core/ws/WebSocketClientStore.d.ts +13 -0
  83. package/lib/core/ws/WebSocketClientStore.js +26 -0
  84. package/lib/core/ws/WebSocketClientStore.js.map +1 -0
  85. package/lib/core/ws/WebSocketClientStore.mjs +6 -0
  86. package/lib/core/ws/WebSocketClientStore.mjs.map +1 -0
  87. package/lib/core/ws/WebSocketIndexedDBClientStore.d.mts +15 -0
  88. package/lib/core/ws/WebSocketIndexedDBClientStore.d.ts +15 -0
  89. package/lib/core/ws/WebSocketIndexedDBClientStore.js +130 -0
  90. package/lib/core/ws/WebSocketIndexedDBClientStore.js.map +1 -0
  91. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs +110 -0
  92. package/lib/core/ws/WebSocketIndexedDBClientStore.mjs.map +1 -0
  93. package/lib/core/ws/WebSocketMemoryClientStore.d.mts +13 -0
  94. package/lib/core/ws/WebSocketMemoryClientStore.d.ts +13 -0
  95. package/lib/core/ws/WebSocketMemoryClientStore.js +41 -0
  96. package/lib/core/ws/WebSocketMemoryClientStore.js.map +1 -0
  97. package/lib/core/ws/WebSocketMemoryClientStore.mjs +21 -0
  98. package/lib/core/ws/WebSocketMemoryClientStore.mjs.map +1 -0
  99. package/lib/core/ws/handleWebSocketEvent.d.mts +19 -0
  100. package/lib/core/ws/handleWebSocketEvent.d.ts +19 -0
  101. package/lib/core/ws/handleWebSocketEvent.js +73 -0
  102. package/lib/core/ws/handleWebSocketEvent.js.map +1 -0
  103. package/lib/core/ws/handleWebSocketEvent.mjs +55 -0
  104. package/lib/core/ws/handleWebSocketEvent.mjs.map +1 -0
  105. package/lib/core/ws/utils/attachWebSocketLogger.d.mts +12 -0
  106. package/lib/core/ws/utils/attachWebSocketLogger.d.ts +12 -0
  107. package/lib/core/ws/utils/attachWebSocketLogger.js +198 -0
  108. package/lib/core/ws/utils/attachWebSocketLogger.js.map +1 -0
  109. package/lib/core/ws/utils/attachWebSocketLogger.mjs +178 -0
  110. package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +1 -0
  111. package/lib/core/ws/utils/getMessageLength.d.mts +11 -0
  112. package/lib/core/ws/utils/getMessageLength.d.ts +11 -0
  113. package/lib/core/ws/utils/getMessageLength.js +33 -0
  114. package/lib/core/ws/utils/getMessageLength.js.map +1 -0
  115. package/lib/core/ws/utils/getMessageLength.mjs +13 -0
  116. package/lib/core/ws/utils/getMessageLength.mjs.map +1 -0
  117. package/lib/core/ws/utils/getPublicData.d.mts +5 -0
  118. package/lib/core/ws/utils/getPublicData.d.ts +5 -0
  119. package/lib/core/ws/utils/getPublicData.js +36 -0
  120. package/lib/core/ws/utils/getPublicData.js.map +1 -0
  121. package/lib/core/ws/utils/getPublicData.mjs +16 -0
  122. package/lib/core/ws/utils/getPublicData.mjs.map +1 -0
  123. package/lib/core/ws/utils/truncateMessage.d.mts +3 -0
  124. package/lib/core/ws/utils/truncateMessage.d.ts +3 -0
  125. package/lib/core/ws/utils/truncateMessage.js +31 -0
  126. package/lib/core/ws/utils/truncateMessage.js.map +1 -0
  127. package/lib/core/ws/utils/truncateMessage.mjs +11 -0
  128. package/lib/core/ws/utils/truncateMessage.mjs.map +1 -0
  129. package/lib/core/ws/webSocketInterceptor.d.mts +5 -0
  130. package/lib/core/ws/webSocketInterceptor.d.ts +5 -0
  131. package/lib/core/ws/webSocketInterceptor.js +26 -0
  132. package/lib/core/ws/webSocketInterceptor.js.map +1 -0
  133. package/lib/core/ws/webSocketInterceptor.mjs +6 -0
  134. package/lib/core/ws/webSocketInterceptor.mjs.map +1 -0
  135. package/lib/core/ws.d.mts +75 -0
  136. package/lib/core/ws.d.ts +75 -0
  137. package/lib/core/ws.js +71 -0
  138. package/lib/core/ws.js.map +1 -0
  139. package/lib/core/ws.mjs +54 -0
  140. package/lib/core/ws.mjs.map +1 -0
  141. package/lib/iife/index.js +1413 -85
  142. package/lib/iife/index.js.map +1 -1
  143. package/lib/mockServiceWorker.js +1 -1
  144. package/lib/native/index.d.mts +6 -5
  145. package/lib/native/index.d.ts +6 -5
  146. package/lib/native/index.js +22 -4
  147. package/lib/native/index.js.map +1 -1
  148. package/lib/native/index.mjs +22 -4
  149. package/lib/native/index.mjs.map +1 -1
  150. package/lib/node/index.d.mts +8 -7
  151. package/lib/node/index.d.ts +8 -7
  152. package/lib/node/index.js +22 -4
  153. package/lib/node/index.js.map +1 -1
  154. package/lib/node/index.mjs +22 -4
  155. package/lib/node/index.mjs.map +1 -1
  156. package/package.json +10 -1
  157. package/src/browser/setupWorker/glossary.ts +10 -10
  158. package/src/browser/setupWorker/setupWorker.ts +32 -3
  159. package/src/browser/setupWorker/start/createRequestListener.ts +7 -1
  160. package/src/browser/setupWorker/start/createStartHandler.ts +5 -0
  161. package/src/browser/setupWorker/stop/createStop.ts +6 -0
  162. package/src/core/SetupApi.ts +28 -20
  163. package/src/core/handlers/WebSocketHandler.ts +142 -0
  164. package/src/core/index.ts +11 -1
  165. package/src/core/utils/executeHandlers.ts +6 -2
  166. package/src/core/utils/handleRequest.ts +1 -1
  167. package/src/core/utils/logging/getTimestamp.test.ts +20 -6
  168. package/src/core/utils/logging/getTimestamp.ts +11 -6
  169. package/src/core/utils/matching/matchRequestUrl.test.ts +44 -0
  170. package/src/core/utils/matching/matchRequestUrl.ts +4 -0
  171. package/src/core/ws/WebSocketClientManager.test.ts +164 -0
  172. package/src/core/ws/WebSocketClientManager.ts +211 -0
  173. package/src/core/ws/WebSocketClientStore.ts +14 -0
  174. package/src/core/ws/WebSocketIndexedDBClientStore.ts +145 -0
  175. package/src/core/ws/WebSocketMemoryClientStore.ts +27 -0
  176. package/src/core/ws/handleWebSocketEvent.ts +82 -0
  177. package/src/core/ws/utils/attachWebSocketLogger.ts +259 -0
  178. package/src/core/ws/utils/getMessageLength.test.ts +16 -0
  179. package/src/core/ws/utils/getMessageLength.ts +19 -0
  180. package/src/core/ws/utils/getPublicData.test.ts +38 -0
  181. package/src/core/ws/utils/getPublicData.ts +17 -0
  182. package/src/core/ws/utils/truncateMessage.test.ts +12 -0
  183. package/src/core/ws/utils/truncateMessage.ts +9 -0
  184. package/src/core/ws/webSocketInterceptor.ts +3 -0
  185. package/src/core/ws.test.ts +23 -0
  186. package/src/core/ws.ts +166 -0
  187. package/src/node/SetupServerApi.ts +8 -7
  188. package/src/node/SetupServerCommonApi.ts +29 -5
  189. package/src/node/glossary.ts +5 -7
  190. package/src/node/setupServer.ts +2 -1
@@ -1,5 +1,6 @@
1
1
  import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler, RequestHandlerDefaultInfo } from "../core/handlers/RequestHandler";
2
+ import { RequestHandler } from "../core/handlers/RequestHandler";
3
+ import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
3
4
  import { SetupApi } from "../core/SetupApi";
4
5
 
5
6
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
@@ -54,7 +55,7 @@ interface SetupWorker {
54
55
  *
55
56
  * @see {@link https://mswjs.io/docs/api/setup-worker/use `worker.use()` API reference}
56
57
  */
57
- use: (...handlers: RequestHandler[]) => void;
58
+ use: (...handlers: Array<RequestHandler | WebSocketHandler>) => void;
58
59
  /**
59
60
  * Marks all request handlers that respond using `res.once()` as unused.
60
61
  *
@@ -67,13 +68,13 @@ interface SetupWorker {
67
68
  *
68
69
  * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()` API reference}
69
70
  */
70
- resetHandlers: (...nextHandlers: RequestHandler[]) => void;
71
+ resetHandlers: (...nextHandlers: Array<RequestHandler | WebSocketHandler>) => void;
71
72
  /**
72
73
  * Returns a readonly list of currently active request handlers.
73
74
  *
74
75
  * @see {@link https://mswjs.io/docs/api/setup-worker/list-handlers `worker.listHandlers()` API reference}
75
76
  */
76
- listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
77
+ listHandlers(): ReadonlyArray<RequestHandler | WebSocketHandler>;
77
78
  /**
78
79
  * Life-cycle events.
79
80
  * Life-cycle events allow you to subscribe to the internal library events occurring during the request/response handling.
@@ -88,7 +89,7 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
88
89
  private startHandler;
89
90
  private stopHandler;
90
91
  private listeners;
91
- constructor(...handlers: Array<RequestHandler>);
92
+ constructor(...handlers: Array<RequestHandler | WebSocketHandler>);
92
93
  private createWorkerContext;
93
94
  start(options?: StartOptions): StartReturnType;
94
95
  stop(): void;
@@ -99,6 +100,6 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
99
100
  *
100
101
  * @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker()` API reference}
101
102
  */
102
- declare function setupWorker(...handlers: Array<RequestHandler>): SetupWorker;
103
+ declare function setupWorker(...handlers: Array<RequestHandler | WebSocketHandler>): SetupWorker;
103
104
 
104
105
  export { type SetupWorker, SetupWorkerApi, type StartOptions, setupWorker };
@@ -1,5 +1,6 @@
1
1
  import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
- import { RequestHandler, RequestHandlerDefaultInfo } from "../core/handlers/RequestHandler";
2
+ import { RequestHandler } from "../core/handlers/RequestHandler";
3
+ import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
3
4
  import { SetupApi } from "../core/SetupApi";
4
5
 
5
6
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
@@ -54,7 +55,7 @@ interface SetupWorker {
54
55
  *
55
56
  * @see {@link https://mswjs.io/docs/api/setup-worker/use `worker.use()` API reference}
56
57
  */
57
- use: (...handlers: RequestHandler[]) => void;
58
+ use: (...handlers: Array<RequestHandler | WebSocketHandler>) => void;
58
59
  /**
59
60
  * Marks all request handlers that respond using `res.once()` as unused.
60
61
  *
@@ -67,13 +68,13 @@ interface SetupWorker {
67
68
  *
68
69
  * @see {@link https://mswjs.io/docs/api/setup-worker/reset-handlers `worker.resetHandlers()` API reference}
69
70
  */
70
- resetHandlers: (...nextHandlers: RequestHandler[]) => void;
71
+ resetHandlers: (...nextHandlers: Array<RequestHandler | WebSocketHandler>) => void;
71
72
  /**
72
73
  * Returns a readonly list of currently active request handlers.
73
74
  *
74
75
  * @see {@link https://mswjs.io/docs/api/setup-worker/list-handlers `worker.listHandlers()` API reference}
75
76
  */
76
- listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
77
+ listHandlers(): ReadonlyArray<RequestHandler | WebSocketHandler>;
77
78
  /**
78
79
  * Life-cycle events.
79
80
  * Life-cycle events allow you to subscribe to the internal library events occurring during the request/response handling.
@@ -88,7 +89,7 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
88
89
  private startHandler;
89
90
  private stopHandler;
90
91
  private listeners;
91
- constructor(...handlers: Array<RequestHandler>);
92
+ constructor(...handlers: Array<RequestHandler | WebSocketHandler>);
92
93
  private createWorkerContext;
93
94
  start(options?: StartOptions): StartReturnType;
94
95
  stop(): void;
@@ -99,6 +100,6 @@ declare class SetupWorkerApi extends SetupApi<LifeCycleEventsMap> implements Set
99
100
  *
100
101
  * @see {@link https://mswjs.io/docs/api/setup-worker `setupWorker()` API reference}
101
102
  */
102
- declare function setupWorker(...handlers: Array<RequestHandler>): SetupWorker;
103
+ declare function setupWorker(...handlers: Array<RequestHandler | WebSocketHandler>): SetupWorker;
103
104
 
104
105
  export { type SetupWorker, SetupWorkerApi, type StartOptions, setupWorker };
@@ -299,6 +299,8 @@ function parseWorkerRequest(incomingRequest) {
299
299
 
300
300
  // src/browser/setupWorker/start/createRequestListener.ts
301
301
  var import_RequestHandler = require("../core/handlers/RequestHandler.js");
302
+ var import_HttpHandler = require("../core/handlers/HttpHandler.js");
303
+ var import_GraphQLHandler = require("../core/handlers/GraphQLHandler.js");
302
304
  var import_handleRequest = require("../core/utils/handleRequest.js");
303
305
  var import_devUtils4 = require("../core/utils/internal/devUtils.js");
304
306
  var import_toResponseInit = require("../core/utils/toResponseInit.js");
@@ -315,7 +317,9 @@ var createRequestListener = (context, options) => {
315
317
  await (0, import_handleRequest.handleRequest)(
316
318
  request,
317
319
  requestId,
318
- context.getRequestHandlers(),
320
+ context.getRequestHandlers().filter((handler) => {
321
+ return handler instanceof import_HttpHandler.HttpHandler || handler instanceof import_GraphQLHandler.GraphQLHandler;
322
+ }),
319
323
  options,
320
324
  context.emitter,
321
325
  {
@@ -1188,6 +1192,7 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
1188
1192
  context.workerChannel.send("CLIENT_CLOSED");
1189
1193
  }
1190
1194
  window.clearInterval(context.keepAliveInterval);
1195
+ window.postMessage({ type: "msw/worker:stop" });
1191
1196
  });
1192
1197
  await checkWorkerIntegrity(context).catch((error2) => {
1193
1198
  import_devUtils7.devUtils.error(
@@ -1251,6 +1256,7 @@ var createStop = (context) => {
1251
1256
  context.workerChannel.send("MOCK_DEACTIVATE");
1252
1257
  context.isMockingEnabled = false;
1253
1258
  window.clearInterval(context.keepAliveInterval);
1259
+ window.postMessage({ type: "msw/worker:stop" });
1254
1260
  printStopMessage({ quiet: context.startOptions?.quiet });
1255
1261
  };
1256
1262
  };
@@ -2579,6 +2585,9 @@ function supportsReadableStreamTransfer() {
2579
2585
  }
2580
2586
 
2581
2587
  // src/browser/setupWorker/setupWorker.ts
2588
+ var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor.js");
2589
+ var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent.js");
2590
+ var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger.js");
2582
2591
  var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2583
2592
  context;
2584
2593
  startHandler = null;
@@ -2694,6 +2703,25 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2694
2703
  DEFAULT_START_OPTIONS,
2695
2704
  options
2696
2705
  );
2706
+ (0, import_handleWebSocketEvent.handleWebSocketEvent)({
2707
+ getUnhandledRequestStrategy: () => {
2708
+ return this.context.startOptions.onUnhandledRequest;
2709
+ },
2710
+ getHandlers: () => {
2711
+ return this.handlersController.currentHandlers();
2712
+ },
2713
+ onMockedConnection: (connection) => {
2714
+ if (!this.context.startOptions.quiet) {
2715
+ (0, import_attachWebSocketLogger.attachWebSocketLogger)(connection);
2716
+ }
2717
+ },
2718
+ onPassthroughConnection() {
2719
+ }
2720
+ });
2721
+ import_webSocketInterceptor.webSocketInterceptor.apply();
2722
+ this.subscriptions.push(() => {
2723
+ import_webSocketInterceptor.webSocketInterceptor.dispose();
2724
+ });
2697
2725
  return await this.startHandler(this.context.startOptions, options);
2698
2726
  }
2699
2727
  stop() {