blodemd 0.0.8 → 0.0.10

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 (68) hide show
  1. package/README.md +25 -9
  2. package/dev-server/app/[[...slug]]/page.tsx +1 -0
  3. package/dev-server/app/favicon.ico +0 -0
  4. package/dev-server/next.config.js +11 -13
  5. package/dev-server/package.json +1 -1
  6. package/dev-server/tsconfig.json +3 -0
  7. package/dist/cli.mjs +869 -184
  8. package/dist/cli.mjs.map +1 -1
  9. package/docs/app/globals.css +1 -1
  10. package/docs/components/animate-ui/primitives/buttons/button.tsx +14 -0
  11. package/docs/components/api/api-playground.tsx +255 -80
  12. package/docs/components/api/api-reference.tsx +11 -1
  13. package/docs/components/docs/contextual-menu.tsx +227 -142
  14. package/docs/components/docs/copy-page-menu.tsx +148 -85
  15. package/docs/components/docs/doc-header.tsx +13 -3
  16. package/docs/components/docs/doc-shell.tsx +25 -14
  17. package/docs/components/docs/mobile-nav.tsx +0 -6
  18. package/docs/components/mdx/code-group.tsx +171 -62
  19. package/docs/components/mdx/steps.tsx +1 -1
  20. package/docs/components/mdx/tabs.tsx +131 -26
  21. package/docs/components/ui/copy-button.tsx +122 -0
  22. package/docs/components/ui/input.tsx +0 -1
  23. package/docs/components/ui/search.tsx +241 -132
  24. package/docs/components/ui/site-footer.tsx +39 -0
  25. package/docs/lib/config.ts +7 -0
  26. package/docs/lib/content-root.ts +33 -0
  27. package/docs/lib/content-source.ts +70 -0
  28. package/docs/lib/contextual-options.ts +20 -0
  29. package/docs/lib/docs-runtime.tsx +595 -0
  30. package/docs/lib/edge-config.ts +95 -0
  31. package/docs/lib/env.ts +22 -0
  32. package/docs/lib/openapi-proxy.ts +88 -0
  33. package/docs/lib/platform-config.ts +6 -0
  34. package/docs/lib/routes.ts +39 -0
  35. package/docs/lib/supabase.ts +13 -0
  36. package/docs/lib/tenancy.ts +350 -0
  37. package/docs/lib/tenant-headers.ts +14 -0
  38. package/docs/lib/tenant-static.ts +529 -0
  39. package/docs/lib/tenant-utility-context.ts +62 -0
  40. package/docs/lib/tenants.ts +68 -0
  41. package/docs/lib/use-mobile.ts +19 -0
  42. package/package.json +3 -2
  43. package/packages/@repo/common/dist/index.d.ts +7 -0
  44. package/packages/@repo/common/dist/index.d.ts.map +1 -1
  45. package/packages/@repo/common/dist/index.js +42 -0
  46. package/packages/@repo/common/src/index.ts +50 -0
  47. package/packages/@repo/contracts/dist/project.d.ts +1 -1
  48. package/packages/@repo/contracts/dist/project.js +1 -1
  49. package/packages/@repo/contracts/src/project.ts +1 -1
  50. package/packages/@repo/models/dist/docs-config.d.ts +194 -29
  51. package/packages/@repo/models/dist/docs-config.d.ts.map +1 -1
  52. package/packages/@repo/models/dist/docs-config.js +3 -28
  53. package/packages/@repo/models/src/docs-config.ts +5 -31
  54. package/packages/@repo/previewing/dist/blob-source.d.ts.map +1 -1
  55. package/packages/@repo/previewing/dist/blob-source.js +7 -2
  56. package/packages/@repo/previewing/dist/fs-source.d.ts.map +1 -1
  57. package/packages/@repo/previewing/dist/fs-source.js +2 -3
  58. package/packages/@repo/previewing/dist/index.d.ts.map +1 -1
  59. package/packages/@repo/previewing/dist/index.js +20 -50
  60. package/packages/@repo/previewing/src/blob-source.ts +7 -4
  61. package/packages/@repo/previewing/src/fs-source.ts +2 -3
  62. package/packages/@repo/previewing/src/index.ts +29 -64
  63. package/packages/@repo/validation/dist/index.d.ts +2 -2
  64. package/packages/@repo/validation/dist/index.d.ts.map +1 -1
  65. package/packages/@repo/validation/dist/index.js +2 -2
  66. package/packages/@repo/validation/package.json +1 -0
  67. package/packages/@repo/validation/src/{mintlify-docs-schema.json → blodemd-docs-schema.json} +346 -1794
  68. package/packages/@repo/validation/src/index.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import path from "node:path";
2
2
  import { ensureArray, normalizePath, slugify } from "@repo/common";
3
3
  import { PageModeSchema } from "@repo/models";
4
4
  import { extractOpenApiOperations, openApiIdentifier, openApiSlug, parseOpenApiSpec, } from "@repo/prebuild";
5
- import { validateDocsConfig, validateFrontmatter } from "@repo/validation";
5
+ import { validateDocsConfig, validateFrontmatter, validateSiteConfig, } from "@repo/validation";
6
6
  import YAML from "yaml";
7
7
  export { BlobContentSource, createBlobSource } from "./blob-source.js";
8
8
  export { createFsSource, FsContentSource } from "./fs-source.js";
@@ -116,35 +116,6 @@ const defaultLinkLabel = (input) => {
116
116
  return input.href;
117
117
  }
118
118
  };
119
- const buildGoogleFontsCssUrl = (fonts) => {
120
- if (!fonts) {
121
- return undefined;
122
- }
123
- const fontEntries = [];
124
- if (fonts.family) {
125
- fontEntries.push({ family: fonts.family, source: fonts.source });
126
- }
127
- if (fonts.body) {
128
- fontEntries.push({
129
- family: fonts.body.family,
130
- source: fonts.body.source,
131
- });
132
- }
133
- if (fonts.heading) {
134
- fontEntries.push({
135
- family: fonts.heading.family,
136
- source: fonts.heading.source,
137
- });
138
- }
139
- const googleFamilies = [
140
- ...new Set(fontEntries.filter((entry) => !entry.source).map((entry) => entry.family)),
141
- ];
142
- if (!googleFamilies.length) {
143
- return undefined;
144
- }
145
- const params = googleFamilies.map((family) => `family=${encodeURIComponent(family).replaceAll("%20", "+")}`);
146
- return `https://fonts.googleapis.com/css2?${params.join("&")}&display=swap`;
147
- };
148
119
  // oxlint-disable-next-line eslint/complexity
149
120
  const mapDocsConfig = (docs) => {
150
121
  const navigation = {
@@ -199,15 +170,6 @@ const mapDocsConfig = (docs) => {
199
170
  url: version.href,
200
171
  })),
201
172
  };
202
- const baseFontFamily = docs.fonts?.family;
203
- const fonts = docs.fonts && (baseFontFamily || docs.fonts.body || docs.fonts.heading)
204
- ? {
205
- body: docs.fonts.body?.family ?? baseFontFamily,
206
- cssUrl: buildGoogleFontsCssUrl(docs.fonts),
207
- heading: docs.fonts.heading?.family ?? baseFontFamily,
208
- provider: "google",
209
- }
210
- : undefined;
211
173
  return {
212
174
  collections: [
213
175
  {
@@ -218,7 +180,6 @@ const mapDocsConfig = (docs) => {
218
180
  type: "docs",
219
181
  },
220
182
  ],
221
- colors: docs.colors,
222
183
  contextual: docs.contextual,
223
184
  description: docs.description,
224
185
  favicon: typeof docs.favicon === "string" ? docs.favicon : docs.favicon?.light,
@@ -228,10 +189,10 @@ const mapDocsConfig = (docs) => {
228
189
  themeToggle: docs.appearance?.strict !== true,
229
190
  toc: true,
230
191
  },
231
- fonts,
232
192
  logo: docs.logo
233
193
  ? {
234
194
  dark: typeof docs.logo === "string" ? docs.logo : docs.logo.dark,
195
+ href: typeof docs.logo === "string" ? undefined : docs.logo.href,
235
196
  light: typeof docs.logo === "string" ? docs.logo : docs.logo.light,
236
197
  }
237
198
  : undefined,
@@ -242,7 +203,6 @@ const mapDocsConfig = (docs) => {
242
203
  Boolean(docs.api?.openapi || docs.api?.asyncapi),
243
204
  },
244
205
  seo: docs.seo,
245
- theme: docs.theme,
246
206
  };
247
207
  };
248
208
  const readJsonConfig = async (source, relativePath) => JSON.parse(await source.readFile(relativePath));
@@ -311,15 +271,25 @@ const loadDocsConfig = async (source) => {
311
271
  }
312
272
  try {
313
273
  const parsed = await readResolvedJsonConfig(source, DOCS_CONFIG_FILE);
314
- const result = validateDocsConfig(parsed);
315
- if (!result.success) {
316
- return { errors: result.errors, ok: false };
274
+ // Try SiteConfig format first (has collections, theme, colors, etc.)
275
+ const siteResult = validateSiteConfig(parsed);
276
+ if (siteResult.success) {
277
+ return {
278
+ config: siteResult.data,
279
+ ok: true,
280
+ warnings: [],
281
+ };
317
282
  }
318
- return {
319
- config: mapDocsConfig(result.data),
320
- ok: true,
321
- warnings: [],
322
- };
283
+ // Fall back to DocsConfig format (Mintlify-compatible) and map to SiteConfig
284
+ const docsResult = validateDocsConfig(parsed);
285
+ if (docsResult.success) {
286
+ return {
287
+ config: mapDocsConfig(docsResult.data),
288
+ ok: true,
289
+ warnings: [],
290
+ };
291
+ }
292
+ return { errors: docsResult.errors, ok: false };
323
293
  }
324
294
  catch (error) {
325
295
  return {
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
2
 
3
- import { normalizePath } from "@repo/common";
3
+ import { normalizePath, shouldIgnoreRootDocsFile } from "@repo/common";
4
4
 
5
5
  import type { CompiledMdxResult, ContentSource } from "./content-source.js";
6
6
 
@@ -116,9 +116,12 @@ export class BlobContentSource implements ContentSource {
116
116
  const manifest = await this.loadManifest();
117
117
  const prefix = normalizeDirectory(directory);
118
118
 
119
- const files = [...manifest.keys()].filter((file) =>
120
- prefix ? file.startsWith(prefix) : true
121
- );
119
+ const files = [...manifest.keys()].filter((file) => {
120
+ if (shouldIgnoreRootDocsFile(file)) {
121
+ return false;
122
+ }
123
+ return prefix ? file.startsWith(prefix) : true;
124
+ });
122
125
  // oxlint-disable-next-line eslint-plugin-unicorn/no-array-sort
123
126
  files.sort();
124
127
  return files;
@@ -1,12 +1,11 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
 
4
- import { normalizePath } from "@repo/common";
4
+ import { normalizePath, shouldIgnoreRootDocsFile } from "@repo/common";
5
5
 
6
6
  import type { ContentSource } from "./content-source.js";
7
7
 
8
8
  const IGNORED_DIRECTORIES = new Set(["app", "lib", "node_modules", "public"]);
9
- const IGNORED_ROOT_FILES = new Set(["AGENTS.md", "README.md"]);
10
9
 
11
10
  const isNotFoundError = (error: unknown) =>
12
11
  Boolean(
@@ -54,7 +53,7 @@ const walkFiles = async (
54
53
  }
55
54
 
56
55
  if (entry.isFile()) {
57
- if (!prefix && IGNORED_ROOT_FILES.has(entry.name)) {
56
+ if (!prefix && shouldIgnoreRootDocsFile(entry.name)) {
58
57
  continue;
59
58
  }
60
59
  files.push(normalizePath(relativePath));
@@ -4,9 +4,9 @@ import { ensureArray, normalizePath, slugify } from "@repo/common";
4
4
  import type {
5
5
  CollectionConfig,
6
6
  ContentType,
7
+ DocsConfig,
7
8
  DocsOpenApiSource,
8
9
  FrontmatterByType,
9
- MintlifyDocsConfig,
10
10
  PageMode,
11
11
  SiteConfig,
12
12
  } from "@repo/models";
@@ -18,7 +18,11 @@ import {
18
18
  parseOpenApiSpec,
19
19
  } from "@repo/prebuild";
20
20
  import type { OpenApiOperation, OpenApiSpec } from "@repo/prebuild";
21
- import { validateDocsConfig, validateFrontmatter } from "@repo/validation";
21
+ import {
22
+ validateDocsConfig,
23
+ validateFrontmatter,
24
+ validateSiteConfig,
25
+ } from "@repo/validation";
22
26
  import YAML from "yaml";
23
27
 
24
28
  import type { ContentSource } from "./content-source.js";
@@ -239,47 +243,8 @@ const defaultLinkLabel = (input: {
239
243
  }
240
244
  };
241
245
 
242
- const buildGoogleFontsCssUrl = (
243
- fonts: MintlifyDocsConfig["fonts"]
244
- ): string | undefined => {
245
- if (!fonts) {
246
- return undefined;
247
- }
248
-
249
- const fontEntries: { family: string; source?: string }[] = [];
250
- if (fonts.family) {
251
- fontEntries.push({ family: fonts.family, source: fonts.source });
252
- }
253
- if (fonts.body) {
254
- fontEntries.push({
255
- family: fonts.body.family,
256
- source: fonts.body.source,
257
- });
258
- }
259
- if (fonts.heading) {
260
- fontEntries.push({
261
- family: fonts.heading.family,
262
- source: fonts.heading.source,
263
- });
264
- }
265
-
266
- const googleFamilies = [
267
- ...new Set(
268
- fontEntries.filter((entry) => !entry.source).map((entry) => entry.family)
269
- ),
270
- ];
271
- if (!googleFamilies.length) {
272
- return undefined;
273
- }
274
-
275
- const params = googleFamilies.map(
276
- (family) => `family=${encodeURIComponent(family).replaceAll("%20", "+")}`
277
- );
278
- return `https://fonts.googleapis.com/css2?${params.join("&")}&display=swap`;
279
- };
280
-
281
246
  // oxlint-disable-next-line eslint/complexity
282
- const mapDocsConfig = (docs: MintlifyDocsConfig): SiteConfig => {
247
+ const mapDocsConfig = (docs: DocsConfig): SiteConfig => {
283
248
  const navigation = {
284
249
  global:
285
250
  docs.navbar?.links?.length || docs.navigation.global?.anchors?.length
@@ -334,17 +299,6 @@ const mapDocsConfig = (docs: MintlifyDocsConfig): SiteConfig => {
334
299
  })),
335
300
  } satisfies SiteConfig["navigation"];
336
301
 
337
- const baseFontFamily = docs.fonts?.family;
338
- const fonts =
339
- docs.fonts && (baseFontFamily || docs.fonts.body || docs.fonts.heading)
340
- ? {
341
- body: docs.fonts.body?.family ?? baseFontFamily,
342
- cssUrl: buildGoogleFontsCssUrl(docs.fonts),
343
- heading: docs.fonts.heading?.family ?? baseFontFamily,
344
- provider: "google" as const,
345
- }
346
- : undefined;
347
-
348
302
  return {
349
303
  collections: [
350
304
  {
@@ -355,7 +309,6 @@ const mapDocsConfig = (docs: MintlifyDocsConfig): SiteConfig => {
355
309
  type: "docs",
356
310
  },
357
311
  ],
358
- colors: docs.colors,
359
312
  contextual: docs.contextual,
360
313
  description: docs.description,
361
314
  favicon:
@@ -366,10 +319,10 @@ const mapDocsConfig = (docs: MintlifyDocsConfig): SiteConfig => {
366
319
  themeToggle: docs.appearance?.strict !== true,
367
320
  toc: true,
368
321
  },
369
- fonts,
370
322
  logo: docs.logo
371
323
  ? {
372
324
  dark: typeof docs.logo === "string" ? docs.logo : docs.logo.dark,
325
+ href: typeof docs.logo === "string" ? undefined : docs.logo.href,
373
326
  light: typeof docs.logo === "string" ? docs.logo : docs.logo.light,
374
327
  }
375
328
  : undefined,
@@ -381,7 +334,6 @@ const mapDocsConfig = (docs: MintlifyDocsConfig): SiteConfig => {
381
334
  Boolean(docs.api?.openapi || docs.api?.asyncapi),
382
335
  },
383
336
  seo: docs.seo,
384
- theme: docs.theme,
385
337
  };
386
338
  };
387
339
 
@@ -504,15 +456,28 @@ const loadDocsConfig = async (
504
456
 
505
457
  try {
506
458
  const parsed = await readResolvedJsonConfig(source, DOCS_CONFIG_FILE);
507
- const result = validateDocsConfig(parsed);
508
- if (!result.success) {
509
- return { errors: result.errors, ok: false };
459
+
460
+ // Try SiteConfig format first (has collections, theme, colors, etc.)
461
+ const siteResult = validateSiteConfig(parsed);
462
+ if (siteResult.success) {
463
+ return {
464
+ config: siteResult.data,
465
+ ok: true,
466
+ warnings: [],
467
+ };
510
468
  }
511
- return {
512
- config: mapDocsConfig(result.data),
513
- ok: true,
514
- warnings: [],
515
- };
469
+
470
+ // Fall back to DocsConfig format (Mintlify-compatible) and map to SiteConfig
471
+ const docsResult = validateDocsConfig(parsed);
472
+ if (docsResult.success) {
473
+ return {
474
+ config: mapDocsConfig(docsResult.data),
475
+ ok: true,
476
+ warnings: [],
477
+ };
478
+ }
479
+
480
+ return { errors: docsResult.errors, ok: false };
516
481
  } catch (error) {
517
482
  return {
518
483
  errors: [
@@ -1,4 +1,4 @@
1
- import type { ContentType, FrontmatterByType, MintlifyDocsConfig, SiteConfig } from "@repo/models";
1
+ import type { ContentType, DocsConfig, FrontmatterByType, SiteConfig } from "@repo/models";
2
2
  export type ValidationResult<T> = {
3
3
  success: true;
4
4
  data: T;
@@ -7,6 +7,6 @@ export type ValidationResult<T> = {
7
7
  errors: string[];
8
8
  };
9
9
  export declare const validateSiteConfig: (input: unknown) => ValidationResult<SiteConfig>;
10
- export declare const validateDocsConfig: (input: unknown) => ValidationResult<MintlifyDocsConfig>;
10
+ export declare const validateDocsConfig: (input: unknown) => ValidationResult<DocsConfig>;
11
11
  export declare const validateFrontmatter: <Type extends ContentType>(type: Type, input: unknown) => ValidationResult<FrontmatterByType[Type]>;
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAQzC,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,gBAAgB,CAAC,UAAU,CAQ7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,gBAAgB,CAAC,kBAAkB,CAQrC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,WAAW,EAC1D,MAAM,IAAI,EACV,OAAO,OAAO,KACb,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAS1C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAQzC,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,gBAAgB,CAAC,UAAU,CAQ7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,gBAAgB,CAAC,UAAU,CAQ7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,WAAW,EAC1D,MAAM,IAAI,EACV,OAAO,OAAO,KACb,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAS1C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FrontmatterSchemaByType, MintlifyDocsConfigSchema, SiteConfigSchema, } from "@repo/models";
1
+ import { DocsConfigSchema, FrontmatterSchemaByType, SiteConfigSchema, } from "@repo/models";
2
2
  const formatIssues = (issues) => issues.map((issue) => {
3
3
  const path = issue.path.length ? issue.path.map(String).join(".") : "root";
4
4
  return `${path}: ${issue.message}`;
@@ -12,7 +12,7 @@ export const validateSiteConfig = (input) => {
12
12
  return { errors: issues, success: false };
13
13
  };
14
14
  export const validateDocsConfig = (input) => {
15
- const result = MintlifyDocsConfigSchema.safeParse(input);
15
+ const result = DocsConfigSchema.safeParse(input);
16
16
  if (result.success) {
17
17
  return { data: result.data, success: true };
18
18
  }
@@ -18,6 +18,7 @@
18
18
  "scripts": {
19
19
  "build": "rm -rf dist && tsc",
20
20
  "check-types": "tsc --noEmit",
21
+ "generate:docs-schema": "node ./scripts/generate-blodemd-docs-schema.mjs",
21
22
  "lint": "oxlint .",
22
23
  "lint:fix": "oxlint --fix .",
23
24
  "format": "oxfmt --write .",