@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.mjs CHANGED
@@ -17200,6 +17200,9 @@ var NodeIdGenerator = class {
17200
17200
  };
17201
17201
 
17202
17202
  // src/navigation/versions/v1/converters/SlugGenerator.ts
17203
+ function isScopedTo(slug, prefix) {
17204
+ return prefix.length > 0 && (slug === prefix || slug.startsWith(`${prefix}/`));
17205
+ }
17203
17206
  var SlugGenerator = class _SlugGenerator {
17204
17207
  constructor(baseSlug, productSlug, versionSlug, slug) {
17205
17208
  this.baseSlug = baseSlug;
@@ -17270,6 +17273,8 @@ var SlugGenerator = class _SlugGenerator {
17270
17273
  }
17271
17274
  return fullSlug;
17272
17275
  };
17276
+ const relativeProductSlug = this.relativeToBase(this.productSlug);
17277
+ const relativeVersionSlug = this.relativeToBase(this.versionSlug);
17273
17278
  if (this.productSlug != null && this.versionSlug != null) {
17274
17279
  if (slug.startsWith(this.productSlug)) {
17275
17280
  const remaining = getRemainingAfterProduct(slug);
@@ -17279,6 +17284,13 @@ var SlugGenerator = class _SlugGenerator {
17279
17284
  const remaining = getRemainingAfterBase(slug);
17280
17285
  return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, remaining));
17281
17286
  }
17287
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
17288
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17289
+ }
17290
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
17291
+ const remaining = slug.substring(relativeProductSlug.length);
17292
+ return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, remaining));
17293
+ }
17282
17294
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
17283
17295
  }
17284
17296
  if (this.versionSlug != null) {
@@ -17288,6 +17300,9 @@ var SlugGenerator = class _SlugGenerator {
17288
17300
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
17289
17301
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, getRemainingAfterBase(slug)));
17290
17302
  }
17303
+ if (relativeVersionSlug != null && isScopedTo(slug, relativeVersionSlug)) {
17304
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17305
+ }
17291
17306
  return createWithSlug(navigation_exports.V1.slugjoin(this.versionSlug, slug));
17292
17307
  }
17293
17308
  if (this.productSlug != null) {
@@ -17297,6 +17312,9 @@ var SlugGenerator = class _SlugGenerator {
17297
17312
  if (this.baseSlug.length > 0 && slug.startsWith(this.baseSlug)) {
17298
17313
  return createWithSlug(navigation_exports.V1.slugjoin(getRemainingAfterBase(slug)));
17299
17314
  }
17315
+ if (relativeProductSlug != null && isScopedTo(slug, relativeProductSlug)) {
17316
+ return createWithSlug(navigation_exports.V1.slugjoin(this.baseSlug, slug));
17317
+ }
17300
17318
  return createWithSlug(navigation_exports.V1.slugjoin(this.productSlug, slug));
17301
17319
  }
17302
17320
  if (this.baseSlug.length > 0) {
@@ -17318,8 +17336,25 @@ var SlugGenerator = class _SlugGenerator {
17318
17336
  if (fullSlug != null) {
17319
17337
  return this.set(fullSlug.join("/"));
17320
17338
  }
17339
+ if (this.slug === this.scopeSlug && isScopedTo(navigation_exports.V1.slugjoin(urlSlug), this.relativeScopeSlug)) {
17340
+ return this.set(urlSlug);
17341
+ }
17321
17342
  return this.append(urlSlug);
17322
17343
  }
17344
+ /** The product/version prefix that child slugs hang off of. */
17345
+ get scopeSlug() {
17346
+ return this.versionSlug ?? this.productSlug ?? this.baseSlug;
17347
+ }
17348
+ /** {@link scopeSlug} as authored in the config, i.e. without the basepath. */
17349
+ get relativeScopeSlug() {
17350
+ return this.relativeToBase(this.scopeSlug);
17351
+ }
17352
+ relativeToBase(slug) {
17353
+ if (slug == null || this.baseSlug.length === 0 || !isScopedTo(slug, this.baseSlug)) {
17354
+ return slug;
17355
+ }
17356
+ return slug.substring(this.baseSlug.length + 1);
17357
+ }
17323
17358
  };
17324
17359
 
17325
17360
  // src/navigation/versions/v1/converters/ApiReferenceNavigationConverter.ts