@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.
package/dist/js/index.js CHANGED
@@ -17263,6 +17263,9 @@ var NodeIdGenerator = class {
17263
17263
  };
17264
17264
 
17265
17265
  // src/navigation/versions/v1/converters/SlugGenerator.ts
17266
+ function isScopedTo(slug, prefix) {
17267
+ return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
17268
+ }
17266
17269
  var SlugGenerator = class _SlugGenerator {
17267
17270
  constructor(baseSlug, productSlug, versionSlug, slug) {
17268
17271
  this.baseSlug = baseSlug;
@@ -17333,6 +17336,8 @@ var SlugGenerator = class _SlugGenerator {
17333
17336
  }
17334
17337
  return fullSlug;
17335
17338
  };
17339
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
17340
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
17336
17341
  if (this.productSlug != null && this.versionSlug != null) {
17337
17342
  if (slug.startsWith(this.productSlug)) {
17338
17343
  const remaining = getRemainingAfterProduct(slug);
@@ -17342,6 +17347,13 @@ var SlugGenerator = class _SlugGenerator {
17342
17347
  const remaining = getRemainingAfterBase(slug);
17343
17348
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
17344
17349
  }
17350
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
17351
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17352
+ }
17353
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
17354
+ const remaining = slug.substring(relativeProductSlug.length);
17355
+ return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
17356
+ }
17345
17357
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
17346
17358
  }
17347
17359
  if (this.versionSlug != null) {
@@ -17351,6 +17363,9 @@ var SlugGenerator = class _SlugGenerator {
17351
17363
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
17352
17364
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
17353
17365
  }
17366
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
17367
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17368
+ }
17354
17369
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
17355
17370
  }
17356
17371
  if (this.productSlug != null) {
@@ -17360,6 +17375,9 @@ var SlugGenerator = class _SlugGenerator {
17360
17375
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
17361
17376
  return createWithSlug(navigation_exports.V1.slugjoin(getRemainingAfterBase(slug)));
17362
17377
  }
17378
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
17379
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17380
+ }
17363
17381
  return createWithSlug(navigation_exports.V1.slugjoin(this.productSlug, slug));
17364
17382
  }
17365
17383
  if (this.baseSlug.length > 0) {
@@ -17381,8 +17399,25 @@ var SlugGenerator = class _SlugGenerator {
17381
17399
  if (fullSlug != null) {
17382
17400
  return this.set(fullSlug.join("/"));
17383
17401
  }
17402
+ if (this.slug === this.scopeSlug && isScopedTo(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
17403
+ return this.set(urlSlug);
17404
+ }
17384
17405
  return this.append(urlSlug);
17385
17406
  }
17407
+ /** The product/version prefix that child slugs hang off of. */
17408
+ get scopeSlug() {
17409
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
17410
+ }
17411
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
17412
+ get relativeScopeSlug() {
17413
+ return this.relativeToBase(this.scopeSlug);
17414
+ }
17415
+ relativeToBase(slug) {
17416
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
17417
+ return slug;
17418
+ }
17419
+ return slug.substring(this.baseSlug.length + 1);
17420
+ }
17386
17421
  };
17387
17422
 
17388
17423
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts