@fern-api/fern-api-dev 5.98.1 → 5.98.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 +85 -38
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -157574,6 +157574,9 @@ var init_ExampleTypeFactory = __esm({
157574
157574
  }
157575
157575
  return void 0;
157576
157576
  case "unknown":
157577
+ if (example === null) {
157578
+ return FullExample.null({});
157579
+ }
157577
157580
  if (example != null) {
157578
157581
  const fullExample = convertToFullExample(example);
157579
157582
  if (fullExample != null) {
@@ -453616,13 +453619,16 @@ var init_micromark_extension_mdxjs = __esm({
453616
453619
  });
453617
453620
 
453618
453621
  // ../docs-markdown-utils/lib/parseMarkdownToTree.js
453619
- function parseMarkdownToTree(markdown) {
453620
- const { content: content5 } = (0, import_gray_matter2.default)(markdown);
453621
- return fromMarkdown(content5, {
453622
+ function parseMarkdownBodyToTree(body) {
453623
+ return fromMarkdown(body, {
453622
453624
  extensions: [mdxjs(), gfm(), math()],
453623
453625
  mdastExtensions: [mdxFromMarkdown(), gfmFromMarkdown(), mathFromMarkdown()]
453624
453626
  });
453625
453627
  }
453628
+ function parseMarkdownToTree(markdown) {
453629
+ const { content: content5 } = (0, import_gray_matter2.default)(markdown);
453630
+ return parseMarkdownBodyToTree(content5);
453631
+ }
453626
453632
  var import_gray_matter2;
453627
453633
  var init_parseMarkdownToTree = __esm({
453628
453634
  "../docs-markdown-utils/lib/parseMarkdownToTree.js"() {
@@ -455052,10 +455058,39 @@ var init_stripMdxComments = __esm({
455052
455058
  });
455053
455059
 
455054
455060
  // ../docs-markdown-utils/lib/transformAtPrefixImports.js
455055
- function transformAtPrefixImports({ markdown, absolutePathToFernFolder, absolutePathToMarkdownFile }) {
455056
- const importRegex = /(import\s+(?:(?:\{[^}]*\}|\*\s+as\s+\w+|\w+)\s+from\s+)?['"])@\/([^'"]+)(['"])/g;
455061
+ function getCodeRanges(markdown, context3) {
455062
+ try {
455063
+ const { content: content5 } = (0, import_gray_matter5.default)(markdown);
455064
+ if (!markdown.endsWith(content5)) {
455065
+ return void 0;
455066
+ }
455067
+ const bodyOffset = markdown.length - content5.length;
455068
+ const tree = parseMarkdownBodyToTree(content5);
455069
+ const ranges = [];
455070
+ visit3(tree, ["code", "inlineCode"], (node4) => {
455071
+ const start2 = node4.position?.start.offset;
455072
+ const end = node4.position?.end.offset;
455073
+ if (start2 != null && end != null) {
455074
+ ranges.push({ start: start2 + bodyOffset, end: end + bodyOffset });
455075
+ }
455076
+ return CONTINUE;
455077
+ });
455078
+ return ranges;
455079
+ } catch (error50) {
455080
+ context3?.logger.debug(`Failed to locate code blocks while resolving "@/" imports; imports inside code samples may be rewritten: ${error50 instanceof Error ? error50.message : String(error50)}`);
455081
+ return void 0;
455082
+ }
455083
+ }
455084
+ function transformAtPrefixImports({ markdown, absolutePathToFernFolder, absolutePathToMarkdownFile, context: context3 }) {
455085
+ if (!markdown.includes("@/")) {
455086
+ return markdown;
455087
+ }
455057
455088
  const mdxDir = dirname6(absolutePathToMarkdownFile);
455058
- return markdown.replace(importRegex, (match3, prefix2, importPath, suffix) => {
455089
+ const codeRanges = getCodeRanges(markdown, context3);
455090
+ return markdown.replace(IMPORT_REGEX, (match3, prefix2, importPath, suffix, offset2) => {
455091
+ if (codeRanges?.some((range2) => offset2 >= range2.start && offset2 < range2.end)) {
455092
+ return match3;
455093
+ }
455059
455094
  const absoluteImportPath = AbsoluteFilePath2.of(`${absolutePathToFernFolder}/${importPath}`);
455060
455095
  let relativePath = relative4(mdxDir, absoluteImportPath);
455061
455096
  if (!relativePath.startsWith(".") && !relativePath.startsWith("/")) {
@@ -455064,10 +455099,15 @@ function transformAtPrefixImports({ markdown, absolutePathToFernFolder, absolute
455064
455099
  return `${prefix2}${relativePath}${suffix}`;
455065
455100
  });
455066
455101
  }
455102
+ var import_gray_matter5, IMPORT_REGEX;
455067
455103
  var init_transformAtPrefixImports = __esm({
455068
455104
  "../docs-markdown-utils/lib/transformAtPrefixImports.js"() {
455069
455105
  "use strict";
455070
455106
  init_lib8();
455107
+ import_gray_matter5 = __toESM(require_gray_matter(), 1);
455108
+ init_unist_util_visit();
455109
+ init_parseMarkdownToTree();
455110
+ IMPORT_REGEX = /(import\s+(?:(?:\{[^}]*\}|\*\s+as\s+\w+|\w+)\s+from\s+)?['"])@\/([^'"]+)(['"])/g;
455071
455111
  }
455072
455112
  });
455073
455113
 
@@ -455085,6 +455125,7 @@ __export(lib_exports10, {
455085
455125
  isMdxJsxExpressionAttribute: () => isMdxJsxExpressionAttribute,
455086
455126
  isValidRelativeSlug: () => isValidRelativeSlug,
455087
455127
  parseImagePaths: () => parseImagePaths,
455128
+ parseMarkdownBodyToTree: () => parseMarkdownBodyToTree,
455088
455129
  parseMarkdownToTree: () => parseMarkdownToTree,
455089
455130
  prefetchCodeSrcUrls: () => prefetchCodeSrcUrls,
455090
455131
  replaceImagePathsAndUrls: () => replaceImagePathsAndUrls,
@@ -455348,7 +455389,7 @@ var init_applyTranslatedApiTitlesToNavTree = __esm({
455348
455389
  // ../docs-resolver/lib/applyTranslatedFrontmatterToNavTree.js
455349
455390
  function parseFrontmatterOverrides(markdown) {
455350
455391
  try {
455351
- const { data: data2 } = (0, import_gray_matter5.default)(markdown);
455392
+ const { data: data2 } = (0, import_gray_matter6.default)(markdown);
455352
455393
  const result = {};
455353
455394
  const sidebarTitle = data2["sidebar-title"];
455354
455395
  if (typeof sidebarTitle === "string" && sidebarTitle.trim().length > 0) {
@@ -455406,11 +455447,11 @@ function walkNode(node4, overrides) {
455406
455447
  }
455407
455448
  return updated;
455408
455449
  }
455409
- var import_gray_matter5;
455450
+ var import_gray_matter6;
455410
455451
  var init_applyTranslatedFrontmatterToNavTree = __esm({
455411
455452
  "../docs-resolver/lib/applyTranslatedFrontmatterToNavTree.js"() {
455412
455453
  "use strict";
455413
- import_gray_matter5 = __toESM(require_gray_matter(), 1);
455454
+ import_gray_matter6 = __toESM(require_gray_matter(), 1);
455414
455455
  }
455415
455456
  });
455416
455457
 
@@ -472313,7 +472354,7 @@ function convertAvailability5(availability) {
472313
472354
  assertNever(availability);
472314
472355
  }
472315
472356
  }
472316
- var import_dayjs3, import_utc3, import_fs26, import_promises80, import_gray_matter6, defaultUploadFiles, apiCounter, defaultRegisterApi, DocsDefinitionResolver;
472357
+ var import_dayjs3, import_utc3, import_fs26, import_promises80, import_gray_matter7, defaultUploadFiles, apiCounter, defaultRegisterApi, DocsDefinitionResolver;
472317
472358
  var init_DocsDefinitionResolver = __esm({
472318
472359
  "../docs-resolver/lib/DocsDefinitionResolver.js"() {
472319
472360
  "use strict";
@@ -472333,7 +472374,7 @@ var init_DocsDefinitionResolver = __esm({
472333
472374
  import_utc3 = __toESM(require_utc(), 1);
472334
472375
  import_fs26 = require("fs");
472335
472376
  import_promises80 = require("fs/promises");
472336
- import_gray_matter6 = __toESM(require_gray_matter(), 1);
472377
+ import_gray_matter7 = __toESM(require_gray_matter(), 1);
472337
472378
  init_js_yaml();
472338
472379
  init_lodash();
472339
472380
  init_ApiReferenceNodeConverter();
@@ -472642,7 +472683,8 @@ var init_DocsDefinitionResolver = __esm({
472642
472683
  const newMarkdown = transformAtPrefixImports({
472643
472684
  markdown: codeReplacedMarkdown,
472644
472685
  absolutePathToFernFolder: this.docsWorkspace.absoluteFilePath,
472645
- absolutePathToMarkdownFile: this.resolveFilepath(relativePath)
472686
+ absolutePathToMarkdownFile: this.resolveFilepath(relativePath),
472687
+ context: this.taskContext
472646
472688
  });
472647
472689
  this.parsedDocsConfig.pages[RelativeFilePath2.of(relativePath)] = newMarkdown;
472648
472690
  }
@@ -472846,7 +472888,7 @@ var init_DocsDefinitionResolver = __esm({
472846
472888
  */
472847
472889
  extractAllFrontmatterData(pages) {
472848
472890
  for (const [relativePath, markdown] of Object.entries(pages)) {
472849
- const frontmatter = (0, import_gray_matter6.default)(markdown);
472891
+ const frontmatter = (0, import_gray_matter7.default)(markdown);
472850
472892
  const absolutePath = this.resolveFilepath(relativePath);
472851
472893
  const slug = frontmatter.data.slug;
472852
472894
  if (typeof slug === "string" && slug.trim().length > 0) {
@@ -603503,7 +603545,8 @@ async function buildTranslatedDocsDefinition({ docsDefinition, locale, localePag
603503
603545
  const importsResolved = transformAtPrefixImports({
603504
603546
  markdown: codeResolved,
603505
603547
  absolutePathToFernFolder: docsWorkspacePath,
603506
- absolutePathToMarkdownFile
603548
+ absolutePathToMarkdownFile,
603549
+ context: context3
603507
603550
  });
603508
603551
  let processedMarkdown = stripMdxComments(importsResolved);
603509
603552
  processedMarkdown = replaceImagePathsAndUrls(processedMarkdown, collectedFileIds, markdownFilesToPathName, {
@@ -702841,7 +702884,7 @@ var AccessTokenPosthogManager = class {
702841
702884
  properties: {
702842
702885
  ...event,
702843
702886
  ...event.properties,
702844
- version: "5.98.1",
702887
+ version: "5.98.3",
702845
702888
  usingAccessToken: true,
702846
702889
  ...getRunIdProperties()
702847
702890
  }
@@ -702907,7 +702950,7 @@ var UserPosthogManager = class {
702907
702950
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
702908
702951
  event: "CLI",
702909
702952
  properties: {
702910
- version: "5.98.1",
702953
+ version: "5.98.3",
702911
702954
  ...event,
702912
702955
  ...event.properties,
702913
702956
  usingAccessToken: false,
@@ -861487,7 +861530,7 @@ var getViolationsForFile = async (absoluteFilepath) => {
861487
861530
 
861488
861531
  // ../yaml/docs-validator/lib/rules/valid-frontmatter/valid-frontmatter.js
861489
861532
  var import_promises88 = require("fs/promises");
861490
- var import_gray_matter7 = __toESM(require_gray_matter(), 1);
861533
+ var import_gray_matter8 = __toESM(require_gray_matter(), 1);
861491
861534
  var ValidFrontmatter = {
861492
861535
  name: "valid-frontmatter",
861493
861536
  create: () => {
@@ -861498,7 +861541,7 @@ var ValidFrontmatter = {
861498
861541
  }
861499
861542
  try {
861500
861543
  const fileContents = await (0, import_promises88.readFile)(absoluteFilepath, "utf-8");
861501
- (0, import_gray_matter7.default)(fileContents);
861544
+ (0, import_gray_matter8.default)(fileContents);
861502
861545
  return [];
861503
861546
  } catch (error50) {
861504
861547
  return [
@@ -878527,7 +878570,7 @@ async function parseMarkdown({ markdown, absoluteFilepath, absolutePathToFernFol
878527
878570
  init_lib64();
878528
878571
  init_lib8();
878529
878572
  var import_promises89 = require("fs/promises");
878530
- var import_gray_matter8 = __toESM(require_gray_matter(), 1);
878573
+ var import_gray_matter9 = __toESM(require_gray_matter(), 1);
878531
878574
  init_unist_util_visit();
878532
878575
  var ValidMarkdownFileReferences = {
878533
878576
  name: "valid-markdown-file-references",
@@ -878539,7 +878582,7 @@ var ValidMarkdownFileReferences = {
878539
878582
  }
878540
878583
  try {
878541
878584
  const fileContents = await (0, import_promises89.readFile)(absoluteFilepath, "utf-8");
878542
- const { content: content5 } = (0, import_gray_matter8.default)(fileContents, {});
878585
+ const { content: content5 } = (0, import_gray_matter9.default)(fileContents, {});
878543
878586
  const tree = parseMarkdownToTree(content5);
878544
878587
  const errors4 = [];
878545
878588
  visit3(tree, (node4) => {
@@ -879648,7 +879691,7 @@ var ValidTranslationsConfigRule = {
879648
879691
  // ../yaml/docs-validator/lib/rules/valid-well-known-skills/valid-well-known-skills.js
879649
879692
  init_lib8();
879650
879693
  var import_promises91 = require("fs/promises");
879651
- var import_gray_matter9 = __toESM(require_gray_matter(), 1);
879694
+ var import_gray_matter10 = __toESM(require_gray_matter(), 1);
879652
879695
  var ValidWellKnownSkillsRule = {
879653
879696
  name: "valid-well-known-skills",
879654
879697
  create: ({ workspace }) => {
@@ -879718,7 +879761,7 @@ async function validateWellKnownSkillsDirectory({ absolutePathToFernFolder, well
879718
879761
  function validateSkillMarkdown({ skillDirectoryName, skillMarkdownRelativePath, skillMarkdownContents }) {
879719
879762
  let frontmatter;
879720
879763
  try {
879721
- frontmatter = (0, import_gray_matter9.default)(skillMarkdownContents).data;
879764
+ frontmatter = (0, import_gray_matter10.default)(skillMarkdownContents).data;
879722
879765
  } catch (error50) {
879723
879766
  return [
879724
879767
  {
@@ -884288,7 +884331,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
884288
884331
  var LOGS_FOLDER_NAME = "logs";
884289
884332
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
884290
884333
  function getCliSource() {
884291
- const version7 = "5.98.1";
884334
+ const version7 = "5.98.3";
884292
884335
  return `cli@${version7}`;
884293
884336
  }
884294
884337
  var DebugLogger = class {
@@ -886991,14 +887034,14 @@ init_lib22();
886991
887034
  init_lib68();
886992
887035
  init_lib6();
886993
887036
  var import_promises105 = require("fs/promises");
886994
- var import_gray_matter10 = __toESM(require_gray_matter(), 1);
887037
+ var import_gray_matter11 = __toESM(require_gray_matter(), 1);
886995
887038
  init_dist_node6();
886996
887039
  var frontmatterPositionCache = /* @__PURE__ */ new Map();
886997
887040
  var frontmatterSidebarTitleCache = /* @__PURE__ */ new Map();
886998
887041
  var frontmatterSlugCache = /* @__PURE__ */ new Map();
886999
887042
  function extractFrontmatterPosition(markdown) {
887000
887043
  try {
887001
- const { data: data2 } = (0, import_gray_matter10.default)(markdown);
887044
+ const { data: data2 } = (0, import_gray_matter11.default)(markdown);
887002
887045
  if (data2.position == null) {
887003
887046
  return void 0;
887004
887047
  }
@@ -887013,7 +887056,7 @@ function extractFrontmatterPosition(markdown) {
887013
887056
  }
887014
887057
  function extractFrontmatterSidebarTitle(markdown) {
887015
887058
  try {
887016
- const { data: data2 } = (0, import_gray_matter10.default)(markdown);
887059
+ const { data: data2 } = (0, import_gray_matter11.default)(markdown);
887017
887060
  if (data2["sidebar-title"] == null) {
887018
887061
  return void 0;
887019
887062
  }
@@ -887028,7 +887071,7 @@ function extractFrontmatterSidebarTitle(markdown) {
887028
887071
  }
887029
887072
  function extractFrontmatterSlug(markdown) {
887030
887073
  try {
887031
- const { data: data2 } = (0, import_gray_matter10.default)(markdown);
887074
+ const { data: data2 } = (0, import_gray_matter11.default)(markdown);
887032
887075
  if (data2.slug == null) {
887033
887076
  return void 0;
887034
887077
  }
@@ -887102,7 +887145,8 @@ async function getPreviewDocsDefinition({ domain: domain3, project, context: con
887102
887145
  const markdownReplacedMdAndCode = transformAtPrefixImports({
887103
887146
  markdown: markdownReplacedCode,
887104
887147
  absolutePathToFernFolder: docsWorkspace.absoluteFilePath,
887105
- absolutePathToMarkdownFile: absoluteFilePath
887148
+ absolutePathToMarkdownFile: absoluteFilePath,
887149
+ context: context3
887106
887150
  });
887107
887151
  let markdownWithAbsPaths;
887108
887152
  let filepaths;
@@ -888035,7 +888079,8 @@ async function runAppPreviewServer({ initialProject, reloadProject, validateProj
888035
888079
  const importsResolved = transformAtPrefixImports({
888036
888080
  markdown: codeResolved,
888037
888081
  absolutePathToFernFolder: docsWorkspacePath,
888038
- absolutePathToMarkdownFile
888082
+ absolutePathToMarkdownFile,
888083
+ context: context3
888039
888084
  });
888040
888085
  let processedMarkdown = stripMdxComments(importsResolved);
888041
888086
  processedMarkdown = replaceImagePathsAndUrls(processedMarkdown, collectedFileIds, markdownFilesToPathName, {
@@ -888664,7 +888709,8 @@ async function runPreviewServer({ initialProject, reloadProject, validateProject
888664
888709
  const importsResolved = transformAtPrefixImports({
888665
888710
  markdown: codeResolved,
888666
888711
  absolutePathToFernFolder: docsWorkspacePath,
888667
- absolutePathToMarkdownFile
888712
+ absolutePathToMarkdownFile,
888713
+ context: context3
888668
888714
  });
888669
888715
  let processedMarkdown = stripMdxComments(importsResolved);
888670
888716
  processedMarkdown = replaceImagePathsAndUrls(processedMarkdown, collectedFileIds, markdownFilesToPathName, {
@@ -908790,7 +908836,8 @@ ${JSON.stringify(errorDetails, void 0, 2)}`);
908790
908836
  const importsResolved = transformAtPrefixImports({
908791
908837
  markdown: codeResolved,
908792
908838
  absolutePathToFernFolder: docsWorkspacePath,
908793
- absolutePathToMarkdownFile
908839
+ absolutePathToMarkdownFile,
908840
+ context: context3
908794
908841
  });
908795
908842
  let processedMarkdown = stripMdxComments(importsResolved);
908796
908843
  processedMarkdown = replaceImagePathsAndUrls(processedMarkdown, collectedFileIds, markdownFilesToPathName, {
@@ -909604,7 +909651,7 @@ var LegacyDocsPublisher = class {
909604
909651
  previewId,
909605
909652
  disableTemplates: void 0,
909606
909653
  skipUpload,
909607
- cliVersion: "5.98.1",
909654
+ cliVersion: "5.98.3",
909608
909655
  loginCommand: "fern auth login"
909609
909656
  });
909610
909657
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -968931,7 +968978,7 @@ init_lib8();
968931
968978
  // ../docs-importers/mintlify/lib/convertMarkdown.js
968932
968979
  init_lib8();
968933
968980
  var import_promises156 = require("fs/promises");
968934
- var import_gray_matter11 = __toESM(require_gray_matter(), 1);
968981
+ var import_gray_matter12 = __toESM(require_gray_matter(), 1);
968935
968982
  async function convertMarkdown({ absolutePathToMintJson, absoluteFilepathToMarkdown, relativeFilepathFromRoot, builder }) {
968936
968983
  const text9 = await (0, import_promises156.readFile)(absoluteFilepathToMarkdown, "utf-8");
968937
968984
  const { data: data2, content: content5 } = parseMintlifyFrontmatter(text9);
@@ -968996,7 +969043,7 @@ async function convertMarkdown({ absolutePathToMintJson, absoluteFilepathToMarkd
968996
969043
  };
968997
969044
  }
968998
969045
  function parseMintlifyFrontmatter(mdContent) {
968999
- const { data: data2, content: content5 } = (0, import_gray_matter11.default)(mdContent);
969046
+ const { data: data2, content: content5 } = (0, import_gray_matter12.default)(mdContent);
969000
969047
  return { data: data2, content: content5 };
969001
969048
  }
969002
969049
  function isExternalUrl3(url3) {
@@ -976837,7 +976884,7 @@ function getAutomationContextFromEnv() {
976837
976884
  config_branch: process.env.FERN_CONFIG_BRANCH,
976838
976885
  config_pr_number: process.env.FERN_CONFIG_PR_NUMBER,
976839
976886
  trigger: process.env.GITHUB_EVENT_NAME,
976840
- cli_version: "5.98.1"
976887
+ cli_version: "5.98.3"
976841
976888
  };
976842
976889
  }
976843
976890
  function isAutomationMode() {
@@ -977669,7 +977716,7 @@ var CliContext = class _CliContext {
977669
977716
  if (false) {
977670
977717
  this.logger.error("CLI_VERSION is not defined");
977671
977718
  }
977672
- return "5.98.1";
977719
+ return "5.98.3";
977673
977720
  }
977674
977721
  getCliName() {
977675
977722
  if (false) {
@@ -993223,7 +993270,7 @@ init_lib20();
993223
993270
  init_lib64();
993224
993271
  init_source();
993225
993272
  var import_fs44 = require("fs");
993226
- var import_gray_matter12 = __toESM(require_gray_matter(), 1);
993273
+ var import_gray_matter13 = __toESM(require_gray_matter(), 1);
993227
993274
  var import_path123 = __toESM(require("path"), 1);
993228
993275
  function calculateVisualColumn(text9, charIndex, tabWidth = 4) {
993229
993276
  let visualColumn = 0;
@@ -993302,7 +993349,7 @@ async function validateMdxFiles({
993302
993349
  try {
993303
993350
  parseMarkdownToTree(content5);
993304
993351
  } catch (error50) {
993305
- const { content: contentWithoutFrontmatter } = (0, import_gray_matter12.default)(content5);
993352
+ const { content: contentWithoutFrontmatter } = (0, import_gray_matter13.default)(content5);
993306
993353
  const totalLines = content5.split("\n").length;
993307
993354
  const contentLines = contentWithoutFrontmatter.split("\n").length;
993308
993355
  const frontmatterLineCount = totalLines - contentLines;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.98.1",
2
+ "version": "5.98.3",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",