@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,5 +1,5 @@
1
- import nock from 'nock'
2
1
  import { test } from '@japa/runner'
2
+ import sinon from 'sinon'
3
3
  import { nanoid } from '../../../../src/nanoid.js'
4
4
  import {
5
5
  HttpProject,
@@ -8,29 +8,31 @@ import {
8
8
  IHttpProjectProxyInit,
9
9
  ProxyService,
10
10
  Exception,
11
- RouteBuilder,
12
11
  } from '../../../../src/index.js'
12
+ import { HttpNode } from '../../../../src/sdk/HttpNode.js'
13
13
 
14
14
  test.group('net-store project', (group) => {
15
15
  let project: HttpProject
16
16
  const token = 'token-test'
17
17
  const storeHostname = 'http://localhost:1234'
18
18
  const storeUri = `${storeHostname}/`
19
+ let sandbox: sinon.SinonSandbox
19
20
 
20
21
  group.setup(async () => {
21
- if (!nock.isActive()) {
22
- nock.activate()
23
- }
22
+ sandbox = sinon.createSandbox()
24
23
  })
25
24
 
26
25
  group.teardown(async () => {
27
- nock.restore()
26
+ sandbox.restore()
28
27
  })
29
28
 
30
29
  group.each.setup(({ context }) => {
31
30
  project = HttpProject.fromName('p1')
32
31
  project.addRequest(`http://localhost:${context.httpConfig.httpPort}/v1/get`)
33
- nock.cleanAll()
32
+
33
+ // Reset the sandbox before each test
34
+ sandbox.restore()
35
+ sandbox = sinon.createSandbox()
34
36
  })
35
37
 
36
38
  test('returns an error when no pid', async ({ assert }) => {
@@ -40,8 +42,6 @@ test.group('net-store project', (group) => {
40
42
  pid: '',
41
43
  options: {},
42
44
  }
43
- const path = RouteBuilder.fileMedia(message.organization, project.key)
44
- const scope = nock(storeHostname).get(path).reply(200, project.toJSON())
45
45
  const service = new ProxyService()
46
46
  let error: Exception
47
47
  try {
@@ -53,7 +53,6 @@ test.group('net-store project', (group) => {
53
53
  assert.equal(error.status, 400, 'has the error code')
54
54
  assert.equal(error.message, 'Invalid request', 'has the message')
55
55
  assert.equal(error.help, 'The "pid" parameter is required.', 'has the detail')
56
- assert.isFalse(scope.isDone(), 'did not call the store')
57
56
  })
58
57
 
59
58
  test('returns an error when no options', async ({ assert }) => {
@@ -63,8 +62,6 @@ test.group('net-store project', (group) => {
63
62
  pid: project.key,
64
63
  organization: nanoid(),
65
64
  }
66
- const path = RouteBuilder.fileMedia(message.organization, project.key)
67
- const scope = nock(storeHostname).get(path).reply(200, project.toJSON())
68
65
  const service = new ProxyService()
69
66
  let error: Exception
70
67
  try {
@@ -76,7 +73,6 @@ test.group('net-store project', (group) => {
76
73
  assert.equal(error.status, 400, 'has the error code')
77
74
  assert.equal(error.message, 'Invalid request', 'has the message')
78
75
  assert.equal(error.help, 'The "options" parameter is required.', 'has the detail')
79
- assert.isFalse(scope.isDone(), 'did not call the store')
80
76
  })
81
77
 
82
78
  test('returns an error when no token', async ({ assert }) => {
@@ -86,8 +82,6 @@ test.group('net-store project', (group) => {
86
82
  options: {},
87
83
  organization: nanoid(),
88
84
  }
89
- const path = RouteBuilder.fileMedia(message.organization, project.key)
90
- const scope = nock(storeHostname).get(path).reply(200, project.toJSON())
91
85
  const service = new ProxyService()
92
86
  let error: Exception
93
87
  try {
@@ -98,7 +92,6 @@ test.group('net-store project', (group) => {
98
92
  }
99
93
  assert.equal(error.message, 'Invalid request', 'has the message')
100
94
  assert.equal(error.help, 'Set the authentication credentials.', 'has the detail')
101
- assert.isFalse(scope.isDone(), 'did not call the store')
102
95
  })
103
96
 
104
97
  test('returns an error when no store URI', async ({ assert }) => {
@@ -108,8 +101,6 @@ test.group('net-store project', (group) => {
108
101
  options: {},
109
102
  organization: nanoid(),
110
103
  }
111
- const path = RouteBuilder.fileMedia(message.organization, project.key)
112
- const scope = nock(storeHostname).get(path).reply(200, project.toJSON())
113
104
  const service = new ProxyService()
114
105
  let error: Exception
115
106
  try {
@@ -121,7 +112,6 @@ test.group('net-store project', (group) => {
121
112
  assert.equal(error.status, 400, 'has the error code')
122
113
  assert.equal(error.message, 'Invalid request', 'has the message')
123
114
  assert.equal(error.help, 'The store uri is missing.', 'has the detail')
124
- assert.isFalse(scope.isDone(), 'did not call the store')
125
115
  })
126
116
 
127
117
  test('returns an error when invalid store URI', async ({ assert }) => {
@@ -131,8 +121,6 @@ test.group('net-store project', (group) => {
131
121
  options: {},
132
122
  organization: nanoid(),
133
123
  }
134
- const path = RouteBuilder.fileMedia(message.organization, project.key)
135
- const scope = nock(storeHostname).get(path).reply(200, project.toJSON())
136
124
  const service = new ProxyService()
137
125
  let error: Exception
138
126
  try {
@@ -144,7 +132,6 @@ test.group('net-store project', (group) => {
144
132
  assert.equal(error.status, 400, 'has the error code')
145
133
  assert.equal(error.message, 'Invalid request', 'has the message')
146
134
  assert.equal(error.help, 'The store uri is invalid.', 'has the detail')
147
- assert.isFalse(scope.isDone(), 'did not call the store')
148
135
  })
149
136
 
150
137
  test('returns an error when no project', async ({ assert }) => {
@@ -154,10 +141,10 @@ test.group('net-store project', (group) => {
154
141
  options: {},
155
142
  organization: nanoid(),
156
143
  }
157
- const path = RouteBuilder.fileMedia(message.organization, project.key)
158
- nock(storeHostname)
159
- .get(path)
160
- .reply(404, new Exception('Not found', { status: 404 }).toJSON())
144
+
145
+ // Mock the HttpNode.get method to return a 404 error
146
+ const httpNodeStub = sandbox.stub(HttpNode.prototype, 'get').rejects(new Exception('Not found', { status: 404 }))
147
+
161
148
  const service = new ProxyService()
162
149
  let error: Exception
163
150
  try {
@@ -168,6 +155,7 @@ test.group('net-store project', (group) => {
168
155
  }
169
156
  assert.equal(error.status, 400, 'has the error code')
170
157
  assert.equal(error.message, 'Not found', 'has the message')
158
+ assert.isTrue(httpNodeStub.calledOnce, 'HTTP request was made')
171
159
  })
172
160
 
173
161
  test('proxies the project requests', async ({ assert }) => {
@@ -177,14 +165,23 @@ test.group('net-store project', (group) => {
177
165
  options: {},
178
166
  organization: nanoid(),
179
167
  }
180
- const path = RouteBuilder.fileMedia(message.organization, project.key)
181
- nock(storeHostname).get(path).reply(200, project.toJSON(), { 'x-version': '1' })
168
+
169
+ // Mock the HttpNode.get method to return a successful response
170
+ const mockHeaders = new (await import('../../../../src/lib/headers/Headers.js')).Headers()
171
+ mockHeaders.set('x-version', '1')
172
+ const httpNodeStub = sandbox.stub(HttpNode.prototype, 'get').resolves({
173
+ status: 200,
174
+ headers: mockHeaders,
175
+ body: JSON.stringify(project.toJSON()),
176
+ })
177
+
182
178
  const service = new ProxyService()
183
179
  const response = await service.proxyHttpProject(message, token, storeUri)
184
180
  const exe = response.result
185
181
  assert.typeOf(exe.started, 'number', 'has the response.started')
186
182
  assert.typeOf(exe.ended, 'number', 'has the response.ended')
187
183
  assert.typeOf(exe.iterations, 'array', 'has the response.iterations')
184
+ assert.isTrue(httpNodeStub.calledOnce, 'HTTP request was made')
188
185
  })
189
186
  })
190
187
 
@@ -16,7 +16,7 @@ import {
16
16
  FlowRequestDataEnum,
17
17
  InMemoryCookieJar,
18
18
  AmfNamespace as ns,
19
- DummyLogger,
19
+ createLogger,
20
20
  ProjectRequestRunner,
21
21
  Environment,
22
22
  IRunResult,
@@ -24,7 +24,7 @@ import {
24
24
  IBasicAuthorization,
25
25
  } from '../../../../src/index.js'
26
26
 
27
- const logger = new DummyLogger()
27
+ const logger = createLogger()
28
28
 
29
29
  test.group('Base runs', () => {
30
30
  test('runs a request from a folder', async ({ assert, httpConfig }) => {
@@ -9,7 +9,7 @@ import {
9
9
  FlowRequestDataEnum,
10
10
  InMemoryCookieJar,
11
11
  AmfNamespace as ns,
12
- DummyLogger,
12
+ createLogger,
13
13
  HttpRequestRunner,
14
14
  IHttpRequest,
15
15
  RequestLogKind,
@@ -24,7 +24,7 @@ import {
24
24
  RequestAuthorizationKind,
25
25
  } from '../../../../src/index.js'
26
26
 
27
- const logger = new DummyLogger()
27
+ const logger = createLogger()
28
28
 
29
29
  test.group('simple request run', () => {
30
30
  test('sends a simple request', async ({ assert, httpConfig }) => {
@@ -1,311 +0,0 @@
1
- import { URL } from 'url';
2
- import tls from 'tls';
3
- import net from 'net';
4
- import http from 'http';
5
- import { EventEmitter } from 'events';
6
- import { IHttpRequest, HttpRequest } from '../../models/HttpRequest.js';
7
- import { IRequestBaseConfig } from '../../models/RequestConfig.js';
8
- import { IRequestAuthorization } from '../../models/RequestAuthorization.js';
9
- import { HttpCertificate } from '../../models/ClientCertificate.js';
10
- import { SentRequest } from '../../models/SentRequest.js';
11
- import { Response } from '../../models/Response.js';
12
- import { ResponseRedirect } from '../../models/ResponseRedirect.js';
13
- import { RequestLog, IRequestLog } from '../../models/RequestLog.js';
14
- import { RequestTime } from '../../models/RequestTime.js';
15
- import { SerializableError } from '../../models/SerializableError.js';
16
- import { ResponseAuthorization } from '../../models/ResponseAuthorization.js';
17
- import { ILogger, Logger } from '../../lib/logging/Logger.js';
18
- import { Headers } from '../../lib/headers/Headers.js';
19
- import * as RequestUtils from './RequestUtils.js';
20
- /**
21
- * A note on cookies and redirects.
22
- * The architecture here assumes running requests is a test environment.
23
- * This means cookies are not processed by this class. This includes processing cookies during a redirect.
24
- * The class does parse response cookies before a redirect and sets new cookies in the redirected request only
25
- * if they match the domain + path. However, this class doesn't know anything about other cookies
26
- * that the application may have for the domain after redirection.
27
- */
28
- export interface HttpEngineOptions extends IRequestBaseConfig {
29
- /**
30
- * The authorization configuration to apply to the request.
31
- */
32
- authorization?: IRequestAuthorization[];
33
- /**
34
- * Logger object.
35
- */
36
- logger?: ILogger;
37
- /**
38
- * A certificate to use with the request.
39
- */
40
- certificates?: HttpCertificate[];
41
- }
42
- export interface RequestStats {
43
- firstReceiveTime?: number;
44
- lastReceivedTime?: number;
45
- messageStart?: number;
46
- sentTime?: number;
47
- connectionTime?: number;
48
- lookupTime?: number;
49
- connectedTime?: number;
50
- secureStartTime?: number;
51
- secureConnectedTime?: number;
52
- startTime?: number;
53
- responseTime?: number;
54
- receivingTime?: number;
55
- }
56
- export interface ResponseErrorInit {
57
- code?: number | string;
58
- message?: string;
59
- }
60
- export interface BeforeRedirectDetail {
61
- location: string;
62
- returnValue: boolean;
63
- }
64
- export interface HeadersReceivedDetail {
65
- value: string;
66
- returnValue: boolean;
67
- }
68
- export interface IRequestAuthState {
69
- method: 'ntlm';
70
- state: number;
71
- headers?: string;
72
- challengeHeader?: string;
73
- }
74
- export declare interface HttpEngine {
75
- /**
76
- * Dispatched before a redirect occurs.
77
- * The detail object on the listener's only argument has the `location` property
78
- * with the new location for the request.
79
- * When the `returnValue` is set to `false` the request is cancelled.
80
- */
81
- on(event: 'beforeredirect', listener: (detail: BeforeRedirectDetail) => void): this;
82
- on(event: 'loadstart' | 'firstbyte' | 'loadend', listener: () => void): this;
83
- on(event: 'headersreceived', listener: (detail: HeadersReceivedDetail) => void): this;
84
- /**
85
- * Dispatched before a redirect occurs.
86
- * The detail object on the listener's only argument has the `location` property
87
- * with the new location for the request.
88
- * When the `returnValue` is set to `false` the request is cancelled.
89
- */
90
- once(event: 'beforeredirect', listener: (detail: BeforeRedirectDetail) => void): this;
91
- once(event: 'loadstart' | 'firstbyte' | 'loadend', listener: () => void): this;
92
- once(event: 'headersreceived', listener: (detail: HeadersReceivedDetail) => void): this;
93
- }
94
- export declare const mainPromiseSymbol: unique symbol;
95
- /**
96
- * The base class to make HTTP requests in API Client.
97
- * This can be extended to support particular implementations.
98
- */
99
- export declare abstract class HttpEngine extends EventEmitter {
100
- request: HttpRequest;
101
- opts: HttpEngineOptions;
102
- logger: Logger;
103
- /**
104
- * The current sent request
105
- */
106
- sentRequest: SentRequest;
107
- redirects: ResponseRedirect[];
108
- /**
109
- * When true the request has been aborted.
110
- */
111
- aborted: boolean;
112
- /**
113
- * Parsed value of the request URL.
114
- */
115
- uri: URL;
116
- socket?: net.Socket;
117
- /**
118
- * Host header can be different than registered URL because of
119
- * `hosts` rules.
120
- * If a rule changes host value of the URL the original URL host value
121
- * is used when generating the request and not overwritten one.
122
- * This way virtual hosts can be tested using hosts.
123
- */
124
- hostHeader: string | undefined;
125
- protected hostTestReg: RegExp;
126
- /**
127
- * Set when the request is redirected.
128
- */
129
- redirecting: boolean;
130
- /**
131
- * The response headers.
132
- * The object may be empty when the response is not set.
133
- */
134
- currentHeaders: Headers;
135
- /**
136
- * The response object build during the execution.
137
- */
138
- currentResponse?: Response;
139
- /**
140
- * @return True if following redirects is allowed.
141
- */
142
- get followRedirects(): boolean;
143
- /**
144
- * The request timeout.
145
- */
146
- get timeout(): number;
147
- /**
148
- * Keeps the raw body in a temporary buffer while processing the response.
149
- */
150
- _rawBody?: Buffer;
151
- stats: RequestStats;
152
- auth?: IRequestAuthState;
153
- protected mainResolver?: (log: IRequestLog) => void;
154
- protected mainRejecter?: (err: SerializableError) => void;
155
- [mainPromiseSymbol]?: Promise<IRequestLog>;
156
- protected _signal?: AbortSignal;
157
- /**
158
- * The abort signal to set on this request.
159
- * Aborts the request when the signal fires.
160
- * @type {(AbortSignal | undefined)}
161
- */
162
- get signal(): AbortSignal | undefined;
163
- set signal(value: AbortSignal | undefined);
164
- constructor(request: IHttpRequest, opts?: HttpEngineOptions);
165
- /**
166
- * Creates a logger object to log debug output.
167
- */
168
- setupLogger(opts?: HttpEngineOptions): Logger;
169
- /**
170
- * Updates the `uri` property from current request URL
171
- * @param value The request URL
172
- */
173
- readUrl(value: string): URL;
174
- /**
175
- * Aborts current request.
176
- * It emits `error` event
177
- */
178
- abort(): void;
179
- /**
180
- * Handler for the `abort` event on the `AbortSignal`.
181
- */
182
- protected _abortHandler(): void;
183
- /**
184
- * Sends the request.
185
- */
186
- abstract send(): Promise<IRequestLog>;
187
- /**
188
- * Decompresses received body if `content-encoding` header is set.
189
- *
190
- * @param body A body buffer to decompress.
191
- * @return Promise resolved to parsed body
192
- */
193
- decompress(body?: Buffer): Promise<Buffer | undefined>;
194
- /**
195
- * Decompress body with Inflate.
196
- * @param body Received response payload
197
- * @return Promise resolved to decompressed buffer.
198
- */
199
- inflate(body: Buffer): Promise<Buffer>;
200
- /**
201
- * Decompress body with ZLib.
202
- * @param body Received response payload
203
- * @return Promise resolved to decompressed buffer.
204
- */
205
- gunzip(body: Buffer): Promise<Buffer>;
206
- /**
207
- * Decompress Brotli.
208
- * @param body Received response payload
209
- * @return Promise resolved to decompressed buffer.
210
- */
211
- brotli(body: Buffer): Promise<Buffer>;
212
- /**
213
- * Prepares headers list to be send to the remote machine.
214
- * If `defaultHeaders` option is set then it adds `user-agent` and `accept`
215
- * headers.
216
- * @param headers Parsed headers
217
- * @param withPayload Whether the request should send a body message
218
- */
219
- prepareHeaders(headers: Headers, withPayload?: boolean): void;
220
- /**
221
- * Cleans the state after finished.
222
- */
223
- _cleanUp(): void;
224
- /**
225
- * Cleans up the state for redirect.
226
- */
227
- _cleanUpRedirect(): void;
228
- /**
229
- * Reports response when redirected.
230
- * @param status Received status code
231
- * @return True if the request has been redirected.
232
- */
233
- _reportRedirect(status: number): boolean;
234
- /**
235
- * Creates a response and adds it to the redirects list and redirects
236
- * the request to the new location.
237
- */
238
- _redirectRequest(options: RequestUtils.RedirectOptions): Promise<void>;
239
- /**
240
- * @param location The redirect location.
241
- * @return Redirect response object
242
- */
243
- _createRedirectResponse(location: string): Promise<ResponseRedirect>;
244
- /**
245
- * Creates a response object
246
- *
247
- * @return A response object.
248
- */
249
- _createResponse(): Promise<Response | undefined>;
250
- /**
251
- * Finishes the response with error message.
252
- */
253
- _errorRequest(opts: ResponseErrorInit): void;
254
- /**
255
- * Generates authorization info object from response.
256
- */
257
- _getAuth(): ResponseAuthorization;
258
- /**
259
- * Generate response object and publish it to the listeners.
260
- */
261
- _publishResponse(): Promise<void>;
262
- /**
263
- * Creates HAR 1.2 timings object from stats.
264
- * @param stats Timings object
265
- */
266
- _computeStats(stats: RequestStats): RequestTime;
267
- /**
268
- * Handles cookie exchange when redirecting the request.
269
- * @param responseCookies Cookies received in the response
270
- * @param location Redirect destination
271
- */
272
- _processRedirectCookies(responseCookies: string, location: string): void;
273
- /**
274
- * Checks certificate identity using TLS api.
275
- *
276
- * @param host Request host name
277
- * @param cert TLS certificate info object
278
- */
279
- _checkServerIdentity(host: string, cert: tls.PeerCertificate): Error | undefined;
280
- /**
281
- * Clears event listeners of the socket object,
282
- */
283
- _clearSocketEventListeners(): void;
284
- /**
285
- * Adds client certificate to the request configuration options.
286
- *
287
- * @param certificate List of certificate configurations.
288
- * @param options Request options. Cert agent options are added to this object.
289
- */
290
- _addClientCertificate(certificate: HttpCertificate, options: tls.ConnectionOptions): void;
291
- /**
292
- * @return Proxy authorization header value, when defined.
293
- */
294
- _proxyAuthHeader(): string | undefined;
295
- /**
296
- * Reads the raw headers from the node response and transforms them into the internal headers.
297
- */
298
- computeResponseHeaders(res: http.IncomingMessage): Headers;
299
- /**
300
- * Called with the `send()` function to initialize the main promise returned by the send function.
301
- * The send function returns a promise that is resolved when the request finish.
302
- */
303
- protected wrapExecution(): Promise<IRequestLog>;
304
- /**
305
- * Called by the request finalizer or error finalized to report the response.
306
- *
307
- * @param log Either the request execution log or an error.
308
- */
309
- protected finalizeRequest(log: RequestLog | SerializableError): void;
310
- }
311
- //# sourceMappingURL=HttpEngine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpEngine.d.ts","sourceRoot":"","sources":["../../../../src/runtime/http-engine/HttpEngine.ts"],"names":[],"mappings":"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"}