msw 2.0.14 → 2.1.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 (133) hide show
  1. package/cli/index.js +11 -3
  2. package/cli/init.js +126 -73
  3. package/config/scripts/postinstall.js +8 -20
  4. package/lib/browser/index.js +111 -176
  5. package/lib/browser/index.js.map +1 -1
  6. package/lib/browser/index.mjs +111 -179
  7. package/lib/browser/index.mjs.map +1 -1
  8. package/lib/core/{GraphQLHandler-JB4bsrLF.d.ts → GraphQLHandler-LZ8jH42-.d.ts} +1 -1
  9. package/lib/core/{GraphQLHandler-mT-MmgeB.d.mts → GraphQLHandler-c0pfLv8e.d.mts} +1 -1
  10. package/lib/core/HttpResponse.d.mts +1 -1
  11. package/lib/core/HttpResponse.d.ts +1 -1
  12. package/lib/core/{RequestHandler-rmY-HeFN.d.ts → RequestHandler-SdFwV297.d.ts} +8 -1
  13. package/lib/core/{RequestHandler-YiqamK0M.d.mts → RequestHandler-hEwneHZE.d.mts} +8 -1
  14. package/lib/core/SetupApi.d.mts +1 -1
  15. package/lib/core/SetupApi.d.ts +1 -1
  16. package/lib/core/SetupApi.js +5 -0
  17. package/lib/core/SetupApi.js.map +1 -1
  18. package/lib/core/SetupApi.mjs +5 -0
  19. package/lib/core/SetupApi.mjs.map +1 -1
  20. package/lib/core/delay.js +24 -46
  21. package/lib/core/delay.js.map +1 -1
  22. package/lib/core/delay.mjs +24 -46
  23. package/lib/core/delay.mjs.map +1 -1
  24. package/lib/core/graphql.d.mts +2 -2
  25. package/lib/core/graphql.d.ts +2 -2
  26. package/lib/core/graphql.js +3 -19
  27. package/lib/core/graphql.js.map +1 -1
  28. package/lib/core/graphql.mjs +3 -21
  29. package/lib/core/graphql.mjs.map +1 -1
  30. package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
  31. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  32. package/lib/core/handlers/GraphQLHandler.js +51 -77
  33. package/lib/core/handlers/GraphQLHandler.js.map +1 -1
  34. package/lib/core/handlers/GraphQLHandler.mjs +51 -77
  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 +29 -55
  39. package/lib/core/handlers/HttpHandler.js.map +1 -1
  40. package/lib/core/handlers/HttpHandler.mjs +29 -55
  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/RequestHandler.js +79 -103
  45. package/lib/core/handlers/RequestHandler.js.map +1 -1
  46. package/lib/core/handlers/RequestHandler.mjs +79 -105
  47. package/lib/core/handlers/RequestHandler.mjs.map +1 -1
  48. package/lib/core/http.d.mts +1 -1
  49. package/lib/core/http.d.ts +1 -1
  50. package/lib/core/index.d.mts +2 -2
  51. package/lib/core/index.d.ts +2 -2
  52. package/lib/core/sharedOptions.d.mts +1 -1
  53. package/lib/core/sharedOptions.d.ts +1 -1
  54. package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
  55. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  56. package/lib/core/utils/HttpResponse/decorators.js +7 -24
  57. package/lib/core/utils/HttpResponse/decorators.js.map +1 -1
  58. package/lib/core/utils/HttpResponse/decorators.mjs +7 -26
  59. package/lib/core/utils/HttpResponse/decorators.mjs.map +1 -1
  60. package/lib/core/utils/getResponse.d.mts +1 -1
  61. package/lib/core/utils/getResponse.d.ts +1 -1
  62. package/lib/core/utils/getResponse.js +11 -26
  63. package/lib/core/utils/getResponse.js.map +1 -1
  64. package/lib/core/utils/getResponse.mjs +11 -26
  65. package/lib/core/utils/getResponse.mjs.map +1 -1
  66. package/lib/core/utils/handleRequest.d.mts +1 -1
  67. package/lib/core/utils/handleRequest.d.ts +1 -1
  68. package/lib/core/utils/handleRequest.js +49 -72
  69. package/lib/core/utils/handleRequest.js.map +1 -1
  70. package/lib/core/utils/handleRequest.mjs +49 -72
  71. package/lib/core/utils/handleRequest.mjs.map +1 -1
  72. package/lib/core/utils/internal/Disposable.js +3 -27
  73. package/lib/core/utils/internal/Disposable.js.map +1 -1
  74. package/lib/core/utils/internal/Disposable.mjs +3 -27
  75. package/lib/core/utils/internal/Disposable.mjs.map +1 -1
  76. package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
  77. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  78. package/lib/core/utils/internal/parseGraphQLRequest.js +72 -112
  79. package/lib/core/utils/internal/parseGraphQLRequest.js.map +1 -1
  80. package/lib/core/utils/internal/parseGraphQLRequest.mjs +72 -113
  81. package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +1 -1
  82. package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
  83. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  84. package/lib/core/utils/internal/parseMultipartData.js +3 -4
  85. package/lib/core/utils/internal/parseMultipartData.js.map +1 -1
  86. package/lib/core/utils/internal/parseMultipartData.mjs +3 -4
  87. package/lib/core/utils/internal/parseMultipartData.mjs.map +1 -1
  88. package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
  89. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  90. package/lib/core/utils/internal/tryCatch.js +1 -1
  91. package/lib/core/utils/internal/tryCatch.js.map +1 -1
  92. package/lib/core/utils/internal/tryCatch.mjs +1 -1
  93. package/lib/core/utils/internal/tryCatch.mjs.map +1 -1
  94. package/lib/core/utils/logging/serializeRequest.js +9 -31
  95. package/lib/core/utils/logging/serializeRequest.js.map +1 -1
  96. package/lib/core/utils/logging/serializeRequest.mjs +9 -31
  97. package/lib/core/utils/logging/serializeRequest.mjs.map +1 -1
  98. package/lib/core/utils/logging/serializeResponse.js +11 -33
  99. package/lib/core/utils/logging/serializeResponse.js.map +1 -1
  100. package/lib/core/utils/logging/serializeResponse.mjs +11 -33
  101. package/lib/core/utils/logging/serializeResponse.mjs.map +1 -1
  102. package/lib/core/utils/request/getRequestCookies.js +9 -18
  103. package/lib/core/utils/request/getRequestCookies.js.map +1 -1
  104. package/lib/core/utils/request/getRequestCookies.mjs +9 -20
  105. package/lib/core/utils/request/getRequestCookies.mjs.map +1 -1
  106. package/lib/core/utils/request/onUnhandledRequest.d.mts +1 -1
  107. package/lib/core/utils/request/onUnhandledRequest.d.ts +1 -1
  108. package/lib/core/utils/request/onUnhandledRequest.js +62 -84
  109. package/lib/core/utils/request/onUnhandledRequest.js.map +1 -1
  110. package/lib/core/utils/request/onUnhandledRequest.mjs +62 -84
  111. package/lib/core/utils/request/onUnhandledRequest.mjs.map +1 -1
  112. package/lib/core/utils/request/readResponseCookies.js +1 -18
  113. package/lib/core/utils/request/readResponseCookies.js.map +1 -1
  114. package/lib/core/utils/request/readResponseCookies.mjs +1 -20
  115. package/lib/core/utils/request/readResponseCookies.mjs.map +1 -1
  116. package/lib/iife/index.js +678 -958
  117. package/lib/iife/index.js.map +1 -1
  118. package/lib/mockServiceWorker.js +2 -2
  119. package/lib/native/index.js +5 -23
  120. package/lib/native/index.js.map +1 -1
  121. package/lib/native/index.mjs +5 -24
  122. package/lib/native/index.mjs.map +1 -1
  123. package/lib/node/index.js +5 -23
  124. package/lib/node/index.js.map +1 -1
  125. package/lib/node/index.mjs +5 -24
  126. package/lib/node/index.mjs.map +1 -1
  127. package/package.json +32 -37
  128. package/src/browser/setupWorker/setupWorker.ts +6 -0
  129. package/src/browser/setupWorker/start/createStartHandler.ts +0 -8
  130. package/src/core/handlers/RequestHandler.ts +23 -4
  131. package/src/core/utils/getResponse.ts +12 -6
  132. package/src/core/utils/handleRequest.test.ts +20 -0
  133. package/src/core/utils/handleRequest.ts +4 -3
@@ -1,49 +1,9 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __async = (__this, __arguments, generator) => {
21
- return new Promise((resolve, reject) => {
22
- var fulfilled = (value) => {
23
- try {
24
- step(generator.next(value));
25
- } catch (e) {
26
- reject(e);
27
- }
28
- };
29
- var rejected = (value) => {
30
- try {
31
- step(generator.throw(value));
32
- } catch (e) {
33
- reject(e);
34
- }
35
- };
36
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
- step((generator = generator.apply(__this, __arguments)).next());
38
- });
39
- };
40
-
41
1
  // src/browser/setupWorker/setupWorker.ts
42
2
  import { invariant } from "outvariant";
43
3
  import { isNodeProcess } from "is-node-process";
44
4
 
45
5
  // src/browser/setupWorker/start/createStartHandler.ts
46
- import { until as until3 } from "@open-draft/until";
6
+ import { until as until2 } from "@open-draft/until";
47
7
  import { devUtils as devUtils6 } from '../core/utils/internal/devUtils.mjs';
48
8
 
49
9
  // src/browser/setupWorker/start/utils/getWorkerInstance.ts
@@ -72,9 +32,9 @@ function getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker) {
72
32
  }
73
33
 
74
34
  // src/browser/setupWorker/start/utils/getWorkerInstance.ts
75
- var getWorkerInstance = (_0, ..._1) => __async(void 0, [_0, ..._1], function* (url, options = {}, findWorker) {
35
+ var getWorkerInstance = async (url, options = {}, findWorker) => {
76
36
  const absoluteWorkerUrl = getAbsoluteWorkerUrl(url);
77
- const mockRegistrations = yield navigator.serviceWorker.getRegistrations().then(
37
+ const mockRegistrations = await navigator.serviceWorker.getRegistrations().then(
78
38
  (registrations) => registrations.filter(
79
39
  (registration) => getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker)
80
40
  )
@@ -95,21 +55,21 @@ var getWorkerInstance = (_0, ..._1) => __async(void 0, [_0, ..._1], function* (u
95
55
  ];
96
56
  });
97
57
  }
98
- const registrationResult = yield until(
99
- () => __async(void 0, null, function* () {
100
- const registration = yield navigator.serviceWorker.register(url, options);
58
+ const registrationResult = await until(
59
+ async () => {
60
+ const registration = await navigator.serviceWorker.register(url, options);
101
61
  return [
102
62
  // Compare existing worker registration by its worker URL,
103
63
  // to prevent irrelevant workers to resolve here (such as Codesandbox worker).
104
64
  getWorkerByRegistration(registration, absoluteWorkerUrl, findWorker),
105
65
  registration
106
66
  ];
107
- })
67
+ }
108
68
  );
109
69
  if (registrationResult.error) {
110
70
  const isWorkerMissing = registrationResult.error.message.includes("(404)");
111
71
  if (isWorkerMissing) {
112
- const scopeUrl = new URL((options == null ? void 0 : options.scope) || "/", location.href);
72
+ const scopeUrl = new URL(options?.scope || "/", location.href);
113
73
  throw new Error(
114
74
  devUtils.formatMessage(`Failed to register a Service Worker for scope ('${scopeUrl.href}') with script ('${absoluteWorkerUrl}'): Service Worker script does not exist at the given path.
115
75
 
@@ -126,7 +86,7 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
126
86
  );
127
87
  }
128
88
  return registrationResult.data;
129
- });
89
+ };
130
90
 
131
91
  // src/browser/setupWorker/start/utils/enableMocking.ts
132
92
  import { devUtils as devUtils3 } from '../core/utils/internal/devUtils.mjs';
@@ -158,23 +118,20 @@ function printStartMessage(args = {}) {
158
118
  }
159
119
 
160
120
  // src/browser/setupWorker/start/utils/enableMocking.ts
161
- function enableMocking(context, options) {
162
- return __async(this, null, function* () {
163
- var _a, _b;
164
- context.workerChannel.send("MOCK_ACTIVATE");
165
- yield context.events.once("MOCKING_ENABLED");
166
- if (context.isMockingEnabled) {
167
- devUtils3.warn(
168
- `Found a redundant "worker.start()" call. Note that starting the worker while mocking is already enabled will have no effect. Consider removing this "worker.start()" call.`
169
- );
170
- return;
171
- }
172
- context.isMockingEnabled = true;
173
- printStartMessage({
174
- quiet: options.quiet,
175
- workerScope: (_a = context.registration) == null ? void 0 : _a.scope,
176
- workerUrl: (_b = context.worker) == null ? void 0 : _b.scriptURL
177
- });
121
+ async function enableMocking(context, options) {
122
+ context.workerChannel.send("MOCK_ACTIVATE");
123
+ await context.events.once("MOCKING_ENABLED");
124
+ if (context.isMockingEnabled) {
125
+ devUtils3.warn(
126
+ `Found a redundant "worker.start()" call. Note that starting the worker while mocking is already enabled will have no effect. Consider removing this "worker.start()" call.`
127
+ );
128
+ return;
129
+ }
130
+ context.isMockingEnabled = true;
131
+ printStartMessage({
132
+ quiet: options.quiet,
133
+ workerScope: context.registration?.scope,
134
+ workerUrl: context.worker?.scriptURL
178
135
  });
179
136
  }
180
137
 
@@ -199,9 +156,10 @@ function pruneGetRequestBody(request) {
199
156
 
200
157
  // src/browser/utils/parseWorkerRequest.ts
201
158
  function parseWorkerRequest(incomingRequest) {
202
- return new Request(incomingRequest.url, __spreadProps(__spreadValues({}, incomingRequest), {
159
+ return new Request(incomingRequest.url, {
160
+ ...incomingRequest,
203
161
  body: pruneGetRequestBody(incomingRequest)
204
- }));
162
+ });
205
163
  }
206
164
 
207
165
  // src/browser/setupWorker/start/createRequestListener.ts
@@ -209,15 +167,13 @@ import { handleRequest } from '../core/utils/handleRequest.mjs';
209
167
  import { devUtils as devUtils4 } from '../core/utils/internal/devUtils.mjs';
210
168
  import { toResponseInit } from '../core/utils/toResponseInit.mjs';
211
169
  var createRequestListener = (context, options) => {
212
- return (event, message) => __async(void 0, null, function* () {
213
- var _b;
170
+ return async (event, message) => {
214
171
  const messageChannel = new WorkerChannel(event.ports[0]);
215
172
  const requestId = message.payload.id;
216
173
  const request = parseWorkerRequest(message.payload);
217
174
  const requestCloneForLogs = request.clone();
218
175
  try {
219
- let _a;
220
- yield handleRequest(
176
+ await handleRequest(
221
177
  request,
222
178
  requestId,
223
179
  context.requestHandlers,
@@ -227,36 +183,36 @@ var createRequestListener = (context, options) => {
227
183
  onPassthroughResponse() {
228
184
  messageChannel.postMessage("NOT_FOUND");
229
185
  },
230
- onMockedResponse(_0, _1) {
231
- return __async(this, arguments, function* (response, { handler, parsedResult }) {
232
- const responseClone = response.clone();
233
- const responseCloneForLogs = response.clone();
234
- const responseInit = toResponseInit(response);
235
- if (context.supports.readableStreamTransfer) {
236
- const responseStreamOrNull = response.body;
237
- messageChannel.postMessage(
238
- "MOCK_RESPONSE",
239
- __spreadProps(__spreadValues({}, responseInit), {
240
- body: responseStreamOrNull
241
- }),
242
- responseStreamOrNull ? [responseStreamOrNull] : void 0
243
- );
244
- } else {
245
- const responseBufferOrNull = response.body === null ? null : yield responseClone.arrayBuffer();
246
- messageChannel.postMessage("MOCK_RESPONSE", __spreadProps(__spreadValues({}, responseInit), {
247
- body: responseBufferOrNull
248
- }));
249
- }
250
- if (!options.quiet) {
251
- context.emitter.once("response:mocked", () => {
252
- handler.log({
253
- request: requestCloneForLogs,
254
- response: responseCloneForLogs,
255
- parsedResult
256
- });
186
+ async onMockedResponse(response, { handler, parsedResult }) {
187
+ const responseClone = response.clone();
188
+ const responseCloneForLogs = response.clone();
189
+ const responseInit = toResponseInit(response);
190
+ if (context.supports.readableStreamTransfer) {
191
+ const responseStreamOrNull = response.body;
192
+ messageChannel.postMessage(
193
+ "MOCK_RESPONSE",
194
+ {
195
+ ...responseInit,
196
+ body: responseStreamOrNull
197
+ },
198
+ responseStreamOrNull ? [responseStreamOrNull] : void 0
199
+ );
200
+ } else {
201
+ const responseBufferOrNull = response.body === null ? null : await responseClone.arrayBuffer();
202
+ messageChannel.postMessage("MOCK_RESPONSE", {
203
+ ...responseInit,
204
+ body: responseBufferOrNull
205
+ });
206
+ }
207
+ if (!options.quiet) {
208
+ context.emitter.once("response:mocked", () => {
209
+ handler.log({
210
+ request: requestCloneForLogs,
211
+ response: responseCloneForLogs,
212
+ parsedResult
257
213
  });
258
- }
259
- });
214
+ });
215
+ }
260
216
  }
261
217
  }
262
218
  );
@@ -270,7 +226,7 @@ var createRequestListener = (context, options) => {
270
226
  This exception has been gracefully handled as a 500 response, however, it's strongly recommended to resolve this error, as it indicates a mistake in your code. If you wish to mock an error response, please see this guide: https://mswjs.io/docs/recipes/mocking-error-responses`,
271
227
  request.method,
272
228
  request.url,
273
- (_b = error.stack) != null ? _b : error
229
+ error.stack ?? error
274
230
  );
275
231
  messageChannel.postMessage("MOCK_RESPONSE", {
276
232
  status: 500,
@@ -286,50 +242,29 @@ This exception has been gracefully handled as a 500 response, however, it's stro
286
242
  });
287
243
  }
288
244
  }
289
- });
245
+ };
290
246
  };
291
247
 
292
248
  // src/browser/utils/requestIntegrityCheck.ts
293
- function requestIntegrityCheck(context, serviceWorker) {
294
- return __async(this, null, function* () {
295
- context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
296
- const { payload: actualChecksum } = yield context.events.once(
297
- "INTEGRITY_CHECK_RESPONSE"
249
+ async function requestIntegrityCheck(context, serviceWorker) {
250
+ context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
251
+ const { payload: actualChecksum } = await context.events.once(
252
+ "INTEGRITY_CHECK_RESPONSE"
253
+ );
254
+ if (actualChecksum !== "223d191a56023cd36aa88c802961b911") {
255
+ throw new Error(
256
+ `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"223d191a56023cd36aa88c802961b911"}).`
298
257
  );
299
- if (actualChecksum !== "c5f7f8e188b673ea4e677df7ea3c5a39") {
300
- throw new Error(
301
- `Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"c5f7f8e188b673ea4e677df7ea3c5a39"}).`
302
- );
303
- }
304
- return serviceWorker;
305
- });
306
- }
307
-
308
- // src/browser/utils/deferNetworkRequestsUntil.ts
309
- import { until as until2 } from "@open-draft/until";
310
- function deferNetworkRequestsUntil(predicatePromise) {
311
- const originalXhrSend = window.XMLHttpRequest.prototype.send;
312
- window.XMLHttpRequest.prototype.send = function(...args) {
313
- until2(() => predicatePromise).then(() => {
314
- window.XMLHttpRequest.prototype.send = originalXhrSend;
315
- this.send(...args);
316
- });
317
- };
318
- const originalFetch = window.fetch;
319
- window.fetch = (...args) => __async(this, null, function* () {
320
- yield until2(() => predicatePromise);
321
- window.fetch = originalFetch;
322
- return window.fetch(...args);
323
- });
258
+ }
259
+ return serviceWorker;
324
260
  }
325
261
 
326
262
  // src/browser/setupWorker/start/createResponseListener.ts
327
263
  import { isResponseWithoutBody } from "@mswjs/interceptors";
328
264
  function createResponseListener(context) {
329
265
  return (_, message) => {
330
- var _a;
331
266
  const { payload: responseJson } = message;
332
- if ((_a = responseJson.type) == null ? void 0 : _a.includes("opaque")) {
267
+ if (responseJson.type?.includes("opaque")) {
333
268
  return;
334
269
  }
335
270
  const response = responseJson.status === 0 ? Response.error() : new Response(
@@ -360,7 +295,7 @@ function createResponseListener(context) {
360
295
  // src/browser/setupWorker/start/utils/validateWorkerScope.ts
361
296
  import { devUtils as devUtils5 } from '../core/utils/internal/devUtils.mjs';
362
297
  function validateWorkerScope(registration, options) {
363
- if (!(options == null ? void 0 : options.quiet) && !location.href.startsWith(registration.scope)) {
298
+ if (!options?.quiet && !location.href.startsWith(registration.scope)) {
364
299
  devUtils5.warn(
365
300
  `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.
366
301
 
@@ -373,21 +308,21 @@ function validateWorkerScope(registration, options) {
373
308
  // src/browser/setupWorker/start/createStartHandler.ts
374
309
  var createStartHandler = (context) => {
375
310
  return function start(options, customOptions) {
376
- const startWorkerInstance = () => __async(this, null, function* () {
311
+ const startWorkerInstance = async () => {
377
312
  context.events.removeAllListeners();
378
313
  context.workerChannel.on(
379
314
  "REQUEST",
380
315
  createRequestListener(context, options)
381
316
  );
382
317
  context.workerChannel.on("RESPONSE", createResponseListener(context));
383
- const instance = yield getWorkerInstance(
318
+ const instance = await getWorkerInstance(
384
319
  options.serviceWorker.url,
385
320
  options.serviceWorker.options,
386
321
  options.findWorker
387
322
  );
388
323
  const [worker, registration] = instance;
389
324
  if (!worker) {
390
- const missingWorkerMessage = (customOptions == null ? void 0 : customOptions.findWorker) ? devUtils6.formatMessage(
325
+ const missingWorkerMessage = customOptions?.findWorker ? devUtils6.formatMessage(
391
326
  `Failed to locate the Service Worker registration using a custom "findWorker" predicate.
392
327
 
393
328
  Please ensure that the custom predicate properly locates the Service Worker registration at "%s".
@@ -413,7 +348,7 @@ Please consider using a custom "serviceWorker.url" option to point to the actual
413
348
  }
414
349
  window.clearInterval(context.keepAliveInterval);
415
350
  });
416
- const integrityCheckResult = yield until3(
351
+ const integrityCheckResult = await until2(
417
352
  () => requestIntegrityCheck(context, worker)
418
353
  );
419
354
  if (integrityCheckResult.error) {
@@ -432,12 +367,12 @@ If this message still persists after updating, please report an issue: https://g
432
367
  );
433
368
  validateWorkerScope(registration, context.startOptions);
434
369
  return registration;
435
- });
370
+ };
436
371
  const workerRegistration = startWorkerInstance().then(
437
- (registration) => __async(this, null, function* () {
372
+ async (registration) => {
438
373
  const pendingInstance = registration.installing || registration.waiting;
439
374
  if (pendingInstance) {
440
- yield new Promise((resolve) => {
375
+ await new Promise((resolve) => {
441
376
  pendingInstance.addEventListener("statechange", () => {
442
377
  if (pendingInstance.state === "activated") {
443
378
  return resolve();
@@ -445,15 +380,12 @@ If this message still persists after updating, please report an issue: https://g
445
380
  });
446
381
  });
447
382
  }
448
- yield enableMocking(context, options).catch((error) => {
449
- throw new Error(`Failed to enable mocking: ${error == null ? void 0 : error.message}`);
383
+ await enableMocking(context, options).catch((error) => {
384
+ throw new Error(`Failed to enable mocking: ${error?.message}`);
450
385
  });
451
386
  return registration;
452
- })
387
+ }
453
388
  );
454
- if (options.waitUntilReady) {
455
- deferNetworkRequestsUntil(workerRegistration);
456
- }
457
389
  return workerRegistration;
458
390
  };
459
391
  };
@@ -476,7 +408,6 @@ function printStopMessage(args = {}) {
476
408
  // src/browser/setupWorker/stop/createStop.ts
477
409
  var createStop = (context) => {
478
410
  return function stop() {
479
- var _a;
480
411
  if (!context.isMockingEnabled) {
481
412
  devUtils8.warn(
482
413
  'Found a redundant "worker.stop()" call. Note that stopping the worker while mocking already stopped has no effect. Consider removing this "worker.stop()" call.'
@@ -486,7 +417,7 @@ var createStop = (context) => {
486
417
  context.workerChannel.send("MOCK_DEACTIVATE");
487
418
  context.isMockingEnabled = false;
488
419
  window.clearInterval(context.keepAliveInterval);
489
- printStopMessage({ quiet: (_a = context.startOptions) == null ? void 0 : _a.quiet });
420
+ printStopMessage({ quiet: context.startOptions?.quiet });
490
421
  };
491
422
  };
492
423
 
@@ -517,9 +448,9 @@ function createFallbackRequestListener(context, options) {
517
448
  name: "fallback",
518
449
  interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()]
519
450
  });
520
- interceptor.on("request", (_0) => __async(this, [_0], function* ({ request, requestId }) {
451
+ interceptor.on("request", async ({ request, requestId }) => {
521
452
  const requestCloneForLogs = request.clone();
522
- const response = yield handleRequest2(
453
+ const response = await handleRequest2(
523
454
  request,
524
455
  requestId,
525
456
  context.requestHandlers,
@@ -542,7 +473,7 @@ function createFallbackRequestListener(context, options) {
542
473
  if (response) {
543
474
  request.respondWith(response);
544
475
  }
545
- }));
476
+ });
546
477
  interceptor.on(
547
478
  "response",
548
479
  ({ response, isMockedResponse, request, requestId }) => {
@@ -562,27 +493,24 @@ function createFallbackRequestListener(context, options) {
562
493
 
563
494
  // src/browser/setupWorker/start/createFallbackStart.ts
564
495
  function createFallbackStart(context) {
565
- return function start(options) {
566
- return __async(this, null, function* () {
567
- context.fallbackInterceptor = createFallbackRequestListener(
568
- context,
569
- options
570
- );
571
- printStartMessage({
572
- message: "Mocking enabled (fallback mode).",
573
- quiet: options.quiet
574
- });
575
- return void 0;
496
+ return async function start(options) {
497
+ context.fallbackInterceptor = createFallbackRequestListener(
498
+ context,
499
+ options
500
+ );
501
+ printStartMessage({
502
+ message: "Mocking enabled (fallback mode).",
503
+ quiet: options.quiet
576
504
  });
505
+ return void 0;
577
506
  };
578
507
  }
579
508
 
580
509
  // src/browser/setupWorker/stop/createFallbackStop.ts
581
510
  function createFallbackStop(context) {
582
511
  return function stop() {
583
- var _a, _b;
584
- (_a = context.fallbackInterceptor) == null ? void 0 : _a.dispose();
585
- printStopMessage({ quiet: (_b = context.startOptions) == null ? void 0 : _b.quiet });
512
+ context.fallbackInterceptor?.dispose();
513
+ printStopMessage({ quiet: context.startOptions?.quiet });
586
514
  };
587
515
  }
588
516
 
@@ -607,10 +535,12 @@ function supportsReadableStreamTransfer() {
607
535
 
608
536
  // src/browser/setupWorker/setupWorker.ts
609
537
  var SetupWorkerApi = class extends SetupApi {
538
+ context;
539
+ startHandler = null;
540
+ stopHandler = null;
541
+ listeners;
610
542
  constructor(...handlers) {
611
543
  super(...handlers);
612
- this.startHandler = null;
613
- this.stopHandler = null;
614
544
  invariant(
615
545
  !isNodeProcess(),
616
546
  devUtils9.formatMessage(
@@ -646,8 +576,7 @@ var SetupWorkerApi = class extends SetupApi {
646
576
  });
647
577
  },
648
578
  send: (type) => {
649
- var _a;
650
- (_a = this.context.worker) == null ? void 0 : _a.postMessage(type);
579
+ this.context.worker?.postMessage(type);
651
580
  }
652
581
  },
653
582
  events: {
@@ -712,14 +641,17 @@ var SetupWorkerApi = class extends SetupApi {
712
641
  this.stopHandler = context.supports.serviceWorkerApi ? createFallbackStop(context) : createStop(context);
713
642
  return context;
714
643
  }
715
- start() {
716
- return __async(this, arguments, function* (options = {}) {
717
- this.context.startOptions = mergeRight2(
718
- DEFAULT_START_OPTIONS,
719
- options
644
+ async start(options = {}) {
645
+ if (options.waitUntilReady === true) {
646
+ devUtils9.warn(
647
+ '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.'
720
648
  );
721
- return yield this.startHandler(this.context.startOptions, options);
722
- });
649
+ }
650
+ this.context.startOptions = mergeRight2(
651
+ DEFAULT_START_OPTIONS,
652
+ options
653
+ );
654
+ return await this.startHandler(this.context.startOptions, options);
723
655
  }
724
656
  stop() {
725
657
  super.dispose();