@fern-api/fdr-sdk 1.2.46-fe3cc347c7 → 1.2.47-644c48eaef

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 (100) hide show
  1. package/dist/client/docs-types/db.d.ts +47 -0
  2. package/dist/client/docs-types/db.d.ts.map +1 -1
  3. package/dist/client/docs-types/read.d.ts +21 -0
  4. package/dist/client/docs-types/read.d.ts.map +1 -1
  5. package/dist/client/docs-types/shared.d.ts +5 -0
  6. package/dist/client/docs-types/shared.d.ts.map +1 -1
  7. package/dist/client/docs-types/shared.js +5 -1
  8. package/dist/client/docs-types/shared.js.map +1 -1
  9. package/dist/client/docs-types/write.d.ts +12 -0
  10. package/dist/client/docs-types/write.d.ts.map +1 -1
  11. package/dist/js/client/FdrClient.js +3 -1
  12. package/dist/js/client/FdrClient.js.map +1 -1
  13. package/dist/js/client/FdrClient.mjs +3 -1
  14. package/dist/js/client/FdrClient.mjs.map +1 -1
  15. package/dist/js/client/types.js +3 -1
  16. package/dist/js/client/types.js.map +1 -1
  17. package/dist/js/client/types.mjs +3 -1
  18. package/dist/js/client/types.mjs.map +1 -1
  19. package/dist/js/converters/index.js +3 -1
  20. package/dist/js/converters/index.js.map +1 -1
  21. package/dist/js/converters/index.mjs +3 -1
  22. package/dist/js/converters/index.mjs.map +1 -1
  23. package/dist/js/docs/index.js +3 -1
  24. package/dist/js/docs/index.js.map +1 -1
  25. package/dist/js/docs/index.mjs +3 -1
  26. package/dist/js/docs/index.mjs.map +1 -1
  27. package/dist/js/index.js +3 -1
  28. package/dist/js/index.js.map +1 -1
  29. package/dist/js/index.mjs +3 -1
  30. package/dist/js/index.mjs.map +1 -1
  31. package/dist/js/navigation/index.js +3 -1
  32. package/dist/js/navigation/index.js.map +1 -1
  33. package/dist/js/navigation/index.mjs +3 -1
  34. package/dist/js/navigation/index.mjs.map +1 -1
  35. package/dist/js/navigation/ledger-root-builder.js +46 -9
  36. package/dist/js/navigation/ledger-root-builder.js.map +1 -1
  37. package/dist/js/navigation/ledger-root-builder.mjs +46 -9
  38. package/dist/js/navigation/ledger-root-builder.mjs.map +1 -1
  39. package/dist/js/orpc-client.js +39 -1
  40. package/dist/js/orpc-client.js.map +1 -1
  41. package/dist/js/orpc-client.mjs +39 -1
  42. package/dist/js/orpc-client.mjs.map +1 -1
  43. package/dist/navigation/__test__/ledger-canonical-bugs.repro.test.d.ts +2 -0
  44. package/dist/navigation/__test__/ledger-canonical-bugs.repro.test.d.ts.map +1 -0
  45. package/dist/navigation/__test__/ledger-canonical-bugs.repro.test.js +335 -0
  46. package/dist/navigation/__test__/ledger-canonical-bugs.repro.test.js.map +1 -0
  47. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.js +64 -1
  48. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.js.map +1 -1
  49. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts +2 -0
  50. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts.map +1 -0
  51. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.js +408 -0
  52. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.js.map +1 -0
  53. package/dist/navigation/ledger-root-builder.d.ts.map +1 -1
  54. package/dist/navigation/ledger-root-builder.js +80 -16
  55. package/dist/navigation/ledger-root-builder.js.map +1 -1
  56. package/dist/orpc-client/docs/v1/read/contract.d.ts +14 -0
  57. package/dist/orpc-client/docs/v1/read/contract.d.ts.map +1 -1
  58. package/dist/orpc-client/docs/v1/write/contract.d.ts +4 -0
  59. package/dist/orpc-client/docs/v1/write/contract.d.ts.map +1 -1
  60. package/dist/orpc-client/docs/v2/read/contract.d.ts +32 -0
  61. package/dist/orpc-client/docs/v2/read/contract.d.ts.map +1 -1
  62. package/dist/orpc-client/docs/v2/write/contract.d.ts +8 -0
  63. package/dist/orpc-client/docs/v2/write/contract.d.ts.map +1 -1
  64. package/dist/orpc-client/docs-ledger/__test__/config-files.navFiles.test.js +28 -1
  65. package/dist/orpc-client/docs-ledger/__test__/config-files.navFiles.test.js.map +1 -1
  66. package/dist/orpc-client/docs-ledger/config-files.d.ts.map +1 -1
  67. package/dist/orpc-client/docs-ledger/config-files.js +34 -0
  68. package/dist/orpc-client/docs-ledger/config-files.js.map +1 -1
  69. package/dist/orpc-client/docs-ledger/contract.d.ts +56 -0
  70. package/dist/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  71. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts +14 -0
  72. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  73. package/dist/tsconfig.tsbuildinfo +1 -1
  74. package/dist/types/client/docs-types/db.d.ts +47 -0
  75. package/dist/types/client/docs-types/db.d.ts.map +1 -1
  76. package/dist/types/client/docs-types/read.d.ts +21 -0
  77. package/dist/types/client/docs-types/read.d.ts.map +1 -1
  78. package/dist/types/client/docs-types/shared.d.ts +5 -0
  79. package/dist/types/client/docs-types/shared.d.ts.map +1 -1
  80. package/dist/types/client/docs-types/write.d.ts +12 -0
  81. package/dist/types/client/docs-types/write.d.ts.map +1 -1
  82. package/dist/types/navigation/__test__/ledger-canonical-bugs.repro.test.d.ts +2 -0
  83. package/dist/types/navigation/__test__/ledger-canonical-bugs.repro.test.d.ts.map +1 -0
  84. package/dist/types/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts +2 -0
  85. package/dist/types/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts.map +1 -0
  86. package/dist/types/navigation/ledger-root-builder.d.ts.map +1 -1
  87. package/dist/types/orpc-client/docs/v1/read/contract.d.ts +14 -0
  88. package/dist/types/orpc-client/docs/v1/read/contract.d.ts.map +1 -1
  89. package/dist/types/orpc-client/docs/v1/write/contract.d.ts +4 -0
  90. package/dist/types/orpc-client/docs/v1/write/contract.d.ts.map +1 -1
  91. package/dist/types/orpc-client/docs/v2/read/contract.d.ts +32 -0
  92. package/dist/types/orpc-client/docs/v2/read/contract.d.ts.map +1 -1
  93. package/dist/types/orpc-client/docs/v2/write/contract.d.ts +8 -0
  94. package/dist/types/orpc-client/docs/v2/write/contract.d.ts.map +1 -1
  95. package/dist/types/orpc-client/docs-ledger/config-files.d.ts.map +1 -1
  96. package/dist/types/orpc-client/docs-ledger/contract.d.ts +56 -0
  97. package/dist/types/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  98. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts +14 -0
  99. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  100. package/package.json +1 -1
@@ -1306,7 +1306,7 @@ function mergeChildrenByPosition(ctx, nav, sectionChildren) {
1306
1306
  function sectionNode(ctx, scoped, sectionChildren, scopePrefix) {
1307
1307
  const { seg, nav } = scoped;
1308
1308
  const overview = overviewRoute(nav) ?? overviewRouteFromSegmentMeta(seg, nav);
1309
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1309
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1310
1310
  const relSection = stripLeadingScopePrefix(seg.section, scopePrefix);
1311
1311
  let slug = structuralNodeSlug(ctx, overview?.fullPath, relSection, scopePrefix);
1312
1312
  if (relSection === "" && overview?.fullPath == null) {
@@ -1407,7 +1407,7 @@ function buildApiChildren(ctx, scoped, scopeSegs, apiDefinitionId, scopePrefix)
1407
1407
  function apiPackageChildNode(ctx, scoped, scopeSegs, parentApiDefinitionId, scopePrefix) {
1408
1408
  const { seg, nav } = scoped;
1409
1409
  const overview = overviewRoute(nav);
1410
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1410
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1411
1411
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? parentApiDefinitionId;
1412
1412
  const slug = structuralNodeSlug(
1413
1413
  ctx,
@@ -1495,7 +1495,7 @@ function mergeEndpointPairs(ctx, leafNodes, allNav) {
1495
1495
  function apiReferenceNode(ctx, scoped, scopeSegs, scopePrefix) {
1496
1496
  const { seg, nav } = scoped;
1497
1497
  const overview = overviewRoute(nav);
1498
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1498
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1499
1499
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? "";
1500
1500
  const slug = structuralNodeSlug(
1501
1501
  ctx,
@@ -2195,7 +2195,7 @@ function buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix) {
2195
2195
  }
2196
2196
  function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2197
2197
  const first = scopeSegs[0];
2198
- return {
2198
+ const node = {
2199
2199
  type: "unversioned",
2200
2200
  id: ctx.nodeId(`unversioned:${first?.seg.product?.id ?? "root"}`),
2201
2201
  collapsed: void 0,
@@ -2205,6 +2205,8 @@ function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2205
2205
  // namespace.
2206
2206
  child: buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix)
2207
2207
  };
2208
+ markWithinScopeCanonicalSlugs(node);
2209
+ return node;
2208
2210
  }
2209
2211
  function mergeSharedSections(defaultSegs, allScoped, defaultVersion, versionSlugs) {
2210
2212
  const defaultTabsByName = /* @__PURE__ */ new Map();
@@ -2288,6 +2290,7 @@ function buildVersioned(ctx, versions, scoped, rootSlug, productPrefix, skipShar
2288
2290
  // version subtree stays inside the default-version prune window.
2289
2291
  child: buildTabbedOrSidebar(ctx, versionSegs, tabsPresent, asSlug(slug))
2290
2292
  };
2293
+ markWithinScopeCanonicalSlugs(node);
2291
2294
  if (node.default) {
2292
2295
  markDefaultVersionCanonicalSlugs(node, productPrefix != null ? asSlug(productPrefix) : rootSlug, node.slug);
2293
2296
  }
@@ -2398,6 +2401,34 @@ function buildLandingPage(ctx, scopeSegs) {
2398
2401
  landingSegment?.nav.find((route) => route.type === "markdown")
2399
2402
  );
2400
2403
  }
2404
+ function markWithinScopeCanonicalSlugs(scopeNode) {
2405
+ const keyToCanonical = /* @__PURE__ */ new Map();
2406
+ traverseDF(scopeNode, (child, parents) => {
2407
+ if (hasMetadata(child) && isPage(child)) {
2408
+ const keys = crossVersionDedupKeys(child, parents);
2409
+ let matched = false;
2410
+ for (const key of keys) {
2411
+ const canonical = keyToCanonical.get(key);
2412
+ if (canonical != null && canonical !== child.slug) {
2413
+ if (child.slug.startsWith(canonical + "/") && getChildren(child).length > 0) {
2414
+ continue;
2415
+ }
2416
+ child.canonicalSlug = canonical;
2417
+ matched = true;
2418
+ break;
2419
+ }
2420
+ }
2421
+ if (!matched) {
2422
+ const slug = child.canonicalSlug ?? child.slug;
2423
+ for (const key of keys) {
2424
+ if (!keyToCanonical.has(key)) {
2425
+ keyToCanonical.set(key, slug);
2426
+ }
2427
+ }
2428
+ }
2429
+ }
2430
+ });
2431
+ }
2401
2432
  function markCrossVersionCanonicalSlugs(versionNodes) {
2402
2433
  const keyToCanonical = /* @__PURE__ */ new Map();
2403
2434
  const sorted = [...versionNodes].sort((a, b) => {
@@ -2414,6 +2445,9 @@ function markCrossVersionCanonicalSlugs(versionNodes) {
2414
2445
  for (const key of keys) {
2415
2446
  const canonical = keyToCanonical.get(key);
2416
2447
  if (canonical != null && !version.default) {
2448
+ if (child.slug.startsWith(canonical + "/") && getChildren(child).length > 0) {
2449
+ continue;
2450
+ }
2417
2451
  child.canonicalSlug = canonical;
2418
2452
  matched = true;
2419
2453
  break;
@@ -2491,11 +2525,14 @@ function markCrossProductCanonicalSlugs(productNodes) {
2491
2525
  return;
2492
2526
  }
2493
2527
  const key = `pid:${pid}`;
2494
- const canonical = pageIdToCanonical.get(key);
2495
- if (canonical != null && !product.default) {
2496
- child.canonicalSlug = canonical;
2497
- } else if (canonical == null) {
2498
- pageIdToCanonical.set(key, child.canonicalSlug ?? child.slug);
2528
+ const entry = pageIdToCanonical.get(key);
2529
+ if (entry != null && !product.default && entry.productId !== product.productId) {
2530
+ child.canonicalSlug = entry.slug;
2531
+ } else if (entry == null) {
2532
+ pageIdToCanonical.set(key, {
2533
+ slug: child.canonicalSlug ?? child.slug,
2534
+ productId: product.productId
2535
+ });
2499
2536
  }
2500
2537
  }
2501
2538
  });