@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.
@@ -13131,6 +13131,9 @@ var NodeIdGenerator = class {
13131
13131
  function isScopedTo(slug, prefix) {
13132
13132
  return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
13133
13133
  }
13134
+ function isNestedUnder(slug, prefix) {
13135
+ return prefix.length > 0 && slug.startsWith(`${prefix}/`);
13136
+ }
13134
13137
  var SlugGenerator = class _SlugGenerator {
13135
13138
  constructor(baseSlug, productSlug, versionSlug, slug) {
13136
13139
  this.baseSlug = baseSlug;
@@ -13201,7 +13204,8 @@ var SlugGenerator = class _SlugGenerator {
13201
13204
  }
13202
13205
  return fullSlug;
13203
13206
  };
13204
- const relativeProductSlug = this.productSlug != null && this.baseSlug.length > 0 && isScopedTo(this.productSlug, this.baseSlug) ? this.productSlug.substring(this.baseSlug.length + 1) : this.productSlug;
13207
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
13208
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
13205
13209
  if (this.productSlug != null && this.versionSlug != null) {
13206
13210
  if (slug.startsWith(this.productSlug)) {
13207
13211
  const remaining = getRemainingAfterProduct(slug);
@@ -13211,6 +13215,9 @@ var SlugGenerator = class _SlugGenerator {
13211
13215
  const remaining = getRemainingAfterBase(slug);
13212
13216
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
13213
13217
  }
13218
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
13219
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
13220
+ }
13214
13221
  if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
13215
13222
  const remaining = slug.substring(relativeProductSlug.length);
13216
13223
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
@@ -13224,6 +13231,9 @@ var SlugGenerator = class _SlugGenerator {
13224
13231
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
13225
13232
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
13226
13233
  }
13234
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
13235
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
13236
+ }
13227
13237
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
13228
13238
  }
13229
13239
  if (this.productSlug != null) {
@@ -13257,8 +13267,25 @@ var SlugGenerator = class _SlugGenerator {
13257
13267
  if (fullSlug != null) {
13258
13268
  return this.set(fullSlug.join("/"));
13259
13269
  }
13270
+ if (this.slug === this.scopeSlug && isNestedUnder(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
13271
+ return this.set(urlSlug);
13272
+ }
13260
13273
  return this.append(urlSlug);
13261
13274
  }
13275
+ /** The product/version prefix that child slugs hang off of. */
13276
+ get scopeSlug() {
13277
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
13278
+ }
13279
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
13280
+ get relativeScopeSlug() {
13281
+ return this.relativeToBase(this.scopeSlug);
13282
+ }
13283
+ relativeToBase(slug) {
13284
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
13285
+ return slug;
13286
+ }
13287
+ return slug.substring(this.baseSlug.length + 1);
13288
+ }
13262
13289
  };
13263
13290
 
13264
13291
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts