@fern-api/fdr-sdk 1.2.46-fe3cc347c7 → 1.2.47-71b5d96b20

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
@@ -1347,7 +1347,7 @@ function mergeChildrenByPosition(ctx, nav, sectionChildren) {
1347
1347
  function sectionNode(ctx, scoped, sectionChildren, scopePrefix) {
1348
1348
  const { seg, nav } = scoped;
1349
1349
  const overview = overviewRoute(nav) ?? overviewRouteFromSegmentMeta(seg, nav);
1350
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1350
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1351
1351
  const relSection = stripLeadingScopePrefix(seg.section, scopePrefix);
1352
1352
  let slug = structuralNodeSlug(ctx, overview?.fullPath, relSection, scopePrefix);
1353
1353
  if (relSection === "" && overview?.fullPath == null) {
@@ -1448,7 +1448,7 @@ function buildApiChildren(ctx, scoped, scopeSegs, apiDefinitionId, scopePrefix)
1448
1448
  function apiPackageChildNode(ctx, scoped, scopeSegs, parentApiDefinitionId, scopePrefix) {
1449
1449
  const { seg, nav } = scoped;
1450
1450
  const overview = overviewRoute(nav);
1451
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1451
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1452
1452
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? parentApiDefinitionId;
1453
1453
  const slug = structuralNodeSlug(
1454
1454
  ctx,
@@ -1536,7 +1536,7 @@ function mergeEndpointPairs(ctx, leafNodes, allNav) {
1536
1536
  function apiReferenceNode(ctx, scoped, scopeSegs, scopePrefix) {
1537
1537
  const { seg, nav } = scoped;
1538
1538
  const overview = overviewRoute(nav);
1539
- const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1539
+ const overviewPageId = metaStr(overview?.metadata, "pageId") ?? metaStr(seg.metadata, "overviewPageId");
1540
1540
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? "";
1541
1541
  const slug = structuralNodeSlug(
1542
1542
  ctx,
@@ -2236,7 +2236,7 @@ function buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix) {
2236
2236
  }
2237
2237
  function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2238
2238
  const first = scopeSegs[0];
2239
- return {
2239
+ const node = {
2240
2240
  type: "unversioned",
2241
2241
  id: ctx.nodeId(`unversioned:${first?.seg.product?.id ?? "root"}`),
2242
2242
  collapsed: void 0,
@@ -2246,6 +2246,8 @@ function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2246
2246
  // namespace.
2247
2247
  child: buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix)
2248
2248
  };
2249
+ markWithinScopeCanonicalSlugs(node);
2250
+ return node;
2249
2251
  }
2250
2252
  function mergeSharedSections(defaultSegs, allScoped, defaultVersion, versionSlugs) {
2251
2253
  const defaultTabsByName = /* @__PURE__ */ new Map();
@@ -2329,6 +2331,7 @@ function buildVersioned(ctx, versions, scoped, rootSlug, productPrefix, skipShar
2329
2331
  // version subtree stays inside the default-version prune window.
2330
2332
  child: buildTabbedOrSidebar(ctx, versionSegs, tabsPresent, asSlug(slug))
2331
2333
  };
2334
+ markWithinScopeCanonicalSlugs(node);
2332
2335
  if (node.default) {
2333
2336
  markDefaultVersionCanonicalSlugs(node, productPrefix != null ? asSlug(productPrefix) : rootSlug, node.slug);
2334
2337
  }
@@ -2439,6 +2442,34 @@ function buildLandingPage(ctx, scopeSegs) {
2439
2442
  landingSegment?.nav.find((route) => route.type === "markdown")
2440
2443
  );
2441
2444
  }
2445
+ function markWithinScopeCanonicalSlugs(scopeNode) {
2446
+ const keyToCanonical = /* @__PURE__ */ new Map();
2447
+ traverseDF(scopeNode, (child, parents) => {
2448
+ if (hasMetadata(child) && isPage(child)) {
2449
+ const keys = crossVersionDedupKeys(child, parents);
2450
+ let matched = false;
2451
+ for (const key of keys) {
2452
+ const canonical = keyToCanonical.get(key);
2453
+ if (canonical != null && canonical !== child.slug) {
2454
+ if (child.slug.startsWith(canonical + "/") && getChildren(child).length > 0) {
2455
+ continue;
2456
+ }
2457
+ child.canonicalSlug = canonical;
2458
+ matched = true;
2459
+ break;
2460
+ }
2461
+ }
2462
+ if (!matched) {
2463
+ const slug = child.canonicalSlug ?? child.slug;
2464
+ for (const key of keys) {
2465
+ if (!keyToCanonical.has(key)) {
2466
+ keyToCanonical.set(key, slug);
2467
+ }
2468
+ }
2469
+ }
2470
+ }
2471
+ });
2472
+ }
2442
2473
  function markCrossVersionCanonicalSlugs(versionNodes) {
2443
2474
  const keyToCanonical = /* @__PURE__ */ new Map();
2444
2475
  const sorted = [...versionNodes].sort((a, b) => {
@@ -2455,6 +2486,9 @@ function markCrossVersionCanonicalSlugs(versionNodes) {
2455
2486
  for (const key of keys) {
2456
2487
  const canonical = keyToCanonical.get(key);
2457
2488
  if (canonical != null && !version.default) {
2489
+ if (child.slug.startsWith(canonical + "/") && getChildren(child).length > 0) {
2490
+ continue;
2491
+ }
2458
2492
  child.canonicalSlug = canonical;
2459
2493
  matched = true;
2460
2494
  break;
@@ -2532,11 +2566,14 @@ function markCrossProductCanonicalSlugs(productNodes) {
2532
2566
  return;
2533
2567
  }
2534
2568
  const key = `pid:${pid}`;
2535
- const canonical = pageIdToCanonical.get(key);
2536
- if (canonical != null && !product.default) {
2537
- child.canonicalSlug = canonical;
2538
- } else if (canonical == null) {
2539
- pageIdToCanonical.set(key, child.canonicalSlug ?? child.slug);
2569
+ const entry = pageIdToCanonical.get(key);
2570
+ if (entry != null && !product.default && entry.productId !== product.productId) {
2571
+ child.canonicalSlug = entry.slug;
2572
+ } else if (entry == null) {
2573
+ pageIdToCanonical.set(key, {
2574
+ slug: child.canonicalSlug ?? child.slug,
2575
+ productId: product.productId
2576
+ });
2540
2577
  }
2541
2578
  }
2542
2579
  });