msw 0.42.3 → 0.43.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.
package/README.md CHANGED
@@ -198,6 +198,15 @@ test('handles login exception', () => {
198
198
  >
199
199
  > **Learn more on our [GitHub Sponsors profile](https://github.com/sponsors/mswjs)**.
200
200
 
201
+ <br />
202
+
203
+ <a href="https://www.github.com/" target="_blank">
204
+ <picture>
205
+ <source media="(prefers-color-scheme: dark)" srcset="media/sponsors/github-light.svg" />
206
+ <img src="media/sponsors/github.svg" alt="GitHub" width="75" />
207
+ </picture>
208
+ </a>
209
+
201
210
  ### Silver Sponsors
202
211
 
203
212
  > Become our _silver sponsor_ and get your profile image and link featured right here.
@@ -207,7 +216,7 @@ test('handles login exception', () => {
207
216
  <br />
208
217
 
209
218
  <a href="https://www.chromatic.com/" target="_blank">
210
- <img src="media/sponsors/chromatic.svg#1" alt="Chromatic" width="75" />
219
+ <img src="media/sponsors/chromatic.svg" alt="Chromatic" width="75" />
211
220
  </a>
212
221
 
213
222
  ### Bronze Sponsors
package/lib/iife/index.js CHANGED
@@ -1444,7 +1444,7 @@ var MockServiceWorker = (() => {
1444
1444
  }(Error);
1445
1445
  exports.InvariantError = InvariantError;
1446
1446
  function createInvariantWith(ErrorConstructor) {
1447
- var invariant3 = function(predicate, message) {
1447
+ var invariant4 = function(predicate, message) {
1448
1448
  var positionals = [];
1449
1449
  for (var _i = 2; _i < arguments.length; _i++) {
1450
1450
  positionals[_i - 2] = arguments[_i];
@@ -1457,7 +1457,7 @@ var MockServiceWorker = (() => {
1457
1457
  throw error2;
1458
1458
  }
1459
1459
  };
1460
- return invariant3;
1460
+ return invariant4;
1461
1461
  }
1462
1462
  exports.createInvariantWith = createInvariantWith;
1463
1463
  function polymorphicInvariant(ErrorClass) {
@@ -7382,17 +7382,18 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
7382
7382
  });
7383
7383
  }
7384
7384
 
7385
- // src/utils/createBroadcastChannel.ts
7386
- var createBroadcastChannel = (event) => {
7385
+ // src/setupWorker/start/utils/createMessageChannel.ts
7386
+ function createMessageChannel(event) {
7387
7387
  const port = event.ports[0];
7388
7388
  return {
7389
7389
  send(message) {
7390
- if (port) {
7391
- port.postMessage(message);
7390
+ if (!port) {
7391
+ return;
7392
7392
  }
7393
+ port.postMessage(message);
7393
7394
  }
7394
7395
  };
7395
- };
7396
+ }
7396
7397
 
7397
7398
  // src/utils/NetworkError.ts
7398
7399
  var NetworkError = class extends Error {
@@ -10407,24 +10408,69 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
10407
10408
  return transformedResponse;
10408
10409
  }
10409
10410
 
10410
- // src/utils/worker/createRequestListener.ts
10411
+ // src/setupWorker/start/utils/streamResponse.ts
10412
+ var import_outvariant3 = __toESM(require_lib5());
10413
+ async function streamResponse(operationChannel, messageChannel, mockedResponse) {
10414
+ const response2 = new Response(mockedResponse.body, mockedResponse);
10415
+ delete mockedResponse.body;
10416
+ messageChannel.send({
10417
+ type: "MOCK_RESPONSE_START",
10418
+ payload: mockedResponse
10419
+ });
10420
+ (0, import_outvariant3.invariant)(response2.body, "Failed to stream mocked response with no body");
10421
+ const reader = response2.body.getReader();
10422
+ while (true) {
10423
+ const { done, value } = await reader.read();
10424
+ if (!done) {
10425
+ operationChannel.postMessage({
10426
+ type: "MOCK_RESPONSE_CHUNK",
10427
+ payload: value
10428
+ });
10429
+ continue;
10430
+ }
10431
+ operationChannel.postMessage({
10432
+ type: "MOCK_RESPONSE_END"
10433
+ });
10434
+ operationChannel.close();
10435
+ reader.releaseLock();
10436
+ break;
10437
+ }
10438
+ }
10439
+
10440
+ // src/utils/internal/StrictBroadcastChannel.ts
10441
+ var ParentClass = typeof BroadcastChannel == "undefined" ? class UnsupportedEnvironment {
10442
+ constructor() {
10443
+ throw new Error("Cannot construct BroadcastChannel in a non-browser environment");
10444
+ }
10445
+ } : BroadcastChannel;
10446
+ var StrictBroadcastChannel = class extends ParentClass {
10447
+ postMessage(message) {
10448
+ return super.postMessage(message);
10449
+ }
10450
+ };
10451
+
10452
+ // src/setupWorker/start/createRequestListener.ts
10411
10453
  var createRequestListener = (context, options) => {
10412
10454
  return async (event, message) => {
10413
- const channel = createBroadcastChannel(event);
10455
+ const messageChannel = createMessageChannel(event);
10414
10456
  try {
10415
10457
  const request = parseWorkerRequest(message.payload);
10458
+ const operationChannel = new StrictBroadcastChannel(`msw-response-stream-${request.id}`);
10416
10459
  await handleRequest(request, context.requestHandlers, options, context.emitter, {
10417
10460
  transformResponse,
10418
10461
  onPassthroughResponse() {
10419
- return channel.send({
10462
+ return messageChannel.send({
10420
10463
  type: "MOCK_NOT_FOUND"
10421
10464
  });
10422
10465
  },
10423
10466
  onMockedResponse(response2) {
10424
- channel.send({
10425
- type: "MOCK_SUCCESS",
10426
- payload: response2
10427
- });
10467
+ if (response2.body == null) {
10468
+ return messageChannel.send({
10469
+ type: "MOCK_RESPONSE",
10470
+ payload: response2
10471
+ });
10472
+ }
10473
+ streamResponse(operationChannel, messageChannel, response2);
10428
10474
  },
10429
10475
  onMockedResponseSent(response2, { handler, publicRequest, parsedRequest }) {
10430
10476
  if (options.quiet) {
@@ -10435,7 +10481,7 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
10435
10481
  });
10436
10482
  } catch (error2) {
10437
10483
  if (error2 instanceof NetworkError) {
10438
- return channel.send({
10484
+ return messageChannel.send({
10439
10485
  type: "NETWORK_ERROR",
10440
10486
  payload: {
10441
10487
  name: error2.name,
@@ -10444,7 +10490,7 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
10444
10490
  });
10445
10491
  }
10446
10492
  if (error2 instanceof Error) {
10447
- channel.send({
10493
+ messageChannel.send({
10448
10494
  type: "INTERNAL_ERROR",
10449
10495
  payload: {
10450
10496
  status: 500,
@@ -10473,8 +10519,8 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
10473
10519
  async function requestIntegrityCheck(context, serviceWorker) {
10474
10520
  context.workerChannel.send("INTEGRITY_CHECK_REQUEST");
10475
10521
  const { payload: actualChecksum } = await context.events.once("INTEGRITY_CHECK_RESPONSE");
10476
- if (actualChecksum !== "02f4ad4a2797f85668baf196e553d929") {
10477
- throw new Error(`Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"02f4ad4a2797f85668baf196e553d929"}).`);
10522
+ if (actualChecksum !== "c9450df6e4dc5e45740c3b0b640727a2") {
10523
+ throw new Error(`Currently active Service Worker (${actualChecksum}) is behind the latest published one (${"c9450df6e4dc5e45740c3b0b640727a2"}).`);
10478
10524
  }
10479
10525
  return serviceWorker;
10480
10526
  }
@@ -10497,7 +10543,7 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
10497
10543
  };
10498
10544
  }
10499
10545
 
10500
- // src/utils/worker/createResponseListener.ts
10546
+ // src/setupWorker/start/createResponseListener.ts
10501
10547
  function createResponseListener(context) {
10502
10548
  return (_, message) => {
10503
10549
  var _a;
@@ -10651,7 +10697,7 @@ If this message still persists after updating, please report an issue: https://g
10651
10697
  };
10652
10698
  }
10653
10699
 
10654
- // src/utils/worker/createFallbackRequestListener.ts
10700
+ // src/setupWorker/start/createFallbackRequestListener.ts
10655
10701
  var import_interceptors = __toESM(require_lib8());
10656
10702
  var import_fetch3 = __toESM(require_fetch());
10657
10703
  var import_XMLHttpRequest = __toESM(require_XMLHttpRequest());
@@ -10681,7 +10727,7 @@ If this message still persists after updating, please report an issue: https://g
10681
10727
  return mockedRequest;
10682
10728
  }
10683
10729
 
10684
- // src/utils/worker/createFallbackRequestListener.ts
10730
+ // src/setupWorker/start/createFallbackRequestListener.ts
10685
10731
  function createFallbackRequestListener(context, options) {
10686
10732
  const interceptor = new import_interceptors.BatchInterceptor({
10687
10733
  name: "fallback",