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