@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.
@@ -11828,6 +11828,9 @@ var NodeIdGenerator = class {
11828
11828
  };
11829
11829
 
11830
11830
  // src/navigation/versions/v1/converters/SlugGenerator.ts
11831
+ function isScopedTo(slug, prefix) {
11832
+ return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
11833
+ }
11831
11834
  var SlugGenerator = class _SlugGenerator {
11832
11835
  constructor(baseSlug, productSlug, versionSlug, slug) {
11833
11836
  this.baseSlug = baseSlug;
@@ -11898,6 +11901,8 @@ var SlugGenerator = class _SlugGenerator {
11898
11901
  }
11899
11902
  return fullSlug;
11900
11903
  };
11904
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
11905
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
11901
11906
  if (this.productSlug != null && this.versionSlug != null) {
11902
11907
  if (slug.startsWith(this.productSlug)) {
11903
11908
  const remaining = getRemainingAfterProduct(slug);
@@ -11907,6 +11912,13 @@ var SlugGenerator = class _SlugGenerator {
11907
11912
  const remaining = getRemainingAfterBase(slug);
11908
11913
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
11909
11914
  }
11915
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11916
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11917
+ }
11918
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11919
+ const remaining = slug.substring(relativeProductSlug.length);
11920
+ return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
11921
+ }
11910
11922
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11911
11923
  }
11912
11924
  if (this.versionSlug != null) {
@@ -11916,6 +11928,9 @@ var SlugGenerator = class _SlugGenerator {
11916
11928
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11917
11929
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
11918
11930
  }
11931
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
11932
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11933
+ }
11919
11934
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
11920
11935
  }
11921
11936
  if (this.productSlug != null) {
@@ -11925,6 +11940,9 @@ var SlugGenerator = class _SlugGenerator {
11925
11940
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
11926
11941
  return createWithSlug(navigation_exports.V1.slugjoin(getRemainingAfterBase(slug)));
11927
11942
  }
11943
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
11944
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
11945
+ }
11928
11946
  return createWithSlug(navigation_exports.V1.slugjoin(this.productSlug, slug));
11929
11947
  }
11930
11948
  if (this.baseSlug.length > 0) {
@@ -11946,8 +11964,25 @@ var SlugGenerator = class _SlugGenerator {
11946
11964
  if (fullSlug != null) {
11947
11965
  return this.set(fullSlug.join("/"));
11948
11966
  }
11967
+ if (this.slug === this.scopeSlug && isScopedTo(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
11968
+ return this.set(urlSlug);
11969
+ }
11949
11970
  return this.append(urlSlug);
11950
11971
  }
11972
+ /** The product/version prefix that child slugs hang off of. */
11973
+ get scopeSlug() {
11974
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
11975
+ }
11976
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
11977
+ get relativeScopeSlug() {
11978
+ return this.relativeToBase(this.scopeSlug);
11979
+ }
11980
+ relativeToBase(slug) {
11981
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
11982
+ return slug;
11983
+ }
11984
+ return slug.substring(this.baseSlug.length + 1);
11985
+ }
11951
11986
  };
11952
11987
 
11953
11988
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts