callman-core 1.27.0 → 1.28.1
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/db-queries.md +10 -1
- package/ai-packs/diagram-components.md +373 -0
- package/ai-packs/scenario-nodes.md +451 -0
- package/dist/ai/index.d.ts +1 -0
- 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/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/curl/bodyFormat.d.ts +4 -0
- package/dist/curl/bodyFormat.d.ts.map +1 -0
- package/dist/curl/bodyFormat.js +80 -0
- package/dist/curl/bodyFormat.js.map +1 -0
- package/dist/curl/index.d.ts +5 -0
- package/dist/curl/index.d.ts.map +1 -0
- package/dist/curl/index.js +4 -0
- package/dist/curl/index.js.map +1 -0
- package/dist/curl/parseCurl.d.ts +4 -0
- package/dist/curl/parseCurl.d.ts.map +1 -0
- package/dist/curl/parseCurl.js +288 -0
- package/dist/curl/parseCurl.js.map +1 -0
- package/dist/curl/rows.d.ts +6 -0
- package/dist/curl/rows.d.ts.map +1 -0
- package/dist/curl/rows.js +23 -0
- package/dist/curl/rows.js.map +1 -0
- package/dist/curl/types.d.ts +21 -0
- package/dist/curl/types.d.ts.map +1 -0
- package/dist/curl/types.js +6 -0
- package/dist/curl/types.js.map +1 -0
- package/dist/diagram/componentCatalog.d.ts +31 -0
- package/dist/diagram/componentCatalog.d.ts.map +1 -0
- package/dist/diagram/componentCatalog.data.d.ts +3 -0
- package/dist/diagram/componentCatalog.data.d.ts.map +1 -0
- package/dist/diagram/componentCatalog.data.js +287 -0
- package/dist/diagram/componentCatalog.data.js.map +1 -0
- package/dist/diagram/componentCatalog.js +71 -0
- package/dist/diagram/componentCatalog.js.map +1 -0
- package/dist/diagram/edgeSemantics.d.ts +28 -0
- package/dist/diagram/edgeSemantics.d.ts.map +1 -0
- package/dist/diagram/edgeSemantics.js +78 -0
- package/dist/diagram/edgeSemantics.js.map +1 -0
- package/dist/diagram/elkGraph.d.ts +80 -0
- package/dist/diagram/elkGraph.d.ts.map +1 -0
- package/dist/diagram/elkGraph.js +283 -0
- package/dist/diagram/elkGraph.js.map +1 -0
- package/dist/diagram/index.d.ts +7 -0
- package/dist/diagram/index.d.ts.map +1 -0
- package/dist/diagram/index.js +13 -0
- package/dist/diagram/index.js.map +1 -0
- package/dist/diagram/migrations.d.ts +3 -0
- package/dist/diagram/migrations.d.ts.map +1 -0
- package/dist/diagram/migrations.js +33 -0
- package/dist/diagram/migrations.js.map +1 -0
- package/dist/diagram/normalize.d.ts +4 -0
- package/dist/diagram/normalize.d.ts.map +1 -0
- package/dist/diagram/normalize.js +68 -0
- package/dist/diagram/normalize.js.map +1 -0
- package/dist/diagram/schema.d.ts +116 -0
- package/dist/diagram/schema.d.ts.map +1 -0
- package/dist/diagram/schema.js +135 -0
- package/dist/diagram/schema.js.map +1 -0
- package/dist/http-file/detect.d.ts +12 -0
- package/dist/http-file/detect.d.ts.map +1 -0
- package/dist/http-file/detect.js +108 -0
- package/dist/http-file/detect.js.map +1 -0
- package/dist/http-file/flatImport.d.ts +33 -0
- package/dist/http-file/flatImport.d.ts.map +1 -0
- package/dist/http-file/flatImport.js +102 -0
- package/dist/http-file/flatImport.js.map +1 -0
- package/dist/http-file/index.d.ts +4 -0
- package/dist/http-file/index.d.ts.map +1 -0
- package/dist/http-file/index.js +7 -0
- package/dist/http-file/index.js.map +1 -0
- package/dist/http-file/parseHttpFile.d.ts +13 -0
- package/dist/http-file/parseHttpFile.d.ts.map +1 -0
- package/dist/http-file/parseHttpFile.js +154 -0
- package/dist/http-file/parseHttpFile.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -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/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/curl/bodyFormat.js +85 -0
- package/dist-cjs/curl/bodyFormat.js.map +1 -0
- package/dist-cjs/curl/index.js +15 -0
- package/dist-cjs/curl/index.js.map +1 -0
- package/dist-cjs/curl/parseCurl.js +293 -0
- package/dist-cjs/curl/parseCurl.js.map +1 -0
- package/dist-cjs/curl/rows.js +30 -0
- package/dist-cjs/curl/rows.js.map +1 -0
- package/dist-cjs/curl/types.js +7 -0
- package/dist-cjs/curl/types.js.map +1 -0
- package/dist-cjs/diagram/componentCatalog.data.js +290 -0
- package/dist-cjs/diagram/componentCatalog.data.js.map +1 -0
- package/dist-cjs/diagram/componentCatalog.js +79 -0
- package/dist-cjs/diagram/componentCatalog.js.map +1 -0
- package/dist-cjs/diagram/edgeSemantics.js +86 -0
- package/dist-cjs/diagram/edgeSemantics.js.map +1 -0
- package/dist-cjs/diagram/elkGraph.js +293 -0
- package/dist-cjs/diagram/elkGraph.js.map +1 -0
- package/dist-cjs/diagram/index.js +33 -0
- package/dist-cjs/diagram/index.js.map +1 -0
- package/dist-cjs/diagram/migrations.js +37 -0
- package/dist-cjs/diagram/migrations.js.map +1 -0
- package/dist-cjs/diagram/normalize.js +73 -0
- package/dist-cjs/diagram/normalize.js.map +1 -0
- package/dist-cjs/diagram/schema.js +144 -0
- package/dist-cjs/diagram/schema.js.map +1 -0
- package/dist-cjs/http-file/detect.js +113 -0
- package/dist-cjs/http-file/detect.js.map +1 -0
- package/dist-cjs/http-file/flatImport.js +109 -0
- package/dist-cjs/http-file/flatImport.js.map +1 -0
- package/dist-cjs/http-file/index.js +21 -0
- package/dist-cjs/http-file/index.js.map +1 -0
- package/dist-cjs/http-file/parseHttpFile.js +160 -0
- package/dist-cjs/http-file/parseHttpFile.js.map +1 -0
- package/dist-cjs/index.js +14 -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,154 @@
|
|
|
1
|
+
// Importer for the VS Code REST Client / JetBrains ".http" (aka ".rest")
|
|
2
|
+
// format: requests separated by `###`, each with a `METHOD url` line, header
|
|
3
|
+
// lines, a blank line, then a body. `{{var}}` references map straight onto
|
|
4
|
+
// callman's templating, so no rewriting is needed.
|
|
5
|
+
//
|
|
6
|
+
// File variables (`@name = value` lines before a request line) are returned
|
|
7
|
+
// as-is in `variables`, NOT substituted into the requests: both clients
|
|
8
|
+
// resolve `{{name}}` at send time, which is exactly what callman does once
|
|
9
|
+
// the caller puts the variables in an environment. A value that references
|
|
10
|
+
// another variable (`@url = {{host}}/api`) stays a template too — callman's
|
|
11
|
+
// resolver expands nested tokens.
|
|
12
|
+
import { inferBodyStateFromRaw } from "../curl/bodyFormat.js";
|
|
13
|
+
import { filledRows, queryRowsFromUrl } from "../curl/rows.js";
|
|
14
|
+
import { stripUrlQuery } from "../utils/urlQuery.js";
|
|
15
|
+
import { collectionNameFromFileName, toPersistedRequestBody, } from "./flatImport.js";
|
|
16
|
+
const REQUEST_LINE = /^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|TRACE|CONNECT)\s+(\S.*)$/i;
|
|
17
|
+
// Split on `###` delimiter lines. Any trailing text on the delimiter line
|
|
18
|
+
// (`### Get user`) becomes the block title. Content before the first `###`
|
|
19
|
+
// is its own (untitled) block, since many .http files omit the leading one.
|
|
20
|
+
const splitBlocks = (text) => {
|
|
21
|
+
const blocks = [];
|
|
22
|
+
let title = "";
|
|
23
|
+
let lines = [];
|
|
24
|
+
let started = false;
|
|
25
|
+
const push = () => {
|
|
26
|
+
if (started)
|
|
27
|
+
blocks.push({ title, lines });
|
|
28
|
+
};
|
|
29
|
+
for (const raw of text.split(/\r?\n/)) {
|
|
30
|
+
const delimiter = raw.match(/^\s*###+(.*)$/);
|
|
31
|
+
if (delimiter) {
|
|
32
|
+
push();
|
|
33
|
+
title = delimiter[1].trim();
|
|
34
|
+
lines = [];
|
|
35
|
+
started = true;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
started = true;
|
|
39
|
+
lines.push(raw);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
push();
|
|
43
|
+
return blocks;
|
|
44
|
+
};
|
|
45
|
+
// `@base = https://api.example.com` — a file variable definition line.
|
|
46
|
+
const FILE_VARIABLE_LINE = /^@([\w-]+)\s*=(.*)$/;
|
|
47
|
+
const parseBlock = (block) => {
|
|
48
|
+
const headers = [];
|
|
49
|
+
const variables = [];
|
|
50
|
+
let name = block.title;
|
|
51
|
+
let index = 0;
|
|
52
|
+
// Skip leading comments, capturing an explicit `# @name foo` if present,
|
|
53
|
+
// and collect file-variable definitions.
|
|
54
|
+
for (; index < block.lines.length; index += 1) {
|
|
55
|
+
const line = block.lines[index].trim();
|
|
56
|
+
if (!line)
|
|
57
|
+
continue;
|
|
58
|
+
if (line.startsWith("#") || line.startsWith("//")) {
|
|
59
|
+
const nameMatch = line.match(/@name\s*=?\s*(.+)$/);
|
|
60
|
+
if (nameMatch && !name)
|
|
61
|
+
name = nameMatch[1].trim();
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const variable = line.match(FILE_VARIABLE_LINE);
|
|
65
|
+
if (variable) {
|
|
66
|
+
variables.push({ key: variable[1], value: variable[2].trim(), enabled: true });
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
if (index >= block.lines.length)
|
|
72
|
+
return { request: null, variables };
|
|
73
|
+
// Request line: `METHOD url [HTTP/1.1]` or a bare url (defaults to GET).
|
|
74
|
+
const requestLine = block.lines[index].trim().replace(/\s+HTTP\/[\d.]+$/i, "");
|
|
75
|
+
const match = requestLine.match(REQUEST_LINE);
|
|
76
|
+
let method;
|
|
77
|
+
let url;
|
|
78
|
+
if (match) {
|
|
79
|
+
method = match[1].toUpperCase();
|
|
80
|
+
url = match[2].trim();
|
|
81
|
+
}
|
|
82
|
+
else if (/^(https?:\/\/|\{\{)/i.test(requestLine)) {
|
|
83
|
+
method = "GET";
|
|
84
|
+
url = requestLine;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
return { request: null, variables };
|
|
88
|
+
}
|
|
89
|
+
index += 1;
|
|
90
|
+
// Header lines up to the first blank line.
|
|
91
|
+
for (; index < block.lines.length; index += 1) {
|
|
92
|
+
const line = block.lines[index];
|
|
93
|
+
if (!line.trim()) {
|
|
94
|
+
index += 1;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
const separator = line.indexOf(":");
|
|
98
|
+
if (separator > 0) {
|
|
99
|
+
headers.push({
|
|
100
|
+
key: line.slice(0, separator).trim(),
|
|
101
|
+
value: line.slice(separator + 1).trim(),
|
|
102
|
+
enabled: true,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const bodyRaw = block.lines.slice(index).join("\n").trim();
|
|
107
|
+
if (!name)
|
|
108
|
+
name = `${method} ${url}`;
|
|
109
|
+
return { request: { name, method, url, headers, bodyRaw }, variables };
|
|
110
|
+
};
|
|
111
|
+
export const parseHttpRequests = (text) => splitBlocks(text)
|
|
112
|
+
.map((block) => parseBlock(block).request)
|
|
113
|
+
.filter((request) => request !== null);
|
|
114
|
+
// Every `@name = value` file variable, in file order. A name defined twice
|
|
115
|
+
// keeps its first position and its LAST value (a later definition overrides
|
|
116
|
+
// an earlier one for the requests below it; one environment can hold only
|
|
117
|
+
// one value).
|
|
118
|
+
export const parseHttpVariables = (text) => {
|
|
119
|
+
const byKey = new Map();
|
|
120
|
+
for (const block of splitBlocks(text)) {
|
|
121
|
+
for (const variable of parseBlock(block).variables) {
|
|
122
|
+
const existing = byKey.get(variable.key);
|
|
123
|
+
if (existing)
|
|
124
|
+
existing.value = variable.value;
|
|
125
|
+
else
|
|
126
|
+
byKey.set(variable.key, variable);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return [...byKey.values()];
|
|
130
|
+
};
|
|
131
|
+
export const parseHttpFile = (fileName, text) => {
|
|
132
|
+
const parsed = parseHttpRequests(text);
|
|
133
|
+
if (parsed.length === 0) {
|
|
134
|
+
throw new Error("No requests found in the .http file");
|
|
135
|
+
}
|
|
136
|
+
const variables = parseHttpVariables(text);
|
|
137
|
+
return {
|
|
138
|
+
collectionName: collectionNameFromFileName(fileName, "Imported HTTP file"),
|
|
139
|
+
...(variables.length > 0 ? { variables } : {}),
|
|
140
|
+
requests: parsed.map((request) => {
|
|
141
|
+
const bodyState = inferBodyStateFromRaw(request.bodyRaw, request.headers);
|
|
142
|
+
return {
|
|
143
|
+
name: request.name,
|
|
144
|
+
method: request.method,
|
|
145
|
+
url: stripUrlQuery(request.url),
|
|
146
|
+
// Strip blank rows — the backend rejects headers/query with empty keys.
|
|
147
|
+
headers: filledRows(request.headers),
|
|
148
|
+
query: filledRows(queryRowsFromUrl(request.url)),
|
|
149
|
+
body: toPersistedRequestBody(bodyState),
|
|
150
|
+
};
|
|
151
|
+
}),
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=parseHttpFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseHttpFile.js","sourceRoot":"","sources":["../../src/http-file/parseHttpFile.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { runCollection } from "./runner/runCollection.js";
|
|
|
2
2
|
export { runRequest } from "./runner/requestRunner.js";
|
|
3
3
|
export { runRequestWithDataset } from "./runner/runRequestWithDataset.js";
|
|
4
4
|
export { executeRequest } from "./request/executeRequest.js";
|
|
5
|
+
export { contentTypeForRawLanguage, describeRequestBody, persistedBodyToWire, readRequestBodyEnvelope, type RequestBodyEnvelope, type RequestBodyFormEntry, type WireRequestBody, } from "./request/requestBody.js";
|
|
5
6
|
export { resolveOAuth2Token, buildOAuth2TokenRequest, OAuth2Error, type OAuth2HttpRequest, type OAuth2HttpResponse, type OAuth2HttpPost, type OAuth2TokenCacheEntry, } from "./request/oauth2.js";
|
|
6
7
|
export { isXmlContentType, parseXml, looksLikeXml, XML_PARSER_OPTIONS, type ParseXmlResult, } from "./utils/xml.js";
|
|
7
8
|
export { sanitizeJsonBody } from "./utils/jsonc.js";
|
|
@@ -29,6 +30,9 @@ export { applySoapRequestTransforms, type SoapRequestConfig, type SoapRuntimeReq
|
|
|
29
30
|
export { buildWsSecurityHeader, injectWsSecurityHeader, type WsSecurityConfig, type WsSecurityHeaderParts, } from "./soap/wsSecurity.js";
|
|
30
31
|
export { SOAP_11_ENVELOPE_TEMPLATE, SOAP_12_ENVELOPE_TEMPLATE, getSoapEnvelopeTemplate, } from "./soap/envelope.js";
|
|
31
32
|
export * from "./ai/index.js";
|
|
33
|
+
export * from "./curl/index.js";
|
|
34
|
+
export * from "./http-file/index.js";
|
|
35
|
+
export * from "./diagram/index.js";
|
|
32
36
|
export * from "./ui-test/compose.js";
|
|
33
37
|
export * from "./scenario-runner/index.js";
|
|
34
38
|
export * from "./host/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,9 @@ export { runCollection } from "./runner/runCollection.js";
|
|
|
2
2
|
export { runRequest } from "./runner/requestRunner.js";
|
|
3
3
|
export { runRequestWithDataset } from "./runner/runRequestWithDataset.js";
|
|
4
4
|
export { executeRequest } from "./request/executeRequest.js";
|
|
5
|
+
// Persisted request body → wire form (raw text / urlencoded / multipart text
|
|
6
|
+
// fields / none), shared by runRequest and the scenario request executor.
|
|
7
|
+
export { contentTypeForRawLanguage, describeRequestBody, persistedBodyToWire, readRequestBodyEnvelope, } from "./request/requestBody.js";
|
|
5
8
|
export { resolveOAuth2Token, buildOAuth2TokenRequest, OAuth2Error, } from "./request/oauth2.js";
|
|
6
9
|
export { isXmlContentType, parseXml, looksLikeXml, XML_PARSER_OPTIONS, } from "./utils/xml.js";
|
|
7
10
|
export { sanitizeJsonBody } from "./utils/jsonc.js";
|
|
@@ -30,6 +33,11 @@ export { SOAP_11_ENVELOPE_TEMPLATE, SOAP_12_ENVELOPE_TEMPLATE, getSoapEnvelopeTe
|
|
|
30
33
|
// extraction (jsonRepair) — one source for backend hosted generation and
|
|
31
34
|
// desktop local-CLI generation.
|
|
32
35
|
export * from "./ai/index.js";
|
|
36
|
+
// Import parsers (cURL, .http) + format detection and the diagram document
|
|
37
|
+
// contract — shared by the desktop, the MCP server and the backend.
|
|
38
|
+
export * from "./curl/index.js";
|
|
39
|
+
export * from "./http-file/index.js";
|
|
40
|
+
export * from "./diagram/index.js";
|
|
33
41
|
export * from "./ui-test/compose.js";
|
|
34
42
|
export * from "./scenario-runner/index.js";
|
|
35
43
|
export * from "./host/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GAKZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8BnF,OAAO,EACL,eAAe,GAIhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAwB,MAAM,6BAA6B,CAAC;AAC3F,kDAAkD;AAClD,OAAO,EACL,0BAA0B,GAG3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,8EAA8E;AAC9E,yEAAyE;AACzE,gCAAgC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GAKZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8BnF,OAAO,EACL,eAAe,GAIhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAwB,MAAM,6BAA6B,CAAC;AAC3F,kDAAkD;AAClD,OAAO,EACL,0BAA0B,GAG3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,8EAA8E;AAC9E,yEAAyE;AACzE,gCAAgC;AAChC,cAAc,eAAe,CAAC;AAC9B,2EAA2E;AAC3E,oEAAoE;AACpE,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { RequestBodyMode } from "../curl/types.js";
|
|
2
|
+
export interface RequestBodyFormEntry {
|
|
3
|
+
key: string;
|
|
4
|
+
value: string;
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
type?: "text" | "file";
|
|
7
|
+
}
|
|
8
|
+
export interface RequestBodyEnvelope {
|
|
9
|
+
mode: RequestBodyMode;
|
|
10
|
+
raw?: string;
|
|
11
|
+
rawLanguage?: string;
|
|
12
|
+
formEntries?: RequestBodyFormEntry[];
|
|
13
|
+
}
|
|
14
|
+
export interface WireRequestBody {
|
|
15
|
+
/**
|
|
16
|
+
* How the body was read: an envelope mode, or `"value"` for a plain JSON
|
|
17
|
+
* value (which is passed through untouched).
|
|
18
|
+
*/
|
|
19
|
+
mode: RequestBodyMode | "value";
|
|
20
|
+
/**
|
|
21
|
+
* What the HTTP driver sends: `undefined` (no body), the raw text, the
|
|
22
|
+
* urlencoded string (`a=1&b=2`), a `FormData` of the text fields, or the
|
|
23
|
+
* plain value unchanged.
|
|
24
|
+
*/
|
|
25
|
+
data: unknown;
|
|
26
|
+
/**
|
|
27
|
+
* The Content-Type the body implies (`application/xml`,
|
|
28
|
+
* `application/x-www-form-urlencoded`, …). Absent for no body, plain values
|
|
29
|
+
* and multipart — the driver writes the multipart boundary itself.
|
|
30
|
+
*/
|
|
31
|
+
contentType?: string;
|
|
32
|
+
/** The input headers with Content-Type reconciled against the body. */
|
|
33
|
+
headers: Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Keys of enabled multipart FILE parts. They are NOT in `data`: file bytes
|
|
36
|
+
* need a fixture store, which only scenario hosts have.
|
|
37
|
+
*/
|
|
38
|
+
fileParts: string[];
|
|
39
|
+
}
|
|
40
|
+
export declare const contentTypeForRawLanguage: (language: string | undefined) => string;
|
|
41
|
+
export declare const readRequestBodyEnvelope: (body: unknown) => RequestBodyEnvelope | null;
|
|
42
|
+
export declare const buildFormBody: (mode: "formdata" | "urlencoded", entries: readonly RequestBodyFormEntry[], resolve?: (text: string) => string) => URLSearchParams | FormData;
|
|
43
|
+
/**
|
|
44
|
+
* Map a persisted request body to its wire form. `resolve` (optional) is
|
|
45
|
+
* applied to the raw text and to form keys/values so `{{var}}` templates
|
|
46
|
+
* resolve inside them; plain values are returned untouched (resolve them
|
|
47
|
+
* yourself — `runRequest` does, deep, as it always has).
|
|
48
|
+
*
|
|
49
|
+
* Multipart FILE parts are not sent (see `WireRequestBody.fileParts`).
|
|
50
|
+
*/
|
|
51
|
+
export declare const persistedBodyToWire: (body: unknown, headers?: Record<string, string>, options?: {
|
|
52
|
+
resolve?: (text: string) => string;
|
|
53
|
+
}) => WireRequestBody;
|
|
54
|
+
export declare const describeRequestBody: (body: unknown) => unknown;
|
|
55
|
+
//# sourceMappingURL=requestBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestBody.d.ts","sourceRoot":"","sources":["../../src/request/requestBody.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAChC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAyBD,eAAO,MAAM,yBAAyB,GAAI,UAAU,MAAM,GAAG,SAAS,KAAG,MAYxE,CAAC;AAIF,eAAO,MAAM,uBAAuB,GAAI,MAAM,OAAO,KAAG,mBAAmB,GAAG,IA6B7E,CAAC;AAKF,eAAO,MAAM,aAAa,GACxB,MAAM,UAAU,GAAG,YAAY,EAC/B,SAAS,SAAS,oBAAoB,EAAE,EACxC,UAAS,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB,KACjD,eAAe,GAAG,QAOpB,CAAC;AAyBF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,EACb,UAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,UAAS;IAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAAO,KACnD,eA2DF,CAAC;AAMF,eAAO,MAAM,mBAAmB,GAAI,MAAM,OAAO,KAAG,OAwBnD,CAAC"}
|
|
@@ -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"}
|