@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.
@@ -13128,6 +13128,9 @@ var NodeIdGenerator = class {
13128
13128
  };
13129
13129
 
13130
13130
  // src/navigation/versions/v1/converters/SlugGenerator.ts
13131
+ function isScopedTo(slug, prefix) {
13132
+ return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
13133
+ }
13131
13134
  var SlugGenerator = class _SlugGenerator {
13132
13135
  constructor(baseSlug, productSlug, versionSlug, slug) {
13133
13136
  this.baseSlug = baseSlug;
@@ -13198,6 +13201,8 @@ var SlugGenerator = class _SlugGenerator {
13198
13201
  }
13199
13202
  return fullSlug;
13200
13203
  };
13204
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
13205
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
13201
13206
  if (this.productSlug != null && this.versionSlug != null) {
13202
13207
  if (slug.startsWith(this.productSlug)) {
13203
13208
  const remaining = getRemainingAfterProduct(slug);
@@ -13207,6 +13212,13 @@ var SlugGenerator = class _SlugGenerator {
13207
13212
  const remaining = getRemainingAfterBase(slug);
13208
13213
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
13209
13214
  }
13215
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
13216
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
13217
+ }
13218
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
13219
+ const remaining = slug.substring(relativeProductSlug.length);
13220
+ return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
13221
+ }
13210
13222
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
13211
13223
  }
13212
13224
  if (this.versionSlug != null) {
@@ -13216,6 +13228,9 @@ var SlugGenerator = class _SlugGenerator {
13216
13228
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
13217
13229
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
13218
13230
  }
13231
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
13232
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
13233
+ }
13219
13234
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
13220
13235
  }
13221
13236
  if (this.productSlug != null) {
@@ -13225,6 +13240,9 @@ var SlugGenerator = class _SlugGenerator {
13225
13240
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
13226
13241
  return createWithSlug(navigation_exports.V1.slugjoin(getRemainingAfterBase(slug)));
13227
13242
  }
13243
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
13244
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
13245
+ }
13228
13246
  return createWithSlug(navigation_exports.V1.slugjoin(this.productSlug, slug));
13229
13247
  }
13230
13248
  if (this.baseSlug.length > 0) {
@@ -13246,8 +13264,25 @@ var SlugGenerator = class _SlugGenerator {
13246
13264
  if (fullSlug != null) {
13247
13265
  return this.set(fullSlug.join("/"));
13248
13266
  }
13267
+ if (this.slug === this.scopeSlug && isScopedTo(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
13268
+ return this.set(urlSlug);
13269
+ }
13249
13270
  return this.append(urlSlug);
13250
13271
  }
13272
+ /** The product/version prefix that child slugs hang off of. */
13273
+ get scopeSlug() {
13274
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
13275
+ }
13276
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
13277
+ get relativeScopeSlug() {
13278
+ return this.relativeToBase(this.scopeSlug);
13279
+ }
13280
+ relativeToBase(slug) {
13281
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
13282
+ return slug;
13283
+ }
13284
+ return slug.substring(this.baseSlug.length + 1);
13285
+ }
13251
13286
  };
13252
13287
 
13253
13288
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts