msw 2.1.6 → 2.2.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 (44) hide show
  1. package/cli/init.js +9 -13
  2. package/lib/browser/index.js +29 -24
  3. package/lib/browser/index.js.map +1 -1
  4. package/lib/browser/index.mjs +29 -24
  5. package/lib/browser/index.mjs.map +1 -1
  6. package/lib/core/HttpResponse.js +14 -1
  7. package/lib/core/HttpResponse.js.map +1 -1
  8. package/lib/core/HttpResponse.mjs +14 -1
  9. package/lib/core/HttpResponse.mjs.map +1 -1
  10. package/lib/core/SetupApi.d.mts +15 -3
  11. package/lib/core/SetupApi.d.ts +15 -3
  12. package/lib/core/SetupApi.js +26 -8
  13. package/lib/core/SetupApi.js.map +1 -1
  14. package/lib/core/SetupApi.mjs +26 -8
  15. package/lib/core/SetupApi.mjs.map +1 -1
  16. package/lib/iife/index.js +65 -33
  17. package/lib/iife/index.js.map +1 -1
  18. package/lib/mockServiceWorker.js +1 -1
  19. package/lib/native/index.d.mts +10 -5
  20. package/lib/native/index.d.ts +10 -5
  21. package/lib/native/index.js +12 -8
  22. package/lib/native/index.js.map +1 -1
  23. package/lib/native/index.mjs +12 -8
  24. package/lib/native/index.mjs.map +1 -1
  25. package/lib/node/index.d.mts +26 -4
  26. package/lib/node/index.d.ts +26 -4
  27. package/lib/node/index.js +62 -13
  28. package/lib/node/index.js.map +1 -1
  29. package/lib/node/index.mjs +62 -13
  30. package/lib/node/index.mjs.map +1 -1
  31. package/package.json +16 -8
  32. package/src/browser/setupWorker/glossary.ts +1 -1
  33. package/src/browser/setupWorker/setupWorker.ts +3 -11
  34. package/src/browser/setupWorker/start/createFallbackRequestListener.ts +1 -1
  35. package/src/browser/setupWorker/start/createRequestListener.ts +1 -1
  36. package/src/browser/setupWorker/start/createResponseListener.ts +13 -0
  37. package/src/core/HttpResponse.test.ts +34 -3
  38. package/src/core/HttpResponse.ts +24 -1
  39. package/src/core/SetupApi.ts +33 -9
  40. package/src/native/index.ts +8 -4
  41. package/src/node/SetupServerApi.ts +64 -95
  42. package/src/node/SetupServerCommonApi.ts +116 -0
  43. package/src/node/glossary.ts +17 -3
  44. package/src/node/setupServer.ts +3 -10
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 inquirer = require('inquirer')
5
+ const confirm = require('@inquirer/confirm')
6
6
  const invariant = require('./invariant')
7
7
  const { SERVICE_WORKER_BUILD_PATH } = require('../config/constants')
8
8
 
@@ -180,18 +180,14 @@ function saveWorkerDirectory(packageJsonPath, publicDir) {
180
180
  }
181
181
 
182
182
  function promptWorkerDirectoryUpdate(message, packageJsonPath, publicDir) {
183
- return inquirer
184
- .prompt({
185
- type: 'confirm',
186
- name: 'saveWorkerDirectory',
183
+ return confirm({
184
+ theme: {
187
185
  prefix: chalk.yellowBright('?'),
188
- message,
189
- })
190
- .then((answers) => {
191
- if (!answers.saveWorkerDirectory) {
192
- return
193
- }
194
-
186
+ },
187
+ message,
188
+ }).then((answer) => {
189
+ if (answer) {
195
190
  saveWorkerDirectory(packageJsonPath, publicDir)
196
- })
191
+ }
192
+ })
197
193
  }
@@ -310,7 +310,7 @@ var createRequestListener = (context, options) => {
310
310
  await (0, import_handleRequest.handleRequest)(
311
311
  request,
312
312
  requestId,
313
- context.requestHandlers,
313
+ context.getRequestHandlers(),
314
314
  options,
315
315
  context.emitter,
316
316
  {
@@ -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.15/node_modules/@mswjs/interceptors/lib/browser/chunk-UJZOJSMP.mjs
396
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/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);
@@ -856,7 +856,7 @@ var _Emitter = class {
856
856
  var Emitter = _Emitter;
857
857
  Emitter.defaultMaxListeners = 10;
858
858
 
859
- // node_modules/.pnpm/@mswjs+interceptors@0.25.15/node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs
859
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-WZQN3FMY.mjs
860
860
  var IS_PATCHED_MODULE = Symbol("isPatchedModule");
861
861
  function getGlobalSymbol(symbol) {
862
862
  return (
@@ -1001,7 +1001,7 @@ var Interceptor = class {
1001
1001
  }
1002
1002
  };
1003
1003
 
1004
- // node_modules/.pnpm/@mswjs+interceptors@0.25.15/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1004
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/index.mjs
1005
1005
  var BatchInterceptor = class extends Interceptor {
1006
1006
  constructor(options) {
1007
1007
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1064,6 +1064,13 @@ function createResponseListener(context) {
1064
1064
  isResponseWithoutBody(responseJson.status) ? null : responseJson.body,
1065
1065
  responseJson
1066
1066
  );
1067
+ if (!response.url) {
1068
+ Object.defineProperty(response, "url", {
1069
+ value: request.url,
1070
+ enumerable: true,
1071
+ writable: false
1072
+ });
1073
+ }
1067
1074
  context.emitter.emit(
1068
1075
  responseJson.isMockedResponse ? "response:mocked" : "response:bypass",
1069
1076
  {
@@ -1285,7 +1292,7 @@ var DeferredPromise = class extends Promise {
1285
1292
  }
1286
1293
  };
1287
1294
 
1288
- // node_modules/.pnpm/@mswjs+interceptors@0.25.15/node_modules/@mswjs/interceptors/lib/browser/chunk-72HT65NX.mjs
1295
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-72HT65NX.mjs
1289
1296
  function uuidv4() {
1290
1297
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
1291
1298
  const r = Math.random() * 16 | 0;
@@ -1330,7 +1337,7 @@ async function emitAsync(emitter, eventName, ...data) {
1330
1337
  }
1331
1338
  }
1332
1339
 
1333
- // node_modules/.pnpm/@mswjs+interceptors@0.25.15/node_modules/@mswjs/interceptors/lib/browser/chunk-44V5AUD6.mjs
1340
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-XQZ6GVNB.mjs
1334
1341
  function isPropertyAccessible(obj, key) {
1335
1342
  try {
1336
1343
  obj[key];
@@ -1382,13 +1389,15 @@ var _FetchInterceptor = class extends Interceptor {
1382
1389
  this.logger.info("awaiting for the mocked response...");
1383
1390
  const signal = interactiveRequest.signal;
1384
1391
  const requestAborted = new DeferredPromise();
1385
- signal.addEventListener(
1386
- "abort",
1387
- () => {
1388
- requestAborted.reject(signal.reason);
1389
- },
1390
- { once: true }
1391
- );
1392
+ if (signal) {
1393
+ signal.addEventListener(
1394
+ "abort",
1395
+ () => {
1396
+ requestAborted.reject(signal.reason);
1397
+ },
1398
+ { once: true }
1399
+ );
1400
+ }
1392
1401
  const resolverResult = await until(async () => {
1393
1402
  const listenersFinished = emitAsync(this.emitter, "request", {
1394
1403
  request: interactiveRequest,
@@ -1429,14 +1438,13 @@ var _FetchInterceptor = class extends Interceptor {
1429
1438
  request: interactiveRequest,
1430
1439
  requestId
1431
1440
  });
1432
- const response = new Response(mockedResponse.body, mockedResponse);
1433
- Object.defineProperty(response, "url", {
1441
+ Object.defineProperty(mockedResponse, "url", {
1434
1442
  writable: false,
1435
1443
  enumerable: true,
1436
1444
  configurable: false,
1437
1445
  value: request.url
1438
1446
  });
1439
- return response;
1447
+ return mockedResponse;
1440
1448
  }
1441
1449
  this.logger.info("no mocked response received!");
1442
1450
  return pureFetch(request).then((response) => {
@@ -1476,7 +1484,7 @@ function createNetworkError(cause) {
1476
1484
  });
1477
1485
  }
1478
1486
 
1479
- // node_modules/.pnpm/@mswjs+interceptors@0.25.15/node_modules/@mswjs/interceptors/lib/browser/chunk-DZVB7JEV.mjs
1487
+ // node_modules/.pnpm/@mswjs+interceptors@0.25.16/node_modules/@mswjs/interceptors/lib/browser/chunk-DZVB7JEV.mjs
1480
1488
  function concatArrayBuffer(left, right) {
1481
1489
  const result = new Uint8Array(left.byteLength + right.byteLength);
1482
1490
  result.set(left, 0);
@@ -2220,7 +2228,7 @@ function createFallbackRequestListener(context, options) {
2220
2228
  const response = await (0, import_handleRequest2.handleRequest)(
2221
2229
  request,
2222
2230
  requestId,
2223
- context.requestHandlers,
2231
+ context.getRequestHandlers(),
2224
2232
  options,
2225
2233
  context.emitter,
2226
2234
  {
@@ -2324,8 +2332,10 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2324
2332
  isMockingEnabled: false,
2325
2333
  startOptions: null,
2326
2334
  worker: null,
2335
+ getRequestHandlers: () => {
2336
+ return this.handlersController.currentHandlers();
2337
+ },
2327
2338
  registration: null,
2328
- requestHandlers: this.currentHandlers,
2329
2339
  requests: /* @__PURE__ */ new Map(),
2330
2340
  emitter: this.emitter,
2331
2341
  workerChannel: {
@@ -2400,11 +2410,6 @@ var SetupWorkerApi = class extends import_SetupApi.SetupApi {
2400
2410
  readableStreamTransfer: supportsReadableStreamTransfer()
2401
2411
  }
2402
2412
  };
2403
- Object.defineProperties(context, {
2404
- requestHandlers: {
2405
- get: () => this.currentHandlers
2406
- }
2407
- });
2408
2413
  this.startHandler = context.supports.serviceWorkerApi ? createFallbackStart(context) : createStartHandler(context);
2409
2414
  this.stopHandler = context.supports.serviceWorkerApi ? createFallbackStop(context) : createStop(context);
2410
2415
  return context;