@mintlify/previewing 4.0.523 → 4.0.525
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.
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Ora as OraType } from 'ora';
|
|
2
|
+
export declare const getTargetMintVersion: (logger: OraType) => Promise<string | undefined>;
|
|
3
|
+
export declare const fallbackMintClient: (logger: OraType, versionString: string) => Promise<void>;
|
|
4
|
+
export declare const extractMintClient: (logger: OraType) => Promise<void>;
|
|
5
|
+
export declare const downloadTargetMint: (logger: OraType, targetMintVersion: string, versionString: string | null, clientVersion: string | undefined) => Promise<void>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import fse from 'fs-extra';
|
|
11
|
+
import got from 'got';
|
|
12
|
+
import isOnline from 'is-online';
|
|
13
|
+
import { pipeline } from 'node:stream/promises';
|
|
14
|
+
import tar from 'tar';
|
|
15
|
+
import { DOT_MINTLIFY, VERSION_PATH, MINT_PATH, TAR_PATH, TARGET_MINT_VERSION_URL, GET_TAR_URL, } from '../constants.js';
|
|
16
|
+
export const getTargetMintVersion = (logger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
const hasInternet = yield isOnline();
|
|
18
|
+
if (!hasInternet) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const response = yield got(TARGET_MINT_VERSION_URL);
|
|
23
|
+
return response.body;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
logger.text = `Failed to fetch the latest Mintlify version: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
export const fallbackMintClient = (logger, versionString) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
logger.text = `Using version: ${versionString}`;
|
|
32
|
+
const oldTarUrl = GET_TAR_URL(versionString);
|
|
33
|
+
try {
|
|
34
|
+
yield pipeline(got.stream(oldTarUrl), fse.createWriteStream(TAR_PATH));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
logger.fail(`Failed to download Mintlify framework version ${versionString}, ${error}`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
yield extractMintClient(logger);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger.fail(`Failed to extract Mintlify framework version ${versionString}, ${error}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
export const extractMintClient = (logger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
logger.text = 'Extracting Mintlify framework...';
|
|
50
|
+
tar.x({
|
|
51
|
+
sync: true,
|
|
52
|
+
file: TAR_PATH,
|
|
53
|
+
cwd: DOT_MINTLIFY,
|
|
54
|
+
onwarn: (_code, message, _data) => {
|
|
55
|
+
throw new Error(message);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
export const downloadTargetMint = (logger, targetMintVersion, versionString, clientVersion) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
fse.emptyDirSync(MINT_PATH);
|
|
61
|
+
logger.text = 'Downloading Mintlify framework...';
|
|
62
|
+
const tarUrl = clientVersion ? GET_TAR_URL(clientVersion) : GET_TAR_URL(targetMintVersion);
|
|
63
|
+
let currentVersion = clientVersion || targetMintVersion;
|
|
64
|
+
try {
|
|
65
|
+
yield pipeline(got.stream(tarUrl), fse.createWriteStream(TAR_PATH));
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (versionString) {
|
|
69
|
+
currentVersion = versionString;
|
|
70
|
+
yield fallbackMintClient(logger, versionString);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
yield extractMintClient(logger);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (versionString && currentVersion !== versionString) {
|
|
81
|
+
currentVersion = versionString;
|
|
82
|
+
yield fallbackMintClient(logger, versionString);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
fse.removeSync(TAR_PATH);
|
|
89
|
+
fse.writeFileSync(VERSION_PATH, targetMintVersion);
|
|
90
|
+
});
|
|
@@ -12,63 +12,14 @@ import open from 'better-opn';
|
|
|
12
12
|
import Chalk from 'chalk';
|
|
13
13
|
import express from 'express';
|
|
14
14
|
import fse, { pathExists } from 'fs-extra';
|
|
15
|
-
import got from 'got';
|
|
16
15
|
import { createServer } from 'http';
|
|
17
16
|
import isOnline from 'is-online';
|
|
18
|
-
import { pipeline } from 'node:stream/promises';
|
|
19
17
|
import { pathToFileURL } from 'node:url';
|
|
20
18
|
import { Server as SocketServer } from 'socket.io';
|
|
21
|
-
import
|
|
22
|
-
import { CLIENT_PATH, DOT_MINTLIFY, CMD_EXEC_PATH, VERSION_PATH, MINT_PATH, NEXT_CONFIG_PATH, TAR_PATH, NEXT_PUBLIC_PATH, NEXT_PROPS_PATH, NEXT_SIDE_EFFECT_PATH, NEXT_ROUTER_SERVER_PATH, TARGET_MINT_VERSION_URL, GET_TAR_URL, } from '../constants.js';
|
|
19
|
+
import { CLIENT_PATH, DOT_MINTLIFY, CMD_EXEC_PATH, VERSION_PATH, NEXT_CONFIG_PATH, NEXT_PUBLIC_PATH, NEXT_PROPS_PATH, NEXT_SIDE_EFFECT_PATH, NEXT_ROUTER_SERVER_PATH, } from '../constants.js';
|
|
23
20
|
import { buildLogger, maybeFixMissingWindowsEnvVar } from '../util.js';
|
|
21
|
+
import { getTargetMintVersion, downloadTargetMint } from './client.js';
|
|
24
22
|
import listener from './listener/index.js';
|
|
25
|
-
const getTargetMintVersion = (logger) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
-
const hasInternet = yield isOnline();
|
|
27
|
-
if (!hasInternet) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
const response = yield got(TARGET_MINT_VERSION_URL);
|
|
32
|
-
return response.body;
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
logger.text = `Failed to fetch the latest Mintlify version: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
const downloadTargetMint = (logger, targetMintVersion, versionString) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
-
fse.emptyDirSync(MINT_PATH);
|
|
41
|
-
logger.text = 'Downloading Mintlify framework...';
|
|
42
|
-
const tarUrl = GET_TAR_URL(targetMintVersion);
|
|
43
|
-
try {
|
|
44
|
-
yield pipeline(got.stream(tarUrl), fse.createWriteStream(TAR_PATH));
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
logger.text = `Failed to download Mintlify framework version ${targetMintVersion}, ${error}`;
|
|
48
|
-
if (versionString) {
|
|
49
|
-
logger.text = `Using version: ${versionString}`;
|
|
50
|
-
const oldTarUrl = GET_TAR_URL(versionString);
|
|
51
|
-
try {
|
|
52
|
-
yield pipeline(got.stream(oldTarUrl), fse.createWriteStream(TAR_PATH));
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
logger.fail(`Failed to download Mintlify framework version ${versionString}, ${error}`);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
logger.text = 'Extracting Mintlify framework...';
|
|
64
|
-
tar.x({
|
|
65
|
-
sync: true,
|
|
66
|
-
file: TAR_PATH,
|
|
67
|
-
cwd: DOT_MINTLIFY,
|
|
68
|
-
});
|
|
69
|
-
fse.removeSync(TAR_PATH);
|
|
70
|
-
fse.writeFileSync(VERSION_PATH, targetMintVersion);
|
|
71
|
-
});
|
|
72
23
|
const dev = (argv) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
24
|
// Note: We wait for specific text in the logger to be sure the server is ready when we e2e test the cli.
|
|
74
25
|
// If the cli output does not exactly match:
|
|
@@ -76,6 +27,8 @@ const dev = (argv) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
76
27
|
// the test will fail/require an update.
|
|
77
28
|
const logger = buildLogger('Preparing local Mintlify instance...');
|
|
78
29
|
const hasInternet = yield isOnline();
|
|
30
|
+
const localSchema = argv['local-schema'];
|
|
31
|
+
const clientVersion = argv['client-version'];
|
|
79
32
|
yield fse.ensureDir(DOT_MINTLIFY);
|
|
80
33
|
const versionString = (yield pathExists(VERSION_PATH))
|
|
81
34
|
? fse.readFileSync(VERSION_PATH, 'utf8')
|
|
@@ -91,15 +44,14 @@ const dev = (argv) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
91
44
|
versionString +
|
|
92
45
|
', which may not be the latest Mintlify client version.';
|
|
93
46
|
}
|
|
94
|
-
const shouldDownload = versionString !== targetMintVersion;
|
|
47
|
+
const shouldDownload = versionString !== targetMintVersion || clientVersion !== undefined;
|
|
95
48
|
if (shouldDownload && hasInternet && targetMintVersion) {
|
|
96
|
-
yield downloadTargetMint(logger, targetMintVersion, versionString);
|
|
49
|
+
yield downloadTargetMint(logger, targetMintVersion, versionString, clientVersion);
|
|
97
50
|
}
|
|
98
51
|
// clear preexisting prebuild files
|
|
99
52
|
fse.emptyDirSync(NEXT_PUBLIC_PATH);
|
|
100
53
|
fse.emptyDirSync(NEXT_PROPS_PATH);
|
|
101
54
|
process.chdir(CLIENT_PATH);
|
|
102
|
-
const localSchema = argv['local-schema'];
|
|
103
55
|
try {
|
|
104
56
|
yield prebuild(CMD_EXEC_PATH, { localSchema });
|
|
105
57
|
}
|