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