@fern-api/fdr-sdk 1.2.96-133bf6a1f0 → 1.2.96-8e5f0d55dd

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.
@@ -11831,6 +11831,9 @@ var NodeIdGenerator = class {
11831
11831
  function isScopedTo(slug, prefix) {
11832
11832
  return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
11833
11833
  }
11834
+ function isNestedUnder(slug, prefix) {
11835
+ return prefix.length > 0 && slug.startsWith(`${prefix}/`);
11836
+ }
11834
11837
  var SlugGenerator = class _SlugGenerator {
11835
11838
  constructor(baseSlug, productSlug, versionSlug, slug) {
11836
11839
  this.baseSlug = baseSlug;
@@ -11901,7 +11904,8 @@ var SlugGenerator = class _SlugGenerator {
11901
11904
  }
11902
11905
  return fullSlug;
11903
11906
  };
11904
- const relativeProductSlug = this.productSlug != null && this.baseSlug.length > 0 && isScopedTo(this.productSlug, this.baseSlug) ? this.productSlug.substring(this.baseSlug.length + 1) : this.productSlug;
11907
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
11908
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
11905
11909
  if (this.productSlug != null && this.versionSlug != null) {
11906
11910
  if (slug.startsWith(this.productSlug)) {
11907
11911
  const remaining = getRemainingAfterProduct(slug);
@@ -11911,6 +11915,9 @@ var SlugGenerator = class _SlugGenerator {
11911
11915
  const remaining = getRemainingAfterBase(slug);
11912
11916
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
11913
11917
  }
11918
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11919
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11920
+ }
11914
11921
  if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11915
11922
  const remaining = slug.substring(relativeProductSlug.length);
11916
11923
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
@@ -11924,6 +11931,9 @@ var SlugGenerator = class _SlugGenerator {
11924
11931
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11925
11932
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
11926
11933
  }
11934
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11935
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11936
+ }
11927
11937
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11928
11938
  }
11929
11939
  if (this.productSlug != null) {
@@ -11957,8 +11967,25 @@ var SlugGenerator = class _SlugGenerator {
11957
11967
  if (fullSlug != null) {
11958
11968
  return this.set(fullSlug.join("/"));
11959
11969
  }
11970
+ if (this.slug === this.scopeSlug && isNestedUnder(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
11971
+ return this.set(urlSlug);
11972
+ }
11960
11973
  return this.append(urlSlug);
11961
11974
  }
11975
+ /** The product/version prefix that child slugs hang off of. */
11976
+ get scopeSlug() {
11977
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
11978
+ }
11979
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
11980
+ get relativeScopeSlug() {
11981
+ return this.relativeToBase(this.scopeSlug);
11982
+ }
11983
+ relativeToBase(slug) {
11984
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
11985
+ return slug;
11986
+ }
11987
+ return slug.substring(this.baseSlug.length + 1);
11988
+ }
11962
11989
  };
11963
11990
 
11964
11991
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts