@api-client/core 0.6.31 → 0.7.2

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 (324) hide show
  1. package/build/browser.d.ts +6 -14
  2. package/build/browser.js +11 -16
  3. package/build/browser.js.map +1 -1
  4. package/build/index.d.ts +8 -20
  5. package/build/index.js +13 -25
  6. package/build/index.js.map +1 -1
  7. package/build/src/amf/ApiSchemaValues.d.ts +2 -0
  8. package/build/src/amf/ApiSchemaValues.js +29 -23
  9. package/build/src/amf/ApiSchemaValues.js.map +1 -1
  10. package/build/src/authorization/lib/Utils.d.ts +1 -1
  11. package/build/src/cookies/CookieJar.d.ts +23 -0
  12. package/build/src/cookies/CookieJar.js +3 -0
  13. package/build/src/cookies/CookieJar.js.map +1 -0
  14. package/build/src/cookies/CookieParser.d.ts +67 -0
  15. package/build/src/cookies/CookieParser.js +316 -0
  16. package/build/src/cookies/CookieParser.js.map +1 -0
  17. package/build/src/cookies/InMemoryCookieJar.d.ts +12 -0
  18. package/build/src/cookies/InMemoryCookieJar.js +68 -0
  19. package/build/src/cookies/InMemoryCookieJar.js.map +1 -0
  20. package/build/src/cookies/Punycode.d.ts +12 -0
  21. package/build/src/cookies/Punycode.js +124 -0
  22. package/build/src/cookies/Punycode.js.map +1 -0
  23. package/build/src/data/RequestDataExtractor.d.ts +8 -7
  24. package/build/src/data/RequestDataExtractor.js +8 -10
  25. package/build/src/data/RequestDataExtractor.js.map +1 -1
  26. package/build/src/events/CustomEvent.js +5 -0
  27. package/build/src/events/CustomEvent.js.map +1 -1
  28. package/build/src/events/EventTypes.d.ts +43 -43
  29. package/build/src/events/amf/AmfEventTypes.d.ts +4 -4
  30. package/build/src/events/authorization/AuthorizationEventTypes.d.ts +4 -4
  31. package/build/src/events/cookies/CookieEventTypes.d.ts +9 -9
  32. package/build/src/events/encryption/EncryptionEventTypes.d.ts +2 -2
  33. package/build/src/events/environment/EnvironmentEventTypes.d.ts +1 -1
  34. package/build/src/events/models/ModelEventTypes.d.ts +7 -7
  35. package/build/src/events/process/ProcessEventTypes.d.ts +3 -3
  36. package/build/src/events/reporting/ReportingEventTypes.d.ts +1 -1
  37. package/build/src/events/telemetry/TelemetryEventTypes.d.ts +6 -6
  38. package/build/src/events/transport/TransportEventTypes.d.ts +6 -6
  39. package/build/src/events/transport/TransportEvents.d.ts +2 -2
  40. package/build/src/mocking/ProjectMock.d.ts +3 -2
  41. package/build/src/mocking/ProjectMock.js +3 -3
  42. package/build/src/mocking/ProjectMock.js.map +1 -1
  43. package/build/src/mocking/lib/App.d.ts +36 -0
  44. package/build/src/mocking/lib/App.js +70 -0
  45. package/build/src/mocking/lib/App.js.map +1 -0
  46. package/build/src/models/{arc/ArcProject.d.ts → AppProject.d.ts} +296 -134
  47. package/build/src/models/{arc/ArcProject.js → AppProject.js} +436 -79
  48. package/build/src/models/AppProject.js.map +1 -0
  49. package/build/src/models/AppRequest.d.ts +69 -0
  50. package/build/src/models/{arc/ArcHttpRequest.js → AppRequest.js} +53 -17
  51. package/build/src/models/AppRequest.js.map +1 -0
  52. package/build/src/models/ClientCertificate.d.ts +2 -2
  53. package/build/src/models/Environment.d.ts +8 -1
  54. package/build/src/models/Environment.js +21 -0
  55. package/build/src/models/Environment.js.map +1 -1
  56. package/build/src/models/HostRule.d.ts +2 -2
  57. package/build/src/models/HttpCookie.d.ts +63 -12
  58. package/build/src/models/HttpCookie.js +178 -44
  59. package/build/src/models/HttpCookie.js.map +1 -1
  60. package/build/src/models/HttpHistory.d.ts +8 -3
  61. package/build/src/models/HttpHistory.js +3 -3
  62. package/build/src/models/HttpHistory.js.map +1 -1
  63. package/build/src/models/HttpProject.d.ts +34 -1
  64. package/build/src/models/HttpProject.js +104 -8
  65. package/build/src/models/HttpProject.js.map +1 -1
  66. package/build/src/models/ProjectFolder.d.ts +2 -0
  67. package/build/src/models/ProjectFolder.js +14 -0
  68. package/build/src/models/ProjectFolder.js.map +1 -1
  69. package/build/src/models/ProjectItem.d.ts +2 -0
  70. package/build/src/models/ProjectItem.js +20 -0
  71. package/build/src/models/ProjectItem.js.map +1 -1
  72. package/build/src/models/ProjectParent.js.map +1 -1
  73. package/build/src/models/ProjectRequest.d.ts +3 -2
  74. package/build/src/models/ProjectRequest.js.map +1 -1
  75. package/build/src/models/Property.d.ts +2 -2
  76. package/build/src/models/Property.js +2 -2
  77. package/build/src/models/Property.js.map +1 -1
  78. package/build/src/models/Request.d.ts +16 -8
  79. package/build/src/models/Request.js +20 -15
  80. package/build/src/models/Request.js.map +1 -1
  81. package/build/src/models/RequestAuthorization.js.map +1 -1
  82. package/build/src/models/RequestUiMeta.d.ts +0 -14
  83. package/build/src/models/RequestUiMeta.js +1 -10
  84. package/build/src/models/RequestUiMeta.js.map +1 -1
  85. package/build/src/models/Server.d.ts +1 -2
  86. package/build/src/models/Server.js.map +1 -1
  87. package/build/src/models/http-actions/HttpActions.d.ts +256 -0
  88. package/build/src/models/http-actions/HttpActions.js +46 -0
  89. package/build/src/models/http-actions/HttpActions.js.map +1 -0
  90. package/build/src/models/http-actions/LegacyTranslator.d.ts +17 -0
  91. package/build/src/models/http-actions/LegacyTranslator.js +222 -0
  92. package/build/src/models/http-actions/LegacyTranslator.js.map +1 -0
  93. package/build/src/models/store/Backend.d.ts +136 -1
  94. package/build/src/models/store/File.d.ts +1 -1
  95. package/build/src/models/store/File.js +2 -0
  96. package/build/src/models/store/File.js.map +1 -1
  97. package/build/src/models/store/User.d.ts +3 -3
  98. package/build/src/runtime/http-engine/CoreEngine.d.ts +2 -0
  99. package/build/src/runtime/http-engine/CoreEngine.js +1 -0
  100. package/build/src/runtime/http-engine/CoreEngine.js.map +1 -1
  101. package/build/src/runtime/http-engine/HttpEngine.d.ts +13 -0
  102. package/build/src/runtime/http-engine/HttpEngine.js +39 -31
  103. package/build/src/runtime/http-engine/HttpEngine.js.map +1 -1
  104. package/build/src/runtime/{actions/ConditionRunner.d.ts → http-runner/ConditionCheck.d.ts} +2 -2
  105. package/build/src/runtime/{actions/ConditionRunner.js → http-runner/ConditionCheck.js} +2 -2
  106. package/build/src/runtime/http-runner/ConditionCheck.js.map +1 -0
  107. package/build/src/runtime/http-runner/HttpFlowRunner.d.ts +62 -0
  108. package/build/src/runtime/http-runner/HttpFlowRunner.js +217 -0
  109. package/build/src/runtime/http-runner/HttpFlowRunner.js.map +1 -0
  110. package/build/src/runtime/{node/RequestFactory.d.ts → http-runner/HttpRequestRunner.d.ts} +40 -54
  111. package/build/src/runtime/http-runner/HttpRequestRunner.js +316 -0
  112. package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -0
  113. package/build/src/runtime/http-runner/HttpRuntimeEnvironment.d.ts +25 -0
  114. package/build/src/runtime/http-runner/HttpRuntimeEnvironment.js +2 -0
  115. package/build/src/runtime/http-runner/HttpRuntimeEnvironment.js.map +1 -0
  116. package/build/src/runtime/http-runner/RequestAuthorizationProcessor.d.ts +56 -0
  117. package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js +143 -0
  118. package/build/src/runtime/http-runner/RequestAuthorizationProcessor.js.map +1 -0
  119. package/build/src/runtime/http-runner/RequestCookiesProcessor.d.ts +24 -0
  120. package/build/src/runtime/http-runner/RequestCookiesProcessor.js +65 -0
  121. package/build/src/runtime/http-runner/RequestCookiesProcessor.js.map +1 -0
  122. package/build/src/runtime/node/InteropInterfaces.d.ts +21 -6
  123. package/build/src/runtime/node/ProjectParallelRunner.js +3 -1
  124. package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -1
  125. package/build/src/runtime/node/ProjectRequestRunner.d.ts +24 -10
  126. package/build/src/runtime/node/ProjectRequestRunner.js +116 -45
  127. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
  128. package/build/src/runtime/node/ProjectRunner.d.ts +5 -7
  129. package/build/src/runtime/node/ProjectRunner.js +30 -14
  130. package/build/src/runtime/node/ProjectRunner.js.map +1 -1
  131. package/build/src/runtime/node/ProjectRunnerWorker.js +3 -0
  132. package/build/src/runtime/node/ProjectRunnerWorker.js.map +1 -1
  133. package/build/src/runtime/reporters/Reporter.d.ts +5 -0
  134. package/build/src/runtime/reporters/Reporter.js.map +1 -1
  135. package/build/src/runtime/store/AppSdk.d.ts +185 -0
  136. package/build/src/runtime/store/AppSdk.js +704 -0
  137. package/build/src/runtime/store/AppSdk.js.map +1 -0
  138. package/build/src/runtime/store/FilesSdk.js +4 -4
  139. package/build/src/runtime/store/FilesSdk.js.map +1 -1
  140. package/build/src/runtime/store/HistorySdk.js +2 -2
  141. package/build/src/runtime/store/HistorySdk.js.map +1 -1
  142. package/build/src/runtime/store/RouteBuilder.d.ts +17 -2
  143. package/build/src/runtime/store/RouteBuilder.js +60 -3
  144. package/build/src/runtime/store/RouteBuilder.js.map +1 -1
  145. package/build/src/runtime/store/Sdk.d.ts +5 -0
  146. package/build/src/runtime/store/Sdk.js +5 -0
  147. package/build/src/runtime/store/Sdk.js.map +1 -1
  148. package/build/src/runtime/store/SharedSdk.js +1 -1
  149. package/build/src/runtime/store/SharedSdk.js.map +1 -1
  150. package/build/src/runtime/store/UsersSdk.js +1 -1
  151. package/build/src/runtime/store/UsersSdk.js.map +1 -1
  152. package/package.json +2 -2
  153. package/src/amf/ApiSchemaValues.ts +41 -33
  154. package/src/cookies/CookieJar.ts +26 -0
  155. package/src/cookies/CookieParser.ts +327 -0
  156. package/src/cookies/InMemoryCookieJar.ts +70 -0
  157. package/src/cookies/Punycode.ts +133 -0
  158. package/src/data/RequestDataExtractor.ts +14 -15
  159. package/src/events/CustomEvent.ts +4 -0
  160. package/src/mocking/ProjectMock.ts +4 -3
  161. package/src/mocking/lib/App.ts +101 -0
  162. package/src/models/{arc/ArcProject.ts → AppProject.ts} +671 -225
  163. package/src/models/AppRequest.ts +176 -0
  164. package/src/models/ClientCertificate.ts +2 -2
  165. package/src/models/Environment.ts +24 -2
  166. package/src/models/HostRule.ts +2 -2
  167. package/src/models/HttpCookie.ts +210 -48
  168. package/src/models/HttpHistory.ts +12 -5
  169. package/src/models/HttpProject.ts +113 -10
  170. package/src/models/ProjectFolder.ts +16 -0
  171. package/src/models/ProjectItem.ts +18 -0
  172. package/src/models/ProjectParent.ts +4 -1
  173. package/src/models/ProjectRequest.ts +4 -3
  174. package/src/models/Property.ts +4 -4
  175. package/src/models/Request.ts +29 -19
  176. package/src/models/RequestAuthorization.ts +4 -4
  177. package/src/models/RequestUiMeta.ts +1 -21
  178. package/src/models/Server.ts +1 -2
  179. package/src/models/http-actions/HttpActions.ts +270 -0
  180. package/src/models/http-actions/LegacyTranslator.ts +223 -0
  181. package/src/models/store/Backend.ts +148 -2
  182. package/src/models/store/File.ts +3 -1
  183. package/src/models/store/User.ts +3 -3
  184. package/src/runtime/http-engine/CoreEngine.ts +3 -2
  185. package/src/runtime/http-engine/HttpEngine.ts +48 -30
  186. package/src/runtime/{actions/ConditionRunner.ts → http-runner/ConditionCheck.ts} +3 -3
  187. package/src/runtime/http-runner/HttpFlowRunner.ts +232 -0
  188. package/src/runtime/http-runner/HttpRequestRunner.ts +353 -0
  189. package/src/runtime/http-runner/HttpRuntimeEnvironment.ts +27 -0
  190. package/src/runtime/http-runner/RequestAuthorizationProcessor.ts +144 -0
  191. package/src/runtime/http-runner/RequestCookiesProcessor.ts +74 -0
  192. package/src/runtime/node/InteropInterfaces.ts +24 -6
  193. package/src/runtime/node/ProjectParallelRunner.ts +4 -2
  194. package/src/runtime/node/ProjectRequestRunner.ts +130 -60
  195. package/src/runtime/node/ProjectRunner.ts +37 -22
  196. package/src/runtime/node/ProjectRunnerWorker.ts +3 -0
  197. package/src/runtime/reporters/Reporter.ts +5 -0
  198. package/src/runtime/store/AppSdk.ts +709 -0
  199. package/src/runtime/store/FilesSdk.ts +4 -4
  200. package/src/runtime/store/HistorySdk.ts +2 -2
  201. package/src/runtime/store/RouteBuilder.ts +75 -3
  202. package/src/runtime/store/Sdk.ts +6 -0
  203. package/src/runtime/store/SharedSdk.ts +1 -1
  204. package/src/runtime/store/UsersSdk.ts +1 -1
  205. package/build/src/lib/cookies/Cookie.d.ts +0 -123
  206. package/build/src/lib/cookies/Cookie.js +0 -257
  207. package/build/src/lib/cookies/Cookie.js.map +0 -1
  208. package/build/src/lib/cookies/Cookies.d.ts +0 -90
  209. package/build/src/lib/cookies/Cookies.js +0 -310
  210. package/build/src/lib/cookies/Cookies.js.map +0 -1
  211. package/build/src/lib/cookies/Utils.d.ts +0 -47
  212. package/build/src/lib/cookies/Utils.js +0 -163
  213. package/build/src/lib/cookies/Utils.js.map +0 -1
  214. package/build/src/mocking/lib/Arc.d.ts +0 -9
  215. package/build/src/mocking/lib/Arc.js +0 -24
  216. package/build/src/mocking/lib/Arc.js.map +0 -1
  217. package/build/src/models/RequestActions.d.ts +0 -65
  218. package/build/src/models/RequestActions.js +0 -114
  219. package/build/src/models/RequestActions.js.map +0 -1
  220. package/build/src/models/actions/Action.d.ts +0 -75
  221. package/build/src/models/actions/Action.js +0 -188
  222. package/build/src/models/actions/Action.js.map +0 -1
  223. package/build/src/models/actions/ActionView.d.ts +0 -15
  224. package/build/src/models/actions/ActionView.js +0 -33
  225. package/build/src/models/actions/ActionView.js.map +0 -1
  226. package/build/src/models/actions/Condition.d.ts +0 -81
  227. package/build/src/models/actions/Condition.js +0 -185
  228. package/build/src/models/actions/Condition.js.map +0 -1
  229. package/build/src/models/actions/ConditionView.d.ts +0 -17
  230. package/build/src/models/actions/ConditionView.js +0 -34
  231. package/build/src/models/actions/ConditionView.js.map +0 -1
  232. package/build/src/models/actions/Enums.d.ts +0 -26
  233. package/build/src/models/actions/Enums.js +0 -31
  234. package/build/src/models/actions/Enums.js.map +0 -1
  235. package/build/src/models/actions/RunnableAction.d.ts +0 -59
  236. package/build/src/models/actions/RunnableAction.js +0 -106
  237. package/build/src/models/actions/RunnableAction.js.map +0 -1
  238. package/build/src/models/actions/runnable/DeleteCookieAction.d.ts +0 -44
  239. package/build/src/models/actions/runnable/DeleteCookieAction.js +0 -92
  240. package/build/src/models/actions/runnable/DeleteCookieAction.js.map +0 -1
  241. package/build/src/models/actions/runnable/Runnable.d.ts +0 -8
  242. package/build/src/models/actions/runnable/Runnable.js +0 -4
  243. package/build/src/models/actions/runnable/Runnable.js.map +0 -1
  244. package/build/src/models/actions/runnable/SetCookieAction.d.ts +0 -87
  245. package/build/src/models/actions/runnable/SetCookieAction.js +0 -176
  246. package/build/src/models/actions/runnable/SetCookieAction.js.map +0 -1
  247. package/build/src/models/actions/runnable/SetVariableAction.d.ts +0 -31
  248. package/build/src/models/actions/runnable/SetVariableAction.js +0 -63
  249. package/build/src/models/actions/runnable/SetVariableAction.js.map +0 -1
  250. package/build/src/models/actions/runnable/index.d.ts +0 -7
  251. package/build/src/models/actions/runnable/index.js +0 -2
  252. package/build/src/models/actions/runnable/index.js.map +0 -1
  253. package/build/src/models/arc/ArcHttpRequest.d.ts +0 -40
  254. package/build/src/models/arc/ArcHttpRequest.js.map +0 -1
  255. package/build/src/models/arc/ArcProject.js.map +0 -1
  256. package/build/src/runtime/actions/ActionRunner.d.ts +0 -17
  257. package/build/src/runtime/actions/ActionRunner.js +0 -74
  258. package/build/src/runtime/actions/ActionRunner.js.map +0 -1
  259. package/build/src/runtime/actions/ConditionRunner.js.map +0 -1
  260. package/build/src/runtime/actions/RunnableCondition.d.ts +0 -27
  261. package/build/src/runtime/actions/RunnableCondition.js +0 -50
  262. package/build/src/runtime/actions/RunnableCondition.js.map +0 -1
  263. package/build/src/runtime/actions/runnable/ActionRunnable.d.ts +0 -13
  264. package/build/src/runtime/actions/runnable/ActionRunnable.js +0 -13
  265. package/build/src/runtime/actions/runnable/ActionRunnable.js.map +0 -1
  266. package/build/src/runtime/actions/runnable/DeleteCookieRunnable.d.ts +0 -7
  267. package/build/src/runtime/actions/runnable/DeleteCookieRunnable.js +0 -36
  268. package/build/src/runtime/actions/runnable/DeleteCookieRunnable.js.map +0 -1
  269. package/build/src/runtime/actions/runnable/SetCookieRunnable.d.ts +0 -10
  270. package/build/src/runtime/actions/runnable/SetCookieRunnable.js +0 -89
  271. package/build/src/runtime/actions/runnable/SetCookieRunnable.js.map +0 -1
  272. package/build/src/runtime/actions/runnable/SetVariableRunnable.d.ts +0 -10
  273. package/build/src/runtime/actions/runnable/SetVariableRunnable.js +0 -49
  274. package/build/src/runtime/actions/runnable/SetVariableRunnable.js.map +0 -1
  275. package/build/src/runtime/modules/BasicAuthCache.d.ts +0 -39
  276. package/build/src/runtime/modules/BasicAuthCache.js +0 -122
  277. package/build/src/runtime/modules/BasicAuthCache.js.map +0 -1
  278. package/build/src/runtime/modules/ExecutionResponse.d.ts +0 -4
  279. package/build/src/runtime/modules/ExecutionResponse.js +0 -6
  280. package/build/src/runtime/modules/ExecutionResponse.js.map +0 -1
  281. package/build/src/runtime/modules/ModulesRegistry.d.ts +0 -93
  282. package/build/src/runtime/modules/ModulesRegistry.js +0 -69
  283. package/build/src/runtime/modules/ModulesRegistry.js.map +0 -1
  284. package/build/src/runtime/modules/RequestAuthorization.d.ts +0 -6
  285. package/build/src/runtime/modules/RequestAuthorization.js +0 -110
  286. package/build/src/runtime/modules/RequestAuthorization.js.map +0 -1
  287. package/build/src/runtime/modules/RequestCookies.d.ts +0 -17
  288. package/build/src/runtime/modules/RequestCookies.js +0 -134
  289. package/build/src/runtime/modules/RequestCookies.js.map +0 -1
  290. package/build/src/runtime/node/RequestFactory.js +0 -406
  291. package/build/src/runtime/node/RequestFactory.js.map +0 -1
  292. package/build/src/runtime/node/VariablesStore.d.ts +0 -9
  293. package/build/src/runtime/node/VariablesStore.js +0 -19
  294. package/build/src/runtime/node/VariablesStore.js.map +0 -1
  295. package/src/lib/cookies/Cookie.ts +0 -312
  296. package/src/lib/cookies/Cookies.ts +0 -326
  297. package/src/lib/cookies/Utils.ts +0 -168
  298. package/src/mocking/lib/Arc.ts +0 -28
  299. package/src/models/RequestActions.ts +0 -161
  300. package/src/models/actions/Action.ts +0 -213
  301. package/src/models/actions/ActionView.ts +0 -40
  302. package/src/models/actions/Condition.ts +0 -207
  303. package/src/models/actions/ConditionView.ts +0 -42
  304. package/src/models/actions/Enums.ts +0 -29
  305. package/src/models/actions/RunnableAction.ts +0 -144
  306. package/src/models/actions/runnable/DeleteCookieAction.ts +0 -113
  307. package/src/models/actions/runnable/Runnable.ts +0 -9
  308. package/src/models/actions/runnable/SetCookieAction.ts +0 -216
  309. package/src/models/actions/runnable/SetVariableAction.ts +0 -81
  310. package/src/models/arc/ArcHttpRequest.ts +0 -129
  311. package/src/models/arc/readme.md +0 -3
  312. package/src/runtime/actions/ActionRunner.ts +0 -83
  313. package/src/runtime/actions/RunnableCondition.ts +0 -56
  314. package/src/runtime/actions/runnable/ActionRunnable.ts +0 -19
  315. package/src/runtime/actions/runnable/DeleteCookieRunnable.ts +0 -39
  316. package/src/runtime/actions/runnable/SetCookieRunnable.ts +0 -92
  317. package/src/runtime/actions/runnable/SetVariableRunnable.ts +0 -53
  318. package/src/runtime/modules/BasicAuthCache.ts +0 -129
  319. package/src/runtime/modules/ExecutionResponse.ts +0 -4
  320. package/src/runtime/modules/ModulesRegistry.ts +0 -136
  321. package/src/runtime/modules/RequestAuthorization.ts +0 -106
  322. package/src/runtime/modules/RequestCookies.ts +0 -146
  323. package/src/runtime/node/RequestFactory.ts +0 -432
  324. package/src/runtime/node/VariablesStore.ts +0 -25
@@ -1,432 +0,0 @@
1
- import { IRequest } from '../../models/Request.js';
2
- import { IHttpRequest } from '../../models/HttpRequest.js';
3
- import { IRequestConfig, IRequestBaseConfig } from '../../models/RequestConfig.js';
4
- import { IRequestAuthorization } from '../../models/RequestAuthorization.js';
5
- import { IRequestActions } from '../../models/RequestActions.js';
6
- import { HttpCertificate } from '../../models/ClientCertificate.js';
7
- import { IRequestLog } from '../../models/RequestLog.js';
8
- import { VariablesProcessor } from '../variables/VariablesProcessor.js';
9
- import { IRunnableAction } from '../../models/actions/RunnableAction.js';
10
- import { Action } from '../../models/actions/Action.js';
11
- import { RunnableCondition } from '../actions/RunnableCondition.js';
12
- import { ActionRunner } from '../actions/ActionRunner.js';
13
- import { HttpEngineOptions } from '../http-engine/HttpEngine.js';
14
- import { CoreEngine } from '../http-engine/CoreEngine.js';
15
- import { ModulesRegistry, RegisteredRequestModule, RegisteredResponseModule, ExecutionContext, RegistryPermission } from '../modules/ModulesRegistry.js';
16
- import { ExecutionResponse } from '../modules/ExecutionResponse.js';
17
- import { Events } from '../../events/Events.js';
18
- import { Logger } from '../../lib/logging/Logger.js';
19
-
20
- /**
21
- * The main class to make HTTP requests in the API Client.
22
- * This factory includes all logic components to perform the entire HTTP request lifecycle. This includes:
23
- *
24
- * - variables evaluation on the request object
25
- * - running request actions
26
- * - running request modules
27
- * - choosing the execution engine
28
- * - performing the request
29
- * - running response actions
30
- * - running response modules
31
- * - reporting the response
32
- *
33
- * This class may not be used when not necessary but the logic should take care of the items listed above.
34
- *
35
- * This class splits the `IRequest` object into it's components and use them when defined.
36
- * This way it is possible to use the factory only with the `IHttpRequest` interface.
37
- */
38
- export class RequestFactory {
39
- /**
40
- * The main events bus.
41
- * This target is used to dispatch the events on.
42
- * The runtime should handle the events and proxy them to the corresponding context store.
43
- */
44
- eventTarget: EventTarget;
45
- /**
46
- * Request processing configuration.
47
- */
48
- config?: IRequestConfig;
49
- /**
50
- * Request authorization configuration
51
- */
52
- authorization?: IRequestAuthorization[];
53
- /**
54
- * Actions to be performed when the request is executed.
55
- */
56
- actions?: IRequestActions;
57
- /**
58
- * The list of certificates to use with the request.
59
- */
60
- certificates?: HttpCertificate[];
61
- /**
62
- * The cumulative list of all variables to be applied to the request and other properties.
63
- * The variables must be already processed for variables in values (evaluated).
64
- *
65
- * These variables are passed by reference. Changes made anywhere to the variables will result
66
- * with updating this list.
67
- */
68
- variables?: Record<string, string>;
69
- /**
70
- * The variables processor instance.
71
- */
72
- variablesProcessor = new VariablesProcessor();
73
-
74
- logger?: Logger;
75
-
76
- /**
77
- * The abort signal to set on this request.
78
- * Aborts the request when the signal fires.
79
- * @type {(AbortSignal | undefined)}
80
- */
81
- signal?: AbortSignal;
82
-
83
- /**
84
- * Creates an instance from the IRequest object with setting the corresponding variables.
85
- * @param eventTarget The main events bus.
86
- * This target is used to dispatch the events on.
87
- * The runtime should handle the events and proxy them to the corresponding context store.
88
- * @param request The request object to use.
89
- */
90
- static fromRequest(eventTarget: EventTarget, request: IRequest): RequestFactory {
91
- const instance = new RequestFactory(eventTarget);
92
- instance.actions = request.actions;
93
- instance.authorization = request.authorization;
94
- if (request.clientCertificate) {
95
- instance.certificates = [request.clientCertificate];
96
- }
97
- instance.config = request.config;
98
- return instance;
99
- }
100
-
101
- /**
102
- * @param eventTarget The main events bus.
103
- * This target is used to dispatch the events on.
104
- * The runtime should handle the events and proxy them to the corresponding context store.
105
- */
106
- constructor(eventTarget: EventTarget) {
107
- this.eventTarget = eventTarget;
108
- }
109
-
110
- /**
111
- * Runs the request and all tasks around the HTTp request execution like gathering
112
- * environment information, running actions, and HTTP modules.
113
- *
114
- * @param request The request object to execute.
115
- * @returns The execution log.
116
- */
117
- async run(request: IHttpRequest): Promise<IRequestLog> {
118
- const requestCopy = await this.processRequest(request);
119
- const result = await this.executeRequest(requestCopy);
120
- await this.processResponse(result);
121
- return result;
122
- }
123
-
124
- /**
125
- * @returns the configuration processed by the variables processor.
126
- */
127
- async readConfig(): Promise<IRequestConfig | undefined> {
128
- const { config, variables, variablesProcessor } = this;
129
- if (!config) {
130
- return undefined;
131
- }
132
- if (!variables) {
133
- return config;
134
- }
135
- return variablesProcessor.evaluateVariablesWithContext(config, variables);
136
- }
137
-
138
- /**
139
- * @returns the authorization data processed by the variables processor.
140
- */
141
- async readAuthorization(): Promise<IRequestAuthorization[] | undefined> {
142
- const { variables, authorization, variablesProcessor } = this;
143
- if (!Array.isArray(authorization) || !authorization.length) {
144
- return undefined;
145
- }
146
- if (!variables) {
147
- return authorization;
148
- }
149
-
150
- const ps = authorization.filter(i => i.enabled !== false).map(async (item) => {
151
- const copy = await variablesProcessor.evaluateVariablesWithContext(item, variables);
152
- if (copy.config) {
153
- copy.config = await variablesProcessor.evaluateVariablesWithContext(copy.config, variables);
154
- }
155
- return copy;
156
- });
157
- const result = await Promise.all(ps);
158
- return result;
159
- }
160
-
161
- /**
162
- * @returns the actions for the passed type processed by the variables processor.
163
- */
164
- async readActions(type: keyof IRequestActions): Promise<IRunnableAction[] | undefined> {
165
- const { variables, actions, variablesProcessor } = this;
166
- if (!actions) {
167
- return undefined;
168
- }
169
- const list = actions[type];
170
- if (!Array.isArray(list) || !list.length) {
171
- return undefined;
172
- }
173
- if (!variables) {
174
- return list;
175
- }
176
- const ps = list.filter(i => i.enabled !== false).map(async (item) => {
177
- const copy = await variablesProcessor.evaluateVariablesWithContext(item, variables);
178
- if (copy.condition) {
179
- copy.condition = await variablesProcessor.evaluateVariablesWithContext(copy.condition, variables);
180
- }
181
- if (Array.isArray(copy.actions) && copy.actions.length) {
182
- const actionsPs = copy.actions.map(async (action) => {
183
- const actionCopy = await variablesProcessor.evaluateVariablesWithContext(action, variables);
184
- if (actionCopy.config) {
185
- actionCopy.config = await variablesProcessor.evaluateVariablesWithContext(actionCopy.config, variables);
186
- }
187
- return actionCopy;
188
- });
189
- copy.actions = await Promise.all(actionsPs);
190
- }
191
- return copy;
192
- });
193
- const result: IRunnableAction[] = await Promise.all(ps);
194
- return result;
195
- }
196
-
197
- /**
198
- * Prepares the request object before making the HTTP request
199
- * and runs actions and modules.
200
- *
201
- * @param request The request to execute.
202
- * @returns the copy of the request object.
203
- */
204
- async processRequest(request: IHttpRequest): Promise<IHttpRequest> {
205
- const copy = await this.processRequestVariables(request);
206
- await this.processRequestLogic(copy);
207
- return copy;
208
- }
209
-
210
- /**
211
- * Runs the request through the variables processor.
212
- * @returns A copy of the passed request with possibly changed values.
213
- */
214
- async processRequestVariables(request: IHttpRequest): Promise<IHttpRequest> {
215
- const { variables, variablesProcessor } = this;
216
- let copy: IHttpRequest = { ...request };
217
- if (variables) {
218
- copy = await variablesProcessor.evaluateVariablesWithContext(copy, variables);
219
- }
220
- return copy;
221
- }
222
-
223
- /**
224
- * Executes the request actions and modules.
225
- */
226
- async processRequestLogic(request: IHttpRequest): Promise<void> {
227
- const actions = await this.readActions('request');
228
- if (Array.isArray(actions) && actions.length) {
229
- await this.processRequestActions(request, actions);
230
- }
231
- await this.processRequestModules(request);
232
- }
233
-
234
- /**
235
- * Runs each action one by one.
236
- * @param request The request object associated with actions
237
- * @param actions The list of actions to execute.
238
- */
239
- async processRequestActions(request: IHttpRequest, actions: IRunnableAction[]): Promise<void> {
240
- const runnables = actions.filter((item) => item.enabled !== false && !!item.actions && !!item.actions.length);
241
- if (!runnables.length) {
242
- return;
243
- }
244
- for (let i = 0, len = runnables.length; i < len; i++) {
245
- const runnable = new RunnableCondition(runnables[i]);
246
- const passed = await runnable.satisfied(request);
247
- if (!passed) {
248
- continue;
249
- }
250
- const execs = runnable.actions.filter(i => i.enabled !== false);
251
- execs.sort(Action.sortActions);
252
- for (let j = 0, eLen = execs.length; j < eLen; j++) {
253
- const action = execs[j];
254
- const runner = new ActionRunner(action, this.eventTarget);
255
- try {
256
- await runner.request(request);
257
- } catch (e) {
258
- if (action.failOnError) {
259
- throw e;
260
- } else {
261
- const err = e as Error;
262
- console.error(`Unable to run a request action: ${action.name || 'unknown name'}: ${err.message}`);
263
- }
264
- }
265
- }
266
- }
267
- }
268
-
269
- async processRequestModules(request: IHttpRequest): Promise<void> {
270
- const modules = ModulesRegistry.get(ModulesRegistry.request);
271
- for (const [id, main] of modules) {
272
- const mod = main as RegisteredRequestModule;
273
- const context = await this.buildExecutionContext(mod.permissions);
274
-
275
- let result: number|undefined;
276
- try {
277
- result = await mod.fn(request, context);
278
- } catch (e) {
279
- // eslint-disable-next-line no-console
280
- const err = e as Error;
281
- console.warn(e);
282
- const message = `Request module ${id} reported error: ${err.message}`;
283
- throw new Error(message);
284
- }
285
- if (result === ExecutionResponse.ABORT) {
286
- return;
287
- }
288
- if (Array.isArray(context.certificates)) {
289
- if (!Array.isArray(this.certificates)) {
290
- this.certificates = [];
291
- }
292
- this.certificates.concat(context.certificates);
293
- }
294
- }
295
- }
296
-
297
- /**
298
- * Prepares the HTTP engine configuration and executes the request,
299
- * @param request The request to execute.
300
- * @returns The execution log.
301
- */
302
- async executeRequest(request: IHttpRequest): Promise<IRequestLog> {
303
- const opts = await this.prepareEngineConfig();
304
- const engine = new CoreEngine(request, opts);
305
- return engine.send();
306
- }
307
-
308
- /**
309
- * Creates a configuration options for the HTTP engine.
310
- */
311
- async prepareEngineConfig(): Promise<HttpEngineOptions> {
312
- const { certificates, logger, signal } = this;
313
- const auth = await this.readAuthorization();
314
- const config = await this.readConfig();
315
- const opts: HttpEngineOptions = {};
316
- if (Array.isArray(certificates) && certificates.length) {
317
- opts.certificates = certificates;
318
- }
319
- if (Array.isArray(auth)) {
320
- opts.authorization = auth;
321
- }
322
- if (logger) {
323
- opts.logger = logger;
324
- }
325
- if (signal) {
326
- opts.signal = signal;
327
- }
328
- if (!config || config.enabled === false) {
329
- return opts;
330
- }
331
- const exclude = ['kind', 'enabled', 'ignoreSessionCookies', 'variables'];
332
- (Object.keys(config) as (keyof IRequestBaseConfig)[]).forEach(key => {
333
- if (exclude.includes(key)) {
334
- return;
335
- }
336
- const value: any = config[key];
337
- opts[key] = value;
338
- });
339
- return opts;
340
- }
341
-
342
- async processResponse(log: IRequestLog): Promise<void> {
343
- const { request, response } = log;
344
- if (!request || !response) {
345
- return;
346
- }
347
- await this.processResponseActions(log);
348
- await this.processResponseModules(log);
349
- }
350
-
351
- async processResponseActions(log: IRequestLog): Promise<void> {
352
- const actions = await this.readActions('response');
353
- if (!Array.isArray(actions) || !actions.length) {
354
- return;
355
- }
356
- if (!log.request || !log.response) {
357
- return;
358
- }
359
- const runnables = actions.filter((item) => item.enabled !== false && !!item.actions && !!item.actions.length);
360
- if (!runnables.length) {
361
- return;
362
- }
363
- for (let i = 0, len = runnables.length; i < len; i++) {
364
- const runnable = new RunnableCondition(runnables[i]);
365
- const passed = await runnable.satisfied(log.request, log.response);
366
- if (!passed) {
367
- continue;
368
- }
369
- const execs = runnable.actions.filter(i => i.enabled !== false);
370
- execs.sort(Action.sortActions);
371
- for (let j = 0, eLen = execs.length; j < eLen; j++) {
372
- const action = execs[j];
373
- const runner = new ActionRunner(action, this.eventTarget);
374
- try {
375
- await runner.response(log);
376
- } catch (e) {
377
- if (action.failOnError) {
378
- throw e;
379
- } else {
380
- const err = e as Error;
381
- console.error(`Unable to run a request action: ${action.name || 'unknown name'}: ${err.message}`);
382
- }
383
- }
384
- }
385
- }
386
- }
387
-
388
- async processResponseModules(log: IRequestLog): Promise<void> {
389
- const modules = ModulesRegistry.get(ModulesRegistry.response);
390
- for (const [id, main] of modules) {
391
- const mod = main as RegisteredResponseModule;
392
- const context = await this.buildExecutionContext(mod.permissions);
393
-
394
- let result: number|undefined;
395
- try {
396
- result = await mod.fn(log, context);
397
- } catch (e) {
398
- // eslint-disable-next-line no-console
399
- const err = e as Error;
400
- console.warn(e);
401
- const message = `Response module ${id} reported error: ${err.message}`;
402
- throw new Error(message);
403
- }
404
- if (result === ExecutionResponse.ABORT) {
405
- return;
406
- }
407
- }
408
- }
409
-
410
- async buildExecutionContext(permissions: RegistryPermission[]): Promise<ExecutionContext> {
411
- const result: ExecutionContext = {
412
- eventsTarget: this.eventTarget,
413
- };
414
- const hasEnvironment = permissions.includes(RegistryPermission.environment);
415
- if (hasEnvironment) {
416
- result.variables = this.variables;
417
- }
418
- if (permissions.includes(RegistryPermission.events)) {
419
- result.Events = {
420
- Authorization: Events.Authorization,
421
- ClientCertificate: Events.Model.ClientCertificate,
422
- Cookie: Events.Cookie,
423
- Encryption: Events.Encryption,
424
- Process: Events.Process,
425
- Environment: Events.Environment,
426
- };
427
- }
428
- result.authorization = this.authorization;
429
- result.config = await this.readConfig();
430
- return result;
431
- }
432
- }
@@ -1,25 +0,0 @@
1
- import { HttpProject } from '../../models/HttpProject.js';
2
- import { ProjectFolder } from '../../models/ProjectFolder.js';
3
-
4
- export class VariablesStore {
5
- private static cache = new WeakMap<HttpProject | ProjectFolder, Record<string, string>>();
6
-
7
- static get(target: HttpProject | ProjectFolder): Record<string, string> {
8
- if (!this.cache.has(target)) {
9
- this.cache.set(target, {});
10
- }
11
- return this.cache.get(target) as Record<string, string>;
12
- }
13
-
14
- static set(target: HttpProject | ProjectFolder, variables: Record<string, string>): void {
15
- this.cache.set(target, variables);
16
- }
17
-
18
- static has(target: HttpProject | ProjectFolder): boolean {
19
- return this.cache.has(target);
20
- }
21
-
22
- static delete(target: HttpProject | ProjectFolder): void {
23
- this.cache.delete(target);
24
- }
25
- }