@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
@@ -1418,6 +1418,9 @@ var RegisterExampleEndpointCallSchema = z3.object({
1418
1418
  description: z3.string().nullish(),
1419
1419
  name: z3.string().nullish(),
1420
1420
  contentType: z3.string().nullish(),
1421
+ // When the request body is a discriminated union and one example is generated per variant,
1422
+ // this carries the variant's discriminant value so the UI can swap examples when the variant changes.
1423
+ discriminant: z3.string().nullish(),
1421
1424
  path: z3.string(),
1422
1425
  pathParameters: z3.record(PropertyKeySchema, z3.unknown()),
1423
1426
  queryParameters: z3.record(z3.string(), z3.unknown()),
@@ -1991,6 +1994,7 @@ var LatestExampleEndpointCallSchema = z4.object({
1991
1994
  responseStatusCode: z4.number().int(),
1992
1995
  name: z4.string().nullish(),
1993
1996
  contentType: z4.string().nullish(),
1997
+ discriminant: z4.string().nullish(),
1994
1998
  pathParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
1995
1999
  queryParameters: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
1996
2000
  headers: z4.record(PropertyKeySchema, z4.unknown()).nullish(),
@@ -2265,6 +2269,7 @@ var ReadExampleEndpointCallSchema = z5.object({
2265
2269
  description: z5.string().nullish(),
2266
2270
  name: z5.string().nullish(),
2267
2271
  contentType: z5.string().nullish(),
2272
+ discriminant: z5.string().nullish(),
2268
2273
  path: z5.string(),
2269
2274
  pathParameters: z5.record(PropertyKeySchema, z5.unknown()),
2270
2275
  queryParameters: z5.record(z5.string(), z5.unknown()),
@@ -6138,6 +6143,52 @@ function generateHttpRequestBodyExample(type, resolveTypeById) {
6138
6143
  }
6139
6144
  }
6140
6145
  }
6146
+ function resolveRequestBodyDiscriminatedUnion(type, resolveTypeById) {
6147
+ let shape;
6148
+ switch (type.type) {
6149
+ case "reference":
6150
+ shape = resolveTypeReferenceToShape(type.value, resolveTypeById, /* @__PURE__ */ new Set());
6151
+ break;
6152
+ case "json":
6153
+ shape = type.shape.type === "reference" ? resolveTypeReferenceToShape(type.shape.value, resolveTypeById, /* @__PURE__ */ new Set()) : void 0;
6154
+ break;
6155
+ default:
6156
+ return void 0;
6157
+ }
6158
+ return shape?.type === "discriminatedUnion" ? shape : void 0;
6159
+ }
6160
+ function resolveTypeReferenceToShape(reference, resolveTypeById, visited) {
6161
+ switch (reference.type) {
6162
+ case "id": {
6163
+ if (visited.has(reference.value)) {
6164
+ return void 0;
6165
+ }
6166
+ visited.add(reference.value);
6167
+ const typeDef = resolveTypeById(reference.value);
6168
+ if (typeDef == null) {
6169
+ return void 0;
6170
+ }
6171
+ if (typeDef.shape.type === "alias") {
6172
+ return resolveTypeReferenceToShape(typeDef.shape.value, resolveTypeById, visited);
6173
+ }
6174
+ return typeDef.shape;
6175
+ }
6176
+ case "optional":
6177
+ case "nullable":
6178
+ return resolveTypeReferenceToShape(reference.itemType, resolveTypeById, visited);
6179
+ default:
6180
+ return void 0;
6181
+ }
6182
+ }
6183
+ function generateDiscriminatedUnionVariantRequestExample(discriminant, variant, resolveTypeById) {
6184
+ return {
6185
+ type: "json",
6186
+ value: {
6187
+ [discriminant]: variant.discriminantValue,
6188
+ ...generateExampleObject(variant.additionalProperties, resolveTypeById, true, /* @__PURE__ */ new Set(), 0)
6189
+ }
6190
+ };
6191
+ }
6141
6192
  function generateFormDataRequestBodyExample(FormDataRequest, resolveTypeById) {
6142
6193
  if (FormDataRequest == null) {
6143
6194
  return { type: "form", value: {} };
@@ -6519,6 +6570,32 @@ function generateEndpointSuccessExample({
6519
6570
  responseBodyV3: endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0
6520
6571
  };
6521
6572
  }
6573
+ function generateEndpointSuccessExamples({
6574
+ endpointDefinition,
6575
+ apiDefinition
6576
+ }) {
6577
+ const resolveTypeById = getResolveByTypeId(apiDefinition);
6578
+ const discriminatedUnion11 = endpointDefinition.request != null ? resolveRequestBodyDiscriminatedUnion(endpointDefinition.request.type, resolveTypeById) : void 0;
6579
+ if (discriminatedUnion11 == null || discriminatedUnion11.variants.length <= 1) {
6580
+ return [generateEndpointSuccessExample({ endpointDefinition, apiDefinition })];
6581
+ }
6582
+ const base = generateBaseEndpointExample({ endpointDefinition, apiDefinition, resolveTypeById });
6583
+ const responseBodyV3 = endpointDefinition.response != null ? generateHttpResponseBodyExample(endpointDefinition.response.type, resolveTypeById) : void 0;
6584
+ return discriminatedUnion11.variants.map((variant) => ({
6585
+ ...base,
6586
+ // Use `||` (not `??`) so an empty-string displayName falls back to the (always-present,
6587
+ // unique) discriminant value — keeping example names non-empty and distinct.
6588
+ name: variant.displayName || variant.discriminantValue,
6589
+ discriminant: variant.discriminantValue,
6590
+ requestBodyV3: generateDiscriminatedUnionVariantRequestExample(
6591
+ discriminatedUnion11.discriminant,
6592
+ variant,
6593
+ resolveTypeById
6594
+ ),
6595
+ responseStatusCode: 200,
6596
+ responseBodyV3
6597
+ }));
6598
+ }
6522
6599
  function generateBaseEndpointExample({
6523
6600
  endpointDefinition,
6524
6601
  apiDefinition,
@@ -7006,11 +7083,11 @@ function getExampleEndpointCalls({
7006
7083
  if (registeredSuccessExamples.length > 0) {
7007
7084
  examples.push(...registeredSuccessExamples);
7008
7085
  } else {
7009
- const generatedSuccessExample = generateEndpointSuccessExample({
7086
+ const generatedSuccessExamples = generateEndpointSuccessExamples({
7010
7087
  endpointDefinition: writeShape,
7011
7088
  apiDefinition
7012
7089
  });
7013
- examples.push(generatedSuccessExample);
7090
+ examples.push(...generatedSuccessExamples);
7014
7091
  }
7015
7092
  const registeredErrorExampleStatusCodes = new Set(registeredErrorExamples.map((e) => e.responseStatusCode));
7016
7093
  const errorsMissingAnExample = (writeShape.errorsV2 ?? []).filter(
@@ -7089,6 +7166,7 @@ function transformExampleEndpointCall({
7089
7166
  return {
7090
7167
  name: writeShape.name,
7091
7168
  contentType: writeShape.contentType ?? void 0,
7169
+ discriminant: writeShape.discriminant ?? void 0,
7092
7170
  description: writeShape.description,
7093
7171
  // htmlDescription,
7094
7172
  // descriptionContainsMarkdown: true,
@@ -10007,6 +10085,7 @@ var ApiDefinitionV1ToLatest = class _ApiDefinitionV1ToLatest {
10007
10085
  responseStatusCode: example?.responseStatusCode,
10008
10086
  name: example?.name,
10009
10087
  contentType: example?.contentType ?? void 0,
10088
+ discriminant: example?.discriminant ?? void 0,
10010
10089
  description: example?.description,
10011
10090
  pathParameters: example?.pathParameters,
10012
10091
  queryParameters: example?.queryParameters,
@@ -17287,6 +17366,7 @@ function convertExampleEndpointCall({
17287
17366
  return {
17288
17367
  name: dbShape.name,
17289
17368
  contentType: dbShape.contentType ?? void 0,
17369
+ discriminant: dbShape.discriminant ?? void 0,
17290
17370
  description: dbShape.description,
17291
17371
  // htmlDescription: dbShape.htmlDescription,
17292
17372
  // descriptionContainsMarkdown: true,