@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":"AAaA,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,CAQV"}
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
- const queryString = qs.stringify(urlQueries, {
173
- encode: false,
174
- arrayFormat: "repeat",
175
- skipNulls: true,
176
- filter: (prefix, value) => {
177
- if (value !== null && typeof value !== "object") {
178
- return String(value);
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 "name=John Doe" \\
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 "q=search term with spaces" \\
205
+ --data-urlencode q="search term with spaces" \\
206
206
  -d filter=category1 \\
207
207
  -d filter=category2 \\
208
- --data-urlencode "sort=date desc""
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
- "-d b=b",
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":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAmD7D,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
+ {"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 filteredParams = Object.entries(queryParameters).reduce((acc, [key, value]) => {
6
+ const queryParams = new URLSearchParams();
7
+ Object.entries(queryParameters).forEach(([key, value]) => {
8
8
  if (value != null) {
9
- acc[key] = value;
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 queryString ? "?" + queryString : "";
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-0075738be",
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-0075738be*",
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-0075738be*",
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",