msw 2.2.3 → 2.3.0-ws.rc-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/cli/init.js +0 -0
  2. package/config/scripts/postinstall.js +0 -0
  3. package/lib/browser/index.d.mts +7 -6
  4. package/lib/browser/index.d.ts +7 -6
  5. package/lib/browser/index.js +32 -15
  6. package/lib/browser/index.js.map +1 -1
  7. package/lib/browser/index.mjs +32 -15
  8. package/lib/browser/index.mjs.map +1 -1
  9. package/lib/core/{GraphQLHandler-jOzqbxSK.d.ts → GraphQLHandler-Cbu12sb0.d.ts} +1 -1
  10. package/lib/core/{GraphQLHandler-AenIUdwE.d.mts → GraphQLHandler-QGQY_9Rc.d.mts} +1 -1
  11. package/lib/core/{HttpResponse-wcp03c7-.d.mts → HttpResponse-BWB1yDNM.d.mts} +2 -2
  12. package/lib/core/{HttpResponse-_514VQ9z.d.ts → HttpResponse-DeJBWGN5.d.ts} +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 +15 -12
  16. package/lib/core/SetupApi.d.ts +15 -12
  17. package/lib/core/SetupApi.js +3 -1
  18. package/lib/core/SetupApi.js.map +1 -1
  19. package/lib/core/SetupApi.mjs +3 -1
  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/handlers/WebSocketHandler.d.mts +38 -0
  32. package/lib/core/handlers/WebSocketHandler.d.ts +38 -0
  33. package/lib/core/handlers/WebSocketHandler.js +65 -0
  34. package/lib/core/handlers/WebSocketHandler.js.map +1 -0
  35. package/lib/core/handlers/WebSocketHandler.mjs +47 -0
  36. package/lib/core/handlers/WebSocketHandler.mjs.map +1 -0
  37. package/lib/core/http.d.mts +1 -1
  38. package/lib/core/http.d.ts +1 -1
  39. package/lib/core/index.d.mts +5 -2
  40. package/lib/core/index.d.ts +5 -2
  41. package/lib/core/index.js +3 -1
  42. package/lib/core/index.js.map +1 -1
  43. package/lib/core/index.mjs +3 -1
  44. package/lib/core/index.mjs.map +1 -1
  45. package/lib/core/passthrough.d.mts +1 -1
  46. package/lib/core/passthrough.d.ts +1 -1
  47. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  48. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  49. package/lib/core/utils/executeHandlers.d.mts +1 -1
  50. package/lib/core/utils/executeHandlers.d.ts +1 -1
  51. package/lib/core/utils/executeHandlers.js +4 -0
  52. package/lib/core/utils/executeHandlers.js.map +1 -1
  53. package/lib/core/utils/executeHandlers.mjs +6 -0
  54. package/lib/core/utils/executeHandlers.mjs.map +1 -1
  55. package/lib/core/utils/handleRequest.d.mts +2 -2
  56. package/lib/core/utils/handleRequest.d.ts +2 -2
  57. package/lib/core/utils/handleRequest.js.map +1 -1
  58. package/lib/core/utils/handleRequest.mjs.map +1 -1
  59. package/lib/core/utils/handleWebSocketEvent.d.mts +10 -0
  60. package/lib/core/utils/handleWebSocketEvent.d.ts +10 -0
  61. package/lib/core/utils/handleWebSocketEvent.js +56 -0
  62. package/lib/core/utils/handleWebSocketEvent.js.map +1 -0
  63. package/lib/core/utils/handleWebSocketEvent.mjs +40 -0
  64. package/lib/core/utils/handleWebSocketEvent.mjs.map +1 -0
  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/matching/matchRequestUrl.d.mts +2 -1
  72. package/lib/core/utils/matching/matchRequestUrl.d.ts +2 -1
  73. package/lib/core/utils/matching/matchRequestUrl.js +4 -0
  74. package/lib/core/utils/matching/matchRequestUrl.js.map +1 -1
  75. package/lib/core/utils/matching/matchRequestUrl.mjs +4 -0
  76. package/lib/core/utils/matching/matchRequestUrl.mjs.map +1 -1
  77. package/lib/core/ws/WebSocketClientManager.d.mts +64 -0
  78. package/lib/core/ws/WebSocketClientManager.d.ts +64 -0
  79. package/lib/core/ws/WebSocketClientManager.js +123 -0
  80. package/lib/core/ws/WebSocketClientManager.js.map +1 -0
  81. package/lib/core/ws/WebSocketClientManager.mjs +103 -0
  82. package/lib/core/ws/WebSocketClientManager.mjs.map +1 -0
  83. package/lib/core/ws/webSocketInterceptor.d.mts +5 -0
  84. package/lib/core/ws/webSocketInterceptor.d.ts +5 -0
  85. package/lib/core/ws/webSocketInterceptor.js +26 -0
  86. package/lib/core/ws/webSocketInterceptor.js.map +1 -0
  87. package/lib/core/ws/webSocketInterceptor.mjs +6 -0
  88. package/lib/core/ws/webSocketInterceptor.mjs.map +1 -0
  89. package/lib/core/ws/ws.d.mts +44 -0
  90. package/lib/core/ws/ws.d.ts +44 -0
  91. package/lib/core/ws/ws.js +82 -0
  92. package/lib/core/ws/ws.js.map +1 -0
  93. package/lib/core/ws/ws.mjs +65 -0
  94. package/lib/core/ws/ws.mjs.map +1 -0
  95. package/lib/iife/index.js +703 -17
  96. package/lib/iife/index.js.map +1 -1
  97. package/lib/mockServiceWorker.js +1 -1
  98. package/lib/native/index.d.mts +6 -5
  99. package/lib/native/index.d.ts +6 -5
  100. package/lib/native/index.js +7 -0
  101. package/lib/native/index.js.map +1 -1
  102. package/lib/native/index.mjs +7 -0
  103. package/lib/native/index.mjs.map +1 -1
  104. package/lib/node/index.d.mts +8 -7
  105. package/lib/node/index.d.ts +8 -7
  106. package/lib/node/index.js +7 -0
  107. package/lib/node/index.js.map +1 -1
  108. package/lib/node/index.mjs +7 -0
  109. package/lib/node/index.mjs.map +1 -1
  110. package/package.json +27 -22
  111. package/src/browser/setupWorker/glossary.ts +10 -10
  112. package/src/browser/setupWorker/setupWorker.ts +17 -3
  113. package/src/core/SetupApi.ts +28 -20
  114. package/src/core/handlers/WebSocketHandler.ts +89 -0
  115. package/src/core/index.ts +3 -0
  116. package/src/core/utils/executeHandlers.ts +6 -2
  117. package/src/core/utils/handleRequest.ts +1 -2
  118. package/src/core/utils/handleWebSocketEvent.ts +49 -0
  119. package/src/core/utils/matching/matchRequestUrl.test.ts +44 -0
  120. package/src/core/utils/matching/matchRequestUrl.ts +4 -0
  121. package/src/core/ws/WebSocketClientManager.test.ts +159 -0
  122. package/src/core/ws/WebSocketClientManager.ts +170 -0
  123. package/src/core/ws/webSocketInterceptor.ts +3 -0
  124. package/src/core/ws/ws.test.ts +23 -0
  125. package/src/core/ws/ws.ts +108 -0
  126. package/src/node/SetupServerApi.ts +8 -7
  127. package/src/node/SetupServerCommonApi.ts +10 -1
  128. package/src/node/glossary.ts +5 -7
  129. package/src/node/setupServer.ts +2 -1
package/cli/init.js CHANGED
File without changes
File without changes
@@ -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 };
@@ -393,7 +393,7 @@ async function requestIntegrityCheck(context, serviceWorker) {
393
393
  return serviceWorker;
394
394
  }
395
395
 
396
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
396
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
397
397
  var encoder = new TextEncoder();
398
398
  function encodeBuffer(text) {
399
399
  return encoder.encode(text);
@@ -419,6 +419,9 @@ function isResponseWithoutBody(status) {
419
419
  return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);
420
420
  }
421
421
 
422
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-HAGW22AN.mjs
423
+ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
424
+
422
425
  // node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
423
426
  var __defProp2 = Object.defineProperty;
424
427
  var __export2 = (target, all) => {
@@ -856,8 +859,7 @@ var _Emitter = class {
856
859
  var Emitter = _Emitter;
857
860
  Emitter.defaultMaxListeners = 10;
858
861
 
859
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs
860
- var IS_PATCHED_MODULE = Symbol("isPatchedModule");
862
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-SGO3INLV.mjs
861
863
  function getGlobalSymbol(symbol) {
862
864
  return (
863
865
  // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587
@@ -1001,7 +1003,7 @@ var Interceptor = class {
1001
1003
  }
1002
1004
  };
1003
1005
 
1004
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1006
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1005
1007
  var BatchInterceptor = class extends Interceptor {
1006
1008
  constructor(options) {
1007
1009
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1292,14 +1294,7 @@ var DeferredPromise = class extends Promise {
1292
1294
  }
1293
1295
  };
1294
1296
 
1295
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-72HT65NX.mjs
1296
- function uuidv4() {
1297
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
1298
- const r = Math.random() * 16 | 0;
1299
- const v = c == "x" ? r : r & 3 | 8;
1300
- return v.toString(16);
1301
- });
1302
- }
1297
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1303
1298
  var RequestController = class {
1304
1299
  constructor(request) {
1305
1300
  this.request = request;
@@ -1337,7 +1332,16 @@ async function emitAsync(emitter, eventName, ...data) {
1337
1332
  }
1338
1333
  }
1339
1334
 
1340
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-XQZ6GVNB.mjs
1335
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-CEKC26XE.mjs
1336
+ function uuidv4() {
1337
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
1338
+ const r = Math.random() * 16 | 0;
1339
+ const v = c == "x" ? r : r & 3 | 8;
1340
+ return v.toString(16);
1341
+ });
1342
+ }
1343
+
1344
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-65OQZE6W.mjs
1341
1345
  function isPropertyAccessible(obj, key) {
1342
1346
  try {
1343
1347
  obj[key];
@@ -1484,7 +1488,7 @@ function createNetworkError(cause) {
1484
1488
  });
1485
1489
  }
1486
1490
 
1487
- // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-DZVB7JEV.mjs
1491
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-6ZIL5FW4.mjs
1488
1492
  function concatArrayBuffer(left, right) {
1489
1493
  const result = new Uint8Array(left.byteLength + right.byteLength);
1490
1494
  result.set(left, 0);
@@ -2083,7 +2087,11 @@ function createXMLHttpRequestProxy({
2083
2087
  const XMLHttpRequestProxy = new Proxy(globalThis.XMLHttpRequest, {
2084
2088
  construct(target, args, newTarget) {
2085
2089
  logger.info("constructed new XMLHttpRequest");
2086
- const originalRequest = Reflect.construct(target, args, newTarget);
2090
+ const originalRequest = Reflect.construct(
2091
+ target,
2092
+ args,
2093
+ newTarget
2094
+ );
2087
2095
  const prototypeDescriptors = Object.getOwnPropertyDescriptors(
2088
2096
  target.prototype
2089
2097
  );
@@ -2309,6 +2317,8 @@ function supportsReadableStreamTransfer() {
2309
2317
  }
2310
2318
 
2311
2319
  // src/browser/setupWorker/setupWorker.ts
2320
+ var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor.js");
2321
+ var import_handleWebSocketEvent = require("../core/utils/handleWebSocketEvent.js");
2312
2322
  var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2313
2323
  context;
2314
2324
  startHandler = null;
@@ -2424,6 +2434,13 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2424
2434
  DEFAULT_START_OPTIONS,
2425
2435
  options
2426
2436
  );
2437
+ (0, import_handleWebSocketEvent.handleWebSocketEvent)(() => {
2438
+ return this.handlersController.currentHandlers();
2439
+ });
2440
+ import_webSocketInterceptor.webSocketInterceptor.apply();
2441
+ this.subscriptions.push(() => {
2442
+ import_webSocketInterceptor.webSocketInterceptor.dispose();
2443
+ });
2427
2444
  return await this.startHandler(this.context.startOptions, options);
2428
2445
  }
2429
2446
  stop() {