@mswjs/interceptors 0.22.10 → 0.22.11

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 (72) hide show
  1. package/lib/browser/{Interceptor-c794917d.d.ts → Interceptor-c8fc448a.d.ts} +3 -3
  2. package/lib/browser/{chunk-KX4GZMPY.mjs → chunk-4W72RMFC.mjs} +15 -11
  3. package/lib/browser/{chunk-OK5YCL7L.js → chunk-ECRLBCQN.js} +55 -55
  4. package/lib/browser/{chunk-KQGVZIDK.js → chunk-EGQUVEJ3.js} +19 -15
  5. package/lib/browser/{chunk-2EIH6L6D.js → chunk-KCAWLR7J.js} +25 -25
  6. package/lib/browser/{chunk-CKVJ2NZB.mjs → chunk-MJZRQFUP.mjs} +67 -54
  7. package/lib/browser/{chunk-H4SFMU2L.js → chunk-NHFEA72Q.js} +74 -61
  8. package/lib/browser/{chunk-2GVXYEMC.mjs → chunk-O7B67YBY.mjs} +54 -54
  9. package/lib/browser/{chunk-65HGG3CV.mjs → chunk-UYUNRMLU.mjs} +1 -1
  10. package/lib/browser/index.d.ts +3 -3
  11. package/lib/browser/index.js +8 -8
  12. package/lib/browser/index.mjs +6 -6
  13. package/lib/browser/interceptors/XMLHttpRequest/index.d.ts +2 -2
  14. package/lib/browser/interceptors/XMLHttpRequest/index.js +4 -4
  15. package/lib/browser/interceptors/XMLHttpRequest/index.mjs +3 -3
  16. package/lib/browser/interceptors/fetch/index.d.ts +2 -2
  17. package/lib/browser/interceptors/fetch/index.js +3 -3
  18. package/lib/browser/interceptors/fetch/index.mjs +2 -2
  19. package/lib/browser/presets/browser.d.ts +2 -2
  20. package/lib/browser/presets/browser.js +6 -6
  21. package/lib/browser/presets/browser.mjs +4 -4
  22. package/lib/node/{BatchInterceptor-5c1e5de3.d.ts → BatchInterceptor-fe69020d.d.ts} +1 -1
  23. package/lib/node/{Interceptor-b3a4098c.d.ts → Interceptor-f9dfe016.d.ts} +3 -3
  24. package/lib/node/RemoteHttpInterceptor.d.ts +3 -3
  25. package/lib/node/RemoteHttpInterceptor.js +25 -19
  26. package/lib/node/RemoteHttpInterceptor.mjs +21 -15
  27. package/lib/node/{chunk-VTP5KY7W.js → chunk-2OJRZCGS.js} +71 -58
  28. package/lib/node/{chunk-6CRMKMDL.mjs → chunk-3V5OWTY7.mjs} +54 -55
  29. package/lib/node/{chunk-62KFIM4W.js → chunk-6KJ5M2VR.js} +56 -57
  30. package/lib/node/{chunk-A3X67VOL.js → chunk-7XU7Q63W.js} +111 -94
  31. package/lib/node/{chunk-MUUQLKVJ.js → chunk-PKB2CXQV.js} +3 -3
  32. package/lib/node/{chunk-SFLY7F52.js → chunk-RJMXHEGJ.js} +6 -6
  33. package/lib/node/{chunk-EHQJSMSD.mjs → chunk-RL5IV5PL.mjs} +67 -54
  34. package/lib/node/{chunk-RFVEKRYP.mjs → chunk-S5A4P4BZ.mjs} +1 -1
  35. package/lib/node/{chunk-IC6Y7RGW.mjs → chunk-SBAVVQIW.mjs} +5 -5
  36. package/lib/node/{chunk-W27FTX2A.mjs → chunk-XVHIXGXD.mjs} +111 -94
  37. package/lib/node/index.d.ts +3 -3
  38. package/lib/node/index.js +4 -4
  39. package/lib/node/index.mjs +3 -3
  40. package/lib/node/interceptors/ClientRequest/index.d.ts +2 -2
  41. package/lib/node/interceptors/ClientRequest/index.js +3 -3
  42. package/lib/node/interceptors/ClientRequest/index.mjs +2 -2
  43. package/lib/node/interceptors/XMLHttpRequest/index.d.ts +2 -2
  44. package/lib/node/interceptors/XMLHttpRequest/index.js +4 -4
  45. package/lib/node/interceptors/XMLHttpRequest/index.mjs +3 -3
  46. package/lib/node/interceptors/fetch/index.d.ts +2 -2
  47. package/lib/node/interceptors/fetch/index.js +16 -12
  48. package/lib/node/interceptors/fetch/index.mjs +15 -11
  49. package/lib/node/presets/node.d.ts +2 -2
  50. package/lib/node/presets/node.js +6 -6
  51. package/lib/node/presets/node.mjs +4 -4
  52. package/package.json +2 -3
  53. package/src/BatchInterceptor.ts +4 -4
  54. package/src/Interceptor.ts +27 -27
  55. package/src/RemoteHttpInterceptor.ts +16 -10
  56. package/src/interceptors/ClientRequest/NodeClientRequest.test.ts +11 -11
  57. package/src/interceptors/ClientRequest/NodeClientRequest.ts +47 -38
  58. package/src/interceptors/ClientRequest/http.request.ts +3 -3
  59. package/src/interceptors/ClientRequest/index.ts +4 -4
  60. package/src/interceptors/ClientRequest/utils/createRequest.test.ts +5 -5
  61. package/src/interceptors/ClientRequest/utils/getIncomingMessageBody.ts +7 -7
  62. package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts +27 -27
  63. package/src/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.ts +4 -4
  64. package/src/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.ts +7 -4
  65. package/src/interceptors/XMLHttpRequest/XMLHttpRequestController.ts +47 -36
  66. package/src/interceptors/XMLHttpRequest/XMLHttpRequestProxy.ts +15 -13
  67. package/src/interceptors/XMLHttpRequest/index.ts +5 -5
  68. package/src/interceptors/fetch/index.ts +14 -11
  69. package/src/utils/AsyncEventEmitter.ts +27 -27
  70. package/src/utils/cloneObject.ts +7 -7
  71. package/src/utils/getUrlByRequestOptions.ts +13 -13
  72. package/src/utils/debug.ts +0 -4
@@ -2,7 +2,7 @@ import {
2
2
  decodeBuffer,
3
3
  encodeBuffer,
4
4
  toArrayBuffer
5
- } from "./chunk-RFVEKRYP.mjs";
5
+ } from "./chunk-S5A4P4BZ.mjs";
6
6
  import {
7
7
  IS_PATCHED_MODULE
8
8
  } from "./chunk-GFH37L5D.mjs";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-STA6QBYM.mjs";
13
13
  import {
14
14
  Interceptor
15
- } from "./chunk-6CRMKMDL.mjs";
15
+ } from "./chunk-3V5OWTY7.mjs";
16
16
 
17
17
  // src/interceptors/XMLHttpRequest/index.ts
18
18
  import { invariant as invariant2 } from "outvariant";
@@ -199,9 +199,9 @@ function createResponse(request, responseBody) {
199
199
  // src/interceptors/XMLHttpRequest/XMLHttpRequestController.ts
200
200
  import { invariant } from "outvariant";
201
201
  var XMLHttpRequestController = class {
202
- constructor(initialRequest, log) {
202
+ constructor(initialRequest, logger) {
203
203
  this.initialRequest = initialRequest;
204
- this.log = log;
204
+ this.logger = logger;
205
205
  this.method = "GET";
206
206
  this.url = null;
207
207
  this.events = /* @__PURE__ */ new Map();
@@ -235,20 +235,20 @@ var XMLHttpRequestController = class {
235
235
  this.method = method;
236
236
  this.url = toAbsoluteUrl(url);
237
237
  }
238
- this.log = this.log.extend(`${this.method} ${this.url.href}`);
239
- this.log("open", this.method, this.url.href);
238
+ this.logger = this.logger.extend(`${this.method} ${this.url.href}`);
239
+ this.logger.info("open", this.method, this.url.href);
240
240
  return invoke();
241
241
  }
242
242
  case "addEventListener": {
243
243
  const [eventName, listener] = args;
244
244
  this.registerEvent(eventName, listener);
245
- this.log("addEventListener", eventName, listener.name);
245
+ this.logger.info("addEventListener", eventName, listener.name);
246
246
  return invoke();
247
247
  }
248
248
  case "setRequestHeader": {
249
249
  const [name, value] = args;
250
250
  this.requestHeaders.set(name, value);
251
- this.log("setRequestHeader", name, value);
251
+ this.logger.info("setRequestHeader", name, value);
252
252
  return invoke();
253
253
  }
254
254
  case "send": {
@@ -274,7 +274,7 @@ var XMLHttpRequestController = class {
274
274
  const onceRequestSettled = ((_a = this.onRequest) == null ? void 0 : _a.call(this, fetchRequest, this.requestId)) || Promise.resolve();
275
275
  onceRequestSettled.finally(() => {
276
276
  if (this.request.readyState < this.request.LOADING) {
277
- this.log(
277
+ this.logger.info(
278
278
  "request callback settled but request has not been handled (readystate %d), performing as-is...",
279
279
  this.request.readyState
280
280
  );
@@ -295,10 +295,10 @@ var XMLHttpRequestController = class {
295
295
  const prevEvents = this.events.get(eventName) || [];
296
296
  const nextEvents = prevEvents.concat(listener);
297
297
  this.events.set(eventName, nextEvents);
298
- this.log('registered event "%s"', eventName, listener.name);
298
+ this.logger.info('registered event "%s"', eventName, listener.name);
299
299
  }
300
300
  respondWith(response) {
301
- this.log(
301
+ this.logger.info(
302
302
  "responding with a mocked response: %d %s",
303
303
  response.status,
304
304
  response.statusText
@@ -308,13 +308,17 @@ var XMLHttpRequestController = class {
308
308
  define(this.request, "responseURL", this.url.href);
309
309
  this.request.getResponseHeader = new Proxy(this.request.getResponseHeader, {
310
310
  apply: (_, __, args) => {
311
- this.log("getResponseHeader", args[0]);
311
+ this.logger.info("getResponseHeader", args[0]);
312
312
  if (this.request.readyState < this.request.HEADERS_RECEIVED) {
313
- this.log("headers not received yet, returning null");
313
+ this.logger.info("headers not received yet, returning null");
314
314
  return null;
315
315
  }
316
316
  const headerValue = response.headers.get(args[0]);
317
- this.log('resolved response header "%s" to', args[0], headerValue);
317
+ this.logger.info(
318
+ 'resolved response header "%s" to',
319
+ args[0],
320
+ headerValue
321
+ );
318
322
  return headerValue;
319
323
  }
320
324
  });
@@ -322,13 +326,13 @@ var XMLHttpRequestController = class {
322
326
  this.request.getAllResponseHeaders,
323
327
  {
324
328
  apply: () => {
325
- this.log("getAllResponseHeaders");
329
+ this.logger.info("getAllResponseHeaders");
326
330
  if (this.request.readyState < this.request.HEADERS_RECEIVED) {
327
- this.log("headers not received yet, returning empty string");
331
+ this.logger.info("headers not received yet, returning empty string");
328
332
  return "";
329
333
  }
330
334
  const allHeaders = headersToString(response.headers);
331
- this.log("resolved all response headers to", allHeaders);
335
+ this.logger.info("resolved all response headers to", allHeaders);
332
336
  return allHeaders;
333
337
  }
334
338
  }
@@ -351,7 +355,7 @@ var XMLHttpRequestController = class {
351
355
  }
352
356
  });
353
357
  const totalResponseBodyLength = response.headers.has("Content-Length") ? Number(response.headers.get("Content-Length")) : void 0;
354
- this.log("calculated response body length", totalResponseBodyLength);
358
+ this.logger.info("calculated response body length", totalResponseBodyLength);
355
359
  this.trigger("loadstart", {
356
360
  loaded: 0,
357
361
  total: totalResponseBodyLength
@@ -359,7 +363,7 @@ var XMLHttpRequestController = class {
359
363
  this.setReadyState(this.request.HEADERS_RECEIVED);
360
364
  this.setReadyState(this.request.LOADING);
361
365
  const finalizeResponse = () => {
362
- this.log("finalizing the mocked response...");
366
+ this.logger.info("finalizing the mocked response...");
363
367
  this.setReadyState(this.request.DONE);
364
368
  this.trigger("load", {
365
369
  loaded: this.responseBuffer.byteLength,
@@ -371,17 +375,17 @@ var XMLHttpRequestController = class {
371
375
  });
372
376
  };
373
377
  if (response.body) {
374
- this.log("mocked response has body, streaming...");
378
+ this.logger.info("mocked response has body, streaming...");
375
379
  const reader = response.body.getReader();
376
380
  const readNextResponseBodyChunk = async () => {
377
381
  const { value, done } = await reader.read();
378
382
  if (done) {
379
- this.log("response body stream done!");
383
+ this.logger.info("response body stream done!");
380
384
  finalizeResponse();
381
385
  return;
382
386
  }
383
387
  if (value) {
384
- this.log("read response body chunk:", value);
388
+ this.logger.info("read response body chunk:", value);
385
389
  this.responseBuffer = concatArrayBuffer(this.responseBuffer, value);
386
390
  this.trigger("progress", {
387
391
  loaded: this.responseBuffer.byteLength,
@@ -399,19 +403,22 @@ var XMLHttpRequestController = class {
399
403
  return decodeBuffer(this.responseBuffer);
400
404
  }
401
405
  get response() {
402
- this.log("getResponse (responseType: %s)", this.request.responseType);
406
+ this.logger.info(
407
+ "getResponse (responseType: %s)",
408
+ this.request.responseType
409
+ );
403
410
  if (this.request.readyState !== this.request.DONE) {
404
411
  return null;
405
412
  }
406
413
  switch (this.request.responseType) {
407
414
  case "json": {
408
415
  const responseJson = parseJson(this.responseBufferToText());
409
- this.log("resolved response JSON", responseJson);
416
+ this.logger.info("resolved response JSON", responseJson);
410
417
  return responseJson;
411
418
  }
412
419
  case "arraybuffer": {
413
420
  const arrayBuffer = toArrayBuffer(this.responseBuffer);
414
- this.log("resolved response ArrayBuffer", arrayBuffer);
421
+ this.logger.info("resolved response ArrayBuffer", arrayBuffer);
415
422
  return arrayBuffer;
416
423
  }
417
424
  case "blob": {
@@ -419,7 +426,7 @@ var XMLHttpRequestController = class {
419
426
  const responseBlob = new Blob([this.responseBufferToText()], {
420
427
  type: mimeType
421
428
  });
422
- this.log(
429
+ this.logger.info(
423
430
  "resolved response Blob (mime type: %s)",
424
431
  responseBlob,
425
432
  mimeType
@@ -428,7 +435,7 @@ var XMLHttpRequestController = class {
428
435
  }
429
436
  default: {
430
437
  const responseText = this.responseBufferToText();
431
- this.log(
438
+ this.logger.info(
432
439
  'resolving "%s" response type as text',
433
440
  this.request.responseType,
434
441
  responseText
@@ -446,7 +453,7 @@ var XMLHttpRequestController = class {
446
453
  return "";
447
454
  }
448
455
  const responseText = this.responseBufferToText();
449
- this.log('getResponseText: "%s"', responseText);
456
+ this.logger.info('getResponseText: "%s"', responseText);
450
457
  return responseText;
451
458
  }
452
459
  get responseXML() {
@@ -473,35 +480,39 @@ var XMLHttpRequestController = class {
473
480
  return null;
474
481
  }
475
482
  errorWith(error) {
476
- this.log("responding with an error");
483
+ this.logger.info("responding with an error");
477
484
  this.setReadyState(this.request.DONE);
478
485
  this.trigger("error");
479
486
  this.trigger("loadend");
480
487
  }
481
488
  setReadyState(nextReadyState) {
482
- this.log("setReadyState: %d -> %d", this.request.readyState, nextReadyState);
489
+ this.logger.info(
490
+ "setReadyState: %d -> %d",
491
+ this.request.readyState,
492
+ nextReadyState
493
+ );
483
494
  if (this.request.readyState === nextReadyState) {
484
- this.log("ready state identical, skipping transition...");
495
+ this.logger.info("ready state identical, skipping transition...");
485
496
  return;
486
497
  }
487
498
  define(this.request, "readyState", nextReadyState);
488
- this.log("set readyState to: %d", nextReadyState);
499
+ this.logger.info("set readyState to: %d", nextReadyState);
489
500
  if (nextReadyState !== this.request.UNSENT) {
490
- this.log('triggerring "readystatechange" event...');
501
+ this.logger.info('triggerring "readystatechange" event...');
491
502
  this.trigger("readystatechange");
492
503
  }
493
504
  }
494
505
  trigger(eventName, options) {
495
506
  const callback = this.request[`on${eventName}`];
496
507
  const event = createEvent(this.request, eventName, options);
497
- this.log('trigger "%s"', eventName, options || "");
508
+ this.logger.info('trigger "%s"', eventName, options || "");
498
509
  if (typeof callback === "function") {
499
- this.log('found a direct "%s" callback, calling...', eventName);
510
+ this.logger.info('found a direct "%s" callback, calling...', eventName);
500
511
  callback.call(this.request, event);
501
512
  }
502
513
  for (const [registeredEventName, listeners] of this.events) {
503
514
  if (registeredEventName === eventName) {
504
- this.log(
515
+ this.logger.info(
505
516
  'found %d listener(s) for "%s" event, calling...',
506
517
  listeners.length,
507
518
  eventName
@@ -511,7 +522,7 @@ var XMLHttpRequestController = class {
511
522
  }
512
523
  }
513
524
  toFetchApiRequest() {
514
- this.log("converting request to a Fetch API Request...");
525
+ this.logger.info("converting request to a Fetch API Request...");
515
526
  const fetchRequest = new Request(this.url.href, {
516
527
  method: this.method,
517
528
  headers: this.requestHeaders,
@@ -539,7 +550,7 @@ var XMLHttpRequestController = class {
539
550
  }
540
551
  });
541
552
  define(fetchRequest, "headers", proxyHeaders);
542
- this.log("converted request to a Fetch API Request!", fetchRequest);
553
+ this.logger.info("converted request to a Fetch API Request!", fetchRequest);
543
554
  return fetchRequest;
544
555
  }
545
556
  };
@@ -557,11 +568,11 @@ function define(target, property, value) {
557
568
  // src/interceptors/XMLHttpRequest/XMLHttpRequestProxy.ts
558
569
  function createXMLHttpRequestProxy({
559
570
  emitter,
560
- log
571
+ logger
561
572
  }) {
562
573
  const XMLHttpRequestProxy = new Proxy(globalThis.XMLHttpRequest, {
563
574
  construct(target, args, newTarget) {
564
- log("constructed new XMLHttpRequest");
575
+ logger.info("constructed new XMLHttpRequest");
565
576
  const originalRequest = Reflect.construct(target, args, newTarget);
566
577
  const prototypeDescriptors = Object.getOwnPropertyDescriptors(
567
578
  target.prototype
@@ -575,16 +586,16 @@ function createXMLHttpRequestProxy({
575
586
  }
576
587
  const requestController = new XMLHttpRequestController(
577
588
  originalRequest,
578
- log
589
+ logger
579
590
  );
580
591
  requestController.onRequest = async function(request, requestId) {
581
592
  const interactiveRequest = toInteractiveRequest(request);
582
- this.log(
593
+ this.logger.info(
583
594
  'emitting the "request" event for %s listener(s)...',
584
595
  emitter.listenerCount("request")
585
596
  );
586
597
  emitter.emit("request", interactiveRequest, requestId);
587
- this.log("awaiting mocked response...");
598
+ this.logger.info("awaiting mocked response...");
588
599
  const resolverResult = await until(async () => {
589
600
  await emitter.untilIdle(
590
601
  "request",
@@ -592,13 +603,13 @@ function createXMLHttpRequestProxy({
592
603
  return pendingRequestId === requestId;
593
604
  }
594
605
  );
595
- this.log('all "request" listeners settled!');
606
+ this.logger.info('all "request" listeners settled!');
596
607
  const [mockedResponse2] = await interactiveRequest.respondWith.invoked();
597
- this.log("event.respondWith called with:", mockedResponse2);
608
+ this.logger.info("event.respondWith called with:", mockedResponse2);
598
609
  return mockedResponse2;
599
610
  });
600
611
  if (resolverResult.error) {
601
- this.log(
612
+ this.logger.info(
602
613
  "request listener threw an exception, aborting request...",
603
614
  resolverResult.error
604
615
  );
@@ -607,17 +618,19 @@ function createXMLHttpRequestProxy({
607
618
  }
608
619
  const mockedResponse = resolverResult.data;
609
620
  if (typeof mockedResponse !== "undefined") {
610
- this.log(
621
+ this.logger.info(
611
622
  "received mocked response: %d %s",
612
623
  mockedResponse.status,
613
624
  mockedResponse.statusText
614
625
  );
615
626
  return requestController.respondWith(mockedResponse);
616
627
  }
617
- this.log("no mocked response received, performing request as-is...");
628
+ this.logger.info(
629
+ "no mocked response received, performing request as-is..."
630
+ );
618
631
  };
619
632
  requestController.onResponse = async function(response, request, requestId) {
620
- this.log(
633
+ this.logger.info(
621
634
  'emitting the "response" event for %s listener(s)...',
622
635
  emitter.listenerCount("response")
623
636
  );
@@ -638,8 +651,8 @@ var _XMLHttpRequestInterceptor = class extends Interceptor {
638
651
  return typeof globalThis.XMLHttpRequest !== "undefined";
639
652
  }
640
653
  setup() {
641
- const log = this.log.extend("setup");
642
- log('patching "XMLHttpRequest" module...');
654
+ const logger = this.logger.extend("setup");
655
+ logger.info('patching "XMLHttpRequest" module...');
643
656
  const PureXMLHttpRequest = globalThis.XMLHttpRequest;
644
657
  invariant2(
645
658
  !PureXMLHttpRequest[IS_PATCHED_MODULE],
@@ -647,9 +660,9 @@ var _XMLHttpRequestInterceptor = class extends Interceptor {
647
660
  );
648
661
  globalThis.XMLHttpRequest = createXMLHttpRequestProxy({
649
662
  emitter: this.emitter,
650
- log: this.log
663
+ logger: this.logger
651
664
  });
652
- log(
665
+ logger.info(
653
666
  'native "XMLHttpRequest" module patched!',
654
667
  globalThis.XMLHttpRequest.name
655
668
  );
@@ -663,7 +676,7 @@ var _XMLHttpRequestInterceptor = class extends Interceptor {
663
676
  value: void 0
664
677
  });
665
678
  globalThis.XMLHttpRequest = PureXMLHttpRequest;
666
- log(
679
+ logger.info(
667
680
  'native "XMLHttpRequest" module restored!',
668
681
  globalThis.XMLHttpRequest.name
669
682
  );
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __require
3
- } from "./chunk-6CRMKMDL.mjs";
3
+ } from "./chunk-3V5OWTY7.mjs";
4
4
 
5
5
  // src/shims/webEncoding.ts
6
6
  var TextEncoder = typeof globalThis.TextEncoder === "undefined" ? __require("util").TextEncoder : globalThis.TextEncoder;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Interceptor
3
- } from "./chunk-6CRMKMDL.mjs";
3
+ } from "./chunk-3V5OWTY7.mjs";
4
4
 
5
5
  // src/BatchInterceptor.ts
6
6
  var BatchInterceptor = class extends Interceptor {
@@ -10,12 +10,12 @@ var BatchInterceptor = class extends Interceptor {
10
10
  this.interceptors = options.interceptors;
11
11
  }
12
12
  setup() {
13
- const log = this.log.extend("setup");
14
- log("applying all %d interceptors...", this.interceptors.length);
13
+ const logger = this.logger.extend("setup");
14
+ logger.info("applying all %d interceptors...", this.interceptors.length);
15
15
  for (const interceptor of this.interceptors) {
16
- log('applying "%s" interceptor...', interceptor.constructor.name);
16
+ logger.info('applying "%s" interceptor...', interceptor.constructor.name);
17
17
  interceptor.apply();
18
- log("adding interceptor dispose subscription");
18
+ logger.info("adding interceptor dispose subscription");
19
19
  this.subscriptions.push(() => interceptor.dispose());
20
20
  }
21
21
  }