mintlify 1.0.9 → 1.1.1

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 (202) hide show
  1. package/README.md +60 -31
  2. package/bin/index.js +6 -6
  3. package/bin/index.js.map +1 -1
  4. package/bin/local-preview/helper-commands/cleanCommand.js +8 -0
  5. package/bin/local-preview/helper-commands/cleanCommand.js.map +1 -0
  6. package/bin/local-preview/helper-commands/clearCommand.js +26 -0
  7. package/bin/local-preview/helper-commands/clearCommand.js.map +1 -0
  8. package/bin/local-preview/helper-commands/installDepsCommand.js +12 -0
  9. package/bin/local-preview/helper-commands/installDepsCommand.js.map +1 -0
  10. package/bin/local-preview/index.js +20 -34
  11. package/bin/local-preview/index.js.map +1 -1
  12. package/bin/local-preview/utils/categorizeFiles.js +56 -0
  13. package/bin/local-preview/utils/categorizeFiles.js.map +1 -0
  14. package/bin/{dev → local-preview/utils}/getOpenApiContext.js +0 -0
  15. package/bin/local-preview/utils/getOpenApiContext.js.map +1 -0
  16. package/bin/local-preview/utils/injectFavicons.js +72 -0
  17. package/bin/local-preview/utils/injectFavicons.js.map +1 -0
  18. package/bin/local-preview/utils/listener.js +112 -0
  19. package/bin/local-preview/utils/listener.js.map +1 -0
  20. package/bin/{dev/injectNav.js → local-preview/utils/metadata.js} +33 -9
  21. package/bin/local-preview/utils/metadata.js.map +1 -0
  22. package/bin/local-preview/utils/mintConfigFile.js +43 -0
  23. package/bin/local-preview/utils/mintConfigFile.js.map +1 -0
  24. package/bin/local-preview/utils/openApiCheck.js +16 -0
  25. package/bin/local-preview/utils/openApiCheck.js.map +1 -0
  26. package/bin/{dev → local-preview/utils}/slugToTitle.js +0 -0
  27. package/bin/local-preview/utils/slugToTitle.js.map +1 -0
  28. package/bin/util.js +12 -0
  29. package/bin/util.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/index.ts +8 -13
  32. package/src/local-preview/helper-commands/clearCommand.ts +26 -0
  33. package/src/local-preview/helper-commands/installDepsCommand.ts +13 -0
  34. package/src/local-preview/index.ts +20 -39
  35. package/src/local-preview/{categorizeFiles.ts → utils/categorizeFiles.ts} +2 -2
  36. package/src/local-preview/{getOpenApiContext.ts → utils/getOpenApiContext.ts} +0 -0
  37. package/src/local-preview/{injectFavicons.ts → utils/injectFavicons.ts} +1 -1
  38. package/src/local-preview/{listener.ts → utils/listener.ts} +2 -2
  39. package/src/local-preview/{metadata.ts → utils/metadata.ts} +1 -1
  40. package/src/local-preview/{mintConfigFile.ts → utils/mintConfigFile.ts} +1 -1
  41. package/src/local-preview/{openApiCheck.ts → utils/openApiCheck.ts} +0 -0
  42. package/src/local-preview/{slugToTitle.ts → utils/slugToTitle.ts} +0 -0
  43. package/src/util.ts +13 -0
  44. package/bin/dev/getOpenApiContext.js.map +0 -1
  45. package/bin/dev/index.js +0 -164
  46. package/bin/dev/index.js.map +0 -1
  47. package/bin/dev/injectNav.js.map +0 -1
  48. package/bin/dev/slugToTitle.js.map +0 -1
  49. package/bin/mint/client/.babel-plugin-macrosrc.json +0 -5
  50. package/bin/mint/client/.babelrc +0 -4
  51. package/bin/mint/client/.editorconfig +0 -12
  52. package/bin/mint/client/.eslintrc.json +0 -7
  53. package/bin/mint/client/.prettierignore +0 -4
  54. package/bin/mint/client/.prettierrc +0 -14
  55. package/bin/mint/client/.vscode/launch.json +0 -28
  56. package/bin/mint/client/README.md +0 -46
  57. package/bin/mint/client/jest.config.ts +0 -195
  58. package/bin/mint/client/next-env.d.ts +0 -4
  59. package/bin/mint/client/next.config.js +0 -152
  60. package/bin/mint/client/package.json +0 -140
  61. package/bin/mint/client/postcss.config.cjs +0 -9
  62. package/bin/mint/client/prebuild/faviconConfig.js +0 -35
  63. package/bin/mint/client/prebuild/getOpenApiContext.js +0 -53
  64. package/bin/mint/client/prebuild/index.js +0 -117
  65. package/bin/mint/client/prebuild/injectNav.js +0 -115
  66. package/bin/mint/client/prebuild/slugToTitle.js +0 -7
  67. package/bin/mint/client/rehype/withApiComponents.js +0 -60
  68. package/bin/mint/client/rehype/withCodeBlocks.js +0 -54
  69. package/bin/mint/client/rehype/withLayouts.js +0 -113
  70. package/bin/mint/client/rehype/withLinkRoles.js +0 -13
  71. package/bin/mint/client/rehype/withRawComponents.js +0 -13
  72. package/bin/mint/client/rehype/withStaticProps.js +0 -25
  73. package/bin/mint/client/rehype/withSyntaxHighlighting.js +0 -60
  74. package/bin/mint/client/remark/utils.js +0 -369
  75. package/bin/mint/client/remark/withFrames.js +0 -55
  76. package/bin/mint/client/remark/withImportsInjected.js +0 -36
  77. package/bin/mint/client/remark/withNextLinks.js +0 -37
  78. package/bin/mint/client/remark/withTableOfContents.js +0 -71
  79. package/bin/mint/client/scripts/local-to-docs.js +0 -72
  80. package/bin/mint/client/scripts/local.js +0 -177
  81. package/bin/mint/client/sentry.client.config.js +0 -15
  82. package/bin/mint/client/sentry.properties +0 -4
  83. package/bin/mint/client/sentry.server.config.js +0 -15
  84. package/bin/mint/client/src/analytics/AbstractAnalyticsImplementation.ts +0 -50
  85. package/bin/mint/client/src/analytics/AnalyticsContext.ts +0 -5
  86. package/bin/mint/client/src/analytics/AnalyticsMediator.ts +0 -101
  87. package/bin/mint/client/src/analytics/FakeAnalyticsMediator.ts +0 -9
  88. package/bin/mint/client/src/analytics/GA4Script.tsx +0 -33
  89. package/bin/mint/client/src/analytics/implementations/amplitude.ts +0 -26
  90. package/bin/mint/client/src/analytics/implementations/fathom.ts +0 -38
  91. package/bin/mint/client/src/analytics/implementations/ga4.ts +0 -33
  92. package/bin/mint/client/src/analytics/implementations/hotjar.ts +0 -53
  93. package/bin/mint/client/src/analytics/implementations/mixpanel-browser.d.ts +0 -1
  94. package/bin/mint/client/src/analytics/implementations/mixpanel.ts +0 -52
  95. package/bin/mint/client/src/analytics/implementations/posthog.ts +0 -37
  96. package/bin/mint/client/src/components/Accordion/Accordion.tsx +0 -43
  97. package/bin/mint/client/src/components/Accordion/index.ts +0 -4
  98. package/bin/mint/client/src/components/ApiExample.tsx +0 -9
  99. package/bin/mint/client/src/components/Card.tsx +0 -51
  100. package/bin/mint/client/src/components/CodeGroup.tsx +0 -132
  101. package/bin/mint/client/src/components/Editor.tsx +0 -12
  102. package/bin/mint/client/src/components/Expandable.tsx +0 -40
  103. package/bin/mint/client/src/components/Heading.tsx +0 -84
  104. package/bin/mint/client/src/components/Param.tsx +0 -56
  105. package/bin/mint/client/src/components/Request.tsx +0 -19
  106. package/bin/mint/client/src/components/ResponseField.tsx +0 -33
  107. package/bin/mint/client/src/components/TabBar.tsx +0 -61
  108. package/bin/mint/client/src/config.ts +0 -115
  109. package/bin/mint/client/src/css/bar-of-progress.css +0 -10
  110. package/bin/mint/client/src/css/base.css +0 -29
  111. package/bin/mint/client/src/css/font-awesome.css +0 -7
  112. package/bin/mint/client/src/css/fonts.css +0 -44
  113. package/bin/mint/client/src/css/main.css +0 -11
  114. package/bin/mint/client/src/css/prism.css +0 -270
  115. package/bin/mint/client/src/css/utilities.css +0 -43
  116. package/bin/mint/client/src/enums/components.ts +0 -8
  117. package/bin/mint/client/src/fonts/FiraCode-VF.woff +0 -0
  118. package/bin/mint/client/src/fonts/FiraCode-VF.woff2 +0 -0
  119. package/bin/mint/client/src/fonts/IBMPlexMono-Regular.ttf +0 -0
  120. package/bin/mint/client/src/fonts/IBMPlexMono-SemiBold.ttf +0 -0
  121. package/bin/mint/client/src/fonts/Inter-italic-latin.var.woff2 +0 -0
  122. package/bin/mint/client/src/fonts/Inter-roman-latin.var.woff2 +0 -0
  123. package/bin/mint/client/src/fonts/Pally-Variable.ttf +0 -0
  124. package/bin/mint/client/src/fonts/SourceSansPro-Regular.otf +0 -0
  125. package/bin/mint/client/src/fonts/SourceSerifPro-Regular.ttf +0 -0
  126. package/bin/mint/client/src/fonts/Synonym-Variable.ttf +0 -0
  127. package/bin/mint/client/src/fonts/Ubuntu-Mono-bold.woff2 +0 -0
  128. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular-subset.woff2 +0 -0
  129. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular-subset.zopfli.woff +0 -0
  130. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular.module.css +0 -11
  131. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold-subset.woff2 +0 -0
  132. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold-subset.zopfli.woff +0 -0
  133. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold.module.css +0 -11
  134. package/bin/mint/client/src/fonts/generated/Pally-Variable-subset.woff2 +0 -0
  135. package/bin/mint/client/src/fonts/generated/Pally-Variable-subset.zopfli.woff +0 -0
  136. package/bin/mint/client/src/fonts/generated/Pally-Variable.module.css +0 -11
  137. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular-subset.woff2 +0 -0
  138. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular-subset.zopfli.woff +0 -0
  139. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular.module.css +0 -11
  140. package/bin/mint/client/src/fonts/generated/Synonym-Variable-subset.woff2 +0 -0
  141. package/bin/mint/client/src/fonts/generated/Synonym-Variable-subset.zopfli.woff +0 -0
  142. package/bin/mint/client/src/fonts/generated/Synonym-Variable.module.css +0 -11
  143. package/bin/mint/client/src/fonts/generated/TenorSans-Regular-subset.woff2 +0 -0
  144. package/bin/mint/client/src/fonts/generated/TenorSans-Regular-subset.zopfli.woff +0 -0
  145. package/bin/mint/client/src/fonts/generated/TenorSans-Regular.module.css +0 -11
  146. package/bin/mint/client/src/hooks/useActionKey.ts +0 -20
  147. package/bin/mint/client/src/hooks/useIsomorphicLayoutEffect.ts +0 -3
  148. package/bin/mint/client/src/hooks/useMedia.ts +0 -27
  149. package/bin/mint/client/src/hooks/usePrevNext.ts +0 -34
  150. package/bin/mint/client/src/hooks/useTop.ts +0 -15
  151. package/bin/mint/client/src/icons/CopyToClipboard.tsx +0 -33
  152. package/bin/mint/client/src/index.d.ts +0 -1
  153. package/bin/mint/client/src/layouts/ApiSupplemental.tsx +0 -173
  154. package/bin/mint/client/src/layouts/ContentsLayout.tsx +0 -256
  155. package/bin/mint/client/src/layouts/DocumentationLayout.tsx +0 -44
  156. package/bin/mint/client/src/layouts/OpenApiContent.tsx +0 -301
  157. package/bin/mint/client/src/layouts/SidebarLayout.tsx +0 -412
  158. package/bin/mint/client/src/layouts/UserFeedback.tsx +0 -73
  159. package/bin/mint/client/src/layouts/getGroupsInDivision.ts +0 -25
  160. package/bin/mint/client/src/layouts/isPathInGroupPages.ts +0 -10
  161. package/bin/mint/client/src/metadata.ts +0 -58
  162. package/bin/mint/client/src/openapi.ts +0 -3
  163. package/bin/mint/client/src/pages/404.tsx +0 -73
  164. package/bin/mint/client/src/pages/_app.tsx +0 -138
  165. package/bin/mint/client/src/pages/_document.tsx +0 -57
  166. package/bin/mint/client/src/pages/api/issue.ts +0 -10
  167. package/bin/mint/client/src/pages/api/name.ts +0 -8
  168. package/bin/mint/client/src/pages/api/request.ts +0 -31
  169. package/bin/mint/client/src/pages/api/suggest.ts +0 -10
  170. package/bin/mint/client/src/pages/api/syntax-highlighted-json.ts +0 -13
  171. package/bin/mint/client/src/pages/api/utils.ts +0 -6
  172. package/bin/mint/client/src/pages/index.tsx +0 -31
  173. package/bin/mint/client/src/ui/Api.tsx +0 -359
  174. package/bin/mint/client/src/ui/Footer.tsx +0 -124
  175. package/bin/mint/client/src/ui/Header.tsx +0 -370
  176. package/bin/mint/client/src/ui/Logo.tsx +0 -55
  177. package/bin/mint/client/src/ui/PageHeader.tsx +0 -51
  178. package/bin/mint/client/src/ui/Search.tsx +0 -386
  179. package/bin/mint/client/src/ui/ThemeToggle.tsx +0 -285
  180. package/bin/mint/client/src/ui/Title.tsx +0 -22
  181. package/bin/mint/client/src/ui/TopLevelLink.tsx +0 -122
  182. package/bin/mint/client/src/utils/api.ts +0 -252
  183. package/bin/mint/client/src/utils/brands.ts +0 -217
  184. package/bin/mint/client/src/utils/castArray.ts +0 -3
  185. package/bin/mint/client/src/utils/childrenArray.ts +0 -3
  186. package/bin/mint/client/src/utils/fit.ts +0 -27
  187. package/bin/mint/client/src/utils/fontAwesome.ts +0 -577
  188. package/bin/mint/client/src/utils/getAnalyticsConfig.ts +0 -14
  189. package/bin/mint/client/src/utils/getLogoHref.ts +0 -9
  190. package/bin/mint/client/src/utils/getOpenApiContext.ts +0 -26
  191. package/bin/mint/client/src/utils/importAll.ts +0 -6
  192. package/bin/mint/client/src/utils/isObject.ts +0 -3
  193. package/bin/mint/client/src/utils/kebabToTitleCase.ts +0 -3
  194. package/bin/mint/client/src/utils/loadImage.ts +0 -8
  195. package/bin/mint/client/src/utils/slugToTitle.ts +0 -7
  196. package/bin/mint/client/src/utils/wait.ts +0 -5
  197. package/bin/mint/client/tailwind.config.cjs +0 -323
  198. package/bin/mint/client/test/test.test.ts +0 -5
  199. package/bin/mint/client/tsconfig.json +0 -36
  200. package/bin/mint/client/yarn.lock +0 -9702
  201. package/bin/templates.js +0 -41
  202. package/bin/templates.js.map +0 -1
@@ -1,10 +1,14 @@
1
1
  // TODO - add types
2
- import fs from "fs-extra";
2
+ import fse from "fs-extra";
3
+ import { promises as _promises } from "fs";
3
4
  import matter from "gray-matter";
4
5
  import path from "path";
6
+ import categorizeFiles from "./categorizeFiles.js";
7
+ import { getConfigObj } from "./mintConfigFile.js";
5
8
  import { getOpenApiTitleAndDescription } from "./getOpenApiContext.js";
6
9
  import { slugToTitle } from "./slugToTitle.js";
7
- import { CLIENT_PATH } from "../constants.js";
10
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
11
+ const { readFile } = _promises;
8
12
  // End matter is front matter, but at the end
9
13
  const getIndexOfEndMatter = (fileContents) => {
10
14
  const frontMatters = fileContents.match(/---\n(title:.+\n|description:.+\n|sidebarTitle:.+\n|api:.+\n|openapi:.+\n)+---$/m);
@@ -46,8 +50,8 @@ export const createPage = (path, content, openApiObj) => {
46
50
  [slug]: Object.assign(Object.assign({ title: defaultTitle, description }, metadata), { href: `/${slug}` }),
47
51
  };
48
52
  };
49
- export const injectNav = (pages, configObj) => {
50
- const targetPath = path.join(CLIENT_PATH, "src", "nav.json");
53
+ export const createMetadataFileFromPages = (pages, configObj) => {
54
+ const targetPath = path.join(CLIENT_PATH, "src", "metadata.json");
51
55
  const createNav = (nav) => {
52
56
  return {
53
57
  group: nav.group,
@@ -87,11 +91,31 @@ export const injectNav = (pages, configObj) => {
87
91
  const newNavFile = navFile.map((group) => {
88
92
  return filterOutNullInGroup(group);
89
93
  });
90
- console.log({ targetPath });
91
- console.log({ newNavFile });
92
- fs.outputFileSync(targetPath, JSON.stringify(newNavFile, null, 2), {
94
+ fse.outputFileSync(targetPath, JSON.stringify(newNavFile, null, 2), {
93
95
  flag: "w",
94
96
  });
95
- console.log(`⛵️ Navigation generated and injected`);
96
97
  };
97
- //# sourceMappingURL=injectNav.js.map
98
+ export const createMetadataFile = async () => {
99
+ // create pages
100
+ const { markdownFiles, openApiBuffer } = await categorizeFiles();
101
+ let openApiObj = null;
102
+ if (openApiBuffer) {
103
+ openApiObj = JSON.parse(openApiBuffer.toString());
104
+ }
105
+ // create config object
106
+ const configObj = await getConfigObj();
107
+ let pages = {};
108
+ const mdPromises = [];
109
+ markdownFiles.forEach((filename) => {
110
+ mdPromises.push((async () => {
111
+ const sourcePath = path.join(CMD_EXEC_PATH, filename);
112
+ const fileContent = await readFile(sourcePath);
113
+ const contentStr = fileContent.toString();
114
+ const page = createPage(filename, contentStr, openApiObj);
115
+ pages = Object.assign(Object.assign({}, pages), page);
116
+ })());
117
+ });
118
+ await Promise.all(mdPromises);
119
+ createMetadataFileFromPages(pages, configObj);
120
+ };
121
+ //# 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(configContents.toString());
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,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnD;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,16 @@
1
+ import SwaggerParser from "@apidevtools/swagger-parser";
2
+ const openApiCheck = async (path) => {
3
+ let buffer = undefined;
4
+ let isOpenApi = false;
5
+ try {
6
+ const api = await SwaggerParser.validate(path);
7
+ buffer = Buffer.from(JSON.stringify(api, null, 2), "utf-8");
8
+ isOpenApi = true;
9
+ }
10
+ catch (_a) {
11
+ // not valid openApi
12
+ }
13
+ return { buffer, isOpenApi };
14
+ };
15
+ export default openApiCheck;
16
+ //# 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,EACiD,EAAE;IAC/D,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,SAAS,GAAG,IAAI,CAAC;KAClB;IAAC,WAAM;QACN,oBAAoB;KACrB;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
File without changes
@@ -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"}
package/bin/util.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { mkdirSync, writeFileSync } from "fs";
2
2
  import Ora from "ora";
3
3
  import path from "path";
4
+ import shell from "shelljs";
4
5
  import { Page } from "./init-command/templates.js";
5
6
  import stopIfInvalidLink from "./validation/stopIfInvalidLink.js";
6
7
  export function getOrigin(url) {
@@ -73,4 +74,15 @@ export const fileBelongsInPagesFolder = (filename) => {
73
74
  return (extension &&
74
75
  (extension === "mdx" || extension === "md" || extension === "tsx"));
75
76
  };
77
+ export const ensureYarn = (logger) => {
78
+ const yarnInstalled = shell.which("yarn");
79
+ if (!yarnInstalled) {
80
+ logger.fail(`yarn must be installed, run
81
+
82
+ npm install --global yarn
83
+
84
+ `);
85
+ process.exit(1);
86
+ }
87
+ };
76
88
  //# sourceMappingURL=util.js.map
package/bin/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mintlify",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "description": "The Mintlify CLI",
5
5
  "engines": {
6
6
  "node": ">=14.16"
@@ -8,7 +8,7 @@
8
8
  "scripts": {
9
9
  "prepare": "tsc",
10
10
  "build": "tsc",
11
- "local": "npm uninstall -g mintlify && npm i -g ."
11
+ "local": "tsc && npm uninstall -g mintlify && npm i -g ."
12
12
  },
13
13
  "author": "Mintlify, Inc.",
14
14
  "license": "ISC",
package/src/index.ts CHANGED
@@ -19,6 +19,8 @@ import {
19
19
  import { scrapeDocusaurusSection } from "./scraping/site-scrapers/scrapeDocusaurusSection.js";
20
20
  import { scrapeReadMeSection } from "./scraping/site-scrapers/scrapeReadMeSection.js";
21
21
  import dev from "./local-preview/index.js";
22
+ import installDepsCommand from "./local-preview/helper-commands/installDepsCommand.js";
23
+ import clearCommand from "./local-preview/helper-commands/clearCommand.js";
22
24
 
23
25
  // TODO - add descriptions to the command options https://github.com/yargs/yargs/blob/HEAD/docs/api.md#commandmodule
24
26
  yargs(hideBin(process.argv))
@@ -31,21 +33,14 @@ yargs(hideBin(process.argv))
31
33
  }
32
34
  )
33
35
  .command(
34
- "init",
35
- "Generate a mintlify template",
36
+ "install",
37
+ "Install dependencies for local Mintlify",
36
38
  () => {},
37
- () => {
38
- initCommand();
39
- }
40
- )
41
- .command(
42
- "page",
43
- "Generate a new page",
44
- () => {},
45
- () => {
46
- generatePageTemplate();
47
- }
39
+ installDepsCommand
48
40
  )
41
+ .command("clear", "Clear cache", () => {}, clearCommand)
42
+ .command("init", "Generate a mintlify template", () => {}, initCommand)
43
+ .command("page", "Generate a new page", () => {}, generatePageTemplate)
49
44
  .command(
50
45
  "scrape-page [url]",
51
46
  "Scrapes a page",
@@ -0,0 +1,26 @@
1
+ import inquirer from "inquirer";
2
+ import shell from "shelljs";
3
+ import { CLIENT_PATH } from "../../constants.js";
4
+
5
+ const clearCommand = () => {
6
+ shell.cd(CLIENT_PATH);
7
+ shell.exec("git clean -d -x -e node_modules -n");
8
+ inquirer
9
+ .prompt([
10
+ {
11
+ type: "confirm",
12
+ name: "confirm",
13
+ message: "Clear the above directories?",
14
+ default: true,
15
+ },
16
+ ])
17
+ .then(({ confirm }) => {
18
+ if (confirm) {
19
+ shell.exec("git clean -d -x -e node_modules -f");
20
+ } else {
21
+ console.log("Clear cancelled.");
22
+ }
23
+ });
24
+ };
25
+
26
+ export default clearCommand;
@@ -0,0 +1,13 @@
1
+ import shell from "shelljs";
2
+ import { CLIENT_PATH } from "../../constants.js";
3
+ import { buildLogger, ensureYarn } from "../../util.js";
4
+
5
+ const installDeps = async () => {
6
+ const logger = buildLogger("");
7
+ ensureYarn(logger);
8
+ shell.cd(CLIENT_PATH);
9
+ shell.exec("yarn");
10
+ logger.succeed("Dependencies installed.");
11
+ };
12
+
13
+ export default installDeps;
@@ -5,7 +5,7 @@ import fse, { pathExists } from "fs-extra";
5
5
  import { isInternetAvailable } from "is-internet-available";
6
6
  import path from "path";
7
7
  import shell from "shelljs";
8
- import categorizeFiles from "./categorizeFiles.js";
8
+ import categorizeFiles from "./utils/categorizeFiles.js";
9
9
  import {
10
10
  CMD_EXEC_PATH,
11
11
  CLIENT_PATH,
@@ -13,32 +13,14 @@ import {
13
13
  DOT_MINTLIFY,
14
14
  LAST_INVOCATION_PATH_FILE_LOCATION,
15
15
  } from "../constants.js";
16
- import { injectFavicons } from "./injectFavicons.js";
17
- import listener from "./listener.js";
18
- import { createPage, createMetadataFileFromPages } from "./metadata.js";
19
- import { updateConfigFile } from "./mintConfigFile.js";
20
- import { buildLogger } from "../util.js";
16
+ import { injectFavicons } from "./utils/injectFavicons.js";
17
+ import listener from "./utils/listener.js";
18
+ import { createPage, createMetadataFileFromPages } from "./utils/metadata.js";
19
+ import { updateConfigFile } from "./utils/mintConfigFile.js";
20
+ import { buildLogger, ensureYarn } from "../util.js";
21
21
 
22
22
  const { readFile } = _promises;
23
23
 
24
- const saveInvocationPath = async () => {
25
- await fse.outputFile(LAST_INVOCATION_PATH_FILE_LOCATION, CMD_EXEC_PATH);
26
- };
27
-
28
- const cleanOldFiles = async () => {
29
- const lastInvocationPathExists = await pathExists(
30
- LAST_INVOCATION_PATH_FILE_LOCATION
31
- );
32
- if (!lastInvocationPathExists) return;
33
- const lastInvocationPath = (
34
- await readFile(LAST_INVOCATION_PATH_FILE_LOCATION)
35
- ).toString();
36
- if (lastInvocationPath !== CMD_EXEC_PATH) {
37
- // clean if invoked in new location
38
- shellExec("git clean -d -x -e node_modules -e last-invocation-path -f");
39
- }
40
- };
41
-
42
24
  const copyFiles = async (logger: any) => {
43
25
  logger.start("Syncing doc files...");
44
26
  shell.cd(CMD_EXEC_PATH);
@@ -101,27 +83,20 @@ const copyFiles = async (logger: any) => {
101
83
  logger.succeed("All files synced");
102
84
  };
103
85
 
104
- const gitExists = () => {
105
- let doesGitExist = true;
106
- try {
107
- shell.exec("git --version", { silent: true });
108
- } catch (e) {
109
- doesGitExist = false;
110
- }
111
- return doesGitExist;
112
- };
113
-
114
86
  const shellExec = (cmd: string) => {
115
87
  return shell.exec(cmd, { silent: true });
116
88
  };
117
89
 
90
+ const nodeModulesExists = async () => {
91
+ return pathExists(path.join(DOT_MINTLIFY, "mint", "client", "node_modules"));
92
+ };
118
93
  const dev = async () => {
119
94
  shell.cd(HOME_DIR);
120
95
  const logger = buildLogger("Starting a local Mintlify instance...");
121
96
  await fse.ensureDir(path.join(DOT_MINTLIFY, "mint"));
122
97
  shell.cd(path.join(HOME_DIR, ".mintlify", "mint"));
123
98
  let runYarn = true;
124
- const gitInstalled = gitExists();
99
+ const gitInstalled = shell.which("git");
125
100
  let firstInstallation = false;
126
101
  const gitRepoInitialized = await pathExists(
127
102
  path.join(DOT_MINTLIFY, "mint", ".git")
@@ -155,12 +130,13 @@ const dev = async () => {
155
130
  runYarn = false;
156
131
  }
157
132
  shell.cd(CLIENT_PATH);
133
+ runYarn = !(await nodeModulesExists());
158
134
  if (internet && runYarn) {
159
135
  if (firstInstallation) {
160
136
  logger.succeed("Local Mintlify instance initialized");
161
137
  }
162
138
  logger.start("Updating dependencies...");
163
-
139
+ ensureYarn(logger);
164
140
  shellExec("yarn");
165
141
  if (firstInstallation) {
166
142
  logger.succeed("Installation complete");
@@ -168,10 +144,15 @@ const dev = async () => {
168
144
  logger.succeed("Dependencies updated");
169
145
  }
170
146
  }
171
- if (!firstInstallation) {
172
- await cleanOldFiles();
147
+
148
+ if (!(await nodeModulesExists())) {
149
+ logger.fail(`Dependencies weren\'t installed, run
150
+
151
+ mintlify install
152
+
153
+ `);
154
+ process.exit(1);
173
155
  }
174
- await saveInvocationPath();
175
156
  await copyFiles(logger);
176
157
  run();
177
158
  };
@@ -1,9 +1,9 @@
1
1
  import { promises as _promises } from "fs";
2
2
  import path from "path";
3
3
 
4
- import { CMD_EXEC_PATH } from "../constants.js";
4
+ import { CMD_EXEC_PATH } from "../../constants.js";
5
5
  import openApiCheck from "./openApiCheck.js";
6
- import { getFileExtension } from "../util.js";
6
+ import { getFileExtension } from "../../util.js";
7
7
 
8
8
  const { readdir } = _promises;
9
9
 
@@ -2,7 +2,7 @@ import favicons from "favicons";
2
2
  import { promises as _promises } from "fs";
3
3
  import { outputFile } from "fs-extra";
4
4
  import { join } from "path";
5
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../constants.js";
5
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
6
6
 
7
7
  const { readFile } = _promises;
8
8
 
@@ -1,8 +1,8 @@
1
1
  import chokidar from "chokidar";
2
2
  import fse from "fs-extra";
3
3
  import path from "path";
4
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../constants.js";
5
- import { fileBelongsInPagesFolder, getFileExtension } from "../util.js";
4
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
5
+ import { fileBelongsInPagesFolder, getFileExtension } from "../../util.js";
6
6
  import { createMetadataFile } from "./metadata.js";
7
7
  import openApiCheck from "./openApiCheck.js";
8
8
 
@@ -8,7 +8,7 @@ import categorizeFiles from "./categorizeFiles.js";
8
8
  import { getConfigObj } from "./mintConfigFile.js";
9
9
  import { getOpenApiTitleAndDescription } from "./getOpenApiContext.js";
10
10
  import { slugToTitle } from "./slugToTitle.js";
11
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../constants.js";
11
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
12
12
 
13
13
  const { readFile } = _promises;
14
14
 
@@ -2,7 +2,7 @@ import { promises as _promises } from "fs";
2
2
  import fse, { pathExists } from "fs-extra";
3
3
  import path from "path";
4
4
 
5
- import { CLIENT_PATH, CMD_EXEC_PATH } from "../constants.js";
5
+ import { CLIENT_PATH, CMD_EXEC_PATH } from "../../constants.js";
6
6
 
7
7
  const { readFile } = _promises;
8
8
 
package/src/util.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { mkdirSync, writeFileSync } from "fs";
2
2
  import Ora from "ora";
3
3
  import path from "path";
4
+ import shell from "shelljs";
4
5
  import { Page } from "./init-command/templates.js";
5
6
  import stopIfInvalidLink from "./validation/stopIfInvalidLink.js";
6
7
 
@@ -92,3 +93,15 @@ export const fileBelongsInPagesFolder = (filename: string) => {
92
93
  (extension === "mdx" || extension === "md" || extension === "tsx")
93
94
  );
94
95
  };
96
+
97
+ export const ensureYarn = (logger: any) => {
98
+ const yarnInstalled = shell.which("yarn");
99
+ if (!yarnInstalled) {
100
+ logger.fail(`yarn must be installed, run
101
+
102
+ npm install --global yarn
103
+
104
+ `);
105
+ process.exit(1);
106
+ }
107
+ };
@@ -1 +0,0 @@
1
- {"version":3,"file":"getOpenApiContext.js","sourceRoot":"","sources":["../../src/dev/getOpenApiContext.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,EAAE;IAC9C,MAAM,WAAW,GAAG,6BAA6B,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,gBAAgB,GAAG,WAAW;QAClC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;QACrD,CAAC,CAAC,CAAC,CAAC;IAEN,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9D,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE;KACjD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,UAAU,EACV,gBAAgB,EAChB,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,KAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,IAAI,IAAI,IAAI,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,SAAS,CAAC;IACd,IAAI,MAAM,EAAE;QACV,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KACxC;SAAM;QACL,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACrC;IAED,OAAO;QACL,SAAS;QACT,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE;IAC5E,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,EAAE;QACvE,OAAO,EAAE,CAAC;KACX;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,oCAAoC,CACxD,UAAU,EACV,gBAAgB,CACjB,CAAC;IAEF,IAAI,SAAS,IAAI,IAAI,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IAED,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,OAAO;QACxB,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC;AACJ,CAAC,CAAC"}