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.
- package/ai-packs/scenario-nodes.md +451 -0
- package/dist/ai/index.d.ts +2 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/outputSchemas.d.ts +3 -0
- package/dist/ai/outputSchemas.d.ts.map +1 -1
- package/dist/ai/outputSchemas.js +1 -0
- package/dist/ai/outputSchemas.js.map +1 -1
- package/dist/ai/parse/diagram.d.ts.map +1 -1
- package/dist/ai/parse/diagram.js +6 -3
- package/dist/ai/parse/diagram.js.map +1 -1
- package/dist/ai/prompts/diagram.d.ts +7 -3
- package/dist/ai/prompts/diagram.d.ts.map +1 -1
- package/dist/ai/prompts/diagram.js +44 -5
- package/dist/ai/prompts/diagram.js.map +1 -1
- package/dist/ai/prompts/scenario.d.ts.map +1 -1
- package/dist/ai/prompts/scenario.js +9 -8
- package/dist/ai/prompts/scenario.js.map +1 -1
- package/dist/ai/prompts/scenarioNodeReference.d.ts +16 -0
- package/dist/ai/prompts/scenarioNodeReference.d.ts.map +1 -0
- package/dist/ai/prompts/scenarioNodeReference.js +882 -0
- package/dist/ai/prompts/scenarioNodeReference.js.map +1 -0
- package/dist/ai/types.d.ts +6 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/diagram/bpmn/derive.d.ts +74 -0
- package/dist/diagram/bpmn/derive.d.ts.map +1 -0
- package/dist/diagram/bpmn/derive.js +392 -0
- package/dist/diagram/bpmn/derive.js.map +1 -0
- package/dist/diagram/bpmn/index.d.ts +7 -0
- package/dist/diagram/bpmn/index.d.ts.map +1 -0
- package/dist/diagram/bpmn/index.js +12 -0
- package/dist/diagram/bpmn/index.js.map +1 -0
- package/dist/diagram/bpmn/patch.d.ts +14 -0
- package/dist/diagram/bpmn/patch.d.ts.map +1 -0
- package/dist/diagram/bpmn/patch.js +770 -0
- package/dist/diagram/bpmn/patch.js.map +1 -0
- package/dist/diagram/bpmn/place.d.ts +4 -0
- package/dist/diagram/bpmn/place.d.ts.map +1 -0
- package/dist/diagram/bpmn/place.js +65 -0
- package/dist/diagram/bpmn/place.js.map +1 -0
- package/dist/diagram/bpmn/serialize.d.ts +12 -0
- package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
- package/dist/diagram/bpmn/serialize.js +292 -0
- package/dist/diagram/bpmn/serialize.js.map +1 -0
- package/dist/diagram/bpmn/types.d.ts +42 -0
- package/dist/diagram/bpmn/types.d.ts.map +1 -0
- package/dist/diagram/bpmn/types.js +84 -0
- package/dist/diagram/bpmn/types.js.map +1 -0
- package/dist/diagram/bpmn/xml.d.ts +60 -0
- package/dist/diagram/bpmn/xml.d.ts.map +1 -0
- package/dist/diagram/bpmn/xml.js +342 -0
- package/dist/diagram/bpmn/xml.js.map +1 -0
- package/dist/diagram/elkGraph.d.ts +1 -3
- package/dist/diagram/elkGraph.d.ts.map +1 -1
- package/dist/diagram/elkGraph.js +1 -0
- package/dist/diagram/elkGraph.js.map +1 -1
- package/dist/diagram/fixtures.d.ts +10 -0
- package/dist/diagram/fixtures.d.ts.map +1 -0
- package/dist/diagram/fixtures.js +113 -0
- package/dist/diagram/fixtures.js.map +1 -0
- package/dist/diagram/geometry.d.ts +27 -0
- package/dist/diagram/geometry.d.ts.map +1 -0
- package/dist/diagram/geometry.js +122 -0
- package/dist/diagram/geometry.js.map +1 -0
- package/dist/diagram/history.d.ts +36 -0
- package/dist/diagram/history.d.ts.map +1 -0
- package/dist/diagram/history.js +54 -0
- package/dist/diagram/history.js.map +1 -0
- package/dist/diagram/ids.d.ts +5 -0
- package/dist/diagram/ids.d.ts.map +1 -0
- package/dist/diagram/ids.js +52 -0
- package/dist/diagram/ids.js.map +1 -0
- package/dist/diagram/index.d.ts +14 -2
- package/dist/diagram/index.d.ts.map +1 -1
- package/dist/diagram/index.js +20 -8
- package/dist/diagram/index.js.map +1 -1
- package/dist/diagram/layout.d.ts +107 -0
- package/dist/diagram/layout.d.ts.map +1 -0
- package/dist/diagram/layout.js +356 -0
- package/dist/diagram/layout.js.map +1 -0
- package/dist/diagram/mermaid/derive.d.ts +55 -0
- package/dist/diagram/mermaid/derive.d.ts.map +1 -0
- package/dist/diagram/mermaid/derive.js +343 -0
- package/dist/diagram/mermaid/derive.js.map +1 -0
- package/dist/diagram/mermaid/index.d.ts +8 -0
- package/dist/diagram/mermaid/index.d.ts.map +1 -0
- package/dist/diagram/mermaid/index.js +24 -0
- package/dist/diagram/mermaid/index.js.map +1 -0
- package/dist/diagram/mermaid/parse.d.ts +96 -0
- package/dist/diagram/mermaid/parse.d.ts.map +1 -0
- package/dist/diagram/mermaid/parse.js +672 -0
- package/dist/diagram/mermaid/parse.js.map +1 -0
- package/dist/diagram/mermaid/patch.d.ts +16 -0
- package/dist/diagram/mermaid/patch.d.ts.map +1 -0
- package/dist/diagram/mermaid/patch.js +463 -0
- package/dist/diagram/mermaid/patch.js.map +1 -0
- package/dist/diagram/mermaid/serialize.d.ts +14 -0
- package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
- package/dist/diagram/mermaid/serialize.js +125 -0
- package/dist/diagram/mermaid/serialize.js.map +1 -0
- package/dist/diagram/mermaid/shapes.d.ts +11 -0
- package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
- package/dist/diagram/mermaid/shapes.js +320 -0
- package/dist/diagram/mermaid/shapes.js.map +1 -0
- package/dist/diagram/migrations.d.ts +1 -0
- package/dist/diagram/migrations.d.ts.map +1 -1
- package/dist/diagram/migrations.js +7 -2
- package/dist/diagram/migrations.js.map +1 -1
- package/dist/diagram/normalize.d.ts +9 -1
- package/dist/diagram/normalize.d.ts.map +1 -1
- package/dist/diagram/normalize.js +194 -0
- package/dist/diagram/normalize.js.map +1 -1
- package/dist/diagram/ops.d.ts +146 -0
- package/dist/diagram/ops.d.ts.map +1 -0
- package/dist/diagram/ops.js +823 -0
- package/dist/diagram/ops.js.map +1 -0
- package/dist/diagram/opsReference.d.ts +3 -0
- package/dist/diagram/opsReference.d.ts.map +1 -0
- package/dist/diagram/opsReference.js +51 -0
- package/dist/diagram/opsReference.js.map +1 -0
- package/dist/diagram/patchInput.d.ts +193 -0
- package/dist/diagram/patchInput.d.ts.map +1 -0
- package/dist/diagram/patchInput.js +621 -0
- package/dist/diagram/patchInput.js.map +1 -0
- package/dist/diagram/routing/batch.d.ts +45 -0
- package/dist/diagram/routing/batch.d.ts.map +1 -0
- package/dist/diagram/routing/batch.js +136 -0
- package/dist/diagram/routing/batch.js.map +1 -0
- package/dist/diagram/routing/curves.d.ts +7 -0
- package/dist/diagram/routing/curves.d.ts.map +1 -0
- package/dist/diagram/routing/curves.js +120 -0
- package/dist/diagram/routing/curves.js.map +1 -0
- package/dist/diagram/routing/grid.d.ts +15 -0
- package/dist/diagram/routing/grid.d.ts.map +1 -0
- package/dist/diagram/routing/grid.js +245 -0
- package/dist/diagram/routing/grid.js.map +1 -0
- package/dist/diagram/routing/index.d.ts +10 -0
- package/dist/diagram/routing/index.d.ts.map +1 -0
- package/dist/diagram/routing/index.js +10 -0
- package/dist/diagram/routing/index.js.map +1 -0
- package/dist/diagram/routing/legacy.d.ts +6 -0
- package/dist/diagram/routing/legacy.d.ts.map +1 -0
- package/dist/diagram/routing/legacy.js +27 -0
- package/dist/diagram/routing/legacy.js.map +1 -0
- package/dist/diagram/routing/nudge.d.ts +4 -0
- package/dist/diagram/routing/nudge.d.ts.map +1 -0
- package/dist/diagram/routing/nudge.js +96 -0
- package/dist/diagram/routing/nudge.js.map +1 -0
- package/dist/diagram/routing/orthogonal.d.ts +6 -0
- package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
- package/dist/diagram/routing/orthogonal.js +56 -0
- package/dist/diagram/routing/orthogonal.js.map +1 -0
- package/dist/diagram/routing/path.d.ts +16 -0
- package/dist/diagram/routing/path.d.ts.map +1 -0
- package/dist/diagram/routing/path.js +128 -0
- package/dist/diagram/routing/path.js.map +1 -0
- package/dist/diagram/routing/sides.d.ts +22 -0
- package/dist/diagram/routing/sides.d.ts.map +1 -0
- package/dist/diagram/routing/sides.js +74 -0
- package/dist/diagram/routing/sides.js.map +1 -0
- package/dist/diagram/routing/types.d.ts +46 -0
- package/dist/diagram/routing/types.d.ts.map +1 -0
- package/dist/diagram/routing/types.js +11 -0
- package/dist/diagram/routing/types.js.map +1 -0
- package/dist/diagram/schema.d.ts +70 -37
- package/dist/diagram/schema.d.ts.map +1 -1
- package/dist/diagram/schema.js +62 -8
- package/dist/diagram/schema.js.map +1 -1
- package/dist/diagram/styleInput.d.ts +41 -0
- package/dist/diagram/styleInput.d.ts.map +1 -0
- package/dist/diagram/styleInput.js +105 -0
- package/dist/diagram/styleInput.js.map +1 -0
- package/dist/diagram/views.d.ts +9 -0
- package/dist/diagram/views.d.ts.map +1 -0
- package/dist/diagram/views.js +42 -0
- package/dist/diagram/views.js.map +1 -0
- package/dist/http-file/flatImport.d.ts +1 -0
- package/dist/http-file/flatImport.d.ts.map +1 -1
- package/dist/http-file/flatImport.js.map +1 -1
- package/dist/http-file/index.d.ts +1 -1
- package/dist/http-file/index.d.ts.map +1 -1
- package/dist/http-file/index.js +1 -1
- package/dist/http-file/index.js.map +1 -1
- package/dist/http-file/parseHttpFile.d.ts +1 -0
- package/dist/http-file/parseHttpFile.d.ts.map +1 -1
- package/dist/http-file/parseHttpFile.js +40 -8
- package/dist/http-file/parseHttpFile.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/request/requestBody.d.ts +55 -0
- package/dist/request/requestBody.d.ts.map +1 -0
- package/dist/request/requestBody.js +198 -0
- package/dist/request/requestBody.js.map +1 -0
- package/dist/runner/requestRunner.d.ts.map +1 -1
- package/dist/runner/requestRunner.js +127 -43
- package/dist/runner/requestRunner.js.map +1 -1
- package/dist/runner/runCollection.d.ts +1 -1
- package/dist/runner/runCollection.d.ts.map +1 -1
- package/dist/runner/runCollection.js +9 -2
- package/dist/runner/runCollection.js.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts +2 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/helpers/request-helpers.js +8 -40
- package/dist/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.js +2 -29
- package/dist/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist/scenario-runner/index.d.ts +1 -0
- package/dist/scenario-runner/index.d.ts.map +1 -1
- package/dist/scenario-runner/index.js +1 -0
- package/dist/scenario-runner/index.js.map +1 -1
- package/dist/scenario-runner/labels.d.ts +3 -0
- package/dist/scenario-runner/labels.d.ts.map +1 -0
- package/dist/scenario-runner/labels.js +20 -0
- package/dist/scenario-runner/labels.js.map +1 -0
- package/dist/scenario-runner/runScenario.d.ts.map +1 -1
- package/dist/scenario-runner/runScenario.js +4 -11
- package/dist/scenario-runner/runScenario.js.map +1 -1
- package/dist/script/legacy.d.ts.map +1 -1
- package/dist/script/legacy.js +24 -9
- package/dist/script/legacy.js.map +1 -1
- package/dist/types/index.d.ts +18 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/variables/resolver.d.ts.map +1 -1
- package/dist/variables/resolver.js +27 -5
- package/dist/variables/resolver.js.map +1 -1
- package/dist-cjs/ai/index.js +4 -1
- package/dist-cjs/ai/index.js.map +1 -1
- package/dist-cjs/ai/outputSchemas.js +1 -0
- package/dist-cjs/ai/outputSchemas.js.map +1 -1
- package/dist-cjs/ai/parse/diagram.js +6 -3
- package/dist-cjs/ai/parse/diagram.js.map +1 -1
- package/dist-cjs/ai/prompts/diagram.js +44 -5
- package/dist-cjs/ai/prompts/diagram.js.map +1 -1
- package/dist-cjs/ai/prompts/scenario.js +9 -8
- package/dist-cjs/ai/prompts/scenario.js.map +1 -1
- package/dist-cjs/ai/prompts/scenarioNodeReference.js +886 -0
- package/dist-cjs/ai/prompts/scenarioNodeReference.js.map +1 -0
- package/dist-cjs/diagram/bpmn/derive.js +398 -0
- package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
- package/dist-cjs/diagram/bpmn/index.js +31 -0
- package/dist-cjs/diagram/bpmn/index.js.map +1 -0
- package/dist-cjs/diagram/bpmn/patch.js +774 -0
- package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
- package/dist-cjs/diagram/bpmn/place.js +69 -0
- package/dist-cjs/diagram/bpmn/place.js.map +1 -0
- package/dist-cjs/diagram/bpmn/serialize.js +299 -0
- package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
- package/dist-cjs/diagram/bpmn/types.js +99 -0
- package/dist-cjs/diagram/bpmn/types.js.map +1 -0
- package/dist-cjs/diagram/bpmn/xml.js +367 -0
- package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
- package/dist-cjs/diagram/elkGraph.js +1 -0
- package/dist-cjs/diagram/elkGraph.js.map +1 -1
- package/dist-cjs/diagram/fixtures.js +117 -0
- package/dist-cjs/diagram/fixtures.js.map +1 -0
- package/dist-cjs/diagram/geometry.js +143 -0
- package/dist-cjs/diagram/geometry.js.map +1 -0
- package/dist-cjs/diagram/history.js +65 -0
- package/dist-cjs/diagram/history.js.map +1 -0
- package/dist-cjs/diagram/ids.js +58 -0
- package/dist-cjs/diagram/ids.js.map +1 -0
- package/dist-cjs/diagram/index.js +23 -8
- package/dist-cjs/diagram/index.js.map +1 -1
- package/dist-cjs/diagram/layout.js +364 -0
- package/dist-cjs/diagram/layout.js.map +1 -0
- package/dist-cjs/diagram/mermaid/derive.js +353 -0
- package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
- package/dist-cjs/diagram/mermaid/index.js +44 -0
- package/dist-cjs/diagram/mermaid/index.js.map +1 -0
- package/dist-cjs/diagram/mermaid/parse.js +681 -0
- package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
- package/dist-cjs/diagram/mermaid/patch.js +468 -0
- package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
- package/dist-cjs/diagram/mermaid/serialize.js +133 -0
- package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
- package/dist-cjs/diagram/mermaid/shapes.js +327 -0
- package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
- package/dist-cjs/diagram/migrations.js +9 -3
- package/dist-cjs/diagram/migrations.js.map +1 -1
- package/dist-cjs/diagram/normalize.js +198 -1
- package/dist-cjs/diagram/normalize.js.map +1 -1
- package/dist-cjs/diagram/ops.js +829 -0
- package/dist-cjs/diagram/ops.js.map +1 -0
- package/dist-cjs/diagram/opsReference.js +55 -0
- package/dist-cjs/diagram/opsReference.js.map +1 -0
- package/dist-cjs/diagram/patchInput.js +636 -0
- package/dist-cjs/diagram/patchInput.js.map +1 -0
- package/dist-cjs/diagram/routing/batch.js +142 -0
- package/dist-cjs/diagram/routing/batch.js.map +1 -0
- package/dist-cjs/diagram/routing/curves.js +127 -0
- package/dist-cjs/diagram/routing/curves.js.map +1 -0
- package/dist-cjs/diagram/routing/grid.js +250 -0
- package/dist-cjs/diagram/routing/grid.js.map +1 -0
- package/dist-cjs/diagram/routing/index.js +29 -0
- package/dist-cjs/diagram/routing/index.js.map +1 -0
- package/dist-cjs/diagram/routing/legacy.js +32 -0
- package/dist-cjs/diagram/routing/legacy.js.map +1 -0
- package/dist-cjs/diagram/routing/nudge.js +100 -0
- package/dist-cjs/diagram/routing/nudge.js.map +1 -0
- package/dist-cjs/diagram/routing/orthogonal.js +62 -0
- package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
- package/dist-cjs/diagram/routing/path.js +137 -0
- package/dist-cjs/diagram/routing/path.js.map +1 -0
- package/dist-cjs/diagram/routing/sides.js +82 -0
- package/dist-cjs/diagram/routing/sides.js.map +1 -0
- package/dist-cjs/diagram/routing/types.js +15 -0
- package/dist-cjs/diagram/routing/types.js.map +1 -0
- package/dist-cjs/diagram/schema.js +64 -9
- package/dist-cjs/diagram/schema.js.map +1 -1
- package/dist-cjs/diagram/styleInput.js +113 -0
- package/dist-cjs/diagram/styleInput.js.map +1 -0
- package/dist-cjs/diagram/views.js +46 -0
- package/dist-cjs/diagram/views.js.map +1 -0
- package/dist-cjs/http-file/flatImport.js.map +1 -1
- package/dist-cjs/http-file/index.js +2 -1
- package/dist-cjs/http-file/index.js.map +1 -1
- package/dist-cjs/http-file/parseHttpFile.js +42 -9
- package/dist-cjs/http-file/parseHttpFile.js.map +1 -1
- package/dist-cjs/index.js +9 -1
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/request/requestBody.js +206 -0
- package/dist-cjs/request/requestBody.js.map +1 -0
- package/dist-cjs/runner/requestRunner.js +127 -43
- package/dist-cjs/runner/requestRunner.js.map +1 -1
- package/dist-cjs/runner/runCollection.js +9 -2
- package/dist-cjs/runner/runCollection.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js +7 -42
- package/dist-cjs/scenario-runner/adapters/helpers/request-helpers.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/request-executor.js +3 -30
- package/dist-cjs/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist-cjs/scenario-runner/index.js +4 -1
- package/dist-cjs/scenario-runner/index.js.map +1 -1
- package/dist-cjs/scenario-runner/labels.js +24 -0
- package/dist-cjs/scenario-runner/labels.js.map +1 -0
- package/dist-cjs/scenario-runner/runScenario.js +4 -11
- package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
- package/dist-cjs/script/legacy.js +24 -9
- package/dist-cjs/script/legacy.js.map +1 -1
- package/dist-cjs/variables/resolver.js +27 -5
- package/dist-cjs/variables/resolver.js.map +1 -1
- 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":"
|
|
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
|
|
48
|
-
// template resolution (and later requests) see
|
|
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
|
-
|
|
84
|
+
const target = mutation.scope === "environment" ? env : mutation.scope === "global" ? globals : undefined;
|
|
85
|
+
if (!target)
|
|
52
86
|
continue;
|
|
53
|
-
|
|
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:
|
|
198
|
+
headers: headers !== undefined || isEnvelope ? wire.headers : undefined,
|
|
157
199
|
query: queryPairs.length > 0 ? Object.fromEntries(queryPairs) : explicitQuery,
|
|
158
|
-
body:
|
|
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
|
|
203
|
-
//
|
|
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
|
-
|
|
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.
|
|
233
|
-
|
|
234
|
-
|
|
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
|
-
|
|
239
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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 = {
|
|
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,
|