msw 0.0.0-fetch.rc-12 → 0.0.0-fetch.rc-14

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 (38) hide show
  1. package/lib/browser/index.js +6 -4
  2. package/lib/browser/index.mjs +6 -4
  3. package/lib/core/{GraphQLHandler-050518a3.d.ts → GraphQLHandler-2e60cda6.d.ts} +1 -1
  4. package/lib/core/HttpResponse.d.ts +1 -1
  5. package/lib/core/{RequestHandler-1abba5d8.d.ts → RequestHandler-e964183f.d.ts} +2 -3
  6. package/lib/core/SetupApi.d.ts +3 -3
  7. package/lib/core/SetupApi.js +7 -5
  8. package/lib/core/SetupApi.mjs +7 -5
  9. package/lib/core/graphql.d.ts +2 -2
  10. package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
  11. package/lib/core/handlers/RequestHandler.d.ts +1 -1
  12. package/lib/core/handlers/RequestHandler.js +7 -4
  13. package/lib/core/handlers/RequestHandler.mjs +7 -4
  14. package/lib/core/handlers/RestHandler.d.ts +1 -1
  15. package/lib/core/index.d.ts +3 -2
  16. package/lib/core/rest.d.ts +1 -1
  17. package/lib/core/sharedOptions.d.ts +1 -1
  18. package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
  19. package/lib/core/utils/getResponse.d.ts +1 -1
  20. package/lib/core/utils/getResponse.js +14 -43
  21. package/lib/core/utils/getResponse.mjs +14 -43
  22. package/lib/core/utils/handleRequest.d.ts +1 -1
  23. package/lib/core/utils/handleRequest.js +2 -12
  24. package/lib/core/utils/handleRequest.mjs +2 -12
  25. package/lib/core/utils/internal/Disposable.d.ts +7 -0
  26. package/lib/core/utils/internal/Disposable.js +53 -0
  27. package/lib/core/utils/internal/Disposable.mjs +33 -0
  28. package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
  29. package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
  30. package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
  31. package/lib/core/utils/request/onUnhandledRequest.d.ts +1 -1
  32. package/lib/iife/index.js +58 -78
  33. package/lib/mockServiceWorker.js +1 -1
  34. package/lib/native/index.js +4 -2
  35. package/lib/native/index.mjs +4 -2
  36. package/lib/node/index.js +4 -2
  37. package/lib/node/index.mjs +4 -2
  38. package/package.json +3 -2
@@ -248,6 +248,7 @@ var createRequestListener = (context, options) => {
248
248
  const messageChannel = new WorkerChannel(event.ports[0]);
249
249
  const requestId = message.payload.id;
250
250
  const request = parseWorkerRequest(message.payload);
251
+ const requestCloneForLogs = request.clone();
251
252
  try {
252
253
  let _a;
253
254
  yield (0, import_handleRequest.handleRequest)(
@@ -261,7 +262,7 @@ var createRequestListener = (context, options) => {
261
262
  messageChannel.postMessage("NOT_FOUND");
262
263
  },
263
264
  onMockedResponse(_0, _1) {
264
- return __async(this, arguments, function* (response, { request: request2, handler, parsedRequest }) {
265
+ return __async(this, arguments, function* (response, { handler, parsedRequest }) {
265
266
  const responseClone = response.clone();
266
267
  const responseInit = (0, import_toResponseInit.toResponseInit)(response);
267
268
  const responseStream = responseClone.body;
@@ -276,7 +277,7 @@ var createRequestListener = (context, options) => {
276
277
  );
277
278
  if (!options.quiet) {
278
279
  context.emitter.once("response:mocked", (response2) => {
279
- handler.log(request2, response2, parsedRequest);
280
+ handler.log(requestCloneForLogs, response2, parsedRequest);
280
281
  });
281
282
  }
282
283
  });
@@ -544,6 +545,7 @@ function createFallbackRequestListener(context, options) {
544
545
  interceptors: [new import_fetch.FetchInterceptor(), new import_XMLHttpRequest.XMLHttpRequestInterceptor()]
545
546
  });
546
547
  interceptor.on("request", (request, requestId) => __async(this, null, function* () {
548
+ const requestCloneForLogs = request.clone();
547
549
  const response = yield (0, import_handleRequest2.handleRequest)(
548
550
  request,
549
551
  requestId,
@@ -551,10 +553,10 @@ function createFallbackRequestListener(context, options) {
551
553
  options,
552
554
  context.emitter,
553
555
  {
554
- onMockedResponse(_, { handler, request: request2, parsedRequest }) {
556
+ onMockedResponse(_, { handler, parsedRequest }) {
555
557
  if (!options.quiet) {
556
558
  context.emitter.once("response:mocked", (response2) => {
557
- handler.log(request2, response2, parsedRequest);
559
+ handler.log(requestCloneForLogs, response2, parsedRequest);
558
560
  });
559
561
  }
560
562
  }
@@ -224,6 +224,7 @@ var createRequestListener = (context, options) => {
224
224
  const messageChannel = new WorkerChannel(event.ports[0]);
225
225
  const requestId = message.payload.id;
226
226
  const request = parseWorkerRequest(message.payload);
227
+ const requestCloneForLogs = request.clone();
227
228
  try {
228
229
  let _a;
229
230
  yield handleRequest(
@@ -237,7 +238,7 @@ var createRequestListener = (context, options) => {
237
238
  messageChannel.postMessage("NOT_FOUND");
238
239
  },
239
240
  onMockedResponse(_0, _1) {
240
- return __async(this, arguments, function* (response, { request: request2, handler, parsedRequest }) {
241
+ return __async(this, arguments, function* (response, { handler, parsedRequest }) {
241
242
  const responseClone = response.clone();
242
243
  const responseInit = toResponseInit(response);
243
244
  const responseStream = responseClone.body;
@@ -252,7 +253,7 @@ var createRequestListener = (context, options) => {
252
253
  );
253
254
  if (!options.quiet) {
254
255
  context.emitter.once("response:mocked", (response2) => {
255
- handler.log(request2, response2, parsedRequest);
256
+ handler.log(requestCloneForLogs, response2, parsedRequest);
256
257
  });
257
258
  }
258
259
  });
@@ -522,6 +523,7 @@ function createFallbackRequestListener(context, options) {
522
523
  interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()]
523
524
  });
524
525
  interceptor.on("request", (request, requestId) => __async(this, null, function* () {
526
+ const requestCloneForLogs = request.clone();
525
527
  const response = yield handleRequest2(
526
528
  request,
527
529
  requestId,
@@ -529,10 +531,10 @@ function createFallbackRequestListener(context, options) {
529
531
  options,
530
532
  context.emitter,
531
533
  {
532
- onMockedResponse(_, { handler, request: request2, parsedRequest }) {
534
+ onMockedResponse(_, { handler, parsedRequest }) {
533
535
  if (!options.quiet) {
534
536
  context.emitter.once("response:mocked", (response2) => {
535
- handler.log(request2, response2, parsedRequest);
537
+ handler.log(requestCloneForLogs, response2, parsedRequest);
536
538
  });
537
539
  }
538
540
  }
@@ -1,5 +1,5 @@
1
1
  import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
2
- import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver } from './RequestHandler-1abba5d8.js';
2
+ import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver } from './RequestHandler-e964183f.js';
3
3
  import { Path } from './utils/matching/matchRequestUrl.js';
4
4
 
5
5
  interface ParsedGraphQLQuery {
@@ -1,2 +1,2 @@
1
- export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest, d as StrictResponse } from './RequestHandler-1abba5d8.js';
1
+ export { e as HttpResponse, H as HttpResponseInit, S as StrictRequest, d as StrictResponse } from './RequestHandler-e964183f.js';
2
2
  import './typeUtils.js';
@@ -1,8 +1,7 @@
1
1
  import { MaybePromise } from './typeUtils.js';
2
2
 
3
3
  interface ResponseLookupResult {
4
- handler?: RequestHandler;
5
- request: Request;
4
+ handler: RequestHandler;
6
5
  parsedRequest?: any;
7
6
  response?: Response;
8
7
  }
@@ -12,7 +11,7 @@ interface ResponseResolutionContext {
12
11
  /**
13
12
  * Returns a mocked response for a given request using following request handlers.
14
13
  */
15
- declare const getResponse: <Handler extends RequestHandler<RequestHandlerDefaultInfo, any, any>[]>(request: Request, handlers: Handler, resolutionContext?: ResponseResolutionContext) => Promise<ResponseLookupResult>;
14
+ declare const getResponse: <Handler extends RequestHandler<RequestHandlerDefaultInfo, any, any>[]>(request: Request, handlers: Handler, resolutionContext?: ResponseResolutionContext) => Promise<ResponseLookupResult | null>;
16
15
 
17
16
  interface HttpResponseInit extends ResponseInit {
18
17
  type?: ResponseType;
@@ -1,13 +1,14 @@
1
1
  import { EventMap, Emitter } from 'strict-event-emitter';
2
- import { R as RequestHandler, g as RequestHandlerDefaultInfo } from './RequestHandler-1abba5d8.js';
2
+ import { R as RequestHandler, g as RequestHandlerDefaultInfo } from './RequestHandler-e964183f.js';
3
3
  import { LifeCycleEventEmitter } from './sharedOptions.js';
4
+ import { Disposable } from './utils/internal/Disposable.js';
4
5
  import './typeUtils.js';
5
6
  import './utils/request/onUnhandledRequest.js';
6
7
 
7
8
  /**
8
9
  * Generic class for the mock API setup.
9
10
  */
10
- declare abstract class SetupApi<EventsMap extends EventMap> {
11
+ declare abstract class SetupApi<EventsMap extends EventMap> extends Disposable {
11
12
  protected initialHandlers: ReadonlyArray<RequestHandler>;
12
13
  protected currentHandlers: Array<RequestHandler>;
13
14
  protected readonly emitter: Emitter<EventsMap>;
@@ -15,7 +16,6 @@ declare abstract class SetupApi<EventsMap extends EventMap> {
15
16
  readonly events: LifeCycleEventEmitter<EventsMap>;
16
17
  constructor(...initialHandlers: Array<RequestHandler>);
17
18
  private validateHandlers;
18
- protected dispose(): void;
19
19
  use(...runtimeHandlers: Array<RequestHandler>): void;
20
20
  restoreHandlers(): void;
21
21
  resetHandlers(...nextHandlers: Array<RequestHandler>): void;
@@ -26,8 +26,10 @@ var import_strict_event_emitter = require("strict-event-emitter");
26
26
  var import_devUtils = require("./utils/internal/devUtils.js");
27
27
  var import_pipeEvents = require("./utils/internal/pipeEvents.js");
28
28
  var import_toReadonlyArray = require("./utils/internal/toReadonlyArray.js");
29
- class SetupApi {
29
+ var import_Disposable = require("./utils/internal/Disposable.js");
30
+ class SetupApi extends import_Disposable.Disposable {
30
31
  constructor(...initialHandlers) {
32
+ super();
31
33
  this.validateHandlers(...initialHandlers);
32
34
  this.initialHandlers = (0, import_toReadonlyArray.toReadonlyArray)(initialHandlers);
33
35
  this.currentHandlers = [...initialHandlers];
@@ -35,6 +37,10 @@ class SetupApi {
35
37
  this.publicEmitter = new import_strict_event_emitter.Emitter();
36
38
  (0, import_pipeEvents.pipeEvents)(this.emitter, this.publicEmitter);
37
39
  this.events = this.createLifeCycleEvents();
40
+ this.subscriptions.push(() => {
41
+ this.emitter.removeAllListeners();
42
+ this.publicEmitter.removeAllListeners();
43
+ });
38
44
  }
39
45
  validateHandlers(...handlers) {
40
46
  for (const handler of handlers) {
@@ -47,10 +53,6 @@ class SetupApi {
47
53
  );
48
54
  }
49
55
  }
50
- dispose() {
51
- this.emitter.removeAllListeners();
52
- this.publicEmitter.removeAllListeners();
53
- }
54
56
  use(...runtimeHandlers) {
55
57
  this.currentHandlers.unshift(...runtimeHandlers);
56
58
  }
@@ -3,8 +3,10 @@ import { Emitter } from "strict-event-emitter";
3
3
  import { devUtils } from './utils/internal/devUtils.mjs';
4
4
  import { pipeEvents } from './utils/internal/pipeEvents.mjs';
5
5
  import { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';
6
- class SetupApi {
6
+ import { Disposable } from './utils/internal/Disposable.mjs';
7
+ class SetupApi extends Disposable {
7
8
  constructor(...initialHandlers) {
9
+ super();
8
10
  this.validateHandlers(...initialHandlers);
9
11
  this.initialHandlers = toReadonlyArray(initialHandlers);
10
12
  this.currentHandlers = [...initialHandlers];
@@ -12,6 +14,10 @@ class SetupApi {
12
14
  this.publicEmitter = new Emitter();
13
15
  pipeEvents(this.emitter, this.publicEmitter);
14
16
  this.events = this.createLifeCycleEvents();
17
+ this.subscriptions.push(() => {
18
+ this.emitter.removeAllListeners();
19
+ this.publicEmitter.removeAllListeners();
20
+ });
15
21
  }
16
22
  validateHandlers(...handlers) {
17
23
  for (const handler of handlers) {
@@ -24,10 +30,6 @@ class SetupApi {
24
30
  );
25
31
  }
26
32
  }
27
- dispose() {
28
- this.emitter.removeAllListeners();
29
- this.publicEmitter.removeAllListeners();
30
- }
31
33
  use(...runtimeHandlers) {
32
34
  this.currentHandlers.unshift(...runtimeHandlers);
33
35
  }
@@ -1,6 +1,6 @@
1
1
  import { DocumentNode } from 'graphql';
2
- import { a as ResponseResolver } from './RequestHandler-1abba5d8.js';
3
- import { a as GraphQLVariables, d as GraphQLResolverExtras, e as GraphQLResponseBody, G as GraphQLHandler, f as GraphQLHandlerNameSelector } from './GraphQLHandler-050518a3.js';
2
+ import { a as ResponseResolver } from './RequestHandler-e964183f.js';
3
+ import { a as GraphQLVariables, d as GraphQLResolverExtras, e as GraphQLResponseBody, G as GraphQLHandler, f as GraphQLHandlerNameSelector } from './GraphQLHandler-2e60cda6.js';
4
4
  import { Path } from './utils/matching/matchRequestUrl.js';
5
5
  import './typeUtils.js';
6
6
 
@@ -1,5 +1,5 @@
1
1
  import 'graphql';
2
- import '../RequestHandler-1abba5d8.js';
2
+ import '../RequestHandler-e964183f.js';
3
3
  import '../utils/matching/matchRequestUrl.js';
4
- export { E as ExpectedOperationTypeNode, G as GraphQLHandler, k as GraphQLHandlerInfo, f as GraphQLHandlerNameSelector, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, d as GraphQLResolverExtras, e as GraphQLResponseBody, a as GraphQLVariables, l as isDocumentNode } from '../GraphQLHandler-050518a3.js';
4
+ export { E as ExpectedOperationTypeNode, G as GraphQLHandler, k as GraphQLHandlerInfo, f as GraphQLHandlerNameSelector, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, d as GraphQLResolverExtras, e as GraphQLResponseBody, a as GraphQLVariables, l as isDocumentNode } from '../GraphQLHandler-2e60cda6.js';
5
5
  import '../typeUtils.js';
@@ -1,2 +1,2 @@
1
- export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, g as RequestHandlerDefaultInfo, n as RequestHandlerExecutionResult, k as RequestHandlerInternalInfo, m as RequestHandlerOptions, f as RequestHandlerPublicOptions, a as ResponseResolver, l as ResponseResolverInfo, b as ResponseResolverReturnType } from '../RequestHandler-1abba5d8.js';
1
+ export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, M as MaybeAsyncResponseResolverReturnType, R as RequestHandler, g as RequestHandlerDefaultInfo, n as RequestHandlerExecutionResult, k as RequestHandlerInternalInfo, m as RequestHandlerOptions, f as RequestHandlerPublicOptions, a as ResponseResolver, l as ResponseResolverInfo, b as ResponseResolverReturnType } from '../RequestHandler-e964183f.js';
2
2
  import '../typeUtils.js';
@@ -104,11 +104,14 @@ class RequestHandler {
104
104
  if (this.isUsed && this.once) {
105
105
  return null;
106
106
  }
107
+ const mainRequestRef = request.clone();
107
108
  this.isUsed = true;
108
- const requestClone = request.clone();
109
- const parsedResult = yield this.parse(request.clone(), resolutionContext);
109
+ const parsedResult = yield this.parse(
110
+ mainRequestRef.clone(),
111
+ resolutionContext
112
+ );
110
113
  const shouldInterceptRequest = this.predicate(
111
- request.clone(),
114
+ mainRequestRef.clone(),
112
115
  parsedResult,
113
116
  resolutionContext
114
117
  );
@@ -123,7 +126,7 @@ class RequestHandler {
123
126
  const executionResult = this.createExecutionResult(
124
127
  // Pass the cloned request to the result so that logging
125
128
  // and other consumers could read its body once more.
126
- requestClone,
129
+ mainRequestRef,
127
130
  parsedResult,
128
131
  mockedResponse
129
132
  );
@@ -83,11 +83,14 @@ class RequestHandler {
83
83
  if (this.isUsed && this.once) {
84
84
  return null;
85
85
  }
86
+ const mainRequestRef = request.clone();
86
87
  this.isUsed = true;
87
- const requestClone = request.clone();
88
- const parsedResult = yield this.parse(request.clone(), resolutionContext);
88
+ const parsedResult = yield this.parse(
89
+ mainRequestRef.clone(),
90
+ resolutionContext
91
+ );
89
92
  const shouldInterceptRequest = this.predicate(
90
- request.clone(),
93
+ mainRequestRef.clone(),
91
94
  parsedResult,
92
95
  resolutionContext
93
96
  );
@@ -102,7 +105,7 @@ class RequestHandler {
102
105
  const executionResult = this.createExecutionResult(
103
106
  // Pass the cloned request to the result so that logging
104
107
  // and other consumers could read its body once more.
105
- requestClone,
108
+ mainRequestRef,
106
109
  parsedResult,
107
110
  mockedResponse
108
111
  );
@@ -1,4 +1,4 @@
1
- import { g as RequestHandlerDefaultInfo, R as RequestHandler, a as ResponseResolver, f as RequestHandlerPublicOptions, i as ResponseResolutionContext } from '../RequestHandler-1abba5d8.js';
1
+ import { g as RequestHandlerDefaultInfo, R as RequestHandler, a as ResponseResolver, f as RequestHandlerPublicOptions, i as ResponseResolutionContext } from '../RequestHandler-e964183f.js';
2
2
  import { Path, Match, PathParams } from '../utils/matching/matchRequestUrl.js';
3
3
  import '../typeUtils.js';
4
4
 
@@ -1,9 +1,9 @@
1
1
  export { SetupApi } from './SetupApi.js';
2
- export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, e as HttpResponse, H as HttpResponseInit, R as RequestHandler, a as ResponseResolver, b as ResponseResolverReturnType, S as StrictRequest, d as StrictResponse } from './RequestHandler-1abba5d8.js';
2
+ export { A as AsyncResponseResolverReturnType, D as DefaultBodyType, c as DefaultRequestMultipartBody, e as HttpResponse, H as HttpResponseInit, R as RequestHandler, a as ResponseResolver, b as ResponseResolverReturnType, S as StrictRequest, d as StrictResponse } from './RequestHandler-e964183f.js';
3
3
  export { rest } from './rest.js';
4
4
  export { RESTMethods, RequestQuery, RestHandler, RestRequestParsedResult } from './handlers/RestHandler.js';
5
5
  export { graphql } from './graphql.js';
6
- export { G as GraphQLHandler, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, a as GraphQLVariables, P as ParsedGraphQLRequest } from './GraphQLHandler-050518a3.js';
6
+ export { G as GraphQLHandler, c as GraphQLJsonRequestBody, b as GraphQLRequestBody, a as GraphQLVariables, P as ParsedGraphQLRequest } from './GraphQLHandler-2e60cda6.js';
7
7
  export { Match, Path, PathParams, matchRequestUrl } from './utils/matching/matchRequestUrl.js';
8
8
  export { HandleRequestOptions, handleRequest } from './utils/handleRequest.js';
9
9
  export { cleanUrl } from './utils/url/cleanUrl.js';
@@ -13,6 +13,7 @@ export { bypass } from './bypass.js';
13
13
  export { passthrough } from './passthrough.js';
14
14
  export { NetworkError } from './NetworkError.js';
15
15
  import 'strict-event-emitter';
16
+ import './utils/internal/Disposable.js';
16
17
  import './typeUtils.js';
17
18
  import 'graphql';
18
19
  import './utils/request/onUnhandledRequest.js';
@@ -1,4 +1,4 @@
1
- import { D as DefaultBodyType, a as ResponseResolver, f as RequestHandlerPublicOptions } from './RequestHandler-1abba5d8.js';
1
+ import { D as DefaultBodyType, a as ResponseResolver, f as RequestHandlerPublicOptions } from './RequestHandler-e964183f.js';
2
2
  import { RestRequestResolverExtras, RestHandler } from './handlers/RestHandler.js';
3
3
  import { PathParams, Path } from './utils/matching/matchRequestUrl.js';
4
4
  import './typeUtils.js';
@@ -1,6 +1,6 @@
1
1
  import { Emitter } from 'strict-event-emitter';
2
2
  import { UnhandledRequestStrategy } from './utils/request/onUnhandledRequest.js';
3
- import './RequestHandler-1abba5d8.js';
3
+ import './RequestHandler-e964183f.js';
4
4
  import './typeUtils.js';
5
5
 
6
6
  interface SharedOptions {
@@ -1,4 +1,4 @@
1
- import { H as HttpResponseInit } from '../../RequestHandler-1abba5d8.js';
1
+ import { H as HttpResponseInit } from '../../RequestHandler-e964183f.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  interface HttpResponseDecoratedInit extends HttpResponseInit {
@@ -1,2 +1,2 @@
1
- export { h as ResponseLookupResult, i as ResponseResolutionContext, j as getResponse } from '../RequestHandler-1abba5d8.js';
1
+ export { h as ResponseLookupResult, i as ResponseResolutionContext, j as getResponse } from '../RequestHandler-e964183f.js';
2
2
  import '../typeUtils.js';
@@ -41,53 +41,24 @@ __export(getResponse_exports, {
41
41
  getResponse: () => getResponse
42
42
  });
43
43
  module.exports = __toCommonJS(getResponse_exports);
44
- function filterAsync(target, predicate) {
45
- return __async(this, null, function* () {
46
- const results = yield Promise.all(target.map(predicate));
47
- return target.filter((_, index) => results[index]);
48
- });
49
- }
50
44
  const getResponse = (request, handlers, resolutionContext) => __async(void 0, null, function* () {
51
- const relevantHandlers = yield filterAsync(handlers, (handler) => {
52
- return handler.test(request, resolutionContext).catch(() => false);
53
- });
54
- if (relevantHandlers.length === 0) {
55
- return {
56
- request,
57
- handler: void 0,
58
- response: void 0
59
- };
60
- }
61
- const result = yield relevantHandlers.reduce((executionResult, handler) => __async(void 0, null, function* () {
62
- const previousResults = yield executionResult;
63
- if (!!(previousResults == null ? void 0 : previousResults.response)) {
64
- return executionResult;
65
- }
66
- const result2 = yield handler.run(request, resolutionContext);
67
- if (result2 === null) {
68
- return null;
45
+ let matchingHandler = null;
46
+ let result = null;
47
+ for (const handler of handlers) {
48
+ result = yield handler.run(request, resolutionContext);
49
+ if (result !== null) {
50
+ matchingHandler = handler;
69
51
  }
70
- if (!result2.response) {
71
- return {
72
- request: result2.request,
73
- handler: result2.handler,
74
- response: void 0,
75
- parsedResult: result2.parsedResult
76
- };
52
+ if (result == null ? void 0 : result.response) {
53
+ break;
77
54
  }
78
- return result2;
79
- }), Promise.resolve(null));
80
- if (!result) {
55
+ }
56
+ if (matchingHandler) {
81
57
  return {
82
- request,
83
- handler: void 0,
84
- response: void 0
58
+ handler: matchingHandler,
59
+ parsedRequest: result == null ? void 0 : result.parsedResult,
60
+ response: result == null ? void 0 : result.response
85
61
  };
86
62
  }
87
- return {
88
- handler: result.handler,
89
- request: result.request,
90
- parsedRequest: result.parsedResult,
91
- response: result.response
92
- };
63
+ return null;
93
64
  });
@@ -18,55 +18,26 @@ var __async = (__this, __arguments, generator) => {
18
18
  step((generator = generator.apply(__this, __arguments)).next());
19
19
  });
20
20
  };
21
- function filterAsync(target, predicate) {
22
- return __async(this, null, function* () {
23
- const results = yield Promise.all(target.map(predicate));
24
- return target.filter((_, index) => results[index]);
25
- });
26
- }
27
21
  const getResponse = (request, handlers, resolutionContext) => __async(void 0, null, function* () {
28
- const relevantHandlers = yield filterAsync(handlers, (handler) => {
29
- return handler.test(request, resolutionContext).catch(() => false);
30
- });
31
- if (relevantHandlers.length === 0) {
32
- return {
33
- request,
34
- handler: void 0,
35
- response: void 0
36
- };
37
- }
38
- const result = yield relevantHandlers.reduce((executionResult, handler) => __async(void 0, null, function* () {
39
- const previousResults = yield executionResult;
40
- if (!!(previousResults == null ? void 0 : previousResults.response)) {
41
- return executionResult;
42
- }
43
- const result2 = yield handler.run(request, resolutionContext);
44
- if (result2 === null) {
45
- return null;
22
+ let matchingHandler = null;
23
+ let result = null;
24
+ for (const handler of handlers) {
25
+ result = yield handler.run(request, resolutionContext);
26
+ if (result !== null) {
27
+ matchingHandler = handler;
46
28
  }
47
- if (!result2.response) {
48
- return {
49
- request: result2.request,
50
- handler: result2.handler,
51
- response: void 0,
52
- parsedResult: result2.parsedResult
53
- };
29
+ if (result == null ? void 0 : result.response) {
30
+ break;
54
31
  }
55
- return result2;
56
- }), Promise.resolve(null));
57
- if (!result) {
32
+ }
33
+ if (matchingHandler) {
58
34
  return {
59
- request,
60
- handler: void 0,
61
- response: void 0
35
+ handler: matchingHandler,
36
+ parsedRequest: result == null ? void 0 : result.parsedResult,
37
+ response: result == null ? void 0 : result.response
62
38
  };
63
39
  }
64
- return {
65
- handler: result.handler,
66
- request: result.request,
67
- parsedRequest: result.parsedResult,
68
- response: result.response
69
- };
40
+ return null;
70
41
  });
71
42
  export {
72
43
  getResponse
@@ -1,5 +1,5 @@
1
1
  import { Emitter } from 'strict-event-emitter';
2
- import { h as ResponseLookupResult, R as RequestHandler } from '../RequestHandler-1abba5d8.js';
2
+ import { h as ResponseLookupResult, R as RequestHandler } from '../RequestHandler-e964183f.js';
3
3
  import { SharedOptions, LifeCycleEventsMap } from '../sharedOptions.js';
4
4
  import { RequiredDeep } from '../typeUtils.js';
5
5
  import './request/onUnhandledRequest.js';
@@ -43,7 +43,6 @@ __export(handleRequest_exports, {
43
43
  module.exports = __toCommonJS(handleRequest_exports);
44
44
  var import_until = require("@open-draft/until");
45
45
  var import_getResponse = require("./getResponse.js");
46
- var import_devUtils = require("./internal/devUtils.js");
47
46
  var import_onUnhandledRequest = require("./request/onUnhandledRequest.js");
48
47
  var import_readResponseCookies = require("./request/readResponseCookies.js");
49
48
  function handleRequest(request, requestId, handlers, options, emitter, handleRequestOptions) {
@@ -66,24 +65,15 @@ function handleRequest(request, requestId, handlers, options, emitter, handleReq
66
65
  emitter.emit("unhandledException", lookupResult.error, request, requestId);
67
66
  throw lookupResult.error;
68
67
  }
69
- const { handler, response } = lookupResult.data;
70
- if (!handler) {
68
+ if (!lookupResult.data) {
71
69
  yield (0, import_onUnhandledRequest.onUnhandledRequest)(request, handlers, options.onUnhandledRequest);
72
70
  emitter.emit("request:unhandled", request, requestId);
73
71
  emitter.emit("request:end", request, requestId);
74
72
  (_b = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _b.call(handleRequestOptions, request);
75
73
  return;
76
74
  }
75
+ const { response } = lookupResult.data;
77
76
  if (!response) {
78
- import_devUtils.devUtils.warn(
79
- `Expected response resolver to return a mocked response Object, but got %s. The original response is going to be used instead.
80
-
81
- \u2022 %s
82
- %s`,
83
- response,
84
- handler.info.header,
85
- handler.info.callFrame
86
- );
87
77
  emitter.emit("request:end", request, requestId);
88
78
  (_c = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _c.call(handleRequestOptions, request);
89
79
  return;
@@ -20,7 +20,6 @@ var __async = (__this, __arguments, generator) => {
20
20
  };
21
21
  import { until } from "@open-draft/until";
22
22
  import { getResponse } from './getResponse.mjs';
23
- import { devUtils } from './internal/devUtils.mjs';
24
23
  import { onUnhandledRequest } from './request/onUnhandledRequest.mjs';
25
24
  import { readResponseCookies } from './request/readResponseCookies.mjs';
26
25
  function handleRequest(request, requestId, handlers, options, emitter, handleRequestOptions) {
@@ -43,24 +42,15 @@ function handleRequest(request, requestId, handlers, options, emitter, handleReq
43
42
  emitter.emit("unhandledException", lookupResult.error, request, requestId);
44
43
  throw lookupResult.error;
45
44
  }
46
- const { handler, response } = lookupResult.data;
47
- if (!handler) {
45
+ if (!lookupResult.data) {
48
46
  yield onUnhandledRequest(request, handlers, options.onUnhandledRequest);
49
47
  emitter.emit("request:unhandled", request, requestId);
50
48
  emitter.emit("request:end", request, requestId);
51
49
  (_b = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _b.call(handleRequestOptions, request);
52
50
  return;
53
51
  }
52
+ const { response } = lookupResult.data;
54
53
  if (!response) {
55
- devUtils.warn(
56
- `Expected response resolver to return a mocked response Object, but got %s. The original response is going to be used instead.
57
-
58
- \u2022 %s
59
- %s`,
60
- response,
61
- handler.info.header,
62
- handler.info.callFrame
63
- );
64
54
  emitter.emit("request:end", request, requestId);
65
55
  (_c = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _c.call(handleRequestOptions, request);
66
56
  return;
@@ -0,0 +1,7 @@
1
+ type DisposableSubscription = () => Promise<void> | void;
2
+ declare class Disposable {
3
+ protected subscriptions: Array<DisposableSubscription>;
4
+ dispose(): Promise<void>;
5
+ }
6
+
7
+ export { Disposable, DisposableSubscription };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __async = (__this, __arguments, generator) => {
20
+ return new Promise((resolve, reject) => {
21
+ var fulfilled = (value) => {
22
+ try {
23
+ step(generator.next(value));
24
+ } catch (e) {
25
+ reject(e);
26
+ }
27
+ };
28
+ var rejected = (value) => {
29
+ try {
30
+ step(generator.throw(value));
31
+ } catch (e) {
32
+ reject(e);
33
+ }
34
+ };
35
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
+ step((generator = generator.apply(__this, __arguments)).next());
37
+ });
38
+ };
39
+ var Disposable_exports = {};
40
+ __export(Disposable_exports, {
41
+ Disposable: () => Disposable
42
+ });
43
+ module.exports = __toCommonJS(Disposable_exports);
44
+ class Disposable {
45
+ constructor() {
46
+ this.subscriptions = [];
47
+ }
48
+ dispose() {
49
+ return __async(this, null, function* () {
50
+ yield Promise.all(this.subscriptions.map((subscription) => subscription()));
51
+ });
52
+ }
53
+ }
@@ -0,0 +1,33 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ class Disposable {
22
+ constructor() {
23
+ this.subscriptions = [];
24
+ }
25
+ dispose() {
26
+ return __async(this, null, function* () {
27
+ yield Promise.all(this.subscriptions.map((subscription) => subscription()));
28
+ });
29
+ }
30
+ }
31
+ export {
32
+ Disposable
33
+ };
@@ -1,5 +1,5 @@
1
1
  import 'graphql';
2
- export { i as GraphQLMultipartRequestBody, h as GraphQLParsedOperationsMap, g as ParsedGraphQLQuery, P as ParsedGraphQLRequest, p as parseDocumentNode, j as parseGraphQLRequest } from '../../GraphQLHandler-050518a3.js';
3
- import '../../RequestHandler-1abba5d8.js';
2
+ export { i as GraphQLMultipartRequestBody, h as GraphQLParsedOperationsMap, g as ParsedGraphQLQuery, P as ParsedGraphQLRequest, p as parseDocumentNode, j as parseGraphQLRequest } from '../../GraphQLHandler-2e60cda6.js';
3
+ import '../../RequestHandler-e964183f.js';
4
4
  import '../../typeUtils.js';
5
5
  import '../matching/matchRequestUrl.js';
@@ -1,4 +1,4 @@
1
- import { c as DefaultRequestMultipartBody } from '../../RequestHandler-1abba5d8.js';
1
+ import { c as DefaultRequestMultipartBody } from '../../RequestHandler-e964183f.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { R as RequestHandler, g as RequestHandlerDefaultInfo } from '../../RequestHandler-1abba5d8.js';
1
+ import { R as RequestHandler, g as RequestHandlerDefaultInfo } from '../../RequestHandler-e964183f.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  declare function use(currentHandlers: Array<RequestHandler>, ...handlers: Array<RequestHandler>): void;
@@ -1,4 +1,4 @@
1
- import { R as RequestHandler } from '../../RequestHandler-1abba5d8.js';
1
+ import { R as RequestHandler } from '../../RequestHandler-e964183f.js';
2
2
  import '../../typeUtils.js';
3
3
 
4
4
  interface UnhandledRequestPrint {
package/lib/iife/index.js CHANGED
@@ -393,9 +393,22 @@ var MockServiceWorker = (() => {
393
393
  return clone;
394
394
  }
395
395
 
396
+ // src/core/utils/internal/Disposable.ts
397
+ var Disposable = class {
398
+ constructor() {
399
+ this.subscriptions = [];
400
+ }
401
+ dispose() {
402
+ return __async(this, null, function* () {
403
+ yield Promise.all(this.subscriptions.map((subscription) => subscription()));
404
+ });
405
+ }
406
+ };
407
+
396
408
  // src/core/SetupApi.ts
397
- var SetupApi = class {
409
+ var SetupApi = class extends Disposable {
398
410
  constructor(...initialHandlers) {
411
+ super();
399
412
  this.validateHandlers(...initialHandlers);
400
413
  this.initialHandlers = toReadonlyArray(initialHandlers);
401
414
  this.currentHandlers = [...initialHandlers];
@@ -403,6 +416,10 @@ var MockServiceWorker = (() => {
403
416
  this.publicEmitter = new Emitter();
404
417
  pipeEvents(this.emitter, this.publicEmitter);
405
418
  this.events = this.createLifeCycleEvents();
419
+ this.subscriptions.push(() => {
420
+ this.emitter.removeAllListeners();
421
+ this.publicEmitter.removeAllListeners();
422
+ });
406
423
  }
407
424
  validateHandlers(...handlers) {
408
425
  for (const handler of handlers) {
@@ -415,10 +432,6 @@ var MockServiceWorker = (() => {
415
432
  );
416
433
  }
417
434
  }
418
- dispose() {
419
- this.emitter.removeAllListeners();
420
- this.publicEmitter.removeAllListeners();
421
- }
422
435
  use(...runtimeHandlers) {
423
436
  this.currentHandlers.unshift(...runtimeHandlers);
424
437
  }
@@ -519,11 +532,14 @@ var MockServiceWorker = (() => {
519
532
  if (this.isUsed && this.once) {
520
533
  return null;
521
534
  }
535
+ const mainRequestRef = request.clone();
522
536
  this.isUsed = true;
523
- const requestClone = request.clone();
524
- const parsedResult = yield this.parse(request.clone(), resolutionContext);
537
+ const parsedResult = yield this.parse(
538
+ mainRequestRef.clone(),
539
+ resolutionContext
540
+ );
525
541
  const shouldInterceptRequest = this.predicate(
526
- request.clone(),
542
+ mainRequestRef.clone(),
527
543
  parsedResult,
528
544
  resolutionContext
529
545
  );
@@ -538,7 +554,7 @@ var MockServiceWorker = (() => {
538
554
  const executionResult = this.createExecutionResult(
539
555
  // Pass the cloned request to the result so that logging
540
556
  // and other consumers could read its body once more.
541
- requestClone,
557
+ mainRequestRef,
542
558
  parsedResult,
543
559
  mockedResponse
544
560
  );
@@ -1375,7 +1391,7 @@ var MockServiceWorker = (() => {
1375
1391
  return message2.toString();
1376
1392
  }
1377
1393
 
1378
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/node/chunk-3V5OWTY7.mjs
1394
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/node/chunk-3V5OWTY7.mjs
1379
1395
  var __require2 = /* @__PURE__ */ ((x) => typeof __require !== "undefined" ? __require : typeof Proxy !== "undefined" ? new Proxy(x, {
1380
1396
  get: (a, b) => (typeof __require !== "undefined" ? __require : a)[b]
1381
1397
  }) : x)(function(x) {
@@ -1607,7 +1623,7 @@ var MockServiceWorker = (() => {
1607
1623
  }
1608
1624
  };
1609
1625
 
1610
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/node/chunk-SBAVVQIW.mjs
1626
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/node/chunk-SBAVVQIW.mjs
1611
1627
  var BatchInterceptor = class extends Interceptor {
1612
1628
  constructor(options) {
1613
1629
  BatchInterceptor.symbol = Symbol(options.name);
@@ -1631,15 +1647,15 @@ var MockServiceWorker = (() => {
1631
1647
  }
1632
1648
  };
1633
1649
 
1634
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/node/chunk-S5A4P4BZ.mjs
1650
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/node/chunk-S5A4P4BZ.mjs
1635
1651
  var TextEncoder = typeof globalThis.TextEncoder === "undefined" ? __require2("util").TextEncoder : globalThis.TextEncoder;
1636
1652
  var TextDecoder = typeof globalThis.TextDecoder === "undefined" ? __require2("util").TextDecoder : globalThis.TextDecoder;
1637
1653
  var encoder = new TextEncoder();
1638
1654
 
1639
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/node/chunk-GFH37L5D.mjs
1655
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/node/chunk-GFH37L5D.mjs
1640
1656
  var IS_PATCHED_MODULE = Symbol("isPatchedModule");
1641
1657
 
1642
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/node/index.mjs
1658
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/node/index.mjs
1643
1659
  function getCleanUrl(url, isAbsolute = true) {
1644
1660
  return [isAbsolute && url.origin, url.pathname].filter(Boolean).join("");
1645
1661
  }
@@ -5143,55 +5159,26 @@ Consider naming this operation or using "graphql.operation()" request handler to
5143
5159
  });
5144
5160
 
5145
5161
  // src/core/utils/getResponse.ts
5146
- function filterAsync(target, predicate) {
5147
- return __async(this, null, function* () {
5148
- const results = yield Promise.all(target.map(predicate));
5149
- return target.filter((_, index) => results[index]);
5150
- });
5151
- }
5152
5162
  var getResponse = (request, handlers, resolutionContext) => __async(void 0, null, function* () {
5153
- const relevantHandlers = yield filterAsync(handlers, (handler) => {
5154
- return handler.test(request, resolutionContext).catch(() => false);
5155
- });
5156
- if (relevantHandlers.length === 0) {
5157
- return {
5158
- request,
5159
- handler: void 0,
5160
- response: void 0
5161
- };
5162
- }
5163
- const result = yield relevantHandlers.reduce((executionResult, handler) => __async(void 0, null, function* () {
5164
- const previousResults = yield executionResult;
5165
- if (!!(previousResults == null ? void 0 : previousResults.response)) {
5166
- return executionResult;
5167
- }
5168
- const result2 = yield handler.run(request, resolutionContext);
5169
- if (result2 === null) {
5170
- return null;
5171
- }
5172
- if (!result2.response) {
5173
- return {
5174
- request: result2.request,
5175
- handler: result2.handler,
5176
- response: void 0,
5177
- parsedResult: result2.parsedResult
5178
- };
5163
+ let matchingHandler = null;
5164
+ let result = null;
5165
+ for (const handler of handlers) {
5166
+ result = yield handler.run(request, resolutionContext);
5167
+ if (result !== null) {
5168
+ matchingHandler = handler;
5169
+ }
5170
+ if (result == null ? void 0 : result.response) {
5171
+ break;
5179
5172
  }
5180
- return result2;
5181
- }), Promise.resolve(null));
5182
- if (!result) {
5173
+ }
5174
+ if (matchingHandler) {
5183
5175
  return {
5184
- request,
5185
- handler: void 0,
5186
- response: void 0
5176
+ handler: matchingHandler,
5177
+ parsedRequest: result == null ? void 0 : result.parsedResult,
5178
+ response: result == null ? void 0 : result.response
5187
5179
  };
5188
5180
  }
5189
- return {
5190
- handler: result.handler,
5191
- request: result.request,
5192
- parsedRequest: result.parsedResult,
5193
- response: result.response
5194
- };
5181
+ return null;
5195
5182
  });
5196
5183
 
5197
5184
  // node_modules/.pnpm/@bundled-es-modules+js-levenshtein@2.0.1/node_modules/@bundled-es-modules/js-levenshtein/index-esm.js
@@ -5464,24 +5451,15 @@ Read more: https://mswjs.io/docs/getting-started/mocks`
5464
5451
  emitter.emit("unhandledException", lookupResult.error, request, requestId);
5465
5452
  throw lookupResult.error;
5466
5453
  }
5467
- const { handler, response } = lookupResult.data;
5468
- if (!handler) {
5454
+ if (!lookupResult.data) {
5469
5455
  yield onUnhandledRequest(request, handlers, options.onUnhandledRequest);
5470
5456
  emitter.emit("request:unhandled", request, requestId);
5471
5457
  emitter.emit("request:end", request, requestId);
5472
5458
  (_b2 = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _b2.call(handleRequestOptions, request);
5473
5459
  return;
5474
5460
  }
5461
+ const { response } = lookupResult.data;
5475
5462
  if (!response) {
5476
- devUtils.warn(
5477
- `Expected response resolver to return a mocked response Object, but got %s. The original response is going to be used instead.
5478
-
5479
- \u2022 %s
5480
- %s`,
5481
- response,
5482
- handler.info.header,
5483
- handler.info.callFrame
5484
- );
5485
5463
  emitter.emit("request:end", request, requestId);
5486
5464
  (_c = handleRequestOptions == null ? void 0 : handleRequestOptions.onPassthroughResponse) == null ? void 0 : _c.call(handleRequestOptions, request);
5487
5465
  return;
@@ -6067,6 +6045,7 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
6067
6045
  const messageChannel = new WorkerChannel(event.ports[0]);
6068
6046
  const requestId = message2.payload.id;
6069
6047
  const request = parseWorkerRequest(message2.payload);
6048
+ const requestCloneForLogs = request.clone();
6070
6049
  try {
6071
6050
  let _a2;
6072
6051
  yield handleRequest(
@@ -6080,7 +6059,7 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
6080
6059
  messageChannel.postMessage("NOT_FOUND");
6081
6060
  },
6082
6061
  onMockedResponse(_0, _1) {
6083
- return __async(this, arguments, function* (response, { request: request2, handler, parsedRequest }) {
6062
+ return __async(this, arguments, function* (response, { handler, parsedRequest }) {
6084
6063
  const responseClone = response.clone();
6085
6064
  const responseInit = toResponseInit(response);
6086
6065
  const responseStream = responseClone.body;
@@ -6095,7 +6074,7 @@ Learn more about creating the Service Worker script: https://mswjs.io/docs/cli/i
6095
6074
  );
6096
6075
  if (!options.quiet) {
6097
6076
  context.emitter.once("response:mocked", (response2) => {
6098
- handler.log(request2, response2, parsedRequest);
6077
+ handler.log(requestCloneForLogs, response2, parsedRequest);
6099
6078
  });
6100
6079
  }
6101
6080
  });
@@ -6367,7 +6346,7 @@ If this message still persists after updating, please report an issue: https://g
6367
6346
  }
6368
6347
  };
6369
6348
 
6370
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/browser/chunk-RT3ATOJH.mjs
6349
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/browser/chunk-RT3ATOJH.mjs
6371
6350
  function uuidv4() {
6372
6351
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
6373
6352
  const r = Math.random() * 16 | 0;
@@ -6420,7 +6399,7 @@ If this message still persists after updating, please report an issue: https://g
6420
6399
  return request;
6421
6400
  }
6422
6401
 
6423
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/browser/chunk-O7B67YBY.mjs
6402
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/browser/chunk-O7B67YBY.mjs
6424
6403
  var __getOwnPropNames6 = Object.getOwnPropertyNames;
6425
6404
  var __commonJS5 = (cb, mod) => function __require3() {
6426
6405
  return mod || (0, cb[__getOwnPropNames6(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
@@ -6650,7 +6629,7 @@ If this message still persists after updating, please report an issue: https://g
6650
6629
  }
6651
6630
  };
6652
6631
 
6653
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/browser/chunk-4W72RMFC.mjs
6632
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/browser/chunk-4W72RMFC.mjs
6654
6633
  var _FetchInterceptor = class extends Interceptor2 {
6655
6634
  constructor() {
6656
6635
  super(_FetchInterceptor.symbol);
@@ -6747,7 +6726,7 @@ If this message still persists after updating, please report an issue: https://g
6747
6726
  var FetchInterceptor = _FetchInterceptor;
6748
6727
  FetchInterceptor.symbol = Symbol("fetch");
6749
6728
 
6750
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/browser/chunk-UYUNRMLU.mjs
6729
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/browser/chunk-UYUNRMLU.mjs
6751
6730
  var require_shams = __commonJS5({
6752
6731
  "node_modules/has-symbols/shams.js"(exports, module) {
6753
6732
  "use strict";
@@ -8827,7 +8806,7 @@ If this message still persists after updating, please report an issue: https://g
8827
8806
  );
8828
8807
  }
8829
8808
 
8830
- // node_modules/.pnpm/@mswjs+interceptors@0.22.12/node_modules/@mswjs/interceptors/lib/browser/chunk-MJZRQFUP.mjs
8809
+ // node_modules/.pnpm/@mswjs+interceptors@0.22.13/node_modules/@mswjs/interceptors/lib/browser/chunk-MJZRQFUP.mjs
8831
8810
  function concatArrayBuffer(left, right) {
8832
8811
  const result = new Uint8Array(left.byteLength + right.byteLength);
8833
8812
  result.set(left, 0);
@@ -9479,6 +9458,7 @@ If this message still persists after updating, please report an issue: https://g
9479
9458
  interceptors: [new FetchInterceptor(), new XMLHttpRequestInterceptor()]
9480
9459
  });
9481
9460
  interceptor.on("request", (request, requestId) => __async(this, null, function* () {
9461
+ const requestCloneForLogs = request.clone();
9482
9462
  const response = yield handleRequest(
9483
9463
  request,
9484
9464
  requestId,
@@ -9486,10 +9466,10 @@ If this message still persists after updating, please report an issue: https://g
9486
9466
  options,
9487
9467
  context.emitter,
9488
9468
  {
9489
- onMockedResponse(_, { handler, request: request2, parsedRequest }) {
9469
+ onMockedResponse(_, { handler, parsedRequest }) {
9490
9470
  if (!options.quiet) {
9491
9471
  context.emitter.once("response:mocked", (response2) => {
9492
- handler.log(request2, response2, parsedRequest);
9472
+ handler.log(requestCloneForLogs, response2, parsedRequest);
9493
9473
  });
9494
9474
  }
9495
9475
  }
@@ -2,7 +2,7 @@
2
2
  /* tslint:disable */
3
3
 
4
4
  /**
5
- * Mock Service Worker (0.0.0-fetch.rc-12).
5
+ * Mock Service Worker (0.0.0-fetch.rc-14).
6
6
  * @see https://github.com/mswjs/msw
7
7
  * - Please do NOT modify this file.
8
8
  * - Please do NOT serve this file on production.
@@ -96,6 +96,9 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
96
96
  options
97
97
  );
98
98
  this.interceptor.apply();
99
+ this.subscriptions.push(() => {
100
+ this.interceptor.dispose();
101
+ });
99
102
  (0, import_outvariant.invariant)(
100
103
  [import_interceptors.InterceptorReadyState.APPLYING, import_interceptors.InterceptorReadyState.APPLIED].includes(
101
104
  this.interceptor.readyState
@@ -117,8 +120,7 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
117
120
  });
118
121
  }
119
122
  close() {
120
- super.dispose();
121
- this.interceptor.dispose();
123
+ this.dispose();
122
124
  }
123
125
  };
124
126
 
@@ -76,6 +76,9 @@ var SetupServerApi = class extends SetupApi {
76
76
  options
77
77
  );
78
78
  this.interceptor.apply();
79
+ this.subscriptions.push(() => {
80
+ this.interceptor.dispose();
81
+ });
79
82
  invariant(
80
83
  [InterceptorReadyState.APPLYING, InterceptorReadyState.APPLIED].includes(
81
84
  this.interceptor.readyState
@@ -97,8 +100,7 @@ var SetupServerApi = class extends SetupApi {
97
100
  });
98
101
  }
99
102
  close() {
100
- super.dispose();
101
- this.interceptor.dispose();
103
+ this.dispose();
102
104
  }
103
105
  };
104
106
 
package/lib/node/index.js CHANGED
@@ -96,6 +96,9 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
96
96
  options
97
97
  );
98
98
  this.interceptor.apply();
99
+ this.subscriptions.push(() => {
100
+ this.interceptor.dispose();
101
+ });
99
102
  (0, import_outvariant.invariant)(
100
103
  [import_interceptors.InterceptorReadyState.APPLYING, import_interceptors.InterceptorReadyState.APPLIED].includes(
101
104
  this.interceptor.readyState
@@ -117,8 +120,7 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
117
120
  });
118
121
  }
119
122
  close() {
120
- super.dispose();
121
- this.interceptor.dispose();
123
+ this.dispose();
122
124
  }
123
125
  };
124
126
 
@@ -73,6 +73,9 @@ var SetupServerApi = class extends SetupApi {
73
73
  options
74
74
  );
75
75
  this.interceptor.apply();
76
+ this.subscriptions.push(() => {
77
+ this.interceptor.dispose();
78
+ });
76
79
  invariant(
77
80
  [InterceptorReadyState.APPLYING, InterceptorReadyState.APPLIED].includes(
78
81
  this.interceptor.readyState
@@ -94,8 +97,7 @@ var SetupServerApi = class extends SetupApi {
94
97
  });
95
98
  }
96
99
  close() {
97
- super.dispose();
98
- this.interceptor.dispose();
100
+ this.dispose();
99
101
  }
100
102
  };
101
103
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msw",
3
- "version": "0.0.0-fetch.rc-12",
3
+ "version": "0.0.0-fetch.rc-14",
4
4
  "description": "Seamless REST/GraphQL API mocking library for browser and Node.js.",
5
5
  "main": "./lib/core/index.js",
6
6
  "module": "./lib/core/index.mjs",
@@ -113,11 +113,12 @@
113
113
  "@bundled-es-modules/js-levenshtein": "^2.0.1",
114
114
  "@bundled-es-modules/statuses": "^1.0.1",
115
115
  "@mswjs/cookies": "^1.0.0",
116
- "@mswjs/interceptors": "^0.22.12",
116
+ "@mswjs/interceptors": "^0.22.13",
117
117
  "@open-draft/until": "^2.1.0",
118
118
  "@types/cookie": "^0.4.1",
119
119
  "@types/js-levenshtein": "^1.1.1",
120
120
  "@types/statuses": "^2.0.1",
121
+ "chalk": "^4.1.2",
121
122
  "chokidar": "^3.4.2",
122
123
  "formdata-node": "4.4.1",
123
124
  "graphql": "^15.0.0 || ^16.0.0",