@mswjs/interceptors 0.17.6 → 0.18.1

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 (115) hide show
  1. package/README.md +49 -47
  2. package/lib/Interceptor.js +4 -4
  3. package/lib/Interceptor.js.map +1 -1
  4. package/lib/RemoteHttpInterceptor.d.ts +15 -0
  5. package/lib/RemoteHttpInterceptor.js +86 -56
  6. package/lib/RemoteHttpInterceptor.js.map +1 -1
  7. package/lib/glossary.d.ts +3 -14
  8. package/lib/glossary.js.map +1 -1
  9. package/lib/index.d.ts +0 -2
  10. package/lib/index.js +0 -2
  11. package/lib/index.js.map +1 -1
  12. package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +13 -5
  13. package/lib/interceptors/ClientRequest/NodeClientRequest.js +179 -166
  14. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +1 -1
  15. package/lib/interceptors/ClientRequest/http.get.js +9 -5
  16. package/lib/interceptors/ClientRequest/http.get.js.map +1 -1
  17. package/lib/interceptors/ClientRequest/http.request.js +10 -6
  18. package/lib/interceptors/ClientRequest/http.request.js.map +1 -1
  19. package/lib/interceptors/ClientRequest/index.d.ts +2 -5
  20. package/lib/interceptors/ClientRequest/index.js +2 -13
  21. package/lib/interceptors/ClientRequest/index.js.map +1 -1
  22. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +9 -5
  23. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +1 -1
  24. package/lib/interceptors/ClientRequest/utils/createRequest.d.ts +6 -0
  25. package/lib/interceptors/ClientRequest/utils/createRequest.js +52 -0
  26. package/lib/interceptors/ClientRequest/utils/createRequest.js.map +1 -0
  27. package/lib/interceptors/ClientRequest/utils/createResponse.d.ts +8 -0
  28. package/lib/interceptors/ClientRequest/utils/createResponse.js +24 -0
  29. package/lib/interceptors/ClientRequest/utils/createResponse.js.map +1 -0
  30. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +1 -1
  31. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +1 -1
  32. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +8 -8
  33. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +1 -1
  34. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.d.ts +1 -1
  35. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +1 -1
  36. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +1 -1
  37. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.d.ts +6 -10
  38. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js +203 -143
  39. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js.map +1 -1
  40. package/lib/interceptors/XMLHttpRequest/index.d.ts +2 -2
  41. package/lib/interceptors/XMLHttpRequest/index.js +2 -2
  42. package/lib/interceptors/XMLHttpRequest/index.js.map +1 -1
  43. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.d.ts +4 -0
  44. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js +14 -0
  45. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js.map +1 -0
  46. package/lib/interceptors/XMLHttpRequest/utils/createResponse.d.ts +2 -0
  47. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js +14 -0
  48. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js.map +1 -0
  49. package/lib/interceptors/fetch/index.js +24 -81
  50. package/lib/interceptors/fetch/index.js.map +1 -1
  51. package/lib/utils/AsyncEventEmitter.js +12 -8
  52. package/lib/utils/AsyncEventEmitter.js.map +1 -1
  53. package/lib/utils/RequestWithCredentials.d.ts +2 -0
  54. package/lib/utils/RequestWithCredentials.js +20 -0
  55. package/lib/utils/RequestWithCredentials.js.map +1 -0
  56. package/lib/utils/bufferUtils.d.ts +7 -2
  57. package/lib/utils/bufferUtils.js +10 -6
  58. package/lib/utils/bufferUtils.js.map +1 -1
  59. package/lib/utils/parseJson.d.ts +1 -1
  60. package/lib/utils/toInteractiveRequest.d.ts +7 -0
  61. package/lib/utils/toInteractiveRequest.js +20 -0
  62. package/lib/utils/toInteractiveRequest.js.map +1 -0
  63. package/package.json +3 -2
  64. package/src/RemoteHttpInterceptor.ts +84 -34
  65. package/src/glossary.ts +5 -18
  66. package/src/index.ts +0 -2
  67. package/src/interceptors/ClientRequest/NodeClientRequest.test.ts +17 -23
  68. package/src/interceptors/ClientRequest/NodeClientRequest.ts +177 -153
  69. package/src/interceptors/ClientRequest/index.test.ts +5 -3
  70. package/src/interceptors/ClientRequest/index.ts +2 -26
  71. package/src/interceptors/ClientRequest/utils/createRequest.test.ts +61 -0
  72. package/src/interceptors/ClientRequest/utils/createRequest.ts +32 -0
  73. package/src/interceptors/ClientRequest/utils/createResponse.test.ts +24 -0
  74. package/src/interceptors/ClientRequest/utils/createResponse.ts +22 -0
  75. package/src/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.ts +1 -1
  76. package/src/interceptors/XMLHttpRequest/XMLHttpRequestOverride.ts +234 -174
  77. package/src/interceptors/XMLHttpRequest/index.ts +3 -2
  78. package/src/interceptors/XMLHttpRequest/utils/concatArrayBuffer.ts +12 -0
  79. package/src/interceptors/XMLHttpRequest/utils/concateArrayBuffer.test.ts +14 -0
  80. package/src/interceptors/XMLHttpRequest/utils/createResponse.ts +13 -0
  81. package/src/interceptors/fetch/index.ts +30 -69
  82. package/src/utils/RequestWithCredentials.test.ts +20 -0
  83. package/src/utils/RequestWithCredentials.ts +24 -0
  84. package/src/utils/bufferUtils.ts +10 -5
  85. package/src/utils/parseJson.ts +1 -1
  86. package/src/utils/toInteractiveRequest.ts +29 -0
  87. package/lib/InteractiveIsomorphicRequest.d.ts +0 -7
  88. package/lib/InteractiveIsomorphicRequest.js +0 -37
  89. package/lib/InteractiveIsomorphicRequest.js.map +0 -1
  90. package/lib/IsomorphicRequest.d.ts +0 -24
  91. package/lib/IsomorphicRequest.js +0 -107
  92. package/lib/IsomorphicRequest.js.map +0 -1
  93. package/lib/interceptors/ClientRequest/utils/bodyBufferToString.d.ts +0 -2
  94. package/lib/interceptors/ClientRequest/utils/bodyBufferToString.js +0 -11
  95. package/lib/interceptors/ClientRequest/utils/bodyBufferToString.js.map +0 -1
  96. package/lib/interceptors/ClientRequest/utils/concatChunkToBuffer.d.ts +0 -2
  97. package/lib/interceptors/ClientRequest/utils/concatChunkToBuffer.js +0 -11
  98. package/lib/interceptors/ClientRequest/utils/concatChunkToBuffer.js.map +0 -1
  99. package/lib/interceptors/XMLHttpRequest/utils/bufferFrom.d.ts +0 -5
  100. package/lib/interceptors/XMLHttpRequest/utils/bufferFrom.js +0 -20
  101. package/lib/interceptors/XMLHttpRequest/utils/bufferFrom.js.map +0 -1
  102. package/lib/utils/toIsoResponse.d.ts +0 -5
  103. package/lib/utils/toIsoResponse.js +0 -18
  104. package/lib/utils/toIsoResponse.js.map +0 -1
  105. package/src/InteractiveIsomorphicRequest.ts +0 -24
  106. package/src/IsomorphicRequest.test.ts +0 -106
  107. package/src/IsomorphicRequest.ts +0 -86
  108. package/src/interceptors/ClientRequest/utils/bodyBufferToString.test.ts +0 -16
  109. package/src/interceptors/ClientRequest/utils/bodyBufferToString.ts +0 -7
  110. package/src/interceptors/ClientRequest/utils/concatChunkToBuffer.test.ts +0 -13
  111. package/src/interceptors/ClientRequest/utils/concatChunkToBuffer.ts +0 -10
  112. package/src/interceptors/XMLHttpRequest/utils/bufferFrom.test.ts +0 -11
  113. package/src/interceptors/XMLHttpRequest/utils/bufferFrom.ts +0 -16
  114. package/src/utils/toIsoResponse.test.ts +0 -39
  115. package/src/utils/toIsoResponse.ts +0 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concatArrayBuffer.js","sourceRoot":"","sources":["../../../../src/interceptors/XMLHttpRequest/utils/concatArrayBuffer.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,KAAiB;IAEjB,IAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAClC,OAAO,MAAM,CAAA;AACf,CAAC;AARD,8CAQC"}
@@ -0,0 +1,2 @@
1
+ import { Response } from '@remix-run/web-fetch';
2
+ export declare function createResponse(request: XMLHttpRequest, responseBody: Uint8Array): Response;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createResponse = void 0;
4
+ var web_fetch_1 = require("@remix-run/web-fetch");
5
+ var headers_polyfill_1 = require("headers-polyfill");
6
+ function createResponse(request, responseBody) {
7
+ return new web_fetch_1.Response(responseBody, {
8
+ status: request.status,
9
+ statusText: request.statusText,
10
+ headers: (0, headers_polyfill_1.stringToHeaders)(request.getAllResponseHeaders()),
11
+ });
12
+ }
13
+ exports.createResponse = createResponse;
14
+ //# sourceMappingURL=createResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createResponse.js","sourceRoot":"","sources":["../../../../src/interceptors/XMLHttpRequest/utils/createResponse.ts"],"names":[],"mappings":";;;AAAA,kDAA+C;AAC/C,qDAAkD;AAElD,SAAgB,cAAc,CAC5B,OAAuB,EACvB,YAAwB;IAExB,OAAO,IAAI,oBAAQ,CAAC,YAAY,EAAE;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE,IAAA,kCAAe,EAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC;AATD,wCASC"}
@@ -14,17 +14,6 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
17
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
18
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
19
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -79,13 +68,11 @@ var __read = (this && this.__read) || function (o, n) {
79
68
  };
80
69
  Object.defineProperty(exports, "__esModule", { value: true });
81
70
  exports.FetchInterceptor = void 0;
82
- var headers_polyfill_1 = require("headers-polyfill");
83
71
  var outvariant_1 = require("outvariant");
84
- var IsomorphicRequest_1 = require("../../IsomorphicRequest");
85
72
  var glossary_1 = require("../../glossary");
86
73
  var Interceptor_1 = require("../../Interceptor");
87
- var toIsoResponse_1 = require("../../utils/toIsoResponse");
88
- var InteractiveIsomorphicRequest_1 = require("../../InteractiveIsomorphicRequest");
74
+ var uuid_1 = require("../../utils/uuid");
75
+ var toInteractiveRequest_1 = require("../../utils/toInteractiveRequest");
89
76
  var FetchInterceptor = /** @class */ (function (_super) {
90
77
  __extends(FetchInterceptor, _super);
91
78
  function FetchInterceptor() {
@@ -98,79 +85,53 @@ var FetchInterceptor = /** @class */ (function (_super) {
98
85
  FetchInterceptor.prototype.setup = function () {
99
86
  var _this = this;
100
87
  var pureFetch = globalThis.fetch;
101
- outvariant_1.invariant(!pureFetch[glossary_1.IS_PATCHED_MODULE], 'Failed to patch the "fetch" module: already patched.');
88
+ (0, outvariant_1.invariant)(!pureFetch[glossary_1.IS_PATCHED_MODULE], 'Failed to patch the "fetch" module: already patched.');
102
89
  globalThis.fetch = function (input, init) { return __awaiter(_this, void 0, void 0, function () {
103
- var request, url, method, body, isomorphicRequest, interactiveIsomorphicRequest, _a, mockedResponse, isomorphicResponse, response;
90
+ var requestId, request, interactiveRequest, _a, mockedResponse, responseCloine, response;
104
91
  var _this = this;
105
92
  return __generator(this, function (_b) {
106
93
  switch (_b.label) {
107
94
  case 0:
95
+ requestId = (0, uuid_1.uuidv4)();
108
96
  request = new Request(input, init);
109
- url = typeof input === 'string' ? input : input.url;
110
- method = request.method;
111
- this.log('[%s] %s', method, url);
112
- return [4 /*yield*/, request.clone().arrayBuffer()];
113
- case 1:
114
- body = _b.sent();
115
- isomorphicRequest = new IsomorphicRequest_1.IsomorphicRequest(new URL(url, location.origin), {
116
- body: body,
117
- method: method,
118
- headers: new headers_polyfill_1.Headers(request.headers),
119
- credentials: request.credentials,
120
- });
121
- interactiveIsomorphicRequest = new InteractiveIsomorphicRequest_1.InteractiveIsomorphicRequest(isomorphicRequest);
122
- this.log('isomorphic request', interactiveIsomorphicRequest);
97
+ this.log('[%s] %s', request.method, request.url);
98
+ interactiveRequest = (0, toInteractiveRequest_1.toInteractiveRequest)(request);
123
99
  this.log('emitting the "request" event for %d listener(s)...', this.emitter.listenerCount('request'));
124
- this.emitter.emit('request', interactiveIsomorphicRequest);
100
+ this.emitter.emit('request', interactiveRequest, requestId);
125
101
  this.log('awaiting for the mocked response...');
126
102
  return [4 /*yield*/, this.emitter.untilIdle('request', function (_a) {
127
- var _b = __read(_a.args, 1), request = _b[0];
128
- return request.id === interactiveIsomorphicRequest.id;
103
+ var _b = __read(_a.args, 2), pendingRequestId = _b[1];
104
+ return pendingRequestId === requestId;
129
105
  })];
130
- case 2:
106
+ case 1:
131
107
  _b.sent();
132
108
  this.log('all request listeners have been resolved!');
133
- return [4 /*yield*/, interactiveIsomorphicRequest.respondWith.invoked()];
134
- case 3:
109
+ return [4 /*yield*/, interactiveRequest.respondWith.invoked()];
110
+ case 2:
135
111
  _a = __read.apply(void 0, [_b.sent(), 1]), mockedResponse = _a[0];
136
112
  this.log('event.respondWith called with:', mockedResponse);
137
113
  if (mockedResponse) {
138
114
  this.log('received mocked response:', mockedResponse);
139
- isomorphicResponse = toIsoResponse_1.toIsoResponse(mockedResponse);
140
- this.log('derived isomorphic response:', isomorphicResponse);
141
- this.emitter.emit('response', interactiveIsomorphicRequest, isomorphicResponse);
142
- response = new Response(mockedResponse.body, __assign(__assign({}, isomorphicResponse), {
143
- // `Response.headers` cannot be instantiated with the `Headers` polyfill.
144
- // Apparently, it halts if the `Headers` class contains unknown properties
145
- // (i.e. the internal `Headers.map`).
146
- headers: headers_polyfill_1.flattenHeadersObject(mockedResponse.headers || {}) }));
115
+ responseCloine = mockedResponse.clone();
116
+ this.emitter.emit('response', responseCloine, interactiveRequest, requestId);
117
+ response = new Response(mockedResponse.body, mockedResponse);
147
118
  // Set the "response.url" property to equal the intercepted request URL.
148
119
  Object.defineProperty(response, 'url', {
149
120
  writable: false,
150
121
  enumerable: true,
151
122
  configurable: false,
152
- value: interactiveIsomorphicRequest.url.href,
123
+ value: request.url,
153
124
  });
154
125
  return [2 /*return*/, response];
155
126
  }
156
127
  this.log('no mocked response received!');
157
- return [2 /*return*/, pureFetch(request).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
158
- var cloneResponse, _a, _b, _c;
159
- return __generator(this, function (_d) {
160
- switch (_d.label) {
161
- case 0:
162
- cloneResponse = response.clone();
163
- this.log('original fetch performed', cloneResponse);
164
- _b = (_a = this.emitter).emit;
165
- _c = ['response',
166
- interactiveIsomorphicRequest];
167
- return [4 /*yield*/, normalizeFetchResponse(cloneResponse)];
168
- case 1:
169
- _b.apply(_a, _c.concat([_d.sent()]));
170
- return [2 /*return*/, response];
171
- }
172
- });
173
- }); })];
128
+ console.log('or req headers', Array.from(request.headers.entries()));
129
+ return [2 /*return*/, pureFetch(request).then(function (response) {
130
+ var responseClone = response.clone();
131
+ _this.log('original fetch performed', responseClone);
132
+ _this.emitter.emit('response', responseClone, interactiveRequest, requestId);
133
+ return response;
134
+ })];
174
135
  }
175
136
  });
176
137
  }); };
@@ -191,22 +152,4 @@ var FetchInterceptor = /** @class */ (function (_super) {
191
152
  return FetchInterceptor;
192
153
  }(Interceptor_1.Interceptor));
193
154
  exports.FetchInterceptor = FetchInterceptor;
194
- function normalizeFetchResponse(response) {
195
- return __awaiter(this, void 0, void 0, function () {
196
- var _a;
197
- return __generator(this, function (_b) {
198
- switch (_b.label) {
199
- case 0:
200
- _a = {
201
- status: response.status,
202
- statusText: response.statusText,
203
- headers: headers_polyfill_1.objectToHeaders(headers_polyfill_1.headersToObject(response.headers))
204
- };
205
- return [4 /*yield*/, response.text()];
206
- case 1: return [2 /*return*/, (_a.body = _b.sent(),
207
- _a)];
208
- }
209
- });
210
- });
211
- }
212
155
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/fetch/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/fetch/index.ts"],"names":[],"mappings":"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"}
@@ -66,10 +66,14 @@ var __read = (this && this.__read) || function (o, n) {
66
66
  }
67
67
  return ar;
68
68
  };
69
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
70
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
71
- to[j] = from[i];
72
- return to;
69
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
70
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
71
+ if (ar || !(i in from)) {
72
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
73
+ ar[i] = from[i];
74
+ }
75
+ }
76
+ return to.concat(ar || Array.prototype.slice.call(from));
73
77
  };
74
78
  Object.defineProperty(exports, "__esModule", { value: true });
75
79
  exports.AsyncEventEmitter = exports.AsyncEventEmitterReadyState = void 0;
@@ -85,7 +89,7 @@ var AsyncEventEmitter = /** @class */ (function (_super) {
85
89
  __extends(AsyncEventEmitter, _super);
86
90
  function AsyncEventEmitter() {
87
91
  var _this = _super.call(this) || this;
88
- _this.log = debug_1.debug('async-event-emitter');
92
+ _this.log = (0, debug_1.debug)('async-event-emitter');
89
93
  _this.queue = new Map();
90
94
  _this.readyState = AsyncEventEmitterReadyState.ACTIVE;
91
95
  return _this;
@@ -121,7 +125,7 @@ var AsyncEventEmitter = /** @class */ (function (_super) {
121
125
  _a.trys.push([0, 2, , 3]);
122
126
  // Treat listeners as potentially asynchronous functions
123
127
  // so they could be awaited.
124
- return [4 /*yield*/, listener.apply(void 0, __spreadArray([], __read(args)))];
128
+ return [4 /*yield*/, listener.apply(void 0, __spreadArray([], __read(args), false))];
125
129
  case 1:
126
130
  // Treat listeners as potentially asynchronous functions
127
131
  // so they could be awaited.
@@ -164,12 +168,12 @@ var AsyncEventEmitter = /** @class */ (function (_super) {
164
168
  // Clear the Promise queue for this particular event
165
169
  // in the next tick so the Promise in "untilIdle" has
166
170
  // time to properly resolve.
167
- nextTick_1.nextTick(function () {
171
+ (0, nextTick_1.nextTick)(function () {
168
172
  _this.queue.delete(event);
169
173
  log('cleaned up "%s" listeners queue!', event);
170
174
  });
171
175
  }));
172
- return _super.prototype.emit.apply(this, __spreadArray([event], __read(args)));
176
+ return _super.prototype.emit.apply(this, __spreadArray([event], __read(args), false));
173
177
  };
174
178
  /**
175
179
  * Returns a promise that resolves when all the listeners for the given event
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncEventEmitter.js","sourceRoot":"","sources":["../../src/utils/AsyncEventEmitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsyncEventEmitter.js","sourceRoot":"","sources":["../../src/utils/AsyncEventEmitter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,6DAAuE;AACvE,uCAAqC;AAOrC,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,gDAAiB,CAAA;IACjB,0DAA2B,CAAA;AAC7B,CAAC,EAHW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAGtC;AAED;IAEU,qCAA4B;IASpC;QAAA,YACE,iBAAO,SAMR;QAJC,KAAI,CAAC,GAAG,GAAG,IAAA,aAAK,EAAC,qBAAqB,CAAC,CAAA;QACvC,KAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;QAEtB,KAAI,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAA;;IACtD,CAAC;IAEM,8BAAE,GAAT,UACE,KAAY,EACZ,QAAyB;QAF3B,iBAsCC;QAlCC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAErC,IAAI,IAAI,CAAC,UAAU,KAAK,2BAA2B,CAAC,WAAW,EAAE;YAC/D,GAAG,CAAC,qCAAqC,CAAC,CAAA;YAC1C,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,iBAAM,EAAE,YAAC,KAAK,EAAE,CAAC;YAAO,cAAoC;iBAApC,UAAoC,EAApC,qBAAoC,EAApC,IAAoC;gBAApC,yBAAoC;;;;;;oBAE3D,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;oBAE3C,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;oBAE3C,sDAAsD;oBACtD,qEAAqE;oBACrE,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,MAAA;wBACJ,IAAI,EAAE,IAAI,OAAO,CAAO,UAAO,OAAO,EAAE,MAAM;;;;;;wCAE1C,wDAAwD;wCACxD,4BAA4B;wCAC5B,qBAAM,QAAQ,wCAAI,IAAI,YAAC;;wCAFvB,wDAAwD;wCACxD,4BAA4B;wCAC5B,SAAuB,CAAA;wCACvB,OAAO,EAAE,CAAA;wCAET,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;;;;wCAEzC,GAAG,CAAC,6BAA6B,EAAE,OAAK,CAAC,CAAA;wCACzC,MAAM,CAAC,OAAK,CAAC,CAAA;;;;;6BAEhB,CAAC;qBACH,CAAC,CAAA;;;;SACH,CAAoB,CAAC,CAAA;IACxB,CAAC;IAEM,gCAAI,GAAX,UACE,KAAY;QADd,iBA8BC;QA5BC,cAAoC;aAApC,UAAoC,EAApC,qBAAoC,EAApC,IAAoC;YAApC,6BAAoC;;QAEpC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEnC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,UAAU,KAAK,2BAA2B,CAAC,WAAW,EAAE;YAC/D,GAAG,CAAC,qCAAqC,CAAC,CAAA;YAC1C,OAAO,KAAK,CAAA;SACb;QAED,yDAAyD;QACzD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAE7B,GAAG,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAA;QAE3D,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,oDAAoD;YACpD,qDAAqD;YACrD,4BAA4B;YAC5B,IAAA,mBAAQ,EAAC;gBACP,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAoB,CAAC,CAAA;QAEtB,OAAO,iBAAM,IAAI,4BAAC,KAAK,UAAK,IAAI,WAAC;IACnC,CAAC;IAED;;;;OAIG;IACU,qCAAS,GAAtB,UACE,KAAY,EACZ,MACM;QADN,uBAAA,EAAA;YACE,OAAA,IAAI;QAAJ,CAAI;;;;;;;wBAEA,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;wBAElD,qBAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,EAAQ;oCAAN,IAAI,UAAA;gCAAO,OAAA,IAAI;4BAAJ,CAAI,CAAC,CACtD,CAAC,OAAO,CAAC;gCACR,0CAA0C;gCAC1C,uDAAuD;gCACvD,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;4BAC1B,CAAC,CAAC,EAAA;;wBANF,SAME,CAAA;;;;;KACH;IAEO,6CAAiB,GAAzB,UACE,KAAY;QAEZ,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAEhD,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;QAE7C,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEnC,IAAI,CAAC,KAAK,EAAE;YACV,GAAG,CAAC,iCAAiC,CAAC,CAAA;YAEtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzB,OAAO,EAAE,CAAA;SACV;QAED,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,8CAAkB,GAAzB,UAAwD,KAAa;QACnE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACjD,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAEpB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxB,GAAG,CAAC,mCAAmC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;SACvE;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;YAClB,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;SAChD;QAED,OAAO,iBAAM,kBAAkB,YAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAEM,oCAAQ,GAAf;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAA;QACpD,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACI,sCAAU,GAAjB;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAEzC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,IAAI,CAAC,UAAU,GAAG,2BAA2B,CAAC,WAAW,CAAA;QACzD,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC,AAxKD,CAEU,yCAAkB,GAsK3B;AAxKY,8CAAiB"}
@@ -0,0 +1,2 @@
1
+ import { Request } from '@remix-run/web-fetch';
2
+ export declare const RequestWithCredentials: typeof Request;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestWithCredentials = void 0;
4
+ var web_fetch_1 = require("@remix-run/web-fetch");
5
+ /**
6
+ * Custom wrapper around Remix's "Request" until it
7
+ * supports "credentials" correctly.
8
+ * @see https://github.com/remix-run/web-std-io/pull/21
9
+ */
10
+ function RequestOverride(input, init) {
11
+ var request = new web_fetch_1.Request(input, init);
12
+ Object.defineProperty(request, 'credentials', {
13
+ value: (init === null || init === void 0 ? void 0 : init.credentials) || 'same-origin',
14
+ enumerable: true,
15
+ writable: false,
16
+ });
17
+ return request;
18
+ }
19
+ exports.RequestWithCredentials = RequestOverride;
20
+ //# sourceMappingURL=RequestWithCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestWithCredentials.js","sourceRoot":"","sources":["../../src/utils/RequestWithCredentials.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAE9C;;;;GAIG;AACH,SAAS,eAAe,CACtB,KAA6B,EAC7B,IAAkB;IAElB,IAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAExC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5C,KAAK,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,aAAa;QACzC,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC;AAEY,QAAA,sBAAsB,GACjC,eAA4C,CAAA"}
@@ -1,3 +1,8 @@
1
- export declare function encodeBuffer(text: string): ArrayBuffer;
1
+ export declare function encodeBuffer(text: string): Uint8Array;
2
2
  export declare function decodeBuffer(buffer: ArrayBuffer, encoding?: string): string;
3
- export declare function getArrayBuffer(array: Uint8Array): ArrayBuffer;
3
+ /**
4
+ * Create an `ArrayBuffer` from the given `Uint8Array`.
5
+ * Takes the byte offset into account to produce the right buffer
6
+ * in the case when the buffer is bigger than the data view.
7
+ */
8
+ export declare function toArrayBuffer(array: Uint8Array): ArrayBuffer;
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getArrayBuffer = exports.decodeBuffer = exports.encodeBuffer = void 0;
3
+ exports.toArrayBuffer = exports.decodeBuffer = exports.encodeBuffer = void 0;
4
4
  var web_encoding_1 = require("web-encoding");
5
+ var encoder = new web_encoding_1.TextEncoder();
5
6
  function encodeBuffer(text) {
6
- var encoder = new web_encoding_1.TextEncoder();
7
- var encoded = encoder.encode(text);
8
- return getArrayBuffer(encoded);
7
+ return encoder.encode(text);
9
8
  }
10
9
  exports.encodeBuffer = encodeBuffer;
11
10
  function decodeBuffer(buffer, encoding) {
@@ -13,8 +12,13 @@ function decodeBuffer(buffer, encoding) {
13
12
  return decoder.decode(buffer);
14
13
  }
15
14
  exports.decodeBuffer = decodeBuffer;
16
- function getArrayBuffer(array) {
15
+ /**
16
+ * Create an `ArrayBuffer` from the given `Uint8Array`.
17
+ * Takes the byte offset into account to produce the right buffer
18
+ * in the case when the buffer is bigger than the data view.
19
+ */
20
+ function toArrayBuffer(array) {
17
21
  return array.buffer.slice(array.byteOffset, array.byteOffset + array.byteLength);
18
22
  }
19
- exports.getArrayBuffer = getArrayBuffer;
23
+ exports.toArrayBuffer = toArrayBuffer;
20
24
  //# sourceMappingURL=bufferUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bufferUtils.js","sourceRoot":"","sources":["../../src/utils/bufferUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAEvD,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAA;IACjC,IAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAJD,oCAIC;AAED,SAAgB,YAAY,CAAC,MAAmB,EAAE,QAAiB;IACjE,IAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAHD,oCAGC;AAED,SAAgB,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACpC,CAAA;AACH,CAAC;AALD,wCAKC"}
1
+ {"version":3,"file":"bufferUtils.js","sourceRoot":"","sources":["../../src/utils/bufferUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAEvD,IAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAA;AAEjC,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAFD,oCAEC;AAED,SAAgB,YAAY,CAAC,MAAmB,EAAE,QAAiB;IACjE,IAAM,OAAO,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAHD,oCAGC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,KAAiB;IAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACpC,CAAA;AACH,CAAC;AALD,sCAKC"}
@@ -2,4 +2,4 @@
2
2
  * Parses a given string into JSON.
3
3
  * Gracefully handles invalid JSON by returning `null`.
4
4
  */
5
- export declare function parseJson(data: string): Record<string, any> | null;
5
+ export declare function parseJson(data: string): Record<string, unknown> | null;
@@ -0,0 +1,7 @@
1
+ import { LazyCallback } from './createLazyCallback';
2
+ declare type LazyResponseCallback = (response: Response) => void;
3
+ export declare type InteractiveRequest = globalThis.Request & {
4
+ respondWith: LazyCallback<LazyResponseCallback>;
5
+ };
6
+ export declare function toInteractiveRequest(request: Request): InteractiveRequest;
7
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInteractiveRequest = void 0;
4
+ var outvariant_1 = require("outvariant");
5
+ var createLazyCallback_1 = require("./createLazyCallback");
6
+ function toInteractiveRequest(request) {
7
+ Object.defineProperty(request, 'respondWith', {
8
+ writable: false,
9
+ enumerable: true,
10
+ value: (0, createLazyCallback_1.createLazyCallback)({
11
+ maxCalls: 1,
12
+ maxCallsCallback: function () {
13
+ throw new Error((0, outvariant_1.format)('Failed to respond to "%s %s" request: the "request" event has already been responded to.', request.method, request.url));
14
+ },
15
+ }),
16
+ });
17
+ return request;
18
+ }
19
+ exports.toInteractiveRequest = toInteractiveRequest;
20
+ //# sourceMappingURL=toInteractiveRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInteractiveRequest.js","sourceRoot":"","sources":["../../src/utils/toInteractiveRequest.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AACnC,2DAAuE;AAQvE,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5C,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAA,uCAAkB,EAAuB;YAC9C,QAAQ,EAAE,CAAC;YACX,gBAAgB;gBACd,MAAM,IAAI,KAAK,CACb,IAAA,mBAAM,EACJ,0FAA0F,EAC1F,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,CACZ,CACF,CAAA;YACH,CAAC;SACF,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,OAA6B,CAAA;AACtC,CAAC;AAnBD,oDAmBC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mswjs/interceptors",
3
3
  "description": "Low-level HTTP/HTTPS/XHR/fetch request interception library.",
4
- "version": "0.17.6",
4
+ "version": "0.18.1",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "author": "Artem Zakharchenko",
@@ -62,11 +62,12 @@
62
62
  "superagent": "^6.1.0",
63
63
  "supertest": "^6.1.6",
64
64
  "ts-jest": "^27.1.1",
65
- "typescript": "4.3.5",
65
+ "typescript": "4.4.4",
66
66
  "wait-for-expect": "^3.0.2"
67
67
  },
68
68
  "dependencies": {
69
69
  "@open-draft/until": "^1.0.3",
70
+ "@remix-run/web-fetch": "^4.3.1",
70
71
  "@types/debug": "^4.1.7",
71
72
  "@xmldom/xmldom": "^0.8.3",
72
73
  "debug": "^4.3.3",
@@ -1,14 +1,34 @@
1
1
  import { ChildProcess } from 'child_process'
2
- import { Headers } from 'headers-polyfill'
2
+ import { Response } from '@remix-run/web-fetch'
3
+ import { Headers, HeadersObject, headersToObject } from 'headers-polyfill'
3
4
  import { HttpRequestEventMap } from './glossary'
4
5
  import { Interceptor } from './Interceptor'
5
6
  import { BatchInterceptor } from './BatchInterceptor'
6
7
  import { ClientRequestInterceptor } from './interceptors/ClientRequest'
7
8
  import { XMLHttpRequestInterceptor } from './interceptors/XMLHttpRequest'
8
- import { toIsoResponse } from './utils/toIsoResponse'
9
- import { IsomorphicRequest } from './IsomorphicRequest'
10
- import { bufferFrom } from './interceptors/XMLHttpRequest/utils/bufferFrom'
11
- import { InteractiveIsomorphicRequest } from './InteractiveIsomorphicRequest'
9
+ import { toInteractiveRequest } from './utils/toInteractiveRequest'
10
+ import { RequestWithCredentials } from './utils/RequestWithCredentials'
11
+
12
+ export interface SerializedRequest {
13
+ id: string
14
+ url: string
15
+ method: string
16
+ headers: HeadersObject
17
+ credentials: RequestCredentials
18
+ body: string
19
+ }
20
+
21
+ interface RevivedRequest extends Omit<SerializedRequest, 'url' | 'headers'> {
22
+ url: URL
23
+ headers: Headers
24
+ }
25
+
26
+ export interface SerializedResponse {
27
+ status: number
28
+ statusText: string
29
+ headers: HeadersObject
30
+ body: string
31
+ }
12
32
 
13
33
  export class RemoteHttpInterceptor extends BatchInterceptor<
14
34
  [ClientRequestInterceptor, XMLHttpRequestInterceptor]
@@ -28,10 +48,19 @@ export class RemoteHttpInterceptor extends BatchInterceptor<
28
48
 
29
49
  let handleParentMessage: NodeJS.MessageListener
30
50
 
31
- this.on('request', async (request) => {
51
+ this.on('request', async (request, requestId) => {
32
52
  // Send the stringified intercepted request to
33
53
  // the parent process where the remote resolver is established.
34
- const serializedRequest = JSON.stringify(request)
54
+ const serializedRequest = JSON.stringify({
55
+ id: requestId,
56
+ method: request.method,
57
+ url: request.url,
58
+ headers: headersToObject(request.headers),
59
+ credentials: request.credentials,
60
+ body: ['GET', 'HEAD'].includes(request.method)
61
+ ? null
62
+ : await request.text(),
63
+ } as SerializedRequest)
35
64
 
36
65
  this.log('sent serialized request to the child:', serializedRequest)
37
66
  process.send?.(`request:${serializedRequest}`)
@@ -42,7 +71,7 @@ export class RemoteHttpInterceptor extends BatchInterceptor<
42
71
  return resolve()
43
72
  }
44
73
 
45
- if (message.startsWith(`response:${request.id}`)) {
74
+ if (message.startsWith(`response:${requestId}`)) {
46
75
  const [, serializedResponse] =
47
76
  message.match(/^response:.+?:(.+)$/) || []
48
77
 
@@ -50,7 +79,16 @@ export class RemoteHttpInterceptor extends BatchInterceptor<
50
79
  return resolve()
51
80
  }
52
81
 
53
- const mockedResponse = JSON.parse(serializedResponse)
82
+ const responseInit = JSON.parse(
83
+ serializedResponse
84
+ ) as SerializedResponse
85
+
86
+ const mockedResponse = new Response(responseInit.body, {
87
+ status: responseInit.status,
88
+ statusText: responseInit.statusText,
89
+ headers: new Headers(responseInit.headers),
90
+ })
91
+
54
92
  request.respondWith(mockedResponse)
55
93
  resolve()
56
94
  }
@@ -111,36 +149,49 @@ export class RemoteHttpResolver extends Interceptor<HttpRequestEventMap> {
111
149
  }
112
150
 
113
151
  const [, serializedRequest] = message.match(/^request:(.+)$/) || []
114
-
115
152
  if (!serializedRequest) {
116
153
  return
117
154
  }
118
155
 
119
- const requestJson = JSON.parse(serializedRequest, requestReviver)
156
+ const requestJson = JSON.parse(
157
+ serializedRequest,
158
+ requestReviver
159
+ ) as RevivedRequest
120
160
  log('parsed intercepted request', requestJson)
121
161
 
122
- const body = bufferFrom(requestJson.body)
123
-
124
- const isomorphicRequest = new IsomorphicRequest(requestJson.url, {
125
- ...requestJson,
126
- body: body.buffer,
162
+ const capturedRequest = new RequestWithCredentials(requestJson.url, {
163
+ method: requestJson.method,
164
+ headers: new Headers(requestJson.headers),
165
+ credentials: requestJson.credentials,
166
+ body: requestJson.body,
127
167
  })
128
168
 
129
- const interactiveIsomorphicRequest = new InteractiveIsomorphicRequest(
130
- isomorphicRequest
169
+ const interactiveRequest = toInteractiveRequest(capturedRequest)
170
+
171
+ this.emitter.emit('request', interactiveRequest, requestJson.id)
172
+ await this.emitter.untilIdle(
173
+ 'request',
174
+ ({ args: [, pendingRequestId] }) => {
175
+ return pendingRequestId === requestJson.id
176
+ }
131
177
  )
178
+ const [mockedResponse] = await interactiveRequest.respondWith.invoked()
132
179
 
133
- this.emitter.emit('request', interactiveIsomorphicRequest)
134
- await this.emitter.untilIdle('request', ({ args: [request] }) => {
135
- return request.id === interactiveIsomorphicRequest.id
136
- })
137
- const [mockedResponse] =
138
- await interactiveIsomorphicRequest.respondWith.invoked()
180
+ if (!mockedResponse) {
181
+ return
182
+ }
139
183
 
140
184
  log('event.respondWith called with:', mockedResponse)
185
+ const responseClone = mockedResponse.clone()
186
+ const responseText = await mockedResponse.text()
141
187
 
142
188
  // Send the mocked response to the child process.
143
- const serializedResponse = JSON.stringify(mockedResponse)
189
+ const serializedResponse = JSON.stringify({
190
+ status: mockedResponse.status,
191
+ statusText: mockedResponse.statusText,
192
+ headers: headersToObject(mockedResponse.headers),
193
+ body: responseText,
194
+ } as SerializedResponse)
144
195
 
145
196
  this.process.send(
146
197
  `response:${requestJson.id}:${serializedResponse}`,
@@ -149,15 +200,14 @@ export class RemoteHttpResolver extends Interceptor<HttpRequestEventMap> {
149
200
  return
150
201
  }
151
202
 
152
- if (mockedResponse) {
153
- // Emit an optimistic "response" event at this point,
154
- // not to rely on the back-and-forth signaling for the sake of the event.
155
- this.emitter.emit(
156
- 'response',
157
- isomorphicRequest,
158
- toIsoResponse(mockedResponse)
159
- )
160
- }
203
+ // Emit an optimistic "response" event at this point,
204
+ // not to rely on the back-and-forth signaling for the sake of the event.
205
+ this.emitter.emit(
206
+ 'response',
207
+ responseClone,
208
+ capturedRequest,
209
+ requestJson.id
210
+ )
161
211
  }
162
212
  )
163
213