@fern-api/fern-api-dev 5.64.1 → 5.64.3

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.
Files changed (2) hide show
  1. package/cli.cjs +33 -17
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -164335,9 +164335,10 @@ function convertResponse({ operationContext, responses, context: context3, respo
164335
164335
  context: context3,
164336
164336
  content: resolved.content ?? {}
164337
164337
  });
164338
- if (jsonMedia == null) {
164339
- hasNoContentResponse = true;
164338
+ if (jsonMedia != null) {
164339
+ context3.logger.warn(`${operationContext.method.toUpperCase()} ${operationContext.path}: the 204 response declares a body, but a 204 (No Content) response cannot include one. Ignoring the declared 204 body and treating the success response as optional.`);
164340
164340
  }
164341
+ hasNoContentResponse = true;
164341
164342
  }
164342
164343
  }
164343
164344
  if (hasNoContentResponse && convertedResponse != null && convertedResponse.type === "json") {
@@ -350046,6 +350047,15 @@ var init_ResponseBodyConverter = __esm({
350046
350047
  this.streamingExtension = streamingExtension;
350047
350048
  }
350048
350049
  convert() {
350050
+ if (parseInt(this.statusCode) === 204) {
350051
+ if (this.responseBody.content != null && Object.keys(this.responseBody.content).length > 0) {
350052
+ this.context.errorCollector.collect({
350053
+ message: "A 204 (No Content) response declares a body, but a 204 response cannot include one. Ignoring the declared body and treating the success response as optional.",
350054
+ path: this.breadcrumbs
350055
+ });
350056
+ }
350057
+ return void 0;
350058
+ }
350049
350059
  return this.shouldConvertAsStreaming() ? this.convertStreamingResponseBody() : this.convertNonStreamingResponseBody();
350050
350060
  }
350051
350061
  convertStreamingResponseBody() {
@@ -460096,7 +460106,14 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460096
460106
  navigationConfig: tabbed,
460097
460107
  parentSlug: slug
460098
460108
  }),
460099
- versioned: (versioned) => this.toVersionedNode(versioned, slug, this.parsedDocsConfig.landingPage),
460109
+ // NOTE: the top-level landing page is intentionally NOT propagated
460110
+ // into versioned navigation. Cloning it into every version node
460111
+ // creates landingPage nodes that shadow real pages sharing the
460112
+ // landing slug (they are visited first during slug collection),
460113
+ // which strips the sidebar from those pages at render time. This
460114
+ // matches the legacy (< 5.58.0) publish behavior that live docs
460115
+ // sites were authored against.
460116
+ versioned: (versioned) => this.toVersionedNode(versioned, slug),
460100
460117
  productgroup: (productGroup) => this.toProductGroupNode({
460101
460118
  landingPageConfig: this.parsedDocsConfig.landingPage,
460102
460119
  productGroup,
@@ -460132,7 +460149,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460132
460149
  const child = navigationConfig.type === "tabbed" ? await this.convertTabbedNavigation(id, navigationConfig.items, parentSlug) : await this.toSidebarRootNode(id, navigationConfig.items, parentSlug);
460133
460150
  return { type: "unversioned", id, collapsed: void 0, landingPage, child };
460134
460151
  }
460135
- async toVersionedNode(versioned, parentSlug, landingPage) {
460152
+ async toVersionedNode(versioned, parentSlug) {
460136
460153
  const id = this.#idgen.get("versioned");
460137
460154
  const defaultVersion = versioned.versions[0];
460138
460155
  if (defaultVersion?.hidden === true) {
@@ -460145,7 +460162,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460145
460162
  const children2 = [];
460146
460163
  for (let i5 = 0; i5 < versioned.versions.length; i5 += BATCH_SIZE2) {
460147
460164
  const batch = versioned.versions.slice(i5, i5 + BATCH_SIZE2);
460148
- const batchResults = await Promise.all(batch.map((item, batchIdx) => this.toVersionNode(item, parentSlug, i5 + batchIdx === 0, landingPage)));
460165
+ const batchResults = await Promise.all(batch.map((item, batchIdx) => this.toVersionNode(item, parentSlug, i5 + batchIdx === 0)));
460149
460166
  children2.push(...batchResults);
460150
460167
  }
460151
460168
  return {
@@ -460176,7 +460193,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460176
460193
  type: "unversioned",
460177
460194
  id: this.#idgen.get(product.product),
460178
460195
  collapsed: void 0,
460179
- landingPage: product.landingPage != null ? this.toLandingPageNode(product.landingPage, slug) : void 0,
460196
+ landingPage: void 0,
460180
460197
  child: await this.convertTabbedNavigation(this.#idgen.get(product.product), product.navigation.items, slug)
460181
460198
  };
460182
460199
  break;
@@ -460185,12 +460202,12 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460185
460202
  type: "unversioned",
460186
460203
  id: this.#idgen.get(product.product),
460187
460204
  collapsed: void 0,
460188
- landingPage: product.landingPage != null ? this.toLandingPageNode(product.landingPage, slug) : void 0,
460205
+ landingPage: void 0,
460189
460206
  child: await this.toSidebarRootNode(this.#idgen.get(product.product), product.navigation.items, slug)
460190
460207
  };
460191
460208
  break;
460192
460209
  case "versioned":
460193
- child = await this.toVersionedNode(product.navigation, slug, product.landingPage ?? this.parsedDocsConfig.landingPage);
460210
+ child = await this.toVersionedNode(product.navigation, slug);
460194
460211
  break;
460195
460212
  default:
460196
460213
  assertNever(product.navigation);
@@ -460235,11 +460252,10 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460235
460252
  };
460236
460253
  }
460237
460254
  }
460238
- async toVersionNode(version7, parentSlug, isDefault, landingPage) {
460255
+ async toVersionNode(version7, parentSlug, isDefault) {
460239
460256
  const id = this.#idgen.get(version7.version);
460240
460257
  const slug = parentSlug.setVersionSlug(version7.slug ?? kebabCase_default(version7.version));
460241
460258
  const child = version7.navigation.type === "tabbed" ? await this.convertTabbedNavigation(id, version7.navigation.items, slug) : await this.toSidebarRootNode(id, version7.navigation.items, slug);
460242
- const resolvedLandingPage = version7.landingPage ?? landingPage;
460243
460259
  return {
460244
460260
  type: "version",
460245
460261
  id,
@@ -460251,7 +460267,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
460251
460267
  // TODO: the `default` property should be deprecated, and moved to the parent `versioned` node
460252
460268
  default: isDefault,
460253
460269
  availability: version7.availability != null ? convertAvailability5(version7.availability) : void 0,
460254
- landingPage: resolvedLandingPage != null ? this.toLandingPageNode(resolvedLandingPage, slug) : void 0,
460270
+ landingPage: version7.landingPage ? this.toLandingPageNode(version7.landingPage, slug) : void 0,
460255
460271
  hidden: version7.hidden,
460256
460272
  authed: void 0,
460257
460273
  viewers: version7.viewers,
@@ -687217,7 +687233,7 @@ var AccessTokenPosthogManager = class {
687217
687233
  properties: {
687218
687234
  ...event,
687219
687235
  ...event.properties,
687220
- version: "5.64.1",
687236
+ version: "5.64.3",
687221
687237
  usingAccessToken: true,
687222
687238
  ...getRunIdProperties()
687223
687239
  }
@@ -687283,7 +687299,7 @@ var UserPosthogManager = class {
687283
687299
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
687284
687300
  event: "CLI",
687285
687301
  properties: {
687286
- version: "5.64.1",
687302
+ version: "5.64.3",
687287
687303
  ...event,
687288
687304
  ...event.properties,
687289
687305
  usingAccessToken: false,
@@ -868378,7 +868394,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
868378
868394
  var LOGS_FOLDER_NAME = "logs";
868379
868395
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
868380
868396
  function getCliSource() {
868381
- const version7 = "5.64.1";
868397
+ const version7 = "5.64.3";
868382
868398
  return `cli@${version7}`;
868383
868399
  }
868384
868400
  var DebugLogger = class {
@@ -900895,7 +900911,7 @@ var LegacyDocsPublisher = class {
900895
900911
  previewId,
900896
900912
  disableTemplates: void 0,
900897
900913
  skipUpload,
900898
- cliVersion: "5.64.1",
900914
+ cliVersion: "5.64.3",
900899
900915
  loginCommand: "fern auth login"
900900
900916
  });
900901
900917
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -967203,7 +967219,7 @@ function getAutomationContextFromEnv() {
967203
967219
  config_branch: process.env.FERN_CONFIG_BRANCH,
967204
967220
  config_pr_number: process.env.FERN_CONFIG_PR_NUMBER,
967205
967221
  trigger: process.env.GITHUB_EVENT_NAME,
967206
- cli_version: "5.64.1"
967222
+ cli_version: "5.64.3"
967207
967223
  };
967208
967224
  }
967209
967225
  function isAutomationMode() {
@@ -968035,7 +968051,7 @@ var CliContext = class _CliContext {
968035
968051
  if (false) {
968036
968052
  this.logger.error("CLI_VERSION is not defined");
968037
968053
  }
968038
- return "5.64.1";
968054
+ return "5.64.3";
968039
968055
  }
968040
968056
  getCliName() {
968041
968057
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.64.1",
2
+ "version": "5.64.3",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",