@fern-api/fern-api-dev 4.65.0-4-ge61d115367e → 4.65.1

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 +55 -44
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -604115,7 +604115,7 @@ var AccessTokenPosthogManager = class {
604115
604115
  properties: {
604116
604116
  ...event,
604117
604117
  ...event.properties,
604118
- version: "4.65.0-4-ge61d115367e",
604118
+ version: "4.65.1",
604119
604119
  usingAccessToken: true
604120
604120
  }
604121
604121
  });
@@ -604166,7 +604166,7 @@ var UserPosthogManager = class {
604166
604166
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
604167
604167
  event: "CLI",
604168
604168
  properties: {
604169
- version: "4.65.0-4-ge61d115367e",
604169
+ version: "4.65.1",
604170
604170
  ...event,
604171
604171
  ...event.properties,
604172
604172
  usingAccessToken: false,
@@ -814049,6 +814049,8 @@ async function visitDocsConfigFileYamlAst({ contents, visitor, absoluteFilepathT
814049
814049
  if (navigation == null) {
814050
814050
  return;
814051
814051
  }
814052
+ const navStart = performance.now();
814053
+ context3.logger.debug("[docs-ast] Starting main navigation traversal...");
814052
814054
  await visitNavigationAst2({
814053
814055
  absolutePathToFernFolder,
814054
814056
  navigation,
@@ -814058,11 +814060,14 @@ async function visitDocsConfigFileYamlAst({ contents, visitor, absoluteFilepathT
814058
814060
  apiWorkspaces,
814059
814061
  context: context3
814060
814062
  });
814063
+ context3.logger.debug(`[docs-ast] Main navigation traversal complete in ${(performance.now() - navStart).toFixed(0)}ms`);
814061
814064
  },
814062
814065
  products: async (products) => {
814063
814066
  if (products == null) {
814064
814067
  return;
814065
814068
  }
814069
+ const productsStart = performance.now();
814070
+ context3.logger.debug(`[docs-ast] Processing ${products.length} products...`);
814066
814071
  await Promise.all(products.map(async (product, idx) => {
814067
814072
  if ("path" in product) {
814068
814073
  await visitFilepath({
@@ -814094,6 +814099,7 @@ async function visitDocsConfigFileYamlAst({ contents, visitor, absoluteFilepathT
814094
814099
  }
814095
814100
  }
814096
814101
  }));
814102
+ context3.logger.debug(`[docs-ast] Products processing complete in ${(performance.now() - productsStart).toFixed(0)}ms`);
814097
814103
  },
814098
814104
  check: noop2,
814099
814105
  redirects: noop2,
@@ -814143,6 +814149,8 @@ async function visitDocsConfigFileYamlAst({ contents, visitor, absoluteFilepathT
814143
814149
  if (versions == null) {
814144
814150
  return;
814145
814151
  }
814152
+ const versionsStart = performance.now();
814153
+ context3.logger.debug(`[docs-ast] Processing ${versions.length} versions...`);
814146
814154
  await Promise.all(versions.map(async (version7, idx) => {
814147
814155
  await visitFilepath({
814148
814156
  absoluteFilepathToConfiguration,
@@ -814172,6 +814180,7 @@ async function visitDocsConfigFileYamlAst({ contents, visitor, absoluteFilepathT
814172
814180
  });
814173
814181
  }
814174
814182
  }));
814183
+ context3.logger.debug(`[docs-ast] Versions processing complete in ${(performance.now() - versionsStart).toFixed(0)}ms`);
814175
814184
  },
814176
814185
  roles: noop2,
814177
814186
  languages: noop2,
@@ -836510,42 +836519,46 @@ var ValidMarkdownLinks = {
836510
836519
  sourceResolver: new SourceResolverImpl(NOOP_CONTEXT2, fernWorkspace)
836511
836520
  });
836512
836521
  const api = toLatest(convertIrToApiDefinition({ ir: ir15, apiDefinitionId: (0, import_crypto9.randomUUID)(), context: NOOP_CONTEXT2 }));
836522
+ const uniqueDescriptions = collectUniqueDescriptions(api);
836513
836523
  const violations = [];
836514
- for (const endpoint3 of endpoints) {
836515
- const descriptions = await collectDescriptions(api_definition_exports.prune(api, endpoint3));
836516
- for (const description of descriptions) {
836517
- const { pathnamesToCheck, violations: descriptionViolations } = collectPathnamesToCheck(description, { instanceUrls });
836518
- violations.push(...descriptionViolations);
836519
- const pathToCheckViolations = await Promise.all(pathnamesToCheck.map(async (pathnameToCheck) => {
836520
- const exists2 = await checkIfPathnameExists({
836521
- pathname: pathnameToCheck.pathname,
836522
- markdown: pathnameToCheck.markdown,
836523
- workspaceAbsoluteFilePath: workspace.absoluteFilePath,
836524
- pageSlugs: visitableSlugs,
836525
- absoluteFilePathsToSlugs,
836526
- redirects: workspace.config.redirects,
836527
- baseUrl
836528
- });
836529
- if (exists2 === true) {
836530
- return [];
836531
- }
836532
- return exists2.map((brokenPathname) => {
836533
- const [message, relFilePath] = createLinkViolationMessage({
836534
- pathnameToCheck,
836535
- targetPathname: brokenPathname,
836536
- absoluteFilepathToWorkspace: workspace.absoluteFilePath
836537
- });
836538
- return {
836539
- name: ValidMarkdownLinks.name,
836540
- severity: "error",
836541
- message,
836542
- relFilepath: relFilePath
836543
- };
836544
- });
836545
- }));
836546
- violations.push(...pathToCheckViolations.flat());
836524
+ const uniquePathnames = /* @__PURE__ */ new Map();
836525
+ for (const description of uniqueDescriptions) {
836526
+ const { pathnamesToCheck, violations: descriptionViolations } = collectPathnamesToCheck(description, { instanceUrls });
836527
+ violations.push(...descriptionViolations);
836528
+ for (const p10 of pathnamesToCheck) {
836529
+ if (!uniquePathnames.has(p10.pathname)) {
836530
+ uniquePathnames.set(p10.pathname, p10);
836531
+ }
836547
836532
  }
836548
836533
  }
836534
+ const pathToCheckViolations = await Promise.all([...uniquePathnames.values()].map(async (pathnameToCheck) => {
836535
+ const exists2 = await checkIfPathnameExists({
836536
+ pathname: pathnameToCheck.pathname,
836537
+ markdown: pathnameToCheck.markdown,
836538
+ workspaceAbsoluteFilePath: workspace.absoluteFilePath,
836539
+ pageSlugs: visitableSlugs,
836540
+ absoluteFilePathsToSlugs,
836541
+ redirects: workspace.config.redirects,
836542
+ baseUrl
836543
+ });
836544
+ if (exists2 === true) {
836545
+ return [];
836546
+ }
836547
+ return exists2.map((brokenPathname) => {
836548
+ const [message, relFilePath] = createLinkViolationMessage({
836549
+ pathnameToCheck,
836550
+ targetPathname: brokenPathname,
836551
+ absoluteFilepathToWorkspace: workspace.absoluteFilePath
836552
+ });
836553
+ return {
836554
+ name: ValidMarkdownLinks.name,
836555
+ severity: "error",
836556
+ message,
836557
+ relFilepath: relFilePath
836558
+ };
836559
+ });
836560
+ }));
836561
+ violations.push(...pathToCheckViolations.flat());
836549
836562
  return violations;
836550
836563
  }
836551
836564
  };
@@ -836570,15 +836583,13 @@ function toLatest(apiDefinition) {
836570
836583
  const latest2 = api_definition_exports.ApiDefinitionV1ToLatest.from(apiDefinition).migrate();
836571
836584
  return latest2;
836572
836585
  }
836573
- async function collectDescriptions(apiDefinition) {
836574
- const descriptions = [];
836586
+ function collectUniqueDescriptions(apiDefinition) {
836587
+ const set25 = /* @__PURE__ */ new Set();
836575
836588
  api_definition_exports.Transformer.descriptions((description) => {
836576
- if (typeof description === "string") {
836577
- descriptions.push(description);
836578
- }
836589
+ set25.add(description);
836579
836590
  return description;
836580
836591
  }).apiDefinition(apiDefinition);
836581
- return descriptions;
836592
+ return set25;
836582
836593
  }
836583
836594
 
836584
836595
  // ../yaml/docs-validator/lib/rules/validate-product-file/validate-product-file.js
@@ -841136,7 +841147,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
841136
841147
  var LOGS_FOLDER_NAME = "logs";
841137
841148
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
841138
841149
  function getCliSource() {
841139
- const version7 = "4.65.0-4-ge61d115367e";
841150
+ const version7 = "4.65.1";
841140
841151
  return `cli@${version7}`;
841141
841152
  }
841142
841153
  var DebugLogger = class {
@@ -852334,7 +852345,7 @@ var LegacyDocsPublisher = class {
852334
852345
  previewId,
852335
852346
  disableTemplates: void 0,
852336
852347
  skipUpload,
852337
- cliVersion: "4.65.0-4-ge61d115367e"
852348
+ cliVersion: "4.65.1"
852338
852349
  });
852339
852350
  if (taskContext.getResult() === TaskResult.Failure) {
852340
852351
  return { success: false };
@@ -925923,7 +925934,7 @@ var CliContext = class {
925923
925934
  if (false) {
925924
925935
  this.logger.error("CLI_VERSION is not defined");
925925
925936
  }
925926
- return "4.65.0-4-ge61d115367e";
925937
+ return "4.65.1";
925927
925938
  }
925928
925939
  getCliName() {
925929
925940
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.65.0-4-ge61d115367e",
2
+ "version": "4.65.1",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",