blodemd 0.0.4 → 0.0.6

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 (185) hide show
  1. package/README.md +12 -1
  2. package/dev-server/app/[[...slug]]/page.tsx +139 -0
  3. package/dev-server/app/blodemd-dev/invalidate/route.ts +12 -0
  4. package/dev-server/app/blodemd-dev/static/[...path]/route.ts +32 -0
  5. package/dev-server/app/blodemd-dev/version/route.ts +14 -0
  6. package/dev-server/app/blodemd-internal/proxy/route.ts +86 -0
  7. package/dev-server/app/error.tsx +24 -0
  8. package/dev-server/app/globals.css +4 -0
  9. package/dev-server/app/layout.tsx +38 -0
  10. package/dev-server/app/not-found.tsx +18 -0
  11. package/dev-server/app/search/route.ts +17 -0
  12. package/dev-server/components/dev-reload-script.tsx +86 -0
  13. package/dev-server/components/providers.tsx +15 -0
  14. package/dev-server/lib/dev-state.ts +8 -0
  15. package/dev-server/lib/local-content-source.ts +103 -0
  16. package/dev-server/lib/local-runtime.tsx +558 -0
  17. package/dev-server/next.config.js +46 -0
  18. package/dev-server/package.json +57 -0
  19. package/dev-server/postcss.config.mjs +7 -0
  20. package/dev-server/public/glide-variable.woff2 +0 -0
  21. package/dev-server/tsconfig.json +49 -0
  22. package/dist/cli.mjs +299 -26
  23. package/dist/cli.mjs.map +1 -1
  24. package/docs/app/globals.css +455 -0
  25. package/docs/components/api/api-playground.tsx +295 -0
  26. package/docs/components/api/api-reference.tsx +121 -0
  27. package/docs/components/content/collection-index.tsx +114 -0
  28. package/docs/components/docs/contextual-menu.tsx +406 -0
  29. package/docs/components/docs/copy-page-menu.tsx +255 -0
  30. package/docs/components/docs/doc-header.tsx +192 -0
  31. package/docs/components/docs/doc-shell.tsx +289 -0
  32. package/docs/components/docs/doc-sidebar.tsx +206 -0
  33. package/docs/components/docs/doc-toc.tsx +45 -0
  34. package/docs/components/docs/mobile-nav.tsx +207 -0
  35. package/docs/components/mdx/accordion.tsx +83 -0
  36. package/docs/components/mdx/badge.tsx +79 -0
  37. package/docs/components/mdx/callout.tsx +88 -0
  38. package/docs/components/mdx/card.tsx +104 -0
  39. package/docs/components/mdx/code-block.tsx +75 -0
  40. package/docs/components/mdx/code-group.tsx +94 -0
  41. package/docs/components/mdx/color.tsx +87 -0
  42. package/docs/components/mdx/columns.tsx +25 -0
  43. package/docs/components/mdx/expandable.tsx +45 -0
  44. package/docs/components/mdx/field-layout.tsx +77 -0
  45. package/docs/components/mdx/frame.tsx +23 -0
  46. package/docs/components/mdx/get-text-content.ts +18 -0
  47. package/docs/components/mdx/icon.tsx +56 -0
  48. package/docs/components/mdx/index.tsx +96 -0
  49. package/docs/components/mdx/installer.tsx +20 -0
  50. package/docs/components/mdx/panel.tsx +11 -0
  51. package/docs/components/mdx/param-field.tsx +56 -0
  52. package/docs/components/mdx/preview.tsx +36 -0
  53. package/docs/components/mdx/prompt.tsx +63 -0
  54. package/docs/components/mdx/request-example.tsx +27 -0
  55. package/docs/components/mdx/response-field.tsx +42 -0
  56. package/docs/components/mdx/steps.tsx +92 -0
  57. package/docs/components/mdx/tabs.tsx +88 -0
  58. package/docs/components/mdx/tile.tsx +43 -0
  59. package/docs/components/mdx/tooltip.tsx +71 -0
  60. package/docs/components/mdx/tree.tsx +120 -0
  61. package/docs/components/mdx/type-table.tsx +71 -0
  62. package/docs/components/mdx/update.tsx +44 -0
  63. package/docs/components/mdx/video.tsx +12 -0
  64. package/docs/components/mdx/view.tsx +66 -0
  65. package/docs/components/providers.tsx +15 -0
  66. package/docs/components/ui/breadcrumb.tsx +92 -0
  67. package/docs/components/ui/button.tsx +90 -0
  68. package/docs/components/ui/card.tsx +92 -0
  69. package/docs/components/ui/command.tsx +139 -0
  70. package/docs/components/ui/dialog.tsx +97 -0
  71. package/docs/components/ui/field.tsx +237 -0
  72. package/docs/components/ui/input.tsx +105 -0
  73. package/docs/components/ui/label.tsx +22 -0
  74. package/docs/components/ui/popover.tsx +72 -0
  75. package/docs/components/ui/search.tsx +380 -0
  76. package/docs/components/ui/separator.tsx +26 -0
  77. package/docs/components/ui/sheet.tsx +104 -0
  78. package/docs/components/ui/sidebar.tsx +433 -0
  79. package/docs/components/ui/theme-toggle.tsx +62 -0
  80. package/docs/components/ui/tooltip.tsx +53 -0
  81. package/docs/lib/contextual-options.ts +193 -0
  82. package/docs/lib/docs-collection.ts +22 -0
  83. package/docs/lib/mdx.ts +90 -0
  84. package/docs/lib/navigation.ts +288 -0
  85. package/docs/lib/openapi.ts +158 -0
  86. package/docs/lib/routes.ts +10 -0
  87. package/docs/lib/server-cache.ts +83 -0
  88. package/docs/lib/shiki.ts +35 -0
  89. package/docs/lib/theme.ts +29 -0
  90. package/docs/lib/toc.ts +2 -0
  91. package/docs/lib/utils.ts +5 -0
  92. package/package.json +34 -3
  93. package/packages/@repo/common/dist/index.d.ts +9 -0
  94. package/packages/@repo/common/dist/index.d.ts.map +1 -0
  95. package/packages/@repo/common/dist/index.js +42 -0
  96. package/packages/@repo/common/package.json +34 -0
  97. package/packages/@repo/common/src/common.unit.test.ts +55 -0
  98. package/packages/@repo/common/src/index.ts +51 -0
  99. package/packages/@repo/contracts/dist/api-key.d.ts +30 -0
  100. package/packages/@repo/contracts/dist/api-key.d.ts.map +1 -0
  101. package/packages/@repo/contracts/dist/api-key.js +20 -0
  102. package/packages/@repo/contracts/dist/dates.d.ts +4 -0
  103. package/packages/@repo/contracts/dist/dates.d.ts.map +1 -0
  104. package/packages/@repo/contracts/dist/dates.js +2 -0
  105. package/packages/@repo/contracts/dist/deployment.d.ts +71 -0
  106. package/packages/@repo/contracts/dist/deployment.d.ts.map +1 -0
  107. package/packages/@repo/contracts/dist/deployment.js +46 -0
  108. package/packages/@repo/contracts/dist/domain.d.ts +94 -0
  109. package/packages/@repo/contracts/dist/domain.d.ts.map +1 -0
  110. package/packages/@repo/contracts/dist/domain.js +36 -0
  111. package/packages/@repo/contracts/dist/ids.d.ts +14 -0
  112. package/packages/@repo/contracts/dist/ids.d.ts.map +1 -0
  113. package/packages/@repo/contracts/dist/ids.js +10 -0
  114. package/packages/@repo/contracts/dist/index.d.ts +10 -0
  115. package/packages/@repo/contracts/dist/index.d.ts.map +1 -0
  116. package/packages/@repo/contracts/dist/index.js +11 -0
  117. package/packages/@repo/contracts/dist/pagination.d.ts +23 -0
  118. package/packages/@repo/contracts/dist/pagination.d.ts.map +1 -0
  119. package/packages/@repo/contracts/dist/pagination.js +15 -0
  120. package/packages/@repo/contracts/dist/project.d.ts +25 -0
  121. package/packages/@repo/contracts/dist/project.d.ts.map +1 -0
  122. package/packages/@repo/contracts/dist/project.js +23 -0
  123. package/packages/@repo/contracts/dist/tenant.d.ts +99 -0
  124. package/packages/@repo/contracts/dist/tenant.d.ts.map +1 -0
  125. package/packages/@repo/contracts/dist/tenant.js +36 -0
  126. package/packages/@repo/contracts/dist/user.d.ts +9 -0
  127. package/packages/@repo/contracts/dist/user.d.ts.map +1 -0
  128. package/packages/@repo/contracts/dist/user.js +9 -0
  129. package/packages/@repo/contracts/package.json +37 -0
  130. package/packages/@repo/contracts/src/api-key.ts +27 -0
  131. package/packages/@repo/contracts/src/dates.ts +4 -0
  132. package/packages/@repo/contracts/src/deployment.ts +73 -0
  133. package/packages/@repo/contracts/src/domain.ts +51 -0
  134. package/packages/@repo/contracts/src/ids.ts +22 -0
  135. package/packages/@repo/contracts/src/index.ts +11 -0
  136. package/packages/@repo/contracts/src/pagination.ts +21 -0
  137. package/packages/@repo/contracts/src/project.ts +30 -0
  138. package/packages/@repo/contracts/src/tenant.ts +54 -0
  139. package/packages/@repo/contracts/src/user.ts +12 -0
  140. package/packages/@repo/models/dist/docs-config.d.ts +985 -0
  141. package/packages/@repo/models/dist/docs-config.d.ts.map +1 -0
  142. package/packages/@repo/models/dist/docs-config.js +548 -0
  143. package/packages/@repo/models/dist/index.d.ts +3 -0
  144. package/packages/@repo/models/dist/index.d.ts.map +1 -0
  145. package/packages/@repo/models/dist/index.js +3 -0
  146. package/packages/@repo/models/dist/tenant.d.ts +25 -0
  147. package/packages/@repo/models/dist/tenant.d.ts.map +1 -0
  148. package/packages/@repo/models/dist/tenant.js +1 -0
  149. package/packages/@repo/models/package.json +37 -0
  150. package/packages/@repo/models/src/docs-config.ts +648 -0
  151. package/packages/@repo/models/src/index.ts +3 -0
  152. package/packages/@repo/models/src/tenant.ts +29 -0
  153. package/packages/@repo/prebuild/dist/index.d.ts +2 -0
  154. package/packages/@repo/prebuild/dist/index.d.ts.map +1 -0
  155. package/packages/@repo/prebuild/dist/index.js +2 -0
  156. package/packages/@repo/prebuild/dist/openapi.d.ts +43 -0
  157. package/packages/@repo/prebuild/dist/openapi.d.ts.map +1 -0
  158. package/packages/@repo/prebuild/dist/openapi.js +58 -0
  159. package/packages/@repo/prebuild/package.json +39 -0
  160. package/packages/@repo/prebuild/src/index.ts +2 -0
  161. package/packages/@repo/prebuild/src/openapi.ts +116 -0
  162. package/packages/@repo/previewing/dist/blob-source.d.ts +16 -0
  163. package/packages/@repo/previewing/dist/blob-source.d.ts.map +1 -0
  164. package/packages/@repo/previewing/dist/blob-source.js +110 -0
  165. package/packages/@repo/previewing/dist/content-source.d.ts +12 -0
  166. package/packages/@repo/previewing/dist/content-source.d.ts.map +1 -0
  167. package/packages/@repo/previewing/dist/content-source.js +1 -0
  168. package/packages/@repo/previewing/dist/fs-source.d.ts +11 -0
  169. package/packages/@repo/previewing/dist/fs-source.d.ts.map +1 -0
  170. package/packages/@repo/previewing/dist/fs-source.js +79 -0
  171. package/packages/@repo/previewing/dist/index.d.ts +120 -0
  172. package/packages/@repo/previewing/dist/index.d.ts.map +1 -0
  173. package/packages/@repo/previewing/dist/index.js +984 -0
  174. package/packages/@repo/previewing/package.json +41 -0
  175. package/packages/@repo/previewing/src/blob-source.ts +167 -0
  176. package/packages/@repo/previewing/src/content-source.ts +12 -0
  177. package/packages/@repo/previewing/src/fs-source.ts +111 -0
  178. package/packages/@repo/previewing/src/index.ts +1490 -0
  179. package/packages/@repo/previewing/src/index.unit.test.ts +290 -0
  180. package/packages/@repo/validation/dist/index.d.ts +12 -0
  181. package/packages/@repo/validation/dist/index.d.ts.map +1 -0
  182. package/packages/@repo/validation/dist/index.js +30 -0
  183. package/packages/@repo/validation/package.json +37 -0
  184. package/packages/@repo/validation/src/index.ts +59 -0
  185. package/packages/@repo/validation/src/mintlify-docs-schema.json +5016 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-config.d.ts","sourceRoot":"","sources":["../src/docs-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,548 @@
1
+ import { z } from "zod";
2
+ const UrlOrPathSchema = z.string().min(1);
3
+ export const DocsColorsSchema = z
4
+ .object({
5
+ background: z.string().optional(),
6
+ border: z.string().optional(),
7
+ dark: z.string().optional(),
8
+ light: z.string().optional(),
9
+ muted: z.string().optional(),
10
+ primary: z.string().min(1),
11
+ surface: z.string().optional(),
12
+ })
13
+ .strict();
14
+ export const DocsFontsSchema = z
15
+ .object({
16
+ body: z.string().optional(),
17
+ cssUrl: z.string().optional(),
18
+ heading: z.string().optional(),
19
+ mono: z.string().optional(),
20
+ provider: z.enum(["google", "local", "custom"]).optional(),
21
+ })
22
+ .strict();
23
+ export const DocsLogoSchema = z
24
+ .object({
25
+ alt: z.string().optional(),
26
+ dark: UrlOrPathSchema.optional(),
27
+ light: UrlOrPathSchema.optional(),
28
+ })
29
+ .strict();
30
+ export const DocsNavLinkSchema = z
31
+ .object({
32
+ href: z.string().min(1),
33
+ label: z.string().min(1),
34
+ })
35
+ .strict();
36
+ export const DocsNavAnchorSchema = z
37
+ .object({
38
+ href: z.string().min(1),
39
+ label: z.string().min(1),
40
+ })
41
+ .strict();
42
+ export const DocsNavLocaleSchema = z
43
+ .object({
44
+ label: z.string().min(1),
45
+ locale: z.string().optional(),
46
+ url: z.string().min(1),
47
+ })
48
+ .strict();
49
+ export const DocsNavVersionSchema = z
50
+ .object({
51
+ label: z.string().min(1),
52
+ url: z.string().min(1),
53
+ })
54
+ .strict();
55
+ export const DocsOpenApiSourceSchema = z
56
+ .object({
57
+ basePath: z.string().optional(),
58
+ directory: z.string().optional(),
59
+ include: z.array(z.string()).optional(),
60
+ source: z.string().min(1),
61
+ })
62
+ .strict();
63
+ export const DocsNavGroupSchema = z
64
+ .object({
65
+ expanded: z.boolean().optional(),
66
+ group: z.string().optional(),
67
+ hidden: z.boolean().optional(),
68
+ openapi: z.union([z.string().min(1), DocsOpenApiSourceSchema]).optional(),
69
+ pages: z.array(z.string()).optional(),
70
+ })
71
+ .strict();
72
+ export const DocsNavTabSchema = z
73
+ .object({
74
+ groups: z.array(DocsNavGroupSchema).optional(),
75
+ href: z.string().min(1).optional(),
76
+ icon: z.string().optional(),
77
+ label: z.string().min(1),
78
+ pages: z.array(z.string()).optional(),
79
+ })
80
+ .strict()
81
+ .refine((value) => Boolean(value.groups?.length || value.pages?.length || value.href), { message: "tab must define groups, pages, or href", path: [] });
82
+ export const DocsNavigationSchema = z
83
+ .object({
84
+ global: z
85
+ .object({
86
+ anchors: z.array(DocsNavAnchorSchema).optional(),
87
+ links: z.array(DocsNavLinkSchema).optional(),
88
+ })
89
+ .strict()
90
+ .optional(),
91
+ groups: z.array(DocsNavGroupSchema).optional(),
92
+ hidden: z.array(z.string()).optional(),
93
+ languages: z.array(DocsNavLocaleSchema).optional(),
94
+ pages: z.array(z.string()).optional(),
95
+ tabs: z.array(DocsNavTabSchema).optional(),
96
+ versions: z.array(DocsNavVersionSchema).optional(),
97
+ })
98
+ .strict();
99
+ export const DocsScriptsSchema = z
100
+ .object({
101
+ body: z.array(z.string()).optional(),
102
+ head: z.array(z.string()).optional(),
103
+ })
104
+ .strict();
105
+ export const DocsSeoSchema = z
106
+ .object({
107
+ indexing: z.enum(["all", "default"]).optional(),
108
+ })
109
+ .strict();
110
+ export const DocsFeatureFlagsSchema = z
111
+ .object({
112
+ rightToc: z.boolean().optional(),
113
+ search: z.boolean().optional(),
114
+ themeToggle: z.boolean().optional(),
115
+ toc: z.boolean().optional(),
116
+ })
117
+ .strict();
118
+ export const DocsOpenApiProxySchema = z
119
+ .object({
120
+ allowedHosts: z.array(z.string()).optional(),
121
+ enabled: z.boolean().optional(),
122
+ })
123
+ .strict();
124
+ const MintlifyFontSchema = z
125
+ .object({
126
+ family: z.string().min(1),
127
+ format: z.enum(["woff", "woff2"]).optional(),
128
+ source: z.string().min(1).optional(),
129
+ weight: z.number().optional(),
130
+ })
131
+ .strict();
132
+ const MintlifyFontsSchema = z
133
+ .object({
134
+ body: MintlifyFontSchema.optional(),
135
+ family: z.string().min(1).optional(),
136
+ format: z.enum(["woff", "woff2"]).optional(),
137
+ heading: MintlifyFontSchema.optional(),
138
+ source: z.string().min(1).optional(),
139
+ weight: z.number().optional(),
140
+ })
141
+ .strict();
142
+ const MintlifyLogoSchema = z.union([
143
+ UrlOrPathSchema,
144
+ z
145
+ .object({
146
+ dark: UrlOrPathSchema,
147
+ href: z.string().min(1).optional(),
148
+ light: UrlOrPathSchema,
149
+ })
150
+ .strict(),
151
+ ]);
152
+ const MintlifyFaviconSchema = z.union([
153
+ UrlOrPathSchema,
154
+ z
155
+ .object({
156
+ dark: UrlOrPathSchema,
157
+ light: UrlOrPathSchema,
158
+ })
159
+ .strict(),
160
+ ]);
161
+ const MintlifyNavbarLinkSchema = z
162
+ .object({
163
+ href: z.string().min(1),
164
+ icon: z.string().optional(),
165
+ iconType: z.string().optional(),
166
+ label: z.string().optional(),
167
+ type: z.enum(["discord", "github"]).optional(),
168
+ })
169
+ .strict();
170
+ const MintlifyNavbarPrimarySchema = z
171
+ .object({
172
+ href: z.string().min(1),
173
+ label: z.string().optional(),
174
+ type: z.enum(["button", "discord", "github"]),
175
+ })
176
+ .strict();
177
+ const MintlifyNavbarSchema = z
178
+ .object({
179
+ links: z.array(MintlifyNavbarLinkSchema).optional(),
180
+ primary: MintlifyNavbarPrimarySchema.optional(),
181
+ })
182
+ .strict();
183
+ const MintlifyNavigationGlobalSchema = z
184
+ .object({
185
+ anchors: z
186
+ .array(z
187
+ .object({
188
+ anchor: z.string().min(1),
189
+ color: z
190
+ .object({
191
+ dark: z.string().optional(),
192
+ light: z.string().optional(),
193
+ })
194
+ .strict()
195
+ .optional(),
196
+ hidden: z.boolean().optional(),
197
+ href: z.string().min(1),
198
+ icon: z.string().optional(),
199
+ iconType: z.string().optional(),
200
+ })
201
+ .strict())
202
+ .optional(),
203
+ })
204
+ .strict();
205
+ const MintlifyNavigationGroupSchema = z
206
+ .object({
207
+ expanded: z.boolean().optional(),
208
+ group: z.string().min(1),
209
+ hidden: z.boolean().optional(),
210
+ icon: z.string().optional(),
211
+ pages: z.array(z.string()).optional(),
212
+ root: z.string().optional(),
213
+ tag: z.string().optional(),
214
+ })
215
+ .strict();
216
+ const MintlifyNavTabSchema = z
217
+ .object({
218
+ groups: z.array(MintlifyNavigationGroupSchema).optional(),
219
+ hidden: z.boolean().optional(),
220
+ href: z.string().min(1).optional(),
221
+ icon: z.string().optional(),
222
+ pages: z.array(z.string()).optional(),
223
+ tab: z.string().min(1),
224
+ })
225
+ .strict();
226
+ const MintlifyNavigationSchema = z
227
+ .object({
228
+ global: MintlifyNavigationGlobalSchema.optional(),
229
+ groups: z.array(MintlifyNavigationGroupSchema).optional(),
230
+ languages: z
231
+ .array(z
232
+ .object({
233
+ default: z.boolean().optional(),
234
+ hidden: z.boolean().optional(),
235
+ href: z.string().min(1),
236
+ language: z.string().min(1),
237
+ })
238
+ .strict())
239
+ .optional(),
240
+ pages: z.array(z.string()).optional(),
241
+ tabs: z.array(MintlifyNavTabSchema).optional(),
242
+ versions: z
243
+ .array(z
244
+ .object({
245
+ default: z.boolean().optional(),
246
+ hidden: z.boolean().optional(),
247
+ href: z.string().min(1),
248
+ version: z.string().min(1),
249
+ })
250
+ .strict())
251
+ .optional(),
252
+ })
253
+ .strict()
254
+ .refine((value) => Boolean(value.groups?.length ||
255
+ value.pages?.length ||
256
+ value.tabs?.length ||
257
+ value.languages?.length ||
258
+ value.versions?.length), {
259
+ message: "navigation must define at least one of groups, pages, tabs, languages, or versions",
260
+ path: [],
261
+ });
262
+ const MintlifyApiSchema = z
263
+ .object({
264
+ asyncapi: z
265
+ .union([z.string(), z.array(z.string()), DocsOpenApiSourceSchema])
266
+ .optional(),
267
+ examples: z
268
+ .object({
269
+ autogenerate: z.boolean().optional(),
270
+ defaults: z.enum(["all", "required"]).optional(),
271
+ languages: z.array(z.string()).optional(),
272
+ prefill: z.boolean().optional(),
273
+ })
274
+ .strict()
275
+ .optional(),
276
+ mdx: z
277
+ .object({
278
+ auth: z
279
+ .object({
280
+ method: z.enum(["basic", "bearer", "cobo", "key"]).optional(),
281
+ name: z.string().optional(),
282
+ })
283
+ .strict()
284
+ .optional(),
285
+ server: z
286
+ .union([z.string().min(1), z.array(z.string().min(1))])
287
+ .optional(),
288
+ })
289
+ .strict()
290
+ .optional(),
291
+ openapi: z
292
+ .union([z.string(), z.array(z.string()), DocsOpenApiSourceSchema])
293
+ .optional(),
294
+ params: z
295
+ .object({
296
+ expanded: z.enum(["all", "closed"]).optional(),
297
+ })
298
+ .strict()
299
+ .optional(),
300
+ playground: z
301
+ .object({
302
+ credentials: z.boolean().optional(),
303
+ display: z.enum(["auth", "interactive", "none", "simple"]).optional(),
304
+ proxy: z.boolean().optional(),
305
+ })
306
+ .strict()
307
+ .optional(),
308
+ url: z.literal("full").optional(),
309
+ })
310
+ .strict();
311
+ const MintlifyAppearanceSchema = z
312
+ .object({
313
+ default: z.enum(["dark", "light", "system"]).optional(),
314
+ strict: z.boolean().optional(),
315
+ })
316
+ .strict();
317
+ const MintlifyMetadataSchema = z
318
+ .object({
319
+ timestamp: z.boolean().optional(),
320
+ })
321
+ .strict();
322
+ const MintlifySearchSchema = z
323
+ .object({
324
+ prompt: z.string().optional(),
325
+ })
326
+ .strict();
327
+ export const ContextualBuiltinOptionSchema = z.enum([
328
+ "add-mcp",
329
+ "aistudio",
330
+ "assistant",
331
+ "chatgpt",
332
+ "claude",
333
+ "copy",
334
+ "cursor",
335
+ "devin",
336
+ "devin-mcp",
337
+ "grok",
338
+ "mcp",
339
+ "perplexity",
340
+ "view",
341
+ "vscode",
342
+ "windsurf",
343
+ ]);
344
+ const ContextualCustomHrefQuerySchema = z
345
+ .object({
346
+ key: z.string().min(1),
347
+ value: z.string().min(1),
348
+ })
349
+ .strict();
350
+ const ContextualCustomHrefObjectSchema = z
351
+ .object({
352
+ base: z.string().min(1),
353
+ query: z.array(ContextualCustomHrefQuerySchema),
354
+ })
355
+ .strict();
356
+ export const ContextualCustomOptionSchema = z
357
+ .object({
358
+ description: z.string().min(1),
359
+ href: z.union([z.string().min(1), ContextualCustomHrefObjectSchema]),
360
+ icon: z.string().min(1),
361
+ iconType: z.string().optional(),
362
+ title: z.string().min(1),
363
+ })
364
+ .strict();
365
+ export const ContextualOptionSchema = z.union([
366
+ ContextualBuiltinOptionSchema,
367
+ ContextualCustomOptionSchema,
368
+ ]);
369
+ export const DocsContextualSchema = z
370
+ .object({
371
+ display: z.enum(["header", "toc"]).optional(),
372
+ options: z.array(ContextualOptionSchema),
373
+ })
374
+ .strict();
375
+ export const MintlifyDocsConfigSchema = z
376
+ .object({
377
+ $schema: z.string().optional(),
378
+ api: MintlifyApiSchema.optional(),
379
+ appearance: MintlifyAppearanceSchema.optional(),
380
+ colors: z
381
+ .object({
382
+ dark: z.string().optional(),
383
+ light: z.string().optional(),
384
+ primary: z.string().min(1),
385
+ })
386
+ .strict(),
387
+ contextual: DocsContextualSchema.optional(),
388
+ description: z.string().optional(),
389
+ favicon: MintlifyFaviconSchema.optional(),
390
+ fonts: MintlifyFontsSchema.optional(),
391
+ logo: MintlifyLogoSchema.optional(),
392
+ metadata: MintlifyMetadataSchema.optional(),
393
+ name: z.string().min(1),
394
+ navbar: MintlifyNavbarSchema.optional(),
395
+ navigation: MintlifyNavigationSchema,
396
+ search: MintlifySearchSchema.optional(),
397
+ seo: DocsSeoSchema.optional(),
398
+ theme: z.string().min(1),
399
+ })
400
+ .strict();
401
+ export const ContentTypeSchema = z.enum([
402
+ "site",
403
+ "blog",
404
+ "docs",
405
+ "courses",
406
+ "products",
407
+ "notes",
408
+ "forms",
409
+ "sheets",
410
+ "slides",
411
+ "todos",
412
+ ]);
413
+ const FrontmatterBaseSchema = z
414
+ .object({
415
+ description: z.string().optional(),
416
+ hidden: z.boolean().optional(),
417
+ title: z.string().min(1),
418
+ })
419
+ .passthrough();
420
+ const FrontmatterBlogSchema = FrontmatterBaseSchema.extend({
421
+ date: z.string().min(1),
422
+ tags: z.array(z.string()).optional(),
423
+ }).passthrough();
424
+ const FrontmatterCoursesSchema = FrontmatterBaseSchema.extend({
425
+ order: z.number(),
426
+ }).passthrough();
427
+ const FrontmatterProductsSchema = FrontmatterBaseSchema.extend({
428
+ currency: z.string().min(1),
429
+ price: z.number(),
430
+ sku: z.string().min(1),
431
+ }).passthrough();
432
+ const FrontmatterNotesSchema = FrontmatterBaseSchema.extend({
433
+ date: z.string().min(1),
434
+ }).passthrough();
435
+ const FormFieldSchema = z
436
+ .object({
437
+ id: z.string().min(1),
438
+ label: z.string().min(1),
439
+ options: z.array(z.string()).optional(),
440
+ required: z.boolean().optional(),
441
+ type: z.string().min(1),
442
+ })
443
+ .passthrough();
444
+ const FrontmatterFormsSchema = FrontmatterBaseSchema.extend({
445
+ fields: z.array(FormFieldSchema).min(1),
446
+ }).passthrough();
447
+ const FrontmatterSheetsSchema = FrontmatterBaseSchema.extend({
448
+ columns: z.array(z.string()).min(1),
449
+ }).passthrough();
450
+ const FrontmatterTodosSchema = FrontmatterBaseSchema.extend({
451
+ date: z.string().min(1),
452
+ }).passthrough();
453
+ export const PageModeSchema = z.enum([
454
+ "default",
455
+ "wide",
456
+ "custom",
457
+ "frame",
458
+ "center",
459
+ ]);
460
+ const FrontmatterDocsSchema = FrontmatterBaseSchema.extend({
461
+ deprecated: z.boolean().optional(),
462
+ hideApiMarker: z.boolean().optional(),
463
+ hideFooterPagination: z.boolean().optional(),
464
+ icon: z.string().optional(),
465
+ iconType: z
466
+ .enum([
467
+ "regular",
468
+ "solid",
469
+ "light",
470
+ "thin",
471
+ "sharp-solid",
472
+ "duotone",
473
+ "brands",
474
+ ])
475
+ .optional(),
476
+ keywords: z.array(z.string()).optional(),
477
+ mode: PageModeSchema.optional(),
478
+ noindex: z.boolean().optional(),
479
+ sidebarTitle: z.string().optional(),
480
+ tag: z.string().optional(),
481
+ url: z.string().url().optional(),
482
+ }).passthrough();
483
+ export const FrontmatterSchemaByType = {
484
+ blog: FrontmatterBlogSchema,
485
+ courses: FrontmatterCoursesSchema,
486
+ docs: FrontmatterDocsSchema,
487
+ forms: FrontmatterFormsSchema,
488
+ notes: FrontmatterNotesSchema,
489
+ products: FrontmatterProductsSchema,
490
+ sheets: FrontmatterSheetsSchema,
491
+ site: FrontmatterBaseSchema,
492
+ slides: FrontmatterBaseSchema,
493
+ todos: FrontmatterTodosSchema,
494
+ };
495
+ export const CollectionIndexSchema = z
496
+ .object({
497
+ description: z.string().optional(),
498
+ hidden: z.boolean().optional(),
499
+ slug: z.string().min(1),
500
+ title: z.string().optional(),
501
+ })
502
+ .strict();
503
+ export const CollectionSortSchema = z
504
+ .object({
505
+ direction: z.enum(["asc", "desc"]).optional(),
506
+ field: z.enum(["date", "order", "title", "price"]).optional(),
507
+ })
508
+ .strict();
509
+ export const CollectionConfigSchema = z
510
+ .object({
511
+ id: z.string().min(1),
512
+ index: CollectionIndexSchema.optional(),
513
+ navigation: DocsNavigationSchema.optional(),
514
+ openapi: z
515
+ .union([z.string(), z.array(z.string()), DocsOpenApiSourceSchema])
516
+ .optional(),
517
+ root: z.string().optional(),
518
+ slugPrefix: z.string().optional(),
519
+ sort: CollectionSortSchema.optional(),
520
+ type: ContentTypeSchema,
521
+ })
522
+ .strict();
523
+ export const SiteConfigSchema = z
524
+ .object({
525
+ collections: z.array(CollectionConfigSchema).min(1),
526
+ colors: DocsColorsSchema.optional(),
527
+ contextual: DocsContextualSchema.optional(),
528
+ description: z.string().optional(),
529
+ favicon: UrlOrPathSchema.optional(),
530
+ features: DocsFeatureFlagsSchema.optional(),
531
+ fonts: DocsFontsSchema.optional(),
532
+ logo: DocsLogoSchema.optional(),
533
+ metadata: z
534
+ .object({
535
+ defaultTitle: z.string().optional(),
536
+ ogImage: UrlOrPathSchema.optional(),
537
+ titleTemplate: z.string().optional(),
538
+ })
539
+ .strict()
540
+ .optional(),
541
+ name: z.string().min(1),
542
+ navigation: DocsNavigationSchema.optional(),
543
+ openapiProxy: DocsOpenApiProxySchema.optional(),
544
+ scripts: DocsScriptsSchema.optional(),
545
+ seo: DocsSeoSchema.optional(),
546
+ theme: z.string().optional(),
547
+ })
548
+ .strict();
@@ -0,0 +1,3 @@
1
+ export * from "./docs-config.js";
2
+ export * from "./tenant.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ // biome-ignore lint/performance/noBarrelFile: This is the main entry point for the package
2
+ export * from "./docs-config.js";
3
+ export * from "./tenant.js";
@@ -0,0 +1,25 @@
1
+ export interface Tenant {
2
+ id: string;
3
+ slug: string;
4
+ name: string;
5
+ description?: string;
6
+ activeDeploymentId?: string;
7
+ activeDeploymentManifestUrl?: string;
8
+ primaryDomain: string;
9
+ subdomain: string;
10
+ customDomains: string[];
11
+ pathPrefix?: string;
12
+ docsPath?: string;
13
+ status: "active" | "disabled";
14
+ }
15
+ export interface DomainRecord {
16
+ type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA";
17
+ name: string;
18
+ value: string;
19
+ ttl?: string;
20
+ }
21
+ export interface DomainStatus {
22
+ status: "Valid Configuration" | "Pending Verification" | "Invalid Configuration";
23
+ dnsRecords: DomainRecord[];
24
+ }
25
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../src/tenant.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EACF,qBAAqB,GACrB,sBAAsB,GACtB,uBAAuB,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@repo/models",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./src/index.ts",
9
+ "import": "./dist/index.js",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./*": {
13
+ "types": "./src/*.ts",
14
+ "import": "./dist/*.js",
15
+ "default": "./dist/*.js"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "rm -rf dist && tsc",
20
+ "check-types": "tsc --noEmit",
21
+ "lint": "oxlint .",
22
+ "lint:fix": "oxlint --fix .",
23
+ "format": "oxfmt --write .",
24
+ "format:check": "oxfmt ."
25
+ },
26
+ "dependencies": {
27
+ "zod": "^4.3.6"
28
+ },
29
+ "devDependencies": {
30
+ "@repo/typescript-config": "*",
31
+ "@types/node": "^22.19.15",
32
+ "oxfmt": "^0.42.0",
33
+ "oxlint": "^1.57.0",
34
+ "typescript": "6.0.2",
35
+ "ultracite": "^7.3.2"
36
+ }
37
+ }