msw 0.27.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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];
@@ -2595,7 +2888,7 @@ function parseBody(body, headers) {
2595
2888
  }
2596
2889
 
2597
2890
  /**
2598
- * Returns a boolean indicating if the current process is running in NodeJS environment.
2891
+ * Returns a boolean indicating if the current process is running in Node.js environment.
2599
2892
  * @see https://github.com/mswjs/msw/pull/255
2600
2893
  */
2601
2894
  function isNodeProcess() {
@@ -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
  });
@@ -6175,7 +6468,7 @@ const getRandomServerResponseTime = () => {
6175
6468
  * Delays the response by the given duration (ms).
6176
6469
  * @example
6177
6470
  * res(ctx.delay(1200)) // delay response by 1200ms
6178
- * res(ctx.delay()) // emilate realistic server response time
6471
+ * res(ctx.delay()) // emulate realistic server response time
6179
6472
  * res(ctx.delay('infinite')) // delay response infinitely
6180
6473
  * @see {@link https://mswjs.io/docs/api/context/delay `ctx.delay()`}
6181
6474
  */
@@ -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;
@@ -6255,7 +6548,6 @@ const createFetchRequestParameters = (input) => {
6255
6548
  * @see {@link https://mswjs.io/docs/api/context/fetch `ctx.fetch()`}
6256
6549
  */
6257
6550
  const fetch = (input, requestInit = {}) => {
6258
- // Keep the default `window.fetch()` call signature
6259
6551
  if (typeof input === 'string') {
6260
6552
  return useFetch(input, augmentRequestInit(requestInit));
6261
6553
  }
@@ -6319,14 +6611,14 @@ function getTimestamp() {
6319
6611
  * Formats a mocked request for introspection in browser's console.
6320
6612
  */
6321
6613
  function prepareRequest(request) {
6322
- return Object.assign(Object.assign({}, request), { headers: request.headers.getAllHeaders() });
6614
+ return Object.assign(Object.assign({}, request), { headers: request.headers.all() });
6323
6615
  }
6324
6616
 
6325
6617
  /**
6326
6618
  * Formats a mocked response for introspection in browser's console.
6327
6619
  */
6328
6620
  function prepareResponse(res) {
6329
- const responseHeaders = listToHeaders$1(res.headers);
6621
+ const responseHeaders = lib$1.listToHeaders(res.headers);
6330
6622
  return Object.assign(Object.assign({}, res), {
6331
6623
  // Parse a response JSON body for preview in the logs
6332
6624
  body: parseBody(res.body, responseHeaders) });
@@ -6473,7 +6765,7 @@ const defaultResponseTransformers = [];
6473
6765
  function createResponseComposition(responseOverrides, defaultTransformers = defaultResponseTransformers) {
6474
6766
  return (...transformers) => __awaiter(this, void 0, void 0, function* () {
6475
6767
  const initialResponse = Object.assign({}, defaultResponse, {
6476
- headers: new Headers$2({
6768
+ headers: new lib$1.Headers({
6477
6769
  'x-powered-by': 'msw',
6478
6770
  }),
6479
6771
  }, responseOverrides);
@@ -6498,7 +6790,9 @@ const response = Object.assign(createResponseComposition(), {
6498
6790
  * Return the stack trace frame of a function's invocation.
6499
6791
  */
6500
6792
  function getCallFrame() {
6501
- 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');
6502
6796
  // Get the first frame that doesn't reference the library's internal trace.
6503
6797
  // Assume that frame is the invocation frame.
6504
6798
  const ignoreFrameRegExp = /(node_modules)?[\/\\]lib[\/\\](umd|esm|iief|cjs)[\/\\]|^[^\/\\]*$/;
@@ -6873,7 +7167,9 @@ function parseString(setCookieValue, options) {
6873
7167
  value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value
6874
7168
  } catch (e) {
6875
7169
  console.error(
6876
- `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.",
6877
7173
  e
6878
7174
  );
6879
7175
  }
@@ -7151,8 +7447,14 @@ class CookieStore {
7151
7447
  if (persistedCookies) {
7152
7448
  try {
7153
7449
  const parsedCookies = JSON.parse(persistedCookies);
7154
- parsedCookies.forEach(([origin, cookie]) => {
7155
- 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
+ })));
7156
7458
  });
7157
7459
  }
7158
7460
  catch (error) {
@@ -7200,7 +7502,7 @@ Invalid value has been removed from localStorage to prevent subsequent failed pa
7200
7502
  exports.default = new CookieStore();
7201
7503
  });
7202
7504
 
7203
- var lib$1 = createCommonjsModule(function (module, exports) {
7505
+ var lib$2 = createCommonjsModule(function (module, exports) {
7204
7506
  var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
7205
7507
  return (mod && mod.__esModule) ? mod : { "default": mod };
7206
7508
  };
@@ -7219,7 +7521,7 @@ function getAllCookies() {
7219
7521
  */
7220
7522
  function getRequestCookies(request) {
7221
7523
  /**
7222
- * @note No cookies persist on the document in NodeJS: no document.
7524
+ * @note No cookies persist on the document in Node.js: no document.
7223
7525
  */
7224
7526
  if (typeof location === 'undefined') {
7225
7527
  return {};
@@ -7242,16 +7544,16 @@ function getRequestCookies(request) {
7242
7544
 
7243
7545
  function setRequestCookies(request) {
7244
7546
  var _a;
7245
- lib$1.store.hydrate();
7246
- request.cookies = Object.assign(Object.assign({}, getRequestCookies(request)), Object.fromEntries(Array.from((_a = lib$1.store.get(Object.assign(Object.assign({}, request), { url: request.url.toString() }))) === null || _a === void 0 ? void 0 : _a.entries()).map(([name, { value }]) => [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 }), {}));
7247
7549
  request.headers.set('cookie', Object.entries(request.cookies)
7248
7550
  .map(([name, value]) => `${name}=${value}`)
7249
7551
  .join('; '));
7250
7552
  }
7251
7553
 
7252
7554
  function readResponseCookies(request, response) {
7253
- lib$1.store.add(Object.assign(Object.assign({}, request), { url: request.url.toString() }), response);
7254
- lib$1.store.persist();
7555
+ lib$2.store.add(Object.assign(Object.assign({}, request), { url: request.url.toString() }), response);
7556
+ lib$2.store.persist();
7255
7557
  }
7256
7558
 
7257
7559
  const DEFAULT_LISTEN_OPTIONS = {
@@ -7261,48 +7563,34 @@ const DEFAULT_LISTEN_OPTIONS = {
7261
7563
  * Creates a `setupServer` API using given request interceptors.
7262
7564
  * Useful to generate identical API using different patches to request issuing modules.
7263
7565
  */
7264
- function createSetupServer(...interceptors) {
7566
+ function createSetupServer(...interceptors$1) {
7265
7567
  const emitter = new lib.StrictEventEmitter();
7266
7568
  return function setupServer(...requestHandlers) {
7267
7569
  requestHandlers.forEach((handler) => {
7268
7570
  if (Array.isArray(handler))
7269
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).`);
7270
7572
  });
7271
- const interceptor = new nodeRequestInterceptor.RequestInterceptor(interceptors);
7272
7573
  // Error when attempting to run this function in a browser environment.
7273
7574
  if (!isNodeProcess()) {
7274
- throw new Error('[MSW] Failed to execute `setupServer` in the environment that is not NodeJS (i.e. a browser). Consider using `setupWorker` instead.');
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.');
7275
7576
  }
7276
- // Store the list of request handlers for the current server instance,
7277
- // so it could be modified at a runtime.
7278
- let currentHandlers = [...requestHandlers];
7279
- interceptor.on('response', (request, response) => {
7280
- var _a;
7281
- const requestId = (_a = request.headers) === null || _a === void 0 ? void 0 : _a['x-msw-request-id'];
7282
- if (response.headers['x-powered-by'] === 'msw') {
7283
- emitter.emit('response:mocked', response, requestId);
7284
- }
7285
- else {
7286
- emitter.emit('response:bypass', response, requestId);
7287
- }
7288
- });
7289
- return {
7290
- listen(options) {
7291
- const resolvedOptions = Object.assign({}, DEFAULT_LISTEN_OPTIONS, options);
7292
- 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* () {
7293
7582
  const requestId = uuidv4();
7294
- const requestHeaders = new Headers$2(flattenHeadersObject$1(request.headers || {}));
7295
7583
  if (request.headers) {
7296
- request.headers['x-msw-request-id'] = requestId;
7584
+ request.headers.set('x-msw-request-id', requestId);
7297
7585
  }
7298
- const requestCookieString = requestHeaders.get('cookie');
7586
+ const requestCookieString = request.headers.get('cookie');
7299
7587
  const mockedRequest = {
7300
7588
  id: requestId,
7301
7589
  url: request.url,
7302
7590
  method: request.method,
7303
7591
  // Parse the request's body based on the "Content-Type" header.
7304
- body: parseBody(request.body, requestHeaders),
7305
- headers: requestHeaders,
7592
+ body: parseBody(request.body, request.headers),
7593
+ headers: request.headers,
7306
7594
  cookies: {},
7307
7595
  redirect: 'manual',
7308
7596
  referrer: '',
@@ -7319,7 +7607,7 @@ function createSetupServer(...interceptors) {
7319
7607
  setRequestCookies(mockedRequest);
7320
7608
  if (requestCookieString) {
7321
7609
  // Set mocked request cookies from the `cookie` header of the original request.
7322
- // No need to take `credentials` into account, because in NodeJS requests are intercepted
7610
+ // No need to take `credentials` into account, because in Node.js requests are intercepted
7323
7611
  // _after_ they happen. Request issuer should have already taken care of sending relevant cookies.
7324
7612
  // Unlike browser, where interception is on the worker level, _before_ the request happens.
7325
7613
  mockedRequest.cookies = parse_1(requestCookieString);
@@ -7332,10 +7620,10 @@ function createSetupServer(...interceptors) {
7332
7620
  const { response, handler } = yield getResponse(mockedRequest, currentHandlers);
7333
7621
  if (!handler) {
7334
7622
  emitter.emit('request:unhandled', mockedRequest);
7623
+ onUnhandledRequest(mockedRequest, currentHandlers, resolvedOptions.onUnhandledRequest);
7335
7624
  }
7336
7625
  if (!response) {
7337
7626
  emitter.emit('request:end', mockedRequest);
7338
- onUnhandledRequest(mockedRequest, currentHandlers, resolvedOptions.onUnhandledRequest);
7339
7627
  return;
7340
7628
  }
7341
7629
  emitter.emit('request:match', mockedRequest);
@@ -7344,19 +7632,40 @@ function createSetupServer(...interceptors) {
7344
7632
  const mockedResponse = {
7345
7633
  status: response.status,
7346
7634
  statusText: response.statusText,
7347
- headers: response.headers.getAllHeaders(),
7635
+ headers: response.headers.all(),
7348
7636
  body: response.body,
7349
7637
  };
7350
7638
  // Store all the received response cookies in the virtual cookie store.
7351
7639
  readResponseCookies(mockedRequest, response);
7352
- // the node build will use the timers module to ensure @sinon/fake-timers or jest fake timers
7353
- // 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.
7354
7642
  setTimeout(() => {
7355
7643
  resolve(mockedResponse);
7356
7644
  }, (_a = response.delay) !== null && _a !== void 0 ? _a : 0);
7357
7645
  emitter.emit('request:end', mockedRequest);
7358
7646
  });
7359
- }));
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();
7360
7669
  },
7361
7670
  use(...handlers) {
7362
7671
  use(currentHandlers, ...handlers);