@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.
@@ -11855,6 +11855,9 @@ var NodeIdGenerator = class {
11855
11855
  function isScopedTo(slug, prefix) {
11856
11856
  return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
11857
11857
  }
11858
+ function isNestedUnder(slug, prefix) {
11859
+ return prefix.length > 0 && slug.startsWith(`${prefix}/`);
11860
+ }
11858
11861
  var SlugGenerator = class _SlugGenerator {
11859
11862
  constructor(baseSlug, productSlug, versionSlug, slug) {
11860
11863
  this.baseSlug = baseSlug;
@@ -11925,7 +11928,8 @@ var SlugGenerator = class _SlugGenerator {
11925
11928
  }
11926
11929
  return fullSlug;
11927
11930
  };
11928
- const relativeProductSlug = this.productSlug != null && this.baseSlug.length > 0 && isScopedTo(this.productSlug, this.baseSlug) ? this.productSlug.substring(this.baseSlug.length + 1) : this.productSlug;
11931
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
11932
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
11929
11933
  if (this.productSlug != null && this.versionSlug != null) {
11930
11934
  if (slug.startsWith(this.productSlug)) {
11931
11935
  const remaining = getRemainingAfterProduct(slug);
@@ -11935,6 +11939,9 @@ var SlugGenerator = class _SlugGenerator {
11935
11939
  const remaining = getRemainingAfterBase(slug);
11936
11940
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
11937
11941
  }
11942
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11943
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11944
+ }
11938
11945
  if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11939
11946
  const remaining = slug.substring(relativeProductSlug.length);
11940
11947
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
@@ -11948,6 +11955,9 @@ var SlugGenerator = class _SlugGenerator {
11948
11955
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11949
11956
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
11950
11957
  }
11958
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11959
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11960
+ }
11951
11961
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11952
11962
  }
11953
11963
  if (this.productSlug != null) {
@@ -11981,8 +11991,25 @@ var SlugGenerator = class _SlugGenerator {
11981
11991
  if (fullSlug != null) {
11982
11992
  return this.set(fullSlug.join("/"));
11983
11993
  }
11994
+ if (this.slug === this.scopeSlug && isNestedUnder(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
11995
+ return this.set(urlSlug);
11996
+ }
11984
11997
  return this.append(urlSlug);
11985
11998
  }
11999
+ /** The product/version prefix that child slugs hang off of. */
12000
+ get scopeSlug() {
12001
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
12002
+ }
12003
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
12004
+ get relativeScopeSlug() {
12005
+ return this.relativeToBase(this.scopeSlug);
12006
+ }
12007
+ relativeToBase(slug) {
12008
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
12009
+ return slug;
12010
+ }
12011
+ return slug.substring(this.baseSlug.length + 1);
12012
+ }
11986
12013
  };
11987
12014
 
11988
12015
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts