msw 2.3.0-ws.rc-1 → 2.3.0-ws.rc-3

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 (194) hide show
  1. package/README.md +8 -3
  2. package/cli/init.js +1 -1
  3. package/lib/browser/index.d.mts +4 -4
  4. package/lib/browser/index.js +65 -60
  5. package/lib/browser/index.js.map +1 -1
  6. package/lib/browser/index.mjs +65 -60
  7. package/lib/browser/index.mjs.map +1 -1
  8. package/lib/core/{GraphQLHandler-QGQY_9Rc.d.mts → GraphQLHandler-CzcXr7At.d.mts} +3 -3
  9. package/lib/core/{GraphQLHandler-Cbu12sb0.d.ts → GraphQLHandler-DGyzNtRQ.d.ts} +3 -3
  10. package/lib/core/{HttpResponse-BWB1yDNM.d.mts → HttpResponse-BOzDwzB6.d.ts} +3 -3
  11. package/lib/core/{HttpResponse-DeJBWGN5.d.ts → HttpResponse-CSyJ1cbO.d.mts} +3 -3
  12. package/lib/core/HttpResponse.d.mts +1 -1
  13. package/lib/core/HttpResponse.d.ts +1 -1
  14. package/lib/core/HttpResponse.js.map +1 -1
  15. package/lib/core/HttpResponse.mjs.map +1 -1
  16. package/lib/core/SetupApi.d.mts +1 -1
  17. package/lib/core/SetupApi.d.ts +1 -1
  18. package/lib/core/bypass.js +6 -1
  19. package/lib/core/bypass.js.map +1 -1
  20. package/lib/core/bypass.mjs +6 -1
  21. package/lib/core/bypass.mjs.map +1 -1
  22. package/lib/core/getResponse.d.mts +1 -1
  23. package/lib/core/getResponse.d.ts +1 -1
  24. package/lib/core/getResponse.js +2 -2
  25. package/lib/core/getResponse.js.map +1 -1
  26. package/lib/core/getResponse.mjs +2 -2
  27. package/lib/core/getResponse.mjs.map +1 -1
  28. package/lib/core/graphql.d.mts +8 -6
  29. package/lib/core/graphql.d.ts +8 -6
  30. package/lib/core/graphql.js.map +1 -1
  31. package/lib/core/graphql.mjs.map +1 -1
  32. package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
  33. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  34. package/lib/core/handlers/GraphQLHandler.js.map +1 -1
  35. package/lib/core/handlers/GraphQLHandler.mjs.map +1 -1
  36. package/lib/core/handlers/HttpHandler.d.mts +1 -1
  37. package/lib/core/handlers/HttpHandler.d.ts +1 -1
  38. package/lib/core/handlers/HttpHandler.js +1 -1
  39. package/lib/core/handlers/HttpHandler.js.map +1 -1
  40. package/lib/core/handlers/HttpHandler.mjs +1 -1
  41. package/lib/core/handlers/HttpHandler.mjs.map +1 -1
  42. package/lib/core/handlers/RequestHandler.d.mts +1 -1
  43. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  44. package/lib/core/handlers/WebSocketHandler.d.mts +11 -17
  45. package/lib/core/handlers/WebSocketHandler.d.ts +11 -17
  46. package/lib/core/handlers/WebSocketHandler.js +9 -12
  47. package/lib/core/handlers/WebSocketHandler.js.map +1 -1
  48. package/lib/core/handlers/WebSocketHandler.mjs +9 -12
  49. package/lib/core/handlers/WebSocketHandler.mjs.map +1 -1
  50. package/lib/core/http.d.mts +1 -1
  51. package/lib/core/http.d.ts +1 -1
  52. package/lib/core/index.d.mts +5 -5
  53. package/lib/core/index.d.ts +5 -5
  54. package/lib/core/index.js +3 -1
  55. package/lib/core/index.js.map +1 -1
  56. package/lib/core/index.mjs +5 -1
  57. package/lib/core/index.mjs.map +1 -1
  58. package/lib/core/passthrough.d.mts +1 -1
  59. package/lib/core/passthrough.d.ts +1 -1
  60. package/lib/core/typeUtils.d.mts +6 -1
  61. package/lib/core/typeUtils.d.ts +6 -1
  62. package/lib/core/typeUtils.js.map +1 -1
  63. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  64. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  65. package/lib/core/utils/HttpResponse/decorators.js +4 -1
  66. package/lib/core/utils/HttpResponse/decorators.js.map +1 -1
  67. package/lib/core/utils/HttpResponse/decorators.mjs +4 -1
  68. package/lib/core/utils/HttpResponse/decorators.mjs.map +1 -1
  69. package/lib/core/utils/executeHandlers.d.mts +1 -1
  70. package/lib/core/utils/executeHandlers.d.ts +1 -1
  71. package/lib/core/utils/handleRequest.d.mts +1 -1
  72. package/lib/core/utils/handleRequest.d.ts +1 -1
  73. package/lib/core/utils/handleRequest.js.map +1 -1
  74. package/lib/core/utils/handleRequest.mjs.map +1 -1
  75. package/lib/core/utils/internal/mergeRight.js +15 -12
  76. package/lib/core/utils/internal/mergeRight.js.map +1 -1
  77. package/lib/core/utils/internal/mergeRight.mjs +15 -12
  78. package/lib/core/utils/internal/mergeRight.mjs.map +1 -1
  79. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
  80. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  81. package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
  82. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  83. package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
  84. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  85. package/lib/core/utils/logging/getTimestamp.d.mts +4 -1
  86. package/lib/core/utils/logging/getTimestamp.d.ts +4 -1
  87. package/lib/core/utils/logging/getTimestamp.js +6 -2
  88. package/lib/core/utils/logging/getTimestamp.js.map +1 -1
  89. package/lib/core/utils/logging/getTimestamp.mjs +6 -2
  90. package/lib/core/utils/logging/getTimestamp.mjs.map +1 -1
  91. package/lib/core/ws/handleWebSocketEvent.d.mts +16 -0
  92. package/lib/core/ws/handleWebSocketEvent.d.ts +16 -0
  93. package/lib/core/{utils → ws}/handleWebSocketEvent.js +21 -18
  94. package/lib/core/ws/handleWebSocketEvent.js.map +1 -0
  95. package/lib/core/ws/handleWebSocketEvent.mjs +39 -0
  96. package/lib/core/ws/handleWebSocketEvent.mjs.map +1 -0
  97. package/lib/core/ws/utils/attachWebSocketLogger.d.mts +34 -0
  98. package/lib/core/ws/utils/attachWebSocketLogger.d.ts +34 -0
  99. package/lib/core/ws/utils/attachWebSocketLogger.js +211 -0
  100. package/lib/core/ws/utils/attachWebSocketLogger.js.map +1 -0
  101. package/lib/core/ws/utils/attachWebSocketLogger.mjs +191 -0
  102. package/lib/core/ws/utils/attachWebSocketLogger.mjs.map +1 -0
  103. package/lib/core/ws/utils/getMessageLength.d.mts +11 -0
  104. package/lib/core/ws/utils/getMessageLength.d.ts +11 -0
  105. package/lib/core/ws/utils/getMessageLength.js +33 -0
  106. package/lib/core/ws/utils/getMessageLength.js.map +1 -0
  107. package/lib/core/ws/utils/getMessageLength.mjs +13 -0
  108. package/lib/core/ws/utils/getMessageLength.mjs.map +1 -0
  109. package/lib/core/ws/utils/getPublicData.d.mts +5 -0
  110. package/lib/core/ws/utils/getPublicData.d.ts +5 -0
  111. package/lib/core/ws/utils/getPublicData.js +36 -0
  112. package/lib/core/ws/utils/getPublicData.js.map +1 -0
  113. package/lib/core/ws/utils/getPublicData.mjs +16 -0
  114. package/lib/core/ws/utils/getPublicData.mjs.map +1 -0
  115. package/lib/core/ws/utils/truncateMessage.d.mts +3 -0
  116. package/lib/core/ws/utils/truncateMessage.d.ts +3 -0
  117. package/lib/core/{utils/internal/randomId.js → ws/utils/truncateMessage.js} +11 -7
  118. package/lib/core/ws/utils/truncateMessage.js.map +1 -0
  119. package/lib/core/ws/utils/truncateMessage.mjs +11 -0
  120. package/lib/core/ws/utils/truncateMessage.mjs.map +1 -0
  121. package/lib/core/{ws/ws.d.mts → ws.d.mts} +19 -14
  122. package/lib/core/{ws/ws.d.ts → ws.d.ts} +19 -14
  123. package/lib/core/{ws/ws.js → ws.js} +4 -23
  124. package/lib/core/ws.js.map +1 -0
  125. package/lib/core/{ws/ws.mjs → ws.mjs} +4 -23
  126. package/lib/core/ws.mjs.map +1 -0
  127. package/lib/iife/index.js +516 -256
  128. package/lib/iife/index.js.map +1 -1
  129. package/lib/mockServiceWorker.js +8 -11
  130. package/lib/native/index.d.mts +4 -4
  131. package/lib/native/index.js +9 -3
  132. package/lib/native/index.js.map +1 -1
  133. package/lib/native/index.mjs +9 -3
  134. package/lib/native/index.mjs.map +1 -1
  135. package/lib/node/index.d.mts +6 -6
  136. package/lib/node/index.d.ts +2 -2
  137. package/lib/node/index.js +9 -3
  138. package/lib/node/index.js.map +1 -1
  139. package/lib/node/index.mjs +9 -3
  140. package/lib/node/index.mjs.map +1 -1
  141. package/package.json +9 -12
  142. package/src/browser/setupWorker/glossary.ts +4 -1
  143. package/src/browser/setupWorker/setupWorker.ts +20 -3
  144. package/src/browser/setupWorker/start/createRequestListener.ts +1 -1
  145. package/src/browser/setupWorker/start/createStartHandler.ts +9 -19
  146. package/src/browser/setupWorker/start/utils/createMessageChannel.ts +1 -1
  147. package/src/browser/utils/checkWorkerIntegrity.ts +34 -0
  148. package/src/core/HttpResponse.ts +3 -2
  149. package/src/core/bypass.test.ts +22 -0
  150. package/src/core/bypass.ts +9 -1
  151. package/src/core/getResponse.ts +2 -2
  152. package/src/core/graphql.ts +6 -3
  153. package/src/core/handlers/GraphQLHandler.test.ts +4 -5
  154. package/src/core/handlers/GraphQLHandler.ts +7 -4
  155. package/src/core/handlers/HttpHandler.test.ts +5 -5
  156. package/src/core/handlers/HttpHandler.ts +1 -1
  157. package/src/core/handlers/WebSocketHandler.ts +21 -39
  158. package/src/core/index.ts +7 -3
  159. package/src/core/typeUtils.ts +16 -10
  160. package/src/core/utils/HttpResponse/decorators.ts +8 -4
  161. package/src/core/utils/handleRequest.test.ts +14 -14
  162. package/src/core/utils/handleRequest.ts +1 -1
  163. package/src/core/utils/internal/mergeRight.ts +16 -13
  164. package/src/core/utils/logging/getTimestamp.test.ts +20 -6
  165. package/src/core/utils/logging/getTimestamp.ts +11 -6
  166. package/src/core/ws/handleWebSocketEvent.ts +59 -0
  167. package/src/core/ws/utils/attachWebSocketLogger.ts +262 -0
  168. package/src/core/ws/utils/getMessageLength.test.ts +16 -0
  169. package/src/core/ws/utils/getMessageLength.ts +19 -0
  170. package/src/core/ws/utils/getPublicData.test.ts +38 -0
  171. package/src/core/ws/utils/getPublicData.ts +17 -0
  172. package/src/core/ws/utils/truncateMessage.test.ts +12 -0
  173. package/src/core/ws/utils/truncateMessage.ts +9 -0
  174. package/src/core/{ws/ws.ts → ws.ts} +49 -35
  175. package/src/mockServiceWorker.js +7 -10
  176. package/src/node/SetupServerApi.ts +4 -4
  177. package/src/node/SetupServerCommonApi.ts +7 -3
  178. package/src/node/glossary.ts +3 -3
  179. package/lib/core/utils/handleWebSocketEvent.d.mts +0 -10
  180. package/lib/core/utils/handleWebSocketEvent.d.ts +0 -10
  181. package/lib/core/utils/handleWebSocketEvent.js.map +0 -1
  182. package/lib/core/utils/handleWebSocketEvent.mjs +0 -40
  183. package/lib/core/utils/handleWebSocketEvent.mjs.map +0 -1
  184. package/lib/core/utils/internal/randomId.d.mts +0 -3
  185. package/lib/core/utils/internal/randomId.d.ts +0 -3
  186. package/lib/core/utils/internal/randomId.js.map +0 -1
  187. package/lib/core/utils/internal/randomId.mjs +0 -7
  188. package/lib/core/utils/internal/randomId.mjs.map +0 -1
  189. package/lib/core/ws/ws.js.map +0 -1
  190. package/lib/core/ws/ws.mjs.map +0 -1
  191. package/src/browser/utils/requestIntegrityCheck.ts +0 -23
  192. package/src/core/utils/handleWebSocketEvent.ts +0 -49
  193. package/src/core/utils/internal/randomId.ts +0 -3
  194. /package/src/core/{ws/ws.test.ts → ws.test.ts} +0 -0
package/README.md CHANGED
@@ -100,7 +100,7 @@ const worker = setupWorker(
100
100
  )
101
101
 
102
102
  // 3. Start request interception by starting the Service Worker.
103
- worker.start()
103
+ await worker.start()
104
104
  ```
105
105
 
106
106
  Performing a `GET https://github.com/octocat` request in your application will result into a mocked response that you can inspect in your browser's "Network" tab:
@@ -264,9 +264,14 @@ Mock Service Worker is trusted by hundreds of thousands of engineers around the
264
264
  <img src="media/sponsors/materialize.svg" alt="Materialize" height="64" />
265
265
  </a>
266
266
  </td>
267
- <td>
267
+ <td>
268
268
  <a href="https://trigger.dev/" target="_blank">
269
- <img src="media/sponsors/trigger-dev.png" alt="Trigger.dev" height="64" />
269
+ <img src="media/sponsors/trigger-dev.png" alt="Trigger.dev" height="64" />
270
+ </a>
271
+ </td>
272
+ <td>
273
+ <a href="https://vital.io/" target="_blank">
274
+ <img src="media/sponsors/vital.svg" alt="Vital" width="64" />
270
275
  </a>
271
276
  </td>
272
277
  </tr>
package/cli/init.js CHANGED
@@ -2,7 +2,7 @@ const fs = require('fs')
2
2
  const path = require('path')
3
3
  const chalk = require('chalk')
4
4
  const { until } = require('@open-draft/until')
5
- const confirm = require('@inquirer/confirm')
5
+ const confirm = require('@inquirer/confirm').default
6
6
  const invariant = require('./invariant')
7
7
  const { SERVICE_WORKER_BUILD_PATH } = require('../config/constants')
8
8
 
@@ -1,7 +1,7 @@
1
- import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from '~/core/sharedOptions';
2
- import { RequestHandler } from '~/core/handlers/RequestHandler';
3
- import { WebSocketHandler } from '~/core/handlers/WebSocketHandler';
4
- import { SetupApi } from '~/core/SetupApi';
1
+ import { SharedOptions, LifeCycleEventEmitter, LifeCycleEventsMap } from "../core/sharedOptions";
2
+ import { RequestHandler } from "../core/handlers/RequestHandler";
3
+ import { WebSocketHandler } from "../core/handlers/WebSocketHandler";
4
+ import { SetupApi } from "../core/SetupApi";
5
5
 
6
6
  type FindWorker = (scriptUrl: string, mockServiceWorkerUrl: string) => boolean;
7
7
  interface StartOptions extends SharedOptions {
@@ -122,6 +122,9 @@ function isNodeProcess() {
122
122
  return false;
123
123
  }
124
124
 
125
+ // src/browser/setupWorker/start/createStartHandler.ts
126
+ var import_devUtils7 = require("../core/utils/internal/devUtils.js");
127
+
125
128
  // node_modules/.pnpm/@open-draft+until@2.1.0/node_modules/@open-draft/until/lib/index.mjs
126
129
  var until = async (promise) => {
127
130
  try {
@@ -134,9 +137,6 @@ var until = async (promise) => {
134
137
  }
135
138
  };
136
139
 
137
- // src/browser/setupWorker/start/createStartHandler.ts
138
- var import_devUtils6 = require("../core/utils/internal/devUtils.js");
139
-
140
140
  // src/browser/setupWorker/start/utils/getWorkerInstance.ts
141
141
  var import_devUtils = require("../core/utils/internal/devUtils.js");
142
142
 
@@ -315,7 +315,7 @@ var createRequestListener = (context, options) => {
315
315
  context.emitter,
316
316
  {
317
317
  onPassthroughResponse() {
318
- messageChannel.postMessage("NOT_FOUND");
318
+ messageChannel.postMessage("PASSTHROUGH");
319
319
  },
320
320
  async onMockedResponse(response, { handler, parsedResult }) {
321
321
  const responseClone = response.clone();
@@ -379,21 +379,25 @@ This exception has been gracefully handled as a 500 response, however, it's stro
379
379
  };
380
380
  };
381
381
 
382
- // src/browser/utils/requestIntegrityCheck.ts
383
- async function requestIntegrityCheck(context, serviceWorker) {
382
+ // src/browser/utils/checkWorkerIntegrity.ts
383
+ var import_devUtils5 = require("../core/utils/internal/devUtils.js");
384
+ async function checkWorkerIntegrity(context) {
384
385
  context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
385
- const { payload: actualChecksum } = await context.events.once(
386
- "INTEGRITY_CHECK_RESPONSE"
387
- );
388
- if (actualChecksum !== "223d191a56023cd36aa88c802961b911") {
389
- throw new Error(
390
- `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"223d191a56023cd36aa88c802961b911"}).`
386
+ const { payload } = await context.events.once("INTEGRITY_CHECK_RESPONSE");
387
+ if (payload.checksum !== "26357c79639bfa20d64c0efca2a87423") {
388
+ import_devUtils5.devUtils.warn(
389
+ `The currently registered Service Worker has been generated by a different version of MSW (${payload.packageVersion}) and may not be fully compatible with the installed version.
390
+
391
+ It's recommended you update your worker script by running this command:
392
+
393
+ \u2022 npx msw init <PUBLIC_DIR>
394
+
395
+ You can also automate this process and make the worker script update automatically upon the library installations. Read more: https://mswjs.io/docs/cli/init.`
391
396
  );
392
397
  }
393
- return serviceWorker;
394
398
  }
395
399
 
396
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
400
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
397
401
  var encoder = new TextEncoder();
398
402
  function encodeBuffer(text) {
399
403
  return encoder.encode(text);
@@ -419,7 +423,7 @@ function isResponseWithoutBody(status) {
419
423
  return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);
420
424
  }
421
425
 
422
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-HAGW22AN.mjs
426
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-HAGW22AN.mjs
423
427
  var IS_PATCHED_MODULE = Symbol("isPatchedModule");
424
428
 
425
429
  // node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs
@@ -859,7 +863,8 @@ var _Emitter = class {
859
863
  var Emitter = _Emitter;
860
864
  Emitter.defaultMaxListeners = 10;
861
865
 
862
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-SGO3INLV.mjs
866
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-QED3Q6Z2.mjs
867
+ var INTERNAL_REQUEST_ID_HEADER_NAME = "x-interceptors-internal-request-id";
863
868
  function getGlobalSymbol(symbol) {
864
869
  return (
865
870
  // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587
@@ -1002,8 +1007,11 @@ var Interceptor = class {
1002
1007
  this.logger.info("cleared global instance!", this.symbol.description);
1003
1008
  }
1004
1009
  };
1010
+ function createRequestId() {
1011
+ return Math.random().toString(16).slice(2);
1012
+ }
1005
1013
 
1006
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1014
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1007
1015
  var BatchInterceptor = class extends Interceptor {
1008
1016
  constructor(options) {
1009
1017
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1085,10 +1093,10 @@ function createResponseListener(context) {
1085
1093
  }
1086
1094
 
1087
1095
  // src/browser/setupWorker/start/utils/validateWorkerScope.ts
1088
- var import_devUtils5 = require("../core/utils/internal/devUtils.js");
1096
+ var import_devUtils6 = require("../core/utils/internal/devUtils.js");
1089
1097
  function validateWorkerScope(registration, options) {
1090
1098
  if (!options?.quiet && !location.href.startsWith(registration.scope)) {
1091
- import_devUtils5.devUtils.warn(
1099
+ import_devUtils6.devUtils.warn(
1092
1100
  `Cannot intercept requests on this page because it's outside of the worker's scope ("${registration.scope}"). If you wish to mock API requests on this page, you must resolve this scope issue.
1093
1101
 
1094
1102
  - (Recommended) Register the worker at the root level ("/") of your application.
@@ -1114,14 +1122,14 @@ var createStartHandler = (context) => {
1114
1122
  );
1115
1123
  const [worker, registration] = instance;
1116
1124
  if (!worker) {
1117
- const missingWorkerMessage = customOptions?.findWorker ? import_devUtils6.devUtils.formatMessage(
1125
+ const missingWorkerMessage = customOptions?.findWorker ? import_devUtils7.devUtils.formatMessage(
1118
1126
  `Failed to locate the Service Worker registration using a custom "findWorker" predicate.
1119
1127
 
1120
1128
  Please ensure that the custom predicate properly locates the Service Worker registration at "%s".
1121
1129
  More details: https://mswjs.io/docs/api/setup-worker/start#findworker
1122
1130
  `,
1123
1131
  options.serviceWorker.url
1124
- ) : import_devUtils6.devUtils.formatMessage(
1132
+ ) : import_devUtils7.devUtils.formatMessage(
1125
1133
  `Failed to locate the Service Worker registration.
1126
1134
 
1127
1135
  This most likely means that the worker script URL "%s" cannot resolve against the actual public hostname (%s). This may happen if your application runs behind a proxy, or has a dynamic hostname.
@@ -1140,19 +1148,12 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
1140
1148
  }
1141
1149
  window.clearInterval(context.keepAliveInterval);
1142
1150
  });
1143
- const integrityCheckResult = await until(
1144
- () => requestIntegrityCheck(context, worker)
1145
- );
1146
- if (integrityCheckResult.error) {
1147
- import_devUtils6.devUtils.error(`Detected outdated Service Worker: ${integrityCheckResult.error.message}
1148
-
1149
- The mocking is still enabled, but it's highly recommended that you update your Service Worker by running:
1150
-
1151
- $ npx msw init <PUBLIC_DIR>
1152
-
1153
- This is necessary to ensure that the Service Worker is in sync with the library to guarantee its stability.
1154
- If this message still persists after updating, please report an issue: https://github.com/open-draft/msw/issues `);
1155
- }
1151
+ await checkWorkerIntegrity(context).catch((error2) => {
1152
+ import_devUtils7.devUtils.error(
1153
+ "Error while checking the worker script integrity. Please report this on GitHub (https://github.com/mswjs/msw/issues), including the original error below."
1154
+ );
1155
+ console.error(error2);
1156
+ });
1156
1157
  context.keepAliveInterval = window.setInterval(
1157
1158
  () => context.workerChannel.send("KEEPALIVE_REQUEST"),
1158
1159
  5e3
@@ -1183,16 +1184,16 @@ If this message still persists after updating, please report an issue: https://g
1183
1184
  };
1184
1185
 
1185
1186
  // src/browser/setupWorker/stop/createStop.ts
1186
- var import_devUtils8 = require("../core/utils/internal/devUtils.js");
1187
+ var import_devUtils9 = require("../core/utils/internal/devUtils.js");
1187
1188
 
1188
1189
  // src/browser/setupWorker/stop/utils/printStopMessage.ts
1189
- var import_devUtils7 = require("../core/utils/internal/devUtils.js");
1190
+ var import_devUtils8 = require("../core/utils/internal/devUtils.js");
1190
1191
  function printStopMessage(args = {}) {
1191
1192
  if (args.quiet) {
1192
1193
  return;
1193
1194
  }
1194
1195
  console.log(
1195
- `%c${import_devUtils7.devUtils.formatMessage("Mocking disabled.")}`,
1196
+ `%c${import_devUtils8.devUtils.formatMessage("Mocking disabled.")}`,
1196
1197
  "color:orangered;font-weight:bold;"
1197
1198
  );
1198
1199
  }
@@ -1201,7 +1202,7 @@ function printStopMessage(args = {}) {
1201
1202
  var createStop = (context) => {
1202
1203
  return function stop() {
1203
1204
  if (!context.isMockingEnabled) {
1204
- import_devUtils8.devUtils.warn(
1205
+ import_devUtils9.devUtils.warn(
1205
1206
  'Found a redundant "worker.stop()" call. Note that stopping the worker while mocking already stopped has no effect. Consider removing this "worker.stop()" call.'
1206
1207
  );
1207
1208
  return;
@@ -1294,7 +1295,7 @@ var DeferredPromise = class extends Promise {
1294
1295
  }
1295
1296
  };
1296
1297
 
1297
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1298
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-OUWBQF3Z.mjs
1298
1299
  var RequestController = class {
1299
1300
  constructor(request) {
1300
1301
  this.request = request;
@@ -1332,16 +1333,7 @@ async function emitAsync(emitter, eventName, ...data) {
1332
1333
  }
1333
1334
  }
1334
1335
 
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
1336
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-3FNUI33J.mjs
1345
1337
  function isPropertyAccessible(obj, key) {
1346
1338
  try {
1347
1339
  obj[key];
@@ -1365,7 +1357,7 @@ var _FetchInterceptor = class extends Interceptor {
1365
1357
  checkEnvironment() {
1366
1358
  return typeof globalThis !== "undefined" && typeof globalThis.fetch !== "undefined";
1367
1359
  }
1368
- setup() {
1360
+ async setup() {
1369
1361
  const pureFetch = globalThis.fetch;
1370
1362
  invariant(
1371
1363
  !pureFetch[IS_PATCHED_MODULE],
@@ -1373,7 +1365,7 @@ var _FetchInterceptor = class extends Interceptor {
1373
1365
  );
1374
1366
  globalThis.fetch = async (input, init) => {
1375
1367
  var _a;
1376
- const requestId = uuidv4();
1368
+ const requestId = createRequestId();
1377
1369
  const resolvedInput = typeof input === "string" && typeof location !== "undefined" && !canParseUrl(input) ? new URL(input, location.origin) : input;
1378
1370
  const request = new Request(resolvedInput, init);
1379
1371
  this.logger.info("[%s] %s", request.method, request.url);
@@ -1488,7 +1480,7 @@ function createNetworkError(cause) {
1488
1480
  });
1489
1481
  }
1490
1482
 
1491
- // node_modules/.pnpm/@mswjs+interceptors@0.26.8/node_modules/@mswjs/interceptors/lib/browser/chunk-6ZIL5FW4.mjs
1483
+ // node_modules/.pnpm/@mswjs+interceptors@0.26.15/node_modules/@mswjs/interceptors/lib/browser/chunk-VYFS2IF2.mjs
1492
1484
  function concatArrayBuffer(left, right) {
1493
1485
  const result = new Uint8Array(left.byteLength + right.byteLength);
1494
1486
  result.set(left, 0);
@@ -1682,7 +1674,7 @@ var XMLHttpRequestController = class {
1682
1674
  this.method = "GET";
1683
1675
  this.url = null;
1684
1676
  this.events = /* @__PURE__ */ new Map();
1685
- this.requestId = uuidv4();
1677
+ this.requestId = createRequestId();
1686
1678
  this.requestHeaders = new Headers();
1687
1679
  this.responseBuffer = new Uint8Array();
1688
1680
  this.request = createProxy(initialRequest, {
@@ -1764,7 +1756,10 @@ var XMLHttpRequestController = class {
1764
1756
  this.request.readyState
1765
1757
  );
1766
1758
  if (IS_NODE2) {
1767
- this.request.setRequestHeader("X-Request-Id", this.requestId);
1759
+ this.request.setRequestHeader(
1760
+ INTERNAL_REQUEST_ID_HEADER_NAME,
1761
+ this.requestId
1762
+ );
1768
1763
  }
1769
1764
  return invoke();
1770
1765
  }
@@ -2298,7 +2293,7 @@ function createFallbackStop(context) {
2298
2293
  }
2299
2294
 
2300
2295
  // src/browser/setupWorker/setupWorker.ts
2301
- var import_devUtils9 = require("../core/utils/internal/devUtils.js");
2296
+ var import_devUtils10 = require("../core/utils/internal/devUtils.js");
2302
2297
  var import_SetupApi = require("../core/SetupApi.js");
2303
2298
  var import_mergeRight2 = require("../core/utils/internal/mergeRight.js");
2304
2299
 
@@ -2318,7 +2313,8 @@ function supportsReadableStreamTransfer() {
2318
2313
 
2319
2314
  // src/browser/setupWorker/setupWorker.ts
2320
2315
  var import_webSocketInterceptor = require("../core/ws/webSocketInterceptor.js");
2321
- var import_handleWebSocketEvent = require("../core/utils/handleWebSocketEvent.js");
2316
+ var import_handleWebSocketEvent = require("../core/ws/handleWebSocketEvent.js");
2317
+ var import_attachWebSocketLogger = require("../core/ws/utils/attachWebSocketLogger.js");
2322
2318
  var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2323
2319
  context;
2324
2320
  startHandler = null;
@@ -2328,7 +2324,7 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2328
2324
  super(...handlers);
2329
2325
  invariant(
2330
2326
  !isNodeProcess(),
2331
- import_devUtils9.devUtils.formatMessage(
2327
+ import_devUtils10.devUtils.formatMessage(
2332
2328
  "Failed to execute `setupWorker` in a non-browser environment. Consider using `setupServer` for Node.js environment instead."
2333
2329
  )
2334
2330
  );
@@ -2426,7 +2422,7 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2426
2422
  }
2427
2423
  async start(options = {}) {
2428
2424
  if (options.waitUntilReady === true) {
2429
- import_devUtils9.devUtils.warn(
2425
+ import_devUtils10.devUtils.warn(
2430
2426
  'The "waitUntilReady" option has been deprecated. Please remove it from this "worker.start()" call. Follow the recommended Browser integration (https://mswjs.io/docs/integrations/browser) to eliminate any race conditions between the Service Worker registration and any requests made by your application on initial render.'
2431
2427
  );
2432
2428
  }
@@ -2434,8 +2430,17 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2434
2430
  DEFAULT_START_OPTIONS,
2435
2431
  options
2436
2432
  );
2437
- (0, import_handleWebSocketEvent.handleWebSocketEvent)(() => {
2438
- return this.handlersController.currentHandlers();
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
+ }
2439
2444
  });
2440
2445
  import_webSocketInterceptor.webSocketInterceptor.apply();
2441
2446
  this.subscriptions.push(() => {