msw 0.27.1 → 0.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/node/lib/index.js CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ClientRequest = require('node-request-interceptor/lib/interceptors/ClientRequest');
6
- var XMLHttpRequest = require('node-request-interceptor/lib/interceptors/XMLHttpRequest');
5
+ var ClientRequest = require('@mswjs/interceptors/lib/interceptors/ClientRequest');
6
+ var XMLHttpRequest = require('@mswjs/interceptors/lib/interceptors/XMLHttpRequest');
7
7
  var timers = require('timers');
8
8
  var os = require('os');
9
9
  var tty = require('tty');
10
10
  var events_1 = require('events');
11
- var nodeRequestInterceptor = require('node-request-interceptor');
11
+ var interceptors = require('@mswjs/interceptors');
12
12
  var url = require('url');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -2131,113 +2131,492 @@ function tryDecode(str, decode) {
2131
2131
  }
2132
2132
  }
2133
2133
 
2134
+ var StrictEventEmitter_1 = createCommonjsModule(function (module, exports) {
2135
+ var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () {
2136
+ var extendStatics = function (d, b) {
2137
+ extendStatics = Object.setPrototypeOf ||
2138
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2139
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
2140
+ return extendStatics(d, b);
2141
+ };
2142
+ return function (d, b) {
2143
+ extendStatics(d, b);
2144
+ function __() { this.constructor = d; }
2145
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2146
+ };
2147
+ })();
2148
+ var __spreadArrays = (commonjsGlobal && commonjsGlobal.__spreadArrays) || function () {
2149
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
2150
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
2151
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
2152
+ r[k] = a[j];
2153
+ return r;
2154
+ };
2155
+ exports.__esModule = true;
2156
+ exports.StrictEventEmitter = void 0;
2157
+
2158
+ var StrictEventEmitter = /** @class */ (function (_super) {
2159
+ __extends(StrictEventEmitter, _super);
2160
+ function StrictEventEmitter() {
2161
+ return _super.call(this) || this;
2162
+ }
2163
+ StrictEventEmitter.prototype.on = function (event, listener) {
2164
+ return _super.prototype.on.call(this, event.toString(), listener);
2165
+ };
2166
+ StrictEventEmitter.prototype.once = function (event, listener) {
2167
+ return _super.prototype.on.call(this, event.toString(), listener);
2168
+ };
2169
+ StrictEventEmitter.prototype.off = function (event, listener) {
2170
+ return _super.prototype.off.call(this, event.toString(), listener);
2171
+ };
2172
+ StrictEventEmitter.prototype.emit = function (event) {
2173
+ var data = [];
2174
+ for (var _i = 1; _i < arguments.length; _i++) {
2175
+ data[_i - 1] = arguments[_i];
2176
+ }
2177
+ return _super.prototype.emit.apply(this, __spreadArrays([event.toString()], data));
2178
+ };
2179
+ StrictEventEmitter.prototype.addListener = function (event, listener) {
2180
+ return _super.prototype.addListener.call(this, event.toString(), listener);
2181
+ };
2182
+ StrictEventEmitter.prototype.removeListener = function (event, listener) {
2183
+ return _super.prototype.removeListener.call(this, event.toString(), listener);
2184
+ };
2185
+ return StrictEventEmitter;
2186
+ }(events_1__default['default'].EventEmitter));
2187
+ exports.StrictEventEmitter = StrictEventEmitter;
2188
+ });
2189
+
2190
+ var lib = createCommonjsModule(function (module, exports) {
2191
+ var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2192
+ if (k2 === undefined) k2 = k;
2193
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
2194
+ }) : (function(o, m, k, k2) {
2195
+ if (k2 === undefined) k2 = k;
2196
+ o[k2] = m[k];
2197
+ }));
2198
+ exports.__esModule = true;
2199
+ exports.StrictEventEmitter = void 0;
2200
+
2201
+ __createBinding(exports, StrictEventEmitter_1, "StrictEventEmitter");
2202
+ });
2203
+
2204
+ /**
2205
+ * Returns a mocked response for a given request using following request handlers.
2206
+ */
2207
+ const getResponse = (request, handlers) => __awaiter(void 0, void 0, void 0, function* () {
2208
+ const relevantHandlers = handlers.filter((handler) => {
2209
+ return handler.test(request);
2210
+ });
2211
+ if (relevantHandlers.length === 0) {
2212
+ return {
2213
+ handler: undefined,
2214
+ response: undefined,
2215
+ };
2216
+ }
2217
+ const result = yield relevantHandlers.reduce((acc, handler) => __awaiter(void 0, void 0, void 0, function* () {
2218
+ const previousResults = yield acc;
2219
+ if (!!(previousResults === null || previousResults === void 0 ? void 0 : previousResults.response)) {
2220
+ return acc;
2221
+ }
2222
+ const result = yield handler.run(request);
2223
+ if (result === null || result.handler.shouldSkip) {
2224
+ return null;
2225
+ }
2226
+ if (!result.response) {
2227
+ return {
2228
+ request: result.request,
2229
+ handler: result.handler,
2230
+ response: undefined,
2231
+ parsedResult: result.parsedResult,
2232
+ };
2233
+ }
2234
+ if (result.response.once) {
2235
+ handler.markAsSkipped(true);
2236
+ }
2237
+ return result;
2238
+ }), Promise.resolve(null));
2239
+ // Although reducing a list of relevant request handlers, it's possible
2240
+ // that in the end there will be no handler associted with the request
2241
+ // (i.e. if relevant handlers are fall-through).
2242
+ if (!result) {
2243
+ return {
2244
+ handler: undefined,
2245
+ response: undefined,
2246
+ };
2247
+ }
2248
+ return {
2249
+ handler: result.handler,
2250
+ publicRequest: result.request,
2251
+ parsedRequest: result.parsedResult,
2252
+ response: result.response,
2253
+ };
2254
+ });
2255
+
2256
+ /**
2257
+ * Parses a given string into a JSON.
2258
+ * Does not throw an exception on an invalid JSON string.
2259
+ */
2260
+ function jsonParse(str) {
2261
+ try {
2262
+ return JSON.parse(str);
2263
+ }
2264
+ catch (error) {
2265
+ return undefined;
2266
+ }
2267
+ }
2268
+
2269
+ var normalizeHeaderName_1 = createCommonjsModule(function (module, exports) {
2270
+ Object.defineProperty(exports, "__esModule", { value: true });
2271
+ exports.normalizeHeaderName = void 0;
2134
2272
  var HEADERS_INVALID_CHARACTERS = /[^a-z0-9\-#$%&'*+.^_`|~]/i;
2135
- var Headers$1 = /** @class */ (function () {
2136
- function Headers(headers) {
2273
+ function normalizeHeaderName(name) {
2274
+ if (typeof name !== 'string') {
2275
+ name = String(name);
2276
+ }
2277
+ if (HEADERS_INVALID_CHARACTERS.test(name) || name.trim() === '') {
2278
+ throw new TypeError('Invalid character in header field name');
2279
+ }
2280
+ return name.toLowerCase();
2281
+ }
2282
+ exports.normalizeHeaderName = normalizeHeaderName;
2283
+ });
2284
+
2285
+ var normalizeHeaderValue_1 = createCommonjsModule(function (module, exports) {
2286
+ Object.defineProperty(exports, "__esModule", { value: true });
2287
+ exports.normalizeHeaderValue = void 0;
2288
+ function normalizeHeaderValue(value) {
2289
+ if (typeof value !== 'string') {
2290
+ value = String(value);
2291
+ }
2292
+ return value;
2293
+ }
2294
+ exports.normalizeHeaderValue = normalizeHeaderValue;
2295
+ });
2296
+
2297
+ var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) {
2298
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
2299
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
2300
+ function verb(n) { return function (v) { return step([n, v]); }; }
2301
+ function step(op) {
2302
+ if (f) throw new TypeError("Generator is already executing.");
2303
+ while (_) try {
2304
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
2305
+ if (y = 0, t) op = [op[0] & 2, t.value];
2306
+ switch (op[0]) {
2307
+ case 0: case 1: t = op; break;
2308
+ case 4: _.label++; return { value: op[1], done: false };
2309
+ case 5: _.label++; y = op[1]; op = [0]; continue;
2310
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
2311
+ default:
2312
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
2313
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
2314
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
2315
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
2316
+ if (t[2]) _.ops.pop();
2317
+ _.trys.pop(); continue;
2318
+ }
2319
+ op = body.call(thisArg, _);
2320
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
2321
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2322
+ }
2323
+ };
2324
+ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
2325
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
2326
+ if (!m) return o;
2327
+ var i = m.call(o), r, ar = [], e;
2328
+ try {
2329
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
2330
+ }
2331
+ catch (error) { e = { error: error }; }
2332
+ finally {
2333
+ try {
2334
+ if (r && !r.done && (m = i["return"])) m.call(i);
2335
+ }
2336
+ finally { if (e) throw e.error; }
2337
+ }
2338
+ return ar;
2339
+ };
2340
+ var __values = (commonjsGlobal && commonjsGlobal.__values) || function(o) {
2341
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
2342
+ if (m) return m.call(o);
2343
+ if (o && typeof o.length === "number") return {
2344
+ next: function () {
2345
+ if (o && i >= o.length) o = void 0;
2346
+ return { value: o && o[i++], done: !o };
2347
+ }
2348
+ };
2349
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
2350
+ };
2351
+
2352
+
2353
+
2354
+ var HeadersPolyfill = /** @class */ (function () {
2355
+ function HeadersPolyfill(init) {
2137
2356
  var _this = this;
2138
- this.map = {};
2139
- if ((headers === null || headers === void 0 ? void 0 : headers.constructor.name) === 'Headers') {
2140
- headers.forEach(function (value, name) {
2357
+ // Normalized header {"name":"a, b"} storage.
2358
+ this._headers = {};
2359
+ // Keeps the mapping between the raw header name
2360
+ // and the normalized header name to ease the lookup.
2361
+ this._names = new Map();
2362
+ /**
2363
+ * @note Cannot check if the `init` is an instance of the `Headers`
2364
+ * because that class is only defined in the browser.
2365
+ */
2366
+ if (['Headers', 'HeadersPolyfill'].includes(init === null || init === void 0 ? void 0 : init.constructor.name) ||
2367
+ init instanceof HeadersPolyfill) {
2368
+ var initialHeaders = init;
2369
+ initialHeaders.forEach(function (value, name) {
2141
2370
  _this.append(name, value);
2142
2371
  }, this);
2143
2372
  }
2144
- else if (Array.isArray(headers)) {
2145
- headers.forEach(function (_a) {
2146
- var name = _a[0], value = _a[1];
2373
+ else if (Array.isArray(init)) {
2374
+ init.forEach(function (_a) {
2375
+ var _b = __read(_a, 2), name = _b[0], value = _b[1];
2147
2376
  _this.append(name, Array.isArray(value) ? value.join(', ') : value);
2148
2377
  });
2149
2378
  }
2150
- else if (headers) {
2151
- Object.getOwnPropertyNames(headers).forEach(function (name) {
2152
- _this.append(name, headers[name]);
2379
+ else if (init) {
2380
+ Object.getOwnPropertyNames(init).forEach(function (name) {
2381
+ var value = init[name];
2382
+ _this.append(name, Array.isArray(value) ? value.join(', ') : value);
2153
2383
  });
2154
2384
  }
2155
2385
  }
2386
+ HeadersPolyfill.prototype[Symbol.iterator] = function () {
2387
+ return this.entries();
2388
+ };
2389
+ HeadersPolyfill.prototype.keys = function () {
2390
+ var _a, _b, name_1, e_1_1;
2391
+ var e_1, _c;
2392
+ return __generator(this, function (_d) {
2393
+ switch (_d.label) {
2394
+ case 0:
2395
+ _d.trys.push([0, 5, 6, 7]);
2396
+ _a = __values(Object.keys(this._headers)), _b = _a.next();
2397
+ _d.label = 1;
2398
+ case 1:
2399
+ if (!!_b.done) return [3 /*break*/, 4];
2400
+ name_1 = _b.value;
2401
+ return [4 /*yield*/, name_1];
2402
+ case 2:
2403
+ _d.sent();
2404
+ _d.label = 3;
2405
+ case 3:
2406
+ _b = _a.next();
2407
+ return [3 /*break*/, 1];
2408
+ case 4: return [3 /*break*/, 7];
2409
+ case 5:
2410
+ e_1_1 = _d.sent();
2411
+ e_1 = { error: e_1_1 };
2412
+ return [3 /*break*/, 7];
2413
+ case 6:
2414
+ try {
2415
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
2416
+ }
2417
+ finally { if (e_1) throw e_1.error; }
2418
+ return [7 /*endfinally*/];
2419
+ case 7: return [2 /*return*/];
2420
+ }
2421
+ });
2422
+ };
2423
+ HeadersPolyfill.prototype.values = function () {
2424
+ var _a, _b, value, e_2_1;
2425
+ var e_2, _c;
2426
+ return __generator(this, function (_d) {
2427
+ switch (_d.label) {
2428
+ case 0:
2429
+ _d.trys.push([0, 5, 6, 7]);
2430
+ _a = __values(Object.values(this._headers)), _b = _a.next();
2431
+ _d.label = 1;
2432
+ case 1:
2433
+ if (!!_b.done) return [3 /*break*/, 4];
2434
+ value = _b.value;
2435
+ return [4 /*yield*/, value];
2436
+ case 2:
2437
+ _d.sent();
2438
+ _d.label = 3;
2439
+ case 3:
2440
+ _b = _a.next();
2441
+ return [3 /*break*/, 1];
2442
+ case 4: return [3 /*break*/, 7];
2443
+ case 5:
2444
+ e_2_1 = _d.sent();
2445
+ e_2 = { error: e_2_1 };
2446
+ return [3 /*break*/, 7];
2447
+ case 6:
2448
+ try {
2449
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
2450
+ }
2451
+ finally { if (e_2) throw e_2.error; }
2452
+ return [7 /*endfinally*/];
2453
+ case 7: return [2 /*return*/];
2454
+ }
2455
+ });
2456
+ };
2457
+ HeadersPolyfill.prototype.entries = function () {
2458
+ var _a, _b, name_2, e_3_1;
2459
+ var e_3, _c;
2460
+ return __generator(this, function (_d) {
2461
+ switch (_d.label) {
2462
+ case 0:
2463
+ _d.trys.push([0, 5, 6, 7]);
2464
+ _a = __values(Object.keys(this._headers)), _b = _a.next();
2465
+ _d.label = 1;
2466
+ case 1:
2467
+ if (!!_b.done) return [3 /*break*/, 4];
2468
+ name_2 = _b.value;
2469
+ return [4 /*yield*/, [name_2, this.get(name_2)]];
2470
+ case 2:
2471
+ _d.sent();
2472
+ _d.label = 3;
2473
+ case 3:
2474
+ _b = _a.next();
2475
+ return [3 /*break*/, 1];
2476
+ case 4: return [3 /*break*/, 7];
2477
+ case 5:
2478
+ e_3_1 = _d.sent();
2479
+ e_3 = { error: e_3_1 };
2480
+ return [3 /*break*/, 7];
2481
+ case 6:
2482
+ try {
2483
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
2484
+ }
2485
+ finally { if (e_3) throw e_3.error; }
2486
+ return [7 /*endfinally*/];
2487
+ case 7: return [2 /*return*/];
2488
+ }
2489
+ });
2490
+ };
2491
+ /**
2492
+ * Returns a `ByteString` sequence of all the values of a header with a given name.
2493
+ */
2494
+ HeadersPolyfill.prototype.get = function (name) {
2495
+ return this._headers[normalizeHeaderName_1.normalizeHeaderName(name)] || null;
2496
+ };
2156
2497
  /**
2157
2498
  * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.
2158
2499
  */
2159
- Headers.prototype.set = function (name, value) {
2160
- this.map[this.normalizeName(name)] = this.normalizeValue(value);
2500
+ HeadersPolyfill.prototype.set = function (name, value) {
2501
+ var normalizedName = normalizeHeaderName_1.normalizeHeaderName(name);
2502
+ this._headers[normalizedName] = normalizeHeaderValue_1.normalizeHeaderValue(value);
2503
+ this._names.set(normalizedName, name);
2161
2504
  };
2162
2505
  /**
2163
2506
  * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.
2164
2507
  */
2165
- Headers.prototype.append = function (name, value) {
2166
- name = this.normalizeName(name);
2167
- value = this.normalizeValue(value);
2168
- this.map[name] = this.has(name) ? this.map[name] + ", " + value : value;
2508
+ HeadersPolyfill.prototype.append = function (name, value) {
2509
+ var resolvedValue = this.has(name) ? this.get(name) + ", " + value : value;
2510
+ this.set(name, resolvedValue);
2169
2511
  };
2170
2512
  /**
2171
2513
  * Deletes a header from the `Headers` object.
2172
2514
  */
2173
- Headers.prototype.delete = function (name) {
2174
- delete this.map[this.normalizeName(name)];
2515
+ HeadersPolyfill.prototype.delete = function (name) {
2516
+ if (!this.has(name)) {
2517
+ return this;
2518
+ }
2519
+ var normalizedName = normalizeHeaderName_1.normalizeHeaderName(name);
2520
+ delete this._headers[normalizedName];
2521
+ this._names.delete(normalizedName);
2175
2522
  return this;
2176
2523
  };
2177
2524
  /**
2178
- * Returns a `ByteString` sequence of all the values of a header with a given name.
2525
+ * Returns the object of all the normalized headers.
2179
2526
  */
2180
- Headers.prototype.get = function (name) {
2181
- return this.map[this.normalizeName(name)] || null;
2527
+ HeadersPolyfill.prototype.all = function () {
2528
+ return this._headers;
2182
2529
  };
2183
2530
  /**
2184
- * Returns the map of all headers in a `Headers` object.
2531
+ * Returns the object of all the raw headers.
2185
2532
  */
2186
- Headers.prototype.getAllHeaders = function () {
2187
- return this.map;
2533
+ HeadersPolyfill.prototype.raw = function () {
2534
+ var _this = this;
2535
+ return Object.entries(this._headers).reduce(function (headers, _a) {
2536
+ var _b = __read(_a, 2), name = _b[0], value = _b[1];
2537
+ headers[_this._names.get(name)] = value;
2538
+ return headers;
2539
+ }, {});
2188
2540
  };
2189
2541
  /**
2190
2542
  * Returns a boolean stating whether a `Headers` object contains a certain header.
2191
2543
  */
2192
- Headers.prototype.has = function (name) {
2193
- return this.map.hasOwnProperty(this.normalizeName(name));
2544
+ HeadersPolyfill.prototype.has = function (name) {
2545
+ return this._headers.hasOwnProperty(normalizeHeaderName_1.normalizeHeaderName(name));
2194
2546
  };
2195
- Headers.prototype.forEach = function (callback, thisArg) {
2196
- for (var name_1 in this.map) {
2197
- if (this.map.hasOwnProperty(name_1)) {
2198
- callback.call(thisArg, this.map[name_1], name_1, this);
2547
+ /**
2548
+ * Traverses the `Headers` object,
2549
+ * calling the given callback for each header.
2550
+ */
2551
+ HeadersPolyfill.prototype.forEach = function (callback, thisArg) {
2552
+ for (var name_3 in this._headers) {
2553
+ if (this._headers.hasOwnProperty(name_3)) {
2554
+ callback.call(thisArg, this._headers[name_3], name_3, this);
2199
2555
  }
2200
2556
  }
2201
2557
  };
2202
- Headers.prototype.normalizeName = function (name) {
2203
- if (typeof name !== 'string') {
2204
- name = String(name);
2205
- }
2206
- if (HEADERS_INVALID_CHARACTERS.test(name) || name.trim() === '') {
2207
- throw new TypeError('Invalid character in header field name');
2208
- }
2209
- return name.toLowerCase();
2210
- };
2211
- Headers.prototype.normalizeValue = function (value) {
2212
- if (typeof value !== 'string') {
2213
- value = String(value);
2214
- }
2215
- return value;
2216
- };
2217
- return Headers;
2558
+ return HeadersPolyfill;
2218
2559
  }());
2219
- var Headers_2 = Headers$1;
2560
+ var _default = HeadersPolyfill;
2220
2561
 
2221
- var Headers_1 = /*#__PURE__*/Object.defineProperty({
2222
- Headers: Headers_2
2562
+ var Headers = /*#__PURE__*/Object.defineProperty({
2563
+ default: _default
2223
2564
  }, '__esModule', {value: true});
2224
2565
 
2566
+ var headersToList_1 = createCommonjsModule(function (module, exports) {
2567
+ Object.defineProperty(exports, "__esModule", { value: true });
2568
+ exports.headersToList = void 0;
2225
2569
  function headersToList(headers) {
2226
2570
  var headersList = [];
2227
2571
  headers.forEach(function (value, name) {
2228
2572
  var resolvedValue = value.includes(',')
2229
- ? value.split(',').map(function (v) { return v.trim(); })
2573
+ ? value.split(',').map(function (value) { return value.trim(); })
2230
2574
  : value;
2231
2575
  headersList.push([name, resolvedValue]);
2232
2576
  });
2233
2577
  return headersList;
2234
2578
  }
2235
- var headersToList_2 = headersToList;
2579
+ exports.headersToList = headersToList;
2580
+ });
2236
2581
 
2237
- var headersToList_1 = /*#__PURE__*/Object.defineProperty({
2238
- headersToList: headersToList_2
2239
- }, '__esModule', {value: true});
2582
+ var headersToString_1 = createCommonjsModule(function (module, exports) {
2583
+ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
2584
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
2585
+ if (!m) return o;
2586
+ var i = m.call(o), r, ar = [], e;
2587
+ try {
2588
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
2589
+ }
2590
+ catch (error) { e = { error: error }; }
2591
+ finally {
2592
+ try {
2593
+ if (r && !r.done && (m = i["return"])) m.call(i);
2594
+ }
2595
+ finally { if (e) throw e.error; }
2596
+ }
2597
+ return ar;
2598
+ };
2599
+ Object.defineProperty(exports, "__esModule", { value: true });
2600
+ exports.headersToString = void 0;
2240
2601
 
2602
+ /**
2603
+ * Converts a given `Headers` instance to its string representation.
2604
+ */
2605
+ function headersToString(headers) {
2606
+ var list = headersToList_1.headersToList(headers);
2607
+ var lines = list.map(function (_a) {
2608
+ var _b = __read(_a, 2), name = _b[0], value = _b[1];
2609
+ var values = [].concat(value);
2610
+ return name + ": " + values.join(', ');
2611
+ });
2612
+ return lines.join('\r\n');
2613
+ }
2614
+ exports.headersToString = headersToString;
2615
+ });
2616
+
2617
+ var headersToObject_1 = createCommonjsModule(function (module, exports) {
2618
+ Object.defineProperty(exports, "__esModule", { value: true });
2619
+ exports.headersToObject = void 0;
2241
2620
  // List of headers that cannot have multiple values,
2242
2621
  // while potentially having a comma in their single value.
2243
2622
  var singleValueHeaders = ['user-agent'];
@@ -2255,11 +2634,12 @@ function headersToObject(headers) {
2255
2634
  });
2256
2635
  return headersObject;
2257
2636
  }
2258
- var headersToObject_2 = headersToObject;
2637
+ exports.headersToObject = headersToObject;
2638
+ });
2259
2639
 
2260
- var headersToObject_1 = /*#__PURE__*/Object.defineProperty({
2261
- headersToObject: headersToObject_2
2262
- }, '__esModule', {value: true});
2640
+ var stringToHeaders_1 = createCommonjsModule(function (module, exports) {
2641
+ Object.defineProperty(exports, "__esModule", { value: true });
2642
+ exports.stringToHeaders = void 0;
2263
2643
 
2264
2644
  /**
2265
2645
  * Converts a string representation of headers (i.e. from XMLHttpRequest)
@@ -2273,18 +2653,35 @@ function stringToHeaders(str) {
2273
2653
  var value = parts.join(': ');
2274
2654
  headers.append(name, value);
2275
2655
  return headers;
2276
- }, new Headers());
2656
+ }, new Headers.default());
2277
2657
  }
2278
- var stringToHeaders_2 = stringToHeaders;
2658
+ exports.stringToHeaders = stringToHeaders;
2659
+ });
2279
2660
 
2280
- var stringToHeaders_1 = /*#__PURE__*/Object.defineProperty({
2281
- stringToHeaders: stringToHeaders_2
2282
- }, '__esModule', {value: true});
2661
+ var listToHeaders_1 = createCommonjsModule(function (module, exports) {
2662
+ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
2663
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
2664
+ if (!m) return o;
2665
+ var i = m.call(o), r, ar = [], e;
2666
+ try {
2667
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
2668
+ }
2669
+ catch (error) { e = { error: error }; }
2670
+ finally {
2671
+ try {
2672
+ if (r && !r.done && (m = i["return"])) m.call(i);
2673
+ }
2674
+ finally { if (e) throw e.error; }
2675
+ }
2676
+ return ar;
2677
+ };
2678
+ Object.defineProperty(exports, "__esModule", { value: true });
2679
+ exports.listToHeaders = void 0;
2283
2680
 
2284
2681
  function listToHeaders(list) {
2285
- var headers = new Headers();
2682
+ var headers = new Headers.default();
2286
2683
  list.forEach(function (_a) {
2287
- var name = _a[0], value = _a[1];
2684
+ var _b = __read(_a, 2), name = _b[0], value = _b[1];
2288
2685
  var values = [].concat(value);
2289
2686
  values.forEach(function (value) {
2290
2687
  headers.append(name, value);
@@ -2292,12 +2689,12 @@ function listToHeaders(list) {
2292
2689
  });
2293
2690
  return headers;
2294
2691
  }
2295
- var listToHeaders_2 = listToHeaders;
2296
-
2297
- var listToHeaders_1 = /*#__PURE__*/Object.defineProperty({
2298
- listToHeaders: listToHeaders_2
2299
- }, '__esModule', {value: true});
2692
+ exports.listToHeaders = listToHeaders;
2693
+ });
2300
2694
 
2695
+ var reduceHeadersObject_1 = createCommonjsModule(function (module, exports) {
2696
+ Object.defineProperty(exports, "__esModule", { value: true });
2697
+ exports.reduceHeadersObject = void 0;
2301
2698
  /**
2302
2699
  * Reduces given headers object instnace.
2303
2700
  */
@@ -2306,202 +2703,98 @@ function reduceHeadersObject(headers, reducer, initialState) {
2306
2703
  return reducer(nextHeaders, name, headers[name]);
2307
2704
  }, initialState);
2308
2705
  }
2309
- var reduceHeadersObject_2 = reduceHeadersObject;
2706
+ exports.reduceHeadersObject = reduceHeadersObject;
2707
+ });
2708
+
2709
+ var objectToHeaders_1 = createCommonjsModule(function (module, exports) {
2710
+ Object.defineProperty(exports, "__esModule", { value: true });
2711
+ exports.objectToHeaders = void 0;
2310
2712
 
2311
- var reduceHeadersObject_1 = /*#__PURE__*/Object.defineProperty({
2312
- reduceHeadersObject: reduceHeadersObject_2
2313
- }, '__esModule', {value: true});
2314
2713
 
2315
2714
  /**
2316
2715
  * Converts a given headers object to a new `Headers` instance.
2317
2716
  */
2318
- function objectToHeaders(obj) {
2319
- return reduceHeadersObject_1.reduceHeadersObject(obj, function (headers, name, value) {
2320
- var values = [].concat(value);
2717
+ function objectToHeaders(headersObject) {
2718
+ return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) {
2719
+ var values = [].concat(value).filter(Boolean);
2321
2720
  values.forEach(function (value) {
2322
2721
  headers.append(name, value);
2323
2722
  });
2324
2723
  return headers;
2325
- }, new Headers());
2724
+ }, new Headers.default());
2326
2725
  }
2327
- var objectToHeaders_2 = objectToHeaders;
2328
-
2329
- var objectToHeaders_1 = /*#__PURE__*/Object.defineProperty({
2330
- objectToHeaders: objectToHeaders_2
2331
- }, '__esModule', {value: true});
2726
+ exports.objectToHeaders = objectToHeaders;
2727
+ });
2332
2728
 
2729
+ var flattenHeadersList_1 = createCommonjsModule(function (module, exports) {
2730
+ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
2731
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
2732
+ if (!m) return o;
2733
+ var i = m.call(o), r, ar = [], e;
2734
+ try {
2735
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
2736
+ }
2737
+ catch (error) { e = { error: error }; }
2738
+ finally {
2739
+ try {
2740
+ if (r && !r.done && (m = i["return"])) m.call(i);
2741
+ }
2742
+ finally { if (e) throw e.error; }
2743
+ }
2744
+ return ar;
2745
+ };
2746
+ Object.defineProperty(exports, "__esModule", { value: true });
2747
+ exports.flattenHeadersList = void 0;
2333
2748
  function flattenHeadersList(list) {
2334
2749
  return list.map(function (_a) {
2335
- var name = _a[0], values = _a[1];
2750
+ var _b = __read(_a, 2), name = _b[0], values = _b[1];
2336
2751
  return [name, [].concat(values).join('; ')];
2337
2752
  });
2338
2753
  }
2339
- var flattenHeadersList_2 = flattenHeadersList;
2754
+ exports.flattenHeadersList = flattenHeadersList;
2755
+ });
2340
2756
 
2341
- var flattenHeadersList_1 = /*#__PURE__*/Object.defineProperty({
2342
- flattenHeadersList: flattenHeadersList_2
2343
- }, '__esModule', {value: true});
2757
+ var flattenHeadersObject_1 = createCommonjsModule(function (module, exports) {
2758
+ Object.defineProperty(exports, "__esModule", { value: true });
2759
+ exports.flattenHeadersObject = void 0;
2344
2760
 
2345
- function flattenHeadersObject(obj) {
2346
- return reduceHeadersObject_1.reduceHeadersObject(obj, function (headers, name, value) {
2761
+ function flattenHeadersObject(headersObject) {
2762
+ return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) {
2347
2763
  headers[name] = [].concat(value).join('; ');
2348
2764
  return headers;
2349
2765
  }, {});
2350
2766
  }
2351
- var flattenHeadersObject_2 = flattenHeadersObject;
2352
-
2353
- var flattenHeadersObject_1 = /*#__PURE__*/Object.defineProperty({
2354
- flattenHeadersObject: flattenHeadersObject_2
2355
- }, '__esModule', {value: true});
2767
+ exports.flattenHeadersObject = flattenHeadersObject;
2768
+ });
2356
2769
 
2357
- var Headers$2 = Headers_1.Headers;
2770
+ var lib$1 = createCommonjsModule(function (module, exports) {
2771
+ Object.defineProperty(exports, "__esModule", { value: true });
2772
+ exports.flattenHeadersObject = exports.flattenHeadersList = exports.reduceHeadersObject = exports.objectToHeaders = exports.listToHeaders = exports.stringToHeaders = exports.headersToObject = exports.headersToList = exports.headersToString = exports.Headers = void 0;
2358
2773
 
2359
- headersToList_1.headersToList;
2774
+ Object.defineProperty(exports, "Headers", { enumerable: true, get: function () { return Headers.default; } });
2360
2775
 
2361
- headersToObject_1.headersToObject;
2776
+ Object.defineProperty(exports, "headersToString", { enumerable: true, get: function () { return headersToString_1.headersToString; } });
2362
2777
 
2363
- var stringToHeaders$1 = stringToHeaders_1.stringToHeaders;
2778
+ Object.defineProperty(exports, "headersToList", { enumerable: true, get: function () { return headersToList_1.headersToList; } });
2364
2779
 
2365
- var listToHeaders$1 = listToHeaders_1.listToHeaders;
2780
+ Object.defineProperty(exports, "headersToObject", { enumerable: true, get: function () { return headersToObject_1.headersToObject; } });
2366
2781
 
2367
- var objectToHeaders$1 = objectToHeaders_1.objectToHeaders;
2782
+ Object.defineProperty(exports, "stringToHeaders", { enumerable: true, get: function () { return stringToHeaders_1.stringToHeaders; } });
2368
2783
 
2369
- reduceHeadersObject_1.reduceHeadersObject;
2784
+ Object.defineProperty(exports, "listToHeaders", { enumerable: true, get: function () { return listToHeaders_1.listToHeaders; } });
2370
2785
 
2371
- flattenHeadersList_1.flattenHeadersList;
2786
+ Object.defineProperty(exports, "objectToHeaders", { enumerable: true, get: function () { return objectToHeaders_1.objectToHeaders; } });
2372
2787
 
2373
- var flattenHeadersObject$1 = flattenHeadersObject_1.flattenHeadersObject;
2788
+ Object.defineProperty(exports, "reduceHeadersObject", { enumerable: true, get: function () { return reduceHeadersObject_1.reduceHeadersObject; } });
2374
2789
 
2375
- var StrictEventEmitter_1 = createCommonjsModule(function (module, exports) {
2376
- var __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () {
2377
- var extendStatics = function (d, b) {
2378
- extendStatics = Object.setPrototypeOf ||
2379
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
2380
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
2381
- return extendStatics(d, b);
2382
- };
2383
- return function (d, b) {
2384
- extendStatics(d, b);
2385
- function __() { this.constructor = d; }
2386
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
2387
- };
2388
- })();
2389
- var __spreadArrays = (commonjsGlobal && commonjsGlobal.__spreadArrays) || function () {
2390
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
2391
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
2392
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
2393
- r[k] = a[j];
2394
- return r;
2395
- };
2396
- exports.__esModule = true;
2397
- exports.StrictEventEmitter = void 0;
2790
+ Object.defineProperty(exports, "flattenHeadersList", { enumerable: true, get: function () { return flattenHeadersList_1.flattenHeadersList; } });
2398
2791
 
2399
- var StrictEventEmitter = /** @class */ (function (_super) {
2400
- __extends(StrictEventEmitter, _super);
2401
- function StrictEventEmitter() {
2402
- return _super.call(this) || this;
2403
- }
2404
- StrictEventEmitter.prototype.on = function (event, listener) {
2405
- return _super.prototype.on.call(this, event.toString(), listener);
2406
- };
2407
- StrictEventEmitter.prototype.once = function (event, listener) {
2408
- return _super.prototype.on.call(this, event.toString(), listener);
2409
- };
2410
- StrictEventEmitter.prototype.off = function (event, listener) {
2411
- return _super.prototype.off.call(this, event.toString(), listener);
2412
- };
2413
- StrictEventEmitter.prototype.emit = function (event) {
2414
- var data = [];
2415
- for (var _i = 1; _i < arguments.length; _i++) {
2416
- data[_i - 1] = arguments[_i];
2417
- }
2418
- return _super.prototype.emit.apply(this, __spreadArrays([event.toString()], data));
2419
- };
2420
- StrictEventEmitter.prototype.addListener = function (event, listener) {
2421
- return _super.prototype.addListener.call(this, event.toString(), listener);
2422
- };
2423
- StrictEventEmitter.prototype.removeListener = function (event, listener) {
2424
- return _super.prototype.removeListener.call(this, event.toString(), listener);
2425
- };
2426
- return StrictEventEmitter;
2427
- }(events_1__default['default'].EventEmitter));
2428
- exports.StrictEventEmitter = StrictEventEmitter;
2792
+ Object.defineProperty(exports, "flattenHeadersObject", { enumerable: true, get: function () { return flattenHeadersObject_1.flattenHeadersObject; } });
2429
2793
  });
2430
2794
 
2431
- var lib = createCommonjsModule(function (module, exports) {
2432
- var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2433
- if (k2 === undefined) k2 = k;
2434
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
2435
- }) : (function(o, m, k, k2) {
2436
- if (k2 === undefined) k2 = k;
2437
- o[k2] = m[k];
2438
- }));
2439
- exports.__esModule = true;
2440
- exports.StrictEventEmitter = void 0;
2441
-
2442
- __createBinding(exports, StrictEventEmitter_1, "StrictEventEmitter");
2443
- });
2444
-
2445
- /**
2446
- * Returns a mocked response for a given request using following request handlers.
2447
- */
2448
- const getResponse = (request, handlers) => __awaiter(void 0, void 0, void 0, function* () {
2449
- const relevantHandlers = handlers.filter((handler) => {
2450
- return handler.test(request);
2451
- });
2452
- if (relevantHandlers.length === 0) {
2453
- return {
2454
- handler: undefined,
2455
- response: undefined,
2456
- };
2457
- }
2458
- const result = yield relevantHandlers.reduce((acc, handler) => __awaiter(void 0, void 0, void 0, function* () {
2459
- const previousResults = yield acc;
2460
- if (!!(previousResults === null || previousResults === void 0 ? void 0 : previousResults.response)) {
2461
- return acc;
2462
- }
2463
- const result = yield handler.run(request);
2464
- if (result === null || !result.response || result.handler.shouldSkip) {
2465
- return null;
2466
- }
2467
- if (result.response.once) {
2468
- handler.markAsSkipped(true);
2469
- }
2470
- return result;
2471
- }), Promise.resolve(null));
2472
- // Although reducing a list of relevant request handlers, it's possible
2473
- // that in the end there will be no handler associted with the request
2474
- // (i.e. if relevant handlers are fall-through).
2475
- if (!result) {
2476
- return {
2477
- handler: undefined,
2478
- response: undefined,
2479
- };
2480
- }
2481
- return {
2482
- handler: result.handler,
2483
- publicRequest: result.request,
2484
- parsedRequest: result.parsedResult,
2485
- response: result.response,
2486
- };
2487
- });
2488
-
2489
- /**
2490
- * Parses a given string into a JSON.
2491
- * Does not throw an exception on an invalid JSON string.
2492
- */
2493
- function jsonParse(str) {
2494
- try {
2495
- return JSON.parse(str);
2496
- }
2497
- catch (error) {
2498
- return undefined;
2499
- }
2500
- }
2501
-
2502
2795
  function parseContentHeaders(headersString) {
2503
2796
  var _a, _b;
2504
- const headers = stringToHeaders$1(headersString);
2797
+ const headers = lib$1.stringToHeaders(headersString);
2505
2798
  const contentType = headers.get('content-type') || 'text/plain';
2506
2799
  const disposition = headers.get('content-disposition');
2507
2800
  if (!disposition) {
@@ -2529,7 +2822,7 @@ function parseMultipartData(data, headers) {
2529
2822
  if (!contentType) {
2530
2823
  return undefined;
2531
2824
  }
2532
- const [, ...directives] = contentType.split('; ');
2825
+ const [, ...directives] = contentType.split(/; */);
2533
2826
  const boundary = directives
2534
2827
  .filter((d) => d.startsWith('boundary='))
2535
2828
  .map((s) => s.replace(/^boundary=/, ''))[0];
@@ -6065,7 +6358,7 @@ function set(...args) {
6065
6358
  res.headers.append(name, value);
6066
6359
  }
6067
6360
  else {
6068
- const headers = objectToHeaders$1(name);
6361
+ const headers = lib$1.objectToHeaders(name);
6069
6362
  headers.forEach((value, name) => {
6070
6363
  res.headers.append(name, value);
6071
6364
  });
@@ -6236,9 +6529,9 @@ const errors = (errorsList) => {
6236
6529
 
6237
6530
  const useFetch = isNodeProcess() ? require('node-fetch') : window.fetch;
6238
6531
  const augmentRequestInit = (requestInit) => {
6239
- const headers = new Headers$2(requestInit.headers);
6532
+ const headers = new lib$1.Headers(requestInit.headers);
6240
6533
  headers.set('x-msw-bypass', 'true');
6241
- return Object.assign(Object.assign({}, requestInit), { headers: headers.getAllHeaders() });
6534
+ return Object.assign(Object.assign({}, requestInit), { headers: headers.all() });
6242
6535
  };
6243
6536
  const createFetchRequestParameters = (input) => {
6244
6537
  const { body, method } = input;
@@ -6320,14 +6613,14 @@ function getTimestamp() {
6320
6613
  * Formats a mocked request for introspection in browser's console.
6321
6614
  */
6322
6615
  function prepareRequest(request) {
6323
- return Object.assign(Object.assign({}, request), { headers: request.headers.getAllHeaders() });
6616
+ return Object.assign(Object.assign({}, request), { headers: request.headers.all() });
6324
6617
  }
6325
6618
 
6326
6619
  /**
6327
6620
  * Formats a mocked response for introspection in browser's console.
6328
6621
  */
6329
6622
  function prepareResponse(res) {
6330
- const responseHeaders = listToHeaders$1(res.headers);
6623
+ const responseHeaders = lib$1.listToHeaders(res.headers);
6331
6624
  return Object.assign(Object.assign({}, res), {
6332
6625
  // Parse a response JSON body for preview in the logs
6333
6626
  body: parseBody(res.body, responseHeaders) });
@@ -6474,7 +6767,7 @@ const defaultResponseTransformers = [];
6474
6767
  function createResponseComposition(responseOverrides, defaultTransformers = defaultResponseTransformers) {
6475
6768
  return (...transformers) => __awaiter(this, void 0, void 0, function* () {
6476
6769
  const initialResponse = Object.assign({}, defaultResponse, {
6477
- headers: new Headers$2({
6770
+ headers: new lib$1.Headers({
6478
6771
  'x-powered-by': 'msw',
6479
6772
  }),
6480
6773
  }, responseOverrides);
@@ -6499,7 +6792,9 @@ const response = Object.assign(createResponseComposition(), {
6499
6792
  * Return the stack trace frame of a function's invocation.
6500
6793
  */
6501
6794
  function getCallFrame() {
6502
- const frames = new Error().stack.split('\n');
6795
+ // In <IE11, new Error may return an undefined stack
6796
+ const stack = (new Error().stack || '');
6797
+ const frames = stack.split('\n');
6503
6798
  // Get the first frame that doesn't reference the library's internal trace.
6504
6799
  // Assume that frame is the invocation frame.
6505
6800
  const ignoreFrameRegExp = /(node_modules)?[\/\\]lib[\/\\](umd|esm|iief|cjs)[\/\\]|^[^\/\\]*$/;
@@ -6645,7 +6940,7 @@ ${queryParams
6645
6940
  return matchRequestUrl(request.url, this.info.mask);
6646
6941
  }
6647
6942
  getPublicRequest(request, parsedResult) {
6648
- return Object.assign(Object.assign({}, request), { params: parsedResult.params });
6943
+ return Object.assign(Object.assign({}, request), { params: parsedResult.params || {} });
6649
6944
  }
6650
6945
  predicate(request, parsedResult) {
6651
6946
  return (isStringEqual(this.info.method, request.method) && parsedResult.matches);
@@ -6874,7 +7169,9 @@ function parseString(setCookieValue, options) {
6874
7169
  value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value
6875
7170
  } catch (e) {
6876
7171
  console.error(
6877
- `set-cookie-parser encountered an error while decoding a cookie with value '${value}'. Set options.decodeValues to false to disable this feature.`,
7172
+ "set-cookie-parser encountered an error while decoding a cookie with value '" +
7173
+ value +
7174
+ "'. Set options.decodeValues to false to disable this feature.",
6878
7175
  e
6879
7176
  );
6880
7177
  }
@@ -7152,8 +7449,14 @@ class CookieStore {
7152
7449
  if (persistedCookies) {
7153
7450
  try {
7154
7451
  const parsedCookies = JSON.parse(persistedCookies);
7155
- parsedCookies.forEach(([origin, cookie]) => {
7156
- this.store.set(origin, new Map(cookie));
7452
+ parsedCookies.forEach(([origin, cookies]) => {
7453
+ this.store.set(origin, new Map(cookies.map((_a) => {
7454
+ var [token, _b] = _a, { expires } = _b, cookie = __rest(_b, ["expires"]);
7455
+ return [
7456
+ token,
7457
+ expires === undefined ? cookie : Object.assign(Object.assign({}, cookie), { expires: new Date(expires) })
7458
+ ];
7459
+ })));
7157
7460
  });
7158
7461
  }
7159
7462
  catch (error) {
@@ -7201,7 +7504,7 @@ Invalid value has been removed from localStorage to prevent subsequent failed pa
7201
7504
  exports.default = new CookieStore();
7202
7505
  });
7203
7506
 
7204
- var lib$1 = createCommonjsModule(function (module, exports) {
7507
+ var lib$2 = createCommonjsModule(function (module, exports) {
7205
7508
  var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
7206
7509
  return (mod && mod.__esModule) ? mod : { "default": mod };
7207
7510
  };
@@ -7243,16 +7546,16 @@ function getRequestCookies(request) {
7243
7546
 
7244
7547
  function setRequestCookies(request) {
7245
7548
  var _a;
7246
- lib$1.store.hydrate();
7247
- request.cookies = Object.assign(Object.assign({}, getRequestCookies(request)), Array.from((_a = lib$1.store.get(Object.assign(Object.assign({}, request), { url: request.url.toString() }))) === null || _a === void 0 ? void 0 : _a.entries()).reduce((cookies, [name, { value }]) => Object.assign(cookies, { [name]: value }), {}));
7549
+ lib$2.store.hydrate();
7550
+ request.cookies = Object.assign(Object.assign({}, getRequestCookies(request)), Array.from((_a = lib$2.store.get(Object.assign(Object.assign({}, request), { url: request.url.toString() }))) === null || _a === void 0 ? void 0 : _a.entries()).reduce((cookies, [name, { value }]) => Object.assign(cookies, { [name]: value }), {}));
7248
7551
  request.headers.set('cookie', Object.entries(request.cookies)
7249
7552
  .map(([name, value]) => `${name}=${value}`)
7250
7553
  .join('; '));
7251
7554
  }
7252
7555
 
7253
7556
  function readResponseCookies(request, response) {
7254
- lib$1.store.add(Object.assign(Object.assign({}, request), { url: request.url.toString() }), response);
7255
- lib$1.store.persist();
7557
+ lib$2.store.add(Object.assign(Object.assign({}, request), { url: request.url.toString() }), response);
7558
+ lib$2.store.persist();
7256
7559
  }
7257
7560
 
7258
7561
  const DEFAULT_LISTEN_OPTIONS = {
@@ -7262,48 +7565,34 @@ const DEFAULT_LISTEN_OPTIONS = {
7262
7565
  * Creates a `setupServer` API using given request interceptors.
7263
7566
  * Useful to generate identical API using different patches to request issuing modules.
7264
7567
  */
7265
- function createSetupServer(...interceptors) {
7568
+ function createSetupServer(...interceptors$1) {
7266
7569
  const emitter = new lib.StrictEventEmitter();
7267
7570
  return function setupServer(...requestHandlers) {
7268
7571
  requestHandlers.forEach((handler) => {
7269
7572
  if (Array.isArray(handler))
7270
7573
  throw new Error(`[MSW] Failed to call "setupServer" given an Array of request handlers (setupServer([a, b])), expected to receive each handler individually: setupServer(a, b).`);
7271
7574
  });
7272
- const interceptor = new nodeRequestInterceptor.RequestInterceptor(interceptors);
7273
7575
  // Error when attempting to run this function in a browser environment.
7274
7576
  if (!isNodeProcess()) {
7275
7577
  throw new Error('[MSW] Failed to execute `setupServer` in the environment that is not Node.js (i.e. a browser). Consider using `setupWorker` instead.');
7276
7578
  }
7277
- // Store the list of request handlers for the current server instance,
7278
- // so it could be modified at a runtime.
7279
- let currentHandlers = [...requestHandlers];
7280
- interceptor.on('response', (request, response) => {
7281
- var _a;
7282
- const requestId = (_a = request.headers) === null || _a === void 0 ? void 0 : _a['x-msw-request-id'];
7283
- if (response.headers['x-powered-by'] === 'msw') {
7284
- emitter.emit('response:mocked', response, requestId);
7285
- }
7286
- else {
7287
- emitter.emit('response:bypass', response, requestId);
7288
- }
7289
- });
7290
- return {
7291
- listen(options) {
7292
- const resolvedOptions = Object.assign({}, DEFAULT_LISTEN_OPTIONS, options);
7293
- interceptor.use((request) => __awaiter(this, void 0, void 0, function* () {
7579
+ let resolvedOptions = {};
7580
+ const interceptor = interceptors.createInterceptor({
7581
+ modules: interceptors$1,
7582
+ resolver(request) {
7583
+ return __awaiter(this, void 0, void 0, function* () {
7294
7584
  const requestId = uuidv4();
7295
- const requestHeaders = new Headers$2(flattenHeadersObject$1(request.headers || {}));
7296
7585
  if (request.headers) {
7297
- request.headers['x-msw-request-id'] = requestId;
7586
+ request.headers.set('x-msw-request-id', requestId);
7298
7587
  }
7299
- const requestCookieString = requestHeaders.get('cookie');
7588
+ const requestCookieString = request.headers.get('cookie');
7300
7589
  const mockedRequest = {
7301
7590
  id: requestId,
7302
7591
  url: request.url,
7303
7592
  method: request.method,
7304
7593
  // Parse the request's body based on the "Content-Type" header.
7305
- body: parseBody(request.body, requestHeaders),
7306
- headers: requestHeaders,
7594
+ body: parseBody(request.body, request.headers),
7595
+ headers: request.headers,
7307
7596
  cookies: {},
7308
7597
  redirect: 'manual',
7309
7598
  referrer: '',
@@ -7333,10 +7622,10 @@ function createSetupServer(...interceptors) {
7333
7622
  const { response, handler } = yield getResponse(mockedRequest, currentHandlers);
7334
7623
  if (!handler) {
7335
7624
  emitter.emit('request:unhandled', mockedRequest);
7625
+ onUnhandledRequest(mockedRequest, currentHandlers, resolvedOptions.onUnhandledRequest);
7336
7626
  }
7337
7627
  if (!response) {
7338
7628
  emitter.emit('request:end', mockedRequest);
7339
- onUnhandledRequest(mockedRequest, currentHandlers, resolvedOptions.onUnhandledRequest);
7340
7629
  return;
7341
7630
  }
7342
7631
  emitter.emit('request:match', mockedRequest);
@@ -7345,19 +7634,40 @@ function createSetupServer(...interceptors) {
7345
7634
  const mockedResponse = {
7346
7635
  status: response.status,
7347
7636
  statusText: response.statusText,
7348
- headers: response.headers.getAllHeaders(),
7637
+ headers: response.headers.all(),
7349
7638
  body: response.body,
7350
7639
  };
7351
7640
  // Store all the received response cookies in the virtual cookie store.
7352
7641
  readResponseCookies(mockedRequest, response);
7353
- // the node build will use the timers module to ensure @sinon/fake-timers or jest fake timers
7354
- // don't affect this timeout.
7642
+ // the node build will use the "timers" module to ensure @sinon/fake-timers
7643
+ // or jest fake timers don't affect this timeout.
7355
7644
  timers.setTimeout(() => {
7356
7645
  resolve(mockedResponse);
7357
7646
  }, (_a = response.delay) !== null && _a !== void 0 ? _a : 0);
7358
7647
  emitter.emit('request:end', mockedRequest);
7359
7648
  });
7360
- }));
7649
+ });
7650
+ },
7651
+ });
7652
+ // Store the list of request handlers for the current server instance,
7653
+ // so it could be modified at a runtime.
7654
+ let currentHandlers = [...requestHandlers];
7655
+ interceptor.on('response', (request, response) => {
7656
+ const requestId = request.headers.get('x-msw-request-id');
7657
+ if (!requestId) {
7658
+ return;
7659
+ }
7660
+ if (response.headers.get('x-powered-by') === 'msw') {
7661
+ emitter.emit('response:mocked', response, requestId);
7662
+ }
7663
+ else {
7664
+ emitter.emit('response:bypass', response, requestId);
7665
+ }
7666
+ });
7667
+ return {
7668
+ listen(options) {
7669
+ resolvedOptions = Object.assign({}, DEFAULT_LISTEN_OPTIONS, options);
7670
+ interceptor.apply();
7361
7671
  },
7362
7672
  use(...handlers) {
7363
7673
  use(currentHandlers, ...handlers);
@@ -7396,6 +7706,9 @@ ${source.bold(`${pragma} ${header}`)}
7396
7706
  * @param {RequestHandler[]} requestHandlers List of request handlers.
7397
7707
  * @see {@link https://mswjs.io/docs/api/setup-server `setupServer`}
7398
7708
  */
7399
- const setupServer = createSetupServer(ClientRequest.interceptClientRequest, XMLHttpRequest.interceptXMLHttpRequest);
7709
+ const setupServer = createSetupServer(
7710
+ // List each interceptor separately instead of using the "node" preset
7711
+ // so that MSW wouldn't bundle the unnecessary classes (i.e. "SocketPolyfill").
7712
+ ClientRequest.interceptClientRequest, XMLHttpRequest.interceptXMLHttpRequest);
7400
7713
 
7401
7714
  exports.setupServer = setupServer;