zudoku 0.0.0-e2f3304 → 0.0.0-e4b82fa
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.
- package/README.md +121 -0
- package/dist/app/main.js +5 -7
- package/dist/app/main.js.map +1 -1
- package/dist/cli/dev/handler.js +2 -2
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +19 -4
- package/dist/config/validators/InputSidebarSchema.js +7 -28
- package/dist/config/validators/InputSidebarSchema.js.map +1 -1
- package/dist/config/validators/SidebarSchema.js +5 -6
- package/dist/config/validators/SidebarSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +55 -29
- package/dist/config/validators/validate.js +10 -2
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/lib/authentication/hook.d.ts +1 -1
- package/dist/lib/authentication/hook.js +1 -1
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/state.d.ts +16 -0
- package/dist/lib/authentication/state.js +5 -0
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/components/Banner.js +7 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +1 -2
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +2 -1
- package/dist/lib/components/InlineCode.js +9 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/Layout.js +1 -1
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +5 -1
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/Search.js +1 -1
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/SlotletProvider.d.ts +9 -2
- package/dist/lib/components/SlotletProvider.js +4 -2
- package/dist/lib/components/SlotletProvider.js.map +1 -1
- package/dist/lib/components/TopNavigation.d.ts +3 -0
- package/dist/lib/components/TopNavigation.js +9 -1
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +2 -0
- package/dist/lib/components/index.d.ts +3 -1
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/Sidebar.js +1 -1
- package/dist/lib/components/navigation/Sidebar.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +18 -7
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.js +12 -5
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/core/DevPortalContext.d.ts +2 -1
- package/dist/lib/core/DevPortalContext.js.map +1 -1
- package/dist/lib/oas/graphql/index.d.ts +2 -1
- package/dist/lib/oas/graphql/index.js +23 -15
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +1 -0
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/CustomPage.d.ts +2 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js +11 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js.map +1 -0
- package/dist/lib/plugins/custom-pages/index.d.ts +10 -0
- package/dist/lib/plugins/custom-pages/index.js +11 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.js +2 -2
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -3
- package/dist/lib/plugins/openapi/Endpoint.js +46 -8
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +2 -2
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +2 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +2 -2
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/Route.d.ts +1 -1
- package/dist/lib/plugins/openapi/Route.js +1 -1
- package/dist/lib/plugins/openapi/Route.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +15 -4
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.d.ts +2 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.js +1 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.js +1 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +10 -2
- package/dist/lib/plugins/openapi/graphql/gql.js +2 -1
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +26 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js +87 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +1 -1
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +2 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +14 -5
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +1 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js +3 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
- package/dist/lib/ui/Callout.d.ts +36 -35
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Drawer.d.ts +8 -10
- package/dist/lib/ui/Drawer.js.map +1 -1
- package/dist/lib/util/useExposedProps.d.ts +2 -0
- package/dist/lib/util/useExposedProps.js +8 -0
- package/dist/lib/util/useExposedProps.js.map +1 -0
- package/dist/vite/config.js +14 -12
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/dev-server.d.ts +6 -1
- package/dist/vite/dev-server.js +13 -3
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/plugin-api.js +4 -7
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-component.js +0 -1
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-custom-pages.d.ts +4 -0
- package/dist/vite/plugin-custom-pages.js +30 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-frontmatter.d.ts +2 -0
- package/dist/vite/plugin-frontmatter.js +30 -0
- package/dist/vite/plugin-frontmatter.js.map +1 -0
- package/dist/vite/plugin-mdx.js +17 -0
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +3 -0
- package/dist/vite/plugin-search.js +26 -0
- package/dist/vite/plugin-search.js.map +1 -0
- package/dist/vite/plugin-sidebar.js +14 -1
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin.js +6 -2
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{AuthenticationPlugin-Bx9FK124.js → AuthenticationPlugin-D1nhROkO.js} +3 -3
- package/lib/{AuthenticationPlugin-Bx9FK124.js.map → AuthenticationPlugin-D1nhROkO.js.map} +1 -1
- package/lib/{CategoryHeading-XnFqN2lJ.js → CategoryHeading-B7TlPvuN.js} +2 -2
- package/lib/{CategoryHeading-XnFqN2lJ.js.map → CategoryHeading-B7TlPvuN.js.map} +1 -1
- package/lib/{DeveloperHint-FBb2uXJe.js → DeveloperHint-B_QCCafl.js} +2 -2
- package/lib/{DeveloperHint-FBb2uXJe.js.map → DeveloperHint-B_QCCafl.js.map} +1 -1
- package/lib/ErrorPage-DqqAV1dr.js +16 -0
- package/lib/ErrorPage-DqqAV1dr.js.map +1 -0
- package/lib/Input-DrR6P3mq.js +2229 -0
- package/lib/Input-DrR6P3mq.js.map +1 -0
- package/lib/{Markdown-B4aR03g6.js → Markdown-Y__eLG0x.js} +1448 -1286
- package/lib/Markdown-Y__eLG0x.js.map +1 -0
- package/lib/{MdxPage-BZyQsH8Z.js → MdxPage-B4FcPIi5.js} +25 -25
- package/lib/MdxPage-B4FcPIi5.js.map +1 -0
- package/lib/{OperationList-CCPePX04.js → OperationList-C2jKCTwZ.js} +149 -108
- package/lib/OperationList-C2jKCTwZ.js.map +1 -0
- package/lib/{Route-BAHaMyCu.js → Route-DWXcQzRK.js} +3 -4
- package/lib/Route-DWXcQzRK.js.map +1 -0
- package/lib/SidebarBadge-C0iWtji9.js +503 -0
- package/lib/SidebarBadge-C0iWtji9.js.map +1 -0
- package/lib/{SlotletProvider-DJMaOUDs.js → SlotletProvider-DmqWiVFt.js} +43 -42
- package/lib/{SlotletProvider-DJMaOUDs.js.map → SlotletProvider-DmqWiVFt.js.map} +1 -1
- package/lib/ZudokuContext-MRoel6bS.js +1173 -0
- package/lib/ZudokuContext-MRoel6bS.js.map +1 -0
- package/lib/assets/{index-B9EWVYfo.js → index-B_Jk_Yzp.js} +968 -938
- package/lib/assets/index-B_Jk_Yzp.js.map +1 -0
- package/lib/assets/{worker-TYRbYl6N.js → worker-Bf8vjASY.js} +6768 -4410
- package/lib/assets/worker-Bf8vjASY.js.map +1 -0
- package/lib/{index-CTNlSS40.js → index-Ch8VO_uX.js} +598 -545
- package/lib/index-Ch8VO_uX.js.map +1 -0
- package/lib/{index-CLd8ycZz.js → index-CkwDvuPt.js} +947 -917
- package/lib/index-CkwDvuPt.js.map +1 -0
- package/lib/index-D06ATMgg.js +2094 -0
- package/lib/index-D06ATMgg.js.map +1 -0
- package/lib/{index-BG0g4WW0.js → index-DFN92YJN.js} +748 -737
- package/lib/index-DFN92YJN.js.map +1 -0
- package/lib/index-DJqnphbT.js +35 -0
- package/lib/index-DJqnphbT.js.map +1 -0
- package/lib/{index-BOyE1gXD.js → index-Dso_b0di.js} +1970 -1690
- package/lib/index-Dso_b0di.js.map +1 -0
- package/lib/{index-WPT1ueCM.js → index-bYAqbdYl.js} +3 -3
- package/lib/{index-WPT1ueCM.js.map → index-bYAqbdYl.js.map} +1 -1
- package/lib/router-BsfSoK2j.js +3024 -0
- package/lib/router-BsfSoK2j.js.map +1 -0
- package/lib/state-CsuHT8ZO.js +183 -0
- package/lib/state-CsuHT8ZO.js.map +1 -0
- package/lib/urql-core-KJnLL26g.js +1455 -0
- package/lib/urql-core-KJnLL26g.js.map +1 -0
- package/lib/useExposedProps-BWwxa-Hg.js +9 -0
- package/lib/useExposedProps-BWwxa-Hg.js.map +1 -0
- package/lib/{utils-ByIc_KIM.js → utils-C8S3st2k.js} +4 -4
- package/lib/utils-C8S3st2k.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +363 -350
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +1768 -1687
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.openapi-worker.js +4671 -4383
- package/lib/zudoku.openapi-worker.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +7 -7
- package/lib/zudoku.plugin-custom-pages.js +21 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -8
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/package.json +71 -69
- package/src/app/main.css +0 -1
- package/src/app/main.tsx +5 -7
- package/src/lib/authentication/hook.ts +1 -1
- package/src/lib/authentication/state.ts +17 -0
- package/src/lib/components/Banner.tsx +12 -2
- package/src/lib/components/ErrorPage.tsx +0 -2
- package/src/lib/components/Header.tsx +4 -2
- package/src/lib/components/InlineCode.tsx +10 -0
- package/src/lib/components/Layout.tsx +2 -1
- package/src/lib/components/MobileTopNavigation.tsx +10 -2
- package/src/lib/components/Search.tsx +1 -1
- package/src/lib/components/SlotletProvider.tsx +27 -4
- package/src/lib/components/TopNavigation.tsx +14 -1
- package/src/lib/components/index.ts +3 -1
- package/src/lib/components/navigation/Sidebar.tsx +1 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +34 -26
- package/src/lib/components/navigation/SidebarItem.tsx +16 -17
- package/src/lib/core/DevPortalContext.ts +7 -2
- package/src/lib/oas/graphql/index.ts +35 -23
- package/src/lib/oas/parser/index.ts +1 -0
- package/src/lib/plugins/custom-pages/CustomPage.tsx +18 -0
- package/src/lib/plugins/custom-pages/index.tsx +24 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +11 -9
- package/src/lib/plugins/openapi/Endpoint.tsx +86 -22
- package/src/lib/plugins/openapi/OperationList.tsx +4 -2
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +3 -0
- package/src/lib/plugins/openapi/Route.tsx +1 -2
- package/src/lib/plugins/openapi/Sidecar.tsx +18 -3
- package/src/lib/plugins/openapi/SimpleSelect.tsx +10 -2
- package/src/lib/plugins/openapi/client/createMemoryClient.ts +1 -6
- package/src/lib/plugins/openapi/client/createWorkerClient.ts +1 -6
- package/src/lib/plugins/openapi/graphql/gql.ts +11 -3
- package/src/lib/plugins/openapi/graphql/graphql.ts +113 -1
- package/src/lib/plugins/openapi/index.tsx +1 -5
- package/src/lib/plugins/openapi/playground/Playground.tsx +40 -5
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -1
- package/src/lib/plugins/openapi/playground/createUrl.ts +6 -1
- package/src/lib/ui/Callout.tsx +7 -6
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/util/useExposedProps.tsx +10 -0
- package/dist/lib/plugins/custom-page/index.d.ts +0 -8
- package/dist/lib/plugins/custom-page/index.js +0 -12
- package/dist/lib/plugins/custom-page/index.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
- package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
- package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
- package/dist/lib/plugins/openapi/util/urql.js +0 -8
- package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
- package/dist/lib/util/slugify.d.ts +0 -2
- package/dist/lib/util/slugify.js +0 -3
- package/dist/lib/util/slugify.js.map +0 -1
- package/dist/vite/plugin-icons.d.ts +0 -3
- package/dist/vite/plugin-icons.js +0 -47
- package/dist/vite/plugin-icons.js.map +0 -1
- package/lib/ErrorPage-knunPbKI.js +0 -18
- package/lib/ErrorPage-knunPbKI.js.map +0 -1
- package/lib/Input-BR5ia3Yq.js +0 -2198
- package/lib/Input-BR5ia3Yq.js.map +0 -1
- package/lib/Markdown-B4aR03g6.js.map +0 -1
- package/lib/MdxPage-BZyQsH8Z.js.map +0 -1
- package/lib/OperationList-CCPePX04.js.map +0 -1
- package/lib/Route-BAHaMyCu.js.map +0 -1
- package/lib/SidebarBadge-BaUICQiz.js +0 -498
- package/lib/SidebarBadge-BaUICQiz.js.map +0 -1
- package/lib/ZudokuContext-cr-pTRY1.js +0 -1084
- package/lib/ZudokuContext-cr-pTRY1.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/assets/index-B9EWVYfo.js.map +0 -1
- package/lib/assets/worker-TYRbYl6N.js.map +0 -1
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-BOyE1gXD.js.map +0 -1
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-CTNlSS40.js.map +0 -1
- package/lib/router-D2p7Olpn.js +0 -2971
- package/lib/router-D2p7Olpn.js.map +0 -1
- package/lib/slugify-DbLhpSPt.js +0 -28
- package/lib/slugify-DbLhpSPt.js.map +0 -1
- package/lib/state-BUM4jc0J.js +0 -288
- package/lib/state-BUM4jc0J.js.map +0 -1
- package/lib/urql-YhcsXYy8.js +0 -1591
- package/lib/urql-YhcsXYy8.js.map +0 -1
- package/lib/utils-ByIc_KIM.js.map +0 -1
- package/lib/zudoku.plugin-custom-page.js +0 -13
- package/lib/zudoku.plugin-custom-page.js.map +0 -1
- package/src/lib/plugins/custom-page/index.tsx +0 -22
- package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
- package/src/lib/plugins/openapi/util/urql.ts +0 -8
- package/src/lib/util/slugify.ts +0 -3
package/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<div align=center>
|
|
2
|
+
|
|
3
|
+
<a href="https://zudoku.dev" alt="Zudoku">
|
|
4
|
+
<img src="./assets/github-hero.png" width=630 alt="Zudoku Docs & Developer Portal">
|
|
5
|
+
</a>
|
|
6
|
+
|
|
7
|
+
[](https://github.com/zuplo/zudoku/license.md) [](https://www.npmjs.com/package/zudoku) [](https://www.npmjs.com/package/create-zudoku-app) [](https://zuplo.com)
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
# Zudoku
|
|
12
|
+
|
|
13
|
+
API documentation should always be free.
|
|
14
|
+
|
|
15
|
+
<a href="#-installation"><strong>Installation</strong></a> · <a href="https://zudoku.dev/docs/app-quickstart"><strong>Docs</strong></a> · <a href="#-examples"><strong>Examples</strong></a> · <a href="#-contributing--community"><strong>Contributing</strong></a> · <a href="#-motivation"><strong>Motivation</strong></a>
|
|
16
|
+
|
|
17
|
+
## Introduction
|
|
18
|
+
|
|
19
|
+
**Zudoku** (pronounced "zoo-doh-koo") is an open-source, highly customizable API documentation framework for building quality developer experiences around OpenAPI and, soon, GraphQL documents.
|
|
20
|
+
|
|
21
|
+
Because great API documentation frameworks should be:
|
|
22
|
+
|
|
23
|
+
🌍 Free & Open Source<br /> ✅ OpenAPI powered<br /> 🔩 Extensible with Plugins<br /> ⚡ Easy to setup & blazing fast to work with<br /> 🔧 Easy to maintain
|
|
24
|
+
|
|
25
|
+
## 🤩 Try it, right now!
|
|
26
|
+
|
|
27
|
+
You can test Zudoku with your own OpenAPI document at [zudoku.dev](https://zudoku.dev?utm_source=github&utm_medium=web&utm_content=link&ref=github) and see how good your documentation can look!
|
|
28
|
+
|
|
29
|
+
## ✨ Features
|
|
30
|
+
|
|
31
|
+
- 🚀 Generate documentation from a single or multiple [OpenAPI](https://swagger.io/specification/) schema
|
|
32
|
+
- 📄 Create [MDX pages](https://mdxjs.com/) for anything you want to document
|
|
33
|
+
- 🔐 Integrate your users with authentication via OpenID or OAuth2
|
|
34
|
+
- 🧪 Let users test their API calls using the Integrated Playground (includes authentication!)
|
|
35
|
+
- 🌑 Dark mode (of course!)
|
|
36
|
+
|
|
37
|
+
Zudoku is quick to implement, easy to configure and is highly composable with sensible defaults.
|
|
38
|
+
|
|
39
|
+
## ⚙️ Installation
|
|
40
|
+
|
|
41
|
+
You can use the CLI to generate a new project or use it standalone via CDN as a React component.
|
|
42
|
+
|
|
43
|
+
### ⚡️ Quick start
|
|
44
|
+
|
|
45
|
+
Fire up your new API docs using the command line generator:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
npm create zudoku-app@latest
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 📦 Standalone via CDN
|
|
52
|
+
|
|
53
|
+
Add the package and styles to your `<head>` and pass the URL for your API schema to the `data-api-url` property, as shown here:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<!doctype html>
|
|
57
|
+
<html>
|
|
58
|
+
<head>
|
|
59
|
+
<title>Zudoku Demo</title>
|
|
60
|
+
<meta charset="UTF-8" />
|
|
61
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
62
|
+
|
|
63
|
+
<link rel="icon" type="image/svg+xml" href="https://cdn.zudoku.dev/logos/favicon.svg" />
|
|
64
|
+
<script type="module" src="https://cdn.zudoku.dev/latest/main.js" crossorigin></script>
|
|
65
|
+
<link rel="stylesheet" href="https://cdn.zudoku.dev/latest/style.css" crossorigin />
|
|
66
|
+
</head>
|
|
67
|
+
<body>
|
|
68
|
+
<div data-api-url="https://api.example.com/openapi.json"></div>
|
|
69
|
+
</body>
|
|
70
|
+
</html>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 🧱 Getting started templates
|
|
74
|
+
|
|
75
|
+
To get started with some of the features Zudoku offers you can use one of these [example templates](https://github.com/zuplo/zudoku/tree/main/examples):
|
|
76
|
+
|
|
77
|
+
| Template | What it does |
|
|
78
|
+
| --------------------------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
79
|
+
| [many-apis](https://github.com/zuplo/zudoku/tree/main/examples/many-apis) | Using more than one OpenAPI document with Zudoku |
|
|
80
|
+
| [with-auth0](https://github.com/zuplo/zudoku/tree/main/examples/with-auth0) | Authenticate users in docs with the Auth0 plugin |
|
|
81
|
+
| [with-config](https://github.com/zuplo/zudoku/tree/main/examples/with-config) | Barebones config, ready for you to setup how you like |
|
|
82
|
+
| [with-vite-config](https://github.com/zuplo/zudoku/tree/main/examples/with-vite-config) | Use Zudoku with your Vite config (Advanced) |
|
|
83
|
+
|
|
84
|
+
## 🎓 Examples
|
|
85
|
+
|
|
86
|
+
- [Rick & Morty API](https://zudoku.dev/demo?api-url=https://rickandmorty.zuplo.io/openapi.json)
|
|
87
|
+
- [Pet Store API](https://zudoku.dev/demo?api-url=https://zudoku.dev/petstore.oas.json)
|
|
88
|
+
- [Zuplo API Documentation](https://docs-zudoku.pages.dev/)
|
|
89
|
+
|
|
90
|
+
### Zudoku use cases
|
|
91
|
+
|
|
92
|
+
Zudoku is a flexible and highly customizable framework that can be used to create many things, including:
|
|
93
|
+
|
|
94
|
+
- Standalone documentation websites
|
|
95
|
+
- OpenAPI powered API references
|
|
96
|
+
- A developer portal with documentation, fully functional API reference for testing and authentication support for your user accounts.
|
|
97
|
+
- Internal documentation
|
|
98
|
+
|
|
99
|
+
## 🔧 Contributing & Community
|
|
100
|
+
|
|
101
|
+
For details on how to contribute to Zudoku, see the [contributing guide](CONTRIBUTING.md).
|
|
102
|
+
|
|
103
|
+
## Changelog
|
|
104
|
+
|
|
105
|
+
Details of the latest updates to Zudoku can be found in the [changelog](CHANGELOG.md).
|
|
106
|
+
|
|
107
|
+
## 🎯 Motivation
|
|
108
|
+
|
|
109
|
+
At Zuplo, we couldn’t find an open-source solution that met our high standards for both trustworthiness and programmability, so we decided to create our own. And since no one chooses Zuplo solely because of our documentation, we felt great about open-sourcing this tool and making it easy for anyone to self-host.
|
|
110
|
+
|
|
111
|
+
We hope that if you use it, you’ll think fondly of Zuplo, and one day, when you’re looking for a gateway or API management product, you’ll consider us as a vendor to evaluate.
|
|
112
|
+
|
|
113
|
+
Zudoku will always be open-source. It will always be free.
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
Zudoku is licensed under MIT. See the full [license](LICENSE.md).
|
|
118
|
+
|
|
119
|
+
<a href="https://twitter.com/zuplo">
|
|
120
|
+
<img alt="X (formerly Twitter) Follow" src="https://img.shields.io/twitter/follow/zuplo">
|
|
121
|
+
</a>
|
package/dist/app/main.js
CHANGED
|
@@ -3,14 +3,14 @@ import { redirect } from "react-router-dom";
|
|
|
3
3
|
import { configuredApiKeysPlugin } from "virtual:zudoku-api-keys-plugin";
|
|
4
4
|
import { configuredApiPlugins } from "virtual:zudoku-api-plugins";
|
|
5
5
|
import { configuredAuthProvider } from "virtual:zudoku-auth";
|
|
6
|
+
import { configuredCustomPagesPlugin } from "virtual:zudoku-custom-pages-plugin";
|
|
6
7
|
import { configuredDocsPlugins } from "virtual:zudoku-docs-plugins";
|
|
7
8
|
import { configuredRedirectPlugin } from "virtual:zudoku-redirect-plugin";
|
|
9
|
+
import { configuredSearchPlugin } from "virtual:zudoku-search-plugin";
|
|
8
10
|
import { configuredSidebar } from "virtual:zudoku-sidebar";
|
|
9
11
|
import "virtual:zudoku-theme.css";
|
|
10
12
|
import { DevPortal, Layout, RouterError } from "zudoku/components";
|
|
11
13
|
import { isNavigationPlugin } from "zudoku/internal";
|
|
12
|
-
import { customPagePlugin } from "zudoku/plugins/custom-page";
|
|
13
|
-
import { inkeepSearchPlugin } from "zudoku/plugins/search-inkeep";
|
|
14
14
|
import { traverseSidebar } from "../lib/components/navigation/utils.js";
|
|
15
15
|
import { joinPath } from "../lib/util/joinPath.js";
|
|
16
16
|
export const convertZudokuConfigToOptions = (config) => {
|
|
@@ -33,7 +33,7 @@ export const convertZudokuConfigToOptions = (config) => {
|
|
|
33
33
|
},
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
|
-
slotlets: config.
|
|
36
|
+
slotlets: config.UNSAFE_slotlets,
|
|
37
37
|
metadata: {
|
|
38
38
|
favicon: "https://cdn.zudoku.dev/logos/favicon.svg",
|
|
39
39
|
title: "%s - Zudoku",
|
|
@@ -44,14 +44,12 @@ export const convertZudokuConfigToOptions = (config) => {
|
|
|
44
44
|
mdx: config.mdx,
|
|
45
45
|
authentication: configuredAuthProvider,
|
|
46
46
|
plugins: [
|
|
47
|
-
...(config.search?.type === "inkeep"
|
|
48
|
-
? [inkeepSearchPlugin(config.search)]
|
|
49
|
-
: []),
|
|
50
47
|
...configuredDocsPlugins,
|
|
51
48
|
...configuredApiPlugins,
|
|
49
|
+
...(configuredSearchPlugin ? [configuredSearchPlugin] : []),
|
|
52
50
|
...(configuredRedirectPlugin ? [configuredRedirectPlugin] : []),
|
|
53
51
|
...(configuredApiKeysPlugin ? [configuredApiKeysPlugin] : []),
|
|
54
|
-
...(
|
|
52
|
+
...(configuredCustomPagesPlugin ? [configuredCustomPagesPlugin] : []),
|
|
55
53
|
...(configuredAuthProvider?.getAuthenticationPlugin
|
|
56
54
|
? [configuredAuthProvider.getAuthenticationPlugin()]
|
|
57
55
|
: []),
|
package/dist/app/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/app/main.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/app/main.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAoB,EACE,EAAE;IACxB,MAAM,iBAAiB,GACrB,MAAM,CAAC,IAAI,EAAE,OAAO;QACpB,yDAAyD,CAAC;IAC5D,MAAM,gBAAgB,GACpB,MAAM,CAAC,IAAI,EAAE,OAAO;QACpB,wDAAwD,CAAC;IAE3D,MAAM,eAAe,GACnB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;QACrB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK;QAC9B,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;IAEhC,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,MAAM,CAAC,IAAI;YACd,IAAI,EAAE;gBACJ,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI;gBACpB,GAAG,EAAE;oBACH,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,iBAAiB;oBACzD,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,gBAAgB;iBACvD;aACF;SACF;QACD,QAAQ,EAAE,MAAM,CAAC,eAAe;QAChC,QAAQ,EAAE;YACR,OAAO,EAAE,0CAA0C;YACnD,KAAK,EAAE,aAAa;YACpB,GAAG,MAAM,CAAC,QAAQ;SACnB;QACD,QAAQ,EAAE,iBAAiB;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,cAAc,EAAE,sBAAsB;QACtC,OAAO,EAAE;YACP,GAAG,qBAAqB;YACxB,GAAG,oBAAoB;YACvB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,sBAAsB,EAAE,uBAAuB;gBACjD,CAAC,CAAC,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;gBACpD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SAC1B;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAoB,EAAiB,EAAE;IACvE,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,uBAAuB;YACjD,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;YACpD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,eAAe,GACnB,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;QAElD,MAAM,KAAK,GACT,UAAU,CAAC,OAAO;YAClB,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;oBAAE,OAAO,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,EAAE;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAClB,CAAC;IAC1B,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,MAAM,MAAM,GAAG,UAAU;SACtB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3E,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC;QACN,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;KACF,CAAC,CAAC;IAEL,OAAO;QACL;YACE,OAAO,EAAE,CACP,KAAC,SAAS,OAAK,OAAO,YACpB,KAAC,MAAM,KAAG,GACA,CACb;YACD,QAAQ,EAAE;gBACR;oBACE,YAAY,EAAE,KAAC,WAAW,KAAG;oBAC7B,QAAQ,EAAE,MAAM;iBACjB;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/cli/dev/handler.js
CHANGED
|
@@ -14,11 +14,11 @@ export async function dev(argv) {
|
|
|
14
14
|
}
|
|
15
15
|
const dir = path.resolve(process.cwd(), argv.dir);
|
|
16
16
|
const server = new DevServer({ dir, port, ssr: argv.ssr });
|
|
17
|
-
await server.start();
|
|
17
|
+
const { vite } = await server.start();
|
|
18
18
|
printDiagnosticsToConsole("Started development server");
|
|
19
19
|
printDiagnosticsToConsole("Ctrl+C to exit");
|
|
20
20
|
printDiagnosticsToConsole("");
|
|
21
|
-
printDiagnosticsToConsole(`🚀 Zudoku Portal: http://${host}:${port}`);
|
|
21
|
+
printDiagnosticsToConsole(`🚀 Zudoku Portal: http://${host}:${port}${vite.config.base.replace(/\/$/, "")}`);
|
|
22
22
|
printDiagnosticsToConsole("");
|
|
23
23
|
let hasExited = false;
|
|
24
24
|
return new Promise((resolve) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cli/dev/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAe;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YAC3D,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cli/dev/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAe;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YAC3D,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAEtC,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;IACxD,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,yBAAyB,CACvB,4BAA4B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CACjF,CAAC;IACF,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAE9B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,SAAS,IAAI;YACX,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;qBACH,IAAI,EAAE;qBACN,IAAI,CAAC,GAAG,EAAE;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;YACpC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACvC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YACxC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -34,12 +34,15 @@ export declare const BaseInputSidebarItemDocSchema: z.ZodObject<{
|
|
|
34
34
|
badge: z.ZodOptional<z.ZodObject<{
|
|
35
35
|
label: z.ZodString;
|
|
36
36
|
color: z.ZodEnum<["green", "blue", "yellow", "red", "purple", "indigo", "gray"]>;
|
|
37
|
+
placement: z.ZodOptional<z.ZodEnum<["start", "end"]>>;
|
|
37
38
|
}, "strip", z.ZodTypeAny, {
|
|
38
39
|
label: string;
|
|
39
40
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
41
|
+
placement?: "start" | "end" | undefined;
|
|
40
42
|
}, {
|
|
41
43
|
label: string;
|
|
42
44
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
45
|
+
placement?: "start" | "end" | undefined;
|
|
43
46
|
}>>;
|
|
44
47
|
}, "strip", z.ZodTypeAny, {
|
|
45
48
|
type: "doc";
|
|
@@ -49,6 +52,7 @@ export declare const BaseInputSidebarItemDocSchema: z.ZodObject<{
|
|
|
49
52
|
badge?: {
|
|
50
53
|
label: string;
|
|
51
54
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
55
|
+
placement?: "start" | "end" | undefined;
|
|
52
56
|
} | undefined;
|
|
53
57
|
}, {
|
|
54
58
|
type: "doc";
|
|
@@ -58,6 +62,7 @@ export declare const BaseInputSidebarItemDocSchema: z.ZodObject<{
|
|
|
58
62
|
badge?: {
|
|
59
63
|
label: string;
|
|
60
64
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
65
|
+
placement?: "start" | "end" | undefined;
|
|
61
66
|
} | undefined;
|
|
62
67
|
}>;
|
|
63
68
|
export type BaseInputSidebarItemDoc = z.infer<typeof BaseInputSidebarItemDocSchema>;
|
|
@@ -69,12 +74,15 @@ export declare const InputSidebarItemDocSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
69
74
|
badge: z.ZodOptional<z.ZodObject<{
|
|
70
75
|
label: z.ZodString;
|
|
71
76
|
color: z.ZodEnum<["green", "blue", "yellow", "red", "purple", "indigo", "gray"]>;
|
|
77
|
+
placement: z.ZodOptional<z.ZodEnum<["start", "end"]>>;
|
|
72
78
|
}, "strip", z.ZodTypeAny, {
|
|
73
79
|
label: string;
|
|
74
80
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
81
|
+
placement?: "start" | "end" | undefined;
|
|
75
82
|
}, {
|
|
76
83
|
label: string;
|
|
77
84
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
85
|
+
placement?: "start" | "end" | undefined;
|
|
78
86
|
}>>;
|
|
79
87
|
}, "strip", z.ZodTypeAny, {
|
|
80
88
|
type: "doc";
|
|
@@ -84,6 +92,7 @@ export declare const InputSidebarItemDocSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
84
92
|
badge?: {
|
|
85
93
|
label: string;
|
|
86
94
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
95
|
+
placement?: "start" | "end" | undefined;
|
|
87
96
|
} | undefined;
|
|
88
97
|
}, {
|
|
89
98
|
type: "doc";
|
|
@@ -93,6 +102,7 @@ export declare const InputSidebarItemDocSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
93
102
|
badge?: {
|
|
94
103
|
label: string;
|
|
95
104
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
105
|
+
placement?: "start" | "end" | undefined;
|
|
96
106
|
} | undefined;
|
|
97
107
|
}>, z.ZodString]>;
|
|
98
108
|
export declare const InputSidebarItemLinkSchema: z.ZodObject<{
|
|
@@ -103,29 +113,34 @@ export declare const InputSidebarItemLinkSchema: z.ZodObject<{
|
|
|
103
113
|
badge: z.ZodOptional<z.ZodObject<{
|
|
104
114
|
label: z.ZodString;
|
|
105
115
|
color: z.ZodEnum<["green", "blue", "yellow", "red", "purple", "indigo", "gray"]>;
|
|
116
|
+
placement: z.ZodOptional<z.ZodEnum<["start", "end"]>>;
|
|
106
117
|
}, "strip", z.ZodTypeAny, {
|
|
107
118
|
label: string;
|
|
108
119
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
120
|
+
placement?: "start" | "end" | undefined;
|
|
109
121
|
}, {
|
|
110
122
|
label: string;
|
|
111
123
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
124
|
+
placement?: "start" | "end" | undefined;
|
|
112
125
|
}>>;
|
|
113
126
|
}, "strip", z.ZodTypeAny, {
|
|
114
|
-
type: "link";
|
|
115
127
|
label: string;
|
|
128
|
+
type: "link";
|
|
116
129
|
href: string;
|
|
117
130
|
badge?: {
|
|
118
131
|
label: string;
|
|
119
132
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
133
|
+
placement?: "start" | "end" | undefined;
|
|
120
134
|
} | undefined;
|
|
121
135
|
description?: string | undefined;
|
|
122
136
|
}, {
|
|
123
|
-
type: "link";
|
|
124
137
|
label: string;
|
|
138
|
+
type: "link";
|
|
125
139
|
href: string;
|
|
126
140
|
badge?: {
|
|
127
141
|
label: string;
|
|
128
142
|
color: "green" | "blue" | "yellow" | "red" | "purple" | "indigo" | "gray";
|
|
143
|
+
placement?: "start" | "end" | undefined;
|
|
129
144
|
} | undefined;
|
|
130
145
|
description?: string | undefined;
|
|
131
146
|
}>;
|
|
@@ -151,8 +166,8 @@ export declare const BaseInputSidebarItemCategorySchema: z.ZodObject<{
|
|
|
151
166
|
label?: string | undefined;
|
|
152
167
|
}>, z.ZodString]>>;
|
|
153
168
|
}, "strip", z.ZodTypeAny, {
|
|
154
|
-
type: "category";
|
|
155
169
|
label: string;
|
|
170
|
+
type: "category";
|
|
156
171
|
icon?: "default" | undefined;
|
|
157
172
|
link?: string | {
|
|
158
173
|
type: "doc";
|
|
@@ -163,8 +178,8 @@ export declare const BaseInputSidebarItemCategorySchema: z.ZodObject<{
|
|
|
163
178
|
collapsible?: boolean | undefined;
|
|
164
179
|
collapsed?: boolean | undefined;
|
|
165
180
|
}, {
|
|
166
|
-
type: "category";
|
|
167
181
|
label: string;
|
|
182
|
+
type: "category";
|
|
168
183
|
icon?: "default" | undefined;
|
|
169
184
|
link?: string | {
|
|
170
185
|
type: "doc";
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
const BadgeSchema = z.object({
|
|
3
|
+
label: z.string(),
|
|
4
|
+
color: z.enum(["green", "blue", "yellow", "red", "purple", "indigo", "gray"]),
|
|
5
|
+
placement: z.enum(["start", "end"]).optional(),
|
|
6
|
+
});
|
|
2
7
|
export const BaseInputSidebarItemCategoryLinkDocSchema = z.object({
|
|
3
8
|
type: z.literal("doc"),
|
|
4
9
|
id: z.string(),
|
|
@@ -13,20 +18,7 @@ export const BaseInputSidebarItemDocSchema = z.object({
|
|
|
13
18
|
id: z.string(),
|
|
14
19
|
icon: z.custom().optional(),
|
|
15
20
|
label: z.string().optional(),
|
|
16
|
-
badge:
|
|
17
|
-
.object({
|
|
18
|
-
label: z.string(),
|
|
19
|
-
color: z.enum([
|
|
20
|
-
"green",
|
|
21
|
-
"blue",
|
|
22
|
-
"yellow",
|
|
23
|
-
"red",
|
|
24
|
-
"purple",
|
|
25
|
-
"indigo",
|
|
26
|
-
"gray",
|
|
27
|
-
]),
|
|
28
|
-
})
|
|
29
|
-
.optional(),
|
|
21
|
+
badge: BadgeSchema.optional(),
|
|
30
22
|
});
|
|
31
23
|
export const InputSidebarItemDocSchema = z.union([
|
|
32
24
|
BaseInputSidebarItemDocSchema,
|
|
@@ -37,20 +29,7 @@ export const InputSidebarItemLinkSchema = z.object({
|
|
|
37
29
|
label: z.string(),
|
|
38
30
|
href: z.string(),
|
|
39
31
|
description: z.string().optional(),
|
|
40
|
-
badge:
|
|
41
|
-
.object({
|
|
42
|
-
label: z.string(),
|
|
43
|
-
color: z.enum([
|
|
44
|
-
"green",
|
|
45
|
-
"blue",
|
|
46
|
-
"yellow",
|
|
47
|
-
"red",
|
|
48
|
-
"purple",
|
|
49
|
-
"indigo",
|
|
50
|
-
"gray",
|
|
51
|
-
]),
|
|
52
|
-
})
|
|
53
|
-
.optional(),
|
|
32
|
+
badge: BadgeSchema.optional(),
|
|
54
33
|
});
|
|
55
34
|
export const BaseInputSidebarItemCategorySchema = z.object({
|
|
56
35
|
type: z.literal("category"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputSidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/InputSidebarSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3D,yCAAyC;IACzC,CAAC,CAAC,MAAM,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAa,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"InputSidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/InputSidebarSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,11 @@ export const resolveSidebar = async (rootDir, parentId, sidebar) => {
|
|
|
17
17
|
: globId;
|
|
18
18
|
const file = await fs.readFile(foundMatches.at(0));
|
|
19
19
|
const { data, content } = matter(file);
|
|
20
|
-
const label = data.sidebar_label ??
|
|
20
|
+
const label = data.sidebar_label ??
|
|
21
|
+
data.title ??
|
|
22
|
+
extractTitleFromContent(content) ??
|
|
23
|
+
id;
|
|
21
24
|
const icon = data.sidebar_icon;
|
|
22
|
-
if (typeof label !== "string") {
|
|
23
|
-
throw new Error(`Error determining title for document '${id}'. Check that the document has a H1 header or title frontmatter.`);
|
|
24
|
-
}
|
|
25
25
|
return {
|
|
26
26
|
type: "doc",
|
|
27
27
|
id,
|
|
@@ -51,8 +51,7 @@ export const resolveSidebar = async (rootDir, parentId, sidebar) => {
|
|
|
51
51
|
return resolveDoc(item, categoryLabel);
|
|
52
52
|
}
|
|
53
53
|
const doc = await resolveDoc(item.id, categoryLabel);
|
|
54
|
-
|
|
55
|
-
return { ...item, label, categoryLabel };
|
|
54
|
+
return { ...doc, ...item };
|
|
56
55
|
};
|
|
57
56
|
const resolveSidebarItem = async (item, categoryLabel) => {
|
|
58
57
|
if (typeof item === "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/SidebarSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAsClC,MAAM,uBAAuB,GAAG,CAAC,OAAe,
|
|
1
|
+
{"version":3,"file":"SidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/SidebarSchema.ts"],"names":[],"mappings":"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"}
|