svedocs 0.1.0-beta.2

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/LICENSE +5 -0
  2. package/README.md +38 -0
  3. package/dist/ai/openai-compatible.d.ts +13 -0
  4. package/dist/ai/openai-compatible.d.ts.map +1 -0
  5. package/dist/ai/openai-compatible.js +92 -0
  6. package/dist/ai/providers.d.ts +19 -0
  7. package/dist/ai/providers.d.ts.map +1 -0
  8. package/dist/ai/providers.js +185 -0
  9. package/dist/ai/rate-limit.d.ts +18 -0
  10. package/dist/ai/rate-limit.d.ts.map +1 -0
  11. package/dist/ai/rate-limit.js +52 -0
  12. package/dist/ai/response.d.ts +4 -0
  13. package/dist/ai/response.d.ts.map +1 -0
  14. package/dist/ai/response.js +151 -0
  15. package/dist/ai/runtime.d.ts +30 -0
  16. package/dist/ai/runtime.d.ts.map +1 -0
  17. package/dist/ai/runtime.js +105 -0
  18. package/dist/ai/types.d.ts +93 -0
  19. package/dist/ai/types.d.ts.map +1 -0
  20. package/dist/ai/types.js +1 -0
  21. package/dist/ai.d.ts +7 -0
  22. package/dist/ai.d.ts.map +1 -0
  23. package/dist/ai.js +6 -0
  24. package/dist/ambient.d.ts +5 -0
  25. package/dist/cloudflare.d.ts +27 -0
  26. package/dist/cloudflare.d.ts.map +1 -0
  27. package/dist/cloudflare.js +146 -0
  28. package/dist/config.d.ts +311 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +243 -0
  31. package/dist/core/checks.d.ts +4 -0
  32. package/dist/core/checks.d.ts.map +1 -0
  33. package/dist/core/checks.js +252 -0
  34. package/dist/core/config.d.ts +5 -0
  35. package/dist/core/config.d.ts.map +1 -0
  36. package/dist/core/config.js +182 -0
  37. package/dist/core/content.d.ts +7 -0
  38. package/dist/core/content.d.ts.map +1 -0
  39. package/dist/core/content.js +211 -0
  40. package/dist/core/links.d.ts +8 -0
  41. package/dist/core/links.d.ts.map +1 -0
  42. package/dist/core/links.js +94 -0
  43. package/dist/core/navigation.d.ts +5 -0
  44. package/dist/core/navigation.d.ts.map +1 -0
  45. package/dist/core/navigation.js +144 -0
  46. package/dist/core/search.d.ts +5 -0
  47. package/dist/core/search.d.ts.map +1 -0
  48. package/dist/core/search.js +41 -0
  49. package/dist/core/types.d.ts +269 -0
  50. package/dist/core/types.d.ts.map +1 -0
  51. package/dist/core/types.js +4 -0
  52. package/dist/core/utils.d.ts +12 -0
  53. package/dist/core/utils.d.ts.map +1 -0
  54. package/dist/core/utils.js +52 -0
  55. package/dist/core.d.ts +8 -0
  56. package/dist/core.d.ts.map +1 -0
  57. package/dist/core.js +7 -0
  58. package/dist/index.d.ts +6 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +3 -0
  61. package/dist/mdx/ast.d.ts +32 -0
  62. package/dist/mdx/ast.d.ts.map +1 -0
  63. package/dist/mdx/ast.js +148 -0
  64. package/dist/mdx/code.d.ts +14 -0
  65. package/dist/mdx/code.d.ts.map +1 -0
  66. package/dist/mdx/code.js +315 -0
  67. package/dist/mdx/compile.d.ts +26 -0
  68. package/dist/mdx/compile.d.ts.map +1 -0
  69. package/dist/mdx/compile.js +63 -0
  70. package/dist/mdx/diff.d.ts +5 -0
  71. package/dist/mdx/diff.d.ts.map +1 -0
  72. package/dist/mdx/diff.js +160 -0
  73. package/dist/mdx/utils.d.ts +10 -0
  74. package/dist/mdx/utils.d.ts.map +1 -0
  75. package/dist/mdx/utils.js +64 -0
  76. package/dist/og/image.d.ts +21 -0
  77. package/dist/og/image.d.ts.map +1 -0
  78. package/dist/og/image.js +216 -0
  79. package/dist/og/metadata.d.ts +7 -0
  80. package/dist/og/metadata.d.ts.map +1 -0
  81. package/dist/og/metadata.js +160 -0
  82. package/dist/og/types.d.ts +59 -0
  83. package/dist/og/types.d.ts.map +1 -0
  84. package/dist/og/types.js +1 -0
  85. package/dist/og.d.ts +4 -0
  86. package/dist/og.d.ts.map +1 -0
  87. package/dist/og.js +3 -0
  88. package/dist/search/algolia.d.ts +10 -0
  89. package/dist/search/algolia.d.ts.map +1 -0
  90. package/dist/search/algolia.js +82 -0
  91. package/dist/search/cloudflare-sync.d.ts +5 -0
  92. package/dist/search/cloudflare-sync.d.ts.map +1 -0
  93. package/dist/search/cloudflare-sync.js +169 -0
  94. package/dist/search/cloudflare.d.ts +9 -0
  95. package/dist/search/cloudflare.d.ts.map +1 -0
  96. package/dist/search/cloudflare.js +115 -0
  97. package/dist/search/local.d.ts +9 -0
  98. package/dist/search/local.d.ts.map +1 -0
  99. package/dist/search/local.js +122 -0
  100. package/dist/search/runtime.d.ts +41 -0
  101. package/dist/search/runtime.d.ts.map +1 -0
  102. package/dist/search/runtime.js +151 -0
  103. package/dist/search/types.d.ts +172 -0
  104. package/dist/search/types.d.ts.map +1 -0
  105. package/dist/search/types.js +1 -0
  106. package/dist/search/typesense.d.ts +11 -0
  107. package/dist/search/typesense.d.ts.map +1 -0
  108. package/dist/search/typesense.js +91 -0
  109. package/dist/search/utils.d.ts +10 -0
  110. package/dist/search/utils.d.ts.map +1 -0
  111. package/dist/search/utils.js +55 -0
  112. package/dist/search.d.ts +8 -0
  113. package/dist/search.d.ts.map +1 -0
  114. package/dist/search.js +7 -0
  115. package/dist/svelte.d.ts +24 -0
  116. package/dist/svelte.d.ts.map +1 -0
  117. package/dist/svelte.js +51 -0
  118. package/dist/testing.d.ts +3 -0
  119. package/dist/testing.d.ts.map +1 -0
  120. package/dist/testing.js +23 -0
  121. package/dist/theme/AskAiPanel.svelte +433 -0
  122. package/dist/theme/AskAiPanel.svelte.d.ts +27 -0
  123. package/dist/theme/AskAiPanel.svelte.d.ts.map +1 -0
  124. package/dist/theme/Button.svelte +34 -0
  125. package/dist/theme/Button.svelte.d.ts +41 -0
  126. package/dist/theme/Button.svelte.d.ts.map +1 -0
  127. package/dist/theme/Checkbox.svelte +63 -0
  128. package/dist/theme/Checkbox.svelte.d.ts +45 -0
  129. package/dist/theme/Checkbox.svelte.d.ts.map +1 -0
  130. package/dist/theme/CodeBlock.svelte +6 -0
  131. package/dist/theme/CodeBlock.svelte.d.ts +22 -0
  132. package/dist/theme/CodeBlock.svelte.d.ts.map +1 -0
  133. package/dist/theme/DocPage.svelte +121 -0
  134. package/dist/theme/DocPage.svelte.d.ts +33 -0
  135. package/dist/theme/DocPage.svelte.d.ts.map +1 -0
  136. package/dist/theme/DocsApp.svelte +78 -0
  137. package/dist/theme/DocsApp.svelte.d.ts +63 -0
  138. package/dist/theme/DocsApp.svelte.d.ts.map +1 -0
  139. package/dist/theme/DocsLayout.svelte +167 -0
  140. package/dist/theme/DocsLayout.svelte.d.ts +40 -0
  141. package/dist/theme/DocsLayout.svelte.d.ts.map +1 -0
  142. package/dist/theme/FloatingToolbar.svelte +73 -0
  143. package/dist/theme/FloatingToolbar.svelte.d.ts +22 -0
  144. package/dist/theme/FloatingToolbar.svelte.d.ts.map +1 -0
  145. package/dist/theme/FormField.svelte +41 -0
  146. package/dist/theme/FormField.svelte.d.ts +35 -0
  147. package/dist/theme/FormField.svelte.d.ts.map +1 -0
  148. package/dist/theme/HomePage.svelte +228 -0
  149. package/dist/theme/HomePage.svelte.d.ts +58 -0
  150. package/dist/theme/HomePage.svelte.d.ts.map +1 -0
  151. package/dist/theme/Input.svelte +36 -0
  152. package/dist/theme/Input.svelte.d.ts +34 -0
  153. package/dist/theme/Input.svelte.d.ts.map +1 -0
  154. package/dist/theme/PageLayout.svelte +36 -0
  155. package/dist/theme/PageLayout.svelte.d.ts +31 -0
  156. package/dist/theme/PageLayout.svelte.d.ts.map +1 -0
  157. package/dist/theme/RootLayout.svelte +330 -0
  158. package/dist/theme/RootLayout.svelte.d.ts +40 -0
  159. package/dist/theme/RootLayout.svelte.d.ts.map +1 -0
  160. package/dist/theme/ScopeSwitcher.svelte +103 -0
  161. package/dist/theme/ScopeSwitcher.svelte.d.ts +24 -0
  162. package/dist/theme/ScopeSwitcher.svelte.d.ts.map +1 -0
  163. package/dist/theme/SearchDialog.svelte +253 -0
  164. package/dist/theme/SearchDialog.svelte.d.ts +28 -0
  165. package/dist/theme/SearchDialog.svelte.d.ts.map +1 -0
  166. package/dist/theme/Select.svelte +37 -0
  167. package/dist/theme/Select.svelte.d.ts +42 -0
  168. package/dist/theme/Select.svelte.d.ts.map +1 -0
  169. package/dist/theme/SidebarTree.svelte +136 -0
  170. package/dist/theme/SidebarTree.svelte.d.ts +24 -0
  171. package/dist/theme/SidebarTree.svelte.d.ts.map +1 -0
  172. package/dist/theme/Textarea.svelte +33 -0
  173. package/dist/theme/Textarea.svelte.d.ts +33 -0
  174. package/dist/theme/Textarea.svelte.d.ts.map +1 -0
  175. package/dist/theme/ThemeToggle.svelte +39 -0
  176. package/dist/theme/ThemeToggle.svelte.d.ts +21 -0
  177. package/dist/theme/ThemeToggle.svelte.d.ts.map +1 -0
  178. package/dist/theme/forms.d.ts +4 -0
  179. package/dist/theme/forms.d.ts.map +1 -0
  180. package/dist/theme/forms.js +3 -0
  181. package/dist/theme/index.d.ts +21 -0
  182. package/dist/theme/index.d.ts.map +1 -0
  183. package/dist/theme/index.js +19 -0
  184. package/dist/theme/portal.d.ts +5 -0
  185. package/dist/theme/portal.d.ts.map +1 -0
  186. package/dist/theme/portal.js +19 -0
  187. package/dist/theme/styles.css +3697 -0
  188. package/dist/virtual.d.ts +59 -0
  189. package/dist/vite.d.ts +10 -0
  190. package/dist/vite.d.ts.map +1 -0
  191. package/dist/vite.js +304 -0
  192. package/package.json +118 -0
@@ -0,0 +1,311 @@
1
+ import { z } from 'zod';
2
+ import type { SvedocsResolvedConfig } from './core.js';
3
+ import type { OgTemplate } from './og/types.js';
4
+ export interface SvedocsNavItem {
5
+ label: string;
6
+ href: string;
7
+ external?: boolean;
8
+ }
9
+ export interface SvedocsThemeBrand {
10
+ label?: string;
11
+ href?: string;
12
+ logo?: string;
13
+ mark?: 'pixel' | false;
14
+ }
15
+ export interface SvedocsThemePalette {
16
+ accent?: string;
17
+ neutral?: string;
18
+ }
19
+ export interface SvedocsThemeFonts {
20
+ sans?: string;
21
+ mono?: string;
22
+ display?: string;
23
+ }
24
+ export interface SvedocsThemeCodeTheme {
25
+ light?: string;
26
+ dark?: string;
27
+ }
28
+ export interface SvedocsThemeCode {
29
+ lineNumbers?: boolean;
30
+ wrap?: boolean;
31
+ }
32
+ export interface SvedocsShikiOptions {
33
+ transformers?: unknown[];
34
+ }
35
+ export interface SvedocsThemeHomeAction {
36
+ label: string;
37
+ href: string;
38
+ }
39
+ export interface SvedocsThemeHomeVisual {
40
+ type?: 'pixel' | 'image';
41
+ src?: string;
42
+ alt?: string;
43
+ }
44
+ export interface SvedocsThemeHome {
45
+ kicker?: string;
46
+ primaryAction?: SvedocsThemeHomeAction;
47
+ secondaryAction?: SvedocsThemeHomeAction;
48
+ visual?: SvedocsThemeHomeVisual;
49
+ }
50
+ export interface SvedocsThemeFooter {
51
+ text?: string;
52
+ links?: SvedocsNavItem[];
53
+ }
54
+ export interface SvedocsMarkdownOptions {
55
+ remarkPlugins?: unknown[];
56
+ rehypePlugins?: unknown[];
57
+ shiki?: SvedocsShikiOptions;
58
+ }
59
+ export interface SvedocsConfig {
60
+ site?: {
61
+ name?: string;
62
+ title?: string;
63
+ description?: string;
64
+ url?: string;
65
+ };
66
+ content?: {
67
+ root?: string;
68
+ docs?: string;
69
+ pages?: string;
70
+ include?: string[];
71
+ exclude?: string[];
72
+ };
73
+ build?: {
74
+ mode?: 'edge' | 'static' | 'spa';
75
+ };
76
+ theme?: {
77
+ defaultMode?: 'light' | 'dark' | 'system';
78
+ palette?: SvedocsThemePalette;
79
+ fonts?: SvedocsThemeFonts;
80
+ radius?: string;
81
+ codeTheme?: string | SvedocsThemeCodeTheme;
82
+ code?: SvedocsThemeCode;
83
+ brand?: SvedocsThemeBrand;
84
+ nav?: SvedocsNavItem[];
85
+ social?: SvedocsNavItem[];
86
+ footer?: false | SvedocsThemeFooter;
87
+ home?: SvedocsThemeHome;
88
+ };
89
+ markdown?: SvedocsMarkdownOptions;
90
+ search?: false | {
91
+ enabled?: boolean;
92
+ provider?: 'local' | 'algolia' | 'typesense' | 'cloudflare-ai-search' | string;
93
+ scope?: 'current' | 'all';
94
+ };
95
+ ai?: false | {
96
+ enabled?: boolean;
97
+ provider?: 'mock' | 'cloudflare-workers-ai' | 'cloudflare-ai-search' | 'openai-compatible' | string;
98
+ scope?: 'current' | 'all';
99
+ label?: string;
100
+ systemPrompt?: string;
101
+ welcomeMessage?: string;
102
+ placeholder?: string;
103
+ suggestions?: string[];
104
+ maxResults?: number;
105
+ };
106
+ seo?: {
107
+ sitemap?: boolean;
108
+ robots?: boolean;
109
+ defaultAuthor?: string;
110
+ ogImage?: false | {
111
+ template?: 'default' | string | OgTemplate;
112
+ format?: 'svg' | 'png';
113
+ outDir?: string;
114
+ renderer?: 'svg' | 'satori';
115
+ };
116
+ };
117
+ source?: {
118
+ editBaseUrl?: string;
119
+ };
120
+ checks?: {
121
+ assets?: boolean;
122
+ externalLinks?: boolean;
123
+ translations?: boolean;
124
+ };
125
+ cloudflare?: {
126
+ compatibilityDate?: string;
127
+ aiSearch?: {
128
+ binding?: string;
129
+ instanceName?: string;
130
+ namespace?: string;
131
+ remote?: boolean;
132
+ };
133
+ };
134
+ i18n?: false | {
135
+ defaultLocale?: string;
136
+ locales?: Array<string | {
137
+ code: string;
138
+ label?: string;
139
+ path?: string;
140
+ }>;
141
+ prefixDefaultLocale?: boolean;
142
+ };
143
+ }
144
+ export type { SvedocsResolvedConfig };
145
+ export declare const svedocsConfigSchema: z.ZodObject<{
146
+ site: z.ZodOptional<z.ZodObject<{
147
+ name: z.ZodOptional<z.ZodString>;
148
+ title: z.ZodOptional<z.ZodString>;
149
+ description: z.ZodOptional<z.ZodString>;
150
+ url: z.ZodOptional<z.ZodString>;
151
+ }, z.core.$strip>>;
152
+ content: z.ZodOptional<z.ZodObject<{
153
+ root: z.ZodOptional<z.ZodString>;
154
+ docs: z.ZodOptional<z.ZodString>;
155
+ pages: z.ZodOptional<z.ZodString>;
156
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
157
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
158
+ }, z.core.$strip>>;
159
+ build: z.ZodOptional<z.ZodObject<{
160
+ mode: z.ZodOptional<z.ZodEnum<{
161
+ edge: "edge";
162
+ static: "static";
163
+ spa: "spa";
164
+ }>>;
165
+ }, z.core.$strip>>;
166
+ theme: z.ZodOptional<z.ZodObject<{
167
+ defaultMode: z.ZodOptional<z.ZodEnum<{
168
+ light: "light";
169
+ dark: "dark";
170
+ system: "system";
171
+ }>>;
172
+ palette: z.ZodOptional<z.ZodObject<{
173
+ accent: z.ZodOptional<z.ZodString>;
174
+ neutral: z.ZodOptional<z.ZodString>;
175
+ }, z.core.$strip>>;
176
+ fonts: z.ZodOptional<z.ZodObject<{
177
+ sans: z.ZodOptional<z.ZodString>;
178
+ mono: z.ZodOptional<z.ZodString>;
179
+ display: z.ZodOptional<z.ZodString>;
180
+ }, z.core.$strip>>;
181
+ radius: z.ZodOptional<z.ZodString>;
182
+ codeTheme: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
183
+ light: z.ZodOptional<z.ZodString>;
184
+ dark: z.ZodOptional<z.ZodString>;
185
+ }, z.core.$strip>]>>;
186
+ code: z.ZodOptional<z.ZodObject<{
187
+ lineNumbers: z.ZodOptional<z.ZodBoolean>;
188
+ wrap: z.ZodOptional<z.ZodBoolean>;
189
+ }, z.core.$strip>>;
190
+ brand: z.ZodOptional<z.ZodObject<{
191
+ label: z.ZodOptional<z.ZodString>;
192
+ href: z.ZodOptional<z.ZodString>;
193
+ logo: z.ZodOptional<z.ZodString>;
194
+ mark: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"pixel">, z.ZodLiteral<false>]>>;
195
+ }, z.core.$strip>>;
196
+ nav: z.ZodOptional<z.ZodArray<z.ZodObject<{
197
+ label: z.ZodString;
198
+ href: z.ZodString;
199
+ external: z.ZodOptional<z.ZodBoolean>;
200
+ }, z.core.$strip>>>;
201
+ social: z.ZodOptional<z.ZodArray<z.ZodObject<{
202
+ label: z.ZodString;
203
+ href: z.ZodString;
204
+ external: z.ZodOptional<z.ZodBoolean>;
205
+ }, z.core.$strip>>>;
206
+ footer: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
207
+ text: z.ZodOptional<z.ZodString>;
208
+ links: z.ZodOptional<z.ZodArray<z.ZodObject<{
209
+ label: z.ZodString;
210
+ href: z.ZodString;
211
+ external: z.ZodOptional<z.ZodBoolean>;
212
+ }, z.core.$strip>>>;
213
+ }, z.core.$strip>]>>;
214
+ home: z.ZodOptional<z.ZodObject<{
215
+ kicker: z.ZodOptional<z.ZodString>;
216
+ primaryAction: z.ZodOptional<z.ZodObject<{
217
+ label: z.ZodString;
218
+ href: z.ZodString;
219
+ }, z.core.$strip>>;
220
+ secondaryAction: z.ZodOptional<z.ZodObject<{
221
+ label: z.ZodString;
222
+ href: z.ZodString;
223
+ }, z.core.$strip>>;
224
+ visual: z.ZodOptional<z.ZodObject<{
225
+ type: z.ZodOptional<z.ZodEnum<{
226
+ pixel: "pixel";
227
+ image: "image";
228
+ }>>;
229
+ src: z.ZodOptional<z.ZodString>;
230
+ alt: z.ZodOptional<z.ZodString>;
231
+ }, z.core.$strip>>;
232
+ }, z.core.$strip>>;
233
+ }, z.core.$strip>>;
234
+ markdown: z.ZodOptional<z.ZodObject<{
235
+ remarkPlugins: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
236
+ rehypePlugins: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
237
+ shiki: z.ZodOptional<z.ZodObject<{
238
+ transformers: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
239
+ }, z.core.$strip>>;
240
+ }, z.core.$strip>>;
241
+ search: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
242
+ enabled: z.ZodOptional<z.ZodBoolean>;
243
+ provider: z.ZodOptional<z.ZodString>;
244
+ scope: z.ZodOptional<z.ZodEnum<{
245
+ current: "current";
246
+ all: "all";
247
+ }>>;
248
+ }, z.core.$strip>]>>;
249
+ ai: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
250
+ enabled: z.ZodOptional<z.ZodBoolean>;
251
+ provider: z.ZodOptional<z.ZodString>;
252
+ scope: z.ZodOptional<z.ZodEnum<{
253
+ current: "current";
254
+ all: "all";
255
+ }>>;
256
+ label: z.ZodOptional<z.ZodString>;
257
+ systemPrompt: z.ZodOptional<z.ZodString>;
258
+ welcomeMessage: z.ZodOptional<z.ZodString>;
259
+ placeholder: z.ZodOptional<z.ZodString>;
260
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodString>>;
261
+ maxResults: z.ZodOptional<z.ZodNumber>;
262
+ }, z.core.$strip>]>>;
263
+ seo: z.ZodOptional<z.ZodObject<{
264
+ sitemap: z.ZodOptional<z.ZodBoolean>;
265
+ robots: z.ZodOptional<z.ZodBoolean>;
266
+ defaultAuthor: z.ZodOptional<z.ZodString>;
267
+ ogImage: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
268
+ template: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<OgTemplate, OgTemplate>]>>;
269
+ format: z.ZodOptional<z.ZodEnum<{
270
+ svg: "svg";
271
+ png: "png";
272
+ }>>;
273
+ outDir: z.ZodOptional<z.ZodString>;
274
+ renderer: z.ZodOptional<z.ZodEnum<{
275
+ svg: "svg";
276
+ satori: "satori";
277
+ }>>;
278
+ }, z.core.$strip>]>>;
279
+ }, z.core.$strip>>;
280
+ source: z.ZodOptional<z.ZodObject<{
281
+ editBaseUrl: z.ZodOptional<z.ZodString>;
282
+ }, z.core.$strip>>;
283
+ checks: z.ZodOptional<z.ZodObject<{
284
+ assets: z.ZodOptional<z.ZodBoolean>;
285
+ externalLinks: z.ZodOptional<z.ZodBoolean>;
286
+ translations: z.ZodOptional<z.ZodBoolean>;
287
+ }, z.core.$strip>>;
288
+ cloudflare: z.ZodOptional<z.ZodObject<{
289
+ compatibilityDate: z.ZodOptional<z.ZodString>;
290
+ aiSearch: z.ZodOptional<z.ZodObject<{
291
+ binding: z.ZodOptional<z.ZodString>;
292
+ instanceName: z.ZodOptional<z.ZodString>;
293
+ namespace: z.ZodOptional<z.ZodString>;
294
+ remote: z.ZodOptional<z.ZodBoolean>;
295
+ }, z.core.$strip>>;
296
+ }, z.core.$strip>>;
297
+ i18n: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodObject<{
298
+ defaultLocale: z.ZodOptional<z.ZodString>;
299
+ locales: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
300
+ code: z.ZodString;
301
+ label: z.ZodOptional<z.ZodString>;
302
+ path: z.ZodOptional<z.ZodString>;
303
+ }, z.core.$strip>]>>>;
304
+ prefixDefaultLocale: z.ZodOptional<z.ZodBoolean>;
305
+ }, z.core.$strip>]>>;
306
+ }, z.core.$strip>;
307
+ export declare function defineConfig(config: SvedocsConfig): SvedocsConfig;
308
+ export declare function loadSvedocsConfig(config?: SvedocsConfig): SvedocsResolvedConfig;
309
+ export declare function validateSvedocsConfig(config: SvedocsConfig): SvedocsConfig;
310
+ export declare function loadSvedocsConfigFile(configFile: string, fallback?: SvedocsConfig): Promise<SvedocsResolvedConfig>;
311
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,243 @@
1
+ import { pathToFileURL } from 'node:url';
2
+ import { z } from 'zod';
3
+ import { resolveSvedocsConfig } from './core.js';
4
+ export const svedocsConfigSchema = z.object({
5
+ site: z
6
+ .object({
7
+ name: z.string().optional(),
8
+ title: z.string().optional(),
9
+ description: z.string().optional(),
10
+ url: z.string().url().optional()
11
+ })
12
+ .optional(),
13
+ content: z
14
+ .object({
15
+ root: z.string().optional(),
16
+ docs: z.string().optional(),
17
+ pages: z.string().optional(),
18
+ include: z.array(z.string()).optional(),
19
+ exclude: z.array(z.string()).optional()
20
+ })
21
+ .optional(),
22
+ build: z
23
+ .object({
24
+ mode: z.enum(['edge', 'static', 'spa']).optional()
25
+ })
26
+ .optional(),
27
+ theme: z
28
+ .object({
29
+ defaultMode: z.enum(['light', 'dark', 'system']).optional(),
30
+ palette: z
31
+ .object({
32
+ accent: z.string().optional(),
33
+ neutral: z.string().optional()
34
+ })
35
+ .optional(),
36
+ fonts: z
37
+ .object({
38
+ sans: z.string().optional(),
39
+ mono: z.string().optional(),
40
+ display: z.string().optional()
41
+ })
42
+ .optional(),
43
+ radius: z.string().optional(),
44
+ codeTheme: z
45
+ .union([
46
+ z.string(),
47
+ z.object({
48
+ light: z.string().optional(),
49
+ dark: z.string().optional()
50
+ })
51
+ ])
52
+ .optional(),
53
+ code: z
54
+ .object({
55
+ lineNumbers: z.boolean().optional(),
56
+ wrap: z.boolean().optional()
57
+ })
58
+ .optional(),
59
+ brand: z
60
+ .object({
61
+ label: z.string().optional(),
62
+ href: z.string().optional(),
63
+ logo: z.string().optional(),
64
+ mark: z.union([z.literal('pixel'), z.literal(false)]).optional()
65
+ })
66
+ .optional(),
67
+ nav: z
68
+ .array(z.object({
69
+ label: z.string(),
70
+ href: z.string(),
71
+ external: z.boolean().optional()
72
+ }))
73
+ .optional(),
74
+ social: z
75
+ .array(z.object({
76
+ label: z.string(),
77
+ href: z.string(),
78
+ external: z.boolean().optional()
79
+ }))
80
+ .optional(),
81
+ footer: z
82
+ .union([
83
+ z.literal(false),
84
+ z.object({
85
+ text: z.string().optional(),
86
+ links: z
87
+ .array(z.object({
88
+ label: z.string(),
89
+ href: z.string(),
90
+ external: z.boolean().optional()
91
+ }))
92
+ .optional()
93
+ })
94
+ ])
95
+ .optional(),
96
+ home: z
97
+ .object({
98
+ kicker: z.string().optional(),
99
+ primaryAction: z
100
+ .object({
101
+ label: z.string(),
102
+ href: z.string()
103
+ })
104
+ .optional(),
105
+ secondaryAction: z
106
+ .object({
107
+ label: z.string(),
108
+ href: z.string()
109
+ })
110
+ .optional(),
111
+ visual: z
112
+ .object({
113
+ type: z.enum(['pixel', 'image']).optional(),
114
+ src: z.string().optional(),
115
+ alt: z.string().optional()
116
+ })
117
+ .optional()
118
+ })
119
+ .optional()
120
+ })
121
+ .optional(),
122
+ markdown: z
123
+ .object({
124
+ remarkPlugins: z.array(z.unknown()).optional(),
125
+ rehypePlugins: z.array(z.unknown()).optional(),
126
+ shiki: z
127
+ .object({
128
+ transformers: z.array(z.unknown()).optional()
129
+ })
130
+ .optional()
131
+ })
132
+ .optional(),
133
+ search: z
134
+ .union([
135
+ z.literal(false),
136
+ z.object({
137
+ enabled: z.boolean().optional(),
138
+ provider: z.string().optional(),
139
+ scope: z.enum(['current', 'all']).optional()
140
+ })
141
+ ])
142
+ .optional(),
143
+ ai: z
144
+ .union([
145
+ z.literal(false),
146
+ z.object({
147
+ enabled: z.boolean().optional(),
148
+ provider: z.string().optional(),
149
+ scope: z.enum(['current', 'all']).optional(),
150
+ label: z.string().optional(),
151
+ systemPrompt: z.string().optional(),
152
+ welcomeMessage: z.string().optional(),
153
+ placeholder: z.string().optional(),
154
+ suggestions: z.array(z.string()).optional(),
155
+ maxResults: z.number().int().positive().optional()
156
+ })
157
+ ])
158
+ .optional(),
159
+ seo: z
160
+ .object({
161
+ sitemap: z.boolean().optional(),
162
+ robots: z.boolean().optional(),
163
+ defaultAuthor: z.string().optional(),
164
+ ogImage: z
165
+ .union([
166
+ z.literal(false),
167
+ z.object({
168
+ template: z.union([z.string(), z.custom((value) => typeof value === 'function')]).optional(),
169
+ format: z.enum(['svg', 'png']).optional(),
170
+ outDir: z.string().optional(),
171
+ renderer: z.enum(['svg', 'satori']).optional()
172
+ })
173
+ ])
174
+ .optional()
175
+ })
176
+ .optional(),
177
+ source: z
178
+ .object({
179
+ editBaseUrl: z.string().url().optional()
180
+ })
181
+ .optional(),
182
+ checks: z
183
+ .object({
184
+ assets: z.boolean().optional(),
185
+ externalLinks: z.boolean().optional(),
186
+ translations: z.boolean().optional()
187
+ })
188
+ .optional(),
189
+ cloudflare: z
190
+ .object({
191
+ compatibilityDate: z.string().optional(),
192
+ aiSearch: z
193
+ .object({
194
+ binding: z.string().optional(),
195
+ instanceName: z.string().optional(),
196
+ namespace: z.string().optional(),
197
+ remote: z.boolean().optional()
198
+ })
199
+ .optional()
200
+ })
201
+ .optional(),
202
+ i18n: z
203
+ .union([
204
+ z.literal(false),
205
+ z.object({
206
+ defaultLocale: z.string().optional(),
207
+ locales: z
208
+ .array(z.union([
209
+ z.string(),
210
+ z.object({
211
+ code: z.string(),
212
+ label: z.string().optional(),
213
+ path: z.string().optional()
214
+ })
215
+ ]))
216
+ .optional(),
217
+ prefixDefaultLocale: z.boolean().optional()
218
+ })
219
+ ])
220
+ .optional()
221
+ });
222
+ export function defineConfig(config) {
223
+ return config;
224
+ }
225
+ export function loadSvedocsConfig(config = {}) {
226
+ return resolveSvedocsConfig(validateSvedocsConfig(config));
227
+ }
228
+ export function validateSvedocsConfig(config) {
229
+ return svedocsConfigSchema.parse(config);
230
+ }
231
+ export async function loadSvedocsConfigFile(configFile, fallback = {}) {
232
+ try {
233
+ const module = await import(pathToFileURL(configFile).href);
234
+ return loadSvedocsConfig((module.default ?? module.config ?? fallback));
235
+ }
236
+ catch (error) {
237
+ const code = typeof error === 'object' && error && 'code' in error ? error.code : undefined;
238
+ if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') {
239
+ return loadSvedocsConfig(fallback);
240
+ }
241
+ throw error;
242
+ }
243
+ }
@@ -0,0 +1,4 @@
1
+ import type { SvedocsContentIssue, SvedocsContentManifest } from './types.js';
2
+ export declare function checkSvedocsContent(manifest: SvedocsContentManifest, projectRoot?: string): Promise<SvedocsContentIssue[]>;
3
+ export declare function checkPackagePublication(packageRoot: string): Promise<SvedocsContentIssue[]>;
4
+ //# sourceMappingURL=checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/core/checks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAqC,MAAM,YAAY,CAAC;AAGjH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,sBAAsB,EAChC,WAAW,SAAgB,GAC1B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAkEhC;AAgCD,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAyEjG"}