callman-core 1.27.0 → 1.28.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/db-queries.md +10 -1
- package/ai-packs/diagram-components.md +373 -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 +32 -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 +12 -0
- package/dist/http-file/parseHttpFile.d.ts.map +1 -0
- package/dist/http-file/parseHttpFile.js +122 -0
- package/dist/http-file/parseHttpFile.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- 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 +20 -0
- package/dist-cjs/http-file/index.js.map +1 -0
- package/dist-cjs/http-file/parseHttpFile.js +127 -0
- package/dist-cjs/http-file/parseHttpFile.js.map +1 -0
- package/dist-cjs/index.js +5 -0
- package/dist-cjs/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
// cURL command → request. Moved from the desktop (`shared/curl/parseCurl.ts`)
|
|
2
|
+
// so the MCP server, the backend and the desktop share ONE parser. Pure:
|
|
3
|
+
// no Node built-ins, no DOM.
|
|
4
|
+
import { stripUrlQuery } from "../utils/urlQuery.js";
|
|
5
|
+
import { inferBodyStateFromRaw } from "./bodyFormat.js";
|
|
6
|
+
import { emptyRow, normalizeRows, queryRowsFromUrl } from "./rows.js";
|
|
7
|
+
const CURL_PREFIX_PATTERN = /^\s*curl(?:\s|$)/i;
|
|
8
|
+
// Shell line-continuations (`\` + newline) join command tokens. PLAIN newlines
|
|
9
|
+
// must survive: the tokenizer treats them as whitespace separators outside
|
|
10
|
+
// quotes, and inside a quoted `--data-raw '...'` body they are real
|
|
11
|
+
// formatting (a JSONC body with `//` comments depends on it).
|
|
12
|
+
const normalizeCurlInput = (input) => input.replace(/\\\r?\n/g, " ").trim();
|
|
13
|
+
const tokenizeCurl = (input) => {
|
|
14
|
+
const tokens = [];
|
|
15
|
+
let current = "";
|
|
16
|
+
let quote = null;
|
|
17
|
+
let escaped = false;
|
|
18
|
+
for (const character of normalizeCurlInput(input)) {
|
|
19
|
+
if (escaped) {
|
|
20
|
+
current += character;
|
|
21
|
+
escaped = false;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (character === "\\") {
|
|
25
|
+
escaped = true;
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if ((character === `"` || character === `'`) && quote === null) {
|
|
29
|
+
quote = character;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (quote !== null && character === quote) {
|
|
33
|
+
quote = null;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (!quote && /\s/.test(character)) {
|
|
37
|
+
if (current) {
|
|
38
|
+
tokens.push(current);
|
|
39
|
+
current = "";
|
|
40
|
+
}
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
current += character;
|
|
44
|
+
}
|
|
45
|
+
if (quote) {
|
|
46
|
+
throw new Error("Unclosed quote in cURL command");
|
|
47
|
+
}
|
|
48
|
+
if (current) {
|
|
49
|
+
tokens.push(current);
|
|
50
|
+
}
|
|
51
|
+
return tokens;
|
|
52
|
+
};
|
|
53
|
+
const splitHeader = (value) => {
|
|
54
|
+
const separatorIndex = value.indexOf(":");
|
|
55
|
+
if (separatorIndex === -1)
|
|
56
|
+
return null;
|
|
57
|
+
return {
|
|
58
|
+
key: value.slice(0, separatorIndex).trim(),
|
|
59
|
+
value: value.slice(separatorIndex + 1).trim(),
|
|
60
|
+
enabled: true,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export const isCurlCommand = (input) => CURL_PREFIX_PATTERN.test(input);
|
|
64
|
+
// curl flags that consume the FOLLOWING token as their value but that we
|
|
65
|
+
// don't otherwise model. Skipping the value keeps it from being mistaken for
|
|
66
|
+
// the URL or body (`-u user:pass <url>` must not treat `user:pass` as the
|
|
67
|
+
// URL). `--flag=value` forms need no entry — they start with `-`.
|
|
68
|
+
const VALUE_FLAGS_TO_SKIP = new Set([
|
|
69
|
+
"-u",
|
|
70
|
+
"--user",
|
|
71
|
+
"-b",
|
|
72
|
+
"--cookie",
|
|
73
|
+
"-e",
|
|
74
|
+
"--referer",
|
|
75
|
+
"-A",
|
|
76
|
+
"--user-agent",
|
|
77
|
+
"-o",
|
|
78
|
+
"--output",
|
|
79
|
+
"-x",
|
|
80
|
+
"--proxy",
|
|
81
|
+
"-E",
|
|
82
|
+
"--cert",
|
|
83
|
+
"--key",
|
|
84
|
+
"--cacert",
|
|
85
|
+
"--connect-timeout",
|
|
86
|
+
"-m",
|
|
87
|
+
"--max-time",
|
|
88
|
+
"--retry",
|
|
89
|
+
"-w",
|
|
90
|
+
"--write-out",
|
|
91
|
+
]);
|
|
92
|
+
export const parseCurl = (input) => {
|
|
93
|
+
if (!isCurlCommand(input)) {
|
|
94
|
+
throw new Error("Input is not a cURL command");
|
|
95
|
+
}
|
|
96
|
+
const tokens = tokenizeCurl(input);
|
|
97
|
+
const headers = [];
|
|
98
|
+
const formEntries = [];
|
|
99
|
+
// Method is decided AFTER the scan: an explicit -X wins; otherwise it is
|
|
100
|
+
// implied by the flags present (data/form → POST, upload → PUT, …).
|
|
101
|
+
let explicitMethod = null;
|
|
102
|
+
let url = "";
|
|
103
|
+
let rawBody = "";
|
|
104
|
+
let hasData = false;
|
|
105
|
+
let hasForm = false;
|
|
106
|
+
let isUpload = false;
|
|
107
|
+
let isHead = false;
|
|
108
|
+
let forceGet = false;
|
|
109
|
+
let isJson = false;
|
|
110
|
+
// Multiple data flags concatenate with `&`, mirroring curl (Postman exports
|
|
111
|
+
// emit one `--data-urlencode` per field).
|
|
112
|
+
const appendData = (value) => {
|
|
113
|
+
rawBody = rawBody ? `${rawBody}&${value}` : value;
|
|
114
|
+
hasData = true;
|
|
115
|
+
};
|
|
116
|
+
const addForm = (value) => {
|
|
117
|
+
const separatorIndex = value.indexOf("=");
|
|
118
|
+
formEntries.push(emptyRow({
|
|
119
|
+
key: separatorIndex >= 0 ? value.slice(0, separatorIndex) : value,
|
|
120
|
+
value: separatorIndex >= 0 ? value.slice(separatorIndex + 1) : "",
|
|
121
|
+
}));
|
|
122
|
+
hasForm = true;
|
|
123
|
+
};
|
|
124
|
+
for (let index = 1; index < tokens.length; index += 1) {
|
|
125
|
+
const token = tokens[index];
|
|
126
|
+
const nextToken = tokens[index + 1];
|
|
127
|
+
if (!token)
|
|
128
|
+
continue;
|
|
129
|
+
// --- explicit method ---
|
|
130
|
+
if ((token === "-X" || token === "--request") && nextToken) {
|
|
131
|
+
explicitMethod = nextToken.toUpperCase();
|
|
132
|
+
index += 1;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if (token.startsWith("-X") && token.length > 2) {
|
|
136
|
+
explicitMethod = token.slice(2).toUpperCase();
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (token.startsWith("--request=")) {
|
|
140
|
+
explicitMethod = token.slice("--request=".length).toUpperCase();
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
// --- headers ---
|
|
144
|
+
if ((token === "-H" || token === "--header") && nextToken) {
|
|
145
|
+
const header = splitHeader(nextToken);
|
|
146
|
+
if (header)
|
|
147
|
+
headers.push(header);
|
|
148
|
+
index += 1;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (token.startsWith("-H") && token.length > 2) {
|
|
152
|
+
const header = splitHeader(token.slice(2));
|
|
153
|
+
if (header)
|
|
154
|
+
headers.push(header);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (token.startsWith("--header=")) {
|
|
158
|
+
const header = splitHeader(token.slice("--header=".length));
|
|
159
|
+
if (header)
|
|
160
|
+
headers.push(header);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
// --- request-method-implying flags ---
|
|
164
|
+
if (token === "-G" || token === "--get") {
|
|
165
|
+
forceGet = true;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (token === "-I" || token === "--head") {
|
|
169
|
+
isHead = true;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if ((token === "-T" || token === "--upload-file") && nextToken) {
|
|
173
|
+
isUpload = true;
|
|
174
|
+
index += 1; // consume the file path
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// --- data flags (imply POST) ---
|
|
178
|
+
if (token === "-d" ||
|
|
179
|
+
token === "--data" ||
|
|
180
|
+
token === "--data-raw" ||
|
|
181
|
+
token === "--data-binary" ||
|
|
182
|
+
token === "--data-ascii" ||
|
|
183
|
+
token === "--data-urlencode") {
|
|
184
|
+
appendData(nextToken ?? "");
|
|
185
|
+
index += 1;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (token.startsWith("-d") && token.length > 2) {
|
|
189
|
+
appendData(token.slice(2));
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (token.startsWith("--data=") ||
|
|
193
|
+
token.startsWith("--data-raw=") ||
|
|
194
|
+
token.startsWith("--data-binary=") ||
|
|
195
|
+
token.startsWith("--data-ascii=") ||
|
|
196
|
+
token.startsWith("--data-urlencode=")) {
|
|
197
|
+
appendData(token.slice(token.indexOf("=") + 1));
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
// --- curl --json (implies POST + application/json) ---
|
|
201
|
+
if (token === "--json" && nextToken) {
|
|
202
|
+
appendData(nextToken);
|
|
203
|
+
isJson = true;
|
|
204
|
+
index += 1;
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
if (token.startsWith("--json=")) {
|
|
208
|
+
appendData(token.slice("--json=".length));
|
|
209
|
+
isJson = true;
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
// --- multipart form (implies POST) ---
|
|
213
|
+
if ((token === "-F" || token === "--form") && nextToken) {
|
|
214
|
+
addForm(nextToken);
|
|
215
|
+
index += 1;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (token.startsWith("-F") && token.length > 2) {
|
|
219
|
+
addForm(token.slice(2));
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (token.startsWith("--form=")) {
|
|
223
|
+
addForm(token.slice("--form=".length));
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
// --- url ---
|
|
227
|
+
if (token === "--url" && nextToken) {
|
|
228
|
+
url = nextToken;
|
|
229
|
+
index += 1;
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (token.startsWith("--url=")) {
|
|
233
|
+
url = token.slice("--url=".length);
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (token === "--location" || token === "-L") {
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (VALUE_FLAGS_TO_SKIP.has(token) && nextToken) {
|
|
240
|
+
index += 1; // consume + discard the flag's value
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (!token.startsWith("-") && !url) {
|
|
244
|
+
url = token;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// With -G/--get, curl moves the data onto the query string instead of the
|
|
248
|
+
// body — mirror that so the method stays GET and the params land in the URL.
|
|
249
|
+
if (forceGet && rawBody) {
|
|
250
|
+
url += (url.includes("?") ? "&" : "?") + rawBody;
|
|
251
|
+
rawBody = "";
|
|
252
|
+
hasData = false;
|
|
253
|
+
}
|
|
254
|
+
if (!url.trim()) {
|
|
255
|
+
throw new Error("Could not find a URL in the cURL command");
|
|
256
|
+
}
|
|
257
|
+
let method = explicitMethod ?? "GET";
|
|
258
|
+
if (!explicitMethod) {
|
|
259
|
+
if (forceGet)
|
|
260
|
+
method = "GET";
|
|
261
|
+
else if (hasData || hasForm)
|
|
262
|
+
method = "POST";
|
|
263
|
+
else if (isUpload)
|
|
264
|
+
method = "PUT";
|
|
265
|
+
else if (isHead)
|
|
266
|
+
method = "HEAD";
|
|
267
|
+
}
|
|
268
|
+
// curl --json implies an application/json content type; add it if the
|
|
269
|
+
// command didn't already specify one so the body renders as JSON.
|
|
270
|
+
if (isJson && !headers.some((header) => header.key.trim().toLowerCase() === "content-type")) {
|
|
271
|
+
headers.push({ key: "Content-Type", value: "application/json", enabled: true });
|
|
272
|
+
}
|
|
273
|
+
const body = hasForm
|
|
274
|
+
? {
|
|
275
|
+
mode: "formdata",
|
|
276
|
+
raw: "",
|
|
277
|
+
formEntries: formEntries.length > 0 ? formEntries : [emptyRow()],
|
|
278
|
+
}
|
|
279
|
+
: inferBodyStateFromRaw(rawBody, headers);
|
|
280
|
+
return {
|
|
281
|
+
method,
|
|
282
|
+
url: stripUrlQuery(url),
|
|
283
|
+
query: normalizeRows(queryRowsFromUrl(url)),
|
|
284
|
+
headers: normalizeRows(headers),
|
|
285
|
+
body,
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
//# sourceMappingURL=parseCurl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseCurl.js","sourceRoot":"","sources":["../../src/curl/parseCurl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { KeyValueRow } from "./types.js";
|
|
2
|
+
export declare const emptyRow: (overrides?: Partial<KeyValueRow>) => KeyValueRow;
|
|
3
|
+
export declare const normalizeRows: (rows: KeyValueRow[]) => KeyValueRow[];
|
|
4
|
+
export declare const filledRows: (rows: KeyValueRow[]) => KeyValueRow[];
|
|
5
|
+
export declare const queryRowsFromUrl: (url: string) => KeyValueRow[];
|
|
6
|
+
//# sourceMappingURL=rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/curl/rows.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,QAAQ,GAAI,YAAW,OAAO,CAAC,WAAW,CAAM,KAAG,WAK9D,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,MAAM,WAAW,EAAE,KAAG,WAAW,EAG7C,CAAC;AAEnB,eAAO,MAAM,UAAU,GAAI,MAAM,WAAW,EAAE,KAAG,WAAW,EACX,CAAC;AAIlD,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,WAAW,EAGzD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Editor-row helpers mirrored from the desktop request editor
|
|
2
|
+
// (`request-editor/lib/queryManager.ts`, `urlSync.ts`): an EMPTY list becomes
|
|
3
|
+
// one blank row (the editor always shows a row to type into), `enabled`
|
|
4
|
+
// defaults to true, and "filled" rows are the ones with a non-blank key —
|
|
5
|
+
// the only rows a persisted request may carry (the backend rejects blank keys).
|
|
6
|
+
import { extractUrlQueryPairs } from "../utils/urlQuery.js";
|
|
7
|
+
export const emptyRow = (overrides = {}) => ({
|
|
8
|
+
key: "",
|
|
9
|
+
value: "",
|
|
10
|
+
enabled: true,
|
|
11
|
+
...overrides,
|
|
12
|
+
});
|
|
13
|
+
export const normalizeRows = (rows) => rows.length > 0
|
|
14
|
+
? rows.map((row) => ({ ...row, enabled: row.enabled ?? true }))
|
|
15
|
+
: [emptyRow()];
|
|
16
|
+
export const filledRows = (rows) => rows.filter((row) => row.key.trim().length > 0);
|
|
17
|
+
// LITERAL model (Postman parity): the rows hold exactly what the URL carried —
|
|
18
|
+
// no decoding, so `{{var}}` tokens survive for the caller to resolve.
|
|
19
|
+
export const queryRowsFromUrl = (url) => {
|
|
20
|
+
const rows = extractUrlQueryPairs(url).map((pair) => emptyRow(pair));
|
|
21
|
+
return rows.length > 0 ? rows : [emptyRow()];
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/curl/rows.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,YAAkC,EAAE,EAAe,EAAE,CAAC,CAAC;IAC9E,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,IAAI;IACb,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAiB,EAAE,CAClE,IAAI,CAAC,MAAM,GAAG,CAAC;IACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAiB,EAAE,CAC/D,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAElD,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAiB,EAAE;IAC7D,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface KeyValueRow {
|
|
2
|
+
key: string;
|
|
3
|
+
value: string;
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export type RawBodyLanguage = "json" | "xml" | "text" | "html";
|
|
7
|
+
export type RequestBodyMode = "none" | "raw" | "formdata" | "urlencoded";
|
|
8
|
+
export interface ParsedRequestBody {
|
|
9
|
+
mode: RequestBodyMode;
|
|
10
|
+
raw: string;
|
|
11
|
+
rawLanguage?: RawBodyLanguage;
|
|
12
|
+
formEntries: KeyValueRow[];
|
|
13
|
+
}
|
|
14
|
+
export interface ParsedCurlRequest {
|
|
15
|
+
method: string;
|
|
16
|
+
url: string;
|
|
17
|
+
query: KeyValueRow[];
|
|
18
|
+
headers: KeyValueRow[];
|
|
19
|
+
body: ParsedRequestBody;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/curl/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;CACzB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Shared request-row and body shapes for the import parsers (cURL, .http).
|
|
2
|
+
// Structurally identical to the desktop's `KeyValuePair` / `RequestBodyState`
|
|
3
|
+
// so the desktop can re-export these parsers without adapting call sites.
|
|
4
|
+
// CSP-safe: pure types.
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/curl/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E;AAC1E,wBAAwB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type DiagramComponentCategory = "generic" | "flowchart" | "uml" | "erd" | "networking" | "database" | "messaging" | "language" | "framework" | "devops" | "auth" | "observability" | "aws" | "azure" | "gcp";
|
|
2
|
+
export declare const DIAGRAM_CATEGORY_ORDER: DiagramComponentCategory[];
|
|
3
|
+
export declare const DIAGRAM_CATEGORY_LABELS: Record<DiagramComponentCategory, string>;
|
|
4
|
+
export type DiagramComponentVariant = "shape" | "brand" | "cloud" | "text" | "line";
|
|
5
|
+
export type DiagramShapeDirection = "north" | "south" | "east" | "west";
|
|
6
|
+
export interface DiagramComponentMeta {
|
|
7
|
+
type: string;
|
|
8
|
+
category: DiagramComponentCategory;
|
|
9
|
+
label: string;
|
|
10
|
+
defaultLabel: string;
|
|
11
|
+
defaultSize: {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
variant: DiagramComponentVariant;
|
|
16
|
+
aliases?: string[];
|
|
17
|
+
container?: boolean;
|
|
18
|
+
swimlane?: boolean;
|
|
19
|
+
direction?: DiagramShapeDirection;
|
|
20
|
+
}
|
|
21
|
+
export declare const DIAGRAM_COMPONENT_CATALOG: readonly DiagramComponentMeta[];
|
|
22
|
+
export declare const getDiagramComponent: (type: string) => DiagramComponentMeta | undefined;
|
|
23
|
+
export declare const isKnownDiagramComponentType: (type: string) => boolean;
|
|
24
|
+
export declare const diagramComponentsByCategory: () => Record<DiagramComponentCategory, DiagramComponentMeta[]>;
|
|
25
|
+
export declare const searchDiagramComponents: (query: string) => DiagramComponentMeta[];
|
|
26
|
+
export declare const validateComponentTypes: (doc: {
|
|
27
|
+
nodes: Array<{
|
|
28
|
+
type: string;
|
|
29
|
+
}>;
|
|
30
|
+
}) => string[];
|
|
31
|
+
//# sourceMappingURL=componentCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentCatalog.d.ts","sourceRoot":"","sources":["../../src/diagram/componentCatalog.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,WAAW,GACX,KAAK,GACL,KAAK,GACL,YAAY,GACZ,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,GACL,OAAO,GACP,KAAK,CAAC;AAEV,eAAO,MAAM,sBAAsB,EAAE,wBAAwB,EAgB5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAgB5E,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACpF,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,wBAAwB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED,eAAO,MAAM,yBAAyB,EAAE,SAAS,oBAAoB,EAAmC,CAAC;AAMzG,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,oBAAoB,GAAG,SAA6B,CAAC;AAExG,eAAO,MAAM,2BAA2B,GAAI,MAAM,MAAM,KAAG,OAA2B,CAAC;AAEvF,eAAO,MAAM,2BAA2B,QAAO,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,CAKrG,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,oBAAoB,EAM3E,CAAC;AAGF,eAAO,MAAM,sBAAsB,GAAI,KAAK;IAAE,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,KAAG,MAAM,EAStF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentCatalog.data.d.ts","sourceRoot":"","sources":["../../src/diagram/componentCatalog.data.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,eAAO,MAAM,8BAA8B,EAAE,SAAS,oBAAoB,EA6RzE,CAAC"}
|