msw 0.28.1 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/cli/init.js +14 -6
  2. package/lib/esm/RequestHandler-deps.js +162 -130
  3. package/lib/esm/fetch-deps.js +306 -95
  4. package/lib/esm/graphql-deps.js +26 -19
  5. package/lib/esm/index-deps.js +2 -2
  6. package/lib/esm/index.js +5291 -710
  7. package/lib/esm/index2.js +2 -2
  8. package/lib/esm/mockServiceWorker.js +4 -3
  9. package/lib/esm/rest-deps.js +4 -4
  10. package/lib/esm/xml-deps.js +1 -217
  11. package/lib/iife/index.js +4 -4
  12. package/lib/iife/mockServiceWorker.js +4 -3
  13. package/lib/types/context/body.d.ts +1 -1
  14. package/lib/types/context/json.d.ts +1 -1
  15. package/lib/types/context/text.d.ts +1 -1
  16. package/lib/types/context/xml.d.ts +1 -1
  17. package/lib/types/handlers/GraphQLHandler.d.ts +4 -2
  18. package/lib/types/handlers/RequestHandler.d.ts +12 -8
  19. package/lib/types/handlers/RestHandler.d.ts +2 -2
  20. package/lib/types/node/glossary.d.ts +2 -1
  21. package/lib/types/response.d.ts +1 -1
  22. package/lib/types/setupWorker/glossary.d.ts +21 -16
  23. package/lib/types/setupWorker/start/createFallbackStart.d.ts +2 -0
  24. package/lib/types/setupWorker/start/createStartHandler.d.ts +2 -0
  25. package/lib/types/setupWorker/start/utils/enableMocking.d.ts +5 -0
  26. package/lib/types/setupWorker/start/utils/prepareStartHandler.d.ts +9 -0
  27. package/lib/types/setupWorker/start/utils/printStartMessage.d.ts +7 -0
  28. package/lib/types/setupWorker/start/utils/validateWorkerScope.d.ts +2 -0
  29. package/lib/types/setupWorker/stop/createFallbackStop.d.ts +2 -0
  30. package/lib/types/setupWorker/stop/createStop.d.ts +2 -2
  31. package/lib/types/setupWorker/stop/utils/printStopMessage.d.ts +3 -0
  32. package/lib/types/sharedOptions.d.ts +3 -2
  33. package/lib/types/utils/getResponse.d.ts +2 -3
  34. package/lib/types/utils/handleRequest.d.ts +27 -0
  35. package/lib/types/utils/internal/isIterable.d.ts +4 -0
  36. package/lib/types/utils/internal/tryCatch.d.ts +1 -0
  37. package/lib/types/utils/logging/prepareResponse.d.ts +3 -3
  38. package/lib/types/utils/request/parseIsomorphicRequest.d.ts +6 -0
  39. package/lib/types/utils/request/parseWorkerRequest.d.ts +4 -0
  40. package/lib/types/utils/worker/createFallbackRequestListener.d.ts +3 -0
  41. package/lib/umd/index.js +27002 -5268
  42. package/lib/umd/mockServiceWorker.js +4 -3
  43. package/native/lib/index.js +4374 -4281
  44. package/node/lib/index.js +1385 -1292
  45. package/package.json +33 -33
  46. package/lib/types/setupWorker/start/createStart.d.ts +0 -2
  47. package/lib/types/setupWorker/start/utils/activateMocking.d.ts +0 -2
@@ -82,14 +82,14 @@ const status = (statusCode, statusText) => {
82
82
 
83
83
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
84
84
 
85
- function createCommonjsModule(fn) {
86
- var module = { exports: {} };
87
- return fn(module, module.exports), module.exports;
88
- }
85
+ var lib = {};
89
86
 
90
- var normalizeHeaderName_1 = createCommonjsModule(function (module, exports) {
91
- Object.defineProperty(exports, "__esModule", { value: true });
92
- exports.normalizeHeaderName = void 0;
87
+ var Headers = {};
88
+
89
+ var normalizeHeaderName$1 = {};
90
+
91
+ Object.defineProperty(normalizeHeaderName$1, "__esModule", { value: true });
92
+ normalizeHeaderName$1.normalizeHeaderName = void 0;
93
93
  var HEADERS_INVALID_CHARACTERS = /[^a-z0-9\-#$%&'*+.^_`|~]/i;
94
94
  function normalizeHeaderName(name) {
95
95
  if (typeof name !== 'string') {
@@ -100,20 +100,19 @@ function normalizeHeaderName(name) {
100
100
  }
101
101
  return name.toLowerCase();
102
102
  }
103
- exports.normalizeHeaderName = normalizeHeaderName;
104
- });
103
+ normalizeHeaderName$1.normalizeHeaderName = normalizeHeaderName;
105
104
 
106
- var normalizeHeaderValue_1 = createCommonjsModule(function (module, exports) {
107
- Object.defineProperty(exports, "__esModule", { value: true });
108
- exports.normalizeHeaderValue = void 0;
105
+ var normalizeHeaderValue$1 = {};
106
+
107
+ Object.defineProperty(normalizeHeaderValue$1, "__esModule", { value: true });
108
+ normalizeHeaderValue$1.normalizeHeaderValue = void 0;
109
109
  function normalizeHeaderValue(value) {
110
110
  if (typeof value !== 'string') {
111
111
  value = String(value);
112
112
  }
113
113
  return value;
114
114
  }
115
- exports.normalizeHeaderValue = normalizeHeaderValue;
116
- });
115
+ normalizeHeaderValue$1.normalizeHeaderValue = normalizeHeaderValue;
117
116
 
118
117
  var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (thisArg, body) {
119
118
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
@@ -142,7 +141,7 @@ var __generator = (commonjsGlobal && commonjsGlobal.__generator) || function (th
142
141
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
143
142
  }
144
143
  };
145
- var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
144
+ var __read$3 = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
146
145
  var m = typeof Symbol === "function" && o[Symbol.iterator];
147
146
  if (!m) return o;
148
147
  var i = m.call(o), r, ar = [], e;
@@ -169,9 +168,9 @@ var __values = (commonjsGlobal && commonjsGlobal.__values) || function(o) {
169
168
  };
170
169
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
171
170
  };
172
-
173
-
174
-
171
+ Object.defineProperty(Headers, "__esModule", { value: true });
172
+ var normalizeHeaderName_1 = normalizeHeaderName$1;
173
+ var normalizeHeaderValue_1 = normalizeHeaderValue$1;
175
174
  var HeadersPolyfill = /** @class */ (function () {
176
175
  function HeadersPolyfill(init) {
177
176
  var _this = this;
@@ -193,7 +192,7 @@ var HeadersPolyfill = /** @class */ (function () {
193
192
  }
194
193
  else if (Array.isArray(init)) {
195
194
  init.forEach(function (_a) {
196
- var _b = __read(_a, 2), name = _b[0], value = _b[1];
195
+ var _b = __read$3(_a, 2), name = _b[0], value = _b[1];
197
196
  _this.append(name, Array.isArray(value) ? value.join(', ') : value);
198
197
  });
199
198
  }
@@ -354,7 +353,7 @@ var HeadersPolyfill = /** @class */ (function () {
354
353
  HeadersPolyfill.prototype.raw = function () {
355
354
  var _this = this;
356
355
  return Object.entries(this._headers).reduce(function (headers, _a) {
357
- var _b = __read(_a, 2), name = _b[0], value = _b[1];
356
+ var _b = __read$3(_a, 2), name = _b[0], value = _b[1];
358
357
  headers[_this._names.get(name)] = value;
359
358
  return headers;
360
359
  }, {});
@@ -378,15 +377,14 @@ var HeadersPolyfill = /** @class */ (function () {
378
377
  };
379
378
  return HeadersPolyfill;
380
379
  }());
381
- var _default = HeadersPolyfill;
380
+ Headers.default = HeadersPolyfill;
382
381
 
383
- var Headers = /*#__PURE__*/Object.defineProperty({
384
- default: _default
385
- }, '__esModule', {value: true});
382
+ var headersToString$1 = {};
386
383
 
387
- var headersToList_1 = createCommonjsModule(function (module, exports) {
388
- Object.defineProperty(exports, "__esModule", { value: true });
389
- exports.headersToList = void 0;
384
+ var headersToList$1 = {};
385
+
386
+ Object.defineProperty(headersToList$1, "__esModule", { value: true });
387
+ headersToList$1.headersToList = void 0;
390
388
  function headersToList(headers) {
391
389
  var headersList = [];
392
390
  headers.forEach(function (value, name) {
@@ -397,11 +395,9 @@ function headersToList(headers) {
397
395
  });
398
396
  return headersList;
399
397
  }
400
- exports.headersToList = headersToList;
401
- });
398
+ headersToList$1.headersToList = headersToList;
402
399
 
403
- var headersToString_1 = createCommonjsModule(function (module, exports) {
404
- var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
400
+ var __read$2 = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
405
401
  var m = typeof Symbol === "function" && o[Symbol.iterator];
406
402
  if (!m) return o;
407
403
  var i = m.call(o), r, ar = [], e;
@@ -417,27 +413,27 @@ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
417
413
  }
418
414
  return ar;
419
415
  };
420
- Object.defineProperty(exports, "__esModule", { value: true });
421
- exports.headersToString = void 0;
422
-
416
+ Object.defineProperty(headersToString$1, "__esModule", { value: true });
417
+ headersToString$1.headersToString = void 0;
418
+ var headersToList_1 = headersToList$1;
423
419
  /**
424
420
  * Converts a given `Headers` instance to its string representation.
425
421
  */
426
422
  function headersToString(headers) {
427
423
  var list = headersToList_1.headersToList(headers);
428
424
  var lines = list.map(function (_a) {
429
- var _b = __read(_a, 2), name = _b[0], value = _b[1];
425
+ var _b = __read$2(_a, 2), name = _b[0], value = _b[1];
430
426
  var values = [].concat(value);
431
427
  return name + ": " + values.join(', ');
432
428
  });
433
429
  return lines.join('\r\n');
434
430
  }
435
- exports.headersToString = headersToString;
436
- });
431
+ headersToString$1.headersToString = headersToString;
437
432
 
438
- var headersToObject_1 = createCommonjsModule(function (module, exports) {
439
- Object.defineProperty(exports, "__esModule", { value: true });
440
- exports.headersToObject = void 0;
433
+ var headersToObject$1 = {};
434
+
435
+ Object.defineProperty(headersToObject$1, "__esModule", { value: true });
436
+ headersToObject$1.headersToObject = void 0;
441
437
  // List of headers that cannot have multiple values,
442
438
  // while potentially having a comma in their single value.
443
439
  var singleValueHeaders = ['user-agent'];
@@ -455,13 +451,13 @@ function headersToObject(headers) {
455
451
  });
456
452
  return headersObject;
457
453
  }
458
- exports.headersToObject = headersToObject;
459
- });
454
+ headersToObject$1.headersToObject = headersToObject;
460
455
 
461
- var stringToHeaders_1 = createCommonjsModule(function (module, exports) {
462
- Object.defineProperty(exports, "__esModule", { value: true });
463
- exports.stringToHeaders = void 0;
456
+ var stringToHeaders$1 = {};
464
457
 
458
+ Object.defineProperty(stringToHeaders$1, "__esModule", { value: true });
459
+ stringToHeaders$1.stringToHeaders = void 0;
460
+ var Headers_1$2 = Headers;
465
461
  /**
466
462
  * Converts a string representation of headers (i.e. from XMLHttpRequest)
467
463
  * to a new `Headers` instance.
@@ -474,13 +470,13 @@ function stringToHeaders(str) {
474
470
  var value = parts.join(': ');
475
471
  headers.append(name, value);
476
472
  return headers;
477
- }, new Headers.default());
473
+ }, new Headers_1$2.default());
478
474
  }
479
- exports.stringToHeaders = stringToHeaders;
480
- });
475
+ stringToHeaders$1.stringToHeaders = stringToHeaders;
481
476
 
482
- var listToHeaders_1 = createCommonjsModule(function (module, exports) {
483
- var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
477
+ var listToHeaders$1 = {};
478
+
479
+ var __read$1 = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
484
480
  var m = typeof Symbol === "function" && o[Symbol.iterator];
485
481
  if (!m) return o;
486
482
  var i = m.call(o), r, ar = [], e;
@@ -496,13 +492,13 @@ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
496
492
  }
497
493
  return ar;
498
494
  };
499
- Object.defineProperty(exports, "__esModule", { value: true });
500
- exports.listToHeaders = void 0;
501
-
495
+ Object.defineProperty(listToHeaders$1, "__esModule", { value: true });
496
+ listToHeaders$1.listToHeaders = void 0;
497
+ var Headers_1$1 = Headers;
502
498
  function listToHeaders(list) {
503
- var headers = new Headers.default();
499
+ var headers = new Headers_1$1.default();
504
500
  list.forEach(function (_a) {
505
- var _b = __read(_a, 2), name = _b[0], value = _b[1];
501
+ var _b = __read$1(_a, 2), name = _b[0], value = _b[1];
506
502
  var values = [].concat(value);
507
503
  values.forEach(function (value) {
508
504
  headers.append(name, value);
@@ -510,12 +506,14 @@ function listToHeaders(list) {
510
506
  });
511
507
  return headers;
512
508
  }
513
- exports.listToHeaders = listToHeaders;
514
- });
509
+ listToHeaders$1.listToHeaders = listToHeaders;
515
510
 
516
- var reduceHeadersObject_1 = createCommonjsModule(function (module, exports) {
517
- Object.defineProperty(exports, "__esModule", { value: true });
518
- exports.reduceHeadersObject = void 0;
511
+ var objectToHeaders$1 = {};
512
+
513
+ var reduceHeadersObject$1 = {};
514
+
515
+ Object.defineProperty(reduceHeadersObject$1, "__esModule", { value: true });
516
+ reduceHeadersObject$1.reduceHeadersObject = void 0;
519
517
  /**
520
518
  * Reduces given headers object instnace.
521
519
  */
@@ -524,30 +522,28 @@ function reduceHeadersObject(headers, reducer, initialState) {
524
522
  return reducer(nextHeaders, name, headers[name]);
525
523
  }, initialState);
526
524
  }
527
- exports.reduceHeadersObject = reduceHeadersObject;
528
- });
529
-
530
- var objectToHeaders_1 = createCommonjsModule(function (module, exports) {
531
- Object.defineProperty(exports, "__esModule", { value: true });
532
- exports.objectToHeaders = void 0;
533
-
525
+ reduceHeadersObject$1.reduceHeadersObject = reduceHeadersObject;
534
526
 
527
+ Object.defineProperty(objectToHeaders$1, "__esModule", { value: true });
528
+ objectToHeaders$1.objectToHeaders = void 0;
529
+ var Headers_1 = Headers;
530
+ var reduceHeadersObject_1$1 = reduceHeadersObject$1;
535
531
  /**
536
532
  * Converts a given headers object to a new `Headers` instance.
537
533
  */
538
534
  function objectToHeaders(headersObject) {
539
- return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) {
535
+ return reduceHeadersObject_1$1.reduceHeadersObject(headersObject, function (headers, name, value) {
540
536
  var values = [].concat(value).filter(Boolean);
541
537
  values.forEach(function (value) {
542
538
  headers.append(name, value);
543
539
  });
544
540
  return headers;
545
- }, new Headers.default());
541
+ }, new Headers_1.default());
546
542
  }
547
- exports.objectToHeaders = objectToHeaders;
548
- });
543
+ objectToHeaders$1.objectToHeaders = objectToHeaders;
544
+
545
+ var flattenHeadersList$1 = {};
549
546
 
550
- var flattenHeadersList_1 = createCommonjsModule(function (module, exports) {
551
547
  var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
552
548
  var m = typeof Symbol === "function" && o[Symbol.iterator];
553
549
  if (!m) return o;
@@ -564,54 +560,53 @@ var __read = (commonjsGlobal && commonjsGlobal.__read) || function (o, n) {
564
560
  }
565
561
  return ar;
566
562
  };
567
- Object.defineProperty(exports, "__esModule", { value: true });
568
- exports.flattenHeadersList = void 0;
563
+ Object.defineProperty(flattenHeadersList$1, "__esModule", { value: true });
564
+ flattenHeadersList$1.flattenHeadersList = void 0;
569
565
  function flattenHeadersList(list) {
570
566
  return list.map(function (_a) {
571
567
  var _b = __read(_a, 2), name = _b[0], values = _b[1];
572
568
  return [name, [].concat(values).join('; ')];
573
569
  });
574
570
  }
575
- exports.flattenHeadersList = flattenHeadersList;
576
- });
571
+ flattenHeadersList$1.flattenHeadersList = flattenHeadersList;
577
572
 
578
- var flattenHeadersObject_1 = createCommonjsModule(function (module, exports) {
579
- Object.defineProperty(exports, "__esModule", { value: true });
580
- exports.flattenHeadersObject = void 0;
573
+ var flattenHeadersObject$1 = {};
581
574
 
575
+ Object.defineProperty(flattenHeadersObject$1, "__esModule", { value: true });
576
+ flattenHeadersObject$1.flattenHeadersObject = void 0;
577
+ var reduceHeadersObject_1 = reduceHeadersObject$1;
582
578
  function flattenHeadersObject(headersObject) {
583
579
  return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) {
584
580
  headers[name] = [].concat(value).join('; ');
585
581
  return headers;
586
582
  }, {});
587
583
  }
588
- exports.flattenHeadersObject = flattenHeadersObject;
589
- });
584
+ flattenHeadersObject$1.flattenHeadersObject = flattenHeadersObject;
590
585
 
591
- var lib = createCommonjsModule(function (module, exports) {
586
+ (function (exports) {
592
587
  Object.defineProperty(exports, "__esModule", { value: true });
593
588
  exports.flattenHeadersObject = exports.flattenHeadersList = exports.reduceHeadersObject = exports.objectToHeaders = exports.listToHeaders = exports.stringToHeaders = exports.headersToObject = exports.headersToList = exports.headersToString = exports.Headers = void 0;
594
-
595
- Object.defineProperty(exports, "Headers", { enumerable: true, get: function () { return Headers.default; } });
596
-
589
+ var Headers_1 = Headers;
590
+ Object.defineProperty(exports, "Headers", { enumerable: true, get: function () { return Headers_1.default; } });
591
+ var headersToString_1 = headersToString$1;
597
592
  Object.defineProperty(exports, "headersToString", { enumerable: true, get: function () { return headersToString_1.headersToString; } });
598
-
593
+ var headersToList_1 = headersToList$1;
599
594
  Object.defineProperty(exports, "headersToList", { enumerable: true, get: function () { return headersToList_1.headersToList; } });
600
-
595
+ var headersToObject_1 = headersToObject$1;
601
596
  Object.defineProperty(exports, "headersToObject", { enumerable: true, get: function () { return headersToObject_1.headersToObject; } });
602
-
597
+ var stringToHeaders_1 = stringToHeaders$1;
603
598
  Object.defineProperty(exports, "stringToHeaders", { enumerable: true, get: function () { return stringToHeaders_1.stringToHeaders; } });
604
-
599
+ var listToHeaders_1 = listToHeaders$1;
605
600
  Object.defineProperty(exports, "listToHeaders", { enumerable: true, get: function () { return listToHeaders_1.listToHeaders; } });
606
-
601
+ var objectToHeaders_1 = objectToHeaders$1;
607
602
  Object.defineProperty(exports, "objectToHeaders", { enumerable: true, get: function () { return objectToHeaders_1.objectToHeaders; } });
608
-
603
+ var reduceHeadersObject_1 = reduceHeadersObject$1;
609
604
  Object.defineProperty(exports, "reduceHeadersObject", { enumerable: true, get: function () { return reduceHeadersObject_1.reduceHeadersObject; } });
610
-
605
+ var flattenHeadersList_1 = flattenHeadersList$1;
611
606
  Object.defineProperty(exports, "flattenHeadersList", { enumerable: true, get: function () { return flattenHeadersList_1.flattenHeadersList; } });
612
-
607
+ var flattenHeadersObject_1 = flattenHeadersObject$1;
613
608
  Object.defineProperty(exports, "flattenHeadersObject", { enumerable: true, get: function () { return flattenHeadersObject_1.flattenHeadersObject; } });
614
- });
609
+ }(lib));
615
610
 
616
611
  /**
617
612
  * Sets one or multiple response headers.
@@ -633,6 +628,222 @@ function set(...args) {
633
628
  };
634
629
  }
635
630
 
631
+ /*!
632
+ * cookie
633
+ * Copyright(c) 2012-2014 Roman Shtylman
634
+ * Copyright(c) 2015 Douglas Christopher Wilson
635
+ * MIT Licensed
636
+ */
637
+
638
+ /**
639
+ * Module exports.
640
+ * @public
641
+ */
642
+
643
+ var parse_1 = parse;
644
+ var serialize_1 = serialize;
645
+
646
+ /**
647
+ * Module variables.
648
+ * @private
649
+ */
650
+
651
+ var decode = decodeURIComponent;
652
+ var encode = encodeURIComponent;
653
+ var pairSplitRegExp = /; */;
654
+
655
+ /**
656
+ * RegExp to match field-content in RFC 7230 sec 3.2
657
+ *
658
+ * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
659
+ * field-vchar = VCHAR / obs-text
660
+ * obs-text = %x80-FF
661
+ */
662
+
663
+ var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
664
+
665
+ /**
666
+ * Parse a cookie header.
667
+ *
668
+ * Parse the given cookie header string into an object
669
+ * The object has the various cookies as keys(names) => values
670
+ *
671
+ * @param {string} str
672
+ * @param {object} [options]
673
+ * @return {object}
674
+ * @public
675
+ */
676
+
677
+ function parse(str, options) {
678
+ if (typeof str !== 'string') {
679
+ throw new TypeError('argument str must be a string');
680
+ }
681
+
682
+ var obj = {};
683
+ var opt = options || {};
684
+ var pairs = str.split(pairSplitRegExp);
685
+ var dec = opt.decode || decode;
686
+
687
+ for (var i = 0; i < pairs.length; i++) {
688
+ var pair = pairs[i];
689
+ var eq_idx = pair.indexOf('=');
690
+
691
+ // skip things that don't look like key=value
692
+ if (eq_idx < 0) {
693
+ continue;
694
+ }
695
+
696
+ var key = pair.substr(0, eq_idx).trim();
697
+ var val = pair.substr(++eq_idx, pair.length).trim();
698
+
699
+ // quoted values
700
+ if ('"' == val[0]) {
701
+ val = val.slice(1, -1);
702
+ }
703
+
704
+ // only assign once
705
+ if (undefined == obj[key]) {
706
+ obj[key] = tryDecode(val, dec);
707
+ }
708
+ }
709
+
710
+ return obj;
711
+ }
712
+
713
+ /**
714
+ * Serialize data into a cookie header.
715
+ *
716
+ * Serialize the a name value pair into a cookie string suitable for
717
+ * http headers. An optional options object specified cookie parameters.
718
+ *
719
+ * serialize('foo', 'bar', { httpOnly: true })
720
+ * => "foo=bar; httpOnly"
721
+ *
722
+ * @param {string} name
723
+ * @param {string} val
724
+ * @param {object} [options]
725
+ * @return {string}
726
+ * @public
727
+ */
728
+
729
+ function serialize(name, val, options) {
730
+ var opt = options || {};
731
+ var enc = opt.encode || encode;
732
+
733
+ if (typeof enc !== 'function') {
734
+ throw new TypeError('option encode is invalid');
735
+ }
736
+
737
+ if (!fieldContentRegExp.test(name)) {
738
+ throw new TypeError('argument name is invalid');
739
+ }
740
+
741
+ var value = enc(val);
742
+
743
+ if (value && !fieldContentRegExp.test(value)) {
744
+ throw new TypeError('argument val is invalid');
745
+ }
746
+
747
+ var str = name + '=' + value;
748
+
749
+ if (null != opt.maxAge) {
750
+ var maxAge = opt.maxAge - 0;
751
+
752
+ if (isNaN(maxAge) || !isFinite(maxAge)) {
753
+ throw new TypeError('option maxAge is invalid')
754
+ }
755
+
756
+ str += '; Max-Age=' + Math.floor(maxAge);
757
+ }
758
+
759
+ if (opt.domain) {
760
+ if (!fieldContentRegExp.test(opt.domain)) {
761
+ throw new TypeError('option domain is invalid');
762
+ }
763
+
764
+ str += '; Domain=' + opt.domain;
765
+ }
766
+
767
+ if (opt.path) {
768
+ if (!fieldContentRegExp.test(opt.path)) {
769
+ throw new TypeError('option path is invalid');
770
+ }
771
+
772
+ str += '; Path=' + opt.path;
773
+ }
774
+
775
+ if (opt.expires) {
776
+ if (typeof opt.expires.toUTCString !== 'function') {
777
+ throw new TypeError('option expires is invalid');
778
+ }
779
+
780
+ str += '; Expires=' + opt.expires.toUTCString();
781
+ }
782
+
783
+ if (opt.httpOnly) {
784
+ str += '; HttpOnly';
785
+ }
786
+
787
+ if (opt.secure) {
788
+ str += '; Secure';
789
+ }
790
+
791
+ if (opt.sameSite) {
792
+ var sameSite = typeof opt.sameSite === 'string'
793
+ ? opt.sameSite.toLowerCase() : opt.sameSite;
794
+
795
+ switch (sameSite) {
796
+ case true:
797
+ str += '; SameSite=Strict';
798
+ break;
799
+ case 'lax':
800
+ str += '; SameSite=Lax';
801
+ break;
802
+ case 'strict':
803
+ str += '; SameSite=Strict';
804
+ break;
805
+ case 'none':
806
+ str += '; SameSite=None';
807
+ break;
808
+ default:
809
+ throw new TypeError('option sameSite is invalid');
810
+ }
811
+ }
812
+
813
+ return str;
814
+ }
815
+
816
+ /**
817
+ * Try decoding a string using a decoding function.
818
+ *
819
+ * @param {string} str
820
+ * @param {function} decode
821
+ * @private
822
+ */
823
+
824
+ function tryDecode(str, decode) {
825
+ try {
826
+ return decode(str);
827
+ } catch (e) {
828
+ return str;
829
+ }
830
+ }
831
+
832
+ /**
833
+ * Sets a given cookie on the mocked response.
834
+ * @example res(ctx.cookie('name', 'value'))
835
+ */
836
+ const cookie = (name, value, options) => {
837
+ return (res) => {
838
+ const serializedCookie = serialize_1(name, value, options);
839
+ res.headers.set('Set-Cookie', serializedCookie);
840
+ if (typeof document !== 'undefined') {
841
+ document.cookie = serializedCookie;
842
+ }
843
+ return res;
844
+ };
845
+ };
846
+
636
847
  /**
637
848
  * Parses a given string into a JSON.
638
849
  * Does not throw an exception on an invalid JSON string.
@@ -767,4 +978,4 @@ const fetch = (input, requestInit = {}) => {
767
978
  return useFetch(input.url.href, derivedRequestInit);
768
979
  };
769
980
 
770
- export { commonjsGlobal as a, set as b, createCommonjsModule as c, delay as d, json as e, fetch as f, isNodeProcess as i, jsonParse as j, lib as l, status as s };
981
+ export { set as a, cookie as b, commonjsGlobal as c, delay as d, json as e, fetch as f, isNodeProcess as i, jsonParse as j, lib as l, parse_1 as p, status as s };