@fern-api/fdr-sdk 1.2.73-c5de911f8d → 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.
- package/dist/js/api-definition/index.js +5 -0
- package/dist/js/api-definition/index.js.map +1 -1
- package/dist/js/api-definition/index.mjs +5 -0
- package/dist/js/api-definition/index.mjs.map +1 -1
- package/dist/js/client/FdrClient.js +5 -0
- package/dist/js/client/FdrClient.js.map +1 -1
- package/dist/js/client/FdrClient.mjs +5 -0
- package/dist/js/client/FdrClient.mjs.map +1 -1
- package/dist/js/client/types.js +5 -0
- package/dist/js/client/types.js.map +1 -1
- package/dist/js/client/types.mjs +5 -0
- package/dist/js/client/types.mjs.map +1 -1
- package/dist/js/converters/index.js +106 -2
- package/dist/js/converters/index.js.map +1 -1
- package/dist/js/converters/index.mjs +106 -2
- package/dist/js/converters/index.mjs.map +1 -1
- package/dist/js/index.js +106 -2
- package/dist/js/index.js.map +1 -1
- package/dist/js/index.mjs +106 -2
- package/dist/js/index.mjs.map +1 -1
- package/dist/js/navigation/index.js +30 -0
- package/dist/js/navigation/index.js.map +1 -1
- package/dist/js/navigation/index.mjs +30 -0
- package/dist/js/navigation/index.mjs.map +1 -1
- package/dist/js/orpc-client.js +5 -0
- package/dist/js/orpc-client.js.map +1 -1
- package/dist/js/orpc-client.mjs +5 -0
- package/dist/js/orpc-client.mjs.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/api-definition/migrators/v1ToV2.d.ts +5 -0
- package/dist/types/api-definition/migrators/v1ToV2.d.ts.map +1 -1
- package/dist/types/converters/db/convertAPIDefinitionToDb.d.ts.map +1 -1
- package/dist/types/converters/db/examples/generateEndpointExampleCall.d.ts +10 -0
- package/dist/types/converters/db/examples/generateEndpointExampleCall.d.ts.map +1 -1
- package/dist/types/converters/db/examples/generateHttpBodyExample.d.ts +10 -0
- package/dist/types/converters/db/examples/generateHttpBodyExample.d.ts.map +1 -1
- package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts +14 -0
- package/dist/types/converters/read/convertDbAPIDefinitionToRead.d.ts.map +1 -1
- package/dist/types/navigation/NodeCollector.d.ts +13 -0
- package/dist/types/navigation/NodeCollector.d.ts.map +1 -1
- package/dist/types/navigation/__test__/NodeCollector.getRoles.test.d.ts +2 -0
- package/dist/types/navigation/__test__/NodeCollector.getRoles.test.d.ts.map +1 -0
- package/dist/types/navigation/utils/toApis.d.ts +1 -0
- package/dist/types/navigation/utils/toApis.d.ts.map +1 -1
- package/dist/types/orpc-client/api/contract-db.d.ts +500 -0
- package/dist/types/orpc-client/api/contract-db.d.ts.map +1 -1
- package/dist/types/orpc-client/api/contract-latest.d.ts +22 -0
- package/dist/types/orpc-client/api/contract-latest.d.ts.map +1 -1
- package/dist/types/orpc-client/api/contract-read.d.ts +540 -0
- package/dist/types/orpc-client/api/contract-read.d.ts.map +1 -1
- package/dist/types/orpc-client/api/contract-register.d.ts +540 -0
- package/dist/types/orpc-client/api/contract-register.d.ts.map +1 -1
- 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
|
|
7047
|
+
const generatedSuccessExamples = generateEndpointSuccessExamples({
|
|
6971
7048
|
endpointDefinition: writeShape,
|
|
6972
7049
|
apiDefinition
|
|
6973
7050
|
});
|
|
6974
|
-
examples.push(
|
|
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,
|
|
@@ -14736,6 +14815,30 @@ var NodeCollector = class _NodeCollector {
|
|
|
14736
14815
|
getNodesInOrder = () => {
|
|
14737
14816
|
return this.nodesInOrder;
|
|
14738
14817
|
};
|
|
14818
|
+
/**
|
|
14819
|
+
* The distinct RBAC roles referenced anywhere in the navigation, collected from every node's
|
|
14820
|
+
* `viewers`. This is the authoritative source of "which roles gate content on this site" — the
|
|
14821
|
+
* top-level `root.roles` is not populated by the nav builders, and docs.yml's declared `roles`
|
|
14822
|
+
* list is not serialized into the docs definition, so the roles that actually exist are the ones
|
|
14823
|
+
* appearing in node `viewers` (e.g. the implicit `everyone` plus any custom roles like `beta`).
|
|
14824
|
+
*
|
|
14825
|
+
* NOTE: this is a faithful collection of every role in `viewers` — it INCLUDES the implicit
|
|
14826
|
+
* `everyone` role when present (kept deliberately, so callers can e.g. detect whether a site uses
|
|
14827
|
+
* RBAC at all). Consumers that want only masquerade-able custom roles MUST filter `everyone`
|
|
14828
|
+
* themselves (the preview widget does this via `EVERYONE_ROLE`).
|
|
14829
|
+
*/
|
|
14830
|
+
getRoles = once(() => {
|
|
14831
|
+
const roles = /* @__PURE__ */ new Set();
|
|
14832
|
+
for (const node of this.nodesInOrder) {
|
|
14833
|
+
const viewers = node.viewers;
|
|
14834
|
+
if (viewers != null) {
|
|
14835
|
+
for (const role of viewers) {
|
|
14836
|
+
roles.add(role);
|
|
14837
|
+
}
|
|
14838
|
+
}
|
|
14839
|
+
}
|
|
14840
|
+
return Array.from(roles);
|
|
14841
|
+
});
|
|
14739
14842
|
};
|
|
14740
14843
|
var MAX_CHANGELOG_ENTRIES_MINIMUM = 15;
|
|
14741
14844
|
var CHANGELOG_RECENCY_MONTHS = 6;
|
|
@@ -17224,6 +17327,7 @@ function convertExampleEndpointCall({
|
|
|
17224
17327
|
return {
|
|
17225
17328
|
name: dbShape.name,
|
|
17226
17329
|
contentType: dbShape.contentType ?? void 0,
|
|
17330
|
+
discriminant: dbShape.discriminant ?? void 0,
|
|
17227
17331
|
description: dbShape.description,
|
|
17228
17332
|
// htmlDescription: dbShape.htmlDescription,
|
|
17229
17333
|
// descriptionContainsMarkdown: true,
|