callman-core 1.28.0 → 1.29.0

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 (345) hide show
  1. package/ai-packs/scenario-nodes.md +451 -0
  2. package/dist/ai/index.d.ts +2 -1
  3. package/dist/ai/index.d.ts.map +1 -1
  4. package/dist/ai/index.js +1 -0
  5. package/dist/ai/index.js.map +1 -1
  6. package/dist/ai/outputSchemas.d.ts +3 -0
  7. package/dist/ai/outputSchemas.d.ts.map +1 -1
  8. package/dist/ai/outputSchemas.js +1 -0
  9. package/dist/ai/outputSchemas.js.map +1 -1
  10. package/dist/ai/parse/diagram.d.ts.map +1 -1
  11. package/dist/ai/parse/diagram.js +6 -3
  12. package/dist/ai/parse/diagram.js.map +1 -1
  13. package/dist/ai/prompts/diagram.d.ts +7 -3
  14. package/dist/ai/prompts/diagram.d.ts.map +1 -1
  15. package/dist/ai/prompts/diagram.js +44 -5
  16. package/dist/ai/prompts/diagram.js.map +1 -1
  17. package/dist/ai/prompts/scenario.d.ts.map +1 -1
  18. package/dist/ai/prompts/scenario.js +9 -8
  19. package/dist/ai/prompts/scenario.js.map +1 -1
  20. package/dist/ai/prompts/scenarioNodeReference.d.ts +16 -0
  21. package/dist/ai/prompts/scenarioNodeReference.d.ts.map +1 -0
  22. package/dist/ai/prompts/scenarioNodeReference.js +882 -0
  23. package/dist/ai/prompts/scenarioNodeReference.js.map +1 -0
  24. package/dist/ai/types.d.ts +6 -0
  25. package/dist/ai/types.d.ts.map +1 -1
  26. package/dist/diagram/bpmn/derive.d.ts +74 -0
  27. package/dist/diagram/bpmn/derive.d.ts.map +1 -0
  28. package/dist/diagram/bpmn/derive.js +392 -0
  29. package/dist/diagram/bpmn/derive.js.map +1 -0
  30. package/dist/diagram/bpmn/index.d.ts +7 -0
  31. package/dist/diagram/bpmn/index.d.ts.map +1 -0
  32. package/dist/diagram/bpmn/index.js +12 -0
  33. package/dist/diagram/bpmn/index.js.map +1 -0
  34. package/dist/diagram/bpmn/patch.d.ts +14 -0
  35. package/dist/diagram/bpmn/patch.d.ts.map +1 -0
  36. package/dist/diagram/bpmn/patch.js +770 -0
  37. package/dist/diagram/bpmn/patch.js.map +1 -0
  38. package/dist/diagram/bpmn/place.d.ts +4 -0
  39. package/dist/diagram/bpmn/place.d.ts.map +1 -0
  40. package/dist/diagram/bpmn/place.js +65 -0
  41. package/dist/diagram/bpmn/place.js.map +1 -0
  42. package/dist/diagram/bpmn/serialize.d.ts +12 -0
  43. package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
  44. package/dist/diagram/bpmn/serialize.js +292 -0
  45. package/dist/diagram/bpmn/serialize.js.map +1 -0
  46. package/dist/diagram/bpmn/types.d.ts +42 -0
  47. package/dist/diagram/bpmn/types.d.ts.map +1 -0
  48. package/dist/diagram/bpmn/types.js +84 -0
  49. package/dist/diagram/bpmn/types.js.map +1 -0
  50. package/dist/diagram/bpmn/xml.d.ts +60 -0
  51. package/dist/diagram/bpmn/xml.d.ts.map +1 -0
  52. package/dist/diagram/bpmn/xml.js +342 -0
  53. package/dist/diagram/bpmn/xml.js.map +1 -0
  54. package/dist/diagram/elkGraph.d.ts +1 -3
  55. package/dist/diagram/elkGraph.d.ts.map +1 -1
  56. package/dist/diagram/elkGraph.js +1 -0
  57. package/dist/diagram/elkGraph.js.map +1 -1
  58. package/dist/diagram/fixtures.d.ts +10 -0
  59. package/dist/diagram/fixtures.d.ts.map +1 -0
  60. package/dist/diagram/fixtures.js +113 -0
  61. package/dist/diagram/fixtures.js.map +1 -0
  62. package/dist/diagram/geometry.d.ts +27 -0
  63. package/dist/diagram/geometry.d.ts.map +1 -0
  64. package/dist/diagram/geometry.js +122 -0
  65. package/dist/diagram/geometry.js.map +1 -0
  66. package/dist/diagram/history.d.ts +36 -0
  67. package/dist/diagram/history.d.ts.map +1 -0
  68. package/dist/diagram/history.js +54 -0
  69. package/dist/diagram/history.js.map +1 -0
  70. package/dist/diagram/ids.d.ts +5 -0
  71. package/dist/diagram/ids.d.ts.map +1 -0
  72. package/dist/diagram/ids.js +52 -0
  73. package/dist/diagram/ids.js.map +1 -0
  74. package/dist/diagram/index.d.ts +14 -2
  75. package/dist/diagram/index.d.ts.map +1 -1
  76. package/dist/diagram/index.js +20 -8
  77. package/dist/diagram/index.js.map +1 -1
  78. package/dist/diagram/layout.d.ts +107 -0
  79. package/dist/diagram/layout.d.ts.map +1 -0
  80. package/dist/diagram/layout.js +356 -0
  81. package/dist/diagram/layout.js.map +1 -0
  82. package/dist/diagram/mermaid/derive.d.ts +55 -0
  83. package/dist/diagram/mermaid/derive.d.ts.map +1 -0
  84. package/dist/diagram/mermaid/derive.js +343 -0
  85. package/dist/diagram/mermaid/derive.js.map +1 -0
  86. package/dist/diagram/mermaid/index.d.ts +8 -0
  87. package/dist/diagram/mermaid/index.d.ts.map +1 -0
  88. package/dist/diagram/mermaid/index.js +24 -0
  89. package/dist/diagram/mermaid/index.js.map +1 -0
  90. package/dist/diagram/mermaid/parse.d.ts +96 -0
  91. package/dist/diagram/mermaid/parse.d.ts.map +1 -0
  92. package/dist/diagram/mermaid/parse.js +672 -0
  93. package/dist/diagram/mermaid/parse.js.map +1 -0
  94. package/dist/diagram/mermaid/patch.d.ts +16 -0
  95. package/dist/diagram/mermaid/patch.d.ts.map +1 -0
  96. package/dist/diagram/mermaid/patch.js +463 -0
  97. package/dist/diagram/mermaid/patch.js.map +1 -0
  98. package/dist/diagram/mermaid/serialize.d.ts +14 -0
  99. package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
  100. package/dist/diagram/mermaid/serialize.js +125 -0
  101. package/dist/diagram/mermaid/serialize.js.map +1 -0
  102. package/dist/diagram/mermaid/shapes.d.ts +11 -0
  103. package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
  104. package/dist/diagram/mermaid/shapes.js +320 -0
  105. package/dist/diagram/mermaid/shapes.js.map +1 -0
  106. package/dist/diagram/migrations.d.ts +1 -0
  107. package/dist/diagram/migrations.d.ts.map +1 -1
  108. package/dist/diagram/migrations.js +7 -2
  109. package/dist/diagram/migrations.js.map +1 -1
  110. package/dist/diagram/normalize.d.ts +9 -1
  111. package/dist/diagram/normalize.d.ts.map +1 -1
  112. package/dist/diagram/normalize.js +194 -0
  113. package/dist/diagram/normalize.js.map +1 -1
  114. package/dist/diagram/ops.d.ts +146 -0
  115. package/dist/diagram/ops.d.ts.map +1 -0
  116. package/dist/diagram/ops.js +823 -0
  117. package/dist/diagram/ops.js.map +1 -0
  118. package/dist/diagram/opsReference.d.ts +3 -0
  119. package/dist/diagram/opsReference.d.ts.map +1 -0
  120. package/dist/diagram/opsReference.js +51 -0
  121. package/dist/diagram/opsReference.js.map +1 -0
  122. package/dist/diagram/patchInput.d.ts +193 -0
  123. package/dist/diagram/patchInput.d.ts.map +1 -0
  124. package/dist/diagram/patchInput.js +621 -0
  125. package/dist/diagram/patchInput.js.map +1 -0
  126. package/dist/diagram/routing/batch.d.ts +45 -0
  127. package/dist/diagram/routing/batch.d.ts.map +1 -0
  128. package/dist/diagram/routing/batch.js +136 -0
  129. package/dist/diagram/routing/batch.js.map +1 -0
  130. package/dist/diagram/routing/curves.d.ts +7 -0
  131. package/dist/diagram/routing/curves.d.ts.map +1 -0
  132. package/dist/diagram/routing/curves.js +120 -0
  133. package/dist/diagram/routing/curves.js.map +1 -0
  134. package/dist/diagram/routing/grid.d.ts +15 -0
  135. package/dist/diagram/routing/grid.d.ts.map +1 -0
  136. package/dist/diagram/routing/grid.js +245 -0
  137. package/dist/diagram/routing/grid.js.map +1 -0
  138. package/dist/diagram/routing/index.d.ts +10 -0
  139. package/dist/diagram/routing/index.d.ts.map +1 -0
  140. package/dist/diagram/routing/index.js +10 -0
  141. package/dist/diagram/routing/index.js.map +1 -0
  142. package/dist/diagram/routing/legacy.d.ts +6 -0
  143. package/dist/diagram/routing/legacy.d.ts.map +1 -0
  144. package/dist/diagram/routing/legacy.js +27 -0
  145. package/dist/diagram/routing/legacy.js.map +1 -0
  146. package/dist/diagram/routing/nudge.d.ts +4 -0
  147. package/dist/diagram/routing/nudge.d.ts.map +1 -0
  148. package/dist/diagram/routing/nudge.js +96 -0
  149. package/dist/diagram/routing/nudge.js.map +1 -0
  150. package/dist/diagram/routing/orthogonal.d.ts +6 -0
  151. package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
  152. package/dist/diagram/routing/orthogonal.js +56 -0
  153. package/dist/diagram/routing/orthogonal.js.map +1 -0
  154. package/dist/diagram/routing/path.d.ts +16 -0
  155. package/dist/diagram/routing/path.d.ts.map +1 -0
  156. package/dist/diagram/routing/path.js +128 -0
  157. package/dist/diagram/routing/path.js.map +1 -0
  158. package/dist/diagram/routing/sides.d.ts +22 -0
  159. package/dist/diagram/routing/sides.d.ts.map +1 -0
  160. package/dist/diagram/routing/sides.js +74 -0
  161. package/dist/diagram/routing/sides.js.map +1 -0
  162. package/dist/diagram/routing/types.d.ts +46 -0
  163. package/dist/diagram/routing/types.d.ts.map +1 -0
  164. package/dist/diagram/routing/types.js +11 -0
  165. package/dist/diagram/routing/types.js.map +1 -0
  166. package/dist/diagram/schema.d.ts +70 -37
  167. package/dist/diagram/schema.d.ts.map +1 -1
  168. package/dist/diagram/schema.js +62 -8
  169. package/dist/diagram/schema.js.map +1 -1
  170. package/dist/diagram/styleInput.d.ts +41 -0
  171. package/dist/diagram/styleInput.d.ts.map +1 -0
  172. package/dist/diagram/styleInput.js +105 -0
  173. package/dist/diagram/styleInput.js.map +1 -0
  174. package/dist/diagram/views.d.ts +9 -0
  175. package/dist/diagram/views.d.ts.map +1 -0
  176. package/dist/diagram/views.js +42 -0
  177. package/dist/diagram/views.js.map +1 -0
  178. package/dist/http-file/flatImport.d.ts +1 -0
  179. package/dist/http-file/flatImport.d.ts.map +1 -1
  180. package/dist/http-file/flatImport.js.map +1 -1
  181. package/dist/http-file/index.d.ts +1 -1
  182. package/dist/http-file/index.d.ts.map +1 -1
  183. package/dist/http-file/index.js +1 -1
  184. package/dist/http-file/index.js.map +1 -1
  185. package/dist/http-file/parseHttpFile.d.ts +1 -0
  186. package/dist/http-file/parseHttpFile.d.ts.map +1 -1
  187. package/dist/http-file/parseHttpFile.js +40 -8
  188. package/dist/http-file/parseHttpFile.js.map +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.js +3 -0
  192. package/dist/index.js.map +1 -1
  193. package/dist/request/requestBody.d.ts +55 -0
  194. package/dist/request/requestBody.d.ts.map +1 -0
  195. package/dist/request/requestBody.js +198 -0
  196. package/dist/request/requestBody.js.map +1 -0
  197. package/dist/runner/requestRunner.d.ts.map +1 -1
  198. package/dist/runner/requestRunner.js +127 -43
  199. package/dist/runner/requestRunner.js.map +1 -1
  200. package/dist/runner/runCollection.d.ts +1 -1
  201. package/dist/runner/runCollection.d.ts.map +1 -1
  202. package/dist/runner/runCollection.js +9 -2
  203. package/dist/runner/runCollection.js.map +1 -1
  204. package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts +2 -1
  205. package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts.map +1 -1
  206. package/dist/scenario-runner/adapters/helpers/request-helpers.js +8 -40
  207. package/dist/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
  208. package/dist/scenario-runner/adapters/request-executor.d.ts.map +1 -1
  209. package/dist/scenario-runner/adapters/request-executor.js +2 -29
  210. package/dist/scenario-runner/adapters/request-executor.js.map +1 -1
  211. package/dist/scenario-runner/index.d.ts +1 -0
  212. package/dist/scenario-runner/index.d.ts.map +1 -1
  213. package/dist/scenario-runner/index.js +1 -0
  214. package/dist/scenario-runner/index.js.map +1 -1
  215. package/dist/scenario-runner/labels.d.ts +3 -0
  216. package/dist/scenario-runner/labels.d.ts.map +1 -0
  217. package/dist/scenario-runner/labels.js +20 -0
  218. package/dist/scenario-runner/labels.js.map +1 -0
  219. package/dist/scenario-runner/runScenario.d.ts.map +1 -1
  220. package/dist/scenario-runner/runScenario.js +4 -11
  221. package/dist/scenario-runner/runScenario.js.map +1 -1
  222. package/dist/script/legacy.d.ts.map +1 -1
  223. package/dist/script/legacy.js +24 -9
  224. package/dist/script/legacy.js.map +1 -1
  225. package/dist/types/index.d.ts +18 -1
  226. package/dist/types/index.d.ts.map +1 -1
  227. package/dist/variables/resolver.d.ts.map +1 -1
  228. package/dist/variables/resolver.js +27 -5
  229. package/dist/variables/resolver.js.map +1 -1
  230. package/dist-cjs/ai/index.js +4 -1
  231. package/dist-cjs/ai/index.js.map +1 -1
  232. package/dist-cjs/ai/outputSchemas.js +1 -0
  233. package/dist-cjs/ai/outputSchemas.js.map +1 -1
  234. package/dist-cjs/ai/parse/diagram.js +6 -3
  235. package/dist-cjs/ai/parse/diagram.js.map +1 -1
  236. package/dist-cjs/ai/prompts/diagram.js +44 -5
  237. package/dist-cjs/ai/prompts/diagram.js.map +1 -1
  238. package/dist-cjs/ai/prompts/scenario.js +9 -8
  239. package/dist-cjs/ai/prompts/scenario.js.map +1 -1
  240. package/dist-cjs/ai/prompts/scenarioNodeReference.js +886 -0
  241. package/dist-cjs/ai/prompts/scenarioNodeReference.js.map +1 -0
  242. package/dist-cjs/diagram/bpmn/derive.js +398 -0
  243. package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
  244. package/dist-cjs/diagram/bpmn/index.js +31 -0
  245. package/dist-cjs/diagram/bpmn/index.js.map +1 -0
  246. package/dist-cjs/diagram/bpmn/patch.js +774 -0
  247. package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
  248. package/dist-cjs/diagram/bpmn/place.js +69 -0
  249. package/dist-cjs/diagram/bpmn/place.js.map +1 -0
  250. package/dist-cjs/diagram/bpmn/serialize.js +299 -0
  251. package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
  252. package/dist-cjs/diagram/bpmn/types.js +99 -0
  253. package/dist-cjs/diagram/bpmn/types.js.map +1 -0
  254. package/dist-cjs/diagram/bpmn/xml.js +367 -0
  255. package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
  256. package/dist-cjs/diagram/elkGraph.js +1 -0
  257. package/dist-cjs/diagram/elkGraph.js.map +1 -1
  258. package/dist-cjs/diagram/fixtures.js +117 -0
  259. package/dist-cjs/diagram/fixtures.js.map +1 -0
  260. package/dist-cjs/diagram/geometry.js +143 -0
  261. package/dist-cjs/diagram/geometry.js.map +1 -0
  262. package/dist-cjs/diagram/history.js +65 -0
  263. package/dist-cjs/diagram/history.js.map +1 -0
  264. package/dist-cjs/diagram/ids.js +58 -0
  265. package/dist-cjs/diagram/ids.js.map +1 -0
  266. package/dist-cjs/diagram/index.js +23 -8
  267. package/dist-cjs/diagram/index.js.map +1 -1
  268. package/dist-cjs/diagram/layout.js +364 -0
  269. package/dist-cjs/diagram/layout.js.map +1 -0
  270. package/dist-cjs/diagram/mermaid/derive.js +353 -0
  271. package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
  272. package/dist-cjs/diagram/mermaid/index.js +44 -0
  273. package/dist-cjs/diagram/mermaid/index.js.map +1 -0
  274. package/dist-cjs/diagram/mermaid/parse.js +681 -0
  275. package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
  276. package/dist-cjs/diagram/mermaid/patch.js +468 -0
  277. package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
  278. package/dist-cjs/diagram/mermaid/serialize.js +133 -0
  279. package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
  280. package/dist-cjs/diagram/mermaid/shapes.js +327 -0
  281. package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
  282. package/dist-cjs/diagram/migrations.js +9 -3
  283. package/dist-cjs/diagram/migrations.js.map +1 -1
  284. package/dist-cjs/diagram/normalize.js +198 -1
  285. package/dist-cjs/diagram/normalize.js.map +1 -1
  286. package/dist-cjs/diagram/ops.js +829 -0
  287. package/dist-cjs/diagram/ops.js.map +1 -0
  288. package/dist-cjs/diagram/opsReference.js +55 -0
  289. package/dist-cjs/diagram/opsReference.js.map +1 -0
  290. package/dist-cjs/diagram/patchInput.js +636 -0
  291. package/dist-cjs/diagram/patchInput.js.map +1 -0
  292. package/dist-cjs/diagram/routing/batch.js +142 -0
  293. package/dist-cjs/diagram/routing/batch.js.map +1 -0
  294. package/dist-cjs/diagram/routing/curves.js +127 -0
  295. package/dist-cjs/diagram/routing/curves.js.map +1 -0
  296. package/dist-cjs/diagram/routing/grid.js +250 -0
  297. package/dist-cjs/diagram/routing/grid.js.map +1 -0
  298. package/dist-cjs/diagram/routing/index.js +29 -0
  299. package/dist-cjs/diagram/routing/index.js.map +1 -0
  300. package/dist-cjs/diagram/routing/legacy.js +32 -0
  301. package/dist-cjs/diagram/routing/legacy.js.map +1 -0
  302. package/dist-cjs/diagram/routing/nudge.js +100 -0
  303. package/dist-cjs/diagram/routing/nudge.js.map +1 -0
  304. package/dist-cjs/diagram/routing/orthogonal.js +62 -0
  305. package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
  306. package/dist-cjs/diagram/routing/path.js +137 -0
  307. package/dist-cjs/diagram/routing/path.js.map +1 -0
  308. package/dist-cjs/diagram/routing/sides.js +82 -0
  309. package/dist-cjs/diagram/routing/sides.js.map +1 -0
  310. package/dist-cjs/diagram/routing/types.js +15 -0
  311. package/dist-cjs/diagram/routing/types.js.map +1 -0
  312. package/dist-cjs/diagram/schema.js +64 -9
  313. package/dist-cjs/diagram/schema.js.map +1 -1
  314. package/dist-cjs/diagram/styleInput.js +113 -0
  315. package/dist-cjs/diagram/styleInput.js.map +1 -0
  316. package/dist-cjs/diagram/views.js +46 -0
  317. package/dist-cjs/diagram/views.js.map +1 -0
  318. package/dist-cjs/http-file/flatImport.js.map +1 -1
  319. package/dist-cjs/http-file/index.js +2 -1
  320. package/dist-cjs/http-file/index.js.map +1 -1
  321. package/dist-cjs/http-file/parseHttpFile.js +42 -9
  322. package/dist-cjs/http-file/parseHttpFile.js.map +1 -1
  323. package/dist-cjs/index.js +9 -1
  324. package/dist-cjs/index.js.map +1 -1
  325. package/dist-cjs/request/requestBody.js +206 -0
  326. package/dist-cjs/request/requestBody.js.map +1 -0
  327. package/dist-cjs/runner/requestRunner.js +127 -43
  328. package/dist-cjs/runner/requestRunner.js.map +1 -1
  329. package/dist-cjs/runner/runCollection.js +9 -2
  330. package/dist-cjs/runner/runCollection.js.map +1 -1
  331. package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js +7 -42
  332. package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
  333. package/dist-cjs/scenario-runner/adapters/request-executor.js +3 -30
  334. package/dist-cjs/scenario-runner/adapters/request-executor.js.map +1 -1
  335. package/dist-cjs/scenario-runner/index.js +4 -1
  336. package/dist-cjs/scenario-runner/index.js.map +1 -1
  337. package/dist-cjs/scenario-runner/labels.js +24 -0
  338. package/dist-cjs/scenario-runner/labels.js.map +1 -0
  339. package/dist-cjs/scenario-runner/runScenario.js +4 -11
  340. package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
  341. package/dist-cjs/script/legacy.js +24 -9
  342. package/dist-cjs/script/legacy.js.map +1 -1
  343. package/dist-cjs/variables/resolver.js +27 -5
  344. package/dist-cjs/variables/resolver.js.map +1 -1
  345. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ // Persisted request body → what actually goes on the wire. ONE mapping for
2
+ // every host that sends a SAVED request: the collection runner
3
+ // (`runRequest`, used by callme-cli and callman-mcp) and the scenario request
4
+ // executor share the raw Content-Type table and the form builder below.
5
+ //
6
+ // Saved requests keep their body in the persisted shape (see
7
+ // `toPersistedRequestBody` / the desktop's `serializeBodyState`):
8
+ // - a plain JSON value (object, array, string, …) — sent as-is;
9
+ // - `{ mode: "raw", raw, rawLanguage }` — non-JSON raw text (xml/text/html);
10
+ // - `{ mode: "formdata" | "urlencoded", formEntries: [{ key, value, enabled, type? }] }`;
11
+ // - `{ mode: "none" }` — no body.
12
+ // Handing the envelope itself to the HTTP driver sent it as JSON
13
+ // (`{"mode":"raw","raw":"<a/>",...}`), which no server can parse.
14
+ //
15
+ // Isomorphic: `FormData` / `URLSearchParams` exist in Node 18+ and the
16
+ // browser, so this module is safe in the Electron renderer too.
17
+ import { sniffRawBodyLanguage } from "../curl/bodyFormat.js";
18
+ import { sanitizeJsonBody } from "../utils/jsonc.js";
19
+ const FORM_URLENCODED = "application/x-www-form-urlencoded";
20
+ // Keys a scenario-shaped body state carries next to `mode`; a `{mode:"none"}`
21
+ // with anything else is somebody's JSON payload, not an empty body.
22
+ const BODY_STATE_KEYS = new Set(["mode", "raw", "rawLanguage", "formEntries"]);
23
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
24
+ const isJsonContentType = (contentType) => /\bjson\b/i.test(contentType);
25
+ const isValidJsonText = (text) => {
26
+ try {
27
+ JSON.parse(sanitizeJsonBody(text));
28
+ return true;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ };
34
+ // Auto Content-Type for a raw body sub-format. Keeps parity with the
35
+ // desktop request builder so an XML/text/html body is not mislabelled as
36
+ // JSON (which would make a server's JSON parser reject it).
37
+ export const contentTypeForRawLanguage = (language) => {
38
+ switch (language) {
39
+ case "xml":
40
+ return "application/xml";
41
+ case "html":
42
+ return "text/html";
43
+ case "text":
44
+ return "text/plain";
45
+ case "json":
46
+ default:
47
+ return "application/json";
48
+ }
49
+ };
50
+ // Recognise the structured persisted shapes; `null` means "a plain value".
51
+ // Same structural tests as the desktop's `inferBodyState`.
52
+ export const readRequestBodyEnvelope = (body) => {
53
+ if (!isRecord(body) || typeof body.mode !== "string") {
54
+ return null;
55
+ }
56
+ if (body.mode === "raw" && typeof body.raw === "string") {
57
+ return {
58
+ mode: "raw",
59
+ raw: body.raw,
60
+ ...(typeof body.rawLanguage === "string" ? { rawLanguage: body.rawLanguage } : {}),
61
+ };
62
+ }
63
+ if ((body.mode === "formdata" || body.mode === "urlencoded") &&
64
+ Array.isArray(body.formEntries)) {
65
+ return {
66
+ mode: body.mode,
67
+ formEntries: body.formEntries.filter(isRecord).map((entry) => ({
68
+ key: typeof entry.key === "string" ? entry.key : "",
69
+ value: entry.value === undefined || entry.value === null ? "" : String(entry.value),
70
+ ...(typeof entry.enabled === "boolean" ? { enabled: entry.enabled } : {}),
71
+ ...(entry.type === "text" || entry.type === "file" ? { type: entry.type } : {}),
72
+ })),
73
+ };
74
+ }
75
+ if (body.mode === "none" && Object.keys(body).every((key) => BODY_STATE_KEYS.has(key))) {
76
+ return { mode: "none" };
77
+ }
78
+ return null;
79
+ };
80
+ // Enabled, keyed TEXT rows of a form body, with keys/values resolved.
81
+ // `append` keeps duplicate keys — valid form semantics an object map cannot
82
+ // express.
83
+ export const buildFormBody = (mode, entries, resolve = (text) => text) => {
84
+ const form = mode === "urlencoded" ? new URLSearchParams() : new FormData();
85
+ for (const entry of entries) {
86
+ if (entry.enabled === false || !entry.key.trim() || entry.type === "file")
87
+ continue;
88
+ form.append(resolve(entry.key), resolve(entry.value));
89
+ }
90
+ return form;
91
+ };
92
+ const findHeaderKey = (headers, name) => Object.keys(headers).find((key) => key.toLowerCase() === name);
93
+ // Set the implied Content-Type when none is present. An existing JSON type is
94
+ // also replaced when the body is demonstrably not JSON: callme-cli and
95
+ // callman-mcp default every bodied request to `application/json` before core
96
+ // sees it, and a urlencoded or XML body under that header is rejected by the
97
+ // server's JSON parser. Any other explicit type is the user's call.
98
+ const reconcileContentType = (headers, contentType, bodyIsJson) => {
99
+ const existingKey = findHeaderKey(headers, "content-type");
100
+ if (!existingKey) {
101
+ return { ...headers, "Content-Type": contentType };
102
+ }
103
+ if (!bodyIsJson && isJsonContentType(headers[existingKey] ?? "")) {
104
+ return { ...headers, [existingKey]: contentType };
105
+ }
106
+ return headers;
107
+ };
108
+ /**
109
+ * Map a persisted request body to its wire form. `resolve` (optional) is
110
+ * applied to the raw text and to form keys/values so `{{var}}` templates
111
+ * resolve inside them; plain values are returned untouched (resolve them
112
+ * yourself — `runRequest` does, deep, as it always has).
113
+ *
114
+ * Multipart FILE parts are not sent (see `WireRequestBody.fileParts`).
115
+ */
116
+ export const persistedBodyToWire = (body, headers = {}, options = {}) => {
117
+ const resolve = options.resolve ?? ((text) => text);
118
+ const envelope = readRequestBodyEnvelope(body);
119
+ if (!envelope) {
120
+ return { mode: "value", data: body, headers, fileParts: [] };
121
+ }
122
+ if (envelope.mode === "none") {
123
+ return { mode: "none", data: undefined, headers, fileParts: [] };
124
+ }
125
+ if (envelope.mode === "raw") {
126
+ const text = resolve(envelope.raw ?? "");
127
+ if (!text.trim()) {
128
+ return { mode: "raw", data: "", headers, fileParts: [] };
129
+ }
130
+ // An envelope saved without a language gets the desktop's sniff.
131
+ const language = envelope.rawLanguage ?? sniffRawBodyLanguage(text);
132
+ const contentType = contentTypeForRawLanguage(language);
133
+ return {
134
+ mode: "raw",
135
+ data: text,
136
+ contentType,
137
+ headers: reconcileContentType(headers, contentType, language === "json" || isValidJsonText(text)),
138
+ fileParts: [],
139
+ };
140
+ }
141
+ const entries = envelope.formEntries ?? [];
142
+ const fileParts = entries
143
+ .filter((entry) => entry.type === "file" && entry.enabled !== false && entry.key.trim())
144
+ .map((entry) => entry.key);
145
+ if (envelope.mode === "urlencoded") {
146
+ return {
147
+ mode: "urlencoded",
148
+ data: buildFormBody("urlencoded", entries, resolve).toString(),
149
+ contentType: FORM_URLENCODED,
150
+ headers: reconcileContentType(headers, FORM_URLENCODED, false),
151
+ fileParts,
152
+ };
153
+ }
154
+ // Multipart Content-Type must come from the driver — a user-set header
155
+ // carries no (or a stale) boundary and breaks the receiving parser.
156
+ const multipartHeaders = { ...headers };
157
+ const contentTypeKey = findHeaderKey(multipartHeaders, "content-type");
158
+ if (contentTypeKey)
159
+ delete multipartHeaders[contentTypeKey];
160
+ return {
161
+ mode: "formdata",
162
+ data: buildFormBody("formdata", entries, resolve),
163
+ headers: multipartHeaders,
164
+ fileParts,
165
+ };
166
+ };
167
+ // Serialisable picture of a wire body for reports (a scenario step's
168
+ // `resolvedInput`, a collection run's `result.request`). Multipart bodies are
169
+ // described part by part rather than copied, and anything non-JSON collapses
170
+ // to a label.
171
+ export const describeRequestBody = (body) => {
172
+ if (body === null || body === undefined)
173
+ return null;
174
+ if (typeof body === "string")
175
+ return body;
176
+ if (typeof FormData !== "undefined" && body instanceof FormData) {
177
+ const parts = [];
178
+ body.forEach((value, key) => {
179
+ parts.push({
180
+ key,
181
+ value: typeof value === "string"
182
+ ? value
183
+ : `[file${value.name ? `: ${value.name}` : ""}]`,
184
+ });
185
+ });
186
+ return { mode: "formdata", parts };
187
+ }
188
+ if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) {
189
+ return body.toString();
190
+ }
191
+ if (typeof body === "object") {
192
+ if (ArrayBuffer.isView(body) || body instanceof ArrayBuffer)
193
+ return "[binary]";
194
+ return body;
195
+ }
196
+ return String(body);
197
+ };
198
+ //# sourceMappingURL=requestBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestBody.js","sourceRoot":"","sources":["../../src/request/requestBody.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestRunner.d.ts","sourceRoot":"","sources":["../../src/runner/requestRunner.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAGV,eAAe,EACf,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AA0P3B,eAAO,MAAM,UAAU,GACrB,OAAO,eAAe,KACrB,OAAO,CAAC,gBAAgB,CA2K1B,CAAC"}
1
+ {"version":3,"file":"requestRunner.d.ts","sourceRoot":"","sources":["../../src/runner/requestRunner.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAKV,eAAe,EACf,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAgV3B,eAAO,MAAM,UAAU,GACrB,OAAO,eAAe,KACrB,OAAO,CAAC,gBAAgB,CAuM1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { validateContracts } from "../contract/contractValidator.js";
2
2
  import { buildDbExecuteCapability, buildRedisCapability, runConfiguredDbQuery, runRedisCommandsForPhase, } from "../host/connections.js";
3
3
  import { executeRequest } from "../request/executeRequest.js";
4
+ import { describeRequestBody, persistedBodyToWire, readRequestBodyEnvelope, } from "../request/requestBody.js";
4
5
  import { applyRequestAuth } from "./applyRequestAuth.js";
5
6
  import { executeScript } from "../script/executor.js";
6
7
  import { runScript } from "../script/scriptEngine.js";
@@ -29,28 +30,61 @@ const scriptPairsToRecord = (pairs) => {
29
30
  }
30
31
  return out;
31
32
  };
33
+ // A structured persisted body keeps its mode/language/rows in the sandbox
34
+ // (so `pm.request.body` shows the real body, not the storage envelope); a
35
+ // plain value is raw text, as it always was.
36
+ const toScriptBodyState = (body) => {
37
+ const envelope = readRequestBodyEnvelope(body);
38
+ if (!envelope) {
39
+ return {
40
+ mode: "raw",
41
+ raw: typeof body === "string" ? body : body != null ? JSON.stringify(body) : "",
42
+ formEntries: [],
43
+ };
44
+ }
45
+ return {
46
+ mode: envelope.mode,
47
+ raw: envelope.raw ?? "",
48
+ ...(envelope.rawLanguage ? { rawLanguage: envelope.rawLanguage } : {}),
49
+ formEntries: (envelope.formEntries ?? []).map((entry) => ({
50
+ ...entry,
51
+ enabled: entry.enabled ?? true,
52
+ })),
53
+ };
54
+ };
55
+ // The script's (possibly mutated) body back into the persisted shape the
56
+ // rest of the runner reads. A plain-value body that stays raw becomes the
57
+ // raw text — the historical behaviour.
58
+ const fromScriptBodyState = (state, original) => {
59
+ const envelope = readRequestBodyEnvelope(original);
60
+ if (state.mode === "raw") {
61
+ return envelope
62
+ ? { mode: "raw", raw: state.raw, ...(state.rawLanguage ? { rawLanguage: state.rawLanguage } : {}) }
63
+ : state.raw;
64
+ }
65
+ if (state.mode === "formdata" || state.mode === "urlencoded") {
66
+ return { mode: state.mode, formEntries: state.formEntries };
67
+ }
68
+ if (state.mode === "none") {
69
+ return { mode: "none" };
70
+ }
71
+ return original;
72
+ };
32
73
  const toScriptRequestState = (request) => ({
33
74
  method: request.method,
34
75
  url: request.url,
35
76
  headers: headersToScriptPairs(request.headers),
36
77
  query: headersToScriptPairs(request.query),
37
- body: {
38
- mode: "raw",
39
- raw: typeof request.body === "string"
40
- ? request.body
41
- : request.body != null
42
- ? JSON.stringify(request.body)
43
- : "",
44
- formEntries: [],
45
- },
78
+ body: toScriptBodyState(request.body),
46
79
  });
47
- // Apply a script's environment writes back onto the shared EnvStore so later
48
- // template resolution (and later requests) see the new values.
49
- const applyScriptEnvMutations = (env, mutations) => {
80
+ // Apply a script's environment (and globals) writes back onto the shared
81
+ // EnvStores so later template resolution (and later requests) see them.
82
+ const applyScriptEnvMutations = (env, mutations, globals) => {
50
83
  for (const mutation of mutations) {
51
- if (mutation.scope !== "environment")
84
+ const target = mutation.scope === "environment" ? env : mutation.scope === "global" ? globals : undefined;
85
+ if (!target)
52
86
  continue;
53
- env.set(mutation.key, mutation.type === "unset" ? "" : (mutation.value ?? ""));
87
+ target.set(mutation.key, mutation.type === "unset" ? "" : (mutation.value ?? ""));
54
88
  }
55
89
  };
56
90
  // Build a `{{response.*}}` template root from an HTTP result so pre/post DB +
@@ -123,11 +157,13 @@ const buildExecutionFailureResult = (error) => {
123
157
  ],
124
158
  };
125
159
  };
126
- const normalizeRequestForExecution = ({ request, env, previousResponse, }) => {
160
+ const normalizeRequestForExecution = ({ request, env, globals, previousResponse }, onUnresolved) => {
127
161
  const resolveContext = {
128
162
  env,
163
+ ...(globals ? { globals } : {}),
129
164
  response: previousResponse,
130
165
  request,
166
+ ...(onUnresolved ? { onUnresolved } : {}),
131
167
  };
132
168
  // URL ↔ query parity with the desktop resolver (and the scenario path in
133
169
  // scenario-runner/adapters/helpers/request-helpers.ts): the URL leaves
@@ -150,14 +186,44 @@ const normalizeRequestForExecution = ({ request, env, previousResponse, }) => {
150
186
  ...urlPairs,
151
187
  ...Object.entries(explicitQuery ?? {}),
152
188
  ];
189
+ // A structured persisted body (raw text / form rows / none) leaves in its
190
+ // wire form, templates resolved inside the text and rows; a plain value is
191
+ // resolved deep and sent as-is, exactly as before.
192
+ const headers = resolveHeaders(request.headers, resolveContext);
193
+ const isEnvelope = readRequestBodyEnvelope(request.body) !== null;
194
+ const wire = persistedBodyToWire(isEnvelope ? request.body : resolveTemplateValue(request.body, resolveContext), headers, { resolve: (text) => resolveTemplateValue(text, resolveContext) });
153
195
  return {
154
196
  method: resolveTemplateValue(request.method, resolveContext).toUpperCase(),
155
197
  url: stripUrlQuery(resolvedBase),
156
- headers: resolveHeaders(request.headers, resolveContext),
198
+ headers: headers !== undefined || isEnvelope ? wire.headers : undefined,
157
199
  query: queryPairs.length > 0 ? Object.fromEntries(queryPairs) : explicitQuery,
158
- body: resolveTemplateValue(request.body, resolveContext),
200
+ body: wire.data,
159
201
  };
160
202
  };
203
+ // Multipart FILE parts need a fixture store, which only scenario hosts have.
204
+ // Fail the request up front, naming the parts, rather than send a form the
205
+ // server will reject for a missing file.
206
+ const assertNoFileParts = (body) => {
207
+ const { fileParts } = persistedBodyToWire(body);
208
+ if (fileParts.length > 0) {
209
+ throw new Error(`Multipart file part${fileParts.length === 1 ? "" : "s"} ${fileParts
210
+ .map((key) => `"${key}"`)
211
+ .join(", ")} cannot be sent by a local run — only text form fields are supported here. Run it from the desktop app or as a server scenario with an uploaded fixture.`);
212
+ }
213
+ };
214
+ // Diagnostics on the result, each present only when non-empty so results
215
+ // without them keep their exact historical shape.
216
+ const withDiagnostics = (result, unresolved, logs) => ({
217
+ ...result,
218
+ ...(unresolved.size > 0 ? { unresolvedVariables: [...unresolved] } : {}),
219
+ ...(logs.length > 0 ? { logs } : {}),
220
+ });
221
+ const tagLogs = (stage, entries) => entries.map((entry) => ({ stage, ...entry }));
222
+ // `result.request` is a report, not the driver input: describe a FormData
223
+ // body part by part instead of letting it serialize to `{}`.
224
+ const toReportedRequest = (request) => typeof FormData !== "undefined" && request.body instanceof FormData
225
+ ? { ...request, body: describeRequestBody(request.body) }
226
+ : request;
161
227
  // Wires the resolved connections + request DB/Redis config into the script
162
228
  // capabilities. Runs the pre-request DB node + pre Redis commands before this
163
229
  // is called, the post ones after the response. Returns the capabilities to
@@ -188,19 +254,30 @@ const buildScriptExtensions = (input) => {
188
254
  return { db, redis };
189
255
  };
190
256
  export const runRequest = async (input) => {
257
+ // Tokens that resolved to nothing in the request as finally sent (reset
258
+ // when the pre-request script re-resolves — it may define them), and the
259
+ // scripts' console / pm.log output.
260
+ let unresolved = new Set();
261
+ const onUnresolved = (expression) => {
262
+ unresolved.add(expression);
263
+ };
264
+ const scriptLogs = [];
191
265
  // `let` so the pre-request script can re-resolve after mutating env/request;
192
266
  // the initial value also covers the catch block if something throws early.
193
- let runtimeRequest = normalizeRequestForExecution(input);
267
+ let runtimeRequest = normalizeRequestForExecution(input, onUnresolved);
268
+ // The request as the pre-request script left it (or as given).
269
+ let requestToSend = input.request;
194
270
  const connections = input.connections ?? {};
195
271
  const featurePolicy = input.featurePolicy;
196
272
  const databaseEnabled = featurePolicy ? featurePolicy.database : true;
197
273
  const redisConfig = input.request.redis;
198
274
  try {
199
275
  const envBefore = stringifyEnv(input.env.all());
276
+ const globalsBefore = stringifyEnv(input.globals?.all() ?? {});
200
277
  // ── Pre-request script: runs BEFORE the HTTP call (and before template
201
278
  // resolution) so `pm.environment.set` tokens and `pm.request.setHeader`
202
- // mutations reach the outgoing request. Its console output is dropped
203
- // here; test assertions surface in scriptResults.
279
+ // mutations reach the outgoing request. Its console output lands in
280
+ // `result.logs`; test assertions surface in scriptResults.
204
281
  let preRequestTestResults = [];
205
282
  if (input.request.preRequestScript?.trim()) {
206
283
  const preResult = await executeScript({
@@ -209,6 +286,7 @@ export const runRequest = async (input) => {
209
286
  filename: "callman-request.script.js",
210
287
  capabilities: {
211
288
  environment: { values: envBefore, emitMutations: true },
289
+ ...(input.globals ? { globals: { values: globalsBefore, emitMutations: true } } : {}),
212
290
  request: toScriptRequestState(input.request),
213
291
  extensions: {
214
292
  log: true,
@@ -220,33 +298,31 @@ export const runRequest = async (input) => {
220
298
  },
221
299
  },
222
300
  });
223
- applyScriptEnvMutations(input.env, preResult.variableMutations);
301
+ applyScriptEnvMutations(input.env, preResult.variableMutations, input.globals);
224
302
  preRequestTestResults = preResult.testResults;
225
- const mutatedRequest = preResult.request
226
- ? {
303
+ scriptLogs.push(...tagLogs("pre-request", preResult.logs));
304
+ if (preResult.request) {
305
+ requestToSend = {
227
306
  ...input.request,
228
307
  method: preResult.request.method,
229
308
  url: preResult.request.url,
230
309
  headers: scriptPairsToRecord(preResult.request.headers),
231
310
  query: scriptPairsToRecord(preResult.request.query),
232
- body: preResult.request.body.mode === "raw"
233
- ? preResult.request.body.raw
234
- : input.request.body,
235
- }
236
- : input.request;
311
+ body: fromScriptBodyState(preResult.request.body, input.request.body),
312
+ };
313
+ }
237
314
  // Re-resolve templates against the updated env + mutated request.
238
- runtimeRequest = normalizeRequestForExecution({
239
- ...input,
240
- request: mutatedRequest,
241
- });
315
+ unresolved = new Set();
316
+ runtimeRequest = normalizeRequestForExecution({ ...input, request: requestToSend }, onUnresolved);
242
317
  }
318
+ assertNoFileParts(requestToSend.body);
243
319
  // ── Pre-request phase: DB node + Redis commands run before the HTTP call.
244
320
  const preDbResult = databaseEnabled
245
321
  ? await runConfiguredDbQuery({
246
322
  connections,
247
323
  config: input.request.database?.preRequest,
248
324
  phase: "pre",
249
- context: { response: null, env: envBefore, global: {} },
325
+ context: { response: null, env: envBefore, global: globalsBefore },
250
326
  })
251
327
  : null;
252
328
  const redisPre = await runRedisCommandsForPhase({
@@ -254,15 +330,17 @@ export const runRequest = async (input) => {
254
330
  connectionId: redisConfig?.connectionId,
255
331
  commands: redisConfig?.preCommands ?? [],
256
332
  phase: "pre",
257
- context: { response: null, env: envBefore, global: {} },
333
+ context: { response: null, env: envBefore, global: globalsBefore },
258
334
  });
259
335
  // ── Auth: apply the request's Auth tab (bearer/basic/apikey/oauth2) to the
260
336
  // resolved request. For oauth2 the token is fetched (+ cached) via a POST
261
337
  // through `executeRequest`, so it shares the same HTTP path.
262
338
  const authResolveContext = {
263
339
  env: input.env,
340
+ ...(input.globals ? { globals: input.globals } : {}),
264
341
  response: input.previousResponse,
265
342
  request: input.request,
343
+ onUnresolved,
266
344
  };
267
345
  runtimeRequest = await applyRequestAuth(runtimeRequest, input.request.auth, (value) => resolveTemplateValue(value, authResolveContext), {
268
346
  oauthPost: async (tokenRequest) => {
@@ -281,12 +359,13 @@ export const runRequest = async (input) => {
281
359
  const responseRoot = buildResponseRoot(response);
282
360
  // ── Post-response phase: DB node + Redis commands run after the response.
283
361
  const envAfter = stringifyEnv(input.env.all());
362
+ const globalsAfter = stringifyEnv(input.globals?.all() ?? {});
284
363
  const postDbResult = databaseEnabled
285
364
  ? await runConfiguredDbQuery({
286
365
  connections,
287
366
  config: input.request.database?.postResponse,
288
367
  phase: "post",
289
- context: { response: responseRoot, env: envAfter, global: {} },
368
+ context: { response: responseRoot, env: envAfter, global: globalsAfter },
290
369
  })
291
370
  : null;
292
371
  const redisPost = await runRedisCommandsForPhase({
@@ -294,7 +373,7 @@ export const runRequest = async (input) => {
294
373
  connectionId: redisConfig?.connectionId,
295
374
  commands: redisConfig?.postCommands ?? [],
296
375
  phase: "post",
297
- context: { response: responseRoot, env: envAfter, global: {} },
376
+ context: { response: responseRoot, env: envAfter, global: globalsAfter },
298
377
  });
299
378
  const { db, redis } = buildScriptExtensions({
300
379
  connections,
@@ -305,42 +384,47 @@ export const runRequest = async (input) => {
305
384
  redisPre,
306
385
  redisPost,
307
386
  });
387
+ const reportedRequest = toReportedRequest(runtimeRequest);
388
+ const testsLogs = [];
308
389
  const testsScriptResults = await runScript(input.request.tests, {
309
390
  env: input.env,
391
+ ...(input.globals ? { globals: input.globals } : {}),
310
392
  response,
311
- request: runtimeRequest,
393
+ request: reportedRequest,
312
394
  db,
313
395
  redis,
314
396
  featurePolicy,
397
+ logs: testsLogs,
315
398
  });
399
+ scriptLogs.push(...tagLogs("tests", testsLogs));
316
400
  return {
317
401
  response,
318
- result: {
402
+ result: withDiagnostics({
319
403
  requestId: input.request.id,
320
404
  requestName: input.request.name,
321
405
  status: response.status,
322
406
  duration: response.duration,
323
407
  response,
324
- request: runtimeRequest,
408
+ request: reportedRequest,
325
409
  scriptResults: [...preRequestTestResults, ...testsScriptResults],
326
410
  contractResults,
327
- },
411
+ }, unresolved, scriptLogs),
328
412
  };
329
413
  }
330
414
  catch (error) {
331
415
  const failure = buildExecutionFailureResult(error);
332
416
  return {
333
417
  response: failure.response,
334
- result: {
418
+ result: withDiagnostics({
335
419
  requestId: input.request.id,
336
420
  requestName: input.request.name,
337
421
  status: failure.response.status,
338
422
  duration: failure.response.duration,
339
423
  response: failure.response,
340
- request: runtimeRequest,
424
+ request: toReportedRequest(runtimeRequest),
341
425
  scriptResults: failure.scriptResults,
342
426
  contractResults: [],
343
- },
427
+ }, unresolved, scriptLogs),
344
428
  };
345
429
  }
346
430
  };
@@ -1 +1 @@
1
- {"version":3,"file":"requestRunner.js","sourceRoot":"","sources":["../../src/runner/requestRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAmBtD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,gEAAgE;AAChE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,GAA4B,EAA0B,EAAE;IAC5E,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,oBAAoB,GAAG,CAC3B,MAA0C,EACpB,EAAE,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEtF,MAAM,mBAAmB,GAAG,CAAC,KAA2B,EAA0B,EAAE;IAClF,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,SAAS;QAClD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAmC,EAAsB,EAAE,CAAC,CAAC;IACzF,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9C,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK;QACX,GAAG,EACD,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI;gBACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9B,CAAC,CAAC,EAAE;QACV,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,uBAAuB,GAAG,CAC9B,GAA2B,EAC3B,SAAmC,EAC7B,EAAE;IACR,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa;YAAE,SAAS;QAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC,CAAC;AAEF,8EAA8E;AAC9E,0EAA0E;AAC1E,+BAA+B;AAC/B,MAAM,iBAAiB,GAAG,CACxB,QAAqC,EACL,EAAE;IAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI,EACF,QAAQ,IAAI,MAAM,IAAK,IAAgC;YACrD,CAAC,CAAE,IAAgC,CAAC,IAAI;YACxC,CAAC,CAAC,IAAI;QACV,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,OAA2C,EAC3C,OAAmD,EACf,EAAE;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5C,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;QAClC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;KACrC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,MAA0C,EAC1C,OAAmD,EACf,EAAE;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;QAClC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;KACrC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAClC,KAAc,EAId,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvE,OAAO;QACL,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC;YACT,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO;aACf;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,CAAC;SACZ;QACD,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,MAAM;gBACd,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,EACpC,OAAO,EACP,GAAG,EACH,gBAAgB,GACA,EAAuB,EAAE;IACzC,MAAM,cAAc,GAAG;QACrB,GAAG;QACH,QAAQ,EAAE,gBAAgB;QAC1B,OAAO;KACR,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;IACtF,MAAM,aAAa,GAA4B,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CACnF,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACnF,CAAC;IACF,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACvE,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SAC1E,CAAC,CAAC;IACT,MAAM,UAAU,GAAG;QACjB,GAAG,aAAa;QAChB,GAAG,QAAQ;QACX,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACvC,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE;QAC1E,GAAG,EAAE,aAAa,CAAC,YAAY,CAAC;QAChC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;QACxD,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa;QAC7E,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;KACzD,CAAC;AACJ,CAAC,CAAC;AAEF,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,CAAC,KAQ9B,EAA8D,EAAE;IAC/D,MAAM,EAAE,GAAmC,KAAK,CAAC,eAAe;QAC9D,CAAC,CAAC;YACE,OAAO,EAAE,wBAAwB,CAAC,KAAK,CAAC,WAAW,CAAC;YACpD,SAAS,EAAE,KAAK,CAAC,WAAW;YAC5B,UAAU,EAAE,KAAK,CAAC,YAAY;YAC9B,aAAa,EAAE;gBACb,UAAU,EAAE;oBACV,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,IAAI,SAAS;iBAC5E;gBACD,YAAY,EAAE;oBACZ,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,IAAI,SAAS;iBAC9E;aACF;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;QAC1C,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACtD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YACnD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAsC,QAAQ;QACvD,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;QACvD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,KAAsB,EACK,EAAE;IAC7B,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,WAAW,GAAyB,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAClE,MAAM,aAAa,GAAoC,KAAK,CAAC,aAAa,CAAC;IAC3E,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhD,wEAAwE;QACxE,wEAAwE;QACxE,sEAAsE;QACtE,kDAAkD;QAClD,IAAI,qBAAqB,GAAiB,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC;gBACpC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;gBACtC,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,2BAA2B;gBACrC,YAAY,EAAE;oBACZ,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;oBACvD,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5C,UAAU,EAAE;wBACV,GAAG,EAAE,IAAI;wBACT,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;wBACzB,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE,IAAI;qBAChB;iBACF;aACF,CAAC,CAAC;YACH,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAChE,qBAAqB,GAAG,SAAS,CAAC,WAA2B,CAAC;YAC9D,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO;gBACtC,CAAC,CAAC;oBACE,GAAG,KAAK,CAAC,OAAO;oBAChB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;oBAChC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG;oBAC1B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;oBACvD,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;oBACnD,IAAI,EACF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;wBACnC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;wBAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;iBACzB;gBACH,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAClB,kEAAkE;YAClE,cAAc,GAAG,4BAA4B,CAAC;gBAC5C,GAAG,KAAK;gBACR,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,MAAM,WAAW,GAAG,eAAe;YACjC,CAAC,CAAC,MAAM,oBAAoB,CAAC;gBACzB,WAAW;gBACX,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU;gBAC1C,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;aACxD,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;YAC9C,WAAW;YACX,YAAY,EAAE,WAAW,EAAE,YAAY;YACvC,QAAQ,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE;YACxC,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;SACxD,CAAC,CAAC;QAEH,4EAA4E;QAC5E,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG;YACzB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,gBAAgB;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QACF,cAAc,GAAG,MAAM,gBAAgB,CACrC,cAAc,EACd,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAC1D;YACE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;oBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,GAAG,EAAE,YAAY,CAAC,GAAG;oBACrB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,IAAI,EAAE,YAAY,CAAC,IAAI;iBACxB,CAAC,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACtD,CAAC;YACD,KAAK,EAAE,gBAAgB;SACxB,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEjD,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,MAAM,oBAAoB,CAAC;gBACzB,WAAW;gBACX,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY;gBAC5C,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;aAC/D,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;YAC/C,WAAW;YACX,YAAY,EAAE,WAAW,EAAE,YAAY;YACvC,QAAQ,EAAE,WAAW,EAAE,YAAY,IAAI,EAAE;YACzC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;SAC/D,CAAC,CAAC;QAEH,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC;YAC1C,WAAW;YACX,eAAe;YACf,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;YAC9D,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,EAAE;YACF,KAAK;YACL,aAAa;SACd,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ;YACR,MAAM,EAAE;gBACN,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC3B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ;gBACR,OAAO,EAAE,cAAc;gBACvB,aAAa,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;gBAChE,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAEnD,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE;gBACN,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC3B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC/B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,cAAc;gBACvB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,EAAE;aACpB;SACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"requestRunner.js","sourceRoot":"","sources":["../../src/runner/requestRunner.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { RunCollectionInput, RunCollectionResult } from "../types/index.js";
2
- export declare const runCollection: ({ collection, env, connections, featurePolicy, onRequestStart, onRequestComplete, }: RunCollectionInput) => Promise<RunCollectionResult>;
2
+ export declare const runCollection: ({ collection, env, globals, connections, featurePolicy, onRequestStart, onRequestComplete, }: RunCollectionInput) => Promise<RunCollectionResult>;
3
3
  //# sourceMappingURL=runCollection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCollection.d.ts","sourceRoot":"","sources":["../../src/runner/runCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAsC3B,eAAO,MAAM,aAAa,GAAU,qFAOjC,kBAAkB,KAAG,OAAO,CAAC,mBAAmB,CA+DlD,CAAC"}
1
+ {"version":3,"file":"runCollection.d.ts","sourceRoot":"","sources":["../../src/runner/runCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAsC3B,eAAO,MAAM,aAAa,GAAU,8FAQjC,kBAAkB,KAAG,OAAO,CAAC,mBAAmB,CAsElD,CAAC"}
@@ -23,8 +23,9 @@ const isRequestPassed = (result, expectedStatusExpression) => {
23
23
  }
24
24
  return result.status >= 200 && result.status < 400;
25
25
  };
26
- export const runCollection = async ({ collection, env, connections, featurePolicy, onRequestStart, onRequestComplete, }) => {
26
+ export const runCollection = async ({ collection, env, globals, connections, featurePolicy, onRequestStart, onRequestComplete, }) => {
27
27
  const envStore = getEnvStore(env);
28
+ const globalsStore = globals === undefined ? undefined : getEnvStore(globals);
28
29
  const results = [];
29
30
  let previousResponse = null;
30
31
  const runnableRequests = collection.requests.filter((request) => request.isEnabledInRunner !== false);
@@ -37,10 +38,16 @@ export const runCollection = async ({ collection, env, connections, featurePolic
37
38
  });
38
39
  // The scope the request itself resolves against — captured before the
39
40
  // call, because `previousResponse` advances to THIS request's response.
40
- const resolveContext = { env: envStore, response: previousResponse, request };
41
+ const resolveContext = {
42
+ env: envStore,
43
+ ...(globalsStore ? { globals: globalsStore } : {}),
44
+ response: previousResponse,
45
+ request,
46
+ };
41
47
  const runResult = await runRequest({
42
48
  request,
43
49
  env: envStore,
50
+ ...(globalsStore ? { globals: globalsStore } : {}),
44
51
  previousResponse,
45
52
  connections,
46
53
  featurePolicy,