@mswjs/interceptors 0.12.7 → 0.13.3

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 (105) hide show
  1. package/README.md +64 -15
  2. package/lib/createInterceptor.d.ts +8 -1
  3. package/lib/createInterceptor.js.map +1 -1
  4. package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +38 -0
  5. package/lib/interceptors/ClientRequest/NodeClientRequest.js +420 -0
  6. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +1 -0
  7. package/lib/interceptors/ClientRequest/http.get.d.ts +5 -0
  8. package/lib/interceptors/ClientRequest/http.get.js +47 -0
  9. package/lib/interceptors/ClientRequest/http.get.js.map +1 -0
  10. package/lib/interceptors/ClientRequest/http.request.d.ts +5 -0
  11. package/lib/interceptors/ClientRequest/http.request.js +44 -0
  12. package/lib/interceptors/ClientRequest/http.request.js.map +1 -0
  13. package/lib/interceptors/ClientRequest/index.d.ts +5 -1
  14. package/lib/interceptors/ClientRequest/index.js +50 -84
  15. package/lib/interceptors/ClientRequest/index.js.map +1 -1
  16. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.d.ts +7 -0
  17. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +77 -0
  18. package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +1 -0
  19. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.d.ts +1 -1
  20. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +21 -12
  21. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +1 -1
  22. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.d.ts +17 -0
  23. package/lib/interceptors/ClientRequest/utils/{normalizeHttpRequestParams.js → normalizeClientRequestArgs.js} +65 -39
  24. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +1 -0
  25. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.d.ts +15 -0
  26. package/lib/interceptors/ClientRequest/utils/{normalizeHttpRequestEndParams.js → normalizeClientRequestEndArgs.js} +5 -6
  27. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.js.map +1 -0
  28. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.d.ts +13 -0
  29. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js +20 -0
  30. package/lib/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.js.map +1 -0
  31. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.d.ts +1 -1
  32. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js +12 -11
  33. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js.map +1 -1
  34. package/lib/interceptors/fetch/index.js +5 -4
  35. package/lib/interceptors/fetch/index.js.map +1 -1
  36. package/lib/remote.js +2 -2
  37. package/lib/remote.js.map +1 -1
  38. package/lib/utils/getUrlByRequestOptions.d.ts +5 -4
  39. package/lib/utils/getUrlByRequestOptions.js.map +1 -1
  40. package/lib/utils/toIsoResponse.js +2 -2
  41. package/lib/utils/toIsoResponse.js.map +1 -1
  42. package/package.json +34 -19
  43. package/src/createInterceptor.ts +100 -0
  44. package/src/index.ts +5 -0
  45. package/src/interceptors/ClientRequest/NodeClientRequest.test.ts +283 -0
  46. package/src/interceptors/ClientRequest/NodeClientRequest.ts +377 -0
  47. package/src/interceptors/ClientRequest/http.get.ts +32 -0
  48. package/src/interceptors/ClientRequest/http.request.ts +29 -0
  49. package/src/interceptors/ClientRequest/index.ts +61 -0
  50. package/src/interceptors/ClientRequest/utils/bodyBufferToString.test.ts +16 -0
  51. package/src/interceptors/ClientRequest/utils/bodyBufferToString.ts +7 -0
  52. package/src/interceptors/ClientRequest/utils/cloneIncomingMessage.test.ts +20 -0
  53. package/src/interceptors/ClientRequest/utils/cloneIncomingMessage.ts +41 -0
  54. package/src/interceptors/ClientRequest/utils/concatChunkToBuffer.test.ts +13 -0
  55. package/src/interceptors/ClientRequest/utils/concatChunkToBuffer.ts +10 -0
  56. package/src/interceptors/ClientRequest/utils/getIncomingMessageBody.test.ts +44 -0
  57. package/src/interceptors/ClientRequest/utils/getIncomingMessageBody.ts +38 -0
  58. package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.test.ts +336 -0
  59. package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts +205 -0
  60. package/src/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.test.ts +40 -0
  61. package/src/interceptors/ClientRequest/utils/normalizeClientRequestEndArgs.ts +51 -0
  62. package/src/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.test.ts +35 -0
  63. package/src/interceptors/ClientRequest/utils/normalizeClientRequestWriteArgs.ts +36 -0
  64. package/src/interceptors/XMLHttpRequest/XMLHttpRequestOverride.ts +565 -0
  65. package/src/interceptors/XMLHttpRequest/index.ts +34 -0
  66. package/src/interceptors/XMLHttpRequest/polyfills/EventPolyfill.ts +51 -0
  67. package/src/interceptors/XMLHttpRequest/polyfills/ProgressEventPolyfill.ts +17 -0
  68. package/src/interceptors/XMLHttpRequest/utils/bufferFrom.test.ts +11 -0
  69. package/src/interceptors/XMLHttpRequest/utils/bufferFrom.ts +16 -0
  70. package/src/interceptors/XMLHttpRequest/utils/createEvent.test.ts +27 -0
  71. package/src/interceptors/XMLHttpRequest/utils/createEvent.ts +41 -0
  72. package/src/interceptors/fetch/index.ts +89 -0
  73. package/src/presets/browser.ts +8 -0
  74. package/src/presets/node.ts +8 -0
  75. package/src/remote.ts +176 -0
  76. package/src/utils/cloneObject.test.ts +93 -0
  77. package/src/utils/cloneObject.ts +34 -0
  78. package/src/utils/getCleanUrl.test.ts +31 -0
  79. package/src/utils/getCleanUrl.ts +6 -0
  80. package/src/utils/getRequestOptionsByUrl.ts +29 -0
  81. package/src/utils/getUrlByRequestOptions.test.ts +140 -0
  82. package/src/utils/getUrlByRequestOptions.ts +108 -0
  83. package/src/utils/isObject.test.ts +19 -0
  84. package/src/utils/isObject.ts +6 -0
  85. package/src/utils/parseJson.test.ts +9 -0
  86. package/src/utils/parseJson.ts +12 -0
  87. package/src/utils/toIsoResponse.test.ts +39 -0
  88. package/src/utils/toIsoResponse.ts +14 -0
  89. package/src/utils/uuid.ts +7 -0
  90. package/lib/interceptors/ClientRequest/ClientRequest.glossary.d.ts +0 -6
  91. package/lib/interceptors/ClientRequest/ClientRequest.glossary.js +0 -3
  92. package/lib/interceptors/ClientRequest/ClientRequest.glossary.js.map +0 -1
  93. package/lib/interceptors/ClientRequest/createClientRequestOverride.d.ts +0 -12
  94. package/lib/interceptors/ClientRequest/createClientRequestOverride.js +0 -340
  95. package/lib/interceptors/ClientRequest/createClientRequestOverride.js.map +0 -1
  96. package/lib/interceptors/ClientRequest/polyfills/SocketPolyfill.d.ts +0 -49
  97. package/lib/interceptors/ClientRequest/polyfills/SocketPolyfill.js +0 -118
  98. package/lib/interceptors/ClientRequest/polyfills/SocketPolyfill.js.map +0 -1
  99. package/lib/interceptors/ClientRequest/utils/inheritRequestHeaders.d.ts +0 -3
  100. package/lib/interceptors/ClientRequest/utils/inheritRequestHeaders.js +0 -34
  101. package/lib/interceptors/ClientRequest/utils/inheritRequestHeaders.js.map +0 -1
  102. package/lib/interceptors/ClientRequest/utils/normalizeHttpRequestEndParams.d.ts +0 -17
  103. package/lib/interceptors/ClientRequest/utils/normalizeHttpRequestEndParams.js.map +0 -1
  104. package/lib/interceptors/ClientRequest/utils/normalizeHttpRequestParams.d.ts +0 -11
  105. package/lib/interceptors/ClientRequest/utils/normalizeHttpRequestParams.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeClientRequest.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/NodeClientRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ClientRequest } from 'node:http';
2
+ import { Observer, Resolver } from '../../createInterceptor';
3
+ import { Protocol } from './NodeClientRequest';
4
+ import { ClientRequestArgs } from './utils/normalizeClientRequestArgs';
5
+ export declare function get(protocol: Protocol, resolver: Resolver, observer: Observer): (...args: ClientRequestArgs) => ClientRequest;
@@ -0,0 +1,47 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
19
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
20
+ to[j] = from[i];
21
+ return to;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.get = void 0;
25
+ var NodeClientRequest_1 = require("./NodeClientRequest");
26
+ var normalizeClientRequestArgs_1 = require("./utils/normalizeClientRequestArgs");
27
+ function get(protocol, resolver, observer) {
28
+ return function () {
29
+ var args = [];
30
+ for (var _i = 0; _i < arguments.length; _i++) {
31
+ args[_i] = arguments[_i];
32
+ }
33
+ var clientRequestArgs = normalizeClientRequestArgs_1.normalizeClientRequestArgs.apply(void 0, __spreadArray([protocol + ":"], __read(args)));
34
+ var request = new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, {
35
+ resolver: resolver,
36
+ observer: observer,
37
+ });
38
+ /**
39
+ * @note https://nodejs.org/api/http.html#httpgetoptions-callback
40
+ * "http.get" sets the method to "GET" and calls "req.end()" automatically.
41
+ */
42
+ request.end();
43
+ return request;
44
+ };
45
+ }
46
+ exports.get = get;
47
+ //# sourceMappingURL=http.get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.get.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,yDAAiE;AACjE,iFAG2C;AAE3C,SAAgB,GAAG,CACjB,QAAkB,EAClB,QAAkB,EAClB,QAAkB;IAElB,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,IAAM,iBAAiB,GAAG,uDAA0B,8BAC/C,QAAQ,MAAG,UACX,IAAI,GACR,CAAA;QACD,IAAM,OAAO,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,EAAE;YACvD,QAAQ,UAAA;YACR,QAAQ,UAAA;SACT,CAAC,CAAA;QAEF;;;WAGG;QACH,OAAO,CAAC,GAAG,EAAE,CAAA;QAEb,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAvBD,kBAuBC"}
@@ -0,0 +1,5 @@
1
+ import { ClientRequest } from 'http';
2
+ import { Observer, Resolver } from '../../createInterceptor';
3
+ import { Protocol } from './NodeClientRequest';
4
+ import { ClientRequestArgs } from './utils/normalizeClientRequestArgs';
5
+ export declare function request(protocol: Protocol, resolver: Resolver, observer: Observer): (...args: ClientRequestArgs) => ClientRequest;
@@ -0,0 +1,44 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
19
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
20
+ to[j] = from[i];
21
+ return to;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.request = void 0;
25
+ var debug_1 = require("debug");
26
+ var NodeClientRequest_1 = require("./NodeClientRequest");
27
+ var normalizeClientRequestArgs_1 = require("./utils/normalizeClientRequestArgs");
28
+ var log = debug_1.debug('http.request');
29
+ function request(protocol, resolver, observer) {
30
+ return function () {
31
+ var args = [];
32
+ for (var _i = 0; _i < arguments.length; _i++) {
33
+ args[_i] = arguments[_i];
34
+ }
35
+ log('intercepted request:', args);
36
+ var clientRequestArgs = normalizeClientRequestArgs_1.normalizeClientRequestArgs.apply(void 0, __spreadArray([protocol + ":"], __read(args)));
37
+ return new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, {
38
+ observer: observer,
39
+ resolver: resolver,
40
+ });
41
+ };
42
+ }
43
+ exports.request = request;
44
+ //# sourceMappingURL=http.request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.request.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAG7B,yDAAiE;AACjE,iFAG2C;AAE3C,IAAM,GAAG,GAAG,aAAK,CAAC,cAAc,CAAC,CAAA;AAEjC,SAAgB,OAAO,CACrB,QAAkB,EAClB,QAAkB,EAClB,QAAkB;IAElB,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;QAEjC,IAAM,iBAAiB,GAAG,uDAA0B,8BAC/C,QAAQ,MAAG,UACX,IAAI,GACR,CAAA;QACD,OAAO,IAAI,qCAAiB,CAAC,iBAAiB,EAAE;YAC9C,QAAQ,UAAA;YACR,QAAQ,UAAA;SACT,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAjBD,0BAiBC"}
@@ -1,5 +1,9 @@
1
+ /// <reference types="node" />
2
+ import http from 'http';
3
+ import https from 'https';
1
4
  import { Interceptor } from '../../createInterceptor';
5
+ export declare type RequestModule = typeof http | typeof https;
2
6
  /**
3
- * Intercepts requests issued by native `http` and `https` modules.
7
+ * Intercepts requests issued by native "http" and "https" modules.
4
8
  */
5
9
  export declare const interceptClientRequest: Interceptor;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
2
13
  var __read = (this && this.__read) || function (o, n) {
3
14
  var m = typeof Symbol === "function" && o[Symbol.iterator];
4
15
  if (!m) return o;
@@ -15,101 +26,56 @@ var __read = (this && this.__read) || function (o, n) {
15
26
  }
16
27
  return ar;
17
28
  };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
19
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
20
- to[j] = from[i];
21
- return to;
22
- };
23
- var __values = (this && this.__values) || function(o) {
24
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
25
- if (m) return m.call(o);
26
- if (o && typeof o.length === "number") return {
27
- next: function () {
28
- if (o && i >= o.length) o = void 0;
29
- return { value: o && o[i++], done: !o };
30
- }
31
- };
32
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
33
- };
34
29
  var __importDefault = (this && this.__importDefault) || function (mod) {
35
30
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
31
  };
37
32
  Object.defineProperty(exports, "__esModule", { value: true });
38
33
  exports.interceptClientRequest = void 0;
34
+ var debug_1 = require("debug");
39
35
  var http_1 = __importDefault(require("http"));
40
36
  var https_1 = __importDefault(require("https"));
41
- var createClientRequestOverride_1 = require("./createClientRequestOverride");
42
- var debug = require('debug')('http override');
43
- // Store a pointer to the original `http.ClientRequest` class
44
- // so it can be mutated during runtime, affecting any subsequent calls.
45
- var pureClientRequest;
46
- function handleClientRequest(protocol, pureMethod, args, observer, resolver) {
47
- // The first time we execute this, I'll save the original ClientRequest.
48
- // This because is used to restore the dafault one later
49
- if (!pureClientRequest) {
50
- pureClientRequest = http_1.default.ClientRequest;
51
- }
52
- var ClientRequestOverride = createClientRequestOverride_1.createClientRequestOverride({
53
- defaultProtocol: protocol + ":",
54
- pureClientRequest: pureClientRequest,
55
- pureMethod: pureMethod,
56
- observer: observer,
57
- resolver: resolver,
58
- });
59
- debug('new ClientRequestOverride (origin: %s)', protocol);
60
- // @ts-expect-error Variable call signature.
61
- return new (ClientRequestOverride.bind.apply(ClientRequestOverride, __spreadArray([void 0], __read(args))))();
62
- }
37
+ var http_get_1 = require("./http.get");
38
+ var http_request_1 = require("./http.request");
39
+ var log = debug_1.debug('http override');
63
40
  /**
64
- * Intercepts requests issued by native `http` and `https` modules.
41
+ * Intercepts requests issued by native "http" and "https" modules.
65
42
  */
66
43
  var interceptClientRequest = function (observer, resolver) {
44
+ var e_1, _a;
67
45
  var pureModules = new Map();
68
- var modules = ['http', 'https'];
69
- modules.forEach(function (protocol) {
70
- var requestModule = protocol === 'https' ? https_1.default : http_1.default;
71
- var originalRequest = requestModule.request, originalGet = requestModule.get;
72
- // Wrap an original `http.request`/`https.request`
73
- // so that its invocations can be debugged.
74
- function proxiedOriginalRequest() {
75
- var args = [];
76
- for (var _i = 0; _i < arguments.length; _i++) {
77
- args[_i] = arguments[_i];
78
- }
79
- debug('%s.request original call', protocol, args);
80
- // @ts-ignore
81
- return originalRequest.apply(void 0, __spreadArray([], __read(args)));
46
+ var modules = [
47
+ ['http', http_1.default],
48
+ ['https', https_1.default],
49
+ ];
50
+ try {
51
+ for (var modules_1 = __values(modules), modules_1_1 = modules_1.next(); !modules_1_1.done; modules_1_1 = modules_1.next()) {
52
+ var _b = __read(modules_1_1.value, 2), protocol = _b[0], requestModule = _b[1];
53
+ log('patching the "%s" module...', protocol);
54
+ pureModules.set(protocol, {
55
+ module: requestModule,
56
+ request: requestModule.request,
57
+ get: requestModule.get,
58
+ });
59
+ // @ts-ignore Call signature overloads are incompatible.
60
+ requestModule.request =
61
+ // Force a line-break to prevent ignoring the "request" call.
62
+ http_request_1.request(protocol, resolver, observer);
63
+ // @ts-ignore Call signature overloads are incompatible.
64
+ requestModule.get =
65
+ // Force a line-break to prevent ignoring the "get" call.
66
+ http_get_1.get(protocol, resolver, observer);
82
67
  }
83
- debug('patching "%s" module...', protocol);
84
- // @ts-ignore
85
- requestModule.request = function requestOverride() {
86
- var args = [];
87
- for (var _i = 0; _i < arguments.length; _i++) {
88
- args[_i] = arguments[_i];
89
- }
90
- debug('%s.request proxy call', protocol);
91
- return handleClientRequest(protocol, proxiedOriginalRequest.bind(requestModule), args, observer, resolver);
92
- };
93
- // @ts-ignore
94
- requestModule.get = function getOverride() {
95
- var args = [];
96
- for (var _i = 0; _i < arguments.length; _i++) {
97
- args[_i] = arguments[_i];
98
- }
99
- debug('%s.get call', protocol);
100
- var req = handleClientRequest(protocol, originalGet.bind(requestModule), args, observer, resolver);
101
- req.end();
102
- return req;
103
- };
104
- pureModules.set(protocol, {
105
- module: requestModule,
106
- request: originalRequest,
107
- get: originalGet,
108
- });
109
- });
68
+ }
69
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
70
+ finally {
71
+ try {
72
+ if (modules_1_1 && !modules_1_1.done && (_a = modules_1.return)) _a.call(modules_1);
73
+ }
74
+ finally { if (e_1) throw e_1.error; }
75
+ }
110
76
  return function () {
111
- var e_1, _a;
112
- debug('restoring modules...');
77
+ var e_2, _a;
78
+ log('done, restoring modules...');
113
79
  try {
114
80
  for (var _b = __values(pureModules.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
115
81
  var requestModule = _c.value;
@@ -117,12 +83,12 @@ var interceptClientRequest = function (observer, resolver) {
117
83
  requestModule.module.request = requestModule.request;
118
84
  }
119
85
  }
120
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
121
87
  finally {
122
88
  try {
123
89
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
124
90
  }
125
- finally { if (e_1) throw e_1.error; }
91
+ finally { if (e_2) throw e_2.error; }
126
92
  }
127
93
  pureModules.clear();
128
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAC7B,8CAAuB;AACvB,gDAAyB;AAEzB,uCAAgC;AAEhC,+CAAwC;AAExC,IAAM,GAAG,GAAG,aAAK,CAAC,eAAe,CAAC,CAAA;AAYlC;;GAEG;AACI,IAAM,sBAAsB,GAAgB,UAAC,QAAQ,EAAE,QAAQ;;IACpE,IAAM,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAA;IAC1C,IAAM,OAAO,GAAgC;QAC3C,CAAC,MAAM,EAAE,cAAI,CAAC;QACd,CAAC,OAAO,EAAE,eAAK,CAAC;KACjB,CAAA;;QAED,KAAwC,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE;YAAtC,IAAA,KAAA,4BAAyB,EAAxB,QAAQ,QAAA,EAAE,aAAa,QAAA;YACjC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;YAE5C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,GAAG,EAAE,aAAa,CAAC,GAAG;aACvB,CAAC,CAAA;YAEF,wDAAwD;YACxD,aAAa,CAAC,OAAO;gBACnB,6DAA6D;gBAC7D,sBAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAEvC,wDAAwD;YACxD,aAAa,CAAC,GAAG;gBACf,yDAAyD;gBACzD,cAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;SACpC;;;;;;;;;IAED,OAAO;;QACL,GAAG,CAAC,4BAA4B,CAAC,CAAA;;YAEjC,KAA4B,IAAA,KAAA,SAAA,WAAW,CAAC,MAAM,EAAE,CAAA,gBAAA,4BAAE;gBAA7C,IAAM,aAAa,WAAA;gBACtB,aAAa,CAAC,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;gBAC5C,aAAa,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAA;aACrD;;;;;;;;;QAED,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,sBAAsB,0BAqClC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage } from 'http';
3
+ export declare const IS_CLONE: unique symbol;
4
+ export interface ClonedIncomingMessage extends IncomingMessage {
5
+ [IS_CLONE]: boolean;
6
+ }
7
+ export declare function cloneIncomingMessage(message: IncomingMessage): ClonedIncomingMessage;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
30
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
31
+ to[j] = from[i];
32
+ return to;
33
+ };
34
+ var __values = (this && this.__values) || function(o) {
35
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
36
+ if (m) return m.call(o);
37
+ if (o && typeof o.length === "number") return {
38
+ next: function () {
39
+ if (o && i >= o.length) o = void 0;
40
+ return { value: o && o[i++], done: !o };
41
+ }
42
+ };
43
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.cloneIncomingMessage = exports.IS_CLONE = void 0;
47
+ var stream_1 = require("stream");
48
+ exports.IS_CLONE = Symbol('isClone');
49
+ function cloneIncomingMessage(message) {
50
+ var e_1, _a;
51
+ var stream = message.pipe(new stream_1.PassThrough());
52
+ var properties = __spreadArray(__spreadArray([], __read(Object.getOwnPropertyNames(message))), __read(Object.getOwnPropertySymbols(message)));
53
+ try {
54
+ for (var properties_1 = __values(properties), properties_1_1 = properties_1.next(); !properties_1_1.done; properties_1_1 = properties_1.next()) {
55
+ var propertyName = properties_1_1.value;
56
+ if (stream.hasOwnProperty(propertyName)) {
57
+ continue;
58
+ }
59
+ var propertyDescriptor = Object.getOwnPropertyDescriptor(message, propertyName);
60
+ Object.defineProperty(stream, propertyName, __assign(__assign({}, propertyDescriptor), { value: message[propertyName] }));
61
+ }
62
+ }
63
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
64
+ finally {
65
+ try {
66
+ if (properties_1_1 && !properties_1_1.done && (_a = properties_1.return)) _a.call(properties_1);
67
+ }
68
+ finally { if (e_1) throw e_1.error; }
69
+ }
70
+ Object.defineProperty(stream, exports.IS_CLONE, {
71
+ enumerable: true,
72
+ value: true,
73
+ });
74
+ return stream;
75
+ }
76
+ exports.cloneIncomingMessage = cloneIncomingMessage;
77
+ //# sourceMappingURL=cloneIncomingMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneIncomingMessage.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/cloneIncomingMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iCAAoC;AAEvB,QAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAMzC,SAAgB,oBAAoB,CAClC,OAAwB;;IAExB,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,oBAAW,EAAE,CAAC,CAAA;IAC9C,IAAM,UAAU,GAAG,uCACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,WACnC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACT,CAAA;;QAEjC,KAA2B,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAAlC,IAAM,YAAY,uBAAA;YACrB,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACvC,SAAQ;aACT;YAED,IAAM,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,CACxD,OAAO,EACP,YAAY,CACb,CAAA;YAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,wBACrC,kBAAkB,KACrB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,IAC5B,CAAA;SACH;;;;;;;;;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAQ,EAAE;QACtC,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,MAA0C,CAAA;AACnD,CAAC;AA/BD,oDA+BC"}
@@ -1,3 +1,3 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingMessage } from 'http';
3
- export declare function getIncomingMessageBody(res: IncomingMessage): Promise<string>;
3
+ export declare function getIncomingMessageBody(response: IncomingMessage): Promise<string>;
@@ -20,23 +20,32 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.getIncomingMessageBody = void 0;
23
+ var debug_1 = require("debug");
24
+ var stream_1 = require("stream");
23
25
  var zlib = __importStar(require("zlib"));
24
- function getIncomingMessageBody(res) {
25
- var responseBody = '';
26
- var stream = res;
27
- if (res.headers['content-encoding'] === 'gzip') {
28
- stream = res.pipe(zlib.createGunzip());
29
- }
26
+ var log = debug_1.debug('http getIncomingMessageBody');
27
+ function getIncomingMessageBody(response) {
30
28
  return new Promise(function (resolve, reject) {
29
+ log('cloning the original response...');
30
+ // Pipe the original response to support non-clone
31
+ // "response" input. No need to clone the response,
32
+ // as we always have access to the full "response" input,
33
+ // either a clone or an original one (in tests).
34
+ var responseClone = response.pipe(new stream_1.PassThrough());
35
+ var stream = response.headers['content-encoding'] === 'gzip'
36
+ ? responseClone.pipe(zlib.createGunzip())
37
+ : responseClone;
38
+ var encoding = response.readableEncoding || 'utf8';
39
+ stream.setEncoding(encoding);
40
+ log('using encoding:', encoding);
41
+ stream.once('data', function (responseBody) {
42
+ log('response body read:', responseBody);
43
+ resolve(responseBody);
44
+ });
31
45
  stream.once('error', function (error) {
32
- stream.removeAllListeners();
46
+ log('error while reading response body:', error);
33
47
  reject(error);
34
48
  });
35
- stream.on('data', function (chunk) { return (responseBody += chunk); });
36
- stream.once('end', function () {
37
- stream.removeAllListeners();
38
- resolve(responseBody);
39
- });
40
49
  });
41
50
  }
42
51
  exports.getIncomingMessageBody = getIncomingMessageBody;
@@ -1 +1 @@
1
- {"version":3,"file":"getIncomingMessageBody.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/getIncomingMessageBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,yCAA4B;AAE5B,SAAgB,sBAAsB,CAAC,GAAoB;IACzD,IAAI,YAAY,GAAG,EAAE,CAAA;IACrB,IAAI,MAAM,GAAW,GAAG,CAAA;IAExB,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;QAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;KACvC;IAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,KAAK;YACzB,MAAM,CAAC,kBAAkB,EAAE,CAAA;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC,YAAY,IAAI,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAA;QAErD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,kBAAkB,EAAE,CAAA;YAC3B,OAAO,CAAC,YAAY,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AArBD,wDAqBC"}
1
+ {"version":3,"file":"getIncomingMessageBody.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/getIncomingMessageBody.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAE7B,iCAAoC;AACpC,yCAA4B;AAE5B,IAAM,GAAG,GAAG,aAAK,CAAC,6BAA6B,CAAC,CAAA;AAEhD,SAAgB,sBAAsB,CACpC,QAAyB;IAEzB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAEvC,kDAAkD;QAClD,mDAAmD;QACnD,yDAAyD;QACzD,gDAAgD;QAChD,IAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAW,EAAE,CAAC,CAAA;QACtD,IAAM,MAAM,GACV,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM;YAC7C,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,CAAC,CAAC,aAAa,CAAA;QAEnB,IAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,IAAI,MAAM,CAAA;QACpD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC5B,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QAEhC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,YAAY;YAC/B,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAA;YACxC,OAAO,CAAC,YAAY,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,KAAK;YACzB,GAAG,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;YAChD,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AA9BD,wDA8BC"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage } from 'http';
3
+ import { RequestOptions } from 'https';
4
+ import { Url as LegacyURL } from 'url';
5
+ import { ResolvedRequestOptions } from '../../../utils/getUrlByRequestOptions';
6
+ export declare type HttpRequestCallback = (response: IncomingMessage) => void;
7
+ export declare type ClientRequestArgs = [string | URL | LegacyURL, HttpRequestCallback?] | [string | URL | LegacyURL, RequestOptions, HttpRequestCallback?] | [RequestOptions, HttpRequestCallback?];
8
+ export declare type NormalizedClientRequestArgs = [
9
+ url: URL,
10
+ options: ResolvedRequestOptions,
11
+ callback?: HttpRequestCallback
12
+ ];
13
+ /**
14
+ * Normalizes parameters given to a `http.request` call
15
+ * so it always has a `URL` and `RequestOptions`.
16
+ */
17
+ export declare function normalizeClientRequestArgs(defaultProtocol: string, ...args: ClientRequestArgs): NormalizedClientRequestArgs;