@api-client/core 0.18.12 → 0.18.13

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 (259) hide show
  1. package/build/src/browser.d.ts +0 -3
  2. package/build/src/browser.d.ts.map +1 -1
  3. package/build/src/browser.js +0 -3
  4. package/build/src/browser.js.map +1 -1
  5. package/build/src/index.d.ts +2 -5
  6. package/build/src/index.d.ts.map +1 -1
  7. package/build/src/index.js +2 -5
  8. package/build/src/index.js.map +1 -1
  9. package/build/src/lib/logging/DefaultLogger.d.ts +14 -0
  10. package/build/src/lib/logging/DefaultLogger.d.ts.map +1 -1
  11. package/build/src/lib/logging/DefaultLogger.js +27 -0
  12. package/build/src/lib/logging/DefaultLogger.js.map +1 -1
  13. package/build/src/lib/logging/index.d.ts +4 -0
  14. package/build/src/lib/logging/index.d.ts.map +1 -0
  15. package/build/src/lib/logging/index.js +10 -0
  16. package/build/src/lib/logging/index.js.map +1 -0
  17. package/build/src/models/ClientCertificate.d.ts +1 -1
  18. package/build/src/models/ClientCertificate.js.map +1 -1
  19. package/build/src/models/RequestConfig.d.ts +1 -1
  20. package/build/src/models/RequestConfig.js.map +1 -1
  21. package/build/src/models/SerializableError.d.ts +1 -1
  22. package/build/src/models/SerializableError.d.ts.map +1 -1
  23. package/build/src/models/SerializableError.js.map +1 -1
  24. package/build/src/proxy/RequestProxy.d.ts.map +1 -1
  25. package/build/src/proxy/RequestProxy.js +2 -2
  26. package/build/src/proxy/RequestProxy.js.map +1 -1
  27. package/build/src/runtime/http-engine/CoreEngine.d.ts +218 -139
  28. package/build/src/runtime/http-engine/CoreEngine.d.ts.map +1 -1
  29. package/build/src/runtime/http-engine/CoreEngine.js +716 -870
  30. package/build/src/runtime/http-engine/CoreEngine.js.map +1 -1
  31. package/build/src/runtime/http-engine/PayloadSupport.d.ts.map +1 -1
  32. package/build/src/runtime/http-engine/PayloadSupport.js +2 -1
  33. package/build/src/runtime/http-engine/PayloadSupport.js.map +1 -1
  34. package/build/src/runtime/http-engine/auth/AuthManager.d.ts +73 -0
  35. package/build/src/runtime/http-engine/auth/AuthManager.d.ts.map +1 -0
  36. package/build/src/runtime/http-engine/auth/AuthManager.js +186 -0
  37. package/build/src/runtime/http-engine/auth/AuthManager.js.map +1 -0
  38. package/build/src/runtime/http-engine/auth/index.d.ts +2 -0
  39. package/build/src/runtime/http-engine/auth/index.d.ts.map +1 -0
  40. package/build/src/runtime/http-engine/auth/index.js +2 -0
  41. package/build/src/runtime/http-engine/auth/index.js.map +1 -0
  42. package/build/src/runtime/http-engine/certificates/CertificateManager.d.ts +11 -0
  43. package/build/src/runtime/http-engine/certificates/CertificateManager.d.ts.map +1 -0
  44. package/build/src/runtime/http-engine/certificates/CertificateManager.js +76 -0
  45. package/build/src/runtime/http-engine/certificates/CertificateManager.js.map +1 -0
  46. package/build/src/runtime/http-engine/certificates/index.d.ts +2 -0
  47. package/build/src/runtime/http-engine/certificates/index.d.ts.map +1 -0
  48. package/build/src/runtime/http-engine/certificates/index.js +2 -0
  49. package/build/src/runtime/http-engine/certificates/index.js.map +1 -0
  50. package/build/src/runtime/http-engine/compression/CompressionManager.d.ts +25 -0
  51. package/build/src/runtime/http-engine/compression/CompressionManager.d.ts.map +1 -0
  52. package/build/src/runtime/http-engine/compression/CompressionManager.js +89 -0
  53. package/build/src/runtime/http-engine/compression/CompressionManager.js.map +1 -0
  54. package/build/src/runtime/http-engine/compression/index.d.ts +2 -0
  55. package/build/src/runtime/http-engine/compression/index.d.ts.map +1 -0
  56. package/build/src/runtime/http-engine/compression/index.js +2 -0
  57. package/build/src/runtime/http-engine/compression/index.js.map +1 -0
  58. package/build/src/runtime/http-engine/connections/ConnectionManager.d.ts +57 -0
  59. package/build/src/runtime/http-engine/connections/ConnectionManager.d.ts.map +1 -0
  60. package/build/src/runtime/http-engine/connections/ConnectionManager.js +78 -0
  61. package/build/src/runtime/http-engine/connections/ConnectionManager.js.map +1 -0
  62. package/build/src/runtime/http-engine/connections/DigestAuthHandler.d.ts +70 -0
  63. package/build/src/runtime/http-engine/connections/DigestAuthHandler.d.ts.map +1 -0
  64. package/build/src/runtime/http-engine/connections/DigestAuthHandler.js +184 -0
  65. package/build/src/runtime/http-engine/connections/DigestAuthHandler.js.map +1 -0
  66. package/build/src/runtime/http-engine/connections/DirectConnection.d.ts +22 -0
  67. package/build/src/runtime/http-engine/connections/DirectConnection.d.ts.map +1 -0
  68. package/build/src/runtime/http-engine/connections/DirectConnection.js +105 -0
  69. package/build/src/runtime/http-engine/connections/DirectConnection.js.map +1 -0
  70. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.d.ts +60 -0
  71. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.d.ts.map +1 -0
  72. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.js +138 -0
  73. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.js.map +1 -0
  74. package/build/src/runtime/http-engine/connections/ProxyConnection.d.ts +14 -0
  75. package/build/src/runtime/http-engine/connections/ProxyConnection.d.ts.map +1 -0
  76. package/build/src/runtime/http-engine/connections/ProxyConnection.js +47 -0
  77. package/build/src/runtime/http-engine/connections/ProxyConnection.js.map +1 -0
  78. package/build/src/runtime/http-engine/connections/TunnelConnection.d.ts +13 -0
  79. package/build/src/runtime/http-engine/connections/TunnelConnection.d.ts.map +1 -0
  80. package/build/src/runtime/http-engine/connections/TunnelConnection.js +175 -0
  81. package/build/src/runtime/http-engine/connections/TunnelConnection.js.map +1 -0
  82. package/build/src/runtime/http-engine/connections/index.d.ts +7 -0
  83. package/build/src/runtime/http-engine/connections/index.d.ts.map +1 -0
  84. package/build/src/runtime/http-engine/connections/index.js +7 -0
  85. package/build/src/runtime/http-engine/connections/index.js.map +1 -0
  86. package/build/src/runtime/http-engine/constants.d.ts +69 -0
  87. package/build/src/runtime/http-engine/constants.d.ts.map +1 -0
  88. package/build/src/runtime/http-engine/constants.js +90 -0
  89. package/build/src/runtime/http-engine/constants.js.map +1 -0
  90. package/build/src/runtime/http-engine/cookies/CookieProcessor.d.ts +5 -0
  91. package/build/src/runtime/http-engine/cookies/CookieProcessor.d.ts.map +1 -0
  92. package/build/src/runtime/http-engine/cookies/CookieProcessor.js +20 -0
  93. package/build/src/runtime/http-engine/cookies/CookieProcessor.js.map +1 -0
  94. package/build/src/runtime/http-engine/cookies/index.d.ts +2 -0
  95. package/build/src/runtime/http-engine/cookies/index.d.ts.map +1 -0
  96. package/build/src/runtime/http-engine/cookies/index.js +2 -0
  97. package/build/src/runtime/http-engine/cookies/index.js.map +1 -0
  98. package/build/src/runtime/http-engine/errors/HttpEngineErrors.d.ts +156 -0
  99. package/build/src/runtime/http-engine/errors/HttpEngineErrors.d.ts.map +1 -0
  100. package/build/src/runtime/http-engine/errors/HttpEngineErrors.js +227 -0
  101. package/build/src/runtime/http-engine/errors/HttpEngineErrors.js.map +1 -0
  102. package/build/src/runtime/http-engine/errors/index.d.ts +2 -0
  103. package/build/src/runtime/http-engine/errors/index.d.ts.map +1 -0
  104. package/build/src/runtime/http-engine/errors/index.js +2 -0
  105. package/build/src/runtime/http-engine/errors/index.js.map +1 -0
  106. package/build/src/runtime/http-engine/message/MessageBuilder.d.ts +66 -0
  107. package/build/src/runtime/http-engine/message/MessageBuilder.d.ts.map +1 -0
  108. package/build/src/runtime/http-engine/message/MessageBuilder.js +161 -0
  109. package/build/src/runtime/http-engine/message/MessageBuilder.js.map +1 -0
  110. package/build/src/runtime/http-engine/message/MessageProcessor.d.ts +27 -0
  111. package/build/src/runtime/http-engine/message/MessageProcessor.d.ts.map +1 -0
  112. package/build/src/runtime/http-engine/message/MessageProcessor.js +51 -0
  113. package/build/src/runtime/http-engine/message/MessageProcessor.js.map +1 -0
  114. package/build/src/runtime/http-engine/message/index.d.ts +3 -0
  115. package/build/src/runtime/http-engine/message/index.d.ts.map +1 -0
  116. package/build/src/runtime/http-engine/message/index.js +3 -0
  117. package/build/src/runtime/http-engine/message/index.js.map +1 -0
  118. package/build/src/runtime/http-engine/ntlm/NtlmAuth.d.ts +2 -8
  119. package/build/src/runtime/http-engine/ntlm/NtlmAuth.d.ts.map +1 -1
  120. package/build/src/runtime/http-engine/ntlm/NtlmAuth.js +11 -5
  121. package/build/src/runtime/http-engine/ntlm/NtlmAuth.js.map +1 -1
  122. package/build/src/runtime/http-engine/ntlm/NtlmMessage.js +6 -6
  123. package/build/src/runtime/http-engine/ntlm/NtlmMessage.js.map +1 -1
  124. package/build/src/runtime/http-engine/parsers/BodyParser.d.ts +39 -0
  125. package/build/src/runtime/http-engine/parsers/BodyParser.d.ts.map +1 -0
  126. package/build/src/runtime/http-engine/parsers/BodyParser.js +145 -0
  127. package/build/src/runtime/http-engine/parsers/BodyParser.js.map +1 -0
  128. package/build/src/runtime/http-engine/parsers/HeadersParser.d.ts +29 -0
  129. package/build/src/runtime/http-engine/parsers/HeadersParser.d.ts.map +1 -0
  130. package/build/src/runtime/http-engine/parsers/HeadersParser.js +88 -0
  131. package/build/src/runtime/http-engine/parsers/HeadersParser.js.map +1 -0
  132. package/build/src/runtime/http-engine/parsers/HttpResponseParser.d.ts +91 -0
  133. package/build/src/runtime/http-engine/parsers/HttpResponseParser.d.ts.map +1 -0
  134. package/build/src/runtime/http-engine/parsers/HttpResponseParser.js +236 -0
  135. package/build/src/runtime/http-engine/parsers/HttpResponseParser.js.map +1 -0
  136. package/build/src/runtime/http-engine/parsers/StatusParser.d.ts +20 -0
  137. package/build/src/runtime/http-engine/parsers/StatusParser.d.ts.map +1 -0
  138. package/build/src/runtime/http-engine/parsers/StatusParser.js +51 -0
  139. package/build/src/runtime/http-engine/parsers/StatusParser.js.map +1 -0
  140. package/build/src/runtime/http-engine/parsers/index.d.ts +5 -0
  141. package/build/src/runtime/http-engine/parsers/index.d.ts.map +1 -0
  142. package/build/src/runtime/http-engine/parsers/index.js +5 -0
  143. package/build/src/runtime/http-engine/parsers/index.js.map +1 -0
  144. package/build/src/runtime/http-engine/response/ResponseProcessor.d.ts +22 -0
  145. package/build/src/runtime/http-engine/response/ResponseProcessor.d.ts.map +1 -0
  146. package/build/src/runtime/http-engine/response/ResponseProcessor.js +25 -0
  147. package/build/src/runtime/http-engine/response/ResponseProcessor.js.map +1 -0
  148. package/build/src/runtime/http-engine/response/index.d.ts +2 -0
  149. package/build/src/runtime/http-engine/response/index.d.ts.map +1 -0
  150. package/build/src/runtime/http-engine/response/index.js +2 -0
  151. package/build/src/runtime/http-engine/response/index.js.map +1 -0
  152. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.d.ts +7 -0
  153. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.d.ts.map +1 -0
  154. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.js +40 -0
  155. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.js.map +1 -0
  156. package/build/src/runtime/http-engine/statistics/index.d.ts +2 -0
  157. package/build/src/runtime/http-engine/statistics/index.d.ts.map +1 -0
  158. package/build/src/runtime/http-engine/statistics/index.js +2 -0
  159. package/build/src/runtime/http-engine/statistics/index.js.map +1 -0
  160. package/build/src/runtime/http-engine/url/UrlProcessor.d.ts +24 -0
  161. package/build/src/runtime/http-engine/url/UrlProcessor.d.ts.map +1 -0
  162. package/build/src/runtime/http-engine/url/UrlProcessor.js +50 -0
  163. package/build/src/runtime/http-engine/url/UrlProcessor.js.map +1 -0
  164. package/build/src/runtime/http-engine/url/index.d.ts +2 -0
  165. package/build/src/runtime/http-engine/url/index.d.ts.map +1 -0
  166. package/build/src/runtime/http-engine/url/index.js +2 -0
  167. package/build/src/runtime/http-engine/url/index.js.map +1 -0
  168. package/build/src/runtime/http-runner/HttpRequestRunner.d.ts +3 -3
  169. package/build/src/runtime/http-runner/HttpRequestRunner.d.ts.map +1 -1
  170. package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -1
  171. package/build/src/runtime/node/InteropInterfaces.d.ts +3 -3
  172. package/build/src/runtime/node/InteropInterfaces.d.ts.map +1 -1
  173. package/build/src/runtime/node/InteropInterfaces.js.map +1 -1
  174. package/build/src/runtime/node/ProjectRequestRunner.d.ts +2 -2
  175. package/build/src/runtime/node/ProjectRequestRunner.d.ts.map +1 -1
  176. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
  177. package/build/src/runtime/node/ProjectRunner.d.ts.map +1 -1
  178. package/build/src/runtime/node/ProjectRunner.js +2 -2
  179. package/build/src/runtime/node/ProjectRunner.js.map +1 -1
  180. package/build/tsconfig.tsbuildinfo +1 -1
  181. package/data/models/example-generator-api.json +6 -6
  182. package/package.json +2 -2
  183. package/src/lib/logging/DefaultLogger.ts +32 -0
  184. package/src/models/ClientCertificate.ts +1 -1
  185. package/src/models/RequestConfig.ts +1 -1
  186. package/src/models/SerializableError.ts +1 -1
  187. package/src/proxy/RequestProxy.ts +2 -2
  188. package/src/runtime/http-engine/CoreEngine.ts +858 -893
  189. package/src/runtime/http-engine/PayloadSupport.ts +2 -1
  190. package/src/runtime/http-engine/auth/AuthManager.ts +242 -0
  191. package/src/runtime/http-engine/certificates/CertificateManager.ts +74 -0
  192. package/src/runtime/http-engine/compression/CompressionManager.ts +99 -0
  193. package/src/runtime/http-engine/connections/ConnectionManager.ts +123 -0
  194. package/src/runtime/http-engine/connections/DigestAuthHandler.ts +238 -0
  195. package/src/runtime/http-engine/connections/DirectConnection.ts +134 -0
  196. package/src/runtime/http-engine/connections/ProxyAuthHandler.ts +179 -0
  197. package/src/runtime/http-engine/connections/ProxyConnection.ts +55 -0
  198. package/src/runtime/http-engine/connections/TunnelConnection.ts +192 -0
  199. package/src/runtime/http-engine/constants.ts +103 -0
  200. package/src/runtime/http-engine/cookies/CookieProcessor.ts +25 -0
  201. package/src/runtime/http-engine/errors/HttpEngineErrors.ts +319 -0
  202. package/src/runtime/http-engine/message/MessageBuilder.ts +201 -0
  203. package/src/runtime/http-engine/message/MessageProcessor.ts +73 -0
  204. package/src/runtime/http-engine/ntlm/NtlmAuth.ts +16 -13
  205. package/src/runtime/http-engine/ntlm/NtlmMessage.ts +6 -6
  206. package/src/runtime/http-engine/parsers/BodyParser.ts +171 -0
  207. package/src/runtime/http-engine/parsers/HeadersParser.ts +103 -0
  208. package/src/runtime/http-engine/parsers/HttpResponseParser.ts +280 -0
  209. package/src/runtime/http-engine/parsers/StatusParser.ts +69 -0
  210. package/src/runtime/http-engine/response/ResponseProcessor.ts +46 -0
  211. package/src/runtime/http-engine/statistics/StatisticsProcessor.ts +52 -0
  212. package/src/runtime/http-engine/url/UrlProcessor.ts +55 -0
  213. package/src/runtime/http-runner/HttpRequestRunner.ts +3 -3
  214. package/src/runtime/node/InteropInterfaces.ts +3 -3
  215. package/src/runtime/node/ProjectRequestRunner.ts +2 -2
  216. package/src/runtime/node/ProjectRunner.ts +2 -2
  217. package/tests/servers/ProxyServer.ts +32 -19
  218. package/tests/servers/express-routes/ApiEndpoint.ts +24 -0
  219. package/tests/servers/express-routes/BasicAuthRoute.ts +36 -0
  220. package/tests/servers/express-routes/BearerAuthRoute.ts +35 -0
  221. package/tests/servers/express-routes/NTLMRoute.ts +2 -3
  222. package/tests/servers/express-routes/PostApi.ts +15 -2
  223. package/tests/servers/express-routes/RedirectsApi.ts +12 -1
  224. package/tests/servers/express-routes/ResponsesApi.ts +1 -1
  225. package/tests/servers/express-routes/StreamApi.ts +19 -0
  226. package/tests/servers/oauth2mock/ServerMock.js +1 -1
  227. package/tests/unit/runtime/http-engine/HttpResponseParser.spec.ts +337 -0
  228. package/tests/unit/runtime/http-engine/abort.spec.ts +4 -5
  229. package/tests/unit/runtime/http-engine/auth.spec.ts +7 -58
  230. package/tests/unit/runtime/http-engine/certificates/CertificateManager.spec.ts +482 -0
  231. package/tests/unit/runtime/http-engine/certificates.spec.ts +2 -2
  232. package/tests/unit/runtime/http-engine/compression/CompressionManager.spec.ts +498 -0
  233. package/tests/unit/runtime/http-engine/compression.spec.ts +3 -72
  234. package/tests/unit/runtime/http-engine/connections/ConnectionManager.spec.ts +379 -0
  235. package/tests/unit/runtime/http-engine/connections/DigestAuthHandler.spec.ts +164 -0
  236. package/tests/unit/runtime/http-engine/core_engine.spec.ts +561 -0
  237. package/tests/unit/runtime/http-engine/engine_statuses.spec.ts +2 -2
  238. package/tests/unit/runtime/http-engine/events.spec.ts +2 -2
  239. package/tests/unit/runtime/http-engine/headers.spec.ts +2 -88
  240. package/tests/unit/runtime/http-engine/hosts.spec.ts +2 -2
  241. package/tests/unit/runtime/http-engine/http-get.spec.ts +2 -2
  242. package/tests/unit/runtime/http-engine/http-post.spec.ts +2 -2
  243. package/tests/unit/runtime/http-engine/logger.spec.ts +0 -8
  244. package/tests/unit/runtime/http-engine/message.spec.ts +2 -194
  245. package/tests/unit/runtime/http-engine/params.spec.ts +4 -4
  246. package/tests/unit/runtime/http-engine/proxy.spec.ts +15 -14
  247. package/tests/unit/runtime/http-engine/redirects.spec.ts +2 -2
  248. package/tests/unit/runtime/http-engine/responses.spec.ts +170 -277
  249. package/tests/unit/runtime/http-engine/timeout.spec.ts +3 -3
  250. package/tests/unit/runtime/http-engine/timings.spec.ts +2 -2
  251. package/tests/unit/runtime/proxy/HttpProjectProxy.spec.ts +25 -28
  252. package/tests/unit/runtime/runners/project_runner.spec.ts +2 -2
  253. package/tests/unit/runtime/runners/request_runner.spec.ts +2 -2
  254. package/build/src/runtime/http-engine/HttpEngine.d.ts +0 -311
  255. package/build/src/runtime/http-engine/HttpEngine.d.ts.map +0 -1
  256. package/build/src/runtime/http-engine/HttpEngine.js +0 -802
  257. package/build/src/runtime/http-engine/HttpEngine.js.map +0 -1
  258. package/src/runtime/http-engine/HttpEngine.ts +0 -952
  259. package/tests/unit/runtime/http-engine/connecting.spec.ts +0 -140
@@ -1,220 +1,299 @@
1
1
  import net from 'net';
2
+ import { URL } from 'url';
2
3
  import tls from 'tls';
3
- import http from 'http';
4
- import { HttpEngine, HttpEngineOptions } from './HttpEngine.js';
4
+ import { EventEmitter } from 'events';
5
+ import { Logger, type ILogObj } from 'tslog';
5
6
  import { IRequestLog } from '../../models/RequestLog.js';
6
- import { IHttpRequest } from '../../models/HttpRequest.js';
7
- import { Headers } from '../../lib/headers/Headers.js';
8
- import { INtlmAuthorization } from '../../models/Authorization.js';
7
+ import { IHttpRequest, HttpRequest } from '../../models/HttpRequest.js';
8
+ import { IRequestBaseConfig } from '../../models/RequestConfig.js';
9
+ import { IRequestAuthorization } from '../../models/RequestAuthorization.js';
10
+ import { HttpCertificate } from '../../models/ClientCertificate.js';
11
+ import { SentRequest } from '../../models/SentRequest.js';
12
+ import { Response } from '../../models/Response.js';
9
13
  import { ResponseRedirect } from '../../models/ResponseRedirect.js';
10
- export declare enum RequestState {
11
- Status = 0,
12
- Headers = 1,
13
- Body = 2,
14
- Done = 3
14
+ import { RequestLog } from '../../models/RequestLog.js';
15
+ import { RequestTime } from '../../models/RequestTime.js';
16
+ import { SerializableError } from '../../models/SerializableError.js';
17
+ import { ResponseAuthorization } from '../../models/ResponseAuthorization.js';
18
+ import { Headers } from '../../lib/headers/Headers.js';
19
+ export interface HttpEngineOptions extends IRequestBaseConfig {
20
+ /**
21
+ * The authorization configuration to apply to the request.
22
+ */
23
+ authorization?: IRequestAuthorization[];
24
+ /**
25
+ * Logger object.
26
+ */
27
+ logger?: Logger<ILogObj>;
28
+ /**
29
+ * A certificate to use with the request.
30
+ */
31
+ certificates?: HttpCertificate[];
32
+ }
33
+ export interface RequestStats {
34
+ firstReceiveTime?: number;
35
+ lastReceivedTime?: number;
36
+ messageStart?: number;
37
+ sentTime?: number;
38
+ connectionTime?: number;
39
+ lookupTime?: number;
40
+ connectedTime?: number;
41
+ secureStartTime?: number;
42
+ secureConnectedTime?: number;
43
+ startTime?: number;
44
+ responseTime?: number;
45
+ receivingTime?: number;
46
+ }
47
+ export interface ResponseErrorInit {
48
+ code?: number | string;
49
+ message?: string;
50
+ }
51
+ export interface BeforeRedirectDetail {
52
+ location: string;
53
+ returnValue: boolean;
15
54
  }
16
- interface ResponseInfo {
17
- contentLength?: number;
18
- chunked: boolean;
19
- body?: Buffer;
20
- chunk?: Buffer;
21
- chunkSize?: number;
55
+ export interface HeadersReceivedDetail {
56
+ value: string;
57
+ returnValue: boolean;
22
58
  }
59
+ export interface IRequestAuthState {
60
+ method: 'ntlm';
61
+ state: number;
62
+ headers?: string;
63
+ challengeHeader?: string;
64
+ }
65
+ export declare const mainPromiseSymbol: unique symbol;
23
66
  /**
24
- * API Client's HTTP engine.
67
+ * API Client's HTTP engine with refactored parsing and connection handling.
25
68
  * An HTTP 1.1 engine working directly on the socket. It communicates with the remote machine and
26
69
  * collects stats about the request and response.
27
70
  */
28
- export declare class CoreEngine extends HttpEngine {
29
- state: RequestState;
30
- rawHeaders?: Buffer;
31
- _hostTestReg: RegExp;
32
- responseInfo: ResponseInfo;
71
+ export declare class CoreEngine extends EventEmitter {
72
+ request: HttpRequest;
73
+ opts: HttpEngineOptions;
74
+ logger: Logger<ILogObj>;
75
+ /**
76
+ * The current sent request
77
+ */
78
+ sentRequest: SentRequest;
79
+ redirects: ResponseRedirect[];
80
+ /**
81
+ * When true the request has been aborted.
82
+ */
83
+ aborted: boolean;
84
+ /**
85
+ * Parsed value of the request URL.
86
+ */
87
+ uri: URL;
88
+ socket?: net.Socket;
89
+ /**
90
+ * Host header can be different than registered URL because of
91
+ * `hosts` rules.
92
+ * If a rule changes host value of the URL the original URL host value
93
+ * is used when generating the request and not overwritten one.
94
+ * This way virtual hosts can be tested using hosts.
95
+ */
96
+ hostHeader: string | undefined;
97
+ protected hostTestReg: RegExp;
98
+ /**
99
+ * Set when the request is redirected.
100
+ */
101
+ redirecting: boolean;
102
+ /**
103
+ * The response headers.
104
+ * The object may be empty when the response is not set.
105
+ */
106
+ currentHeaders: Headers;
107
+ /**
108
+ * The response object build during the execution.
109
+ */
110
+ currentResponse?: Response;
111
+ /**
112
+ * Keeps the raw body in a temporary buffer while processing the response.
113
+ */
114
+ _rawBody?: Buffer;
115
+ stats: RequestStats;
116
+ auth?: IRequestAuthState;
117
+ protected mainResolver?: (log: IRequestLog) => void;
118
+ protected mainRejecter?: (err: SerializableError) => void;
119
+ [mainPromiseSymbol]?: Promise<IRequestLog>;
120
+ protected _signal?: AbortSignal;
121
+ private parser;
122
+ private connectionManager;
123
+ private authManager;
124
+ private messageBuilder;
33
125
  hasProxy: boolean;
34
126
  isProxyTunnel: boolean;
35
127
  isProxySsl: boolean;
128
+ /**
129
+ * @return True if following redirects is allowed.
130
+ */
131
+ get followRedirects(): boolean;
132
+ /**
133
+ * The request timeout.
134
+ */
135
+ get timeout(): number;
136
+ /**
137
+ * The abort signal to set on this request.
138
+ * Aborts the request when the signal fires.
139
+ */
140
+ get signal(): AbortSignal | undefined;
141
+ set signal(value: AbortSignal | undefined);
36
142
  constructor(request: IHttpRequest, opts?: HttpEngineOptions);
37
143
  /**
38
- * Sends the request
144
+ * Creates a logger object to log debug output.
39
145
  */
40
- send(): Promise<IRequestLog>;
41
- private sendRequest;
146
+ setupLogger(opts?: HttpEngineOptions): Logger<ILogObj>;
42
147
  /**
43
- * Cleans the state after finished.
148
+ * Updates the `uri` property from current request URL
44
149
  */
45
- _cleanUp(): void;
150
+ readUrl(value: string): URL;
46
151
  /**
47
- * Cleans up the state for redirect.
152
+ * Get host header for the request
48
153
  */
49
- _cleanUpRedirect(): void;
154
+ getHostHeader(url: string): string | undefined;
50
155
  /**
51
- * Prepares an HTTP message from API Client's request object.
52
- *
53
- * @returns Resolved promise to an `ArrayBuffer`.
156
+ * Aborts current request.
157
+ * It emits `error` event
54
158
  */
55
- prepareMessage(): Promise<Buffer>;
159
+ abort(): void;
56
160
  /**
57
- * Sends a data to a socket.
58
- *
59
- * @param buffer HTTP message to send
161
+ * Handler for the `abort` event on the `AbortSignal`.
60
162
  */
61
- writeMessage(buffer: Buffer): Promise<void>;
163
+ protected _abortHandler(): void;
62
164
  /**
63
- * Connects to a server and sends the message.
64
- *
65
- * @returns Promise resolved when socket is connected.
165
+ * Create parser callbacks to handle parsed data
66
166
  */
67
- connect(): Promise<net.Socket>;
167
+ private createParserCallbacks;
68
168
  /**
69
- * Connects to a server and writes a message using insecure connection.
70
- *
71
- * @param port A port number to connect to.
72
- * @param host A host name to connect to
73
- * @returns A promise resolved when the message was sent to a server
169
+ * Sends the request
74
170
  */
75
- _connect(port: number, host: string): Promise<net.Socket>;
171
+ send(): Promise<IRequestLog>;
172
+ private sendRequest;
76
173
  /**
77
- * Connects to a server and writes a message using secured connection.
78
- *
79
- * @param port A port number to connect to.
80
- * @param host A host name to connect to
81
- * @returns A promise resolved when the message was sent to a server
174
+ * Establish connection using the connection manager
82
175
  */
83
- _connectTls(port: number, host: string): Promise<tls.TLSSocket>;
176
+ private establishConnection;
84
177
  /**
85
- * Prepares a full HTTP message body
86
- *
87
- * @param httpHeaders The list ogf headers to append.
88
- * @param buffer The buffer with the HTTP message
89
- * @returns The Buffer of the HTTP message
178
+ * Decompresses received body if `content-encoding` header is set.
90
179
  */
91
- _prepareMessage(httpHeaders: Headers, buffer?: Buffer): Buffer;
180
+ decompress(body?: Buffer): Promise<Buffer | undefined>;
92
181
  /**
93
- * Creates an HTTP status line for the message.
94
- * For proxy connections it, depending whether target is SSL or not, sets the path
95
- * as the full URL or just the authority.
96
- * @returns The generates status message.
182
+ * Prepares headers list to be send to the remote machine.
183
+ * If `defaultHeaders` option is set then it adds `user-agent` and `accept`
184
+ * headers.
97
185
  */
98
- _createHttpStatus(): string;
186
+ prepareHeaders(headers: Headers, withPayload?: boolean): void;
99
187
  /**
100
- * Tests if current connection is required to add `host` header.
101
- * It returns `false` only if `host` header has been already provided.
102
- *
103
- * @returns True when the `host` header should be added to the headers list.
188
+ * Cleans the state after finished.
104
189
  */
105
- _hostRequired(): boolean;
190
+ _cleanUp(): void;
106
191
  /**
107
- * Alters authorization header depending on the `auth` object
108
- * @param headers A headers object where to append headers when needed
192
+ * Cleans up the state for redirect.
109
193
  */
110
- _handleAuthorization(headers: Headers): void;
194
+ _cleanUpRedirect(): void;
111
195
  /**
112
- * Authorize the request with NTLM
113
- * @param authData Credentials to use
114
- * @param headers A headers object where to append headers if needed
196
+ * Reports response when redirected.
115
197
  */
116
- _authorizeNtlm(authData: INtlmAuthorization, headers: Headers): void;
198
+ _reportRedirect(status: number): boolean;
117
199
  /**
118
- * Add event listeners to existing socket.
119
- * @param socket An instance of the socket.
120
- * @return The same socket. Used for chaining.
200
+ * Get redirect options based on status and method
121
201
  */
122
- _addSocketListeners(socket: net.Socket): net.Socket;
202
+ private getRedirectOptions;
123
203
  /**
124
- * Processes response message chunk
125
- * @param buffer Message buffer
204
+ * Creates a response and adds it to the redirects list and redirects
205
+ * the request to the new location.
126
206
  */
127
- _processResponse(buffer: Buffer): void;
207
+ _redirectRequest(options: {
208
+ redirect: boolean;
209
+ location?: string;
210
+ forceGet?: boolean;
211
+ }): Promise<void>;
128
212
  /**
129
- * Reports response after processing it.
213
+ * Get redirect location
130
214
  */
131
- _reportResponse(): void;
215
+ private getRedirectLocation;
132
216
  /**
133
- * Generate response object and publish it to the listeners.
217
+ * Check if redirect is a loop
134
218
  */
135
- _publishResponse(): Promise<void>;
219
+ private isRedirectLoop;
136
220
  /**
137
221
  * @param location The redirect location.
138
222
  * @return Redirect response object
139
223
  */
140
224
  _createRedirectResponse(location: string): Promise<ResponseRedirect>;
141
225
  /**
142
- * closes the connection, if any
226
+ * Creates a response object
143
227
  */
144
- closeClient(): void;
228
+ _createResponse(): Promise<Response>;
145
229
  /**
146
- * Handles the response with NTLM authorization
230
+ * Finishes the response with error message.
147
231
  */
148
- handleNtlmResponse(): void;
232
+ _errorRequest(opts: ResponseErrorInit): void;
149
233
  /**
150
- * Process received message.
151
- *
152
- * @param data Received message.
234
+ * Generates authorization info object from response.
153
235
  */
154
- _processSocketMessage(data: Buffer): void;
236
+ _getAuth(): ResponseAuthorization;
155
237
  /**
156
- * Read status line from the response.
157
- * This function will set `status` and `statusText` fields
158
- * and then will set `state` to HEADERS.
159
- *
160
- * @param data The received data
238
+ * Creates HAR 1.2 timings object from stats.
161
239
  */
162
- _processStatus(data?: Buffer): Buffer | undefined;
240
+ _computeStats(stats: RequestStats): RequestTime;
163
241
  /**
164
- * Read headers from the received data.
165
- *
166
- * @param data Received data
167
- * @returns Remaining data in the buffer.
242
+ * Handles cookie exchange when redirecting the request.
168
243
  */
169
- _processHeaders(data?: Buffer): Buffer | undefined;
244
+ _processRedirectCookies(responseCookies: string, location: string): void;
170
245
  /**
171
- * Check the response headers and end the request if necessary.
172
- * @param data Current response data buffer
246
+ * Checks certificate identity using TLS api.
173
247
  */
174
- _postHeaders(data: Buffer): Buffer | undefined;
248
+ _checkServerIdentity(host: string, cert: tls.PeerCertificate): Error | undefined;
175
249
  /**
176
- * This function assumes that all headers has been read and it's
177
- * just before changing the status to BODY.
250
+ * Clears event listeners of the socket object,
178
251
  */
179
- _parseHeaders(buffer?: Buffer): void;
252
+ _clearSocketEventListeners(): void;
180
253
  /**
181
- * @param data A data to process
254
+ * Called with the `send()` function to initialize the main promise returned by the send function.
255
+ * The send function returns a promise that is resolved when the request finish.
182
256
  */
183
- _processBody(data?: Buffer): void;
184
- _processBodyContentLength(data: Buffer): void;
257
+ protected wrapExecution(): Promise<IRequestLog>;
185
258
  /**
186
- * @param data A latest data to process
259
+ * Called by the request finalizer or error finalized to report the response.
187
260
  */
188
- _processBodyChunked(data?: Buffer): void;
261
+ protected finalizeRequest(log: RequestLog | SerializableError): void;
189
262
  /**
190
- * If response's Transfer-Encoding is 'chunked' read until next CR.
191
- * Everything before it is a chunk size.
263
+ * Prepares an HTTP message from API Client's request object.
192
264
  */
193
- readChunkSize(array: Buffer): Buffer | undefined;
265
+ prepareMessage(): Promise<Buffer>;
194
266
  /**
195
- * Connects to a server through a proxy. Depending on the proxy type the returned socket
196
- * is a socket created after creating a tunnel (SSL) or the proxy socket.
197
- *
198
- * @returns Promise resolved when socket is connected.
267
+ * Sends a data to a socket.
199
268
  */
200
- connectProxy(): Promise<net.Socket | undefined>;
269
+ writeMessage(buffer: Buffer): Promise<void>;
270
+ /**
271
+ * Alters authorization header depending on the `auth` object
272
+ */
273
+ _handleAuthorization(headers: Headers): void;
201
274
  /**
202
- * Creates a tunnel to a Proxy for SSL connections.
203
- * The returned socket is the one created after the tunnel is established.
204
- * @param proxyIsSsl Whether the proxy is an SSL connection.
205
- * @returns Promise resolved when socket is connected.
275
+ * Generate proxy authorization header
206
276
  */
207
- connectTunnel(proxyIsSsl?: boolean): Promise<net.Socket | undefined>;
208
- handleProxyAuthentication(res: http.IncomingMessage, socket: net.Socket): Promise<void>;
277
+ _proxyAuthHeader(): string | undefined;
209
278
  /**
210
- * Creates connection to a proxy for an HTTP (non-SSL) transport.
211
- * This is the same as calling _connect or _connectTls but the target is the proxy and not the
212
- * target URL. The message sent to the proxy server is different than the one sent
213
- * to the target.
214
- * @param proxyIsSsl
215
- * @returns Promise resolved when socket is connected.
279
+ * Add event listeners to existing socket.
280
+ */
281
+ _addSocketListeners(socket: net.Socket): net.Socket;
282
+ /**
283
+ * Reports response after processing it.
284
+ */
285
+ _reportResponse(): Promise<void>;
286
+ /**
287
+ * Generate response object and publish it to the listeners.
288
+ */
289
+ _publishResponse(): Promise<void>;
290
+ /**
291
+ * closes the connection, if any
292
+ */
293
+ closeClient(): void;
294
+ /**
295
+ * Handles the response with NTLM authorization
216
296
  */
217
- proxyHttp(proxyIsSsl?: boolean): Promise<net.Socket>;
297
+ handleNtlmResponse(): Promise<void>;
218
298
  }
219
- export {};
220
299
  //# sourceMappingURL=CoreEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoreEngine.d.ts","sourceRoot":"","sources":["../../../../src/runtime/http-engine/CoreEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreEngine.d.ts","sourceRoot":"","sources":["../../../../src/runtime/http-engine/CoreEngine.ts"],"names":[],"mappings":"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"}