doccupine 0.0.38 → 0.0.40

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.
@@ -1 +1 @@
1
- export declare const docsNavigationTemplate = "\"use client\";\nimport { useContext } from \"react\";\nimport { usePathname } from \"next/navigation\";\nimport Link from \"next/link\";\nimport styled, { css } from \"styled-components\";\nimport { Icon } from \"@/components/layout/Icon\";\nimport { mq, Theme } from \"@/app/theme\";\nimport { interactiveStyles } from \"@/components/layout/SharedStyled\";\nimport { ChatContext } from \"@/components/Chat\";\nconst StyledNavigationWrapper = styled.div<{\n $isChatOpen?: boolean;\n}>`\n transition: all 0.3s ease;\n padding: 0 20px 100px 20px;\n ${mq(\"lg\")} {\n padding: 0 340px 80px 340px;\n ${({ $isChatOpen }) =>\n $isChatOpen &&\n css`\n padding: 0 440px 80px 340px;\n `}\n }\n`;\nconst StyledNavigationInner = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n max-width: 640px;\n margin: auto;\n`;\nconst StyledNavButton = styled(Link)<{ theme: Theme }>`\n ${interactiveStyles};\n display: flex;\n flex-direction: column;\n text-decoration: none;\n padding: 20px;\n flex: 50%;\n max-width: 50%;\n border-radius: ${({ theme }) => theme.spacing.radius.lg};\n border: solid 1px ${({ theme }) => theme.colors.grayLight};\n color: ${({ theme }) => theme.colors.dark};\n &:hover {\n border-color: ${({ theme }) => theme.colors.primary};\n }\n &[data-direction=\"prev\"] {\n align-items: flex-start;\n }\n &[data-direction=\"next\"] {\n align-items: flex-end;\n margin-left: auto;\n text-align: right;\n }\n`;\nconst StyledNavLabel = styled.span<{ theme: Theme }>`\n color: ${({ theme }) => theme.colors.gray};\n display: flex;\n flex-direction: row;\n gap: 4px;\n & svg {\n margin: auto 0;\n }\n`;\nconst StyledNavTitle = styled.span<{ theme: Theme }>`\n color: ${({ theme }) => theme.colors.dark};\n font-weight: 600;\n margin: 0 0 4px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`;\nconst StyledSpacer = styled.div`\n flex: 1;\n`;\ninterface Page {\n slug: string;\n title: string;\n category?: string;\n [key: string]: any;\n}\ninterface NavigationItem {\n category?: string;\n slug?: string;\n title?: string;\n links?: Page[];\n items?: Page[];\n [key: string]: any;\n}\ninterface DocsNavigationProps {\n result: NavigationItem[];\n}\nfunction DocsNavigation({ result }: DocsNavigationProps) {\n const { isOpen } = useContext(ChatContext);\n const pathname = usePathname();\n const allPages: Page[] = result.flatMap((item) => {\n if (item.links && Array.isArray(item.links)) {\n return item.links;\n }\n if (item.items && Array.isArray(item.items)) {\n return item.items;\n }\n if (item.slug !== undefined) {\n return [item as Page];\n }\n return [];\n });\n const currentSlug = pathname.replace(/^\\//, \"\").replace(/\\/$/, \"\");\n const currentIndex = allPages.findIndex((page) => page.slug === currentSlug);\n const prevPage = currentIndex > 0 ? allPages[currentIndex - 1] : null;\n const nextPage =\n currentIndex < allPages.length - 1 ? allPages[currentIndex + 1] : null;\n if (currentIndex === -1 || allPages.length === 0) {\n return null;\n }\n if (!prevPage && !nextPage) {\n return null;\n }\n return (\n <StyledNavigationWrapper $isChatOpen={isOpen}>\n <StyledNavigationInner>\n {prevPage ? (\n <StyledNavButton href={`/${prevPage.slug}`} data-direction=\"prev\">\n <StyledNavTitle>{prevPage.title}</StyledNavTitle>\n <StyledNavLabel>\n <Icon name=\"arrow-left\" size={16} /> Previous\n </StyledNavLabel>\n </StyledNavButton>\n ) : (\n <StyledSpacer />\n )}\n {nextPage && (\n <StyledNavButton href={`/${nextPage.slug}`} data-direction=\"next\">\n <StyledNavTitle>{nextPage.title}</StyledNavTitle>\n <StyledNavLabel>\n Next <Icon name=\"arrow-right\" size={16} />\n </StyledNavLabel>\n </StyledNavButton>\n )}\n </StyledNavigationInner>\n </StyledNavigationWrapper>\n );\n}\nexport { DocsNavigation };\n";
1
+ export declare const docsNavigationTemplate = "\"use client\";\nimport { useContext } from \"react\";\nimport { usePathname } from \"next/navigation\";\nimport Link from \"next/link\";\nimport styled, { css } from \"styled-components\";\nimport { Icon } from \"@/components/layout/Icon\";\nimport { mq, Theme } from \"@/app/theme\";\nimport { interactiveStyles } from \"@/components/layout/SharedStyled\";\nimport { ChatContext } from \"@/components/Chat\";\n\nconst StyledNavigationWrapper = styled.div<{\n $isChatOpen?: boolean;\n}>`\n transition: all 0.3s ease;\n padding: 0 20px 100px 20px;\n ${mq(\"lg\")} {\n padding: 0 340px 80px 340px;\n ${({ $isChatOpen }) =>\n $isChatOpen &&\n css`\n padding: 0 440px 80px 340px;\n `}\n }\n`;\n\nconst StyledNavigationInner = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n max-width: 640px;\n margin: auto;\n`;\n\nconst StyledNavButton = styled(Link)<{ theme: Theme }>`\n ${interactiveStyles};\n display: flex;\n flex-direction: column;\n text-decoration: none;\n padding: 20px;\n flex: 50%;\n max-width: 50%;\n border-radius: ${({ theme }) => theme.spacing.radius.lg};\n border: solid 1px ${({ theme }) => theme.colors.grayLight};\n color: ${({ theme }) => theme.colors.dark};\n \n &:hover {\n border-color: ${({ theme }) => theme.colors.primary};\n }\n\n &[data-direction=\"prev\"] {\n align-items: flex-start;\n }\n\n &[data-direction=\"next\"] {\n align-items: flex-end;\n margin-left: auto;\n text-align: right;\n }\n`;\n\nconst StyledNavLabel = styled.span<{ theme: Theme }>`\n color: ${({ theme }) => theme.colors.gray};\n display: flex;\n flex-direction: row;\n gap: 4px;\n\n & svg {\n margin: auto 0;\n }\n`;\n\nconst StyledNavTitle = styled.span<{ theme: Theme }>`\n color: ${({ theme }) => theme.colors.dark};\n font-weight: 600;\n margin: 0 0 4px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 100%;\n`;\n\nconst StyledSpacer = styled.div`\n flex: 1;\n`;\n\ninterface Page {\n slug: string;\n title: string;\n category?: string;\n [key: string]: any;\n}\n\ninterface NavigationItem {\n category?: string;\n slug?: string;\n title?: string;\n links?: Page[];\n items?: Page[];\n [key: string]: any;\n}\n\ninterface DocsNavigationProps {\n result: NavigationItem[];\n}\n\nfunction DocsNavigation({ result }: DocsNavigationProps) {\n const { isOpen } = useContext(ChatContext);\n const pathname = usePathname();\n const allPages: Page[] = result.flatMap((item) => {\n if (item.links && Array.isArray(item.links)) {\n return item.links;\n }\n if (item.items && Array.isArray(item.items)) {\n return item.items;\n }\n if (item.slug !== undefined) {\n return [item as Page];\n }\n return [];\n });\n const currentSlug = pathname.replace(/^\\//, \"\").replace(/\\/$/, \"\");\n const currentIndex = allPages.findIndex((page) => page.slug === currentSlug);\n const prevPage = currentIndex > 0 ? allPages[currentIndex - 1] : null;\n const nextPage =\n currentIndex < allPages.length - 1 ? allPages[currentIndex + 1] : null;\n if (currentIndex === -1 || allPages.length === 0) {\n return null;\n }\n if (!prevPage && !nextPage) {\n return null;\n }\n return (\n <StyledNavigationWrapper $isChatOpen={isOpen}>\n <StyledNavigationInner>\n {prevPage ? (\n <StyledNavButton href={`/${prevPage.slug}`} data-direction=\"prev\">\n <StyledNavTitle>{prevPage.title}</StyledNavTitle>\n <StyledNavLabel>\n <Icon name=\"arrow-left\" size={16} /> Previous\n </StyledNavLabel>\n </StyledNavButton>\n ) : (\n <StyledSpacer />\n )}\n {nextPage && (\n <StyledNavButton href={`/${nextPage.slug}`} data-direction=\"next\">\n <StyledNavTitle>{nextPage.title}</StyledNavTitle>\n <StyledNavLabel>\n Next <Icon name=\"arrow-right\" size={16} />\n </StyledNavLabel>\n </StyledNavButton>\n )}\n </StyledNavigationInner>\n </StyledNavigationWrapper>\n );\n}\n\nexport { DocsNavigation };\n";
@@ -7,6 +7,7 @@ import { Icon } from "@/components/layout/Icon";
7
7
  import { mq, Theme } from "@/app/theme";
8
8
  import { interactiveStyles } from "@/components/layout/SharedStyled";
9
9
  import { ChatContext } from "@/components/Chat";
10
+
10
11
  const StyledNavigationWrapper = styled.div<{
11
12
  $isChatOpen?: boolean;
12
13
  }>\`
@@ -21,6 +22,7 @@ const StyledNavigationWrapper = styled.div<{
21
22
  \`}
22
23
  }
23
24
  \`;
25
+
24
26
  const StyledNavigationInner = styled.div\`
25
27
  display: flex;
26
28
  justify-content: space-between;
@@ -29,6 +31,7 @@ const StyledNavigationInner = styled.div\`
29
31
  max-width: 640px;
30
32
  margin: auto;
31
33
  \`;
34
+
32
35
  const StyledNavButton = styled(Link)<{ theme: Theme }>\`
33
36
  \${interactiveStyles};
34
37
  display: flex;
@@ -40,27 +43,33 @@ const StyledNavButton = styled(Link)<{ theme: Theme }>\`
40
43
  border-radius: \${({ theme }) => theme.spacing.radius.lg};
41
44
  border: solid 1px \${({ theme }) => theme.colors.grayLight};
42
45
  color: \${({ theme }) => theme.colors.dark};
46
+
43
47
  &:hover {
44
48
  border-color: \${({ theme }) => theme.colors.primary};
45
49
  }
50
+
46
51
  &[data-direction="prev"] {
47
52
  align-items: flex-start;
48
53
  }
54
+
49
55
  &[data-direction="next"] {
50
56
  align-items: flex-end;
51
57
  margin-left: auto;
52
58
  text-align: right;
53
59
  }
54
60
  \`;
61
+
55
62
  const StyledNavLabel = styled.span<{ theme: Theme }>\`
56
63
  color: \${({ theme }) => theme.colors.gray};
57
64
  display: flex;
58
65
  flex-direction: row;
59
66
  gap: 4px;
67
+
60
68
  & svg {
61
69
  margin: auto 0;
62
70
  }
63
71
  \`;
72
+
64
73
  const StyledNavTitle = styled.span<{ theme: Theme }>\`
65
74
  color: \${({ theme }) => theme.colors.dark};
66
75
  font-weight: 600;
@@ -68,16 +77,20 @@ const StyledNavTitle = styled.span<{ theme: Theme }>\`
68
77
  white-space: nowrap;
69
78
  text-overflow: ellipsis;
70
79
  overflow: hidden;
80
+ max-width: 100%;
71
81
  \`;
82
+
72
83
  const StyledSpacer = styled.div\`
73
84
  flex: 1;
74
85
  \`;
86
+
75
87
  interface Page {
76
88
  slug: string;
77
89
  title: string;
78
90
  category?: string;
79
91
  [key: string]: any;
80
92
  }
93
+
81
94
  interface NavigationItem {
82
95
  category?: string;
83
96
  slug?: string;
@@ -86,9 +99,11 @@ interface NavigationItem {
86
99
  items?: Page[];
87
100
  [key: string]: any;
88
101
  }
102
+
89
103
  interface DocsNavigationProps {
90
104
  result: NavigationItem[];
91
105
  }
106
+
92
107
  function DocsNavigation({ result }: DocsNavigationProps) {
93
108
  const { isOpen } = useContext(ChatContext);
94
109
  const pathname = usePathname();
@@ -140,5 +155,6 @@ function DocsNavigation({ result }: DocsNavigationProps) {
140
155
  </StyledNavigationWrapper>
141
156
  );
142
157
  }
158
+
143
159
  export { DocsNavigation };
144
160
  `;
@@ -1 +1 @@
1
- export declare const deploymentMdxTemplate = "---\ntitle: \"Deployment\"\ndescription: \"Deploy your Doccupine Next.js app to Vercel.\"\ndate: \"2025-01-15\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 9\n---\n# Deployment\nDeploy your Doccupine site as a Next.js application on Vercel. You can connect a Git repository for automatic deployments or use the Vercel CLI for manual control.\n\n<Callout type=\"warning\">\n Only deploy the generated website directory produced by Doccupine (the Next.js app). Do not deploy your MDX source folder. If your repo contains multiple folders, set the Vercel project <strong>Root Directory</strong> to the generated site folder.\n</Callout>\n\n## Prerequisites\n- **Vercel account**: https://vercel.com/signup\n- **Git repository**: GitHub, GitLab, or Bitbucket with your Next.js app\n- **Node.js**: Use an LTS version\n\n## Option 1: Deploy via Git (recommended)\n1. **Push the generated site folder** to a Git repository (or ensure the repo\u2019s root is the generated website directory).\n2. **Import to Vercel**: Go to https://vercel.com/new and select your repository.\n3. If your repo is a monorepo, set the project **Root Directory** to the generated website folder (Project \u2192 Settings \u2192 General \u2192 Root Directory).\n4. **Framework preset**: Vercel auto-detects Next.js.\n5. **Build settings** (defaults are fine):\n - Install Command: `pnpm i`, `yarn`, or `npm i` (Vercel auto-detects)\n - Build Command: `next build`\n - Output: handled automatically by Vercel for Next.js\n6. **Environment Variables**: Add any values required by your docs (see below).\n7. **Deploy**: Vercel creates a Preview deployment per branch. Merge to your main branch to promote to Production.\n\n## Option 2: Deploy with Vercel CLI\n1. Install the CLI:\n ```bash\n npm i -g vercel\n ```\n2. From the generated website directory, run:\n ```bash\n vercel\n ```\n Follow the prompts to link or create a project.\n3. When ready for production:\n ```bash\n vercel --prod\n ```\n\n## Environment variables\nIf your documentation or site behavior depends on environment variables, define them in Vercel:\n- In the Vercel dashboard: Project \u2192 Settings \u2192 Environment Variables.\n- Or via CLI:\n ```bash\n vercel env add NAME\n ```\n\nFor Next.js, make sure variables needed on the client are prefixed with `NEXT_PUBLIC_`.\n\n## Next.js configuration notes\n- Ensure a valid `next.config.js` if you customize images, basePath, or MDX handling.\n- If you use MDX, include the necessary plugins/config in your project.\n- Vercel automatically enables Image Optimization and Edge/CDN features for Next.js.\n\n## Custom domains\n- Add a domain in Vercel: Project \u2192 Settings \u2192 Domains.\n- Point DNS to Vercel as instructed. Changes can take a few minutes to propagate.\n\n## Troubleshooting\n- **Build failed**: Check the Vercel build logs. Confirm Node version and lockfile are present.\n- **Missing content**: Ensure your MDX directory and any assets are included in the repository.\n- **Env not applied**: Add variables for the correct environment (Preview vs Production) and redeploy.\n- **Images not loading**: Configure `images.domains` in `next.config.js` if using remote images.\n\n## Tips\n- **Preview first**: Use Preview deployments to validate docs before merging to Production.\n- **Cache and performance**: Leverage ISR or static generation where applicable for faster loads.\n- **Consistent tooling**: Keep a single package manager and lockfile in the repo (npm, pnpm, or yarn).";
1
+ export declare const deploymentMdxTemplate = "---\ntitle: \"Deployment\"\ndescription: \"Deploy your documentation site with Doccupine or self-host on Vercel.\"\ndate: \"2025-01-15\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 9\n---\n# Deployment\n\n## Deploy with Doccupine\n\nSign up for an account at [Doccupine](https://www.doccupine.com) and create your docs instantly \u2014 no build configuration, no infrastructure to manage.\n\nDoccupine gives you:\n- **Automatic deployments** on every push to your repository\n- **Site customization** through a visual dashboard \u2014 no code changes needed\n- **Team collaboration** so your whole team can manage docs together\n- **Custom domains** with automatic SSL\n- **AI Assistant and MCP server** included out of the box, no API key required\n\nGet started at [doccupine.com](https://www.doccupine.com).\n\n---\n\n## Self-hosting on Vercel\n\nIf you prefer to self-host, Doccupine generates a standard Next.js app that can be deployed to Vercel.\n\n<Callout type=\"warning\">\n Deploy the generated website directory (the Next.js app), not your MDX source folder. In a monorepo, set the Vercel <strong>Root Directory</strong> to the generated site folder.\n</Callout>\n\n### Quick start\n1. Push the generated site folder to GitHub, GitLab, or Bitbucket.\n2. Import the repository at [vercel.com/new](https://vercel.com/new). Vercel auto-detects Next.js and applies the correct build settings.\n3. Add any required environment variables under Project \u2192 Settings \u2192 Environment Variables.\n4. Deploy. Vercel creates Preview deployments per branch and promotes to Production on merge to main.\n\nYou can also deploy from the command line with the [Vercel CLI](https://vercel.com/docs/cli):\n\n```bash\nnpm i -g vercel\n```\n\n### Custom domains\nAdd a domain under Project \u2192 Settings \u2192 Domains and point your DNS to Vercel.\n\n### Troubleshooting\n- **Build failed** \u2014 Check build logs. Ensure your lockfile and correct Node.js version are present.\n- **Missing content** \u2014 Verify your MDX files and assets are in the repository.";
@@ -1,76 +1,51 @@
1
1
  export const deploymentMdxTemplate = `---
2
2
  title: "Deployment"
3
- description: "Deploy your Doccupine Next.js app to Vercel."
3
+ description: "Deploy your documentation site with Doccupine or self-host on Vercel."
4
4
  date: "2025-01-15"
5
5
  category: "Configuration"
6
6
  categoryOrder: 3
7
7
  order: 9
8
8
  ---
9
9
  # Deployment
10
- Deploy your Doccupine site as a Next.js application on Vercel. You can connect a Git repository for automatic deployments or use the Vercel CLI for manual control.
11
10
 
12
- <Callout type="warning">
13
- Only deploy the generated website directory produced by Doccupine (the Next.js app). Do not deploy your MDX source folder. If your repo contains multiple folders, set the Vercel project <strong>Root Directory</strong> to the generated site folder.
14
- </Callout>
11
+ ## Deploy with Doccupine
12
+
13
+ Sign up for an account at [Doccupine](https://www.doccupine.com) and create your docs instantly — no build configuration, no infrastructure to manage.
14
+
15
+ Doccupine gives you:
16
+ - **Automatic deployments** on every push to your repository
17
+ - **Site customization** through a visual dashboard — no code changes needed
18
+ - **Team collaboration** so your whole team can manage docs together
19
+ - **Custom domains** with automatic SSL
20
+ - **AI Assistant and MCP server** included out of the box, no API key required
15
21
 
16
- ## Prerequisites
17
- - **Vercel account**: https://vercel.com/signup
18
- - **Git repository**: GitHub, GitLab, or Bitbucket with your Next.js app
19
- - **Node.js**: Use an LTS version
22
+ Get started at [doccupine.com](https://www.doccupine.com).
20
23
 
21
- ## Option 1: Deploy via Git (recommended)
22
- 1. **Push the generated site folder** to a Git repository (or ensure the repo’s root is the generated website directory).
23
- 2. **Import to Vercel**: Go to https://vercel.com/new and select your repository.
24
- 3. If your repo is a monorepo, set the project **Root Directory** to the generated website folder (Project → Settings → General → Root Directory).
25
- 4. **Framework preset**: Vercel auto-detects Next.js.
26
- 5. **Build settings** (defaults are fine):
27
- - Install Command: \`pnpm i\`, \`yarn\`, or \`npm i\` (Vercel auto-detects)
28
- - Build Command: \`next build\`
29
- - Output: handled automatically by Vercel for Next.js
30
- 6. **Environment Variables**: Add any values required by your docs (see below).
31
- 7. **Deploy**: Vercel creates a Preview deployment per branch. Merge to your main branch to promote to Production.
24
+ ---
25
+
26
+ ## Self-hosting on Vercel
32
27
 
33
- ## Option 2: Deploy with Vercel CLI
34
- 1. Install the CLI:
35
- \`\`\`bash
36
- npm i -g vercel
37
- \`\`\`
38
- 2. From the generated website directory, run:
39
- \`\`\`bash
40
- vercel
41
- \`\`\`
42
- Follow the prompts to link or create a project.
43
- 3. When ready for production:
44
- \`\`\`bash
45
- vercel --prod
46
- \`\`\`
28
+ If you prefer to self-host, Doccupine generates a standard Next.js app that can be deployed to Vercel.
47
29
 
48
- ## Environment variables
49
- If your documentation or site behavior depends on environment variables, define them in Vercel:
50
- - In the Vercel dashboard: Project → Settings → Environment Variables.
51
- - Or via CLI:
52
- \`\`\`bash
53
- vercel env add NAME
54
- \`\`\`
30
+ <Callout type="warning">
31
+ Deploy the generated website directory (the Next.js app), not your MDX source folder. In a monorepo, set the Vercel <strong>Root Directory</strong> to the generated site folder.
32
+ </Callout>
55
33
 
56
- For Next.js, make sure variables needed on the client are prefixed with \`NEXT_PUBLIC_\`.
34
+ ### Quick start
35
+ 1. Push the generated site folder to GitHub, GitLab, or Bitbucket.
36
+ 2. Import the repository at [vercel.com/new](https://vercel.com/new). Vercel auto-detects Next.js and applies the correct build settings.
37
+ 3. Add any required environment variables under Project → Settings → Environment Variables.
38
+ 4. Deploy. Vercel creates Preview deployments per branch and promotes to Production on merge to main.
57
39
 
58
- ## Next.js configuration notes
59
- - Ensure a valid \`next.config.js\` if you customize images, basePath, or MDX handling.
60
- - If you use MDX, include the necessary plugins/config in your project.
61
- - Vercel automatically enables Image Optimization and Edge/CDN features for Next.js.
40
+ You can also deploy from the command line with the [Vercel CLI](https://vercel.com/docs/cli):
62
41
 
63
- ## Custom domains
64
- - Add a domain in Vercel: Project → Settings → Domains.
65
- - Point DNS to Vercel as instructed. Changes can take a few minutes to propagate.
42
+ \`\`\`bash
43
+ npm i -g vercel
44
+ \`\`\`
66
45
 
67
- ## Troubleshooting
68
- - **Build failed**: Check the Vercel build logs. Confirm Node version and lockfile are present.
69
- - **Missing content**: Ensure your MDX directory and any assets are included in the repository.
70
- - **Env not applied**: Add variables for the correct environment (Preview vs Production) and redeploy.
71
- - **Images not loading**: Configure \`images.domains\` in \`next.config.js\` if using remote images.
46
+ ### Custom domains
47
+ Add a domain under Project Settings Domains and point your DNS to Vercel.
72
48
 
73
- ## Tips
74
- - **Preview first**: Use Preview deployments to validate docs before merging to Production.
75
- - **Cache and performance**: Leverage ISR or static generation where applicable for faster loads.
76
- - **Consistent tooling**: Keep a single package manager and lockfile in the repo (npm, pnpm, or yarn).`;
49
+ ### Troubleshooting
50
+ - **Build failed** Check build logs. Ensure your lockfile and correct Node.js version are present.
51
+ - **Missing content** Verify your MDX files and assets are in the repository.`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doccupine",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "description": "Document management system that allows you to store, organize, and share your documentation with ease. AI-ready.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {