@fern-api/fdr-sdk 1.2.45-9cc0fe9249 → 1.2.46-1b9e2153be

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 (94) 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 +51 -12
  36. package/dist/js/navigation/ledger-root-builder.js.map +1 -1
  37. package/dist/js/navigation/ledger-root-builder.mjs +51 -12
  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-root-builder.contentfulRedirectRepro.test.js +56 -1
  44. package/dist/navigation/__test__/ledger-root-builder.contentfulRedirectRepro.test.js.map +1 -1
  45. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts +2 -0
  46. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts.map +1 -0
  47. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.js +408 -0
  48. package/dist/navigation/__test__/ledger-root-builder.withinVersionDedup.test.js.map +1 -0
  49. package/dist/navigation/ledger-root-builder.d.ts.map +1 -1
  50. package/dist/navigation/ledger-root-builder.js +78 -12
  51. package/dist/navigation/ledger-root-builder.js.map +1 -1
  52. package/dist/orpc-client/docs/v1/read/contract.d.ts +14 -0
  53. package/dist/orpc-client/docs/v1/read/contract.d.ts.map +1 -1
  54. package/dist/orpc-client/docs/v1/write/contract.d.ts +4 -0
  55. package/dist/orpc-client/docs/v1/write/contract.d.ts.map +1 -1
  56. package/dist/orpc-client/docs/v2/read/contract.d.ts +32 -0
  57. package/dist/orpc-client/docs/v2/read/contract.d.ts.map +1 -1
  58. package/dist/orpc-client/docs/v2/write/contract.d.ts +8 -0
  59. package/dist/orpc-client/docs/v2/write/contract.d.ts.map +1 -1
  60. package/dist/orpc-client/docs-ledger/__test__/config-files.navFiles.test.js +28 -1
  61. package/dist/orpc-client/docs-ledger/__test__/config-files.navFiles.test.js.map +1 -1
  62. package/dist/orpc-client/docs-ledger/config-files.d.ts.map +1 -1
  63. package/dist/orpc-client/docs-ledger/config-files.js +34 -0
  64. package/dist/orpc-client/docs-ledger/config-files.js.map +1 -1
  65. package/dist/orpc-client/docs-ledger/contract.d.ts +56 -0
  66. package/dist/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  67. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts +14 -0
  68. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/dist/types/client/docs-types/db.d.ts +47 -0
  71. package/dist/types/client/docs-types/db.d.ts.map +1 -1
  72. package/dist/types/client/docs-types/read.d.ts +21 -0
  73. package/dist/types/client/docs-types/read.d.ts.map +1 -1
  74. package/dist/types/client/docs-types/shared.d.ts +5 -0
  75. package/dist/types/client/docs-types/shared.d.ts.map +1 -1
  76. package/dist/types/client/docs-types/write.d.ts +12 -0
  77. package/dist/types/client/docs-types/write.d.ts.map +1 -1
  78. package/dist/types/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts +2 -0
  79. package/dist/types/navigation/__test__/ledger-root-builder.withinVersionDedup.test.d.ts.map +1 -0
  80. package/dist/types/navigation/ledger-root-builder.d.ts.map +1 -1
  81. package/dist/types/orpc-client/docs/v1/read/contract.d.ts +14 -0
  82. package/dist/types/orpc-client/docs/v1/read/contract.d.ts.map +1 -1
  83. package/dist/types/orpc-client/docs/v1/write/contract.d.ts +4 -0
  84. package/dist/types/orpc-client/docs/v1/write/contract.d.ts.map +1 -1
  85. package/dist/types/orpc-client/docs/v2/read/contract.d.ts +32 -0
  86. package/dist/types/orpc-client/docs/v2/read/contract.d.ts.map +1 -1
  87. package/dist/types/orpc-client/docs/v2/write/contract.d.ts +8 -0
  88. package/dist/types/orpc-client/docs/v2/write/contract.d.ts.map +1 -1
  89. package/dist/types/orpc-client/docs-ledger/config-files.d.ts.map +1 -1
  90. package/dist/types/orpc-client/docs-ledger/contract.d.ts +56 -0
  91. package/dist/types/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  92. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts +14 -0
  93. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  94. package/package.json +1 -1
@@ -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 = overview != null ? metaStr(overview.metadata, "pageId") : void 0;
1451
+ const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1452
1452
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? parentApiDefinitionId;
1453
1453
  const slug = structuralNodeSlug(
1454
1454
  ctx,
@@ -1456,7 +1456,6 @@ function apiPackageChildNode(ctx, scoped, scopeSegs, parentApiDefinitionId, scop
1456
1456
  stripLeadingScopePrefix(seg.section, scopePrefix),
1457
1457
  scopePrefix
1458
1458
  );
1459
- const metaPointsTo = metaStr(seg.metadata, "pointsTo");
1460
1459
  const children = buildApiChildren(ctx, scoped, scopeSegs, apiDefinitionId, scopePrefix);
1461
1460
  return {
1462
1461
  type: "apiPackage",
@@ -1475,7 +1474,9 @@ function apiPackageChildNode(ctx, scoped, scopeSegs, parentApiDefinitionId, scop
1475
1474
  availability: metaAvailability(seg.metadata),
1476
1475
  overviewPageId: overviewPageId != null ? PageId(overviewPageId) : void 0,
1477
1476
  noindex: metaBool(overview?.metadata, "noindex") ?? metaBool(seg.metadata, "noindex"),
1478
- pointsTo: metaPointsTo != null ? pointsToSlug(metaPointsTo) : void 0,
1477
+ // Don't read pointsTo from metadata; let mutableUpdatePointsTo
1478
+ // compute it via followRedirect, matching v2 behavior.
1479
+ pointsTo: void 0,
1479
1480
  children,
1480
1481
  playground: void 0
1481
1482
  };
@@ -1535,7 +1536,7 @@ function mergeEndpointPairs(ctx, leafNodes, allNav) {
1535
1536
  function apiReferenceNode(ctx, scoped, scopeSegs, scopePrefix) {
1536
1537
  const { seg, nav } = scoped;
1537
1538
  const overview = overviewRoute(nav);
1538
- const overviewPageId = overview != null ? metaStr(overview.metadata, "pageId") : void 0;
1539
+ const overviewPageId = metaStr(seg.metadata, "overviewPageId");
1539
1540
  const apiDefinitionId = metaStr(seg.metadata, "apiDefinitionId") ?? "";
1540
1541
  const slug = structuralNodeSlug(
1541
1542
  ctx,
@@ -1543,7 +1544,6 @@ function apiReferenceNode(ctx, scoped, scopeSegs, scopePrefix) {
1543
1544
  stripLeadingScopePrefix(seg.section, scopePrefix),
1544
1545
  scopePrefix
1545
1546
  );
1546
- const metaPointsTo = metaStr(seg.metadata, "pointsTo");
1547
1547
  const children = buildApiChildren(ctx, scoped, scopeSegs, apiDefinitionId, scopePrefix);
1548
1548
  const changelog = attachedApiChangelogNode(ctx, scoped, scopeSegs, apiDefinitionId, scopePrefix);
1549
1549
  return {
@@ -1566,7 +1566,9 @@ function apiReferenceNode(ctx, scoped, scopeSegs, scopePrefix) {
1566
1566
  paginated: metaBool(seg.metadata, "paginated"),
1567
1567
  showErrors: metaBool(seg.metadata, "showErrors"),
1568
1568
  hideTitle: metaBool(seg.metadata, "hideTitle"),
1569
- pointsTo: metaPointsTo != null ? pointsToSlug(metaPointsTo) : void 0,
1569
+ // Don't read pointsTo from metadata; let mutableUpdatePointsTo
1570
+ // compute it via followRedirect, matching v2 behavior.
1571
+ pointsTo: void 0,
1570
1572
  children,
1571
1573
  changelog,
1572
1574
  playground: void 0,
@@ -2234,7 +2236,7 @@ function buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix) {
2234
2236
  }
2235
2237
  function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2236
2238
  const first = scopeSegs[0];
2237
- return {
2239
+ const node = {
2238
2240
  type: "unversioned",
2239
2241
  id: ctx.nodeId(`unversioned:${first?.seg.product?.id ?? "root"}`),
2240
2242
  collapsed: void 0,
@@ -2244,6 +2246,8 @@ function buildUnversioned(ctx, scopeSegs, scopePrefix, tabsPresent) {
2244
2246
  // namespace.
2245
2247
  child: buildTabbedOrSidebar(ctx, scopeSegs, tabsPresent, scopePrefix)
2246
2248
  };
2249
+ markWithinScopeCanonicalSlugs(node);
2250
+ return node;
2247
2251
  }
2248
2252
  function mergeSharedSections(defaultSegs, allScoped, defaultVersion, versionSlugs) {
2249
2253
  const defaultTabsByName = /* @__PURE__ */ new Map();
@@ -2327,6 +2331,7 @@ function buildVersioned(ctx, versions, scoped, rootSlug, productPrefix, skipShar
2327
2331
  // version subtree stays inside the default-version prune window.
2328
2332
  child: buildTabbedOrSidebar(ctx, versionSegs, tabsPresent, asSlug(slug))
2329
2333
  };
2334
+ markWithinScopeCanonicalSlugs(node);
2330
2335
  if (node.default) {
2331
2336
  markDefaultVersionCanonicalSlugs(node, productPrefix != null ? asSlug(productPrefix) : rootSlug, node.slug);
2332
2337
  }
@@ -2437,6 +2442,34 @@ function buildLandingPage(ctx, scopeSegs) {
2437
2442
  landingSegment?.nav.find((route) => route.type === "markdown")
2438
2443
  );
2439
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 + "/")) {
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
+ }
2440
2473
  function markCrossVersionCanonicalSlugs(versionNodes) {
2441
2474
  const keyToCanonical = /* @__PURE__ */ new Map();
2442
2475
  const sorted = [...versionNodes].sort((a, b) => {
@@ -2453,6 +2486,9 @@ function markCrossVersionCanonicalSlugs(versionNodes) {
2453
2486
  for (const key of keys) {
2454
2487
  const canonical = keyToCanonical.get(key);
2455
2488
  if (canonical != null && !version.default) {
2489
+ if (child.slug.startsWith(canonical + "/")) {
2490
+ continue;
2491
+ }
2456
2492
  child.canonicalSlug = canonical;
2457
2493
  matched = true;
2458
2494
  break;
@@ -2530,11 +2566,14 @@ function markCrossProductCanonicalSlugs(productNodes) {
2530
2566
  return;
2531
2567
  }
2532
2568
  const key = `pid:${pid}`;
2533
- const canonical = pageIdToCanonical.get(key);
2534
- if (canonical != null && !product.default) {
2535
- child.canonicalSlug = canonical;
2536
- } else if (canonical == null) {
2537
- 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
+ });
2538
2577
  }
2539
2578
  }
2540
2579
  });