mintlify 1.1.12 → 1.3.0

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 (192) hide show
  1. package/bin/index.js +0 -2
  2. package/bin/index.js.map +1 -1
  3. package/bin/scraping/site-scrapers/scrapeDocusaurusPage.js +1 -1
  4. package/bin/scraping/site-scrapers/scrapeDocusaurusPage.js.map +1 -1
  5. package/bin/scraping/site-scrapers/scrapeGitBookPage.js +1 -1
  6. package/bin/scraping/site-scrapers/scrapeGitBookPage.js.map +1 -1
  7. package/bin/scraping/site-scrapers/scrapeReadMePage.js +1 -1
  8. package/bin/scraping/site-scrapers/scrapeReadMePage.js.map +1 -1
  9. package/bin/util.js +40 -1
  10. package/bin/util.js.map +1 -1
  11. package/package.json +2 -2
  12. package/src/index.ts +0 -2
  13. package/src/scraping/site-scrapers/scrapeDocusaurusPage.ts +1 -1
  14. package/src/scraping/site-scrapers/scrapeGitBookPage.ts +1 -1
  15. package/src/scraping/site-scrapers/scrapeReadMePage.ts +1 -1
  16. package/src/util.ts +54 -1
  17. package/bin/local-preview/categorizeFiles.js +0 -56
  18. package/bin/local-preview/categorizeFiles.js.map +0 -1
  19. package/bin/local-preview/getOpenApiContext.js +0 -46
  20. package/bin/local-preview/getOpenApiContext.js.map +0 -1
  21. package/bin/local-preview/helper-commands/clearCommand.js +0 -27
  22. package/bin/local-preview/helper-commands/clearCommand.js.map +0 -1
  23. package/bin/local-preview/injectFavicons.js +0 -72
  24. package/bin/local-preview/injectFavicons.js.map +0 -1
  25. package/bin/local-preview/injectNav.js +0 -94
  26. package/bin/local-preview/injectNav.js.map +0 -1
  27. package/bin/local-preview/listener.js +0 -112
  28. package/bin/local-preview/listener.js.map +0 -1
  29. package/bin/local-preview/metadata.js +0 -121
  30. package/bin/local-preview/metadata.js.map +0 -1
  31. package/bin/local-preview/mintConfigFile.js +0 -43
  32. package/bin/local-preview/mintConfigFile.js.map +0 -1
  33. package/bin/local-preview/openApiCheck.js +0 -16
  34. package/bin/local-preview/openApiCheck.js.map +0 -1
  35. package/bin/local-preview/slugToTitle.js +0 -8
  36. package/bin/local-preview/slugToTitle.js.map +0 -1
  37. package/bin/mint/client/.babel-plugin-macrosrc.json +0 -5
  38. package/bin/mint/client/.babelrc +0 -4
  39. package/bin/mint/client/.editorconfig +0 -12
  40. package/bin/mint/client/.eslintrc.json +0 -7
  41. package/bin/mint/client/.prettierignore +0 -4
  42. package/bin/mint/client/.prettierrc +0 -14
  43. package/bin/mint/client/.vscode/launch.json +0 -28
  44. package/bin/mint/client/README.md +0 -44
  45. package/bin/mint/client/jest.config.ts +0 -195
  46. package/bin/mint/client/next-env.d.ts +0 -4
  47. package/bin/mint/client/next.config.js +0 -152
  48. package/bin/mint/client/package.json +0 -139
  49. package/bin/mint/client/postcss.config.cjs +0 -9
  50. package/bin/mint/client/prebuild/faviconConfig.js +0 -35
  51. package/bin/mint/client/prebuild/getOpenApiContext.js +0 -53
  52. package/bin/mint/client/prebuild/index.js +0 -117
  53. package/bin/mint/client/prebuild/injectNav.js +0 -115
  54. package/bin/mint/client/prebuild/slugToTitle.js +0 -7
  55. package/bin/mint/client/rehype/withApiComponents.js +0 -60
  56. package/bin/mint/client/rehype/withCodeBlocks.js +0 -54
  57. package/bin/mint/client/rehype/withLayouts.js +0 -113
  58. package/bin/mint/client/rehype/withLinkRoles.js +0 -13
  59. package/bin/mint/client/rehype/withRawComponents.js +0 -13
  60. package/bin/mint/client/rehype/withStaticProps.js +0 -25
  61. package/bin/mint/client/rehype/withSyntaxHighlighting.js +0 -60
  62. package/bin/mint/client/remark/utils.js +0 -369
  63. package/bin/mint/client/remark/withFrames.js +0 -55
  64. package/bin/mint/client/remark/withImportsInjected.js +0 -36
  65. package/bin/mint/client/remark/withNextLinks.js +0 -37
  66. package/bin/mint/client/remark/withTableOfContents.js +0 -71
  67. package/bin/mint/client/scripts/local.js +0 -177
  68. package/bin/mint/client/sentry.client.config.js +0 -15
  69. package/bin/mint/client/sentry.properties +0 -4
  70. package/bin/mint/client/sentry.server.config.js +0 -15
  71. package/bin/mint/client/src/analytics/AbstractAnalyticsImplementation.ts +0 -50
  72. package/bin/mint/client/src/analytics/AnalyticsContext.ts +0 -5
  73. package/bin/mint/client/src/analytics/AnalyticsMediator.ts +0 -101
  74. package/bin/mint/client/src/analytics/FakeAnalyticsMediator.ts +0 -9
  75. package/bin/mint/client/src/analytics/GA4Script.tsx +0 -33
  76. package/bin/mint/client/src/analytics/implementations/amplitude.ts +0 -26
  77. package/bin/mint/client/src/analytics/implementations/fathom.ts +0 -38
  78. package/bin/mint/client/src/analytics/implementations/ga4.ts +0 -33
  79. package/bin/mint/client/src/analytics/implementations/hotjar.ts +0 -53
  80. package/bin/mint/client/src/analytics/implementations/mixpanel-browser.d.ts +0 -1
  81. package/bin/mint/client/src/analytics/implementations/mixpanel.ts +0 -52
  82. package/bin/mint/client/src/analytics/implementations/posthog.ts +0 -37
  83. package/bin/mint/client/src/components/Accordion/Accordion.tsx +0 -43
  84. package/bin/mint/client/src/components/Accordion/index.ts +0 -4
  85. package/bin/mint/client/src/components/ApiExample.tsx +0 -9
  86. package/bin/mint/client/src/components/Card.tsx +0 -51
  87. package/bin/mint/client/src/components/CodeGroup.tsx +0 -132
  88. package/bin/mint/client/src/components/Editor.tsx +0 -12
  89. package/bin/mint/client/src/components/Expandable.tsx +0 -40
  90. package/bin/mint/client/src/components/Heading.tsx +0 -84
  91. package/bin/mint/client/src/components/Param.tsx +0 -56
  92. package/bin/mint/client/src/components/Request.tsx +0 -19
  93. package/bin/mint/client/src/components/ResponseField.tsx +0 -33
  94. package/bin/mint/client/src/components/TabBar.tsx +0 -61
  95. package/bin/mint/client/src/config.ts +0 -115
  96. package/bin/mint/client/src/css/bar-of-progress.css +0 -10
  97. package/bin/mint/client/src/css/base.css +0 -29
  98. package/bin/mint/client/src/css/font-awesome.css +0 -7
  99. package/bin/mint/client/src/css/fonts.css +0 -44
  100. package/bin/mint/client/src/css/main.css +0 -11
  101. package/bin/mint/client/src/css/prism.css +0 -270
  102. package/bin/mint/client/src/css/utilities.css +0 -43
  103. package/bin/mint/client/src/enums/components.ts +0 -8
  104. package/bin/mint/client/src/fonts/FiraCode-VF.woff +0 -0
  105. package/bin/mint/client/src/fonts/FiraCode-VF.woff2 +0 -0
  106. package/bin/mint/client/src/fonts/IBMPlexMono-Regular.ttf +0 -0
  107. package/bin/mint/client/src/fonts/IBMPlexMono-SemiBold.ttf +0 -0
  108. package/bin/mint/client/src/fonts/Inter-italic-latin.var.woff2 +0 -0
  109. package/bin/mint/client/src/fonts/Inter-roman-latin.var.woff2 +0 -0
  110. package/bin/mint/client/src/fonts/Pally-Variable.ttf +0 -0
  111. package/bin/mint/client/src/fonts/SourceSansPro-Regular.otf +0 -0
  112. package/bin/mint/client/src/fonts/SourceSerifPro-Regular.ttf +0 -0
  113. package/bin/mint/client/src/fonts/Synonym-Variable.ttf +0 -0
  114. package/bin/mint/client/src/fonts/Ubuntu-Mono-bold.woff2 +0 -0
  115. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular-subset.woff2 +0 -0
  116. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular-subset.zopfli.woff +0 -0
  117. package/bin/mint/client/src/fonts/generated/IBMPlexMono-Regular.module.css +0 -11
  118. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold-subset.woff2 +0 -0
  119. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold-subset.zopfli.woff +0 -0
  120. package/bin/mint/client/src/fonts/generated/IBMPlexMono-SemiBold.module.css +0 -11
  121. package/bin/mint/client/src/fonts/generated/Pally-Variable-subset.woff2 +0 -0
  122. package/bin/mint/client/src/fonts/generated/Pally-Variable-subset.zopfli.woff +0 -0
  123. package/bin/mint/client/src/fonts/generated/Pally-Variable.module.css +0 -11
  124. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular-subset.woff2 +0 -0
  125. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular-subset.zopfli.woff +0 -0
  126. package/bin/mint/client/src/fonts/generated/SourceSerifPro-Regular.module.css +0 -11
  127. package/bin/mint/client/src/fonts/generated/Synonym-Variable-subset.woff2 +0 -0
  128. package/bin/mint/client/src/fonts/generated/Synonym-Variable-subset.zopfli.woff +0 -0
  129. package/bin/mint/client/src/fonts/generated/Synonym-Variable.module.css +0 -11
  130. package/bin/mint/client/src/fonts/generated/TenorSans-Regular-subset.woff2 +0 -0
  131. package/bin/mint/client/src/fonts/generated/TenorSans-Regular-subset.zopfli.woff +0 -0
  132. package/bin/mint/client/src/fonts/generated/TenorSans-Regular.module.css +0 -11
  133. package/bin/mint/client/src/hooks/useActionKey.ts +0 -20
  134. package/bin/mint/client/src/hooks/useIsomorphicLayoutEffect.ts +0 -3
  135. package/bin/mint/client/src/hooks/useMedia.ts +0 -27
  136. package/bin/mint/client/src/hooks/usePrevNext.ts +0 -34
  137. package/bin/mint/client/src/hooks/useTop.ts +0 -15
  138. package/bin/mint/client/src/icons/CopyToClipboard.tsx +0 -33
  139. package/bin/mint/client/src/index.d.ts +0 -1
  140. package/bin/mint/client/src/layouts/ApiSupplemental.tsx +0 -173
  141. package/bin/mint/client/src/layouts/ContentsLayout.tsx +0 -256
  142. package/bin/mint/client/src/layouts/DocumentationLayout.tsx +0 -44
  143. package/bin/mint/client/src/layouts/OpenApiContent.tsx +0 -301
  144. package/bin/mint/client/src/layouts/SidebarLayout.tsx +0 -412
  145. package/bin/mint/client/src/layouts/UserFeedback.tsx +0 -73
  146. package/bin/mint/client/src/layouts/getGroupsInDivision.ts +0 -25
  147. package/bin/mint/client/src/layouts/isPathInGroupPages.ts +0 -10
  148. package/bin/mint/client/src/metadata.ts +0 -58
  149. package/bin/mint/client/src/nav.json +0 -219
  150. package/bin/mint/client/src/openapi.ts +0 -3
  151. package/bin/mint/client/src/pages/404.tsx +0 -73
  152. package/bin/mint/client/src/pages/_app.tsx +0 -138
  153. package/bin/mint/client/src/pages/_document.tsx +0 -57
  154. package/bin/mint/client/src/pages/api/issue.ts +0 -10
  155. package/bin/mint/client/src/pages/api/name.ts +0 -8
  156. package/bin/mint/client/src/pages/api/request.ts +0 -31
  157. package/bin/mint/client/src/pages/api/suggest.ts +0 -10
  158. package/bin/mint/client/src/pages/api/syntax-highlighted-json.ts +0 -13
  159. package/bin/mint/client/src/pages/api/utils.ts +0 -6
  160. package/bin/mint/client/src/pages/index.tsx +0 -31
  161. package/bin/mint/client/src/ui/Api.tsx +0 -359
  162. package/bin/mint/client/src/ui/Footer.tsx +0 -124
  163. package/bin/mint/client/src/ui/Header.tsx +0 -370
  164. package/bin/mint/client/src/ui/Logo.tsx +0 -55
  165. package/bin/mint/client/src/ui/PageHeader.tsx +0 -51
  166. package/bin/mint/client/src/ui/Search.tsx +0 -386
  167. package/bin/mint/client/src/ui/ThemeToggle.tsx +0 -285
  168. package/bin/mint/client/src/ui/Title.tsx +0 -22
  169. package/bin/mint/client/src/ui/TopLevelLink.tsx +0 -122
  170. package/bin/mint/client/src/utils/api.ts +0 -252
  171. package/bin/mint/client/src/utils/brands.ts +0 -217
  172. package/bin/mint/client/src/utils/castArray.ts +0 -3
  173. package/bin/mint/client/src/utils/childrenArray.ts +0 -3
  174. package/bin/mint/client/src/utils/fit.ts +0 -27
  175. package/bin/mint/client/src/utils/fontAwesome.ts +0 -577
  176. package/bin/mint/client/src/utils/getAnalyticsConfig.ts +0 -14
  177. package/bin/mint/client/src/utils/getLogoHref.ts +0 -9
  178. package/bin/mint/client/src/utils/getOpenApiContext.ts +0 -26
  179. package/bin/mint/client/src/utils/importAll.ts +0 -6
  180. package/bin/mint/client/src/utils/isObject.ts +0 -3
  181. package/bin/mint/client/src/utils/kebabToTitleCase.ts +0 -3
  182. package/bin/mint/client/src/utils/loadImage.ts +0 -8
  183. package/bin/mint/client/src/utils/slugToTitle.ts +0 -7
  184. package/bin/mint/client/src/utils/wait.ts +0 -5
  185. package/bin/mint/client/tailwind.config.cjs +0 -323
  186. package/bin/mint/client/test/test.test.ts +0 -5
  187. package/bin/mint/client/tsconfig.json +0 -36
  188. package/bin/mint/client/yarn.lock +0 -9702
  189. package/bin/scraping/site-scrapers/getLinksRecursively.js +0 -38
  190. package/bin/scraping/site-scrapers/getLinksRecursively.js.map +0 -1
  191. package/src/init-command/index.ts +0 -59
  192. package/src/init-command/templates.ts +0 -52
@@ -1,4 +0,0 @@
1
- /// <reference types="next" />
2
-
3
- // NOTE: This file should not be edited
4
- // see https://nextjs.org/docs/basic-features/typescript for more information.
@@ -1,152 +0,0 @@
1
- import { withSentryConfig } from '@sentry/nextjs';
2
- import withLinkRoles from './rehype/withLinkRoles.js';
3
- import { createLoader } from 'simple-functional-loader';
4
- import frontMatter from 'front-matter';
5
- import withSmartypants from 'remark-smartypants';
6
- import withTableOfContents from './remark/withTableOfContents.js';
7
- import withCodeBlocks from './rehype/withCodeBlocks.js';
8
- import withNextLinks from './remark/withNextLinks.js';
9
- import withFrames from './remark/withFrames.js';
10
- import withImportsInjected from './remark/withImportsInjected.js';
11
- import BundleAnalyzer from '@next/bundle-analyzer';
12
- import remarkGfm from 'remark-gfm';
13
- import withStaticProps from './rehype/withStaticProps.js';
14
- import withApiComponents from './rehype/withApiComponents.js';
15
- import withRawComponents from './rehype/withRawComponents.js';
16
- import mintConfig from './src/mint.json' assert { type: 'json' };
17
- import withSyntaxHighlighting from './rehype/withSyntaxHighlighting.js';
18
- import withLayouts from './rehype/withLayouts.js';
19
- import { potentiallyRemoveEndMatter } from './prebuild/injectNav.js';
20
-
21
- const withBundleAnalyzer = BundleAnalyzer({
22
- enabled: process.env.ANALYZE === 'true',
23
- });
24
-
25
- const sentryWebpackPluginOptions = {
26
- // Suppresses all logs
27
- silent: true,
28
-
29
- // Disable sentry builds when we don't have a sentry auth token.
30
- // Sites have to be manually added to our Sentry tracking so by default
31
- // new customers' sites will not have an auth token set.
32
- dryRun: process.env.VERCEL_ENV !== 'production' || !process.env.SENTRY_AUTH_TOKEN,
33
- };
34
-
35
- export default withSentryConfig(
36
- withBundleAnalyzer({
37
- swcMinify: true,
38
- pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx', 'md'],
39
- images: {
40
- disableStaticImages: true,
41
- },
42
- basePath: mintConfig?.basePath,
43
- webpack(config, options) {
44
- config.module.rules.push({
45
- test: /\.(png|jpe?g|gif|webp|avif|mp4)$/i,
46
- issuer: /\.(jsx?|tsx?|mdx?)$/,
47
- use: [
48
- {
49
- loader: 'file-loader',
50
- options: {
51
- publicPath: '/_next',
52
- name: 'static/media/[name].[hash].[ext]',
53
- },
54
- },
55
- ],
56
- });
57
-
58
- config.module.rules.push({
59
- test: /\.svg$/,
60
- use: [
61
- {
62
- loader: '@svgr/webpack',
63
- options: { svgoConfig: { plugins: { removeViewBox: false } } },
64
- },
65
- {
66
- loader: 'file-loader',
67
- options: {
68
- publicPath: '/_next',
69
- name: 'static/media/[name].[hash].[ext]',
70
- },
71
- },
72
- ],
73
- });
74
-
75
- config.module.rules.push({
76
- test: { and: [/\.mdx$/, /snippets/] },
77
- use: [
78
- options.defaultLoaders.babel,
79
- {
80
- loader: '@mdx-js/loader',
81
- options: {
82
- providerImportSource: '@mdx-js/react',
83
- remarkPlugins: [
84
- remarkGfm,
85
- withImportsInjected,
86
- withFrames,
87
- withNextLinks,
88
- withSmartypants,
89
- ],
90
- rehypePlugins: [
91
- [
92
- withSyntaxHighlighting,
93
- {
94
- ignoreMissing: true,
95
- },
96
- ],
97
- withCodeBlocks,
98
- withLinkRoles,
99
- ],
100
- },
101
- },
102
- ],
103
- });
104
-
105
- config.module.rules.push({
106
- test: { and: [/\.mdx?$/], not: [/snippets/] },
107
- use: [
108
- options.defaultLoaders.babel,
109
- {
110
- loader: '@mdx-js/loader',
111
- options: {
112
- providerImportSource: '@mdx-js/react',
113
- remarkPlugins: [
114
- remarkGfm,
115
- withImportsInjected,
116
- withFrames,
117
- withTableOfContents,
118
- withNextLinks,
119
- withSmartypants,
120
- ],
121
- rehypePlugins: [
122
- [
123
- withSyntaxHighlighting,
124
- {
125
- ignoreMissing: true,
126
- },
127
- ],
128
- withCodeBlocks,
129
- withLinkRoles,
130
- withApiComponents,
131
- withRawComponents,
132
- [
133
- withStaticProps,
134
- `{
135
- isMdx: true
136
- }`,
137
- ],
138
- withLayouts
139
- ],
140
- },
141
- },
142
- createLoader(function (source) {
143
- const { body } = frontMatter(source);
144
- return potentiallyRemoveEndMatter(body);
145
- }),
146
- ],
147
- });
148
- return config;
149
- },
150
- }),
151
- sentryWebpackPluginOptions
152
- );
@@ -1,139 +0,0 @@
1
- {
2
- "private": true,
3
- "type": "module",
4
- "scripts": {
5
- "prebuild": "node prebuild index.ts",
6
- "local": "node scripts/local",
7
- "dev": "next dev",
8
- "build": "next build",
9
- "start": "next start",
10
- "export": "next build && next export",
11
- "format": "prettier '{src,remark,scripts}/**/*.{css,js,mdx}' --write",
12
- "test": "jest"
13
- },
14
- "browserslist": [
15
- "> 1%"
16
- ],
17
- "dependencies": {
18
- "@amplitude/analytics-browser": "^1.2.0",
19
- "@babel/plugin-transform-react-jsx": "^7.14.9",
20
- "@babel/preset-env": "^7.1.6",
21
- "@badrap/bar-of-progress": "^0.1.1",
22
- "@fortawesome/fontawesome-svg-core": "^6.1.2",
23
- "@fortawesome/free-brands-svg-icons": "^6.1.2",
24
- "@fortawesome/pro-duotone-svg-icons": "^6.1.2",
25
- "@fortawesome/pro-light-svg-icons": "^6.1.2",
26
- "@fortawesome/pro-regular-svg-icons": "^6.1.2",
27
- "@fortawesome/pro-solid-svg-icons": "^6.1.2",
28
- "@fortawesome/pro-thin-svg-icons": "^6.1.2",
29
- "@fortawesome/react-fontawesome": "^0.2.0",
30
- "@headlessui/react": "^1.6.6",
31
- "@heroicons/react": "^1.0.6",
32
- "@juggle/resize-observer": "^3.2.0",
33
- "@mdx-js/loader": "^2.1.3",
34
- "@mdx-js/react": "^2.1.3",
35
- "@mintlify/components": "^0.1.23",
36
- "@next/bundle-analyzer": "^12.3.1",
37
- "@next/mdx": "^12.3.0",
38
- "@sentry/nextjs": "^7.9.0",
39
- "@sindresorhus/slugify": "^1.1.0",
40
- "@svgr/webpack": "^6.3.1",
41
- "@tailwindcss/aspect-ratio": "^0.4.2",
42
- "@tailwindcss/line-clamp": "^0.3.1",
43
- "@tailwindcss/typography": "^0.5.0",
44
- "acorn": "8.8.0",
45
- "algoliasearch": "^4.14.0",
46
- "autoprefixer": "^10.4.0",
47
- "axios": "^0.27.2",
48
- "babel-plugin-macros": "^3.1.0",
49
- "brotli-size": "^4.0.0",
50
- "clean-css": "^4.2.3",
51
- "clsx": "^1.1.1",
52
- "deasync": "^0.1.20",
53
- "debounce": "^1.2.0",
54
- "dlv": "^1.1.3",
55
- "exec-sh": "^0.3.4",
56
- "fathom-client": "^3.5.0",
57
- "feed": "^4.2.2",
58
- "file-loader": "^6.0.0",
59
- "focus-visible": "^5.1.0",
60
- "front-matter": "^4.0.2",
61
- "fs-extra": "^10.1.0",
62
- "github-url-to-object": "^4.0.6",
63
- "glob": "^7.1.6",
64
- "gsap": "^3.6.0",
65
- "gzip-size": "^5.1.1",
66
- "hast-util-from-html": "^1.0.0",
67
- "hast-util-to-html": "^8.0.3",
68
- "html-react-parser": "^3.0.4",
69
- "intersection-observer": "^0.11.0",
70
- "is-absolute-url": "^4.0.1",
71
- "just-group-by": "^1.0.0",
72
- "mdast-util-from-markdown": "^1.2.0",
73
- "mdast-util-mdx-jsx": "^2.1.0",
74
- "mdast-util-mdxjs-esm": "^1.3.0",
75
- "micromark-extension-mdx-jsx": "^1.0.3",
76
- "mini-svg-data-uri": "^1.4.3",
77
- "minimatch": "^3.0.4",
78
- "mixpanel-browser": "^2.45.0",
79
- "next": "^12.2.5",
80
- "openapi-types": "^12.0.0",
81
- "postcss": "^8.4.5",
82
- "postcss-focus-visible": "^5.0.0",
83
- "postcss-import": "^14.0.1",
84
- "posthog-js": "^1.29.3",
85
- "prismjs": "^1.27.0",
86
- "react": "^18.2.0",
87
- "react-dom": "^18.2.0",
88
- "react-hotjar": "^5.1.0",
89
- "react-hotkeys-hook": "^3.4.7",
90
- "react-intersection-observer": "^8.29.0",
91
- "react-use-rect": "^2.0.4",
92
- "redent": "^3.0.0",
93
- "remark-gfm": "^3.0.1",
94
- "remark-smartypants": "^2.0.0",
95
- "seedrandom": "^3.0.5",
96
- "simple-functional-loader": "^1.2.1",
97
- "stringify-object": "^3.3.0",
98
- "tailwindcss": "^3.1.6",
99
- "tinytime": "^0.2.6",
100
- "webpack": "^5.74.0",
101
- "zustand": "^4.0.0-rc.0"
102
- },
103
- "devDependencies": {
104
- "@apidevtools/swagger-parser": "^10.1.0",
105
- "@babel/core": "^7.0.0-0",
106
- "@babel/plugin-syntax-flow": "^7.14.5",
107
- "@next/eslint-plugin-next": "^12.3.0",
108
- "@trivago/prettier-plugin-sort-imports": "^3.3.0",
109
- "@types/github-url-to-object": "^4.0.1",
110
- "@types/glob": "^7.2.0",
111
- "@types/jest": "^29.1.2",
112
- "@types/mdx-js__react": "^1.5.5",
113
- "@types/node": "^18.0.5",
114
- "@types/prismjs": "^1.26.0",
115
- "@types/react": "18.0.1",
116
- "@types/react-dom": "^18.0.6",
117
- "@types/seedrandom": "^3.0.2",
118
- "@typescript-eslint/eslint-plugin": "^5.35.1",
119
- "@typescript-eslint/parser": "^5.35.1",
120
- "babel-eslint": "10.x",
121
- "eslint": "^8.22.0",
122
- "eslint-config-react-app": "^7.0.1",
123
- "eslint-plugin-flowtype": "4.x",
124
- "eslint-plugin-import": "2.x",
125
- "eslint-plugin-jsx-a11y": "6.x",
126
- "eslint-plugin-react": "7.x",
127
- "eslint-plugin-react-hooks": "^4.6.0",
128
- "favicons": "7.0.0-beta.4",
129
- "gray-matter": "^4.0.3",
130
- "hast-util-to-string": "^2.0.0",
131
- "jest": "^29.1.2",
132
- "prettier": "^2.5.0",
133
- "refractor": "^4.8.0",
134
- "ts-node": "^10.9.1",
135
- "typescript": "^4.7.4",
136
- "unist-util-filter": "^4.0.0",
137
- "unist-util-visit": "^2.0.3"
138
- }
139
- }
@@ -1,9 +0,0 @@
1
- module.exports = {
2
- plugins: [
3
- 'postcss-import',
4
- 'tailwindcss/nesting',
5
- 'tailwindcss',
6
- 'postcss-focus-visible',
7
- 'autoprefixer',
8
- ],
9
- }
@@ -1,35 +0,0 @@
1
- const faviconConfig = (name) => ({
2
- path: '/favicons', // Path for overriding default icons path. `string`
3
- appName: name, // Your application's name. `string`
4
- appShortName: name, // Your application's short_name. `string`. Optional. If not set, appName will be used
5
- appDescription: null, // Your application's description. `string`
6
- developerName: null, // Your (or your developer's) name. `string`
7
- developerURL: null, // Your (or your developer's) URL. `string`
8
- dir: 'auto', // Primary text direction for name, short_name, and description
9
- lang: 'en-US', // Primary language for name and short_name
10
- background: '#fff', // Background colour for flattened icons. `string`
11
- theme_color: '#fff', // Theme color user for example in Android's task switcher. `string`
12
- appleStatusBarStyle: 'black-translucent', // Style for Apple status bar: "black-translucent", "default", "black". `string`
13
- display: 'standalone', // Preferred display mode: "fullscreen", "standalone", "minimal-ui" or "browser". `string`
14
- orientation: 'any', // Default orientation: "any", "natural", "portrait" or "landscape". `string`
15
- scope: '/', // set of URLs that the browser considers within your app
16
- start_url: '/?homescreen=1', // Start URL when launching the application from a device. `string`
17
- preferRelatedApplications: false, // Should the browser prompt the user to install the native companion app. `boolean`
18
- relatedApplications: undefined, // Information about the native companion apps. This will only be used if `preferRelatedApplications` is `true`. `Array<{ id: string, url: string, platform: string }>`
19
- version: '1.0', // Your application's version string. `string`
20
- logging: false, // Print logs to console? `boolean`
21
- pixel_art: false, // Keeps pixels "sharp" when scaling up, for pixel art. Only supported in offline mode.
22
- loadManifestWithCredentials: true, // Browsers don't send cookies when fetching a manifest, enable this to fix that. `boolean`
23
- manifestMaskable: false, // Maskable source image(s) for manifest.json. "true" to use default source. More information at https://web.dev/maskable-icon/. `boolean`, `string`, `buffer` or array of `string`
24
- icons: {
25
- android: ['android-chrome-192x192.png', 'android-chrome-256x256.png'],
26
- appleIcon: ['apple-touch-icon.png'],
27
- appleStartup: false,
28
- favicons: true,
29
- windows: ['mstile-150x150.png'],
30
- yandex: false,
31
- firefox: false,
32
- },
33
- });
34
-
35
- export default faviconConfig;
@@ -1,53 +0,0 @@
1
- export const extractMethodAndEndpoint = (api) => {
2
- const methodRegex = /^get|post|put|delete|patch/i;
3
- const trimmed = api.trim();
4
- const foundMethod = trimmed.match(methodRegex);
5
-
6
- const endIndexOfMethod = foundMethod ? api.indexOf(foundMethod[0]) + foundMethod[0].length : 0;
7
-
8
- return {
9
- method: foundMethod ? foundMethod[0].toUpperCase() : undefined,
10
- endpoint: api.substring(endIndexOfMethod).trim(),
11
- };
12
- };
13
-
14
- export const getOpenApiOperationMethodAndEndpoint = (openApiObj, openApiMetaField) => {
15
- const { endpoint, method } = extractMethodAndEndpoint(openApiMetaField);
16
-
17
- const path = openApiObj?.paths && openApiObj.paths[endpoint];
18
-
19
- if (path == null) {
20
- return {};
21
- }
22
-
23
- let operation;
24
- if (method) {
25
- operation = path[method.toLowerCase()];
26
- } else {
27
- const firstOperationKey = Object.keys(path)[0];
28
- operation = path[firstOperationKey];
29
- }
30
-
31
- return {
32
- operation,
33
- method,
34
- endpoint,
35
- };
36
- };
37
-
38
- export const getOpenApiTitleAndDescription = (openApiObj, openApiMetaField) => {
39
- if (openApiObj == null || !openApiMetaField || openApiMetaField == null) {
40
- return {};
41
- }
42
-
43
- const { operation } = getOpenApiOperationMethodAndEndpoint(openApiObj, openApiMetaField);
44
-
45
- if (operation == null) {
46
- return {};
47
- }
48
-
49
- return {
50
- title: operation.summary,
51
- description: operation.description,
52
- };
53
- };
@@ -1,117 +0,0 @@
1
- import axios from 'axios';
2
- import favicons from 'favicons';
3
- import fs from 'fs-extra';
4
- import { dirname } from 'path';
5
- import { resolve } from 'path';
6
- import { fileURLToPath } from 'url';
7
-
8
- import faviconConfig from './faviconConfig.js';
9
- import { createPage, injectNav } from './injectNav.js';
10
-
11
- const API_ENDPOINT = 'https://docs.mintlify.com';
12
-
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = dirname(__filename);
15
-
16
- const injectMarkdownFilesAndNav = (markdownFiles, openApiObj, configObj) => {
17
- let pages = {};
18
- markdownFiles.forEach((markdownFile) => {
19
- const path = __dirname + `/../src/pages/${markdownFile.path}`;
20
- const page = createPage(markdownFile.path, markdownFile.content, openApiObj);
21
- if (page != null) {
22
- pages = {
23
- ...pages,
24
- ...page,
25
- };
26
- }
27
-
28
- fs.outputFileSync(path, Buffer.from(markdownFile.content), { flag: 'w' });
29
- });
30
-
31
- console.log(`📄 ${markdownFiles.length} pages injected`);
32
-
33
- injectNav(pages, configObj);
34
- };
35
-
36
- const injectStaticFiles = (staticFiles) => {
37
- staticFiles.forEach((staticFile) => {
38
- const path = __dirname + `/../public/${staticFile.path}`;
39
- fs.outputFileSync(path, Buffer.from(staticFile.content), { flag: 'w' });
40
- });
41
-
42
- console.log(`📄 ${staticFiles.length} static files injected`);
43
- };
44
-
45
- const injectConfig = (config) => {
46
- const path = __dirname + `/../src/mint.json`;
47
- const buffer = Buffer.from(config);
48
- fs.outputFileSync(path, buffer, { flag: 'w' });
49
- console.log('⚙️ Config file set properly as mint.json');
50
- return JSON.parse(buffer.toString());
51
- };
52
-
53
- const injectFavicons = async (config) => {
54
- const buffer = Buffer.from(config);
55
- const configJSON = JSON.parse(buffer.toString());
56
-
57
- if (configJSON?.favicon == null) return;
58
-
59
- const desiredPath = resolve(__dirname + `/../public/${configJSON.favicon}`);
60
- const favicon = fs.readFileSync(desiredPath);
61
- if (favicon == null) return;
62
- console.log('Generating favicons...');
63
- favicons(favicon, faviconConfig(config?.name), (err, response) => {
64
- if (err) {
65
- console.log(err.message); // Error description e.g. "An unknown error has occurred"
66
- return;
67
- }
68
- response.images.forEach((img) => {
69
- const path = __dirname + `/../public/favicons/${img.name}`;
70
- fs.outputFileSync(path, Buffer.from(img.contents), { flag: 'w' });
71
- });
72
- response.files.forEach((file) => {
73
- const path = __dirname + `/../public/favicons/${file.name}`;
74
- fs.outputFileSync(path, file.contents, { flag: 'w' });
75
- });
76
- console.log('Favicons generated');
77
- });
78
- };
79
-
80
- const injectOpenApi = async (openApi) => {
81
- const path = __dirname + `/../src/openapi.json`;
82
- if (openApi) {
83
- const buffer = Buffer.from(openApi);
84
- fs.outputFileSync(path, buffer, { flag: 'w' });
85
- console.log('🖥️ OpenAPI file detected and set as openapi.json');
86
- return JSON.parse(buffer.toString());
87
- }
88
-
89
- fs.outputFileSync(path, '{}', { flag: 'w' });
90
- };
91
-
92
- const getAllFilesAndConfig = async () => {
93
- const ref = process.env.GIT_REF;
94
- const {
95
- data: { markdownFiles, staticFiles, config, openApi },
96
- } = await axios.get(`${API_ENDPOINT}/api/v1/sites/files`, {
97
- headers: { Authorization: `Bearer ${process.env.INTERNAL_SITE_BEARER_TOKEN}` },
98
- params: {
99
- ref,
100
- },
101
- });
102
- const openApiObj = await injectOpenApi(openApi);
103
- const configObj = await injectConfig(config);
104
- injectMarkdownFilesAndNav(markdownFiles, openApiObj, configObj);
105
- injectStaticFiles(staticFiles);
106
- injectFavicons(config);
107
- };
108
-
109
- (async function () {
110
- try {
111
- console.log('🔍 Fetching files');
112
- await getAllFilesAndConfig();
113
- } catch (error) {
114
- console.log(error);
115
- console.error('⚠️ Error while prebuilding documents');
116
- }
117
- })();
@@ -1,115 +0,0 @@
1
- import fs from 'fs-extra';
2
- import matter from 'gray-matter';
3
- import { dirname } from 'path';
4
- import { fileURLToPath } from 'url';
5
-
6
- import { getOpenApiTitleAndDescription } from './getOpenApiContext.js';
7
- import { slugToTitle } from './slugToTitle.js';
8
-
9
- const __filename = fileURLToPath(import.meta.url);
10
- const __dirname = dirname(__filename);
11
-
12
- // End matter is front matter, but at the end
13
- const getIndexOfEndMatter = (fileContents) => {
14
- const frontMatters = fileContents.match(
15
- /---\n(title:.+\n|description:.+\n|sidebarTitle:.+\n|api:.+\n|openapi:.+\n)+---$/m
16
- );
17
- if (frontMatters) {
18
- return fileContents.indexOf(frontMatters[0]);
19
- }
20
-
21
- return -1;
22
- };
23
-
24
- export const potentiallyRemoveEndMatter = (fileContents) => {
25
- const endMatterIndex = getIndexOfEndMatter(fileContents);
26
-
27
- if (endMatterIndex === -1) {
28
- return fileContents;
29
- }
30
-
31
- return fileContents.substring(0, endMatterIndex);
32
- };
33
-
34
- const getMetadata = (fileContents) => {
35
- const { data } = matter(fileContents);
36
-
37
- if (Object.keys(data).length > 0) {
38
- return data;
39
- }
40
-
41
- const startIndex = getIndexOfEndMatter(fileContents);
42
- if (startIndex === -1) {
43
- return {};
44
- }
45
-
46
- const fileContentFromFrontMatter = fileContents.substring(startIndex);
47
- const { data: nonTopFrontMatter } = matter(fileContentFromFrontMatter);
48
- return nonTopFrontMatter;
49
- };
50
-
51
- export const createPage = (path, content, openApiObj) => {
52
- const slug = path.replace(/\.mdx?$/, '');
53
- let defaultTitle = slugToTitle(slug);
54
- const fileContents = Buffer.from(content).toString();
55
- const metadata = getMetadata(fileContents);
56
- // Append data from OpenAPI if it exists
57
- const { title, description } = getOpenApiTitleAndDescription(openApiObj, metadata?.openapi);
58
- if (title) {
59
- defaultTitle = title;
60
- }
61
- return {
62
- [slug]: { title: defaultTitle, description, ...metadata, href: `/${slug}` },
63
- };
64
- };
65
-
66
- export const injectNav = (pages, configObj) => {
67
- const path = __dirname + `/../src/metadata.json`;
68
- const createNav = (nav) => {
69
- return {
70
- group: nav.group,
71
- pages: nav.pages.map((page) => {
72
- if (typeof page === 'string') {
73
- return pages[page];
74
- }
75
-
76
- return createNav(page);
77
- }),
78
- };
79
- };
80
-
81
- if (configObj?.navigation == null) {
82
- return;
83
- }
84
-
85
- let navFile = configObj.navigation.map((nav) => createNav(nav));
86
- const filterOutNullInPages = (pages) => {
87
- const newPages = [];
88
- pages.forEach((page) => {
89
- if (page == null) {
90
- return;
91
- }
92
- if (page?.pages) {
93
- const newGroup = filterOutNullInGroup(page);
94
- newPages.push(newGroup);
95
- } else {
96
- newPages.push(page);
97
- }
98
- });
99
-
100
- return newPages;
101
- };
102
- const filterOutNullInGroup = (group) => {
103
- const newPages = filterOutNullInPages(group.pages);
104
- const newGroup = {
105
- ...group,
106
- pages: newPages,
107
- };
108
- return newGroup;
109
- };
110
- const newNavFile = navFile.map((group) => {
111
- return filterOutNullInGroup(group);
112
- });
113
- fs.outputFileSync(path, JSON.stringify(newNavFile, null, 2), { flag: 'w' });
114
- console.log(`⛵️ Navigation generated and injected`);
115
- };
@@ -1,7 +0,0 @@
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
- };