@mswjs/interceptors 0.19.4 → 0.20.0

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 (98) hide show
  1. package/lib/BatchInterceptor.d.ts +5 -5
  2. package/lib/BatchInterceptor.js +14 -59
  3. package/lib/BatchInterceptor.js.map +1 -1
  4. package/lib/Interceptor.d.ts +7 -6
  5. package/lib/Interceptor.js +39 -64
  6. package/lib/Interceptor.js.map +1 -1
  7. package/lib/RemoteHttpInterceptor.js +115 -209
  8. package/lib/RemoteHttpInterceptor.js.map +1 -1
  9. package/lib/glossary.d.ts +2 -2
  10. package/lib/interceptors/ClientRequest/NodeClientRequest.js +141 -278
  11. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +1 -1
  12. package/lib/interceptors/ClientRequest/http.get.js +5 -34
  13. package/lib/interceptors/ClientRequest/http.get.js.map +1 -1
  14. package/lib/interceptors/ClientRequest/http.request.js +6 -35
  15. package/lib/interceptors/ClientRequest/http.request.js.map +1 -1
  16. package/lib/interceptors/ClientRequest/index.js +22 -82
  17. package/lib/interceptors/ClientRequest/index.js.map +1 -1
  18. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +18 -62
  19. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +1 -1
  20. package/lib/interceptors/ClientRequest/utils/createRequest.js +10 -32
  21. package/lib/interceptors/ClientRequest/utils/createRequest.js.map +1 -1
  22. package/lib/interceptors/ClientRequest/utils/createResponse.js +6 -6
  23. package/lib/interceptors/ClientRequest/utils/createResponse.js.map +1 -1
  24. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +12 -12
  25. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +1 -1
  26. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +21 -52
  27. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +1 -1
  28. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js +5 -9
  29. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js.map +1 -1
  30. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +6 -6
  31. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +1 -1
  32. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.d.ts +44 -0
  33. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js +413 -0
  34. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestController.js.map +1 -0
  35. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.d.ts +20 -0
  36. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js +75 -0
  37. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestProxy.js.map +1 -0
  38. package/lib/interceptors/XMLHttpRequest/index.js +23 -42
  39. package/lib/interceptors/XMLHttpRequest/index.js.map +1 -1
  40. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js +11 -12
  41. package/lib/interceptors/XMLHttpRequest/polyfills/EventPolyfill.js.map +1 -1
  42. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js +9 -27
  43. package/lib/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.js.map +1 -1
  44. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js +1 -1
  45. package/lib/interceptors/XMLHttpRequest/utils/concatArrayBuffer.js.map +1 -1
  46. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js +7 -7
  47. package/lib/interceptors/XMLHttpRequest/utils/createEvent.js.map +1 -1
  48. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js +2 -2
  49. package/lib/interceptors/XMLHttpRequest/utils/createResponse.js.map +1 -1
  50. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js +2 -2
  51. package/lib/interceptors/XMLHttpRequest/utils/isDomParserSupportedType.js.map +1 -1
  52. package/lib/interceptors/fetch/index.js +52 -125
  53. package/lib/interceptors/fetch/index.js.map +1 -1
  54. package/lib/presets/browser.js +2 -2
  55. package/lib/presets/browser.js.map +1 -1
  56. package/lib/presets/node.js +2 -2
  57. package/lib/presets/node.js.map +1 -1
  58. package/lib/utils/AsyncEventEmitter.d.ts +9 -8
  59. package/lib/utils/AsyncEventEmitter.js +84 -190
  60. package/lib/utils/AsyncEventEmitter.js.map +1 -1
  61. package/lib/utils/bufferUtils.js +3 -3
  62. package/lib/utils/bufferUtils.js.map +1 -1
  63. package/lib/utils/cloneObject.js +2 -19
  64. package/lib/utils/cloneObject.js.map +1 -1
  65. package/lib/utils/createLazyCallback.js +14 -49
  66. package/lib/utils/createLazyCallback.js.map +1 -1
  67. package/lib/utils/createProxy.d.ts +8 -0
  68. package/lib/utils/createProxy.js +45 -0
  69. package/lib/utils/createProxy.js.map +1 -0
  70. package/lib/utils/getCleanUrl.js +1 -2
  71. package/lib/utils/getCleanUrl.js.map +1 -1
  72. package/lib/utils/getRequestOptionsByUrl.js +3 -3
  73. package/lib/utils/getRequestOptionsByUrl.js.map +1 -1
  74. package/lib/utils/getUrlByRequestOptions.js +23 -39
  75. package/lib/utils/getUrlByRequestOptions.js.map +1 -1
  76. package/lib/utils/nextTick.js +2 -2
  77. package/lib/utils/nextTick.js.map +1 -1
  78. package/lib/utils/parseJson.js +1 -1
  79. package/lib/utils/parseJson.js.map +1 -1
  80. package/lib/utils/toInteractiveRequest.js +3 -3
  81. package/lib/utils/toInteractiveRequest.js.map +1 -1
  82. package/lib/utils/uuid.js +2 -2
  83. package/lib/utils/uuid.js.map +1 -1
  84. package/package.json +2 -2
  85. package/src/BatchInterceptor.test.ts +2 -2
  86. package/src/BatchInterceptor.ts +14 -13
  87. package/src/Interceptor.ts +12 -11
  88. package/src/glossary.ts +2 -6
  89. package/src/interceptors/XMLHttpRequest/XMLHttpRequestController.ts +578 -0
  90. package/src/interceptors/XMLHttpRequest/XMLHttpRequestProxy.ts +111 -0
  91. package/src/interceptors/XMLHttpRequest/index.ts +12 -13
  92. package/src/utils/AsyncEventEmitter.test.ts +6 -6
  93. package/src/utils/AsyncEventEmitter.ts +60 -50
  94. package/src/utils/createProxy.ts +78 -0
  95. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.d.ts +0 -93
  96. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js +0 -567
  97. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js.map +0 -1
  98. package/src/interceptors/XMLHttpRequest/XMLHttpRequestOverride.ts +0 -684
@@ -1 +1 @@
1
- {"version":3,"file":"getRequestOptionsByUrl.js","sourceRoot":"","sources":["../../src/utils/getRequestOptionsByUrl.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,GAAQ;IAC7C,IAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EACN,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC,GAAG,CAAC,QAAQ;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,KAAG,GAAG,CAAC,QAAQ,IAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAE;KAC3C,CAAA;IAED,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;QACd,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAChC;IAED,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;QAChC,OAAO,CAAC,IAAI,GAAM,GAAG,CAAC,QAAQ,SAAI,GAAG,CAAC,QAAU,CAAA;KACjD;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AArBD,wDAqBC"}
1
+ {"version":3,"file":"getRequestOptionsByUrl.js","sourceRoot":"","sources":["../../src/utils/getRequestOptionsByUrl.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,GAAQ;IAC7C,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EACN,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC,CAAC,GAAG,CAAC,QAAQ;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;KAC3C,CAAA;IAED,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;QACd,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAChC;IAED,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;QAChC,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;KACjD;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AArBD,wDAqBC"}
@@ -1,29 +1,13 @@
1
1
  "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
2
  Object.defineProperty(exports, "__esModule", { value: true });
19
3
  exports.getUrlByRequestOptions = exports.DEFAULT_PATH = void 0;
20
- var http_1 = require("http");
21
- var debug = require('debug')('utils getUrlByRequestOptions');
4
+ const http_1 = require("http");
5
+ const debug = require('debug')('utils getUrlByRequestOptions');
22
6
  exports.DEFAULT_PATH = '/';
23
- var DEFAULT_PROTOCOL = 'http:';
24
- var DEFAULT_HOST = 'localhost';
25
- var DEFAULT_PORT = 80;
26
- var SSL_PORT = 443;
7
+ const DEFAULT_PROTOCOL = 'http:';
8
+ const DEFAULT_HOST = 'localhost';
9
+ const DEFAULT_PORT = 80;
10
+ const SSL_PORT = 443;
27
11
  function getAgent(options) {
28
12
  return options.agent instanceof http_1.Agent ? options.agent : undefined;
29
13
  }
@@ -32,23 +16,23 @@ function getProtocolByRequestOptions(options) {
32
16
  if (options.protocol) {
33
17
  return options.protocol;
34
18
  }
35
- var agent = getAgent(options);
36
- var agentProtocol = (_a = agent) === null || _a === void 0 ? void 0 : _a.protocol;
19
+ const agent = getAgent(options);
20
+ const agentProtocol = (_a = agent) === null || _a === void 0 ? void 0 : _a.protocol;
37
21
  if (agentProtocol) {
38
22
  return agentProtocol;
39
23
  }
40
- var port = getPortByRequestOptions(options);
41
- var isSecureRequest = options.cert || port === SSL_PORT;
24
+ const port = getPortByRequestOptions(options);
25
+ const isSecureRequest = options.cert || port === SSL_PORT;
42
26
  return isSecureRequest ? 'https:' : ((_b = options.uri) === null || _b === void 0 ? void 0 : _b.protocol) || DEFAULT_PROTOCOL;
43
27
  }
44
28
  function getPortByRequestOptions(options) {
45
29
  var _a, _b;
46
- var agent = getAgent(options);
47
- var agentPort = ((_a = agent) === null || _a === void 0 ? void 0 : _a.options.port) ||
30
+ const agent = getAgent(options);
31
+ const agentPort = ((_a = agent) === null || _a === void 0 ? void 0 : _a.options.port) ||
48
32
  ((_b = agent) === null || _b === void 0 ? void 0 : _b.defaultPort);
49
- var optionsPort = options.port;
33
+ const optionsPort = options.port;
50
34
  if (optionsPort || agentPort) {
51
- var explicitPort = optionsPort || agentPort || DEFAULT_PORT;
35
+ const explicitPort = optionsPort || agentPort || DEFAULT_PORT;
52
36
  return Number(explicitPort);
53
37
  }
54
38
  }
@@ -57,8 +41,8 @@ function getHostByRequestOptions(options) {
57
41
  }
58
42
  function getAuthByRequestOptions(options) {
59
43
  if (options.auth) {
60
- var _a = __read(options.auth.split(':'), 2), username = _a[0], password = _a[1];
61
- return { username: username, password: password };
44
+ const [username, password] = options.auth.split(':');
45
+ return { username, password };
62
46
  }
63
47
  }
64
48
  /**
@@ -66,18 +50,18 @@ function getAuthByRequestOptions(options) {
66
50
  */
67
51
  function getUrlByRequestOptions(options) {
68
52
  debug('request options', options);
69
- var protocol = getProtocolByRequestOptions(options);
70
- var host = getHostByRequestOptions(options);
71
- var port = getPortByRequestOptions(options);
72
- var path = options.path || exports.DEFAULT_PATH;
73
- var auth = getAuthByRequestOptions(options);
53
+ const protocol = getProtocolByRequestOptions(options);
54
+ const host = getHostByRequestOptions(options);
55
+ const port = getPortByRequestOptions(options);
56
+ const path = options.path || exports.DEFAULT_PATH;
57
+ const auth = getAuthByRequestOptions(options);
74
58
  debug('protocol', protocol);
75
59
  debug('host', host);
76
60
  debug('port', port);
77
61
  debug('path', path);
78
- var baseUrl = protocol + "//" + host;
62
+ const baseUrl = `${protocol}//${host}`;
79
63
  debug('base URL:', baseUrl);
80
- var url = options.uri ? new URL(options.uri.href) : new URL(path, baseUrl);
64
+ const url = options.uri ? new URL(options.uri.href) : new URL(path, baseUrl);
81
65
  if (port) {
82
66
  debug('detected explicit port', port);
83
67
  url.port = port.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"getUrlByRequestOptions.js","sourceRoot":"","sources":["../../src/utils/getUrlByRequestOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getUrlByRequestOptions.js","sourceRoot":"","sources":["../../src/utils/getUrlByRequestOptions.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ function nextTick(callback) {
6
6
  }
7
7
  exports.nextTick = nextTick;
8
8
  function nextTickAsync(callback) {
9
- return new Promise(function (resolve) {
10
- setTimeout(function () {
9
+ return new Promise((resolve) => {
10
+ setTimeout(() => {
11
11
  resolve(callback());
12
12
  }, 0);
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../src/utils/nextTick.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,QAAoB;IAC3C,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACzB,CAAC;AAFD,4BAEC;AAED,SAAgB,aAAa,CAAC,QAAoB;IAChD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,UAAU,CAAC;YACT,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrB,CAAC,EAAE,CAAC,CAAC,CAAA;IACP,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,sCAMC"}
1
+ {"version":3,"file":"nextTick.js","sourceRoot":"","sources":["../../src/utils/nextTick.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,QAAoB;IAC3C,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACzB,CAAC;AAFD,4BAEC;AAED,SAAgB,aAAa,CAAC,QAAoB;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrB,CAAC,EAAE,CAAC,CAAC,CAAA;IACP,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,sCAMC"}
@@ -7,7 +7,7 @@ exports.parseJson = void 0;
7
7
  */
8
8
  function parseJson(data) {
9
9
  try {
10
- var json = JSON.parse(data);
10
+ const json = JSON.parse(data);
11
11
  return json;
12
12
  }
13
13
  catch (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../src/utils/parseJson.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI;QACF,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAPD,8BAOC"}
1
+ {"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../src/utils/parseJson.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAPD,8BAOC"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toInteractiveRequest = void 0;
4
- var outvariant_1 = require("outvariant");
5
- var createLazyCallback_1 = require("./createLazyCallback");
4
+ const outvariant_1 = require("outvariant");
5
+ const createLazyCallback_1 = require("./createLazyCallback");
6
6
  function toInteractiveRequest(request) {
7
7
  Object.defineProperty(request, 'respondWith', {
8
8
  writable: false,
9
9
  enumerable: true,
10
10
  value: (0, createLazyCallback_1.createLazyCallback)({
11
11
  maxCalls: 1,
12
- maxCallsCallback: function () {
12
+ maxCallsCallback() {
13
13
  throw new Error((0, outvariant_1.format)('Failed to respond to "%s %s" request: the "request" event has already been responded to.', request.method, request.url));
14
14
  },
15
15
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"toInteractiveRequest.js","sourceRoot":"","sources":["../../src/utils/toInteractiveRequest.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AACnC,2DAAuE;AAQvE,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5C,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAA,uCAAkB,EAAuB;YAC9C,QAAQ,EAAE,CAAC;YACX,gBAAgB;gBACd,MAAM,IAAI,KAAK,CACb,IAAA,mBAAM,EACJ,0FAA0F,EAC1F,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,CACZ,CACF,CAAA;YACH,CAAC;SACF,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,OAA6B,CAAA;AACtC,CAAC;AAnBD,oDAmBC"}
1
+ {"version":3,"file":"toInteractiveRequest.js","sourceRoot":"","sources":["../../src/utils/toInteractiveRequest.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AACnC,6DAAuE;AAQvE,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE;QAC5C,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAA,uCAAkB,EAAuB;YAC9C,QAAQ,EAAE,CAAC;YACX,gBAAgB;gBACd,MAAM,IAAI,KAAK,CACb,IAAA,mBAAM,EACJ,0FAA0F,EAC1F,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,CACZ,CACF,CAAA;YACH,CAAC;SACF,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,OAA6B,CAAA;AACtC,CAAC;AAnBD,oDAmBC"}
package/lib/utils/uuid.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.uuidv4 = void 0;
4
4
  function uuidv4() {
5
5
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
6
- var r = (Math.random() * 16) | 0;
7
- var v = c == 'x' ? r : (r & 0x3) | 0x8;
6
+ const r = (Math.random() * 16) | 0;
7
+ const v = c == 'x' ? r : (r & 0x3) | 0x8;
8
8
  return v.toString(16);
9
9
  });
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":";;;AAAA,SAAgB,MAAM;IACpB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAClC,IAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACxC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,wBAMC"}
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":";;;AAAA,SAAgB,MAAM;IACpB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACxC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAND,wBAMC"}
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.19.4",
4
+ "version": "0.20.0",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "author": "Artem Zakharchenko",
@@ -71,7 +71,7 @@
71
71
  "debug": "^4.3.3",
72
72
  "headers-polyfill": "^3.1.0",
73
73
  "outvariant": "^1.2.1",
74
- "strict-event-emitter": "^0.2.4",
74
+ "strict-event-emitter": "^0.4.6",
75
75
  "web-encoding": "^1.1.5"
76
76
  },
77
77
  "keywords": [
@@ -38,14 +38,14 @@ it('applies child interceptors', () => {
38
38
  })
39
39
 
40
40
  it('proxies event listeners to the interceptors', () => {
41
- class PrimaryInterceptor extends Interceptor<{ hello(name: string): void }> {
41
+ class PrimaryInterceptor extends Interceptor<{ hello: [string] }> {
42
42
  constructor() {
43
43
  super(Symbol('primary'))
44
44
  }
45
45
  }
46
46
 
47
47
  class SecondaryInterceptor extends Interceptor<{
48
- goodbye(name: string): void
48
+ goodbye: [string]
49
49
  }> {
50
50
  constructor() {
51
51
  super(Symbol('secondary'))
@@ -1,28 +1,29 @@
1
- import { EventMapType } from 'strict-event-emitter'
1
+ import { EventMap, Listener } from 'strict-event-emitter'
2
2
  import { ExtractEventNames, Interceptor } from './Interceptor'
3
3
 
4
4
  export interface BatchInterceptorOptions<
5
- InterceptorList extends Interceptor<any>[]
5
+ InterceptorList extends Array<Interceptor<any>>
6
6
  > {
7
7
  name: string
8
8
  interceptors: InterceptorList
9
9
  }
10
10
 
11
- export type ExtractEventMapType<InterceptorList extends Interceptor<any>[]> =
12
- InterceptorList extends Array<infer InterceptorType>
13
- ? InterceptorType extends Interceptor<infer EventMap>
14
- ? EventMap
15
- : never
11
+ export type ExtractEventMapType<
12
+ InterceptorList extends Array<Interceptor<any>>
13
+ > = InterceptorList extends Array<infer InterceptorType>
14
+ ? InterceptorType extends Interceptor<infer EventMap>
15
+ ? EventMap
16
16
  : never
17
+ : never
17
18
 
18
19
  /**
19
20
  * A batch interceptor that exposes a single interface
20
21
  * to apply and operate with multiple interceptors at once.
21
22
  */
22
23
  export class BatchInterceptor<
23
- InterceptorList extends Interceptor<any>[],
24
- EventMap extends EventMapType = ExtractEventMapType<InterceptorList>
25
- > extends Interceptor<EventMap> {
24
+ InterceptorList extends Array<Interceptor<any>>,
25
+ Events extends EventMap = ExtractEventMapType<InterceptorList>
26
+ > extends Interceptor<Events> {
26
27
  static symbol: Symbol
27
28
 
28
29
  private interceptors: InterceptorList
@@ -47,9 +48,9 @@ export class BatchInterceptor<
47
48
  }
48
49
  }
49
50
 
50
- public on<Event extends ExtractEventNames<EventMap>>(
51
- event: Event,
52
- listener: EventMap[Event]
51
+ public on<EventName extends ExtractEventNames<Events>>(
52
+ event: EventName,
53
+ listener: Listener<Events[EventName]>
53
54
  ) {
54
55
  // Instead of adding a listener to the batch interceptor,
55
56
  // propagate the listener to each of the individual interceptors.
@@ -1,8 +1,9 @@
1
1
  import { Debugger, debug } from 'debug'
2
+ import { Listener } from 'strict-event-emitter'
2
3
  import { AsyncEventEmitter } from './utils/AsyncEventEmitter'
3
4
  import { nextTick } from './utils/nextTick'
4
5
 
5
- export type InterceptorEventMap = Record<string, (...args: any[]) => void>
6
+ export type InterceptorEventMap = Record<string, any>
6
7
  export type InterceptorSubscription = () => void
7
8
 
8
9
  export function getGlobalSymbol<V>(symbol: Symbol): V | undefined {
@@ -30,12 +31,12 @@ export enum InterceptorReadyState {
30
31
  DISPOSED = 'DISPOSED',
31
32
  }
32
33
 
33
- export type ExtractEventNames<EventMap extends Record<string, any>> =
34
- EventMap extends Record<infer EventName, any> ? EventName : never
34
+ export type ExtractEventNames<Events extends Record<string, any>> =
35
+ Events extends Record<infer EventName, any> ? EventName : never
35
36
 
36
- export class Interceptor<EventMap extends InterceptorEventMap> {
37
- protected emitter: AsyncEventEmitter<EventMap>
38
- protected subscriptions: InterceptorSubscription[]
37
+ export class Interceptor<Events extends InterceptorEventMap> {
38
+ protected emitter: AsyncEventEmitter<Events>
39
+ protected subscriptions: Array<InterceptorSubscription>
39
40
  protected log: Debugger
40
41
 
41
42
  public readyState: InterceptorReadyState
@@ -144,9 +145,9 @@ export class Interceptor<EventMap extends InterceptorEventMap> {
144
145
  /**
145
146
  * Listen to the interceptor's public events.
146
147
  */
147
- public on<Event extends ExtractEventNames<EventMap>>(
148
- event: Event,
149
- listener: EventMap[Event]
148
+ public on<EventName extends ExtractEventNames<Events>>(
149
+ eventName: EventName,
150
+ listener: Listener<Events[EventName]>
150
151
  ): void {
151
152
  const log = this.log.extend('on')
152
153
 
@@ -158,9 +159,9 @@ export class Interceptor<EventMap extends InterceptorEventMap> {
158
159
  return
159
160
  }
160
161
 
161
- log('adding "%s" event listener:', event, listener.name)
162
+ log('adding "%s" event listener:', eventName, listener.name)
162
163
 
163
- this.emitter.on(event, listener)
164
+ this.emitter.on(eventName, listener)
164
165
  }
165
166
 
166
167
  /**
package/src/glossary.ts CHANGED
@@ -5,10 +5,6 @@ export const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')
5
5
  export type RequestCredentials = 'omit' | 'include' | 'same-origin'
6
6
 
7
7
  export type HttpRequestEventMap = {
8
- request(request: InteractiveRequest, requestId: string): Promise<void> | void
9
- response(
10
- response: Response,
11
- request: Request,
12
- requestId: string
13
- ): Promise<void> | void
8
+ request: [request: InteractiveRequest, requestId: string]
9
+ response: [response: Response, request: Request, requestId: string]
14
10
  }