@mintlify/previewing 4.0.324 → 4.0.326

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.
@@ -1,2 +1,112 @@
1
1
  import type { DecoratedNavigationPage } from '@mintlify/models';
2
- export declare const generateNav: (pagesAcc?: Record<string, DecoratedNavigationPage>) => Promise<import("@mintlify/models").DecoratedNavigation>;
2
+ export declare const generateNav: (pagesAcc: Record<string, DecoratedNavigationPage>) => Promise<{
3
+ generatedNav: import("@mintlify/models").DecoratedNavigation;
4
+ generatedDocsNav: {
5
+ global?: {
6
+ languages?: ({
7
+ language: "en" | "cn" | "es" | "fr" | "jp" | "pt" | "pt-BR" | "de";
8
+ hidden?: boolean | undefined;
9
+ } & {
10
+ href: string;
11
+ })[] | undefined;
12
+ versions?: ({
13
+ version: string;
14
+ hidden?: boolean | undefined;
15
+ } & {
16
+ href: string;
17
+ })[] | undefined;
18
+ tabs?: ({
19
+ tab: string;
20
+ icon?: string | {
21
+ name: string;
22
+ style?: "brands" | "duotone" | "light" | "regular" | "sharp-duotone-solid" | "sharp-light" | "sharp-regular" | "sharp-solid" | "sharp-thin" | "solid" | "thin" | undefined;
23
+ } | undefined;
24
+ hidden?: boolean | undefined;
25
+ } & {
26
+ href: string;
27
+ })[] | undefined;
28
+ dropdowns?: ({
29
+ dropdown: string;
30
+ icon?: string | {
31
+ name: string;
32
+ style?: "brands" | "duotone" | "light" | "regular" | "sharp-duotone-solid" | "sharp-light" | "sharp-regular" | "sharp-solid" | "sharp-thin" | "solid" | "thin" | undefined;
33
+ } | undefined;
34
+ hidden?: boolean | undefined;
35
+ } & {
36
+ href: string;
37
+ })[] | undefined;
38
+ anchors?: ({
39
+ anchor: string;
40
+ icon?: string | {
41
+ name: string;
42
+ style?: "brands" | "duotone" | "light" | "regular" | "sharp-duotone-solid" | "sharp-light" | "sharp-regular" | "sharp-solid" | "sharp-thin" | "solid" | "thin" | undefined;
43
+ } | undefined;
44
+ color?: {
45
+ light?: string | undefined;
46
+ dark?: string | undefined;
47
+ } | undefined;
48
+ hidden?: boolean | undefined;
49
+ } & {
50
+ href: string;
51
+ })[] | undefined;
52
+ } | undefined;
53
+ } & ({
54
+ languages: any[];
55
+ } | {
56
+ versions: any[];
57
+ } | {
58
+ tabs: any[];
59
+ } | {
60
+ dropdowns: any[];
61
+ } | {
62
+ anchors: any[];
63
+ } | {
64
+ groups: ({
65
+ group: string;
66
+ icon?: string | {
67
+ name: string;
68
+ style?: "brands" | "duotone" | "light" | "regular" | "sharp-duotone-solid" | "sharp-light" | "sharp-regular" | "sharp-solid" | "sharp-thin" | "solid" | "thin" | undefined;
69
+ } | undefined;
70
+ hidden?: boolean | undefined;
71
+ root?: string | {
72
+ href: string;
73
+ title: string;
74
+ sidebarTitle?: string | undefined;
75
+ description?: string | undefined;
76
+ api?: string | undefined;
77
+ openapi?: string | undefined;
78
+ contentType?: string | undefined;
79
+ authMethod?: string | undefined;
80
+ auth?: string | undefined;
81
+ version?: string | undefined;
82
+ mode?: string | undefined;
83
+ hideFooterPagination?: boolean | undefined;
84
+ authors?: unknown;
85
+ lastUpdatedDate?: string | undefined;
86
+ createdDate?: string | undefined;
87
+ "openapi-schema"?: string | undefined;
88
+ icon?: string | {
89
+ name: string;
90
+ style?: "brands" | "duotone" | "light" | "regular" | "sharp-duotone-solid" | "sharp-light" | "sharp-regular" | "sharp-solid" | "sharp-thin" | "solid" | "thin" | undefined;
91
+ } | undefined;
92
+ tag?: string | undefined;
93
+ url?: string | undefined;
94
+ hideApiMarker?: boolean | undefined;
95
+ noindex?: boolean | undefined;
96
+ isPublic?: boolean | undefined;
97
+ } | undefined;
98
+ } & ({
99
+ openapi: (string | string[] | {
100
+ source: string;
101
+ directory?: string | undefined;
102
+ }) & (string | string[] | {
103
+ source: string;
104
+ directory?: string | undefined;
105
+ } | undefined);
106
+ } | {
107
+ pages: any[];
108
+ }))[];
109
+ } | {
110
+ pages: any[];
111
+ });
112
+ }>;
@@ -7,7 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { generateDecoratedMintNavigationFromPages, getConfigObj, categorizeFilePaths, createPage, } from '@mintlify/prebuild';
10
+ import { generateDecoratedMintNavigationFromPages, getConfigObj, categorizeFilePaths, createPage, generateDecoratedDocsNavigationFromPages, } from '@mintlify/prebuild';
11
+ import { upgradeToDocsConfig } from '@mintlify/validation';
11
12
  import { promises as _promises } from 'fs';
12
13
  import { join } from 'path';
13
14
  import { CMD_EXEC_PATH, NEXT_PROPS_PATH } from '../../constants.js';
@@ -26,10 +27,14 @@ const createFilenamePageMetadataMap = (contentDirectoryPath_1, contentFilenames_
26
27
  return pagesAcc;
27
28
  });
28
29
  export const generateNav = (pagesAcc) => __awaiter(void 0, void 0, void 0, function* () {
30
+ var _a;
29
31
  const { contentFilenames, openApiFiles } = yield categorizeFilePaths(CMD_EXEC_PATH);
30
- const [filenamePageMetadataMap, configObj] = yield Promise.all([
32
+ const [filenamePageMetadataMap, configObj, docsConfigObj] = yield Promise.all([
31
33
  createFilenamePageMetadataMap(CMD_EXEC_PATH, contentFilenames, openApiFiles, pagesAcc),
32
34
  getConfigObj(NEXT_PROPS_PATH, 'mint'),
35
+ getConfigObj(NEXT_PROPS_PATH, 'docs'),
33
36
  ]);
34
- return generateDecoratedMintNavigationFromPages(filenamePageMetadataMap, configObj === null || configObj === void 0 ? void 0 : configObj.navigation);
37
+ const generatedNav = generateDecoratedMintNavigationFromPages(filenamePageMetadataMap, configObj === null || configObj === void 0 ? void 0 : configObj.navigation);
38
+ const generatedDocsNav = generateDecoratedDocsNavigationFromPages(filenamePageMetadataMap, (_a = docsConfigObj === null || docsConfigObj === void 0 ? void 0 : docsConfigObj.navigation) !== null && _a !== void 0 ? _a : upgradeToDocsConfig(configObj).navigation);
39
+ return { generatedNav, generatedDocsNav };
35
40
  });
@@ -1,6 +1,8 @@
1
1
  import type { DecoratedNavigationPage, MintConfig, OpenApiFile } from '@mintlify/models';
2
+ import { DocsConfig } from '@mintlify/validation';
2
3
  export declare const getDocsState: () => Promise<{
3
4
  mintConfig: MintConfig;
4
5
  pagesAcc: Record<string, DecoratedNavigationPage>;
5
6
  openApiFiles: OpenApiFile[];
7
+ docsConfig: DocsConfig;
6
8
  }>;
@@ -7,15 +7,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { validateMintJson, generateOpenApiAnchorsOrTabs, categorizeFilePaths, } from '@mintlify/prebuild';
11
- import { promises as _promises } from 'fs';
10
+ import { generateOpenApiAnchorsOrTabs, categorizeFilePaths, generateOpenApiDivisions, MintConfigUpdater, DocsConfigUpdater, } from '@mintlify/prebuild';
11
+ import { upgradeToDocsConfig } from '@mintlify/validation';
12
+ import fse from 'fs-extra';
12
13
  import { join } from 'path';
13
14
  import { CMD_EXEC_PATH, CLIENT_PATH } from '../../constants.js';
14
- const { readFile } = _promises;
15
15
  export const getDocsState = () => __awaiter(void 0, void 0, void 0, function* () {
16
16
  const mintJsonPath = join(CMD_EXEC_PATH, 'mint.json');
17
- const mintJsonFileContent = yield readFile(mintJsonPath, 'utf8');
18
- const validationResults = yield validateMintJson(mintJsonFileContent);
17
+ const mintConfig = yield MintConfigUpdater.getConfig(mintJsonPath);
18
+ let docsConfig = upgradeToDocsConfig(mintConfig);
19
+ const docsJsonPath = join(CMD_EXEC_PATH, 'docs.json');
20
+ if (yield fse.pathExists(docsJsonPath)) {
21
+ docsConfig = yield DocsConfigUpdater.getConfig(docsJsonPath);
22
+ }
19
23
  const { openApiFiles } = yield categorizeFilePaths(CMD_EXEC_PATH);
20
- return yield generateOpenApiAnchorsOrTabs(validationResults.data, openApiFiles, CLIENT_PATH);
24
+ const { mintConfig: newMintConfig } = yield generateOpenApiAnchorsOrTabs(mintConfig, openApiFiles, CLIENT_PATH);
25
+ const { newDocsConfig, pagesAcc, openApiFiles: newOpenApiFiles, } = yield generateOpenApiDivisions(docsConfig, openApiFiles, CLIENT_PATH);
26
+ return {
27
+ mintConfig: newMintConfig,
28
+ pagesAcc,
29
+ openApiFiles: newOpenApiFiles,
30
+ docsConfig: newDocsConfig,
31
+ };
21
32
  });
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { findAndRemoveImports, hasImports, getFileCategory, openApiCheck } from '@mintlify/common';
11
- import { createPage, preparseMdx, writeMintConfigFile } from '@mintlify/prebuild';
11
+ import { createPage, preparseMdx, MintConfigUpdater, DocsConfigUpdater } from '@mintlify/prebuild';
12
12
  import Chalk from 'chalk';
13
13
  import chokidar from 'chokidar';
14
14
  import { promises as _promises } from 'fs';
@@ -46,6 +46,7 @@ const onAddEvent = (filename, callback) => __awaiter(void 0, void 0, void 0, fun
46
46
  console.log('New snippet detected: ', filename);
47
47
  break;
48
48
  case 'mintConfig':
49
+ case 'docsConfig':
49
50
  console.log('Config added');
50
51
  break;
51
52
  case 'openApi':
@@ -78,6 +79,7 @@ const onChangeEvent = (filename, callback) => __awaiter(void 0, void 0, void 0,
78
79
  console.log('Snippet edited: ', filename);
79
80
  break;
80
81
  case 'mintConfig':
82
+ case 'docsConfig':
81
83
  console.log('Config edited');
82
84
  break;
83
85
  case 'openApi':
@@ -105,6 +107,7 @@ const onUnlinkEvent = (filename) => __awaiter(void 0, void 0, void 0, function*
105
107
  if (potentialCategory === 'page' ||
106
108
  potentialCategory === 'snippet' ||
107
109
  potentialCategory === 'mintConfig' ||
110
+ potentialCategory === 'docsConfig' ||
108
111
  potentialCategory === 'staticFile' ||
109
112
  potentialCategory === 'snippet-v2' ||
110
113
  potentialCategory === 'css' ||
@@ -122,6 +125,8 @@ const onUnlinkEvent = (filename) => __awaiter(void 0, void 0, void 0, function*
122
125
  case 'mintConfig':
123
126
  console.error('⚠️ mint.json is required, but has been deleted. Exiting.');
124
127
  process.exit(1);
128
+ case 'docsConfig':
129
+ console.error('⚠️ docs.json has been deleted.');
125
130
  case 'potentialJsonOpenApiSpec':
126
131
  case 'potentialYamlOpenApiSpec':
127
132
  yield updateOpenApiFiles();
@@ -148,6 +153,8 @@ const getTargetPath = (potentialCategory, filePath) => {
148
153
  return pathUtil.join(NEXT_PROPS_PATH, filePath);
149
154
  case 'mintConfig':
150
155
  return pathUtil.join(NEXT_PROPS_PATH, 'mint.json');
156
+ case 'docsConfig':
157
+ return pathUtil.join(NEXT_PROPS_PATH, 'docs.json');
151
158
  case 'potentialYamlOpenApiSpec':
152
159
  case 'potentialJsonOpenApiSpec':
153
160
  return pathUtil.join(NEXT_PROPS_PATH, 'openApiFiles.json');
@@ -206,10 +213,12 @@ const onUpdateEvent = (filename, callback) => __awaiter(void 0, void 0, void 0,
206
213
  break;
207
214
  }
208
215
  case 'mintConfig':
216
+ case 'docsConfig':
209
217
  regenerateNav = true;
210
218
  try {
211
- const { mintConfig, openApiFiles } = yield getDocsState();
212
- yield writeMintConfigFile(mintConfig, CLIENT_PATH);
219
+ const { mintConfig, openApiFiles, docsConfig } = yield getDocsState();
220
+ yield MintConfigUpdater.writeConfigFile(mintConfig, CLIENT_PATH);
221
+ yield DocsConfigUpdater.writeConfigFile(docsConfig, CLIENT_PATH);
213
222
  yield updateOpenApiFiles(openApiFiles);
214
223
  }
215
224
  catch (err) {
@@ -15,11 +15,15 @@ import { generateNav } from './generate.js';
15
15
  import { getDocsState } from './getDocsState.js';
16
16
  export const updateGeneratedNav = () => __awaiter(void 0, void 0, void 0, function* () {
17
17
  const { pagesAcc } = yield getDocsState();
18
- const generatedNav = yield generateNav(pagesAcc);
18
+ const { generatedNav, generatedDocsNav } = yield generateNav(pagesAcc);
19
19
  const targetPath = join(CLIENT_PATH, 'src', '_props', 'generatedNav.json');
20
20
  yield fse.outputFile(targetPath, JSON.stringify(generatedNav, null, 2), {
21
21
  flag: 'w',
22
22
  });
23
+ const targetDocsPath = join(CLIENT_PATH, 'src', '_props', 'generatedDocsNav.json');
24
+ yield fse.outputFile(targetDocsPath, JSON.stringify(generatedDocsNav, null, 2), {
25
+ flag: 'w',
26
+ });
23
27
  });
24
28
  export const updateOpenApiFiles = (providedOpenApiFiles) => __awaiter(void 0, void 0, void 0, function* () {
25
29
  if (providedOpenApiFiles == undefined) {