@mintlify/previewing 4.0.323 → 4.0.325
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/local-preview/listener/generate.d.ts +111 -1
- package/dist/local-preview/listener/generate.js +8 -3
- package/dist/local-preview/listener/getDocsState.d.ts +2 -0
- package/dist/local-preview/listener/getDocsState.js +17 -6
- package/dist/local-preview/listener/index.js +12 -3
- package/dist/local-preview/listener/update.js +5 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,2 +1,112 @@
|
|
|
1
1
|
import type { DecoratedNavigationPage } from '@mintlify/models';
|
|
2
|
-
export declare const generateNav: (pagesAcc
|
|
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
|
-
|
|
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 {
|
|
11
|
-
import {
|
|
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
|
|
18
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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) {
|