@raystack/chronicle 0.1.0-canary.111b55a
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/bin/chronicle.js +2 -0
- package/dist/cli/index.js +963 -0
- package/package.json +67 -0
- package/src/cli/__tests__/config.test.ts +25 -0
- package/src/cli/__tests__/scaffold.test.ts +10 -0
- package/src/cli/commands/build.ts +74 -0
- package/src/cli/commands/dev.ts +21 -0
- package/src/cli/commands/init.ts +154 -0
- package/src/cli/commands/serve.ts +55 -0
- package/src/cli/commands/start.ts +24 -0
- package/src/cli/index.ts +21 -0
- package/src/cli/utils/config.ts +43 -0
- package/src/cli/utils/index.ts +2 -0
- package/src/cli/utils/resolve.ts +6 -0
- package/src/cli/utils/scaffold.ts +20 -0
- package/src/components/api/code-snippets.module.css +7 -0
- package/src/components/api/code-snippets.tsx +76 -0
- package/src/components/api/endpoint-page.module.css +58 -0
- package/src/components/api/endpoint-page.tsx +283 -0
- package/src/components/api/field-row.module.css +126 -0
- package/src/components/api/field-row.tsx +204 -0
- package/src/components/api/field-section.module.css +24 -0
- package/src/components/api/field-section.tsx +100 -0
- package/src/components/api/index.ts +8 -0
- package/src/components/api/json-editor.module.css +9 -0
- package/src/components/api/json-editor.tsx +61 -0
- package/src/components/api/key-value-editor.module.css +13 -0
- package/src/components/api/key-value-editor.tsx +62 -0
- package/src/components/api/method-badge.module.css +4 -0
- package/src/components/api/method-badge.tsx +29 -0
- package/src/components/api/response-panel.module.css +8 -0
- package/src/components/api/response-panel.tsx +44 -0
- package/src/components/common/breadcrumb.tsx +3 -0
- package/src/components/common/button.tsx +3 -0
- package/src/components/common/callout.module.css +7 -0
- package/src/components/common/callout.tsx +27 -0
- package/src/components/common/code-block.tsx +3 -0
- package/src/components/common/dialog.tsx +3 -0
- package/src/components/common/index.ts +10 -0
- package/src/components/common/input-field.tsx +3 -0
- package/src/components/common/sidebar.tsx +3 -0
- package/src/components/common/switch.tsx +3 -0
- package/src/components/common/table.tsx +3 -0
- package/src/components/common/tabs.tsx +3 -0
- package/src/components/mdx/code.module.css +42 -0
- package/src/components/mdx/code.tsx +36 -0
- package/src/components/mdx/details.module.css +14 -0
- package/src/components/mdx/details.tsx +17 -0
- package/src/components/mdx/image.tsx +24 -0
- package/src/components/mdx/index.tsx +35 -0
- package/src/components/mdx/link.tsx +37 -0
- package/src/components/mdx/mermaid.module.css +9 -0
- package/src/components/mdx/mermaid.tsx +37 -0
- package/src/components/mdx/paragraph.module.css +8 -0
- package/src/components/mdx/paragraph.tsx +19 -0
- package/src/components/mdx/table.tsx +40 -0
- package/src/components/ui/breadcrumbs.tsx +72 -0
- package/src/components/ui/client-theme-switcher.tsx +18 -0
- package/src/components/ui/footer.module.css +27 -0
- package/src/components/ui/footer.tsx +31 -0
- package/src/components/ui/search.module.css +111 -0
- package/src/components/ui/search.tsx +173 -0
- package/src/lib/api-routes.ts +120 -0
- package/src/lib/config.ts +56 -0
- package/src/lib/head.tsx +45 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/openapi.ts +188 -0
- package/src/lib/page-context.tsx +95 -0
- package/src/lib/remark-unused-directives.ts +30 -0
- package/src/lib/schema.ts +99 -0
- package/src/lib/snippet-generators.ts +87 -0
- package/src/lib/source.ts +138 -0
- package/src/pages/ApiLayout.module.css +22 -0
- package/src/pages/ApiLayout.tsx +29 -0
- package/src/pages/ApiPage.tsx +68 -0
- package/src/pages/DocsLayout.tsx +18 -0
- package/src/pages/DocsPage.tsx +43 -0
- package/src/pages/NotFound.tsx +10 -0
- package/src/pages/__tests__/head.test.tsx +57 -0
- package/src/server/App.tsx +59 -0
- package/src/server/__tests__/entry-server.test.tsx +35 -0
- package/src/server/__tests__/handlers.test.ts +77 -0
- package/src/server/__tests__/og.test.ts +23 -0
- package/src/server/__tests__/router.test.ts +72 -0
- package/src/server/__tests__/vite-config.test.ts +25 -0
- package/src/server/adapters/vercel.ts +133 -0
- package/src/server/build-search-index.ts +107 -0
- package/src/server/dev.ts +156 -0
- package/src/server/entry-client.tsx +74 -0
- package/src/server/entry-prod.ts +97 -0
- package/src/server/entry-server.tsx +35 -0
- package/src/server/entry-vercel.ts +28 -0
- package/src/server/handlers/apis-proxy.ts +52 -0
- package/src/server/handlers/health.ts +3 -0
- package/src/server/handlers/llms.ts +58 -0
- package/src/server/handlers/og.ts +87 -0
- package/src/server/handlers/robots.ts +11 -0
- package/src/server/handlers/search.ts +172 -0
- package/src/server/handlers/sitemap.ts +39 -0
- package/src/server/handlers/specs.ts +9 -0
- package/src/server/index.html +12 -0
- package/src/server/prod.ts +18 -0
- package/src/server/request-handler.ts +63 -0
- package/src/server/router.ts +42 -0
- package/src/server/vite-config.ts +71 -0
- package/src/themes/default/Layout.module.css +81 -0
- package/src/themes/default/Layout.tsx +132 -0
- package/src/themes/default/Page.module.css +106 -0
- package/src/themes/default/Page.tsx +21 -0
- package/src/themes/default/Toc.module.css +48 -0
- package/src/themes/default/Toc.tsx +66 -0
- package/src/themes/default/font.ts +4 -0
- package/src/themes/default/index.ts +13 -0
- package/src/themes/paper/ChapterNav.module.css +71 -0
- package/src/themes/paper/ChapterNav.tsx +95 -0
- package/src/themes/paper/Layout.module.css +33 -0
- package/src/themes/paper/Layout.tsx +25 -0
- package/src/themes/paper/Page.module.css +174 -0
- package/src/themes/paper/Page.tsx +106 -0
- package/src/themes/paper/ReadingProgress.module.css +132 -0
- package/src/themes/paper/ReadingProgress.tsx +294 -0
- package/src/themes/paper/index.ts +8 -0
- package/src/themes/registry.ts +14 -0
- package/src/types/config.ts +80 -0
- package/src/types/content.ts +36 -0
- package/src/types/index.ts +3 -0
- package/src/types/theme.ts +22 -0
- package/tsconfig.json +29 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Theme } from '@/types'
|
|
2
|
+
import { defaultTheme } from './default'
|
|
3
|
+
import { paperTheme } from './paper'
|
|
4
|
+
|
|
5
|
+
const themes: Record<string, Theme> = {
|
|
6
|
+
default: defaultTheme,
|
|
7
|
+
paper: paperTheme,
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function getTheme(name?: string): Theme {
|
|
11
|
+
if (!name || !themes[name]) return defaultTheme
|
|
12
|
+
|
|
13
|
+
return themes[name]
|
|
14
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export interface ChronicleConfig {
|
|
2
|
+
title: string
|
|
3
|
+
description?: string
|
|
4
|
+
url?: string
|
|
5
|
+
logo?: LogoConfig
|
|
6
|
+
theme?: ThemeConfig
|
|
7
|
+
navigation?: NavigationConfig
|
|
8
|
+
search?: SearchConfig
|
|
9
|
+
footer?: FooterConfig
|
|
10
|
+
api?: ApiConfig[]
|
|
11
|
+
llms?: LlmsConfig
|
|
12
|
+
analytics?: AnalyticsConfig
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface LlmsConfig {
|
|
16
|
+
enabled?: boolean
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface AnalyticsConfig {
|
|
20
|
+
enabled?: boolean
|
|
21
|
+
googleAnalytics?: GoogleAnalyticsConfig
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface GoogleAnalyticsConfig {
|
|
25
|
+
measurementId: string
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface ApiConfig {
|
|
29
|
+
name: string
|
|
30
|
+
spec: string
|
|
31
|
+
basePath: string
|
|
32
|
+
server: ApiServerConfig
|
|
33
|
+
auth?: ApiAuthConfig
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface ApiServerConfig {
|
|
37
|
+
url: string
|
|
38
|
+
description?: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface ApiAuthConfig {
|
|
42
|
+
type: string
|
|
43
|
+
header: string
|
|
44
|
+
placeholder?: string
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface LogoConfig {
|
|
48
|
+
light?: string
|
|
49
|
+
dark?: string
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface ThemeConfig {
|
|
53
|
+
name: 'default' | 'paper'
|
|
54
|
+
colors?: Record<string, string>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface NavigationConfig {
|
|
58
|
+
links?: NavLink[]
|
|
59
|
+
social?: SocialLink[]
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface NavLink {
|
|
63
|
+
label: string
|
|
64
|
+
href: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface SocialLink {
|
|
68
|
+
type: 'github' | 'twitter' | 'discord' | string
|
|
69
|
+
href: string
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface SearchConfig {
|
|
73
|
+
enabled?: boolean
|
|
74
|
+
placeholder?: string
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface FooterConfig {
|
|
78
|
+
copyright?: string
|
|
79
|
+
links?: NavLink[]
|
|
80
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReactNode } from 'react'
|
|
2
|
+
|
|
3
|
+
export interface Frontmatter {
|
|
4
|
+
title: string
|
|
5
|
+
description?: string
|
|
6
|
+
order?: number
|
|
7
|
+
icon?: string
|
|
8
|
+
lastModified?: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface Page {
|
|
12
|
+
slug: string[]
|
|
13
|
+
frontmatter: Frontmatter
|
|
14
|
+
content: ReactNode
|
|
15
|
+
toc: TocItem[]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface TocItem {
|
|
19
|
+
title: string
|
|
20
|
+
url: string
|
|
21
|
+
depth: number
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface PageTreeItem {
|
|
25
|
+
type: 'page' | 'folder' | 'separator'
|
|
26
|
+
name: string
|
|
27
|
+
url?: string
|
|
28
|
+
order?: number
|
|
29
|
+
icon?: string
|
|
30
|
+
children?: PageTreeItem[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface PageTree {
|
|
34
|
+
name: string
|
|
35
|
+
children: PageTreeItem[]
|
|
36
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react'
|
|
2
|
+
import type { ChronicleConfig } from './config'
|
|
3
|
+
import type { Page, PageTree } from './content'
|
|
4
|
+
|
|
5
|
+
export interface ThemeLayoutProps {
|
|
6
|
+
children: ReactNode
|
|
7
|
+
config: ChronicleConfig
|
|
8
|
+
tree: PageTree
|
|
9
|
+
classNames?: { layout?: string; body?: string; sidebar?: string; content?: string }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ThemePageProps {
|
|
13
|
+
page: Page
|
|
14
|
+
config: ChronicleConfig
|
|
15
|
+
tree: PageTree
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface Theme {
|
|
19
|
+
Layout: React.ComponentType<ThemeLayoutProps>
|
|
20
|
+
Page: React.ComponentType<ThemePageProps>
|
|
21
|
+
className?: string
|
|
22
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"composite": false,
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"declarationMap": true,
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"forceConsistentCasingInFileNames": true,
|
|
8
|
+
"inlineSources": false,
|
|
9
|
+
"isolatedModules": true,
|
|
10
|
+
"noUnusedLocals": false,
|
|
11
|
+
"noUnusedParameters": false,
|
|
12
|
+
"preserveWatchOutput": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"strict": true,
|
|
15
|
+
"jsx": "react-jsx",
|
|
16
|
+
"module": "ESNext",
|
|
17
|
+
"target": "es6",
|
|
18
|
+
"outDir": "dist",
|
|
19
|
+
"rootDir": ".",
|
|
20
|
+
"baseUrl": ".",
|
|
21
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
22
|
+
"moduleResolution": "bundler",
|
|
23
|
+
"paths": {
|
|
24
|
+
"@/*": ["./src/*"]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"include": ["src"],
|
|
28
|
+
"exclude": ["node_modules", "dist"]
|
|
29
|
+
}
|