@api-client/core 0.18.11 → 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 (264) 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/modeling/DomainModel.d.ts.map +1 -1
  18. package/build/src/modeling/DomainModel.js +11 -4
  19. package/build/src/modeling/DomainModel.js.map +1 -1
  20. package/build/src/models/ClientCertificate.d.ts +1 -1
  21. package/build/src/models/ClientCertificate.js.map +1 -1
  22. package/build/src/models/RequestConfig.d.ts +1 -1
  23. package/build/src/models/RequestConfig.js.map +1 -1
  24. package/build/src/models/SerializableError.d.ts +1 -1
  25. package/build/src/models/SerializableError.d.ts.map +1 -1
  26. package/build/src/models/SerializableError.js.map +1 -1
  27. package/build/src/proxy/RequestProxy.d.ts.map +1 -1
  28. package/build/src/proxy/RequestProxy.js +2 -2
  29. package/build/src/proxy/RequestProxy.js.map +1 -1
  30. package/build/src/runtime/http-engine/CoreEngine.d.ts +218 -139
  31. package/build/src/runtime/http-engine/CoreEngine.d.ts.map +1 -1
  32. package/build/src/runtime/http-engine/CoreEngine.js +716 -870
  33. package/build/src/runtime/http-engine/CoreEngine.js.map +1 -1
  34. package/build/src/runtime/http-engine/PayloadSupport.d.ts.map +1 -1
  35. package/build/src/runtime/http-engine/PayloadSupport.js +2 -1
  36. package/build/src/runtime/http-engine/PayloadSupport.js.map +1 -1
  37. package/build/src/runtime/http-engine/auth/AuthManager.d.ts +73 -0
  38. package/build/src/runtime/http-engine/auth/AuthManager.d.ts.map +1 -0
  39. package/build/src/runtime/http-engine/auth/AuthManager.js +186 -0
  40. package/build/src/runtime/http-engine/auth/AuthManager.js.map +1 -0
  41. package/build/src/runtime/http-engine/auth/index.d.ts +2 -0
  42. package/build/src/runtime/http-engine/auth/index.d.ts.map +1 -0
  43. package/build/src/runtime/http-engine/auth/index.js +2 -0
  44. package/build/src/runtime/http-engine/auth/index.js.map +1 -0
  45. package/build/src/runtime/http-engine/certificates/CertificateManager.d.ts +11 -0
  46. package/build/src/runtime/http-engine/certificates/CertificateManager.d.ts.map +1 -0
  47. package/build/src/runtime/http-engine/certificates/CertificateManager.js +76 -0
  48. package/build/src/runtime/http-engine/certificates/CertificateManager.js.map +1 -0
  49. package/build/src/runtime/http-engine/certificates/index.d.ts +2 -0
  50. package/build/src/runtime/http-engine/certificates/index.d.ts.map +1 -0
  51. package/build/src/runtime/http-engine/certificates/index.js +2 -0
  52. package/build/src/runtime/http-engine/certificates/index.js.map +1 -0
  53. package/build/src/runtime/http-engine/compression/CompressionManager.d.ts +25 -0
  54. package/build/src/runtime/http-engine/compression/CompressionManager.d.ts.map +1 -0
  55. package/build/src/runtime/http-engine/compression/CompressionManager.js +89 -0
  56. package/build/src/runtime/http-engine/compression/CompressionManager.js.map +1 -0
  57. package/build/src/runtime/http-engine/compression/index.d.ts +2 -0
  58. package/build/src/runtime/http-engine/compression/index.d.ts.map +1 -0
  59. package/build/src/runtime/http-engine/compression/index.js +2 -0
  60. package/build/src/runtime/http-engine/compression/index.js.map +1 -0
  61. package/build/src/runtime/http-engine/connections/ConnectionManager.d.ts +57 -0
  62. package/build/src/runtime/http-engine/connections/ConnectionManager.d.ts.map +1 -0
  63. package/build/src/runtime/http-engine/connections/ConnectionManager.js +78 -0
  64. package/build/src/runtime/http-engine/connections/ConnectionManager.js.map +1 -0
  65. package/build/src/runtime/http-engine/connections/DigestAuthHandler.d.ts +70 -0
  66. package/build/src/runtime/http-engine/connections/DigestAuthHandler.d.ts.map +1 -0
  67. package/build/src/runtime/http-engine/connections/DigestAuthHandler.js +184 -0
  68. package/build/src/runtime/http-engine/connections/DigestAuthHandler.js.map +1 -0
  69. package/build/src/runtime/http-engine/connections/DirectConnection.d.ts +22 -0
  70. package/build/src/runtime/http-engine/connections/DirectConnection.d.ts.map +1 -0
  71. package/build/src/runtime/http-engine/connections/DirectConnection.js +105 -0
  72. package/build/src/runtime/http-engine/connections/DirectConnection.js.map +1 -0
  73. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.d.ts +60 -0
  74. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.d.ts.map +1 -0
  75. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.js +138 -0
  76. package/build/src/runtime/http-engine/connections/ProxyAuthHandler.js.map +1 -0
  77. package/build/src/runtime/http-engine/connections/ProxyConnection.d.ts +14 -0
  78. package/build/src/runtime/http-engine/connections/ProxyConnection.d.ts.map +1 -0
  79. package/build/src/runtime/http-engine/connections/ProxyConnection.js +47 -0
  80. package/build/src/runtime/http-engine/connections/ProxyConnection.js.map +1 -0
  81. package/build/src/runtime/http-engine/connections/TunnelConnection.d.ts +13 -0
  82. package/build/src/runtime/http-engine/connections/TunnelConnection.d.ts.map +1 -0
  83. package/build/src/runtime/http-engine/connections/TunnelConnection.js +175 -0
  84. package/build/src/runtime/http-engine/connections/TunnelConnection.js.map +1 -0
  85. package/build/src/runtime/http-engine/connections/index.d.ts +7 -0
  86. package/build/src/runtime/http-engine/connections/index.d.ts.map +1 -0
  87. package/build/src/runtime/http-engine/connections/index.js +7 -0
  88. package/build/src/runtime/http-engine/connections/index.js.map +1 -0
  89. package/build/src/runtime/http-engine/constants.d.ts +69 -0
  90. package/build/src/runtime/http-engine/constants.d.ts.map +1 -0
  91. package/build/src/runtime/http-engine/constants.js +90 -0
  92. package/build/src/runtime/http-engine/constants.js.map +1 -0
  93. package/build/src/runtime/http-engine/cookies/CookieProcessor.d.ts +5 -0
  94. package/build/src/runtime/http-engine/cookies/CookieProcessor.d.ts.map +1 -0
  95. package/build/src/runtime/http-engine/cookies/CookieProcessor.js +20 -0
  96. package/build/src/runtime/http-engine/cookies/CookieProcessor.js.map +1 -0
  97. package/build/src/runtime/http-engine/cookies/index.d.ts +2 -0
  98. package/build/src/runtime/http-engine/cookies/index.d.ts.map +1 -0
  99. package/build/src/runtime/http-engine/cookies/index.js +2 -0
  100. package/build/src/runtime/http-engine/cookies/index.js.map +1 -0
  101. package/build/src/runtime/http-engine/errors/HttpEngineErrors.d.ts +156 -0
  102. package/build/src/runtime/http-engine/errors/HttpEngineErrors.d.ts.map +1 -0
  103. package/build/src/runtime/http-engine/errors/HttpEngineErrors.js +227 -0
  104. package/build/src/runtime/http-engine/errors/HttpEngineErrors.js.map +1 -0
  105. package/build/src/runtime/http-engine/errors/index.d.ts +2 -0
  106. package/build/src/runtime/http-engine/errors/index.d.ts.map +1 -0
  107. package/build/src/runtime/http-engine/errors/index.js +2 -0
  108. package/build/src/runtime/http-engine/errors/index.js.map +1 -0
  109. package/build/src/runtime/http-engine/message/MessageBuilder.d.ts +66 -0
  110. package/build/src/runtime/http-engine/message/MessageBuilder.d.ts.map +1 -0
  111. package/build/src/runtime/http-engine/message/MessageBuilder.js +161 -0
  112. package/build/src/runtime/http-engine/message/MessageBuilder.js.map +1 -0
  113. package/build/src/runtime/http-engine/message/MessageProcessor.d.ts +27 -0
  114. package/build/src/runtime/http-engine/message/MessageProcessor.d.ts.map +1 -0
  115. package/build/src/runtime/http-engine/message/MessageProcessor.js +51 -0
  116. package/build/src/runtime/http-engine/message/MessageProcessor.js.map +1 -0
  117. package/build/src/runtime/http-engine/message/index.d.ts +3 -0
  118. package/build/src/runtime/http-engine/message/index.d.ts.map +1 -0
  119. package/build/src/runtime/http-engine/message/index.js +3 -0
  120. package/build/src/runtime/http-engine/message/index.js.map +1 -0
  121. package/build/src/runtime/http-engine/ntlm/NtlmAuth.d.ts +2 -8
  122. package/build/src/runtime/http-engine/ntlm/NtlmAuth.d.ts.map +1 -1
  123. package/build/src/runtime/http-engine/ntlm/NtlmAuth.js +11 -5
  124. package/build/src/runtime/http-engine/ntlm/NtlmAuth.js.map +1 -1
  125. package/build/src/runtime/http-engine/ntlm/NtlmMessage.js +6 -6
  126. package/build/src/runtime/http-engine/ntlm/NtlmMessage.js.map +1 -1
  127. package/build/src/runtime/http-engine/parsers/BodyParser.d.ts +39 -0
  128. package/build/src/runtime/http-engine/parsers/BodyParser.d.ts.map +1 -0
  129. package/build/src/runtime/http-engine/parsers/BodyParser.js +145 -0
  130. package/build/src/runtime/http-engine/parsers/BodyParser.js.map +1 -0
  131. package/build/src/runtime/http-engine/parsers/HeadersParser.d.ts +29 -0
  132. package/build/src/runtime/http-engine/parsers/HeadersParser.d.ts.map +1 -0
  133. package/build/src/runtime/http-engine/parsers/HeadersParser.js +88 -0
  134. package/build/src/runtime/http-engine/parsers/HeadersParser.js.map +1 -0
  135. package/build/src/runtime/http-engine/parsers/HttpResponseParser.d.ts +91 -0
  136. package/build/src/runtime/http-engine/parsers/HttpResponseParser.d.ts.map +1 -0
  137. package/build/src/runtime/http-engine/parsers/HttpResponseParser.js +236 -0
  138. package/build/src/runtime/http-engine/parsers/HttpResponseParser.js.map +1 -0
  139. package/build/src/runtime/http-engine/parsers/StatusParser.d.ts +20 -0
  140. package/build/src/runtime/http-engine/parsers/StatusParser.d.ts.map +1 -0
  141. package/build/src/runtime/http-engine/parsers/StatusParser.js +51 -0
  142. package/build/src/runtime/http-engine/parsers/StatusParser.js.map +1 -0
  143. package/build/src/runtime/http-engine/parsers/index.d.ts +5 -0
  144. package/build/src/runtime/http-engine/parsers/index.d.ts.map +1 -0
  145. package/build/src/runtime/http-engine/parsers/index.js +5 -0
  146. package/build/src/runtime/http-engine/parsers/index.js.map +1 -0
  147. package/build/src/runtime/http-engine/response/ResponseProcessor.d.ts +22 -0
  148. package/build/src/runtime/http-engine/response/ResponseProcessor.d.ts.map +1 -0
  149. package/build/src/runtime/http-engine/response/ResponseProcessor.js +25 -0
  150. package/build/src/runtime/http-engine/response/ResponseProcessor.js.map +1 -0
  151. package/build/src/runtime/http-engine/response/index.d.ts +2 -0
  152. package/build/src/runtime/http-engine/response/index.d.ts.map +1 -0
  153. package/build/src/runtime/http-engine/response/index.js +2 -0
  154. package/build/src/runtime/http-engine/response/index.js.map +1 -0
  155. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.d.ts +7 -0
  156. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.d.ts.map +1 -0
  157. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.js +40 -0
  158. package/build/src/runtime/http-engine/statistics/StatisticsProcessor.js.map +1 -0
  159. package/build/src/runtime/http-engine/statistics/index.d.ts +2 -0
  160. package/build/src/runtime/http-engine/statistics/index.d.ts.map +1 -0
  161. package/build/src/runtime/http-engine/statistics/index.js +2 -0
  162. package/build/src/runtime/http-engine/statistics/index.js.map +1 -0
  163. package/build/src/runtime/http-engine/url/UrlProcessor.d.ts +24 -0
  164. package/build/src/runtime/http-engine/url/UrlProcessor.d.ts.map +1 -0
  165. package/build/src/runtime/http-engine/url/UrlProcessor.js +50 -0
  166. package/build/src/runtime/http-engine/url/UrlProcessor.js.map +1 -0
  167. package/build/src/runtime/http-engine/url/index.d.ts +2 -0
  168. package/build/src/runtime/http-engine/url/index.d.ts.map +1 -0
  169. package/build/src/runtime/http-engine/url/index.js +2 -0
  170. package/build/src/runtime/http-engine/url/index.js.map +1 -0
  171. package/build/src/runtime/http-runner/HttpRequestRunner.d.ts +3 -3
  172. package/build/src/runtime/http-runner/HttpRequestRunner.d.ts.map +1 -1
  173. package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -1
  174. package/build/src/runtime/node/InteropInterfaces.d.ts +3 -3
  175. package/build/src/runtime/node/InteropInterfaces.d.ts.map +1 -1
  176. package/build/src/runtime/node/InteropInterfaces.js.map +1 -1
  177. package/build/src/runtime/node/ProjectRequestRunner.d.ts +2 -2
  178. package/build/src/runtime/node/ProjectRequestRunner.d.ts.map +1 -1
  179. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
  180. package/build/src/runtime/node/ProjectRunner.d.ts.map +1 -1
  181. package/build/src/runtime/node/ProjectRunner.js +2 -2
  182. package/build/src/runtime/node/ProjectRunner.js.map +1 -1
  183. package/build/tsconfig.tsbuildinfo +1 -1
  184. package/data/models/example-generator-api.json +24 -24
  185. package/package.json +2 -2
  186. package/src/lib/logging/DefaultLogger.ts +32 -0
  187. package/src/modeling/DomainModel.ts +11 -4
  188. package/src/models/ClientCertificate.ts +1 -1
  189. package/src/models/RequestConfig.ts +1 -1
  190. package/src/models/SerializableError.ts +1 -1
  191. package/src/proxy/RequestProxy.ts +2 -2
  192. package/src/runtime/http-engine/CoreEngine.ts +858 -893
  193. package/src/runtime/http-engine/PayloadSupport.ts +2 -1
  194. package/src/runtime/http-engine/auth/AuthManager.ts +242 -0
  195. package/src/runtime/http-engine/certificates/CertificateManager.ts +74 -0
  196. package/src/runtime/http-engine/compression/CompressionManager.ts +99 -0
  197. package/src/runtime/http-engine/connections/ConnectionManager.ts +123 -0
  198. package/src/runtime/http-engine/connections/DigestAuthHandler.ts +238 -0
  199. package/src/runtime/http-engine/connections/DirectConnection.ts +134 -0
  200. package/src/runtime/http-engine/connections/ProxyAuthHandler.ts +179 -0
  201. package/src/runtime/http-engine/connections/ProxyConnection.ts +55 -0
  202. package/src/runtime/http-engine/connections/TunnelConnection.ts +192 -0
  203. package/src/runtime/http-engine/constants.ts +103 -0
  204. package/src/runtime/http-engine/cookies/CookieProcessor.ts +25 -0
  205. package/src/runtime/http-engine/errors/HttpEngineErrors.ts +319 -0
  206. package/src/runtime/http-engine/message/MessageBuilder.ts +201 -0
  207. package/src/runtime/http-engine/message/MessageProcessor.ts +73 -0
  208. package/src/runtime/http-engine/ntlm/NtlmAuth.ts +16 -13
  209. package/src/runtime/http-engine/ntlm/NtlmMessage.ts +6 -6
  210. package/src/runtime/http-engine/parsers/BodyParser.ts +171 -0
  211. package/src/runtime/http-engine/parsers/HeadersParser.ts +103 -0
  212. package/src/runtime/http-engine/parsers/HttpResponseParser.ts +280 -0
  213. package/src/runtime/http-engine/parsers/StatusParser.ts +69 -0
  214. package/src/runtime/http-engine/response/ResponseProcessor.ts +46 -0
  215. package/src/runtime/http-engine/statistics/StatisticsProcessor.ts +52 -0
  216. package/src/runtime/http-engine/url/UrlProcessor.ts +55 -0
  217. package/src/runtime/http-runner/HttpRequestRunner.ts +3 -3
  218. package/src/runtime/node/InteropInterfaces.ts +3 -3
  219. package/src/runtime/node/ProjectRequestRunner.ts +2 -2
  220. package/src/runtime/node/ProjectRunner.ts +2 -2
  221. package/tests/servers/ProxyServer.ts +32 -19
  222. package/tests/servers/express-routes/ApiEndpoint.ts +24 -0
  223. package/tests/servers/express-routes/BasicAuthRoute.ts +36 -0
  224. package/tests/servers/express-routes/BearerAuthRoute.ts +35 -0
  225. package/tests/servers/express-routes/NTLMRoute.ts +2 -3
  226. package/tests/servers/express-routes/PostApi.ts +15 -2
  227. package/tests/servers/express-routes/RedirectsApi.ts +12 -1
  228. package/tests/servers/express-routes/ResponsesApi.ts +1 -1
  229. package/tests/servers/express-routes/StreamApi.ts +19 -0
  230. package/tests/servers/oauth2mock/ServerMock.js +1 -1
  231. package/tests/unit/modeling/domain_model_entities.spec.ts +306 -1
  232. package/tests/unit/runtime/http-engine/HttpResponseParser.spec.ts +337 -0
  233. package/tests/unit/runtime/http-engine/abort.spec.ts +4 -5
  234. package/tests/unit/runtime/http-engine/auth.spec.ts +7 -58
  235. package/tests/unit/runtime/http-engine/certificates/CertificateManager.spec.ts +482 -0
  236. package/tests/unit/runtime/http-engine/certificates.spec.ts +2 -2
  237. package/tests/unit/runtime/http-engine/compression/CompressionManager.spec.ts +498 -0
  238. package/tests/unit/runtime/http-engine/compression.spec.ts +3 -72
  239. package/tests/unit/runtime/http-engine/connections/ConnectionManager.spec.ts +379 -0
  240. package/tests/unit/runtime/http-engine/connections/DigestAuthHandler.spec.ts +164 -0
  241. package/tests/unit/runtime/http-engine/core_engine.spec.ts +561 -0
  242. package/tests/unit/runtime/http-engine/engine_statuses.spec.ts +2 -2
  243. package/tests/unit/runtime/http-engine/events.spec.ts +2 -2
  244. package/tests/unit/runtime/http-engine/headers.spec.ts +2 -88
  245. package/tests/unit/runtime/http-engine/hosts.spec.ts +2 -2
  246. package/tests/unit/runtime/http-engine/http-get.spec.ts +2 -2
  247. package/tests/unit/runtime/http-engine/http-post.spec.ts +2 -2
  248. package/tests/unit/runtime/http-engine/logger.spec.ts +0 -8
  249. package/tests/unit/runtime/http-engine/message.spec.ts +2 -194
  250. package/tests/unit/runtime/http-engine/params.spec.ts +4 -4
  251. package/tests/unit/runtime/http-engine/proxy.spec.ts +15 -14
  252. package/tests/unit/runtime/http-engine/redirects.spec.ts +2 -2
  253. package/tests/unit/runtime/http-engine/responses.spec.ts +170 -277
  254. package/tests/unit/runtime/http-engine/timeout.spec.ts +3 -3
  255. package/tests/unit/runtime/http-engine/timings.spec.ts +2 -2
  256. package/tests/unit/runtime/proxy/HttpProjectProxy.spec.ts +25 -28
  257. package/tests/unit/runtime/runners/project_runner.spec.ts +2 -2
  258. package/tests/unit/runtime/runners/request_runner.spec.ts +2 -2
  259. package/build/src/runtime/http-engine/HttpEngine.d.ts +0 -311
  260. package/build/src/runtime/http-engine/HttpEngine.d.ts.map +0 -1
  261. package/build/src/runtime/http-engine/HttpEngine.js +0 -802
  262. package/build/src/runtime/http-engine/HttpEngine.js.map +0 -1
  263. package/src/runtime/http-engine/HttpEngine.ts +0 -952
  264. package/tests/unit/runtime/http-engine/connecting.spec.ts +0 -140
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpEngine.js","sourceRoot":"","sources":["../../../../src/runtime/http-engine/HttpEngine.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,iCAAiC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAgB,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,UAAU,EAAe,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAkFpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAEtD;;;GAGG;AACH,MAAM,OAAgB,UAAW,SAAQ,YAAY;IACnD,OAAO,CAAa;IACpB,IAAI,CAAmB;IACvB,MAAM,CAAQ;IAEd;;OAEG;IACH,WAAW,CAAa;IAExB,SAAS,GAAuB,EAAE,CAAA;IAClC;;OAEG;IACH,OAAO,GAAG,KAAK,CAAA;IACf;;OAEG;IACH,GAAG,CAAK;IAER,MAAM,CAAa;IACnB;;;;;;OAMG;IACH,UAAU,CAAoB;IAEpB,WAAW,GAAG,gBAAgB,CAAA;IACxC;;OAEG;IACH,WAAW,GAAG,KAAK,CAAA;IAEnB;;;OAGG;IACH,cAAc,GAAG,IAAI,OAAO,EAAE,CAAA;IAE9B;;OAEG;IACH,eAAe,CAAW;IAE1B;;OAEG;IACH,IAAI,eAAe;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,eAAe,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;OAEG;IACH,QAAQ,CAAS;IAEjB,KAAK,GAAiB,EAAE,CAAA;IAExB,IAAI,CAAoB;IAEd,YAAY,CAA6B;IACzC,YAAY,CAAoC;IAC1D,CAAC,iBAAiB,CAAC,CAAuB;IAEhC,OAAO,CAAc;IAE/B;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,KAA8B;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QACxB,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,YAAY,OAAqB,EAAE,OAA0B,EAAE;QAC7D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAA0B,EAAE;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QACD,OAAO,IAAI,aAAa,EAAE,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAa;QACnB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YACvB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IACzB,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,MAAM,CAAC,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAOD;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;QACxC,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,OAAM;QACR,CAAC;QACD,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,MAAc,EAAE,EAAE;gBACvD,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC/C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAY;QACjB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,MAAc,EAAE,EAAE;gBACtD,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC/C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAY;QACjB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,MAAc,EAAE,EAAE;gBAChE,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,OAAgB,EAAE,WAAW,GAAG,KAAK;QAClD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;gBACzC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAChE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,0BAA0B,EAAE,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,MAAc;QAC5B,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;QACxC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC7C,qDAAqD;QACrD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAqC;QAC1D,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACzG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YACjC,OAAM;QACR,CAAC;QAED,iCAAiC;QACjC,IAAI,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YACjC,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAyB;YACnC,QAAQ;YACR,WAAW,EAAE,IAAI;SAClB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;YACzD,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YAExB,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,QAAQ,CAAA;YAC/B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;YAC7B,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACjC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACtD,4DAA4D;YAC5D,oCAAoC;YACpC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAU,CAAA;YACxB,IAAI,CAAC,aAAa,CAAC;gBACjB,OAAO,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,wBAAwB;aAC9D,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,MAAM,EAAE,eAAe,GAAG,IAAI,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAA;QAEjD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CACtC,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,OAAO,CACxB,CAAA;QACD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAA;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACjC,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAC1C,QAAQ,EACR,QAAQ,CAAC,MAAM,EAAE,EACjB,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,YAAY,CACxB,CAAA;QACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEjD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;QAChC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAA;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC;;+BAES,CAAC,CAAA;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;QACjG,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC/C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACjC,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC5C,CAAC;QACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QACjC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAuB;QACnC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,OAAO,CAAA;QACX,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QACxB,CAAC;QACD,OAAO,GAAG,OAAO,IAAI,wBAAwB,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC/C,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACvB,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA;YACxC,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;YAChD,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAA;YAC1C,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAA;QAC5C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAA;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;YACzB,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;YAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YAC3F,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;YACnC,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,IAAI,YAAY,EAAE,CAAA;YAChC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;YACxE,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAA;gBAChD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;gBACrD,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAU,CAAA;YACxB,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,IAAI,CAAC,aAAa,CAAC;gBACjB,OAAO,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,wBAAwB;aAC9D,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAmB;QAC/B,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,GAAG,CAAC,EAClB,UAAU,GAAG,CAAC,EACd,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,GAAG,KAAK,CAAA;QACT,iHAAiH;QACjH,MAAM,gBAAgB,GAAG,QAAQ,IAAI,YAAY,CAAA;QACjD,qDAAqD;QACrD,MAAM,wBAAwB,GAAG,gBAAgB,IAAI,aAAa,CAAA;QAClE,MAAM,kBAAkB,GAAG,UAAU,IAAI,YAAY,CAAA;QACrD,IAAI,IAAI,GAAG,gBAAgB,IAAI,YAAY,CAAC,CAAC,CAAC,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClF,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,CAAA;QACV,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,aAAa,IAAI,kBAAkB,CAAC,CAAC,CAAC,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7F,IAAI,OAAO,GAAG,wBAAwB,IAAI,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7G,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;QACD,IAAI,IAAI,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1F,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,CAAA;QACV,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,CAAC,CAAA;QACZ,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACnF,GAAG,GAAG,mBAAmB,GAAG,eAAe,CAAA;QAC7C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;QAClB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,eAAuB,EAAE,QAAgB;QAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QACtE,MAAM,cAAc,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACrE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAa,EAAE,CAAA;YAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC/B,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEzC,0DAA0D;QAC1D,sBAAsB;QACtB,4CAA4C;QAC5C,2CAA2C;QAC3C,mBAAmB;QACnB,8CAA8C;QAC9C,yDAAyD;QACzD,wBAAwB;QACxB,8BAA8B;QAC9B,gCAAgC;QAChC,2BAA2B;QAC3B,6CAA6C;QAC7C,0DAA0D;QAC1D,4DAA4D;QAC5D,0CAA0C;QAC1C,wBAAwB;QACxB,UAAU;QACV,QAAQ;QACR,mBAAmB;QACnB,QAAQ;QACR,IAAI;QACJ,wCAAwC;QACxC,aAAa;QACb,gCAAgC;QAChC,0BAA0B;QAC1B,8BAA8B;QAC9B,IAAI;QACJ,6CAA6C;IAC/C,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,IAAY,EAAE,IAAyB;QAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC/C,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,0BAA0B;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,WAA4B,EAAE,OAA8B;QAChF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,EAAE,CAAA;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;YAClB,CAAC;YACD,MAAM,MAAM,GAAkB;gBAC5B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAc,CAAC;aAC3C,CAAA;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;YAC1C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;gBAClB,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAuB,CAAA;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;YACnB,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAA2B,CAAC,CAAA;YACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;wBAChB,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC7B,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;oBAClB,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAkB;oBAC5B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAA2B,CAAC;iBAC5D,CAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAA;gBAC9C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,EAAE,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QAC3E,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,KAAK,OAAO,EAAE,CAAC;YAC1D,uBAAuB;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,IAAI,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACjF,OAAO,SAAS,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,yCAAyC;QACzC,6DAA6D;QAC7D,4EAA4E;QAC5E,8EAA8E;QAC9E,iEAAiE;QACjE,6GAA6G;QAC7G,6GAA6G;QAC7G,8FAA8F;QAC9F,mCAAmC;QACnC,wIAAwI;QACxI,IAAI;QAEJ,MAAM,IAAI,iBAAiB,CAAC,yCAAyC,kBAAkB,EAAE,CAAC,CAAA;QAE1F,wBAAwB;QACxB,sBAAsB;QACtB,IAAI;QACJ,oDAAoD;QACpD,qDAAqD;QACrD,0BAA0B;IAC5B,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,GAAyB;QAC9C,MAAM,OAAO,GAA2B,EAAE,CAAA;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACnC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED;;;OAGG;IACO,aAAa;QACrB,IAAI,OAA6B,CAAA;QACjC,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAyB,CAAA;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;gBAC3B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAA;QACnC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACO,eAAe,CAAC,GAAmC;QAC3D,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;QAC3C,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,qFAAqF;YACrF,OAAM;QACR,CAAC;QAED,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;YACrC,YAAY,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;IACrC,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\n/* eslint-disable no-redeclare */\nimport { URL } from 'url'\nimport zlib from 'zlib'\nimport tls from 'tls'\nimport net from 'net'\nimport http from 'http'\nimport { EventEmitter } from 'events'\nimport { IHttpRequest, HttpRequest } from '../../models/HttpRequest.js'\nimport { IRequestBaseConfig } from '../../models/RequestConfig.js'\nimport { IRequestAuthorization } from '../../models/RequestAuthorization.js'\nimport { HostRule } from '../../models/HostRule.js'\nimport { HttpCertificate, IPemCertificate } from '../../models/ClientCertificate.js'\nimport { SentRequest } from '../../models/SentRequest.js'\nimport { Response } from '../../models/Response.js'\nimport { ErrorResponse } from '../../models/ErrorResponse.js'\nimport { RequestsSize } from '../../models/RequestsSize.js'\nimport { HttpResponse } from '../../models/HttpResponse.js'\nimport { ResponseRedirect } from '../../models/ResponseRedirect.js'\nimport { RequestLog, IRequestLog } from '../../models/RequestLog.js'\nimport { RequestTime } from '../../models/RequestTime.js'\nimport { SerializableError } from '../../models/SerializableError.js'\nimport { ResponseAuthorization } from '../../models/ResponseAuthorization.js'\nimport { DefaultLogger } from '../../lib/logging/DefaultLogger.js'\nimport { ILogger, Logger } from '../../lib/logging/Logger.js'\nimport { Headers } from '../../lib/headers/Headers.js'\nimport * as RequestUtils from './RequestUtils.js'\n// import { Cookies } from '../../lib/cookies/Cookies.js';\nimport { CookieParser } from '../../cookies/CookieParser.js'\nimport { getCodeMessage } from './HttpErrorCodes.js'\n\n/**\n * A note on cookies and redirects.\n * The architecture here assumes running requests is a test environment.\n * This means cookies are not processed by this class. This includes processing cookies during a redirect.\n * The class does parse response cookies before a redirect and sets new cookies in the redirected request only\n * if they match the domain + path. However, this class doesn't know anything about other cookies\n * that the application may have for the domain after redirection.\n */\nexport interface HttpEngineOptions extends IRequestBaseConfig {\n /**\n * The authorization configuration to apply to the request.\n */\n authorization?: IRequestAuthorization[]\n /**\n * Logger object.\n */\n logger?: ILogger\n /**\n * A certificate to use with the request.\n */\n certificates?: HttpCertificate[]\n}\n\nexport interface RequestStats {\n firstReceiveTime?: number\n lastReceivedTime?: number\n messageStart?: number\n sentTime?: number\n connectionTime?: number\n lookupTime?: number\n connectedTime?: number\n secureStartTime?: number\n secureConnectedTime?: number\n startTime?: number\n responseTime?: number\n receivingTime?: number\n}\n\nexport interface ResponseErrorInit {\n code?: number | string\n message?: string\n}\n\nexport interface BeforeRedirectDetail {\n location: string\n returnValue: boolean\n}\nexport interface HeadersReceivedDetail {\n value: string\n returnValue: boolean\n}\n\nexport interface IRequestAuthState {\n method: 'ntlm'\n state: number\n headers?: string\n challengeHeader?: string\n}\n\nexport declare interface HttpEngine {\n /**\n * Dispatched before a redirect occurs.\n * The detail object on the listener's only argument has the `location` property\n * with the new location for the request.\n * When the `returnValue` is set to `false` the request is cancelled.\n */\n on(event: 'beforeredirect', listener: (detail: BeforeRedirectDetail) => void): this\n on(event: 'loadstart' | 'firstbyte' | 'loadend', listener: () => void): this\n on(event: 'headersreceived', listener: (detail: HeadersReceivedDetail) => void): this\n /**\n * Dispatched before a redirect occurs.\n * The detail object on the listener's only argument has the `location` property\n * with the new location for the request.\n * When the `returnValue` is set to `false` the request is cancelled.\n */\n once(event: 'beforeredirect', listener: (detail: BeforeRedirectDetail) => void): this\n once(event: 'loadstart' | 'firstbyte' | 'loadend', listener: () => void): this\n once(event: 'headersreceived', listener: (detail: HeadersReceivedDetail) => void): this\n}\n\nexport const mainPromiseSymbol = Symbol('mainPromise')\n\n/**\n * The base class to make HTTP requests in API Client.\n * This can be extended to support particular implementations.\n */\nexport abstract class HttpEngine extends EventEmitter {\n request: HttpRequest\n opts: HttpEngineOptions\n logger: Logger\n\n /**\n * The current sent request\n */\n sentRequest: SentRequest\n\n redirects: ResponseRedirect[] = []\n /**\n * When true the request has been aborted.\n */\n aborted = false\n /**\n * Parsed value of the request URL.\n */\n uri: URL\n\n socket?: net.Socket\n /**\n * Host header can be different than registered URL because of\n * `hosts` rules.\n * If a rule changes host value of the URL the original URL host value\n * is used when generating the request and not overwritten one.\n * This way virtual hosts can be tested using hosts.\n */\n hostHeader: string | undefined\n\n protected hostTestReg = /^\\s*host\\s*:/im\n /**\n * Set when the request is redirected.\n */\n redirecting = false\n\n /**\n * The response headers.\n * The object may be empty when the response is not set.\n */\n currentHeaders = new Headers()\n\n /**\n * The response object build during the execution.\n */\n currentResponse?: Response\n\n /**\n * @return True if following redirects is allowed.\n */\n get followRedirects(): boolean {\n const { opts } = this\n if (typeof opts.followRedirects === 'boolean') {\n return opts.followRedirects\n }\n return true\n }\n\n /**\n * The request timeout.\n */\n get timeout(): number {\n const { opts } = this\n if (typeof opts.timeout === 'number') {\n return opts.timeout\n }\n return 0\n }\n\n /**\n * Keeps the raw body in a temporary buffer while processing the response.\n */\n _rawBody?: Buffer\n\n stats: RequestStats = {}\n\n auth?: IRequestAuthState\n\n protected mainResolver?: (log: IRequestLog) => void\n protected mainRejecter?: (err: SerializableError) => void;\n [mainPromiseSymbol]?: Promise<IRequestLog>\n\n protected _signal?: AbortSignal\n\n /**\n * The abort signal to set on this request.\n * Aborts the request when the signal fires.\n * @type {(AbortSignal | undefined)}\n */\n get signal(): AbortSignal | undefined {\n return this._signal\n }\n\n set signal(value: AbortSignal | undefined) {\n const old = this._signal\n if (old === value) {\n return\n }\n this._signal = value\n if (old) {\n old.removeEventListener('abort', this._abortHandler)\n }\n if (value) {\n value.addEventListener('abort', this._abortHandler)\n }\n }\n\n constructor(request: IHttpRequest, opts: HttpEngineOptions = {}) {\n super()\n this.request = new HttpRequest({ ...request })\n this.opts = opts\n this.logger = this.setupLogger(opts)\n this.sentRequest = new SentRequest({ ...request, startTime: Date.now() })\n this.uri = this.readUrl(request.url)\n this.hostHeader = RequestUtils.getHostHeader(request.url)\n\n this._abortHandler = this._abortHandler.bind(this)\n if (opts.signal) {\n this.signal = opts.signal\n }\n }\n\n /**\n * Creates a logger object to log debug output.\n */\n setupLogger(opts: HttpEngineOptions = {}): Logger {\n if (opts.logger) {\n return opts.logger\n }\n return new DefaultLogger()\n }\n\n /**\n * Updates the `uri` property from current request URL\n * @param value The request URL\n */\n readUrl(value: string): URL {\n const { hosts = [] } = this.opts\n const instances = hosts.map((i) => new HostRule(i))\n value = HostRule.applyHosts(value, instances)\n try {\n return new URL(value)\n } catch {\n throw new Error(`Unable to parse the URL: ${value}`)\n }\n }\n\n /**\n * Aborts current request.\n * It emits `error` event\n */\n abort(): void {\n this.aborted = true\n if (!this.socket) {\n return\n }\n this.socket.removeAllListeners()\n if (this.socket.destroyed) {\n this.socket = undefined\n return\n }\n this.socket.pause()\n this.socket.destroy()\n this.socket = undefined\n }\n\n /**\n * Handler for the `abort` event on the `AbortSignal`.\n */\n protected _abortHandler(): void {\n const e = new SerializableError('Request aborted', 3)\n this._errorRequest(e)\n this.abort()\n }\n\n /**\n * Sends the request.\n */\n abstract send(): Promise<IRequestLog>\n\n /**\n * Decompresses received body if `content-encoding` header is set.\n *\n * @param body A body buffer to decompress.\n * @return Promise resolved to parsed body\n */\n async decompress(body?: Buffer): Promise<Buffer | undefined> {\n const { aborted, currentHeaders } = this\n if (aborted || !currentHeaders || !body) {\n return\n }\n const ce = currentHeaders.get('content-encoding')\n if (!ce) {\n return body\n }\n if (ce.indexOf('deflate') !== -1) {\n return this.inflate(body)\n }\n if (ce.indexOf('gzip') !== -1) {\n return this.gunzip(body)\n }\n if (ce.indexOf('br') !== -1) {\n return this.brotli(body)\n }\n return body\n }\n\n /**\n * Decompress body with Inflate.\n * @param body Received response payload\n * @return Promise resolved to decompressed buffer.\n */\n inflate(body: Buffer): Promise<Buffer> {\n body = Buffer.from(body)\n return new Promise((resolve, reject) => {\n zlib.inflate(body, (err: Error | null, buffer: Buffer) => {\n if (err) {\n reject(new Error(err.message || String(err)))\n } else {\n resolve(buffer)\n }\n })\n })\n }\n\n /**\n * Decompress body with ZLib.\n * @param body Received response payload\n * @return Promise resolved to decompressed buffer.\n */\n gunzip(body: Buffer): Promise<Buffer> {\n body = Buffer.from(body)\n return new Promise((resolve, reject) => {\n zlib.gunzip(body, (err: Error | null, buffer: Buffer) => {\n if (err) {\n reject(new Error(err.message || String(err)))\n } else {\n resolve(buffer)\n }\n })\n })\n }\n\n /**\n * Decompress Brotli.\n * @param body Received response payload\n * @return Promise resolved to decompressed buffer.\n */\n brotli(body: Buffer): Promise<Buffer> {\n body = Buffer.from(body)\n return new Promise((resolve, reject) => {\n zlib.brotliDecompress(body, (err: Error | null, buffer: Buffer) => {\n if (err) {\n reject(err)\n } else {\n resolve(buffer)\n }\n })\n })\n }\n\n /**\n * Prepares headers list to be send to the remote machine.\n * If `defaultHeaders` option is set then it adds `user-agent` and `accept`\n * headers.\n * @param headers Parsed headers\n * @param withPayload Whether the request should send a body message\n */\n prepareHeaders(headers: Headers, withPayload = false): void {\n if (this.opts.defaultHeaders) {\n if (!headers.has('user-agent')) {\n if (this.opts.defaultUserAgent) {\n headers.set('user-agent', this.opts.defaultUserAgent)\n } else {\n headers.set('user-agent', 'api client')\n }\n }\n if (!headers.has('accept')) {\n if (this.opts.defaultAccept) {\n headers.set('accept', this.opts.defaultAccept)\n } else {\n headers.set('accept', '*/*')\n }\n }\n }\n if (withPayload) {\n if (!headers.has('content-type') && this.request.payloadOptions) {\n if (this.request.payloadOptions.mime) {\n headers.set('content-type', this.request.payloadOptions.mime)\n }\n }\n }\n }\n\n /**\n * Cleans the state after finished.\n */\n _cleanUp(): void {\n this.redirects = []\n this.currentHeaders = new Headers()\n this.currentResponse = undefined\n this._rawBody = undefined\n this.redirecting = false\n this.stats = {}\n this.mainRejecter = undefined\n this.mainResolver = undefined\n this._clearSocketEventListeners()\n }\n\n /**\n * Cleans up the state for redirect.\n */\n _cleanUpRedirect(): void {\n this.currentHeaders = new Headers()\n this.currentResponse = undefined\n this._rawBody = undefined\n this.stats = {}\n this._clearSocketEventListeners()\n }\n\n /**\n * Reports response when redirected.\n * @param status Received status code\n * @return True if the request has been redirected.\n */\n _reportRedirect(status: number): boolean {\n const { request, currentHeaders } = this\n if (!currentHeaders) {\n return false\n }\n const rerUrl = currentHeaders.get('location')\n // https://github.com/jarrodek/socket-fetch/issues/13\n const redirectOptions = RequestUtils.redirectOptions(status, request.method, rerUrl)\n if (!redirectOptions.redirect) {\n return false\n }\n this.redirecting = true\n setTimeout(() => this._redirectRequest(redirectOptions))\n return true\n }\n\n /**\n * Creates a response and adds it to the redirects list and redirects\n * the request to the new location.\n */\n async _redirectRequest(options: RequestUtils.RedirectOptions): Promise<void> {\n if (this.followRedirects === false) {\n this._publishResponse()\n return\n }\n const location = options.location && RequestUtils.getRedirectLocation(options.location, this.request.url)\n if (!location) {\n this._errorRequest({ code: 302 })\n return\n }\n\n // check if this is infinite loop\n if (RequestUtils.isRedirectLoop(location, this.redirects)) {\n this._errorRequest({ code: 310 })\n return\n }\n\n const detail: BeforeRedirectDetail = {\n location,\n returnValue: true,\n }\n this.emit('beforeredirect', detail)\n if (!detail.returnValue) {\n this._publishResponse()\n return\n }\n try {\n const responseCookies = this.currentHeaders.get('set-cookie')\n const response = await this._createRedirectResponse(location)\n this.redirects.push(response)\n this._cleanUpRedirect()\n if (responseCookies) {\n this._processRedirectCookies(responseCookies, location)\n }\n this.redirecting = false\n\n this.request.url = location\n this.sentRequest.url = location\n if (options.forceGet) {\n this.request.method = 'GET'\n }\n this.uri = this.readUrl(location)\n this.hostHeader = RequestUtils.getHostHeader(location)\n // No idea why but without setTimeout the program loses it's\n // scope after calling the function.\n setTimeout(() => this.send())\n } catch (e) {\n const error = e as Error\n this._errorRequest({\n message: (error && error.message) || 'Unknown error occurred',\n })\n }\n }\n\n /**\n * @param location The redirect location.\n * @return Redirect response object\n */\n async _createRedirectResponse(location: string): Promise<ResponseRedirect> {\n const { currentResponse = new Response() } = this\n\n const response = HttpResponse.fromValues(\n currentResponse.status,\n currentResponse.statusText,\n currentResponse.headers\n )\n if (currentResponse.payload) {\n response.payload = currentResponse.payload\n }\n\n const body = await this.decompress(this._rawBody)\n if (body) {\n await response.writePayload(body)\n currentResponse.payload = response.payload\n }\n\n const redirect = ResponseRedirect.fromValues(\n location,\n response.toJSON(),\n this.stats.startTime,\n this.stats.responseTime\n )\n redirect.timings = this._computeStats(this.stats)\n\n return redirect\n }\n\n /**\n * Creates a response object\n *\n * @return A response object.\n */\n async _createResponse(): Promise<Response | undefined> {\n if (this.aborted) {\n return\n }\n const { currentResponse } = this\n if (!currentResponse) {\n throw new Error(`Tried to create a response but no response data is set.`)\n }\n const { status } = currentResponse\n if (status === undefined) {\n throw new Error(`The response status is empty.\nIt means that the successful connection wasn't made.\nCheck your request parameters.`)\n }\n const body = await this.decompress(this._rawBody)\n const response = Response.fromValues(status, currentResponse.statusText, currentResponse.headers)\n response.timings = this._computeStats(this.stats)\n response.loadingTime = response.timings.total()\n if (body) {\n await response.writePayload(body)\n currentResponse.payload = response.payload\n }\n if (status === 401) {\n response.auth = this._getAuth()\n }\n return response\n }\n\n /**\n * Finishes the response with error message.\n */\n _errorRequest(opts: ResponseErrorInit): void {\n const { currentResponse } = this\n this.aborted = true\n let message\n if (opts.code && !opts.message) {\n message = getCodeMessage(opts.code)\n } else if (opts.message) {\n message = opts.message\n }\n message = message || 'Unknown error occurred'\n const error = new SerializableError(message, opts.code)\n const log = RequestLog.fromRequest(this.sentRequest.toJSON())\n const response = ErrorResponse.fromError(error)\n log.response = response\n if (currentResponse && currentResponse.status) {\n response.status = currentResponse.status\n response.statusText = currentResponse.statusText\n response.headers = currentResponse.headers\n response.payload = currentResponse.payload\n }\n this.finalizeRequest(log)\n this._cleanUp()\n }\n\n /**\n * Generates authorization info object from response.\n */\n _getAuth(): ResponseAuthorization {\n let auth = this.currentHeaders.get('www-authenticate')\n const result = new ResponseAuthorization()\n if (auth) {\n auth = auth.toLowerCase()\n if (auth.indexOf('ntlm') !== -1) {\n result.method = 'ntlm'\n } else if (auth.indexOf('basic') !== -1) {\n result.method = 'basic'\n } else if (auth.indexOf('digest') !== -1) {\n result.method = 'digest'\n }\n }\n return result\n }\n\n /**\n * Generate response object and publish it to the listeners.\n */\n async _publishResponse(): Promise<void> {\n if (this.aborted) {\n return\n }\n try {\n const response = await this._createResponse()\n if (!response) {\n return\n }\n const result = RequestLog.fromRequestResponse(this.sentRequest.toJSON(), response.toJSON())\n if (this.redirects.length) {\n result.redirects = this.redirects\n }\n result.size = new RequestsSize()\n if (this.sentRequest.httpMessage) {\n result.size.request = Buffer.from(this.sentRequest.httpMessage).length\n }\n if (response.payload) {\n if (typeof response.payload === 'string') {\n result.size.response = response.payload.length\n } else {\n result.size.response = response.payload.data.length\n }\n }\n this.finalizeRequest(result)\n } catch (e) {\n const error = e as Error\n // eslint-disable-next-line no-console\n console.error(error)\n this._errorRequest({\n message: (error && error.message) || 'Unknown error occurred',\n })\n }\n this.abort()\n this._cleanUp()\n }\n\n /**\n * Creates HAR 1.2 timings object from stats.\n * @param stats Timings object\n */\n _computeStats(stats: RequestStats): RequestTime {\n const {\n sentTime,\n messageStart,\n connectionTime = 0,\n lookupTime = 0,\n connectedTime,\n secureStartTime,\n secureConnectedTime,\n lastReceivedTime,\n firstReceiveTime,\n receivingTime,\n } = stats\n // in case the `send` event was not handled we use the `messageStart` as this is set when the request is created.\n const adjustedSentTime = sentTime || messageStart\n // when there was no body we check when the end time.\n const adjustedLastReceivedTime = lastReceivedTime || receivingTime\n const adjustedLookupTime = lookupTime || messageStart\n let send = adjustedSentTime && messageStart ? adjustedSentTime - messageStart : -1\n if (send < 0) {\n send = 0\n }\n const dns = lookupTime ? lookupTime - connectionTime : -1\n const connect = connectedTime && adjustedLookupTime ? connectedTime - adjustedLookupTime : -1\n let receive = adjustedLastReceivedTime && firstReceiveTime ? adjustedLastReceivedTime - firstReceiveTime : -1\n if (receive < 0) {\n receive = 0\n }\n let wait = firstReceiveTime && adjustedSentTime ? firstReceiveTime - adjustedSentTime : -1\n if (wait < 0) {\n wait = 0\n }\n let ssl = -1\n if (typeof secureStartTime === 'number' && typeof secureConnectedTime === 'number') {\n ssl = secureConnectedTime - secureStartTime\n }\n const result = new RequestTime()\n result.blocked = 0\n result.connect = connect\n result.receive = receive\n result.send = send\n result.wait = wait\n result.dns = dns\n result.ssl = ssl\n return result\n }\n\n /**\n * Handles cookie exchange when redirecting the request.\n * @param responseCookies Cookies received in the response\n * @param location Redirect destination\n */\n _processRedirectCookies(responseCookies: string, location: string): void {\n const received = CookieParser.parse(this.request.url, responseCookies)\n const forwardCookies = CookieParser.filterCookies(received, location)\n const headers = new Headers(this.request.toHeadersString())\n headers.delete('cookie')\n if (forwardCookies.length) {\n const parts: string[] = []\n forwardCookies.forEach((cookie) => {\n parts.push(cookie.toString())\n })\n headers.set('cookie', parts.join('; '))\n }\n this.request.headers = headers.toString()\n\n // let newParser = new Cookies(responseCookies, location);\n // newParser.filter();\n // const expired = newParser.clearExpired();\n // const hasCookie = headers.has('cookie');\n // if (hasCookie) {\n // const oldCookies = headers.get('cookie');\n // const oldParser = new Cookies(oldCookies, location);\n // oldParser.filter();\n // oldParser.clearExpired();\n // oldParser.merge(newParser);\n // newParser = oldParser;\n // // remove expired from the new response.\n // newParser.cookies = newParser.cookies.filter((c) => {\n // for (let i = 0, len = expired.length; i < len; i++) {\n // if (expired[i].name === c.name) {\n // return false;\n // }\n // }\n // return true;\n // });\n // }\n // const str = newParser.toString(true);\n // if (str) {\n // headers.set('cookie', str);\n // } else if (hasCookie) {\n // headers.delete('cookie');\n // }\n // this.request.headers = headers.toString();\n }\n\n /**\n * Checks certificate identity using TLS api.\n *\n * @param host Request host name\n * @param cert TLS certificate info object\n */\n _checkServerIdentity(host: string, cert: tls.PeerCertificate): Error | undefined {\n const err = tls.checkServerIdentity(host, cert)\n if (err) {\n return err\n }\n }\n\n /**\n * Clears event listeners of the socket object,\n */\n _clearSocketEventListeners(): void {\n if (!this.socket) {\n return\n }\n this.socket.removeAllListeners('error')\n this.socket.removeAllListeners('timeout')\n this.socket.removeAllListeners('end')\n }\n\n /**\n * Adds client certificate to the request configuration options.\n *\n * @param certificate List of certificate configurations.\n * @param options Request options. Cert agent options are added to this object.\n */\n _addClientCertificate(certificate: HttpCertificate, options: tls.ConnectionOptions): void {\n if (!certificate) {\n return\n }\n const cert = { ...certificate }\n if (cert.type === 'p12') {\n if (!options.pfx) {\n options.pfx = []\n }\n const struct: tls.PxfObject = {\n buf: Buffer.from(cert.cert.data as Buffer),\n }\n if (cert.cert.passphrase) {\n struct.passphrase = cert.cert.passphrase\n }\n if (!Array.isArray(options.pfx)) {\n if (options.pfx) {\n options.pfx = [options.pfx]\n } else {\n options.pfx = []\n }\n }\n options.pfx.push(struct)\n } else if (cert.type === 'pem') {\n const typed = cert as IPemCertificate\n if (!options.cert) {\n options.cert = []\n }\n if (!Array.isArray(options.cert)) {\n if (options.cert) {\n options.cert = [options.cert]\n } else {\n options.cert = []\n }\n }\n const added = Buffer.from(typed.cert.data as Buffer | Uint8Array)\n options.cert.push(added)\n if (typed.certKey) {\n if (!Array.isArray(options.key)) {\n if (options.key) {\n options.key = [options.key]\n } else {\n options.key = []\n }\n }\n const struct: tls.KeyObject = {\n pem: Buffer.from(typed.certKey.data as Buffer | Uint8Array),\n }\n if (typed.certKey.passphrase) {\n struct.passphrase = typed.certKey.passphrase\n }\n options.key.push(struct)\n }\n }\n }\n\n /**\n * @return Proxy authorization header value, when defined.\n */\n _proxyAuthHeader(): string | undefined {\n const { proxyUsername, proxyPassword = '', proxyAuthorization } = this.opts\n if (!proxyUsername || !proxyPassword) {\n if (!proxyAuthorization) {\n return undefined\n }\n return proxyAuthorization\n }\n\n if (!proxyAuthorization || proxyAuthorization === 'Basic') {\n // Basic authentication\n const token = Buffer.from(`${proxyUsername}:${proxyPassword}`).toString('base64')\n return `Basic ${token}`\n }\n\n // if (proxyAuthorization === 'Digest') {\n // // Digest authentication - this needs to be implemented.\n // // You'll need to keep track of the nonce, realm, etc. across requests.\n // // This is more complex and requires parsing the WWW-Authenticate header.\n // // Example (incomplete - needs proper nonce handling, etc.):\n // const ha1 = crypto.createHash('md5').update(`${proxyUsername}:${realm}:${proxyPassword}`).digest('hex');\n // const ha2 = crypto.createHash('md5').update(`${this.request.method}:${this.request.url}`).digest('hex');\n // const response = crypto.createHash('md5').update(`${ha1}:${nonce}:${ha2}`).digest('hex');\n // eslint-disable-next-line max-len\n // return `Digest username=\"${proxyUsername}\", realm=\"${realm}\", nonce=\"${nonce}\", uri=\"${this.request.url}\", response=\"${response}\"`;\n // }\n\n throw new SerializableError(`Unsupported proxy authorization type: ${proxyAuthorization}`)\n\n // if (!proxyUsername) {\n // return undefined;\n // }\n // const auth = `${proxyUsername}:${proxyPassword}`;\n // const hash = Buffer.from(auth).toString('base64');\n // return `Basic ${hash}`;\n }\n\n /**\n * Reads the raw headers from the node response and transforms them into the internal headers.\n */\n computeResponseHeaders(res: http.IncomingMessage): Headers {\n const headers: Record<string, string> = {}\n for (let i = 0, len = res.rawHeaders.length; i < len; i += 2) {\n const name = res.rawHeaders[i]\n const value = res.rawHeaders[i + 1]\n if (headers[name]) {\n headers[name] += `; ${value}`\n } else {\n headers[name] = value\n }\n }\n return new Headers(headers)\n }\n\n /**\n * Called with the `send()` function to initialize the main promise returned by the send function.\n * The send function returns a promise that is resolved when the request finish.\n */\n protected wrapExecution(): Promise<IRequestLog> {\n let promise: Promise<IRequestLog>\n if (this[mainPromiseSymbol]) {\n promise = this[mainPromiseSymbol] as Promise<IRequestLog>\n } else {\n promise = new Promise((resolve, reject) => {\n this.mainResolver = resolve\n this.mainRejecter = reject\n })\n this[mainPromiseSymbol] = promise\n }\n return promise\n }\n\n /**\n * Called by the request finalizer or error finalized to report the response.\n *\n * @param log Either the request execution log or an error.\n */\n protected finalizeRequest(log: RequestLog | SerializableError): void {\n const { mainRejecter, mainResolver } = this\n if (!mainRejecter || !mainResolver) {\n // console.error(`Trying to finalize the request but the main resolver is not set.`);\n return\n }\n\n if (log instanceof SerializableError) {\n mainRejecter(log)\n } else {\n mainResolver(log.toJSON())\n }\n this.mainRejecter = undefined\n this.mainResolver = undefined\n this[mainPromiseSymbol] = undefined\n }\n}\n"]}