@fern-api/fdr-sdk 0.138.1-0075738be → 0.138.1-0d7f3d87f
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../../src/api-definition/snippets/curl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../../src/api-definition/snippets/curl.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,kBAAkB,EAInB,MAAM,sBAAsB,CAAC;AAM9B,UAAU,KAAK;IACb,kCAAkC,EAAE,OAAO,CAAC;CAC7C;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,KAAK,GACV,MAAM,CAQR;AA0CD,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,MAAM,EAAE,CAKV"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { compact } from "es-toolkit/array";
|
|
2
|
-
import qs from "qs";
|
|
3
2
|
import { UnreachableCaseError } from "ts-essentials";
|
|
4
3
|
import { obfuscateSecret } from "@fern-api/fdr-sdk";
|
|
5
|
-
import { isPlainObject, unknownToString, } from "@fern-api/ui-core-utils";
|
|
4
|
+
import { isNonNullish, isPlainObject, unknownToString, } from "@fern-api/ui-core-utils";
|
|
6
5
|
import { wrapOpenRPCRequest } from "../wrapOpenRPCRequest";
|
|
7
6
|
function requiresUrlEncode(str) {
|
|
8
7
|
return encodeURIComponent(str) !== str;
|
|
@@ -40,13 +39,7 @@ function getBasicAuthString(basicAuth, redacted) {
|
|
|
40
39
|
return [`-u "${basicAuth.username}:${basicAuth.password}"`];
|
|
41
40
|
}
|
|
42
41
|
export function getUrlQueriesGetString(searchParams) {
|
|
43
|
-
return toUrlEncoded(searchParams).map(([key, value]) => {
|
|
44
|
-
const flag = requiresUrlEncode(value) ? "--data-urlencode" : "-d";
|
|
45
|
-
if (key.includes(" ") || value.includes(" ") || key.includes("[")) {
|
|
46
|
-
return `${flag} "${key}=${value}"`;
|
|
47
|
-
}
|
|
48
|
-
return `${flag} ${key}=${value}`;
|
|
49
|
-
});
|
|
42
|
+
return toUrlEncoded(searchParams).map(([key, value]) => `${requiresUrlEncode(value) ? "--data-urlencode" : "-d"} ${key.includes("[") ? `"${key}"` : key}=${value.includes(" ") ? `"${value}"` : value}`);
|
|
50
43
|
}
|
|
51
44
|
function getBodyJsonString(value, protocol) {
|
|
52
45
|
if (protocol?.type === "openrpc") {
|
|
@@ -169,22 +162,13 @@ function unsafeStringifyHttpRequestExampleToCurl({ method, url, searchParams, he
|
|
|
169
162
|
return `curl ${httpRequest}${allStrings.map(withNewLine).join("")}`;
|
|
170
163
|
}
|
|
171
164
|
function toUrlEncoded(urlQueries) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return value;
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
if (!queryString) {
|
|
184
|
-
return [];
|
|
185
|
-
}
|
|
186
|
-
return queryString.split("&").map((pair) => {
|
|
187
|
-
const [key, value] = pair.split("=");
|
|
188
|
-
return [key, value || ""];
|
|
165
|
+
return Object.entries(urlQueries).flatMap(([key, value]) => {
|
|
166
|
+
if (Array.isArray(value)) {
|
|
167
|
+
return value.filter(isNonNullish).map((v) => [key, unknownToString(v)]);
|
|
168
|
+
}
|
|
169
|
+
if (value == null) {
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
172
|
+
return [[key, unknownToString(value)]];
|
|
189
173
|
});
|
|
190
174
|
}
|
|
@@ -183,7 +183,7 @@ describe("curl", () => {
|
|
|
183
183
|
}, { usesApplicationJsonInFormDataValue: false })).toMatchInlineSnapshot(`
|
|
184
184
|
"curl -X POST https://api.example.com/form \\
|
|
185
185
|
-H "Content-Type: application/x-www-form-urlencoded" \\
|
|
186
|
-
--data-urlencode
|
|
186
|
+
--data-urlencode name="John Doe" \\
|
|
187
187
|
--data-urlencode email=john@example.com \\
|
|
188
188
|
-d items=item1 \\
|
|
189
189
|
-d items=item2"
|
|
@@ -202,18 +202,18 @@ describe("curl", () => {
|
|
|
202
202
|
body: undefined,
|
|
203
203
|
}, { usesApplicationJsonInFormDataValue: false })).toMatchInlineSnapshot(`
|
|
204
204
|
"curl -G https://api.example.com/search \\
|
|
205
|
-
--data-urlencode
|
|
205
|
+
--data-urlencode q="search term with spaces" \\
|
|
206
206
|
-d filter=category1 \\
|
|
207
207
|
-d filter=category2 \\
|
|
208
|
-
--data-urlencode
|
|
208
|
+
--data-urlencode sort="date desc""
|
|
209
209
|
`);
|
|
210
210
|
});
|
|
211
211
|
it("does not include nulls in urlencoded parameters", () => {
|
|
212
212
|
expect(getUrlQueriesGetString({ a: null, b: "b" })).toMatchInlineSnapshot(`
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
[
|
|
214
|
+
"-d b=b",
|
|
215
|
+
]
|
|
216
|
+
`);
|
|
217
217
|
expect(getUrlQueriesGetString({ a: ["b1", null, "b2"] }))
|
|
218
218
|
.toMatchInlineSnapshot(`
|
|
219
219
|
[
|
|
@@ -281,22 +281,4 @@ describe("curl", () => {
|
|
|
281
281
|
-F tags="tag3""
|
|
282
282
|
`);
|
|
283
283
|
});
|
|
284
|
-
it("generates GET request with object query params", () => {
|
|
285
|
-
expect(convertToCurl({
|
|
286
|
-
method: "GET",
|
|
287
|
-
url: "https://api.example.com/obj-query-params",
|
|
288
|
-
headers: {},
|
|
289
|
-
searchParams: {
|
|
290
|
-
include: "verifications",
|
|
291
|
-
fields: {
|
|
292
|
-
"verification/driver-license": "status,created-at",
|
|
293
|
-
},
|
|
294
|
-
},
|
|
295
|
-
body: undefined,
|
|
296
|
-
}, { usesApplicationJsonInFormDataValue: false })).toMatchInlineSnapshot(`
|
|
297
|
-
"curl -G https://api.example.com/obj-query-params \\
|
|
298
|
-
-d include=verifications \\
|
|
299
|
-
--data-urlencode "fields[verification/driver-license]=status,created-at""
|
|
300
|
-
`);
|
|
301
|
-
});
|
|
302
284
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/api-definition/url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/api-definition/url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAmC7D,UAAU,sBAAsB;IAC9B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,wBAAgB,eAAe,CAAC,EAC9B,OAAY,EACZ,IAAI,EACJ,cAAc,EACd,eAAe,GAChB,EAAE,sBAAsB,GAAG,MAAM,CAMjC;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,cAAc,EACd,eAAe,EACf,OAAO,GACR,EAAE,uBAAuB,GAAG,MAAM,CAalC"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import qs from "qs";
|
|
2
1
|
import { unknownToString } from "@fern-api/ui-core-utils";
|
|
3
2
|
function buildQueryParams(queryParameters) {
|
|
4
3
|
if (queryParameters == null) {
|
|
5
4
|
return "";
|
|
6
5
|
}
|
|
7
|
-
const
|
|
6
|
+
const queryParams = new URLSearchParams();
|
|
7
|
+
Object.entries(queryParameters).forEach(([key, value]) => {
|
|
8
8
|
if (value != null) {
|
|
9
|
-
|
|
9
|
+
queryParams.set(key, unknownToString(value));
|
|
10
10
|
}
|
|
11
|
-
return acc;
|
|
12
|
-
}, {});
|
|
13
|
-
if (Object.keys(filteredParams).length === 0) {
|
|
14
|
-
return "";
|
|
15
|
-
}
|
|
16
|
-
const queryString = qs.stringify(filteredParams, {
|
|
17
|
-
encode: false,
|
|
18
|
-
arrayFormat: "repeat",
|
|
19
|
-
skipNulls: true,
|
|
20
|
-
serializeDate: (date) => date.toISOString(),
|
|
21
11
|
});
|
|
22
|
-
return
|
|
12
|
+
return queryParams.size > 0 ? "?" + queryParams.toString() : "";
|
|
23
13
|
}
|
|
24
14
|
function buildPath(path = [], pathParameters) {
|
|
25
15
|
return path
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fern-api/fdr-sdk",
|
|
3
|
-
"version": "0.138.1-
|
|
3
|
+
"version": "0.138.1-0d7f3d87f",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"test:update": "vitest --run --passWithNoTests --globals -u"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@fern-api/ui-core-utils": "0.138.1-
|
|
52
|
+
"@fern-api/ui-core-utils": "0.138.1-0d7f3d87f*",
|
|
53
53
|
"@ungap/structured-clone": "^1.2.0",
|
|
54
54
|
"dayjs": "^1.11.11",
|
|
55
55
|
"es-toolkit": "^1.32.0",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@babel/core": "^7.26.9",
|
|
69
69
|
"@babel/preset-env": "^7.26.0",
|
|
70
70
|
"@babel/preset-typescript": "^7.26.0",
|
|
71
|
-
"@fern-platform/configs": "0.138.1-
|
|
71
|
+
"@fern-platform/configs": "0.138.1-0d7f3d87f*",
|
|
72
72
|
"@types/node-fetch": "2.6.9",
|
|
73
73
|
"@types/qs": "6.9.14",
|
|
74
74
|
"@types/tinycolor2": "^1.4.6",
|