@mswjs/interceptors 0.36.7 → 0.36.9

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 (81) hide show
  1. package/lib/browser/{chunk-THPGBWJQ.mjs → chunk-4K55BZMG.mjs} +2 -2
  2. package/lib/browser/{chunk-XVPRNJO7.mjs → chunk-6MOMO77R.mjs} +1 -1
  3. package/lib/browser/chunk-6MOMO77R.mjs.map +1 -0
  4. package/lib/browser/{chunk-2CAGU4FT.js → chunk-7TPGF5DM.js} +1 -1
  5. package/lib/browser/chunk-7TPGF5DM.js.map +1 -0
  6. package/lib/browser/{chunk-YV5F3DAI.mjs → chunk-C6BKAAQW.mjs} +4 -4
  7. package/lib/browser/{chunk-TJ2ZCQ33.js → chunk-LMBCDE7C.js} +13 -13
  8. package/lib/{node/chunk-7Z3OOH2U.js → browser/chunk-PFGO5BSM.js} +7 -1
  9. package/lib/browser/chunk-PFGO5BSM.js.map +1 -0
  10. package/lib/browser/{chunk-V6CPQFVJ.mjs → chunk-Q7PXVXSL.mjs} +4 -4
  11. package/lib/browser/{chunk-6YUX267Y.js → chunk-RKQSZCUD.js} +11 -11
  12. package/lib/{node/chunk-7W52P3VX.mjs → browser/chunk-TX5GBTFY.mjs} +7 -1
  13. package/lib/browser/chunk-TX5GBTFY.mjs.map +1 -0
  14. package/lib/browser/{chunk-FYSUKT3F.js → chunk-UXPG527I.js} +4 -4
  15. package/lib/browser/{glossary-7d7adb4b.d.ts → glossary-6564c252.d.ts} +2 -1
  16. package/lib/browser/index.d.ts +1 -1
  17. package/lib/browser/index.js +2 -2
  18. package/lib/browser/index.mjs +1 -1
  19. package/lib/browser/interceptors/WebSocket/index.js +2 -2
  20. package/lib/browser/interceptors/WebSocket/index.mjs +1 -1
  21. package/lib/browser/interceptors/XMLHttpRequest/index.d.ts +1 -1
  22. package/lib/browser/interceptors/XMLHttpRequest/index.js +5 -5
  23. package/lib/browser/interceptors/XMLHttpRequest/index.mjs +4 -4
  24. package/lib/browser/interceptors/fetch/index.d.ts +1 -1
  25. package/lib/browser/interceptors/fetch/index.js +5 -5
  26. package/lib/browser/interceptors/fetch/index.mjs +4 -4
  27. package/lib/browser/presets/browser.d.ts +1 -1
  28. package/lib/browser/presets/browser.js +7 -7
  29. package/lib/browser/presets/browser.mjs +5 -5
  30. package/lib/node/{BatchInterceptor-13d40c95.d.ts → BatchInterceptor-67bf41ba.d.ts} +1 -1
  31. package/lib/node/{Interceptor-a31b1217.d.ts → Interceptor-436630be.d.ts} +2 -1
  32. package/lib/node/RemoteHttpInterceptor.d.ts +2 -2
  33. package/lib/node/RemoteHttpInterceptor.js +4 -4
  34. package/lib/node/RemoteHttpInterceptor.mjs +3 -3
  35. package/lib/node/{chunk-KVQI7UNN.js → chunk-4YT2XSVO.js} +7 -7
  36. package/lib/node/{chunk-GXB3PZMC.mjs → chunk-6DIWEMO7.mjs} +3 -3
  37. package/lib/node/{chunk-BZ3Y7YV5.mjs → chunk-6YM4PLBI.mjs} +1 -1
  38. package/lib/node/chunk-6YM4PLBI.mjs.map +1 -0
  39. package/lib/node/{chunk-IDEEMJ3F.js → chunk-73NOP3T5.js} +1 -1
  40. package/lib/node/chunk-73NOP3T5.js.map +1 -0
  41. package/lib/node/{chunk-RNZHVDD2.mjs → chunk-EBDS6VMR.mjs} +3 -3
  42. package/lib/{browser/chunk-7Z3OOH2U.js → node/chunk-PFGO5BSM.js} +7 -1
  43. package/lib/node/chunk-PFGO5BSM.js.map +1 -0
  44. package/lib/{browser/chunk-7W52P3VX.mjs → node/chunk-TX5GBTFY.mjs} +7 -1
  45. package/lib/node/chunk-TX5GBTFY.mjs.map +1 -0
  46. package/lib/node/{chunk-XR7ZDC5N.js → chunk-X2CFRRWY.js} +7 -7
  47. package/lib/node/index.d.ts +2 -2
  48. package/lib/node/index.js +2 -2
  49. package/lib/node/index.mjs +1 -1
  50. package/lib/node/interceptors/ClientRequest/index.d.ts +1 -1
  51. package/lib/node/interceptors/XMLHttpRequest/index.d.ts +1 -1
  52. package/lib/node/interceptors/XMLHttpRequest/index.js +4 -4
  53. package/lib/node/interceptors/XMLHttpRequest/index.mjs +3 -3
  54. package/lib/node/interceptors/fetch/index.d.ts +1 -1
  55. package/lib/node/interceptors/fetch/index.js +4 -4
  56. package/lib/node/interceptors/fetch/index.mjs +3 -3
  57. package/lib/node/presets/node.d.ts +1 -1
  58. package/lib/node/presets/node.js +6 -6
  59. package/lib/node/presets/node.mjs +4 -4
  60. package/package.json +1 -1
  61. package/src/glossary.ts +6 -0
  62. package/src/utils/hasConfigurableGlobal.test.ts +24 -0
  63. package/src/utils/hasConfigurableGlobal.ts +14 -0
  64. package/lib/browser/chunk-2CAGU4FT.js.map +0 -1
  65. package/lib/browser/chunk-7W52P3VX.mjs.map +0 -1
  66. package/lib/browser/chunk-7Z3OOH2U.js.map +0 -1
  67. package/lib/browser/chunk-XVPRNJO7.mjs.map +0 -1
  68. package/lib/node/chunk-7W52P3VX.mjs.map +0 -1
  69. package/lib/node/chunk-7Z3OOH2U.js.map +0 -1
  70. package/lib/node/chunk-BZ3Y7YV5.mjs.map +0 -1
  71. package/lib/node/chunk-IDEEMJ3F.js.map +0 -1
  72. /package/lib/browser/{chunk-THPGBWJQ.mjs.map → chunk-4K55BZMG.mjs.map} +0 -0
  73. /package/lib/browser/{chunk-YV5F3DAI.mjs.map → chunk-C6BKAAQW.mjs.map} +0 -0
  74. /package/lib/browser/{chunk-TJ2ZCQ33.js.map → chunk-LMBCDE7C.js.map} +0 -0
  75. /package/lib/browser/{chunk-V6CPQFVJ.mjs.map → chunk-Q7PXVXSL.mjs.map} +0 -0
  76. /package/lib/browser/{chunk-6YUX267Y.js.map → chunk-RKQSZCUD.js.map} +0 -0
  77. /package/lib/browser/{chunk-FYSUKT3F.js.map → chunk-UXPG527I.js.map} +0 -0
  78. /package/lib/node/{chunk-KVQI7UNN.js.map → chunk-4YT2XSVO.js.map} +0 -0
  79. /package/lib/node/{chunk-GXB3PZMC.mjs.map → chunk-6DIWEMO7.mjs.map} +0 -0
  80. /package/lib/node/{chunk-RNZHVDD2.mjs.map → chunk-EBDS6VMR.mjs.map} +0 -0
  81. /package/lib/node/{chunk-XR7ZDC5N.js.map → chunk-X2CFRRWY.js.map} +0 -0
@@ -6,10 +6,10 @@ var _chunkPGTBKPWNjs = require('./chunk-PGTBKPWN.js');
6
6
  var _chunkFPLETXGAjs = require('./chunk-FPLETXGA.js');
7
7
 
8
8
 
9
- var _chunkXR7ZDC5Njs = require('./chunk-XR7ZDC5N.js');
9
+ var _chunkX2CFRRWYjs = require('./chunk-X2CFRRWY.js');
10
10
  require('./chunk-LK6DILFK.js');
11
- require('./chunk-7Z3OOH2U.js');
12
- require('./chunk-IDEEMJ3F.js');
11
+ require('./chunk-PFGO5BSM.js');
12
+ require('./chunk-73NOP3T5.js');
13
13
 
14
14
 
15
15
 
@@ -25,7 +25,7 @@ var RemoteHttpInterceptor = class extends _chunkPGTBKPWNjs.BatchInterceptor {
25
25
  name: "remote-interceptor",
26
26
  interceptors: [
27
27
  new (0, _chunkFPLETXGAjs.ClientRequestInterceptor)(),
28
- new (0, _chunkXR7ZDC5Njs.XMLHttpRequestInterceptor)()
28
+ new (0, _chunkX2CFRRWYjs.XMLHttpRequestInterceptor)()
29
29
  ]
30
30
  });
31
31
  }
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-MG3S53QP.mjs";
7
7
  import {
8
8
  XMLHttpRequestInterceptor
9
- } from "./chunk-RNZHVDD2.mjs";
9
+ } from "./chunk-EBDS6VMR.mjs";
10
10
  import "./chunk-6HYIRFX2.mjs";
11
- import "./chunk-7W52P3VX.mjs";
12
- import "./chunk-BZ3Y7YV5.mjs";
11
+ import "./chunk-TX5GBTFY.mjs";
12
+ import "./chunk-6YM4PLBI.mjs";
13
13
  import {
14
14
  RequestController,
15
15
  handleRequest
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunk7Z3OOH2Ujs = require('./chunk-7Z3OOH2U.js');
3
+ var _chunkPFGO5BSMjs = require('./chunk-PFGO5BSM.js');
4
4
 
5
5
 
6
- var _chunkIDEEMJ3Fjs = require('./chunk-IDEEMJ3F.js');
6
+ var _chunk73NOP3T5js = require('./chunk-73NOP3T5.js');
7
7
 
8
8
 
9
9
 
@@ -190,12 +190,12 @@ var _FetchInterceptor = class extends _chunkAABH3XLQjs.Interceptor {
190
190
  super(_FetchInterceptor.symbol);
191
191
  }
192
192
  checkEnvironment() {
193
- return _chunk7Z3OOH2Ujs.hasConfigurableGlobal.call(void 0, "fetch");
193
+ return _chunkPFGO5BSMjs.hasConfigurableGlobal.call(void 0, "fetch");
194
194
  }
195
195
  async setup() {
196
196
  const pureFetch = globalThis.fetch;
197
197
  _outvariant.invariant.call(void 0,
198
- !pureFetch[_chunkIDEEMJ3Fjs.IS_PATCHED_MODULE],
198
+ !pureFetch[_chunk73NOP3T5js.IS_PATCHED_MODULE],
199
199
  'Failed to patch the "fetch" module: already patched.'
200
200
  );
201
201
  globalThis.fetch = async (input, init) => {
@@ -289,13 +289,13 @@ var _FetchInterceptor = class extends _chunkAABH3XLQjs.Interceptor {
289
289
  return response;
290
290
  });
291
291
  };
292
- Object.defineProperty(globalThis.fetch, _chunkIDEEMJ3Fjs.IS_PATCHED_MODULE, {
292
+ Object.defineProperty(globalThis.fetch, _chunk73NOP3T5js.IS_PATCHED_MODULE, {
293
293
  enumerable: true,
294
294
  configurable: true,
295
295
  value: true
296
296
  });
297
297
  this.subscriptions.push(() => {
298
- Object.defineProperty(globalThis.fetch, _chunkIDEEMJ3Fjs.IS_PATCHED_MODULE, {
298
+ Object.defineProperty(globalThis.fetch, _chunk73NOP3T5js.IS_PATCHED_MODULE, {
299
299
  value: void 0
300
300
  });
301
301
  globalThis.fetch = pureFetch;
@@ -312,4 +312,4 @@ FetchInterceptor.symbol = Symbol("fetch");
312
312
 
313
313
 
314
314
  exports.FetchInterceptor = FetchInterceptor;
315
- //# sourceMappingURL=chunk-KVQI7UNN.js.map
315
+ //# sourceMappingURL=chunk-4YT2XSVO.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hasConfigurableGlobal
3
- } from "./chunk-7W52P3VX.mjs";
3
+ } from "./chunk-TX5GBTFY.mjs";
4
4
  import {
5
5
  IS_PATCHED_MODULE
6
- } from "./chunk-BZ3Y7YV5.mjs";
6
+ } from "./chunk-6YM4PLBI.mjs";
7
7
  import {
8
8
  RequestController,
9
9
  emitAsync,
@@ -312,4 +312,4 @@ FetchInterceptor.symbol = Symbol("fetch");
312
312
  export {
313
313
  FetchInterceptor
314
314
  };
315
- //# sourceMappingURL=chunk-GXB3PZMC.mjs.map
315
+ //# sourceMappingURL=chunk-6DIWEMO7.mjs.map
@@ -4,4 +4,4 @@ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
4
4
  export {
5
5
  IS_PATCHED_MODULE
6
6
  };
7
- //# sourceMappingURL=chunk-BZ3Y7YV5.mjs.map
7
+ //# sourceMappingURL=chunk-6YM4PLBI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/glossary.ts"],"sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\n/**\n * @note Export `RequestController` as a type only.\n * It's never meant to be created in the userland.\n */\nexport type { RequestController }\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n"],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB;","names":[]}
@@ -4,4 +4,4 @@ var IS_PATCHED_MODULE = Symbol("isPatchedModule");
4
4
 
5
5
 
6
6
  exports.IS_PATCHED_MODULE = IS_PATCHED_MODULE;
7
- //# sourceMappingURL=chunk-IDEEMJ3F.js.map
7
+ //# sourceMappingURL=chunk-73NOP3T5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/glossary.ts"],"names":[],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB","sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\n/**\n * @note Export `RequestController` as a type only.\n * It's never meant to be created in the userland.\n */\nexport type { RequestController }\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n"]}
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-6HYIRFX2.mjs";
6
6
  import {
7
7
  hasConfigurableGlobal
8
- } from "./chunk-7W52P3VX.mjs";
8
+ } from "./chunk-TX5GBTFY.mjs";
9
9
  import {
10
10
  IS_PATCHED_MODULE
11
- } from "./chunk-BZ3Y7YV5.mjs";
11
+ } from "./chunk-6YM4PLBI.mjs";
12
12
  import {
13
13
  RequestController,
14
14
  handleRequest
@@ -840,4 +840,4 @@ XMLHttpRequestInterceptor.interceptorSymbol = Symbol("xhr");
840
840
  export {
841
841
  XMLHttpRequestInterceptor
842
842
  };
843
- //# sourceMappingURL=chunk-RNZHVDD2.mjs.map
843
+ //# sourceMappingURL=chunk-EBDS6VMR.mjs.map
@@ -4,6 +4,12 @@ function hasConfigurableGlobal(propertyName) {
4
4
  if (typeof descriptor === "undefined") {
5
5
  return false;
6
6
  }
7
+ if (typeof descriptor.get === "function" && typeof descriptor.get() === "undefined") {
8
+ return false;
9
+ }
10
+ if (typeof descriptor.get === "undefined" && descriptor.value == null) {
11
+ return false;
12
+ }
7
13
  if (typeof descriptor.set === "undefined" && !descriptor.configurable) {
8
14
  console.error(
9
15
  `[MSW] Failed to apply interceptor: the global \`${propertyName}\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`
@@ -16,4 +22,4 @@ function hasConfigurableGlobal(propertyName) {
16
22
 
17
23
 
18
24
  exports.hasConfigurableGlobal = hasConfigurableGlobal;
19
- //# sourceMappingURL=chunk-7Z3OOH2U.js.map
25
+ //# sourceMappingURL=chunk-PFGO5BSM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"names":[],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAG3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAGA,MACE,OAAO,WAAW,QAAQ,cAC1B,OAAO,WAAW,IAAI,MAAM,aAC5B;AACA,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,WAAW,QAAQ,eAAe,WAAW,SAAS,MAAM;AACrE,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT","sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n // The property is not set at all.\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n // The property is set to a getter that returns undefined.\n if (\n typeof descriptor.get === 'function' &&\n typeof descriptor.get() === 'undefined'\n ) {\n return false\n }\n\n // The property is set to a value equal to undefined.\n if (typeof descriptor.get === 'undefined' && descriptor.value == null) {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"]}
@@ -4,6 +4,12 @@ function hasConfigurableGlobal(propertyName) {
4
4
  if (typeof descriptor === "undefined") {
5
5
  return false;
6
6
  }
7
+ if (typeof descriptor.get === "function" && typeof descriptor.get() === "undefined") {
8
+ return false;
9
+ }
10
+ if (typeof descriptor.get === "undefined" && descriptor.value == null) {
11
+ return false;
12
+ }
7
13
  if (typeof descriptor.set === "undefined" && !descriptor.configurable) {
8
14
  console.error(
9
15
  `[MSW] Failed to apply interceptor: the global \`${propertyName}\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`
@@ -16,4 +22,4 @@ function hasConfigurableGlobal(propertyName) {
16
22
  export {
17
23
  hasConfigurableGlobal
18
24
  };
19
- //# sourceMappingURL=chunk-7W52P3VX.mjs.map
25
+ //# sourceMappingURL=chunk-TX5GBTFY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n // The property is not set at all.\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n // The property is set to a getter that returns undefined.\n if (\n typeof descriptor.get === 'function' &&\n typeof descriptor.get() === 'undefined'\n ) {\n return false\n }\n\n // The property is set to a value equal to undefined.\n if (typeof descriptor.get === 'undefined' && descriptor.value == null) {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAG3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAGA,MACE,OAAO,WAAW,QAAQ,cAC1B,OAAO,WAAW,IAAI,MAAM,aAC5B;AACA,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,WAAW,QAAQ,eAAe,WAAW,SAAS,MAAM;AACrE,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -5,10 +5,10 @@
5
5
  var _chunkLK6DILFKjs = require('./chunk-LK6DILFK.js');
6
6
 
7
7
 
8
- var _chunk7Z3OOH2Ujs = require('./chunk-7Z3OOH2U.js');
8
+ var _chunkPFGO5BSMjs = require('./chunk-PFGO5BSM.js');
9
9
 
10
10
 
11
- var _chunkIDEEMJ3Fjs = require('./chunk-IDEEMJ3F.js');
11
+ var _chunk73NOP3T5js = require('./chunk-73NOP3T5.js');
12
12
 
13
13
 
14
14
 
@@ -799,14 +799,14 @@ var _XMLHttpRequestInterceptor = class extends _chunkAABH3XLQjs.Interceptor {
799
799
  super(_XMLHttpRequestInterceptor.interceptorSymbol);
800
800
  }
801
801
  checkEnvironment() {
802
- return _chunk7Z3OOH2Ujs.hasConfigurableGlobal.call(void 0, "XMLHttpRequest");
802
+ return _chunkPFGO5BSMjs.hasConfigurableGlobal.call(void 0, "XMLHttpRequest");
803
803
  }
804
804
  setup() {
805
805
  const logger = this.logger.extend("setup");
806
806
  logger.info('patching "XMLHttpRequest" module...');
807
807
  const PureXMLHttpRequest = globalThis.XMLHttpRequest;
808
808
  _outvariant.invariant.call(void 0,
809
- !PureXMLHttpRequest[_chunkIDEEMJ3Fjs.IS_PATCHED_MODULE],
809
+ !PureXMLHttpRequest[_chunk73NOP3T5js.IS_PATCHED_MODULE],
810
810
  'Failed to patch the "XMLHttpRequest" module: already patched.'
811
811
  );
812
812
  globalThis.XMLHttpRequest = createXMLHttpRequestProxy({
@@ -817,13 +817,13 @@ var _XMLHttpRequestInterceptor = class extends _chunkAABH3XLQjs.Interceptor {
817
817
  'native "XMLHttpRequest" module patched!',
818
818
  globalThis.XMLHttpRequest.name
819
819
  );
820
- Object.defineProperty(globalThis.XMLHttpRequest, _chunkIDEEMJ3Fjs.IS_PATCHED_MODULE, {
820
+ Object.defineProperty(globalThis.XMLHttpRequest, _chunk73NOP3T5js.IS_PATCHED_MODULE, {
821
821
  enumerable: true,
822
822
  configurable: true,
823
823
  value: true
824
824
  });
825
825
  this.subscriptions.push(() => {
826
- Object.defineProperty(globalThis.XMLHttpRequest, _chunkIDEEMJ3Fjs.IS_PATCHED_MODULE, {
826
+ Object.defineProperty(globalThis.XMLHttpRequest, _chunk73NOP3T5js.IS_PATCHED_MODULE, {
827
827
  value: void 0
828
828
  });
829
829
  globalThis.XMLHttpRequest = PureXMLHttpRequest;
@@ -840,4 +840,4 @@ XMLHttpRequestInterceptor.interceptorSymbol = Symbol("xhr");
840
840
 
841
841
 
842
842
  exports.XMLHttpRequestInterceptor = XMLHttpRequestInterceptor;
843
- //# sourceMappingURL=chunk-XR7ZDC5N.js.map
843
+ //# sourceMappingURL=chunk-X2CFRRWY.js.map
@@ -1,5 +1,5 @@
1
- export { E as ExtractEventNames, H as HttpRequestEventMap, c as INTERNAL_REQUEST_ID_HEADER_NAME, I as IS_PATCHED_MODULE, f as Interceptor, a as InterceptorEventMap, e as InterceptorReadyState, b as InterceptorSubscription, R as RequestCredentials, d as deleteGlobalSymbol, g as getGlobalSymbol } from './Interceptor-a31b1217.js';
2
- export { a as BatchInterceptor, B as BatchInterceptorOptions, E as ExtractEventMapType } from './BatchInterceptor-13d40c95.js';
1
+ export { E as ExtractEventNames, H as HttpRequestEventMap, d as INTERNAL_REQUEST_ID_HEADER_NAME, I as IS_PATCHED_MODULE, h as Interceptor, b as InterceptorEventMap, f as InterceptorReadyState, c as InterceptorSubscription, R as RequestController, a as RequestCredentials, e as deleteGlobalSymbol, g as getGlobalSymbol } from './Interceptor-436630be.js';
2
+ export { a as BatchInterceptor, B as BatchInterceptorOptions, E as ExtractEventMapType } from './BatchInterceptor-67bf41ba.js';
3
3
  import '@open-draft/deferred-promise';
4
4
  import '@open-draft/logger';
5
5
  import 'strict-event-emitter';
package/lib/node/index.js CHANGED
@@ -7,7 +7,7 @@ var _chunkPGTBKPWNjs = require('./chunk-PGTBKPWN.js');
7
7
  var _chunkLK6DILFKjs = require('./chunk-LK6DILFK.js');
8
8
 
9
9
 
10
- var _chunkIDEEMJ3Fjs = require('./chunk-IDEEMJ3F.js');
10
+ var _chunk73NOP3T5js = require('./chunk-73NOP3T5.js');
11
11
 
12
12
 
13
13
 
@@ -35,5 +35,5 @@ function getCleanUrl(url, isAbsolute = true) {
35
35
 
36
36
 
37
37
 
38
- exports.BatchInterceptor = _chunkPGTBKPWNjs.BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkAABH3XLQjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunkIDEEMJ3Fjs.IS_PATCHED_MODULE; exports.Interceptor = _chunkAABH3XLQjs.Interceptor; exports.InterceptorReadyState = _chunkAABH3XLQjs.InterceptorReadyState; exports.createRequestId = _chunkAABH3XLQjs.createRequestId; exports.decodeBuffer = _chunkLK6DILFKjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkAABH3XLQjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkLK6DILFKjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkAABH3XLQjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkAABH3XLQjs.isResponseWithoutBody;
38
+ exports.BatchInterceptor = _chunkPGTBKPWNjs.BatchInterceptor; exports.INTERNAL_REQUEST_ID_HEADER_NAME = _chunkAABH3XLQjs.INTERNAL_REQUEST_ID_HEADER_NAME; exports.IS_PATCHED_MODULE = _chunk73NOP3T5js.IS_PATCHED_MODULE; exports.Interceptor = _chunkAABH3XLQjs.Interceptor; exports.InterceptorReadyState = _chunkAABH3XLQjs.InterceptorReadyState; exports.createRequestId = _chunkAABH3XLQjs.createRequestId; exports.decodeBuffer = _chunkLK6DILFKjs.decodeBuffer; exports.deleteGlobalSymbol = _chunkAABH3XLQjs.deleteGlobalSymbol; exports.encodeBuffer = _chunkLK6DILFKjs.encodeBuffer; exports.getCleanUrl = getCleanUrl; exports.getGlobalSymbol = _chunkAABH3XLQjs.getGlobalSymbol; exports.isResponseWithoutBody = _chunkAABH3XLQjs.isResponseWithoutBody;
39
39
  //# sourceMappingURL=index.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-6HYIRFX2.mjs";
8
8
  import {
9
9
  IS_PATCHED_MODULE
10
- } from "./chunk-BZ3Y7YV5.mjs";
10
+ } from "./chunk-6YM4PLBI.mjs";
11
11
  import {
12
12
  INTERNAL_REQUEST_ID_HEADER_NAME,
13
13
  Interceptor,
@@ -1,4 +1,4 @@
1
- import { f as Interceptor, H as HttpRequestEventMap } from '../../Interceptor-a31b1217.js';
1
+ import { h as Interceptor, H as HttpRequestEventMap } from '../../Interceptor-436630be.js';
2
2
  import net from 'node:net';
3
3
  import '@open-draft/deferred-promise';
4
4
  import '@open-draft/logger';
@@ -1,5 +1,5 @@
1
1
  import { Emitter } from 'strict-event-emitter';
2
- import { H as HttpRequestEventMap, f as Interceptor } from '../../Interceptor-a31b1217.js';
2
+ import { H as HttpRequestEventMap, h as Interceptor } from '../../Interceptor-436630be.js';
3
3
  import '@open-draft/deferred-promise';
4
4
  import '@open-draft/logger';
5
5
 
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkXR7ZDC5Njs = require('../../chunk-XR7ZDC5N.js');
3
+ var _chunkX2CFRRWYjs = require('../../chunk-X2CFRRWY.js');
4
4
  require('../../chunk-LK6DILFK.js');
5
- require('../../chunk-7Z3OOH2U.js');
6
- require('../../chunk-IDEEMJ3F.js');
5
+ require('../../chunk-PFGO5BSM.js');
6
+ require('../../chunk-73NOP3T5.js');
7
7
  require('../../chunk-VCUEA4PL.js');
8
8
  require('../../chunk-AABH3XLQ.js');
9
9
 
10
10
 
11
- exports.XMLHttpRequestInterceptor = _chunkXR7ZDC5Njs.XMLHttpRequestInterceptor;
11
+ exports.XMLHttpRequestInterceptor = _chunkX2CFRRWYjs.XMLHttpRequestInterceptor;
12
12
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  XMLHttpRequestInterceptor
3
- } from "../../chunk-RNZHVDD2.mjs";
3
+ } from "../../chunk-EBDS6VMR.mjs";
4
4
  import "../../chunk-6HYIRFX2.mjs";
5
- import "../../chunk-7W52P3VX.mjs";
6
- import "../../chunk-BZ3Y7YV5.mjs";
5
+ import "../../chunk-TX5GBTFY.mjs";
6
+ import "../../chunk-6YM4PLBI.mjs";
7
7
  import "../../chunk-M4WQE4TR.mjs";
8
8
  import "../../chunk-FQQAJBI2.mjs";
9
9
  export {
@@ -1,4 +1,4 @@
1
- import { f as Interceptor, H as HttpRequestEventMap } from '../../Interceptor-a31b1217.js';
1
+ import { h as Interceptor, H as HttpRequestEventMap } from '../../Interceptor-436630be.js';
2
2
  import '@open-draft/deferred-promise';
3
3
  import '@open-draft/logger';
4
4
  import 'strict-event-emitter';
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkKVQI7UNNjs = require('../../chunk-KVQI7UNN.js');
4
- require('../../chunk-7Z3OOH2U.js');
5
- require('../../chunk-IDEEMJ3F.js');
3
+ var _chunk4YT2XSVOjs = require('../../chunk-4YT2XSVO.js');
4
+ require('../../chunk-PFGO5BSM.js');
5
+ require('../../chunk-73NOP3T5.js');
6
6
  require('../../chunk-VCUEA4PL.js');
7
7
  require('../../chunk-AABH3XLQ.js');
8
8
 
9
9
 
10
- exports.FetchInterceptor = _chunkKVQI7UNNjs.FetchInterceptor;
10
+ exports.FetchInterceptor = _chunk4YT2XSVOjs.FetchInterceptor;
11
11
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  FetchInterceptor
3
- } from "../../chunk-GXB3PZMC.mjs";
4
- import "../../chunk-7W52P3VX.mjs";
5
- import "../../chunk-BZ3Y7YV5.mjs";
3
+ } from "../../chunk-6DIWEMO7.mjs";
4
+ import "../../chunk-TX5GBTFY.mjs";
5
+ import "../../chunk-6YM4PLBI.mjs";
6
6
  import "../../chunk-M4WQE4TR.mjs";
7
7
  import "../../chunk-FQQAJBI2.mjs";
8
8
  export {
@@ -1,7 +1,7 @@
1
1
  import { ClientRequestInterceptor } from '../interceptors/ClientRequest/index.js';
2
2
  import { XMLHttpRequestInterceptor } from '../interceptors/XMLHttpRequest/index.js';
3
3
  import { FetchInterceptor } from '../interceptors/fetch/index.js';
4
- import '../Interceptor-a31b1217.js';
4
+ import '../Interceptor-436630be.js';
5
5
  import '@open-draft/deferred-promise';
6
6
  import '@open-draft/logger';
7
7
  import 'strict-event-emitter';
@@ -3,21 +3,21 @@
3
3
  var _chunkFPLETXGAjs = require('../chunk-FPLETXGA.js');
4
4
 
5
5
 
6
- var _chunkXR7ZDC5Njs = require('../chunk-XR7ZDC5N.js');
6
+ var _chunkX2CFRRWYjs = require('../chunk-X2CFRRWY.js');
7
7
  require('../chunk-LK6DILFK.js');
8
8
 
9
9
 
10
- var _chunkKVQI7UNNjs = require('../chunk-KVQI7UNN.js');
11
- require('../chunk-7Z3OOH2U.js');
12
- require('../chunk-IDEEMJ3F.js');
10
+ var _chunk4YT2XSVOjs = require('../chunk-4YT2XSVO.js');
11
+ require('../chunk-PFGO5BSM.js');
12
+ require('../chunk-73NOP3T5.js');
13
13
  require('../chunk-VCUEA4PL.js');
14
14
  require('../chunk-AABH3XLQ.js');
15
15
 
16
16
  // src/presets/node.ts
17
17
  var node_default = [
18
18
  new (0, _chunkFPLETXGAjs.ClientRequestInterceptor)(),
19
- new (0, _chunkXR7ZDC5Njs.XMLHttpRequestInterceptor)(),
20
- new (0, _chunkKVQI7UNNjs.FetchInterceptor)()
19
+ new (0, _chunkX2CFRRWYjs.XMLHttpRequestInterceptor)(),
20
+ new (0, _chunk4YT2XSVOjs.FetchInterceptor)()
21
21
  ];
22
22
 
23
23
 
@@ -3,13 +3,13 @@ import {
3
3
  } from "../chunk-MG3S53QP.mjs";
4
4
  import {
5
5
  XMLHttpRequestInterceptor
6
- } from "../chunk-RNZHVDD2.mjs";
6
+ } from "../chunk-EBDS6VMR.mjs";
7
7
  import "../chunk-6HYIRFX2.mjs";
8
8
  import {
9
9
  FetchInterceptor
10
- } from "../chunk-GXB3PZMC.mjs";
11
- import "../chunk-7W52P3VX.mjs";
12
- import "../chunk-BZ3Y7YV5.mjs";
10
+ } from "../chunk-6DIWEMO7.mjs";
11
+ import "../chunk-TX5GBTFY.mjs";
12
+ import "../chunk-6YM4PLBI.mjs";
13
13
  import "../chunk-M4WQE4TR.mjs";
14
14
  import "../chunk-FQQAJBI2.mjs";
15
15
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mswjs/interceptors",
3
3
  "description": "Low-level HTTP/HTTPS/XHR/fetch request interception library.",
4
- "version": "0.36.7",
4
+ "version": "0.36.9",
5
5
  "main": "./lib/node/index.js",
6
6
  "module": "./lib/node/index.mjs",
7
7
  "types": "./lib/node/index.d.ts",
package/src/glossary.ts CHANGED
@@ -2,6 +2,12 @@ import type { RequestController } from './RequestController'
2
2
 
3
3
  export const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')
4
4
 
5
+ /**
6
+ * @note Export `RequestController` as a type only.
7
+ * It's never meant to be created in the userland.
8
+ */
9
+ export type { RequestController }
10
+
5
11
  export type RequestCredentials = 'omit' | 'include' | 'same-origin'
6
12
 
7
13
  export type HttpRequestEventMap = {
@@ -26,6 +26,30 @@ it('returns false if the global property does not exist', () => {
26
26
  expect(hasConfigurableGlobal('_non-existing')).toBe(false)
27
27
  })
28
28
 
29
+ it('returns false for existing global with undefined as a value', () => {
30
+ Object.defineProperty(global, '_existsAndUndefined', {
31
+ value: undefined,
32
+ configurable: true,
33
+ })
34
+ expect(hasConfigurableGlobal('_existsAndUndefined')).toBe(false)
35
+ })
36
+
37
+ it('returns false for existing global with null as a value', () => {
38
+ Object.defineProperty(global, '_existsAndNull', {
39
+ value: null,
40
+ configurable: true,
41
+ })
42
+ expect(hasConfigurableGlobal('_existsAndNull')).toBe(false)
43
+ })
44
+
45
+ it('returns false for existing global with a getter that returns undefined', () => {
46
+ Object.defineProperty(global, '_existsGetterUndefined', {
47
+ get: () => undefined,
48
+ configurable: true,
49
+ })
50
+ expect(hasConfigurableGlobal('_existsGetterUndefined')).toBe(false)
51
+ })
52
+
29
53
  it('returns false and prints an error for implicitly non-configurable global property', () => {
30
54
  Object.defineProperty(global, '_implicitlyNonConfigurable', {
31
55
  value: 'something',
@@ -5,10 +5,24 @@
5
5
  export function hasConfigurableGlobal(propertyName: string): boolean {
6
6
  const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)
7
7
 
8
+ // The property is not set at all.
8
9
  if (typeof descriptor === 'undefined') {
9
10
  return false
10
11
  }
11
12
 
13
+ // The property is set to a getter that returns undefined.
14
+ if (
15
+ typeof descriptor.get === 'function' &&
16
+ typeof descriptor.get() === 'undefined'
17
+ ) {
18
+ return false
19
+ }
20
+
21
+ // The property is set to a value equal to undefined.
22
+ if (typeof descriptor.get === 'undefined' && descriptor.value == null) {
23
+ return false
24
+ }
25
+
12
26
  if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {
13
27
  console.error(
14
28
  `[MSW] Failed to apply interceptor: the global \`${propertyName}\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/glossary.ts","../../src/utils/isPropertyAccessible.ts","../../src/utils/responseUtils.ts"],"names":[],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB;;;ACMjE,SAAS,qBACd,KACA,KACA;AACA,MAAI;AACF,QAAI,GAAG;AACP,WAAO;AAAA,EACT,SAAQ,GAAN;AACA,WAAO;AAAA,EACT;AACF;;;ACZO,IAAM,qCAAqC,oBAAI,IAAI;AAAA,EACxD;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACtB,CAAC;AAEM,IAAM,sCAAsC,oBAAI,IAAI;AAAA,EACzD;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACtB,CAAC;AAMM,SAAS,sBAAsB,QAAyB;AAC7D,SAAO,mCAAmC,IAAI,MAAM;AACtD;AAKO,SAAS,0BAA0B,MAAyB;AACjE,SAAO,IAAI;AAAA,IACT,KAAK;AAAA,MACH,gBAAgB,QACZ;AAAA,QACE,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,MACd,IACA;AAAA,IACN;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF;AAYO,SAAS,gBAAgB,UAA+C;AAC7E,SAAO,qBAAqB,UAAU,MAAM,KAAK,SAAS,SAAS;AACrE","sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n","/**\n * A function that validates if property access is possible on an object\n * without throwing. It returns `true` if the property access is possible\n * and `false` otherwise.\n *\n * Environments like miniflare will throw on property access on certain objects\n * like Request and Response, for unimplemented properties.\n */\nexport function isPropertyAccessible<Obj extends Record<string, any>>(\n obj: Obj,\n key: keyof Obj\n) {\n try {\n obj[key]\n return true\n } catch {\n return false\n }\n}\n","import { isPropertyAccessible } from './isPropertyAccessible'\n\n/**\n * Response status codes for responses that cannot have body.\n * @see https://fetch.spec.whatwg.org/#statuses\n */\nexport const RESPONSE_STATUS_CODES_WITHOUT_BODY = new Set([\n 101, 103, 204, 205, 304,\n])\n\nexport const RESPONSE_STATUS_CODES_WITH_REDIRECT = new Set([\n 301, 302, 303, 307, 308,\n])\n\n/**\n * Returns a boolean indicating whether the given response status\n * code represents a response that cannot have a body.\n */\nexport function isResponseWithoutBody(status: number): boolean {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status)\n}\n\n/**\n * Creates a generic 500 Unhandled Exception response.\n */\nexport function createServerErrorResponse(body: unknown): Response {\n return new Response(\n JSON.stringify(\n body instanceof Error\n ? {\n name: body.name,\n message: body.message,\n stack: body.stack,\n }\n : body\n ),\n {\n status: 500,\n statusText: 'Unhandled Exception',\n headers: {\n 'Content-Type': 'application/json',\n },\n }\n )\n}\n\nexport type ResponseError = Response & { type: 'error' }\n\n/**\n * Check if the given response is a `Response.error()`.\n *\n * @note Some environments, like Miniflare (Cloudflare) do not\n * implement the \"Response.type\" property and throw on its access.\n * Safely check if we can access \"type\" on \"Response\" before continuing.\n * @see https://github.com/mswjs/msw/issues/1834\n */\nexport function isResponseError(response: Response): response is ResponseError {\n return isPropertyAccessible(response, 'type') && response.type === 'error'\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAE3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"names":[],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAE3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT","sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/glossary.ts","../../src/utils/isPropertyAccessible.ts","../../src/utils/responseUtils.ts"],"sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n","/**\n * A function that validates if property access is possible on an object\n * without throwing. It returns `true` if the property access is possible\n * and `false` otherwise.\n *\n * Environments like miniflare will throw on property access on certain objects\n * like Request and Response, for unimplemented properties.\n */\nexport function isPropertyAccessible<Obj extends Record<string, any>>(\n obj: Obj,\n key: keyof Obj\n) {\n try {\n obj[key]\n return true\n } catch {\n return false\n }\n}\n","import { isPropertyAccessible } from './isPropertyAccessible'\n\n/**\n * Response status codes for responses that cannot have body.\n * @see https://fetch.spec.whatwg.org/#statuses\n */\nexport const RESPONSE_STATUS_CODES_WITHOUT_BODY = new Set([\n 101, 103, 204, 205, 304,\n])\n\nexport const RESPONSE_STATUS_CODES_WITH_REDIRECT = new Set([\n 301, 302, 303, 307, 308,\n])\n\n/**\n * Returns a boolean indicating whether the given response status\n * code represents a response that cannot have a body.\n */\nexport function isResponseWithoutBody(status: number): boolean {\n return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status)\n}\n\n/**\n * Creates a generic 500 Unhandled Exception response.\n */\nexport function createServerErrorResponse(body: unknown): Response {\n return new Response(\n JSON.stringify(\n body instanceof Error\n ? {\n name: body.name,\n message: body.message,\n stack: body.stack,\n }\n : body\n ),\n {\n status: 500,\n statusText: 'Unhandled Exception',\n headers: {\n 'Content-Type': 'application/json',\n },\n }\n )\n}\n\nexport type ResponseError = Response & { type: 'error' }\n\n/**\n * Check if the given response is a `Response.error()`.\n *\n * @note Some environments, like Miniflare (Cloudflare) do not\n * implement the \"Response.type\" property and throw on its access.\n * Safely check if we can access \"type\" on \"Response\" before continuing.\n * @see https://github.com/mswjs/msw/issues/1834\n */\nexport function isResponseError(response: Response): response is ResponseError {\n return isPropertyAccessible(response, 'type') && response.type === 'error'\n}\n"],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB;;;ACMjE,SAAS,qBACd,KACA,KACA;AACA,MAAI;AACF,QAAI,GAAG;AACP,WAAO;AAAA,EACT,SAAQ,GAAN;AACA,WAAO;AAAA,EACT;AACF;;;ACZO,IAAM,qCAAqC,oBAAI,IAAI;AAAA,EACxD;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACtB,CAAC;AAEM,IAAM,sCAAsC,oBAAI,IAAI;AAAA,EACzD;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AACtB,CAAC;AAMM,SAAS,sBAAsB,QAAyB;AAC7D,SAAO,mCAAmC,IAAI,MAAM;AACtD;AAKO,SAAS,0BAA0B,MAAyB;AACjE,SAAO,IAAI;AAAA,IACT,KAAK;AAAA,MACH,gBAAgB,QACZ;AAAA,QACE,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,MACd,IACA;AAAA,IACN;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF;AAYO,SAAS,gBAAgB,UAA+C;AAC7E,SAAO,qBAAqB,UAAU,MAAM,KAAK,SAAS,SAAS;AACrE;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAE3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/hasConfigurableGlobal.ts"],"names":[],"mappings":";AAIO,SAAS,sBAAsB,cAA+B;AACnE,QAAM,aAAa,OAAO,yBAAyB,YAAY,YAAY;AAE3E,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,QAAQ,eAAe,CAAC,WAAW,cAAc;AACrE,YAAQ;AAAA,MACN,mDAAmD;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT","sourcesContent":["/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/glossary.ts"],"sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n"],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/glossary.ts"],"names":[],"mappings":";AAEO,IAAM,oBAAmC,OAAO,iBAAiB","sourcesContent":["import type { RequestController } from './RequestController'\n\nexport const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')\n\nexport type RequestCredentials = 'omit' | 'include' | 'same-origin'\n\nexport type HttpRequestEventMap = {\n request: [\n args: {\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n response: [\n args: {\n response: Response\n isMockedResponse: boolean\n request: Request\n requestId: string\n }\n ]\n unhandledException: [\n args: {\n error: unknown\n request: Request\n requestId: string\n controller: RequestController\n }\n ]\n}\n"]}