@fern-api/fdr-sdk 1.2.96-b1b20d1d34 → 1.2.97-401342676c

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