@fern-api/fdr-sdk 1.2.73-c1680dd0b8 → 1.2.73-d4652c951f

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.
Files changed (49) hide show
  1. package/dist/js/api-definition/index.js +5 -0
  2. package/dist/js/api-definition/index.js.map +1 -1
  3. package/dist/js/api-definition/index.mjs +5 -0
  4. package/dist/js/api-definition/index.mjs.map +1 -1
  5. package/dist/js/client/FdrClient.js +5 -0
  6. package/dist/js/client/FdrClient.js.map +1 -1
  7. package/dist/js/client/FdrClient.mjs +5 -0
  8. package/dist/js/client/FdrClient.mjs.map +1 -1
  9. package/dist/js/client/types.js +5 -0
  10. package/dist/js/client/types.js.map +1 -1
  11. package/dist/js/client/types.mjs +5 -0
  12. package/dist/js/client/types.mjs.map +1 -1
  13. package/dist/js/converters/index.js +82 -2
  14. package/dist/js/converters/index.js.map +1 -1
  15. package/dist/js/converters/index.mjs +82 -2
  16. package/dist/js/converters/index.mjs.map +1 -1
  17. package/dist/js/index.js +82 -2
  18. package/dist/js/index.js.map +1 -1
  19. package/dist/js/index.mjs +82 -2
  20. package/dist/js/index.mjs.map +1 -1
  21. package/dist/js/navigation/index.js +6 -0
  22. package/dist/js/navigation/index.js.map +1 -1
  23. package/dist/js/navigation/index.mjs +6 -0
  24. package/dist/js/navigation/index.mjs.map +1 -1
  25. package/dist/js/orpc-client.js +5 -0
  26. package/dist/js/orpc-client.js.map +1 -1
  27. package/dist/js/orpc-client.mjs +5 -0
  28. package/dist/js/orpc-client.mjs.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/api-definition/migrators/v1ToV2.d.ts +5 -0
  31. package/dist/types/api-definition/migrators/v1ToV2.d.ts.map +1 -1
  32. package/dist/types/converters/db/convertAPIDefinitionToDb.d.ts.map +1 -1
  33. package/dist/types/converters/db/examples/generateEndpointExampleCall.d.ts +10 -0
  34. package/dist/types/converters/db/examples/generateEndpointExampleCall.d.ts.map +1 -1
  35. package/dist/types/converters/db/examples/generateHttpBodyExample.d.ts +10 -0
  36. package/dist/types/converters/db/examples/generateHttpBodyExample.d.ts.map +1 -1
  37. package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts +14 -0
  38. package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts.map +1 -1
  39. package/dist/types/navigation/utils/toApis.d.ts +1 -0
  40. package/dist/types/navigation/utils/toApis.d.ts.map +1 -1
  41. package/dist/types/orpc-client/api/contract-db.d.ts +500 -0
  42. package/dist/types/orpc-client/api/contract-db.d.ts.map +1 -1
  43. package/dist/types/orpc-client/api/contract-latest.d.ts +22 -0
  44. package/dist/types/orpc-client/api/contract-latest.d.ts.map +1 -1
  45. package/dist/types/orpc-client/api/contract-read.d.ts +540 -0
  46. package/dist/types/orpc-client/api/contract-read.d.ts.map +1 -1
  47. package/dist/types/orpc-client/api/contract-register.d.ts +540 -0
  48. package/dist/types/orpc-client/api/contract-register.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -1379,6 +1379,9 @@ var RegisterExampleEndpointCallSchema = z3.object({
1379
1379
  description: z3.string().nullish(),
1380
1380
  name: z3.string().nullish(),
1381
1381
  contentType: z3.string().nullish(),
1382
+ // When the request body is a discriminated union and one example is generated per variant,
1383
+ // this carries the variant's discriminant value so the UI can swap examples when the variant changes.
1384
+ discriminant: z3.string().nullish(),
1382
1385
  path: z3.string(),
1383
1386
  pathParameters: z3.record(PropertyKeySchema, z3.unknown()),
1384
1387
  queryParameters: z3.record(z3.string(), z3.unknown()),
@@ -1952,6 +1955,7 @@ var LatestExampleEndpointCallSchema = z4.object({
1952
1955
  responseStatusCode: z4.number().int(),
1953
1956
  name: z4.string().nullish(),
1954
1957
  contentType: z4.string().nullish(),
1958
+ discriminant: z4.string().nullish(),
1955
1959
  pathParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
1956
1960
  queryParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
1957
1961
  headers: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
@@ -2226,6 +2230,7 @@ var ReadExampleEndpointCallSchema = z5.object({
2226
2230
  description: z5.string().nullish(),
2227
2231
  name: z5.string().nullish(),
2228
2232
  contentType: z5.string().nullish(),
2233
+ discriminant: z5.string().nullish(),
2229
2234
  path: z5.string(),
2230
2235
  pathParameters: z5.record(PropertyKeySchema, z5.unknown()),
2231
2236
  queryParameters: z5.record(z5.string(), z5.unknown()),
@@ -6099,6 +6104,52 @@ function generateHttpRequestBodyExample(type, resolveTypeById) {
6099
6104
  }
6100
6105
  }
6101
6106
  }
6107
+ function resolveRequestBodyDiscriminatedUnion(type, resolveTypeById) {
6108
+ let shape;
6109
+ switch (type.type) {
6110
+ case "reference":
6111
+ shape = resolveTypeReferenceToShape(type.value, resolveTypeById, /* @__PURE__ */ new Set());
6112
+ break;
6113
+ case "json":
6114
+ shape = type.shape.type === "reference" ? resolveTypeReferenceToShape(type.shape.value, resolveTypeById, /* @__PURE__ */ new Set()) : void 0;
6115
+ break;
6116
+ default:
6117
+ return void 0;
6118
+ }
6119
+ return shape?.type === "discriminatedUnion" ? shape : void 0;
6120
+ }
6121
+ function resolveTypeReferenceToShape(reference, resolveTypeById, visited) {
6122
+ switch (reference.type) {
6123
+ case "id": {
6124
+ if (visited.has(reference.value)) {
6125
+ return void 0;
6126
+ }
6127
+ visited.add(reference.value);
6128
+ const typeDef = resolveTypeById(reference.value);
6129
+ if (typeDef == null) {
6130
+ return void 0;
6131
+ }
6132
+ if (typeDef.shape.type === "alias") {
6133
+ return resolveTypeReferenceToShape(typeDef.shape.value, resolveTypeById, visited);
6134
+ }
6135
+ return typeDef.shape;
6136
+ }
6137
+ case "optional":
6138
+ case "nullable":
6139
+ return resolveTypeReferenceToShape(reference.itemType, resolveTypeById, visited);
6140
+ default:
6141
+ return void 0;
6142
+ }
6143
+ }
6144
+ function generateDiscriminatedUnionVariantRequestExample(discriminant, variant, resolveTypeById) {
6145
+ return {
6146
+ type: "json",
6147
+ value: {
6148
+ [discriminant]: variant.discriminantValue,
6149
+ ...generateExampleObject(variant.additionalProperties, resolveTypeById, true, /* @__PURE__ */ new Set(), 0)
6150
+ }
6151
+ };
6152
+ }
6102
6153
  function generateFormDataRequestBodyExample(FormDataRequest, resolveTypeById) {
6103
6154
  if (FormDataRequest == null) {
6104
6155
  return { type: "form", value: {} };
@@ -6480,6 +6531,32 @@ function generateEndpointSuccessExample({
6480
6531
  responseBodyV3: endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0
6481
6532
  };
6482
6533
  }
6534
+ function generateEndpointSuccessExamples({
6535
+ endpointDefinition,
6536
+ apiDefinition
6537
+ }) {
6538
+ const resolveTypeById = getResolveByTypeId(apiDefinition);
6539
+ const discriminatedUnion11 = endpointDefinition.request != null ? resolveRequestBodyDiscriminatedUnion(endpointDefinition.request.type, resolveTypeById) : void 0;
6540
+ if (discriminatedUnion11 == null || discriminatedUnion11.variants.length <= 1) {
6541
+ return [generateEndpointSuccessExample({ endpointDefinition, apiDefinition })];
6542
+ }
6543
+ const base = generateBaseEndpointExample({ endpointDefinition, apiDefinition, resolveTypeById });
6544
+ const responseBodyV3 = endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0;
6545
+ return discriminatedUnion11.variants.map((variant) => ({
6546
+ ...base,
6547
+ // Use `||` (not `??`) so an empty-string displayName falls back to the (always-present,
6548
+ // unique) discriminant value — keeping example names non-empty and distinct.
6549
+ name: variant.displayName || variant.discriminantValue,
6550
+ discriminant: variant.discriminantValue,
6551
+ requestBodyV3: generateDiscriminatedUnionVariantRequestExample(
6552
+ discriminatedUnion11.discriminant,
6553
+ variant,
6554
+ resolveTypeById
6555
+ ),
6556
+ responseStatusCode: 200,
6557
+ responseBodyV3
6558
+ }));
6559
+ }
6483
6560
  function generateBaseEndpointExample({
6484
6561
  endpointDefinition,
6485
6562
  apiDefinition,
@@ -6967,11 +7044,11 @@ function getExampleEndpointCalls({
6967
7044
  if (registeredSuccessExamples.length > 0) {
6968
7045
  examples.push(...registeredSuccessExamples);
6969
7046
  } else {
6970
- const generatedSuccessExample = generateEndpointSuccessExample({
7047
+ const generatedSuccessExamples = generateEndpointSuccessExamples({
6971
7048
  endpointDefinition: writeShape,
6972
7049
  apiDefinition
6973
7050
  });
6974
- examples.push(generatedSuccessExample);
7051
+ examples.push(...generatedSuccessExamples);
6975
7052
  }
6976
7053
  const registeredErrorExampleStatusCodes = new Set(registeredErrorExamples.map((e) => e.responseStatusCode));
6977
7054
  const errorsMissingAnExample = (writeShape.errorsV2 ?? []).filter(
@@ -7050,6 +7127,7 @@ function transformExampleEndpointCall({
7050
7127
  return {
7051
7128
  name: writeShape.name,
7052
7129
  contentType: writeShape.contentType ?? void 0,
7130
+ discriminant: writeShape.discriminant ?? void 0,
7053
7131
  description: writeShape.description,
7054
7132
  // htmlDescription,
7055
7133
  // descriptionContainsMarkdown: true,
@@ -9968,6 +10046,7 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
9968
10046
  responseStatusCode: example?.responseStatusCode,
9969
10047
  name: example?.name,
9970
10048
  contentType: example?.contentType ?? void 0,
10049
+ discriminant: example?.discriminant ?? void 0,
9971
10050
  description: example?.description,
9972
10051
  pathParameters: example?.pathParameters,
9973
10052
  queryParameters: example?.queryParameters,
@@ -17248,6 +17327,7 @@ function convertExampleEndpointCall({
17248
17327
  return {
17249
17328
  name: dbShape.name,
17250
17329
  contentType: dbShape.contentType ?? void 0,
17330
+ discriminant: dbShape.discriminant ?? void 0,
17251
17331
  description: dbShape.description,
17252
17332
  // htmlDescription: dbShape.htmlDescription,
17253
17333
  // descriptionContainsMarkdown: true,