@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
@@ -0,0 +1,143 @@
1
+ import { Headers } from '../../lib/headers/Headers.js';
2
+ /**
3
+ * Applies authorization data to the HttpRequest from
4
+ * request authorization configuration.
5
+ */
6
+ export class RequestAuthorizationProcessor {
7
+ /**
8
+ * Applies the auth data from the authorization config.
9
+ *
10
+ * Note, this mutates the original request. Make a copy of you don't want to change
11
+ * the values in the source request.
12
+ *
13
+ * Note, this does not process client certificates. Use the `#readCertificates()` method to
14
+ * get a certificate to use with the HTTP request,
15
+ *
16
+ * @param request The request to apply the authorization to.
17
+ * @returns The same request (a reference)
18
+ */
19
+ static setAuthorization(request, authorization) {
20
+ if (!Array.isArray(authorization) || !authorization.length) {
21
+ return request;
22
+ }
23
+ for (const auth of authorization) {
24
+ if (auth.enabled === false || !auth.config) {
25
+ continue;
26
+ }
27
+ switch (auth.type) {
28
+ case 'basic':
29
+ this.processBasicAuth(request, auth.config);
30
+ break;
31
+ case 'oauth 2':
32
+ this.processOAuth2(request, auth.config);
33
+ break;
34
+ case 'open id':
35
+ this.processOpenId(request, auth.config);
36
+ break;
37
+ case 'bearer':
38
+ this.processBearer(request, auth.config);
39
+ break;
40
+ default:
41
+ }
42
+ }
43
+ return request;
44
+ }
45
+ /**
46
+ * Reads the client certificate from the authorization configuration.
47
+ *
48
+ * @param authorization The HTTP request authorization configuration.
49
+ * @returns The certificate to use with the HTTP request or undefined when not configured.
50
+ */
51
+ static readCertificate(authorization) {
52
+ if (!Array.isArray(authorization) || !authorization.length) {
53
+ return undefined;
54
+ }
55
+ const item = authorization.find(i => i.enabled !== false && i.type === 'client certificate');
56
+ if (!item || !item.config) {
57
+ return undefined;
58
+ }
59
+ const init = item.config;
60
+ return init.certificate;
61
+ }
62
+ /**
63
+ * Injects basic auth header into the request headers.
64
+ */
65
+ static processBasicAuth(request, config) {
66
+ const { username } = config;
67
+ if (!username) {
68
+ return;
69
+ }
70
+ this.applyRequestBasicAuthData(request, config);
71
+ }
72
+ /**
73
+ * Injects oauth 2 auth header into the request headers.
74
+ */
75
+ static processOAuth2(request, config) {
76
+ const { accessToken, tokenType = 'Bearer', deliveryMethod = 'header', deliveryName = 'authorization' } = config;
77
+ if (!accessToken) {
78
+ return;
79
+ }
80
+ const value = `${tokenType} ${accessToken}`;
81
+ if (deliveryMethod === 'header') {
82
+ const headers = new Headers(request.headers || '');
83
+ headers.append(deliveryName, value);
84
+ request.headers = headers.toString();
85
+ }
86
+ else if (deliveryMethod === 'query') {
87
+ const { url } = request;
88
+ try {
89
+ const parsed = new URL(url);
90
+ parsed.searchParams.append(deliveryName, value);
91
+ request.url = parsed.toString();
92
+ }
93
+ catch (e) {
94
+ // ...
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Injects OpenID Connect auth header into the request headers.
100
+ */
101
+ static processOpenId(request, config) {
102
+ const { accessToken } = config;
103
+ if (accessToken) {
104
+ this.processOAuth2(request, config);
105
+ }
106
+ // todo - if AT is missing find the current token from the tokens list in the passed configuration.
107
+ // Currently the authorization method UI sets the token when the requests is generated so it's not as much important.
108
+ }
109
+ /**
110
+ * Injects bearer auth header into the request headers.
111
+ */
112
+ static processBearer(request, config) {
113
+ const { token } = config;
114
+ const value = `Bearer ${token}`;
115
+ const headers = new Headers(request.headers || '');
116
+ headers.append('authorization', value);
117
+ request.headers = headers.toString();
118
+ }
119
+ /**
120
+ * Applies the basic authorization data to the request.
121
+ *
122
+ * If the header value have changed then it fires `request-headers-changed` custom event.
123
+ * It sets computed value of the readers to the event's detail object.
124
+ *
125
+ * @param request The event's detail object. Changes made here will be propagated to the event.
126
+ * @param data The authorization data to apply.
127
+ */
128
+ static applyRequestBasicAuthData(request, data) {
129
+ const { username = '', password = '' } = data;
130
+ const headers = new Headers(request.headers || '');
131
+ let hash;
132
+ const decoded = `${username}:${password}`;
133
+ if (typeof Buffer === 'function' && typeof Buffer.from === 'function') {
134
+ hash = Buffer.from(decoded).toString('base64');
135
+ }
136
+ else {
137
+ hash = btoa(decoded);
138
+ }
139
+ headers.set('authorization', `Basic ${hash}`);
140
+ request.headers = headers.toString();
141
+ }
142
+ }
143
+ //# sourceMappingURL=RequestAuthorizationProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestAuthorizationProcessor.js","sourceRoot":"","sources":["../../../../src/runtime/http-runner/RequestAuthorizationProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { IHttpCookie, HttpCookie } from "../../models/HttpCookie.js";
2
+ import { IHttpRequest } from "../../models/HttpRequest.js";
3
+ import { IRequestLog } from "../../models/RequestLog.js";
4
+ import { IResponse } from "../../models/Response.js";
5
+ import { IResponseRedirect } from '../../models/ResponseRedirect.js';
6
+ export declare class RequestCookiesProcessor {
7
+ /**
8
+ * Applies cookies to the request object.
9
+ *
10
+ * Note, this mutates the request object.
11
+ *
12
+ * @param request The request to which apply the cookies.
13
+ * @param cookies The cookies to apply
14
+ */
15
+ static request(request: IHttpRequest, cookies?: (IHttpCookie | HttpCookie)[]): void;
16
+ /**
17
+ * Computes a list of cookies in the response. This includes the redirect cookies and the final response.
18
+ *
19
+ * @param log The HTTP log.
20
+ * @returns A map where keys are the URL of the request and the values are cookies. It may be empty map when no cookies.
21
+ */
22
+ static response(log: IRequestLog): Record<string, HttpCookie[]> | undefined;
23
+ protected static extract(response: IResponse, url: string, redirects?: IResponseRedirect[]): Record<string, HttpCookie[]>;
24
+ }
@@ -0,0 +1,65 @@
1
+ import { Headers } from '../../lib/headers/Headers.js';
2
+ import { CookieParser } from "../../cookies/CookieParser.js";
3
+ export class RequestCookiesProcessor {
4
+ /**
5
+ * Applies cookies to the request object.
6
+ *
7
+ * Note, this mutates the request object.
8
+ *
9
+ * @param request The request to which apply the cookies.
10
+ * @param cookies The cookies to apply
11
+ */
12
+ static request(request, cookies) {
13
+ if (!Array.isArray(cookies) || !cookies.length) {
14
+ return;
15
+ }
16
+ const header = cookies.map((c) => `${c.name}=${c.value}`).join('; ');
17
+ const headers = new Headers(request.headers);
18
+ headers.append('cookie', header);
19
+ request.headers = headers.toString();
20
+ }
21
+ /**
22
+ * Computes a list of cookies in the response. This includes the redirect cookies and the final response.
23
+ *
24
+ * @param log The HTTP log.
25
+ * @returns A map where keys are the URL of the request and the values are cookies. It may be empty map when no cookies.
26
+ */
27
+ static response(log) {
28
+ if (!log.response || !log.request) {
29
+ return;
30
+ }
31
+ const typedError = log.response;
32
+ if (typedError.error) {
33
+ return;
34
+ }
35
+ const typedResponse = log.response;
36
+ return this.extract(typedResponse, log.request.url, log.redirects);
37
+ }
38
+ static extract(response, url, redirects) {
39
+ const result = {};
40
+ let redirectUrl = url;
41
+ if (redirects && redirects.length) {
42
+ for (const redirect of redirects) {
43
+ const headers = new Headers(redirect.response.headers);
44
+ const sc = headers.get('set-cookie');
45
+ if (sc) {
46
+ const cookies = CookieParser.parse(redirectUrl, sc);
47
+ if (cookies.length) {
48
+ result[redirectUrl] = cookies;
49
+ }
50
+ }
51
+ redirectUrl = redirect.url;
52
+ }
53
+ }
54
+ const headers = new Headers(response.headers);
55
+ const sc = headers.get('set-cookie');
56
+ if (sc) {
57
+ const cookies = CookieParser.parse(redirectUrl, sc);
58
+ if (cookies.length) {
59
+ result[redirectUrl] = cookies;
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ }
65
+ //# sourceMappingURL=RequestCookiesProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestCookiesProcessor.js","sourceRoot":"","sources":["../../../../src/runtime/http-runner/RequestCookiesProcessor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,OAAO,uBAAuB;IAClC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,OAAqB,EAAE,OAAsC;QAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9C,OAAO;SACR;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAgB;QAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YACjC,OAAO;SACR;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,QAA0B,CAAC;QAClD,IAAI,UAAU,CAAC,KAAK,EAAE;YACpB,OAAO;SACR;QACD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAqB,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAES,MAAM,CAAC,OAAO,CAAC,QAAmB,EAAE,GAAW,EAAE,SAA+B;QACxF,MAAM,MAAM,GAAiC,EAAE,CAAC;QAChD,IAAI,WAAW,GAAG,GAAG,CAAC;QACtB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE;YACjC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACrC,IAAI,EAAE,EAAE;oBACN,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBACpD,IAAI,OAAO,CAAC,MAAM,EAAE;wBAClB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;qBAC/B;iBACF;gBACD,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;aAC5B;SACF;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,EAAE,EAAE;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;aAC/B;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -2,7 +2,8 @@ import { IProjectRequestIterator, IHttpProject } from '../../models/HttpProject.
2
2
  import { Environment } from '../../models/Environment.js';
3
3
  import { Logger } from '../../lib/logging/Logger.js';
4
4
  import { IRequestLog } from '../../models/RequestLog.js';
5
- export interface ProjectRunnerOptions {
5
+ import { CookieJar } from '../../cookies/CookieJar.js';
6
+ export interface IRequestRunnerOptions {
6
7
  /**
7
8
  * When provided it overrides any project / folder defined environment.
8
9
  */
@@ -19,14 +20,24 @@ export interface ProjectRunnerOptions {
19
20
  */
20
21
  logger?: Logger;
21
22
  /**
22
- * The event target to use.
23
- * By default it creates its own target.
23
+ * An instance of a cookie jar (store) to put/read cookies.
24
24
  */
25
- eventTarget?: EventTarget;
25
+ cookies?: CookieJar;
26
26
  }
27
- export interface ProjectRunnerRunOptions extends IProjectRequestIterator {
27
+ export interface IRequestRunnerRunOptions extends IProjectRequestIterator {
28
28
  }
29
- export interface RunResult {
29
+ export interface IProjectExecutionResult {
30
+ /**
31
+ * The variables evaluated during the run.
32
+ * These variables have values set by requests' HTTP flows.
33
+ */
34
+ variables: Record<string, string>;
35
+ /**
36
+ * The executed items.
37
+ */
38
+ items: IRunResult[];
39
+ }
40
+ export interface IRunResult {
30
41
  /**
31
42
  * The key of the request from the HttpProject that was executed.
32
43
  */
@@ -117,4 +128,8 @@ export interface IProjectRunnerOptions {
117
128
  * It aborts the execution when the ``abort` event is dispatched.
118
129
  */
119
130
  signal?: AbortSignal;
131
+ /**
132
+ * An instance of a cookie jar (store) to put/read cookies.
133
+ */
134
+ cookies?: CookieJar;
120
135
  }
@@ -115,7 +115,9 @@ export class ProjectParallelRunner extends BaseRunner {
115
115
  }
116
116
  catch (e) {
117
117
  const cause = e;
118
- this.mainRejecter(cause);
118
+ if (this.mainRejecter) {
119
+ this.mainRejecter(cause);
120
+ }
119
121
  this.mainResolver = undefined;
120
122
  this.mainRejecter = undefined;
121
123
  this._state = State.Idle;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectParallelRunner.js","sourceRoot":"","sources":["../../../../src/runtime/node/ProjectParallelRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectParallelRunner.js","sourceRoot":"","sources":["../../../../src/runtime/node/ProjectParallelRunner.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,11 @@ import { ProjectRequest } from '../../models/ProjectRequest.js';
8
8
  import { IHttpRequest } from '../../models/HttpRequest.js';
9
9
  import { HttpProject } from '../../models/HttpProject.js';
10
10
  import { VariablesProcessor } from '../variables/VariablesProcessor.js';
11
- import { ProjectRunnerOptions, ProjectRunnerRunOptions, RunResult } from './InteropInterfaces.js';
11
+ import { IProjectExecutionResult, IRequestRunnerOptions, IRequestRunnerRunOptions, IRunResult } from './InteropInterfaces.js';
12
12
  import { State } from './enums.js';
13
+ import { CookieJar } from '../../cookies/CookieJar.js';
14
+ import { AppProject, AppProjectFolder, AppProjectItem, AppProjectRequest } from '../../models/AppProject.js';
15
+ import { ProjectItem } from '../../models/ProjectItem.js';
13
16
  export interface ProjectRequestRunner {
14
17
  /**
15
18
  * The request object is prepared and about to be sent to the HTTP engine
@@ -44,9 +47,12 @@ export interface ProjectRequestRunner {
44
47
  * Requests are executed in order defined in the folder.
45
48
  */
46
49
  export declare class ProjectRequestRunner extends EventEmitter {
47
- eventTarget: EventTarget;
48
50
  logger?: Logger;
49
- project: HttpProject;
51
+ project: HttpProject | AppProject;
52
+ /**
53
+ * An instance of a cookie jar (store) to put/read cookies.
54
+ */
55
+ cookies?: CookieJar;
50
56
  protected masterEnvironment?: Environment;
51
57
  protected extraVariables?: Record<string, string>;
52
58
  /**
@@ -55,13 +61,21 @@ export declare class ProjectRequestRunner extends EventEmitter {
55
61
  protected variablesProcessor: VariablesProcessor;
56
62
  protected _state: State;
57
63
  get state(): State;
58
- constructor(project: HttpProject, opts?: ProjectRunnerOptions);
64
+ constructor(project: HttpProject | AppProject, opts?: IRequestRunnerOptions);
59
65
  /**
60
66
  * Runs the request from the project root or a specified folder.
61
67
  * @param options Run options.
62
68
  * @returns A promise with the run result.
63
69
  */
64
- run(options?: ProjectRunnerRunOptions): Promise<RunResult[]>;
70
+ run(options?: IRequestRunnerRunOptions): Promise<IProjectExecutionResult>;
71
+ /**
72
+ * Creates an async iterator that allows to iterate over execution results.
73
+ * The result is yielded after the request is executed.
74
+ *
75
+ * @param options The iterator configuration.
76
+ */
77
+ protected runIterator(options?: IRequestRunnerRunOptions, variables?: Record<string, string>): AsyncGenerator<IRunResult>;
78
+ protected _runIterator(items: (ProjectItem | AppProjectItem)[], variables: Record<string, string>, options: IRequestRunnerRunOptions): AsyncGenerator<IRunResult>;
65
79
  /**
66
80
  * Aborts the current run.
67
81
  * The promise returned by the `run()` method will reject if not yet resolved.
@@ -80,15 +94,15 @@ export declare class ProjectRequestRunner extends EventEmitter {
80
94
  * }
81
95
  * ```
82
96
  */
83
- [Symbol.asyncIterator](): AsyncGenerator<RunResult>;
97
+ [Symbol.asyncIterator](): AsyncGenerator<IRunResult>;
84
98
  private _runItem;
85
- protected execute(request: ProjectRequest, variables: Record<string, string>): Promise<RunResult>;
86
- protected getVariables(parent: HttpProject | ProjectFolder): Promise<Record<string, string>>;
87
- protected createEnvironment(parent: HttpProject | ProjectFolder): Promise<Record<string, string>>;
99
+ protected execute(request: ProjectRequest | AppProjectRequest, variables: Record<string, string>): Promise<IRunResult>;
100
+ protected getVariables(parent: HttpProject | AppProject | ProjectFolder | AppProjectFolder): Promise<Record<string, string>>;
101
+ protected createEnvironment(parent: HttpProject | AppProject | ProjectFolder | AppProjectFolder): Promise<Record<string, string>>;
88
102
  /**
89
103
  * Reads the list of the environments to apply to this runtime.
90
104
  */
91
- protected readEnvironments(parent: HttpProject | ProjectFolder): Promise<Environment[]>;
105
+ protected readEnvironments(parent: HttpProject | AppProject | ProjectFolder | AppProjectFolder): Promise<Environment[]>;
92
106
  /**
93
107
  * Reads the variables and the base URI from the passed environments.
94
108
  */
@@ -1,13 +1,14 @@
1
1
  import { EventEmitter } from 'events';
2
+ import { Kind as EnvironmentKind } from '../../models/Environment.js';
2
3
  import { RequestLog } from '../../models/RequestLog.js';
3
4
  import { Kind as ProjectFolderKind } from '../../models/ProjectFolder.js';
5
+ import { Kind as ProjectRequestKind } from '../../models/ProjectRequest.js';
4
6
  import { SentRequest } from '../../models/SentRequest.js';
5
7
  import { ErrorResponse } from '../../models/ErrorResponse.js';
6
- import { VariablesStore } from './VariablesStore.js';
7
8
  import { VariablesProcessor } from '../variables/VariablesProcessor.js';
8
- import { RequestFactory } from './RequestFactory.js';
9
- import { EventTypes } from '../../events/EventTypes.js';
10
9
  import { State } from './enums.js';
10
+ import { HttpRequestRunner } from '../http-runner/HttpRequestRunner.js';
11
+ import { AppProjectFolderKind, AppProjectRequestKind } from '../../models/AppProject.js';
11
12
  /**
12
13
  * Runs requests in a project.
13
14
  * Developers can run the entire project with the `recursive` flag set. They can also
@@ -16,9 +17,12 @@ import { State } from './enums.js';
16
17
  * Requests are executed in order defined in the folder.
17
18
  */
18
19
  export class ProjectRequestRunner extends EventEmitter {
19
- eventTarget;
20
20
  logger;
21
21
  project;
22
+ /**
23
+ * An instance of a cookie jar (store) to put/read cookies.
24
+ */
25
+ cookies;
22
26
  masterEnvironment;
23
27
  extraVariables;
24
28
  /**
@@ -33,25 +37,111 @@ export class ProjectRequestRunner extends EventEmitter {
33
37
  super();
34
38
  this.project = project;
35
39
  this.logger = opts.logger;
36
- this.eventTarget = opts.eventTarget || new EventTarget();
37
40
  this.masterEnvironment = opts.environment;
38
41
  this.extraVariables = opts.variables;
42
+ this.cookies = opts.cookies;
39
43
  }
40
44
  /**
41
45
  * Runs the request from the project root or a specified folder.
42
46
  * @param options Run options.
43
47
  * @returns A promise with the run result.
44
48
  */
45
- async run(options) {
46
- this._state = State.Running;
49
+ async run(options = {}) {
47
50
  const { project } = this;
51
+ const root = options.parent ? project.findFolder(options.parent) : project;
52
+ if (!root) {
53
+ throw new Error(`The parent folder not found: ${options.parent}.`);
54
+ }
55
+ const variables = await this.getVariables(root);
48
56
  const executed = [];
49
- for (const request of project.requestIterator(options)) {
50
- const info = await this._runItem(request);
51
- executed.push(info);
57
+ for await (const result of this.runIterator(options, variables)) {
58
+ executed.push(result);
59
+ }
60
+ return {
61
+ items: executed,
62
+ variables,
63
+ };
64
+ }
65
+ /**
66
+ * Creates an async iterator that allows to iterate over execution results.
67
+ * The result is yielded after the request is executed.
68
+ *
69
+ * @param options The iterator configuration.
70
+ */
71
+ async *runIterator(options = {}, variables) {
72
+ const { project } = this;
73
+ const root = options.parent ? project.findFolder(options.parent) : project;
74
+ if (!root) {
75
+ throw new Error(`The parent folder not found: ${options.parent}.`);
76
+ }
77
+ this._state = State.Running;
78
+ const envVariables = variables || await this.getVariables(root);
79
+ const { items } = root;
80
+ const it = this._runIterator(items, envVariables, options);
81
+ for await (const request of it) {
82
+ yield request;
83
+ }
84
+ }
85
+ async *_runIterator(items, variables, options) {
86
+ for (const item of items) {
87
+ const current = item.getItem();
88
+ if (!current) {
89
+ continue;
90
+ }
91
+ if (current.kind === AppProjectRequestKind || current.kind === ProjectRequestKind) {
92
+ if (Array.isArray(options.ignore) && options.ignore.includes(current.key)) {
93
+ continue;
94
+ }
95
+ if (Array.isArray(options.requests) && !options.requests.includes(current.key) && !options.requests.includes(current.info.name || '')) {
96
+ continue;
97
+ }
98
+ const info = await this._runItem(current, variables);
99
+ yield info;
100
+ }
101
+ else if (current.kind === ProjectFolderKind || current.kind === AppProjectFolderKind) {
102
+ if (!options.recursive) {
103
+ continue;
104
+ }
105
+ const parent = current;
106
+ // make a copy so the variables executed in the encapsulated environment won't leak out to the current environment.
107
+ let encapsulated = false;
108
+ // we restore the `baseUri` after exiting the folder.
109
+ const currentBaseUri = variables.baseUri;
110
+ const { items: parentItems } = parent;
111
+ const envItem = parentItems.find(i => i.kind === EnvironmentKind);
112
+ let parentVariables = {};
113
+ let childVariables = variables;
114
+ if (envItem) {
115
+ const parentEnv = envItem.getItem();
116
+ if (parentEnv) {
117
+ encapsulated = parentEnv.encapsulated;
118
+ parentVariables = await this.applyVariables([parentEnv]);
119
+ if (encapsulated) {
120
+ childVariables = parentVariables;
121
+ }
122
+ else {
123
+ childVariables = { ...childVariables, ...parentVariables };
124
+ }
125
+ }
126
+ }
127
+ const it = this._runIterator(parentItems, childVariables, options);
128
+ for await (const request of it) {
129
+ yield request;
130
+ }
131
+ if (!encapsulated) {
132
+ // now we set the variables set on children to the main variables object, except for these
133
+ // declared on the child environments, so these won't leak to other folders.
134
+ // However, variables set by a request in a folder always is propagated to the main environment.
135
+ const ignore = Object.keys(parentVariables);
136
+ Object.keys(childVariables).forEach((key) => {
137
+ if (!ignore.includes(key)) {
138
+ variables[key] = childVariables[key];
139
+ }
140
+ });
141
+ }
142
+ variables.baseUri = currentBaseUri;
143
+ }
52
144
  }
53
- this._state = State.Idle;
54
- return executed;
55
145
  }
56
146
  /**
57
147
  * Aborts the current run.
@@ -74,29 +164,16 @@ export class ProjectRequestRunner extends EventEmitter {
74
164
  * ```
75
165
  */
76
166
  async *[Symbol.asyncIterator]() {
77
- const { project } = this;
78
- this._state = State.Running;
79
- for (const request of project.requestIterator({ recursive: true })) {
80
- const info = await this._runItem(request);
81
- yield info;
167
+ for await (const result of this.runIterator({ recursive: true })) {
168
+ yield result;
82
169
  }
83
- this._state = State.Idle;
84
170
  }
85
- async _runItem(request) {
171
+ async _runItem(request, variables) {
86
172
  if (this._state === State.Aborted) {
87
173
  throw new Error(`The execution has been aborted.`);
88
174
  }
89
- const folder = request.getParent();
90
- const parent = folder || this.project;
91
- let variables;
92
- if (VariablesStore.has(parent)) {
93
- variables = VariablesStore.get(parent);
94
- }
95
- else {
96
- variables = await this.getVariables(parent);
97
- VariablesStore.set(parent, variables);
98
- }
99
175
  const info = await this.execute(request, variables);
176
+ const folder = request.getParent();
100
177
  if (folder && folder !== this.project) {
101
178
  info.parent = folder.key;
102
179
  }
@@ -104,13 +181,13 @@ export class ProjectRequestRunner extends EventEmitter {
104
181
  }
105
182
  async execute(request, variables) {
106
183
  const config = request.getConfig();
107
- const factory = new RequestFactory(this.eventTarget);
184
+ const factory = new HttpRequestRunner();
108
185
  factory.variables = variables;
109
186
  if (request.authorization) {
110
187
  factory.authorization = request.authorization.map(i => i.toJSON());
111
188
  }
112
- if (request.actions) {
113
- factory.actions = request.actions.toJSON();
189
+ if (request.flows) {
190
+ factory.flows = request.flows;
114
191
  }
115
192
  if (request.clientCertificate) {
116
193
  factory.certificates = [request.clientCertificate.toJSON()];
@@ -121,27 +198,22 @@ export class ProjectRequestRunner extends EventEmitter {
121
198
  if (this.logger) {
122
199
  factory.logger = this.logger;
123
200
  }
201
+ if (this.cookies) {
202
+ factory.cookies = this.cookies;
203
+ }
124
204
  const info = {
125
205
  key: request.key,
126
206
  };
127
207
  const requestData = request.expects.toJSON();
128
208
  requestData.url = this.prepareRequestUrl(requestData.url, variables);
129
- function variableHandler(e) {
130
- if (e.defaultPrevented) {
131
- return;
132
- }
133
- const { name, value } = e.detail;
134
- variables[name] = value;
135
- e.preventDefault();
136
- e.detail.result = Promise.resolve();
137
- }
138
- this.eventTarget.addEventListener(EventTypes.Environment.set, variableHandler);
139
209
  try {
140
210
  // Below replaces the single call to the `run()` function of the factory to
141
211
  // report via the events a request object that has evaluated with the Jexl library.
142
- const requestCopy = await factory.processRequestVariables(requestData);
212
+ const requestCopy = await factory.applyVariables(requestData);
213
+ await factory.applyAuthorization(requestCopy);
214
+ await factory.applyCookies(requestCopy);
143
215
  this.emit('request', request.key, { ...requestCopy });
144
- await factory.processRequestLogic(requestCopy);
216
+ await factory.runRequestFlows(requestCopy);
145
217
  const result = await factory.executeRequest(requestCopy);
146
218
  result.requestId = request.key;
147
219
  await factory.processResponse(result);
@@ -158,7 +230,6 @@ export class ProjectRequestRunner extends EventEmitter {
158
230
  const log = RequestLog.fromRequestResponse(sent.toJSON(), response.toJSON()).toJSON();
159
231
  this.emit('error', request.key, log, info.errorMessage);
160
232
  }
161
- this.eventTarget.removeEventListener(EventTypes.Environment.set, variableHandler);
162
233
  return info;
163
234
  }
164
235
  async getVariables(parent) {