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