mintlify 2.0.10 → 2.0.12

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 (40) hide show
  1. package/bin/constants.js +2 -1
  2. package/bin/constants.js.map +1 -1
  3. package/bin/index.js +1 -0
  4. package/bin/index.js.map +1 -1
  5. package/bin/local-preview/index.js +47 -43
  6. package/bin/local-preview/index.js.map +1 -1
  7. package/bin/local-preview/listener/categorize.js +1 -3
  8. package/bin/local-preview/listener/categorize.js.map +1 -1
  9. package/bin/local-preview/listener/categorizeFiles.js +47 -0
  10. package/bin/local-preview/listener/categorizeFiles.js.map +1 -0
  11. package/bin/local-preview/listener/update.js +0 -17
  12. package/bin/local-preview/listener/update.js.map +1 -1
  13. package/bin/local-preview/listener/utils/fileIsMdxOrMd.js +12 -0
  14. package/bin/local-preview/listener/utils/fileIsMdxOrMd.js.map +1 -0
  15. package/bin/local-preview/utils/categorizeFiles.js +63 -0
  16. package/bin/local-preview/utils/categorizeFiles.js.map +1 -0
  17. package/bin/local-preview/utils/getOpenApiContext.js +58 -0
  18. package/bin/local-preview/utils/getOpenApiContext.js.map +1 -0
  19. package/bin/local-preview/utils/injectFavicons.js +72 -0
  20. package/bin/local-preview/utils/injectFavicons.js.map +1 -0
  21. package/bin/local-preview/utils/listener.js +116 -0
  22. package/bin/local-preview/utils/listener.js.map +1 -0
  23. package/bin/local-preview/utils/metadata.js +118 -0
  24. package/bin/local-preview/utils/metadata.js.map +1 -0
  25. package/bin/local-preview/utils/mintConfigFile.js +43 -0
  26. package/bin/local-preview/utils/mintConfigFile.js.map +1 -0
  27. package/bin/local-preview/utils/openApiCheck.js +15 -0
  28. package/bin/local-preview/utils/openApiCheck.js.map +1 -0
  29. package/bin/local-preview/utils/slugToTitle.js +8 -0
  30. package/bin/local-preview/utils/slugToTitle.js.map +1 -0
  31. package/bin/navigation.js +4 -0
  32. package/bin/navigation.js.map +1 -0
  33. package/bin/pageTemplate.js +30 -0
  34. package/bin/pageTemplate.js.map +1 -0
  35. package/package.json +2 -2
  36. package/src/constants.ts +3 -1
  37. package/src/index.ts +1 -0
  38. package/src/local-preview/index.ts +65 -59
  39. package/src/local-preview/listener/categorize.ts +1 -5
  40. package/src/local-preview/listener/update.ts +0 -18
package/bin/constants.js CHANGED
@@ -2,13 +2,14 @@ import path from "path";
2
2
  import * as url from "url";
3
3
  import os from "os";
4
4
  // Change this to bump to a newer version of mint's client
5
- export const TARGET_MINT_VERSION = "v0.0.4";
5
+ export const TARGET_MINT_VERSION = "v0.0.5";
6
6
  // package installation location
7
7
  export const INSTALL_PATH = url.fileURLToPath(new URL(".", import.meta.url));
8
8
  export const HOME_DIR = os.homedir();
9
9
  export const DOT_MINTLIFY = path.join(HOME_DIR, ".mintlify");
10
10
  export const VERSION_PATH = path.join(DOT_MINTLIFY, "mint", "mint-version.txt");
11
11
  export const CLIENT_PATH = path.join(DOT_MINTLIFY, "mint", "client");
12
+ export const MINT_PATH = path.join(DOT_MINTLIFY, "mint");
12
13
  // command execution location
13
14
  export const CMD_EXEC_PATH = process.cwd();
14
15
  export const SUPPORTED_MEDIA_EXTENSIONS = [
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAErE,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAEzD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC"}
package/bin/index.js CHANGED
@@ -32,6 +32,7 @@ yargs(hideBin(process.argv))
32
32
  await scrapeSectionAxiosWrapper(argv, scrapeReadMeSection);
33
33
  })
34
34
  // Print the help menu when the user enters an invalid command.
35
+ .strictCommands()
35
36
  .demandCommand(1, "Unknown command. See above for the list of supported commands.")
36
37
  // Alias option flags --help = -h, --version = -v
37
38
  .alias("h", "help")
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,GAAG,MAAM,0BAA0B,CAAC;AAC3C,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AAEvF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,OAAO,CACN,KAAK,EACL,8DAA8D,EAC9D,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CACF;KACA,OAAO,CACN,SAAS,EACT,yCAAyC,EACzC,GAAG,EAAE,GAAE,CAAC,EACR,kBAAkB,CACnB;KACA,OAAO,CACN,mBAAmB,EACnB,gBAAgB,EAChB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CACF;KACA,OAAO,CACN,2BAA2B,EAC3B,wBAAwB,EACxB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC,CACF;KACA,OAAO,CACN,0BAA0B,EAC1B,uBAAuB,EACvB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAClD,CAAC,CACF;KACA,OAAO,CACN,sBAAsB,EACtB,iCAAiC,EACjC,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CACF;KACA,OAAO,CACN,8BAA8B,EAC9B,6BAA6B,EAC7B,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CACF;KACA,OAAO,CACN,6BAA6B,EAC7B,4BAA4B,EAC5B,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAC7D,CAAC,CACF;IAED,+DAA+D;KAC9D,aAAa,CACZ,CAAC,EACD,gEAAgE,CACjE;IAED,iDAAiD;KAChD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;KAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KAErB,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,GAAG,MAAM,0BAA0B,CAAC;AAC3C,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AAEvF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,OAAO,CACN,KAAK,EACL,8DAA8D,EAC9D,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CACF;KACA,OAAO,CACN,SAAS,EACT,yCAAyC,EACzC,GAAG,EAAE,GAAE,CAAC,EACR,kBAAkB,CACnB;KACA,OAAO,CACN,mBAAmB,EACnB,gBAAgB,EAChB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CACF;KACA,OAAO,CACN,2BAA2B,EAC3B,wBAAwB,EACxB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC,CACF;KACA,OAAO,CACN,0BAA0B,EAC1B,uBAAuB,EACvB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAClD,CAAC,CACF;KACA,OAAO,CACN,sBAAsB,EACtB,iCAAiC,EACjC,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC,CACF;KACA,OAAO,CACN,8BAA8B,EAC9B,6BAA6B,EAC7B,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CACF;KACA,OAAO,CACN,6BAA6B,EAC7B,4BAA4B,EAC5B,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;AAC7D,CAAC,CACF;IAED,+DAA+D;KAC9D,cAAc,EAAE;KAChB,aAAa,CACZ,CAAC,EACD,gEAAgE,CACjE;IAED,iDAAiD;KAChD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;KAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KAErB,KAAK,EAAE,CAAC"}
@@ -7,9 +7,10 @@ import { isInternetAvailable } from "is-internet-available";
7
7
  import path from "path";
8
8
  import shell from "shelljs";
9
9
  import { Octokit } from "@octokit/rest";
10
- import { CLIENT_PATH, HOME_DIR, DOT_MINTLIFY, CMD_EXEC_PATH, TARGET_MINT_VERSION, VERSION_PATH, } from "../constants.js";
10
+ import { CLIENT_PATH, HOME_DIR, DOT_MINTLIFY, CMD_EXEC_PATH, TARGET_MINT_VERSION, VERSION_PATH, MINT_PATH, } from "../constants.js";
11
11
  import { buildLogger, ensureYarn } from "../util.js";
12
12
  import listener from "./listener/index.js";
13
+ import { getConfigPath } from "./listener/utils/mintConfigFile.js";
13
14
  const shellExec = (cmd) => {
14
15
  return shell.exec(cmd, { silent: true });
15
16
  };
@@ -38,64 +39,65 @@ const promptForYarn = async () => {
38
39
  });
39
40
  }
40
41
  };
42
+ const downloadTargetMint = async (logger) => {
43
+ fse.emptyDirSync(MINT_PATH);
44
+ logger.text = "Downloading Mintlify framework...";
45
+ const octokit = new Octokit();
46
+ const downloadRes = await octokit.repos.downloadTarballArchive({
47
+ owner: "mintlify",
48
+ repo: "mint",
49
+ ref: TARGET_MINT_VERSION,
50
+ });
51
+ logger.text = "Extracting Mintlify framework...";
52
+ const TAR_PATH = path.join(MINT_PATH, "mint.tar.gz");
53
+ // Unzip tar file
54
+ fse.writeFileSync(TAR_PATH, Buffer.from(downloadRes.data));
55
+ shellExec("tar -xzf mint.tar.gz");
56
+ // List all files in tar file and get the first one.
57
+ // There is never anything else in the tar file, so this is safe.
58
+ // We do this because the folder name includes the commit sha, so we can't hardcode it.
59
+ // Lastly, we call .trim() to remove the newline character.
60
+ const extractedFolderName = shellExec('tar -tzf mint.tar.gz | head -1 | cut -f1 -d"/"').stdout.trim();
61
+ fse.removeSync(TAR_PATH);
62
+ fse.moveSync(path.join(MINT_PATH, extractedFolderName, "client"), path.join(CLIENT_PATH));
63
+ fse.writeFileSync(VERSION_PATH, TARGET_MINT_VERSION);
64
+ // Delete unnecessary contents downloaded from GitHub
65
+ fse.removeSync(path.join(MINT_PATH, extractedFolderName));
66
+ logger.text = "Installing dependencies...";
67
+ ensureYarn(logger);
68
+ shell.cd(CLIENT_PATH);
69
+ shellExec("yarn");
70
+ };
71
+ const checkForMintJson = async (logger) => {
72
+ const configPath = await getConfigPath(CMD_EXEC_PATH);
73
+ if (configPath == null) {
74
+ logger.fail("Must be ran in a directory where a mint.json file exists.");
75
+ process.exit(1);
76
+ }
77
+ return;
78
+ };
41
79
  const dev = async (argv) => {
42
80
  shell.cd(HOME_DIR);
43
81
  await promptForYarn();
44
82
  const logger = buildLogger("Preparing local Mintlify instance...");
45
- await fse.ensureDir(path.join(DOT_MINTLIFY, "mint"));
46
- const MINT_PATH = path.join(DOT_MINTLIFY, "mint");
83
+ await fse.ensureDir(MINT_PATH);
47
84
  shell.cd(MINT_PATH);
48
- // The CLI can only run offline if Mint was already downloaded
49
85
  const internet = await isInternetAvailable();
50
86
  if (!internet && !(await pathExists(CLIENT_PATH))) {
51
87
  logger.fail("Running mintlify dev for the first time requires an internet connection.");
52
88
  process.exit(1);
53
89
  }
54
- // Avoid checking if we are on the target Mint if we are offline
55
90
  if (internet) {
56
91
  const mintVersionExists = await pathExists(VERSION_PATH);
57
- // We always download the target version of Mintlify if the mint-version.txt file doesn't exist.
58
- // We do this because users updating from an older version of the CLI never have mint-version.txt set.
59
- let downloadTargetMint = !mintVersionExists;
60
- // Download target mint if the current version is different. Keep in mind this also allows
61
- // downgrading to an older version of Mintlify by installing an older CLI version.
92
+ let needToDownloadTargetMint = !mintVersionExists;
62
93
  if (mintVersionExists) {
63
94
  const currVersion = fse.readFileSync(VERSION_PATH, "utf8");
64
95
  if (currVersion !== TARGET_MINT_VERSION) {
65
- downloadTargetMint = true;
96
+ needToDownloadTargetMint = true;
66
97
  }
67
98
  }
68
- if (downloadTargetMint) {
69
- // Delete any existing contents
70
- fse.emptyDirSync(MINT_PATH);
71
- logger.text = "Downloading Mintlify framework...";
72
- const octokit = new Octokit();
73
- const downloadRes = await octokit.repos.downloadTarballArchive({
74
- owner: "mintlify",
75
- repo: "mint",
76
- ref: TARGET_MINT_VERSION,
77
- });
78
- logger.text = "Extracting Mintlify framework...";
79
- const TAR_PATH = path.join(MINT_PATH, "mint.tar.gz");
80
- // Unzip tar file
81
- fse.writeFileSync(TAR_PATH, Buffer.from(downloadRes.data));
82
- shellExec("tar -xzf mint.tar.gz");
83
- // List all files in tar file and get the first one.
84
- // There is never anything else in the tar file, so this is safe.
85
- // We do this because the folder name includes the commit sha, so we can't hardcode it.
86
- // Lastly, we call .trim() to remove the newline character.
87
- const extractedFolderName = shellExec('tar -tzf mint.tar.gz | head -1 | cut -f1 -d"/"').stdout.trim();
88
- // Delete tar file
89
- fse.removeSync(TAR_PATH);
90
- fse.moveSync(path.join(MINT_PATH, extractedFolderName, "client"), path.join(CLIENT_PATH));
91
- // Store the currently downloaded version
92
- fse.writeFileSync(VERSION_PATH, TARGET_MINT_VERSION);
93
- // Delete unnecessary contents downloaded from GitHub
94
- fse.removeSync(path.join(MINT_PATH, extractedFolderName));
95
- logger.text = "Installing dependencies...";
96
- ensureYarn(logger);
97
- shell.cd(CLIENT_PATH);
98
- shellExec("yarn");
99
+ if (needToDownloadTargetMint) {
100
+ await downloadTargetMint(logger);
99
101
  }
100
102
  }
101
103
  if (!(await nodeModulesExists())) {
@@ -115,9 +117,11 @@ const dev = async (argv) => {
115
117
  }
116
118
  process.exit(1);
117
119
  }
120
+ await checkForMintJson(logger);
121
+ shell.cd(CLIENT_PATH);
118
122
  const relativePath = path.relative(CLIENT_PATH, CMD_EXEC_PATH);
119
123
  shellExec(`yarn preconfigure ${relativePath}`);
120
- logger.succeed("Local Mintlify instance is ready. Launching your site now.");
124
+ logger.succeed("Local Mintlify instance is ready. Launching your site...");
121
125
  run(argv.port || "3000");
122
126
  };
123
127
  const run = (port) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-preview/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-preview/index.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,7 @@ export const categorizeFiles = async (contentDirectoryPath) => {
32
32
  });
33
33
  }
34
34
  }
35
- else if ((!filename.endsWith("mint.config.json") ||
36
- !filename.endsWith("mint.json")) &&
37
- !isOpenApi) {
35
+ else if (!filename.endsWith("mint.json") && !isOpenApi) {
38
36
  // all other files
39
37
  staticFilenames.push(filename);
40
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"categorize.js","sourceRoot":"","sources":["../../../src/local-preview/listener/categorize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"categorize.js","sourceRoot":"","sources":["../../../src/local-preview/listener/categorize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ // TODO - put in prebuild package
2
+ import path from "path";
3
+ import { getFileExtension, openApiCheck, getFileList } from "./utils.js";
4
+ const categorizeFiles = async (contentDirectoryPath) => {
5
+ const allFilesInCmdExecutionPath = await getFileList(contentDirectoryPath);
6
+ const contentFilenames = [];
7
+ const staticFilenames = [];
8
+ const promises = [];
9
+ const openApiFiles = [];
10
+ const snippets = [];
11
+ allFilesInCmdExecutionPath.forEach((filename) => {
12
+ promises.push((async () => {
13
+ const extension = getFileExtension(filename);
14
+ let isOpenApi = false;
15
+ if (extension && (extension === "mdx" || extension === "md")) {
16
+ if (filename.startsWith("/_snippets")) {
17
+ snippets.push(filename);
18
+ }
19
+ else {
20
+ contentFilenames.push(filename);
21
+ }
22
+ }
23
+ else if (extension &&
24
+ (extension === "json" || extension === "yaml" || extension === "yml")) {
25
+ const openApiInfo = await openApiCheck(path.join(contentDirectoryPath, filename));
26
+ isOpenApi = openApiInfo.isOpenApi;
27
+ if (isOpenApi) {
28
+ const fileName = path.parse(filename).base;
29
+ openApiFiles.push({
30
+ filename: fileName.substring(0, fileName.lastIndexOf(".")),
31
+ spec: openApiInfo.spec,
32
+ });
33
+ }
34
+ }
35
+ else if ((!filename.endsWith("mint.config.json") ||
36
+ !filename.endsWith("mint.json")) &&
37
+ !isOpenApi) {
38
+ // all other files
39
+ staticFilenames.push(filename);
40
+ }
41
+ })());
42
+ });
43
+ await Promise.all(promises);
44
+ return { contentFilenames, staticFilenames, openApiFiles, snippets };
45
+ };
46
+ export default categorizeFiles;
47
+ //# sourceMappingURL=categorizeFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorizeFiles.js","sourceRoot":"","sources":["../../../src/local-preview/listener/categorizeFiles.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,eAAe,GAAG,KAAK,EAAE,oBAA4B,EAAE,EAAE;IAC7D,MAAM,0BAA0B,GAAG,MAAM,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,0BAA0B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9C,QAAQ,CAAC,IAAI,CACX,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,SAAS,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,CAAC,EAAE;gBAC5D,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;oBACrC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;qBAAM;oBACL,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACjC;aACF;iBAAM,IACL,SAAS;gBACT,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC,EACrE;gBACA,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAC1C,CAAC;gBACF,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBAClC,IAAI,SAAS,EAAE;oBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC3C,YAAY,CAAC,IAAI,CAAC;wBAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBAC1D,IAAI,EAAE,WAAW,CAAC,IAAI;qBACvB,CAAC,CAAC;iBACJ;aACF;iBAAM,IACL,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACrC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC,SAAS,EACV;gBACA,kBAAkB;gBAClB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,EAAE,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACvE,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,29 +1,12 @@
1
1
  // TODO: Add Types
2
2
  import fse from "fs-extra";
3
3
  import { promises as _promises } from "fs";
4
- import { getConfigPath } from "./utils/mintConfigFile.js";
5
4
  import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
6
5
  import { join } from "path";
7
6
  import { generateNav } from "./generate.js";
8
7
  import { categorizeFiles } from "./categorize.js";
9
8
  const { readFile } = _promises;
10
9
  // TODO: Put in prebuild package
11
- export const updateConfigFile = async (contentDirectoryPath) => {
12
- const configTargetPath = join(CLIENT_PATH, "src/_props/mint.json");
13
- await fse.remove(configTargetPath);
14
- let configObj = null;
15
- const configPath = await getConfigPath(contentDirectoryPath);
16
- if (configPath) {
17
- await fse.remove(configTargetPath);
18
- await fse.copy(configPath, configTargetPath);
19
- const configContents = await readFile(configPath);
20
- configObj = JSON.parse(configContents.toString());
21
- }
22
- else {
23
- process.exit(1);
24
- }
25
- return configObj;
26
- };
27
10
  export const updateGeneratedNav = async () => {
28
11
  const generatedNav = await generateNav();
29
12
  const targetPath = join(CLIENT_PATH, "src", "_props", "generatedNav.json");
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/local-preview/listener/update.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;AAE/B,gCAAgC;AAEhC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,oBAA4B,EAAE,EAAE;IACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IACnE,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAE7D,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,YAAY,GAAG,MAAM,WAAW,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/local-preview/listener/update.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;AAE/B,gCAAgC;AAEhC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,YAAY,GAAG,MAAM,WAAW,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACtE,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import pathUtil from "path";
2
+ export const fileIsMdxOrMd = (filename) => {
3
+ try {
4
+ const extension = pathUtil.parse(filename).ext;
5
+ return extension && (extension === ".mdx" || extension === ".md");
6
+ }
7
+ catch (e) {
8
+ // TypeError when filename is not a string
9
+ return false;
10
+ }
11
+ };
12
+ //# sourceMappingURL=fileIsMdxOrMd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileIsMdxOrMd.js","sourceRoot":"","sources":["../../../../src/local-preview/listener/utils/fileIsMdxOrMd.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE;IAChD,IAAI;QACF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;QAC/C,OAAO,SAAS,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC;KACnE;IAAC,OAAO,CAAC,EAAE;QACV,0CAA0C;QAC1C,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { promises as _promises } from "fs";
2
+ import path from "path";
3
+ import { CMD_EXEC_PATH } from "../../constants.js";
4
+ import openApiCheck from "./openApiCheck.js";
5
+ import { getFileExtension } from "../../util.js";
6
+ const { readdir } = _promises;
7
+ const getFileList = async (dirName, og = dirName) => {
8
+ let files = [];
9
+ const items = await readdir(dirName, { withFileTypes: true });
10
+ for (const item of items) {
11
+ if (item.isDirectory()) {
12
+ files = [...files, ...(await getFileList(`${dirName}/${item.name}`, og))];
13
+ }
14
+ else {
15
+ const path = `${dirName}/${item.name}`;
16
+ const name = path.replace(og, "");
17
+ files.push({ path, isSymbolicLink: item.isSymbolicLink(), name });
18
+ }
19
+ }
20
+ return files;
21
+ };
22
+ const categorizeFiles = async () => {
23
+ const allFilesInCmdExecutionPath = await getFileList(CMD_EXEC_PATH);
24
+ const markdownFiles = [];
25
+ const staticFiles = [];
26
+ const promises = [];
27
+ const openApiFiles = [];
28
+ allFilesInCmdExecutionPath.forEach((file) => {
29
+ promises.push((async () => {
30
+ const extension = getFileExtension(file.name);
31
+ let isOpenApi = false;
32
+ if (extension &&
33
+ (extension === "mdx" || extension === "md" || extension === "tsx")) {
34
+ markdownFiles.push(file.name);
35
+ }
36
+ else if (extension &&
37
+ (extension === "json" || extension === "yaml" || extension === "yml")) {
38
+ const openApiInfo = await openApiCheck(path.join(CMD_EXEC_PATH, file.name));
39
+ isOpenApi = openApiInfo.isOpenApi;
40
+ if (isOpenApi) {
41
+ const fileName = path.parse(file.name).base;
42
+ openApiFiles.push({
43
+ name: fileName.substring(0, fileName.lastIndexOf(".")),
44
+ openapi: openApiInfo.openapi,
45
+ });
46
+ }
47
+ }
48
+ else if ((!file.name.endsWith("mint.config.json") ||
49
+ !file.name.endsWith("mint.json")) &&
50
+ !isOpenApi) {
51
+ // all other files
52
+ staticFiles.push(file.name);
53
+ }
54
+ })());
55
+ });
56
+ await Promise.all(promises);
57
+ const openApi = {
58
+ files: openApiFiles,
59
+ };
60
+ return { markdownFiles, staticFiles, openApi };
61
+ };
62
+ export default categorizeFiles;
63
+ //# sourceMappingURL=categorizeFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categorizeFiles.js","sourceRoot":"","sources":["../../../src/local-preview/utils/categorizeFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export const extractMethodAndEndpoint = (api) => {
2
+ const methodRegex = /(get|post|put|delete|patch)\s/i;
3
+ const trimmed = api.trim();
4
+ const foundMethod = trimmed.match(methodRegex);
5
+ const startIndexOfMethod = foundMethod ? api.indexOf(foundMethod[0]) : 0;
6
+ const endIndexOfMethod = foundMethod
7
+ ? startIndexOfMethod + foundMethod[0].length - 1
8
+ : 0;
9
+ const filename = api.substring(0, startIndexOfMethod).trim();
10
+ return {
11
+ method: foundMethod ? foundMethod[0].slice(0, -1).toUpperCase() : undefined,
12
+ endpoint: api.substring(endIndexOfMethod).trim(),
13
+ filename: filename ? filename : undefined,
14
+ };
15
+ };
16
+ export const getOpenApiOperationMethodAndEndpoint = (openApi, openApiMetaField) => {
17
+ var _a;
18
+ const { endpoint, method, filename } = extractMethodAndEndpoint(openApiMetaField);
19
+ let path;
20
+ (_a = openApi.files) === null || _a === void 0 ? void 0 : _a.forEach((file) => {
21
+ const openApiFile = file.openapi;
22
+ const openApiPath = openApiFile.paths && openApiFile.paths[endpoint];
23
+ const isFilenameOrNone = !filename || filename === file.name;
24
+ if (openApiPath && isFilenameOrNone) {
25
+ path = openApiPath;
26
+ }
27
+ });
28
+ if (path == null) {
29
+ return {};
30
+ }
31
+ let operation;
32
+ if (method) {
33
+ operation = path[method.toLowerCase()];
34
+ }
35
+ else {
36
+ const firstOperationKey = Object.keys(path)[0];
37
+ operation = path[firstOperationKey];
38
+ }
39
+ return {
40
+ operation,
41
+ method,
42
+ endpoint,
43
+ };
44
+ };
45
+ export const getOpenApiTitleAndDescription = (openApi, openApiMetaField) => {
46
+ if (openApi == null || !openApiMetaField || openApiMetaField == null) {
47
+ return {};
48
+ }
49
+ const { operation } = getOpenApiOperationMethodAndEndpoint(openApi, openApiMetaField);
50
+ if (operation == null) {
51
+ return {};
52
+ }
53
+ return {
54
+ title: operation.summary,
55
+ description: operation.description,
56
+ };
57
+ };
58
+ //# sourceMappingURL=getOpenApiContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOpenApiContext.js","sourceRoot":"","sources":["../../../src/local-preview/utils/getOpenApiContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import favicons from "favicons";
2
+ import { promises as _promises } from "fs";
3
+ import { outputFile } from "fs-extra";
4
+ import { join } from "path";
5
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
6
+ const { readFile } = _promises;
7
+ export const injectFavicons = async (configObj, logger) => {
8
+ if ((configObj === null || configObj === void 0 ? void 0 : configObj.favicon) == null)
9
+ return;
10
+ const desiredPath = join(CMD_EXEC_PATH, configObj.favicon);
11
+ const favicon = await readFile(desiredPath);
12
+ if (favicon == null)
13
+ return;
14
+ logger.start("Generating favicons...");
15
+ const promises = [];
16
+ try {
17
+ const response = await favicons(favicon, faviconConfig(configObj === null || configObj === void 0 ? void 0 : configObj.name));
18
+ response.images.forEach((img) => {
19
+ promises.push((async () => {
20
+ const targetPath = join(CLIENT_PATH, "public", "favicons", img.name);
21
+ await outputFile(targetPath, Buffer.from(img.contents), {
22
+ flag: "w",
23
+ });
24
+ })());
25
+ });
26
+ response.files.forEach((file) => {
27
+ promises.push((async () => {
28
+ const targetPath = join(CLIENT_PATH, "public", "favicons", file.name);
29
+ await outputFile(targetPath, file.contents, { flag: "w" });
30
+ })());
31
+ });
32
+ await Promise.all(promises);
33
+ logger.succeed("Favicons generated");
34
+ }
35
+ catch (err) {
36
+ console.log(err.message); // Error description e.g. "An unknown error has occurred"
37
+ }
38
+ };
39
+ const faviconConfig = (name) => ({
40
+ path: "/favicons",
41
+ appName: name,
42
+ appShortName: name,
43
+ appDescription: null,
44
+ developerName: null,
45
+ developerURL: null,
46
+ dir: "auto",
47
+ lang: "en-US",
48
+ background: "#fff",
49
+ theme_color: "#fff",
50
+ appleStatusBarStyle: "black-translucent",
51
+ display: "standalone",
52
+ orientation: "any",
53
+ scope: "/",
54
+ start_url: "/?homescreen=1",
55
+ preferRelatedApplications: false,
56
+ relatedApplications: undefined,
57
+ version: "1.0",
58
+ logging: false,
59
+ pixel_art: false,
60
+ loadManifestWithCredentials: true,
61
+ manifestMaskable: false,
62
+ icons: {
63
+ android: ["android-chrome-192x192.png", "android-chrome-256x256.png"],
64
+ appleIcon: ["apple-touch-icon.png"],
65
+ appleStartup: false,
66
+ favicons: true,
67
+ windows: ["mstile-150x150.png"],
68
+ yandex: false,
69
+ firefox: false,
70
+ },
71
+ });
72
+ //# sourceMappingURL=injectFavicons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectFavicons.js","sourceRoot":"","sources":["../../../src/local-preview/utils/injectFavicons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import chokidar from "chokidar";
2
+ import fse from "fs-extra";
3
+ import path from "path";
4
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
5
+ import { fileBelongsInPagesFolder, getFileExtension } from "../../util.js";
6
+ import { createMetadataFile } from "./metadata.js";
7
+ import openApiCheck from "./openApiCheck.js";
8
+ const listener = () => {
9
+ chokidar
10
+ .watch(CMD_EXEC_PATH, {
11
+ ignoreInitial: true,
12
+ ignored: ["node_modules", ".git"],
13
+ cwd: CMD_EXEC_PATH,
14
+ })
15
+ .on("all", async (event, filename) => {
16
+ if (event === "unlink" || event === "unlinkDir") {
17
+ if (fileBelongsInPagesFolder(filename)) {
18
+ const targetPath = path.join(CLIENT_PATH, "src", "pages", filename);
19
+ await fse.remove(targetPath);
20
+ console.log("Page deleted: ", filename);
21
+ }
22
+ else if (filename === "mint.config.json" ||
23
+ filename === "mint.json") {
24
+ const targetPath = path.join(CLIENT_PATH, "src", "mint.json");
25
+ await fse.remove(targetPath);
26
+ console.log("⚠️ mint.json deleted. Please create a new mint.json file as it is mandatory.");
27
+ process.exit(1);
28
+ }
29
+ else {
30
+ // all other files
31
+ const targetPath = path.join(CLIENT_PATH, "public", filename);
32
+ await fse.remove(targetPath);
33
+ console.log("Static file deleted: ", filename);
34
+ }
35
+ }
36
+ else {
37
+ const filePath = path.join(CMD_EXEC_PATH, filename);
38
+ let updateMetadata = false;
39
+ if (fileBelongsInPagesFolder(filename)) {
40
+ updateMetadata = true;
41
+ const targetPath = path.join(CLIENT_PATH, "src", "pages", filename);
42
+ await fse.copy(filePath, targetPath);
43
+ switch (event) {
44
+ case "add":
45
+ case "addDir":
46
+ console.log("New page detected: ", filename);
47
+ break;
48
+ default:
49
+ console.log("Page edited: ", filename);
50
+ break;
51
+ }
52
+ }
53
+ else if (filename === "mint.config.json" ||
54
+ filename === "mint.json") {
55
+ updateMetadata = true;
56
+ const targetPath = path.join(CLIENT_PATH, "src", "mint.json");
57
+ await fse.copy(filePath, targetPath);
58
+ switch (event) {
59
+ case "add":
60
+ case "addDir":
61
+ console.log("Config added");
62
+ break;
63
+ default:
64
+ console.log("Config edited");
65
+ break;
66
+ }
67
+ }
68
+ else {
69
+ const extension = getFileExtension(filename);
70
+ let isOpenApi = false;
71
+ if (extension &&
72
+ (extension === "json" ||
73
+ extension === "yaml" ||
74
+ extension === "yml")) {
75
+ const openApiInfo = await openApiCheck(path.join(CMD_EXEC_PATH, filename));
76
+ isOpenApi = openApiInfo.isOpenApi;
77
+ if (isOpenApi) {
78
+ await fse.outputFile(path.join(CLIENT_PATH, "src", "openapi.json"), JSON.stringify(openApiInfo.openapi), {
79
+ flag: "w",
80
+ });
81
+ updateMetadata = true;
82
+ }
83
+ }
84
+ if (!isOpenApi) {
85
+ // all other files
86
+ const targetPath = path.join(CLIENT_PATH, "public", filename);
87
+ await fse.copy(filePath, targetPath);
88
+ }
89
+ switch (event) {
90
+ case "add":
91
+ case "addDir":
92
+ if (isOpenApi) {
93
+ console.log("OpenApi file added: ", filename);
94
+ }
95
+ else {
96
+ console.log("Static file added: ", filename);
97
+ }
98
+ break;
99
+ default:
100
+ if (isOpenApi) {
101
+ console.log("OpenApi file edited: ", filename);
102
+ }
103
+ else {
104
+ console.log("Static file edited: ", filename);
105
+ }
106
+ break;
107
+ }
108
+ }
109
+ if (updateMetadata) {
110
+ await createMetadataFile();
111
+ }
112
+ }
113
+ });
114
+ };
115
+ export default listener;
116
+ //# sourceMappingURL=listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/local-preview/utils/listener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ // TODO - add types
2
+ import fse from "fs-extra";
3
+ import { promises as _promises } from "fs";
4
+ import matter from "gray-matter";
5
+ import path from "path";
6
+ import categorizeFiles from "./categorizeFiles.js";
7
+ import { getConfigObj } from "./mintConfigFile.js";
8
+ import { getOpenApiTitleAndDescription } from "./getOpenApiContext.js";
9
+ import { slugToTitle } from "./slugToTitle.js";
10
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
11
+ const { readFile } = _promises;
12
+ // End matter is front matter, but at the end
13
+ const getIndexOfEndMatter = (fileContents) => {
14
+ const frontMatters = fileContents.match(/---\n(title:.+\n|description:.+\n|sidebarTitle:.+\n|api:.+\n|openapi:.+\n)+---$/m);
15
+ if (frontMatters) {
16
+ return fileContents.indexOf(frontMatters[0]);
17
+ }
18
+ return -1;
19
+ };
20
+ export const potentiallyRemoveEndMatter = (fileContents) => {
21
+ const endMatterIndex = getIndexOfEndMatter(fileContents);
22
+ if (endMatterIndex === -1) {
23
+ return fileContents;
24
+ }
25
+ return fileContents.substring(0, endMatterIndex);
26
+ };
27
+ const getMetadata = (fileContents) => {
28
+ const { data } = matter(fileContents);
29
+ if (Object.keys(data).length > 0) {
30
+ return data;
31
+ }
32
+ const startIndex = getIndexOfEndMatter(fileContents);
33
+ if (startIndex === -1) {
34
+ return {};
35
+ }
36
+ const fileContentFromFrontMatter = fileContents.substring(startIndex);
37
+ const { data: nonTopFrontMatter } = matter(fileContentFromFrontMatter);
38
+ return nonTopFrontMatter;
39
+ };
40
+ export const createPage = (path, content, openApi) => {
41
+ const slug = path.replace(/\.mdx?$/, "").substring(1);
42
+ let defaultTitle = slugToTitle(slug);
43
+ const metadata = getMetadata(content);
44
+ // Append data from OpenAPI if it exists
45
+ const { title, description } = getOpenApiTitleAndDescription(openApi, metadata === null || metadata === void 0 ? void 0 : metadata.openapi);
46
+ if (title) {
47
+ defaultTitle = title;
48
+ }
49
+ return {
50
+ [slug]: Object.assign(Object.assign({ title: defaultTitle, description }, metadata), { href: `/${slug}` }),
51
+ };
52
+ };
53
+ export const createMetadataFileFromPages = (pages, configObj) => {
54
+ const targetPath = path.join(CLIENT_PATH, "src", "metadata.json");
55
+ const createNav = (nav) => {
56
+ return {
57
+ group: nav.group,
58
+ version: nav.version,
59
+ pages: nav.pages.map((page) => {
60
+ if (typeof page === "string") {
61
+ return pages[page];
62
+ }
63
+ return createNav(page);
64
+ }),
65
+ };
66
+ };
67
+ if ((configObj === null || configObj === void 0 ? void 0 : configObj.navigation) == null) {
68
+ return;
69
+ }
70
+ let navFile = configObj.navigation.map((nav) => createNav(nav));
71
+ const filterOutNullInPages = (pages) => {
72
+ const newPages = [];
73
+ pages.forEach((page) => {
74
+ if (page == null) {
75
+ return;
76
+ }
77
+ if (page === null || page === void 0 ? void 0 : page.pages) {
78
+ const newGroup = filterOutNullInGroup(page);
79
+ newPages.push(newGroup);
80
+ }
81
+ else {
82
+ newPages.push(page);
83
+ }
84
+ });
85
+ return newPages;
86
+ };
87
+ const filterOutNullInGroup = (group) => {
88
+ const newPages = filterOutNullInPages(group.pages);
89
+ const newGroup = Object.assign(Object.assign({}, group), { pages: newPages });
90
+ return newGroup;
91
+ };
92
+ const newNavFile = navFile.map((group) => {
93
+ return filterOutNullInGroup(group);
94
+ });
95
+ fse.outputFileSync(targetPath, JSON.stringify(newNavFile, null, 2), {
96
+ flag: "w",
97
+ });
98
+ };
99
+ export const createMetadataFile = async () => {
100
+ // create pages
101
+ const { markdownFiles, openApi } = await categorizeFiles();
102
+ // create config object
103
+ const configObj = await getConfigObj();
104
+ let pages = {};
105
+ const mdPromises = [];
106
+ markdownFiles.forEach((filename) => {
107
+ mdPromises.push((async () => {
108
+ const sourcePath = path.join(CMD_EXEC_PATH, filename);
109
+ const fileContent = await readFile(sourcePath);
110
+ const contentStr = fileContent.toString();
111
+ const page = createPage(filename, contentStr, openApi);
112
+ pages = Object.assign(Object.assign({}, pages), page);
113
+ })());
114
+ });
115
+ await Promise.all(mdPromises);
116
+ createMetadataFileFromPages(pages, configObj);
117
+ };
118
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/local-preview/utils/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { promises as _promises } from "fs";
2
+ import fse, { pathExists } from "fs-extra";
3
+ import path from "path";
4
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
5
+ const { readFile } = _promises;
6
+ const getConfigPath = async () => {
7
+ let configPath = null;
8
+ if (await pathExists(path.join(CMD_EXEC_PATH, "mint.config.json"))) {
9
+ configPath = path.join(CMD_EXEC_PATH, "mint.config.json");
10
+ }
11
+ if (await pathExists(path.join(CMD_EXEC_PATH, "mint.json"))) {
12
+ configPath = path.join(CMD_EXEC_PATH, "mint.json");
13
+ }
14
+ return configPath;
15
+ };
16
+ export const getConfigObj = async () => {
17
+ const configPath = await getConfigPath();
18
+ let configObj = null;
19
+ if (configPath) {
20
+ const configContents = await readFile(configPath);
21
+ configObj = JSON.parse(JSON.stringify(configContents));
22
+ }
23
+ return configObj;
24
+ };
25
+ export const updateConfigFile = async (logger) => {
26
+ const configTargetPath = path.join(CLIENT_PATH, "src", "mint.json");
27
+ await fse.remove(configTargetPath);
28
+ let configObj = null;
29
+ const configPath = await getConfigPath();
30
+ if (configPath) {
31
+ await fse.remove(configTargetPath);
32
+ await fse.copy(configPath, configTargetPath);
33
+ logger.succeed("mint config file synced");
34
+ const configContents = await readFile(configPath);
35
+ configObj = JSON.parse(configContents.toString());
36
+ }
37
+ else {
38
+ logger.fail("Must be ran in a directory where a mint.json file exists.");
39
+ process.exit(1);
40
+ }
41
+ return configObj;
42
+ };
43
+ //# sourceMappingURL=mintConfigFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintConfigFile.js","sourceRoot":"","sources":["../../../src/local-preview/utils/mintConfigFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;AAE/B,MAAM,aAAa,GAAG,KAAK,IAA4B,EAAE;IACvD,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,EAAE;QAClE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;KAC3D;IAED,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE;QAC3D,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KACpD;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAA4B,EAAE;IAC7D,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IACzC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,UAAU,EAAE;QACd,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;KACxD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAW,EAAE,EAAE;IACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IAEzC,IAAI,UAAU,EAAE;QACd,MAAM,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnD;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import SwaggerParser from "@apidevtools/swagger-parser";
2
+ const openApiCheck = async (path) => {
3
+ let openapi;
4
+ let isOpenApi = false;
5
+ try {
6
+ openapi = await SwaggerParser.validate(path);
7
+ isOpenApi = true;
8
+ }
9
+ catch (_a) {
10
+ // not valid openApi
11
+ }
12
+ return { openapi, isOpenApi };
13
+ };
14
+ export default openApiCheck;
15
+ //# sourceMappingURL=openApiCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openApiCheck.js","sourceRoot":"","sources":["../../../src/local-preview/utils/openApiCheck.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAGxD,MAAM,YAAY,GAAG,KAAK,EACxB,IAAY,EACmC,EAAE;IACjD,IAAI,OAAO,CAAC;IACZ,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI;QACF,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,SAAS,GAAG,IAAI,CAAC;KAClB;IAAC,WAAM;QACN,oBAAoB;KACrB;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const slugToTitle = (slug) => {
2
+ const slugArr = slug.split("/");
3
+ let defaultTitle = slugArr[slugArr.length - 1].split("-").join(" "); //replace all dashes
4
+ defaultTitle = defaultTitle.split("_").join(" "); //replace all underscores
5
+ defaultTitle = defaultTitle.charAt(0).toUpperCase() + defaultTitle.slice(1); //capitalize first letter
6
+ return defaultTitle;
7
+ };
8
+ //# sourceMappingURL=slugToTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugToTitle.js","sourceRoot":"","sources":["../../../src/local-preview/utils/slugToTitle.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;IACzF,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;IAC3E,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;IACtG,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export function isNavigation(navEntry) {
2
+ return typeof navEntry !== "string";
3
+ }
4
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,YAAY,CAC1B,QAAyB;IAEzB,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC;AACtC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import inquirer from "inquirer";
2
+ import { createPage } from "./util.js";
3
+ const generatePageTemplate = () => {
4
+ inquirer
5
+ .prompt([
6
+ {
7
+ type: "input",
8
+ name: "title",
9
+ message: "What is the title of the new page?",
10
+ },
11
+ {
12
+ type: "input",
13
+ name: "description",
14
+ message: "What is the description?",
15
+ default: "",
16
+ },
17
+ ])
18
+ .then((answers) => {
19
+ const { title, description } = answers;
20
+ createPage(title, description);
21
+ console.log("🌱 Created initial files for Mintlify docs");
22
+ process.exit(0);
23
+ })
24
+ .catch((error) => {
25
+ console.error(error);
26
+ process.exit(1);
27
+ });
28
+ };
29
+ export default generatePageTemplate;
30
+ //# sourceMappingURL=pageTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageTemplate.js","sourceRoot":"","sources":["../src/pageTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,QAAQ;SACL,MAAM,CAAC;QACN;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,oCAAoC;SAC9C;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,0BAA0B;YACnC,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;SACD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAEvC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mintlify",
3
- "version": "2.0.10",
3
+ "version": "2.0.12",
4
4
  "description": "The Mintlify CLI",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
@@ -20,7 +20,7 @@
20
20
  "type": "module",
21
21
  "dependencies": {
22
22
  "@apidevtools/swagger-parser": "^10.1.0",
23
- "@mintlify/validation": "^0.1.3",
23
+ "@mintlify/validation": "^0.1.4",
24
24
  "@octokit/rest": "^19.0.5",
25
25
  "axios": "^1.2.2",
26
26
  "chalk": "^5.1.0",
package/src/constants.ts CHANGED
@@ -3,7 +3,7 @@ import * as url from "url";
3
3
  import os from "os";
4
4
 
5
5
  // Change this to bump to a newer version of mint's client
6
- export const TARGET_MINT_VERSION = "v0.0.4";
6
+ export const TARGET_MINT_VERSION = "v0.0.5";
7
7
 
8
8
  // package installation location
9
9
  export const INSTALL_PATH = url.fileURLToPath(new URL(".", import.meta.url));
@@ -16,6 +16,8 @@ export const VERSION_PATH = path.join(DOT_MINTLIFY, "mint", "mint-version.txt");
16
16
 
17
17
  export const CLIENT_PATH = path.join(DOT_MINTLIFY, "mint", "client");
18
18
 
19
+ export const MINT_PATH = path.join(DOT_MINTLIFY, "mint");
20
+
19
21
  // command execution location
20
22
  export const CMD_EXEC_PATH = process.cwd();
21
23
 
package/src/index.ts CHANGED
@@ -82,6 +82,7 @@ yargs(hideBin(process.argv))
82
82
  )
83
83
 
84
84
  // Print the help menu when the user enters an invalid command.
85
+ .strictCommands()
85
86
  .demandCommand(
86
87
  1,
87
88
  "Unknown command. See above for the list of supported commands."
@@ -14,10 +14,12 @@ import {
14
14
  CMD_EXEC_PATH,
15
15
  TARGET_MINT_VERSION,
16
16
  VERSION_PATH,
17
+ MINT_PATH,
17
18
  } from "../constants.js";
18
19
  import { buildLogger, ensureYarn } from "../util.js";
19
20
  import listener from "./listener/index.js";
20
21
  import { ArgumentsCamelCase } from "yargs";
22
+ import { getConfigPath } from "./listener/utils/mintConfigFile.js";
21
23
 
22
24
  const shellExec = (cmd: string) => {
23
25
  return shell.exec(cmd, { silent: true });
@@ -49,15 +51,68 @@ const promptForYarn = async () => {
49
51
  }
50
52
  };
51
53
 
54
+ const downloadTargetMint = async (logger) => {
55
+ fse.emptyDirSync(MINT_PATH);
56
+
57
+ logger.text = "Downloading Mintlify framework...";
58
+
59
+ const octokit = new Octokit();
60
+ const downloadRes = await octokit.repos.downloadTarballArchive({
61
+ owner: "mintlify",
62
+ repo: "mint",
63
+ ref: TARGET_MINT_VERSION,
64
+ });
65
+
66
+ logger.text = "Extracting Mintlify framework...";
67
+ const TAR_PATH = path.join(MINT_PATH, "mint.tar.gz");
68
+
69
+ // Unzip tar file
70
+ fse.writeFileSync(TAR_PATH, Buffer.from(downloadRes.data as any));
71
+ shellExec("tar -xzf mint.tar.gz");
72
+
73
+ // List all files in tar file and get the first one.
74
+ // There is never anything else in the tar file, so this is safe.
75
+ // We do this because the folder name includes the commit sha, so we can't hardcode it.
76
+ // Lastly, we call .trim() to remove the newline character.
77
+ const extractedFolderName = shellExec(
78
+ 'tar -tzf mint.tar.gz | head -1 | cut -f1 -d"/"'
79
+ ).stdout.trim();
80
+
81
+ fse.removeSync(TAR_PATH);
82
+
83
+ fse.moveSync(
84
+ path.join(MINT_PATH, extractedFolderName, "client"),
85
+ path.join(CLIENT_PATH)
86
+ );
87
+
88
+ fse.writeFileSync(VERSION_PATH, TARGET_MINT_VERSION);
89
+
90
+ // Delete unnecessary contents downloaded from GitHub
91
+ fse.removeSync(path.join(MINT_PATH, extractedFolderName));
92
+
93
+ logger.text = "Installing dependencies...";
94
+
95
+ ensureYarn(logger);
96
+ shell.cd(CLIENT_PATH);
97
+ shellExec("yarn");
98
+ };
99
+
100
+ const checkForMintJson = async (logger) => {
101
+ const configPath = await getConfigPath(CMD_EXEC_PATH);
102
+ if (configPath == null) {
103
+ logger.fail("Must be ran in a directory where a mint.json file exists.");
104
+ process.exit(1);
105
+ }
106
+ return;
107
+ };
108
+
52
109
  const dev = async (argv: ArgumentsCamelCase) => {
53
110
  shell.cd(HOME_DIR);
54
111
  await promptForYarn();
55
112
  const logger = buildLogger("Preparing local Mintlify instance...");
56
- await fse.ensureDir(path.join(DOT_MINTLIFY, "mint"));
57
- const MINT_PATH = path.join(DOT_MINTLIFY, "mint");
113
+ await fse.ensureDir(MINT_PATH);
58
114
  shell.cd(MINT_PATH);
59
115
 
60
- // The CLI can only run offline if Mint was already downloaded
61
116
  const internet = await isInternetAvailable();
62
117
  if (!internet && !(await pathExists(CLIENT_PATH))) {
63
118
  logger.fail(
@@ -66,70 +121,20 @@ const dev = async (argv: ArgumentsCamelCase) => {
66
121
  process.exit(1);
67
122
  }
68
123
 
69
- // Avoid checking if we are on the target Mint if we are offline
70
124
  if (internet) {
71
125
  const mintVersionExists = await pathExists(VERSION_PATH);
72
126
 
73
- // We always download the target version of Mintlify if the mint-version.txt file doesn't exist.
74
- // We do this because users updating from an older version of the CLI never have mint-version.txt set.
75
- let downloadTargetMint = !mintVersionExists;
127
+ let needToDownloadTargetMint = !mintVersionExists;
76
128
 
77
- // Download target mint if the current version is different. Keep in mind this also allows
78
- // downgrading to an older version of Mintlify by installing an older CLI version.
79
129
  if (mintVersionExists) {
80
130
  const currVersion = fse.readFileSync(VERSION_PATH, "utf8");
81
131
  if (currVersion !== TARGET_MINT_VERSION) {
82
- downloadTargetMint = true;
132
+ needToDownloadTargetMint = true;
83
133
  }
84
134
  }
85
135
 
86
- if (downloadTargetMint) {
87
- // Delete any existing contents
88
- fse.emptyDirSync(MINT_PATH);
89
-
90
- logger.text = "Downloading Mintlify framework...";
91
-
92
- const octokit = new Octokit();
93
- const downloadRes = await octokit.repos.downloadTarballArchive({
94
- owner: "mintlify",
95
- repo: "mint",
96
- ref: TARGET_MINT_VERSION,
97
- });
98
-
99
- logger.text = "Extracting Mintlify framework...";
100
- const TAR_PATH = path.join(MINT_PATH, "mint.tar.gz");
101
-
102
- // Unzip tar file
103
- fse.writeFileSync(TAR_PATH, Buffer.from(downloadRes.data as any));
104
- shellExec("tar -xzf mint.tar.gz");
105
-
106
- // List all files in tar file and get the first one.
107
- // There is never anything else in the tar file, so this is safe.
108
- // We do this because the folder name includes the commit sha, so we can't hardcode it.
109
- // Lastly, we call .trim() to remove the newline character.
110
- const extractedFolderName = shellExec(
111
- 'tar -tzf mint.tar.gz | head -1 | cut -f1 -d"/"'
112
- ).stdout.trim();
113
-
114
- // Delete tar file
115
- fse.removeSync(TAR_PATH);
116
-
117
- fse.moveSync(
118
- path.join(MINT_PATH, extractedFolderName, "client"),
119
- path.join(CLIENT_PATH)
120
- );
121
-
122
- // Store the currently downloaded version
123
- fse.writeFileSync(VERSION_PATH, TARGET_MINT_VERSION);
124
-
125
- // Delete unnecessary contents downloaded from GitHub
126
- fse.removeSync(path.join(MINT_PATH, extractedFolderName));
127
-
128
- logger.text = "Installing dependencies...";
129
-
130
- ensureYarn(logger);
131
- shell.cd(CLIENT_PATH);
132
- shellExec("yarn");
136
+ if (needToDownloadTargetMint) {
137
+ await downloadTargetMint(logger);
133
138
  }
134
139
  }
135
140
 
@@ -149,10 +154,11 @@ const dev = async (argv: ArgumentsCamelCase) => {
149
154
  }
150
155
  process.exit(1);
151
156
  }
152
-
157
+ await checkForMintJson(logger);
158
+ shell.cd(CLIENT_PATH);
153
159
  const relativePath = path.relative(CLIENT_PATH, CMD_EXEC_PATH);
154
160
  shellExec(`yarn preconfigure ${relativePath}`);
155
- logger.succeed("Local Mintlify instance is ready. Launching your site now.");
161
+ logger.succeed("Local Mintlify instance is ready. Launching your site...");
156
162
  run((argv.port as string) || "3000");
157
163
  };
158
164
 
@@ -37,11 +37,7 @@ export const categorizeFiles = async (contentDirectoryPath: string) => {
37
37
  spec: openApiInfo.spec,
38
38
  });
39
39
  }
40
- } else if (
41
- (!filename.endsWith("mint.config.json") ||
42
- !filename.endsWith("mint.json")) &&
43
- !isOpenApi
44
- ) {
40
+ } else if (!filename.endsWith("mint.json") && !isOpenApi) {
45
41
  // all other files
46
42
  staticFilenames.push(filename);
47
43
  }
@@ -1,7 +1,6 @@
1
1
  // TODO: Add Types
2
2
  import fse from "fs-extra";
3
3
  import { promises as _promises } from "fs";
4
- import { getConfigPath } from "./utils/mintConfigFile.js";
5
4
  import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
6
5
  import { join } from "path";
7
6
  import { generateNav } from "./generate.js";
@@ -11,23 +10,6 @@ const { readFile } = _promises;
11
10
 
12
11
  // TODO: Put in prebuild package
13
12
 
14
- export const updateConfigFile = async (contentDirectoryPath: string) => {
15
- const configTargetPath = join(CLIENT_PATH, "src/_props/mint.json");
16
- await fse.remove(configTargetPath);
17
- let configObj = null;
18
- const configPath = await getConfigPath(contentDirectoryPath);
19
-
20
- if (configPath) {
21
- await fse.remove(configTargetPath);
22
- await fse.copy(configPath, configTargetPath);
23
- const configContents = await readFile(configPath);
24
- configObj = JSON.parse(configContents.toString());
25
- } else {
26
- process.exit(1);
27
- }
28
- return configObj;
29
- };
30
-
31
13
  export const updateGeneratedNav = async () => {
32
14
  const generatedNav = await generateNav();
33
15
  const targetPath = join(CLIENT_PATH, "src", "_props", "generatedNav.json");