@fern-api/fdr-sdk 1.2.94-cdc1690f8b → 1.2.96-066f6aa406

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.
@@ -11852,6 +11852,9 @@ var NodeIdGenerator = class {
11852
11852
  };
11853
11853
 
11854
11854
  // src/navigation/versions/v1/converters/SlugGenerator.ts
11855
+ function isScopedTo(slug, prefix) {
11856
+ return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
11857
+ }
11855
11858
  var SlugGenerator = class _SlugGenerator {
11856
11859
  constructor(baseSlug, productSlug, versionSlug, slug) {
11857
11860
  this.baseSlug = baseSlug;
@@ -11922,6 +11925,8 @@ var SlugGenerator = class _SlugGenerator {
11922
11925
  }
11923
11926
  return fullSlug;
11924
11927
  };
11928
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
11929
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
11925
11930
  if (this.productSlug != null && this.versionSlug != null) {
11926
11931
  if (slug.startsWith(this.productSlug)) {
11927
11932
  const remaining = getRemainingAfterProduct(slug);
@@ -11931,6 +11936,13 @@ var SlugGenerator = class _SlugGenerator {
11931
11936
  const remaining = getRemainingAfterBase(slug);
11932
11937
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
11933
11938
  }
11939
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11940
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11941
+ }
11942
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11943
+ const remaining = slug.substring(relativeProductSlug.length);
11944
+ return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
11945
+ }
11934
11946
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11935
11947
  }
11936
11948
  if (this.versionSlug != null) {
@@ -11940,6 +11952,9 @@ var SlugGenerator = class _SlugGenerator {
11940
11952
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11941
11953
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
11942
11954
  }
11955
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11956
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11957
+ }
11943
11958
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11944
11959
  }
11945
11960
  if (this.productSlug != null) {
@@ -11949,6 +11964,9 @@ var SlugGenerator = class _SlugGenerator {
11949
11964
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11950
11965
  return createWithSlug(navigation_exports.V1.slugjoin(getRemainingAfterBase(slug)));
11951
11966
  }
11967
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11968
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11969
+ }
11952
11970
  return createWithSlug(navigation_exports.V1.slugjoin(this.productSlug, slug));
11953
11971
  }
11954
11972
  if (this.baseSlug.length > 0) {
@@ -11970,8 +11988,25 @@ var SlugGenerator = class _SlugGenerator {
11970
11988
  if (fullSlug != null) {
11971
11989
  return this.set(fullSlug.join("/"));
11972
11990
  }
11991
+ if (this.slug === this.scopeSlug && isScopedTo(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
11992
+ return this.set(urlSlug);
11993
+ }
11973
11994
  return this.append(urlSlug);
11974
11995
  }
11996
+ /** The product/version prefix that child slugs hang off of. */
11997
+ get scopeSlug() {
11998
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
11999
+ }
12000
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
12001
+ get relativeScopeSlug() {
12002
+ return this.relativeToBase(this.scopeSlug);
12003
+ }
12004
+ relativeToBase(slug) {
12005
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
12006
+ return slug;
12007
+ }
12008
+ return slug.substring(this.baseSlug.length + 1);
12009
+ }
11975
12010
  };
11976
12011
 
11977
12012
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts