@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
package/dist/js/index.js CHANGED
@@ -1725,6 +1725,9 @@ var RegisterExampleEndpointCallSchema = z3.object({
1725
1725
  description: z3.string().nullish(),
1726
1726
  name: z3.string().nullish(),
1727
1727
  contentType: z3.string().nullish(),
1728
+ // When the request body is a discriminated union and one example is generated per variant,
1729
+ // this carries the variant's discriminant value so the UI can swap examples when the variant changes.
1730
+ discriminant: z3.string().nullish(),
1728
1731
  path: z3.string(),
1729
1732
  pathParameters: z3.record(PropertyKeySchema, z3.unknown()),
1730
1733
  queryParameters: z3.record(z3.string(), z3.unknown()),
@@ -2298,6 +2301,7 @@ var LatestExampleEndpointCallSchema = z4.object({
2298
2301
  responseStatusCode: z4.number().int(),
2299
2302
  name: z4.string().nullish(),
2300
2303
  contentType: z4.string().nullish(),
2304
+ discriminant: z4.string().nullish(),
2301
2305
  pathParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
2302
2306
  queryParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
2303
2307
  headers: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
@@ -4871,6 +4875,7 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
4871
4875
  responseStatusCode: example?.responseStatusCode,
4872
4876
  name: example?.name,
4873
4877
  contentType: example?.contentType ?? void 0,
4878
+ discriminant: example?.discriminant ?? void 0,
4874
4879
  description: example?.description,
4875
4880
  pathParameters: example?.pathParameters,
4876
4881
  queryParameters: example?.queryParameters,
@@ -6857,6 +6862,7 @@ var ReadExampleEndpointCallSchema = z5.object({
6857
6862
  description: z5.string().nullish(),
6858
6863
  name: z5.string().nullish(),
6859
6864
  contentType: z5.string().nullish(),
6865
+ discriminant: z5.string().nullish(),
6860
6866
  path: z5.string(),
6861
6867
  pathParameters: z5.record(PropertyKeySchema, z5.unknown()),
6862
6868
  queryParameters: z5.record(z5.string(), z5.unknown()),
@@ -13111,6 +13117,52 @@ function generateHttpRequestBodyExample(type, resolveTypeById) {
13111
13117
  }
13112
13118
  }
13113
13119
  }
13120
+ function resolveRequestBodyDiscriminatedUnion(type, resolveTypeById) {
13121
+ let shape;
13122
+ switch (type.type) {
13123
+ case "reference":
13124
+ shape = resolveTypeReferenceToShape(type.value, resolveTypeById, /* @__PURE__ */ new Set());
13125
+ break;
13126
+ case "json":
13127
+ shape = type.shape.type === "reference" ? resolveTypeReferenceToShape(type.shape.value, resolveTypeById, /* @__PURE__ */ new Set()) : void 0;
13128
+ break;
13129
+ default:
13130
+ return void 0;
13131
+ }
13132
+ return shape?.type === "discriminatedUnion" ? shape : void 0;
13133
+ }
13134
+ function resolveTypeReferenceToShape(reference, resolveTypeById, visited) {
13135
+ switch (reference.type) {
13136
+ case "id": {
13137
+ if (visited.has(reference.value)) {
13138
+ return void 0;
13139
+ }
13140
+ visited.add(reference.value);
13141
+ const typeDef = resolveTypeById(reference.value);
13142
+ if (typeDef == null) {
13143
+ return void 0;
13144
+ }
13145
+ if (typeDef.shape.type === "alias") {
13146
+ return resolveTypeReferenceToShape(typeDef.shape.value, resolveTypeById, visited);
13147
+ }
13148
+ return typeDef.shape;
13149
+ }
13150
+ case "optional":
13151
+ case "nullable":
13152
+ return resolveTypeReferenceToShape(reference.itemType, resolveTypeById, visited);
13153
+ default:
13154
+ return void 0;
13155
+ }
13156
+ }
13157
+ function generateDiscriminatedUnionVariantRequestExample(discriminant, variant, resolveTypeById) {
13158
+ return {
13159
+ type: "json",
13160
+ value: {
13161
+ [discriminant]: variant.discriminantValue,
13162
+ ...generateExampleObject(variant.additionalProperties, resolveTypeById, true, /* @__PURE__ */ new Set(), 0)
13163
+ }
13164
+ };
13165
+ }
13114
13166
  function generateFormDataRequestBodyExample(FormDataRequest, resolveTypeById) {
13115
13167
  if (FormDataRequest == null) {
13116
13168
  return { type: "form", value: {} };
@@ -13492,6 +13544,32 @@ function generateEndpointSuccessExample({
13492
13544
  responseBodyV3: endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0
13493
13545
  };
13494
13546
  }
13547
+ function generateEndpointSuccessExamples({
13548
+ endpointDefinition,
13549
+ apiDefinition
13550
+ }) {
13551
+ const resolveTypeById = getResolveByTypeId(apiDefinition);
13552
+ const discriminatedUnion17 = endpointDefinition.request != null ? resolveRequestBodyDiscriminatedUnion(endpointDefinition.request.type, resolveTypeById) : void 0;
13553
+ if (discriminatedUnion17 == null || discriminatedUnion17.variants.length <= 1) {
13554
+ return [generateEndpointSuccessExample({ endpointDefinition, apiDefinition })];
13555
+ }
13556
+ const base = generateBaseEndpointExample({ endpointDefinition, apiDefinition, resolveTypeById });
13557
+ const responseBodyV3 = endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0;
13558
+ return discriminatedUnion17.variants.map((variant) => ({
13559
+ ...base,
13560
+ // Use `||` (not `??`) so an empty-string displayName falls back to the (always-present,
13561
+ // unique) discriminant value — keeping example names non-empty and distinct.
13562
+ name: variant.displayName || variant.discriminantValue,
13563
+ discriminant: variant.discriminantValue,
13564
+ requestBodyV3: generateDiscriminatedUnionVariantRequestExample(
13565
+ discriminatedUnion17.discriminant,
13566
+ variant,
13567
+ resolveTypeById
13568
+ ),
13569
+ responseStatusCode: 200,
13570
+ responseBodyV3
13571
+ }));
13572
+ }
13495
13573
  function generateBaseEndpointExample({
13496
13574
  endpointDefinition,
13497
13575
  apiDefinition,
@@ -13979,11 +14057,11 @@ function getExampleEndpointCalls({
13979
14057
  if (registeredSuccessExamples.length > 0) {
13980
14058
  examples.push(...registeredSuccessExamples);
13981
14059
  } else {
13982
- const generatedSuccessExample = generateEndpointSuccessExample({
14060
+ const generatedSuccessExamples = generateEndpointSuccessExamples({
13983
14061
  endpointDefinition: writeShape,
13984
14062
  apiDefinition
13985
14063
  });
13986
- examples.push(generatedSuccessExample);
14064
+ examples.push(...generatedSuccessExamples);
13987
14065
  }
13988
14066
  const registeredErrorExampleStatusCodes = new Set(registeredErrorExamples.map((e) => e.responseStatusCode));
13989
14067
  const errorsMissingAnExample = (writeShape.errorsV2 ?? []).filter(
@@ -14062,6 +14140,7 @@ function transformExampleEndpointCall({
14062
14140
  return {
14063
14141
  name: writeShape.name,
14064
14142
  contentType: writeShape.contentType ?? void 0,
14143
+ discriminant: writeShape.discriminant ?? void 0,
14065
14144
  description: writeShape.description,
14066
14145
  // htmlDescription,
14067
14146
  // descriptionContainsMarkdown: true,
@@ -15174,6 +15253,7 @@ function convertExampleEndpointCall({
15174
15253
  return {
15175
15254
  name: dbShape.name,
15176
15255
  contentType: dbShape.contentType ?? void 0,
15256
+ discriminant: dbShape.discriminant ?? void 0,
15177
15257
  description: dbShape.description,
15178
15258
  // htmlDescription: dbShape.htmlDescription,
15179
15259
  // descriptionContainsMarkdown: true,