@grove-dev/core 0.6.1 → 0.8.0

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 (134) hide show
  1. package/README.md +100 -23
  2. package/dist/audit.d.ts +8 -3
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +29 -8
  5. package/dist/audit.js.map +1 -1
  6. package/dist/awesome-readme.d.ts.map +1 -1
  7. package/dist/awesome-readme.js +31 -31
  8. package/dist/awesome-readme.js.map +1 -1
  9. package/dist/build-data.d.ts +1 -1
  10. package/dist/build-data.d.ts.map +1 -1
  11. package/dist/build-data.js +132 -74
  12. package/dist/build-data.js.map +1 -1
  13. package/dist/collections-io.d.ts +1 -1
  14. package/dist/collections-io.js +8 -8
  15. package/dist/collections-io.js.map +1 -1
  16. package/dist/collections.d.ts +2 -2
  17. package/dist/collections.d.ts.map +1 -1
  18. package/dist/collections.js +8 -9
  19. package/dist/collections.js.map +1 -1
  20. package/dist/collector.d.ts +1 -1
  21. package/dist/collector.d.ts.map +1 -1
  22. package/dist/collector.js +2 -2
  23. package/dist/collector.js.map +1 -1
  24. package/dist/config.d.ts +1 -1
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +4 -4
  27. package/dist/config.js.map +1 -1
  28. package/dist/content-body.d.ts.map +1 -1
  29. package/dist/content-body.js +22 -22
  30. package/dist/content-body.js.map +1 -1
  31. package/dist/contributors.d.ts.map +1 -1
  32. package/dist/contributors.js +22 -23
  33. package/dist/contributors.js.map +1 -1
  34. package/dist/decisions.d.ts +1 -1
  35. package/dist/decisions.d.ts.map +1 -1
  36. package/dist/decisions.js +18 -20
  37. package/dist/decisions.js.map +1 -1
  38. package/dist/directory-client.d.ts +6 -4
  39. package/dist/directory-client.d.ts.map +1 -1
  40. package/dist/directory-client.js +9 -4
  41. package/dist/directory-client.js.map +1 -1
  42. package/dist/directory-facets.d.ts +1 -1
  43. package/dist/directory-facets.d.ts.map +1 -1
  44. package/dist/directory-facets.js +35 -17
  45. package/dist/directory-facets.js.map +1 -1
  46. package/dist/directory-filter-keys.d.ts +53 -0
  47. package/dist/directory-filter-keys.d.ts.map +1 -0
  48. package/dist/directory-filter-keys.js +66 -0
  49. package/dist/directory-filter-keys.js.map +1 -0
  50. package/dist/directory-format.d.ts.map +1 -1
  51. package/dist/directory-format.js +15 -15
  52. package/dist/directory-format.js.map +1 -1
  53. package/dist/directory-lenses.d.ts +1 -1
  54. package/dist/directory-lenses.d.ts.map +1 -1
  55. package/dist/directory-lenses.js +66 -61
  56. package/dist/directory-lenses.js.map +1 -1
  57. package/dist/directory-repo.js +2 -2
  58. package/dist/directory-scores.d.ts.map +1 -1
  59. package/dist/directory-scores.js +25 -25
  60. package/dist/directory-scores.js.map +1 -1
  61. package/dist/directory-search.d.ts +4 -4
  62. package/dist/directory-search.d.ts.map +1 -1
  63. package/dist/directory-search.js +99 -107
  64. package/dist/directory-search.js.map +1 -1
  65. package/dist/directory-taxonomy.d.ts +1 -1
  66. package/dist/directory-taxonomy.d.ts.map +1 -1
  67. package/dist/directory-taxonomy.js +2 -2
  68. package/dist/directory-taxonomy.js.map +1 -1
  69. package/dist/enrich.d.ts.map +1 -1
  70. package/dist/enrich.js +15 -12
  71. package/dist/enrich.js.map +1 -1
  72. package/dist/github-client.js +6 -6
  73. package/dist/github.d.ts +9 -1
  74. package/dist/github.d.ts.map +1 -1
  75. package/dist/github.js +26 -14
  76. package/dist/github.js.map +1 -1
  77. package/dist/health.d.ts +1 -1
  78. package/dist/health.js +44 -44
  79. package/dist/host.js +2 -2
  80. package/dist/importer.d.ts +2 -2
  81. package/dist/importer.d.ts.map +1 -1
  82. package/dist/importer.js +1 -1
  83. package/dist/importer.js.map +1 -1
  84. package/dist/index.d.ts +66 -63
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +86 -75
  87. package/dist/index.js.map +1 -1
  88. package/dist/io.js +8 -8
  89. package/dist/llms.d.ts +1 -1
  90. package/dist/llms.d.ts.map +1 -1
  91. package/dist/llms.js +69 -65
  92. package/dist/llms.js.map +1 -1
  93. package/dist/markdown.d.ts.map +1 -1
  94. package/dist/markdown.js.map +1 -1
  95. package/dist/og-image.d.ts +8 -8
  96. package/dist/og-image.d.ts.map +1 -1
  97. package/dist/og-image.js +91 -84
  98. package/dist/og-image.js.map +1 -1
  99. package/dist/page-document.d.ts +8 -8
  100. package/dist/page-document.d.ts.map +1 -1
  101. package/dist/page-document.js +48 -54
  102. package/dist/page-document.js.map +1 -1
  103. package/dist/parseReadme.d.ts.map +1 -1
  104. package/dist/parseReadme.js +9 -11
  105. package/dist/parseReadme.js.map +1 -1
  106. package/dist/prepare.d.ts +5 -5
  107. package/dist/prepare.d.ts.map +1 -1
  108. package/dist/prepare.js +46 -35
  109. package/dist/prepare.js.map +1 -1
  110. package/dist/related.d.ts +1 -1
  111. package/dist/schema.d.ts +21 -21
  112. package/dist/schema.d.ts.map +1 -1
  113. package/dist/schema.js +134 -141
  114. package/dist/schema.js.map +1 -1
  115. package/dist/site-artifacts.js +1 -1
  116. package/dist/sitemap.d.ts +2 -2
  117. package/dist/sitemap.d.ts.map +1 -1
  118. package/dist/sitemap.js +39 -39
  119. package/dist/sitemap.js.map +1 -1
  120. package/dist/slug.js +4 -4
  121. package/dist/sync-icons.js +15 -15
  122. package/dist/taxonomy-inference.d.ts +27 -0
  123. package/dist/taxonomy-inference.d.ts.map +1 -0
  124. package/dist/taxonomy-inference.js +38 -0
  125. package/dist/taxonomy-inference.js.map +1 -0
  126. package/dist/validate.d.ts +3 -3
  127. package/dist/validate.d.ts.map +1 -1
  128. package/dist/validate.js +56 -58
  129. package/dist/validate.js.map +1 -1
  130. package/dist/yaml.d.ts +47 -0
  131. package/dist/yaml.d.ts.map +1 -0
  132. package/dist/yaml.js +56 -0
  133. package/dist/yaml.js.map +1 -0
  134. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  /**
3
3
  * A blueprint defines the shape and behavior of a Grove site.
4
4
  *
@@ -1842,7 +1842,7 @@ export interface IndexBase {
1842
1842
  * can write their own `summary` without overwriting it. */
1843
1843
  sourceDescription?: string | undefined;
1844
1844
  content?: string | undefined;
1845
- curation: ProjectRecord["curation"];
1845
+ curation: ProjectRecord['curation'];
1846
1846
  licenses: string[];
1847
1847
  }
1848
1848
  export interface IndexGithubSummary {
@@ -1857,45 +1857,45 @@ export interface IndexGithubSummary {
1857
1857
  topics: string[];
1858
1858
  }
1859
1859
  export interface IndexProjectRecord extends IndexBase {
1860
- kind: "project";
1860
+ kind: 'project';
1861
1861
  name: string;
1862
- stack: ProjectRecord["stack"];
1862
+ stack: ProjectRecord['stack'];
1863
1863
  stacks: string[];
1864
1864
  platforms: string[];
1865
1865
  licenses: string[];
1866
- projectType: ProjectRecord["projectType"];
1867
- repoUrl: ProjectRecord["repoUrl"];
1868
- logoUrl: ProjectRecord["logoUrl"];
1869
- screenshots: ProjectRecord["screenshots"];
1870
- difficulty: ProjectRecord["difficulty"];
1871
- codebaseSize: ProjectRecord["codebaseSize"];
1866
+ projectType: ProjectRecord['projectType'];
1867
+ repoUrl: ProjectRecord['repoUrl'];
1868
+ logoUrl: ProjectRecord['logoUrl'];
1869
+ screenshots: ProjectRecord['screenshots'];
1870
+ difficulty: ProjectRecord['difficulty'];
1871
+ codebaseSize: ProjectRecord['codebaseSize'];
1872
1872
  bestFor: string[];
1873
1873
  whyListed: string[];
1874
1874
  caveats: string[];
1875
- health: ProjectRecord["health"];
1875
+ health: ProjectRecord['health'];
1876
1876
  /** Effective visibility — decisions.yml overrides win over health. */
1877
1877
  visibility: DecisionVisibility;
1878
1878
  github: IndexGithubSummary | undefined;
1879
1879
  }
1880
1880
  export interface IndexResourceRecord extends IndexBase {
1881
- kind: "resource";
1881
+ kind: 'resource';
1882
1882
  title: string;
1883
- type: ResourceRecord["type"];
1883
+ type: ResourceRecord['type'];
1884
1884
  topic: string;
1885
1885
  related: string[];
1886
- publishedAt: ResourceRecord["publishedAt"];
1887
- author: ResourceRecord["author"];
1886
+ publishedAt: ResourceRecord['publishedAt'];
1887
+ author: ResourceRecord['author'];
1888
1888
  /** Effective visibility — decisions.yml overrides win over the record default. */
1889
1889
  visibility: DecisionVisibility;
1890
1890
  }
1891
1891
  export interface IndexEntityRecord extends IndexBase {
1892
- kind: "entity";
1892
+ kind: 'entity';
1893
1893
  name: string;
1894
- type: EntityRecord["type"];
1895
- founded: EntityRecord["founded"];
1896
- location: EntityRecord["location"];
1897
- members: EntityRecord["members"];
1898
- parent: EntityRecord["parent"];
1894
+ type: EntityRecord['type'];
1895
+ founded: EntityRecord['founded'];
1896
+ location: EntityRecord['location'];
1897
+ members: EntityRecord['members'];
1898
+ parent: EntityRecord['parent'];
1899
1899
  /** Effective visibility — decisions.yml overrides win over the record default. */
1900
1900
  visibility: DecisionVisibility;
1901
1901
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -1,6 +1,6 @@
1
- import { z } from "zod";
2
- import { parse, stringify } from "yaml";
3
- import { DEFAULT_FACETS, FACET_IDS } from "./directory-facets.js";
1
+ import { parse, stringify } from 'yaml';
2
+ import { z } from 'zod';
3
+ import { DEFAULT_FACETS, FACET_IDS } from './directory-facets.js';
4
4
  // ──────────────────────────────────────────────────────────────────────
5
5
  // Blueprints and kinds
6
6
  // ──────────────────────────────────────────────────────────────────────
@@ -10,91 +10,82 @@ import { DEFAULT_FACETS, FACET_IDS } from "./directory-facets.js";
10
10
  * V1 ships three fixed blueprints. They are not extensible — no custom
11
11
  * blueprint API in V1.
12
12
  */
13
- export const blueprintSchema = z.enum([
14
- "project-directory",
15
- "resource-hub",
16
- "ecosystem-map",
17
- ]);
13
+ export const blueprintSchema = z.enum(['project-directory', 'resource-hub', 'ecosystem-map']);
18
14
  /**
19
15
  * Each blueprint is bound to a single resource kind. Records are
20
16
  * discriminated by `kind`, which must match the blueprint of the site
21
17
  * that owns them.
22
18
  */
23
- export const resourceKindSchema = z.enum(["project", "resource", "entity"]);
19
+ export const resourceKindSchema = z.enum(['project', 'resource', 'entity']);
24
20
  export const blueprintKind = {
25
- "project-directory": "project",
26
- "resource-hub": "resource",
27
- "ecosystem-map": "entity",
21
+ 'project-directory': 'project',
22
+ 'resource-hub': 'resource',
23
+ 'ecosystem-map': 'entity',
28
24
  };
29
25
  // ──────────────────────────────────────────────────────────────────────
30
26
  // Health & decision labels
31
27
  // ──────────────────────────────────────────────────────────────────────
32
28
  export const healthStatusSchema = z.enum([
33
- "active",
34
- "mature",
35
- "stale",
36
- "inactive",
37
- "archived",
38
- "unknown",
39
- "historical",
40
- "needs_review",
41
- "quiet",
42
- "unavailable",
29
+ 'active',
30
+ 'mature',
31
+ 'stale',
32
+ 'inactive',
33
+ 'archived',
34
+ 'unknown',
35
+ 'historical',
36
+ 'needs_review',
37
+ 'quiet',
38
+ 'unavailable',
43
39
  ]);
44
40
  export const decisionVisibilitySchema = z.enum([
45
- "highlight",
46
- "keep",
47
- "needs_review",
48
- "hide",
49
- "remove",
50
- "historical",
51
- ]);
52
- export const healthTierSchema = z.enum([
53
- "curated",
54
- "listed",
55
- "experimental",
56
- "hidden",
41
+ 'highlight',
42
+ 'keep',
43
+ 'needs_review',
44
+ 'hide',
45
+ 'remove',
46
+ 'historical',
57
47
  ]);
48
+ export const healthTierSchema = z.enum(['curated', 'listed', 'experimental', 'hidden']);
58
49
  // ──────────────────────────────────────────────────────────────────────
59
50
  // Curation enums (shared)
60
51
  // ──────────────────────────────────────────────────────────────────────
61
52
  export const projectTypeSchema = z.enum([
62
- "real-app",
63
- "production",
64
- "reference",
65
- "library",
66
- "tool",
67
- "demo",
68
- "template",
69
- "historical",
53
+ 'real-app',
54
+ 'production',
55
+ 'reference',
56
+ 'library',
57
+ 'tool',
58
+ 'demo',
59
+ 'template',
60
+ 'historical',
70
61
  ]);
71
62
  export const resourceTypeSchema = z.enum([
72
- "guide",
73
- "comparison",
74
- "link",
75
- "explainer",
76
- "tool",
77
- "video",
78
- "article",
79
- "course",
80
- "book",
81
- "podcast",
82
- "other",
63
+ 'guide',
64
+ 'comparison',
65
+ 'link',
66
+ 'explainer',
67
+ 'tool',
68
+ 'video',
69
+ 'article',
70
+ 'course',
71
+ 'book',
72
+ 'podcast',
73
+ 'other',
83
74
  ]);
84
75
  export const entityTypeSchema = z.enum([
85
- "company",
86
- "organization",
87
- "community",
88
- "school",
89
- "university",
90
- "research-lab",
91
- "agency",
92
- "service",
93
- "product",
94
- "person",
95
- "other",
76
+ 'company',
77
+ 'organization',
78
+ 'community',
79
+ 'school',
80
+ 'university',
81
+ 'research-lab',
82
+ 'agency',
83
+ 'service',
84
+ 'product',
85
+ 'person',
86
+ 'other',
96
87
  ]);
97
- export const appLabelSchema = z.enum(["new", "hot", "mature", "featured"]);
88
+ export const appLabelSchema = z.enum(['new', 'hot', 'mature', 'featured']);
98
89
  export const scoreSchema = z.object({
99
90
  activity: z.number().min(0).max(100).optional(),
100
91
  maturity: z.number().min(0).max(100).optional(),
@@ -189,20 +180,17 @@ export const githubMetadataSchema = z.object({
189
180
  size: z.number().int().nonnegative().optional(),
190
181
  files: z.record(z.string(), z.boolean()).optional(),
191
182
  monthlyCommits: z
192
- .array(z.union([
193
- z.number(),
194
- z.object({ month: z.string(), commits: z.number() }),
195
- ]))
183
+ .array(z.union([z.number(), z.object({ month: z.string(), commits: z.number() })]))
196
184
  .optional(),
197
185
  });
198
186
  export const healthBlockSchema = z.object({
199
- status: healthStatusSchema.default("unknown"),
200
- maturity: z.enum(["experimental", "useful", "mature", "unknown"]).default("unknown"),
201
- tier: healthTierSchema.default("experimental"),
202
- visibility: decisionVisibilitySchema.default("keep"),
187
+ status: healthStatusSchema.default('unknown'),
188
+ maturity: z.enum(['experimental', 'useful', 'mature', 'unknown']).default('unknown'),
189
+ tier: healthTierSchema.default('experimental'),
190
+ visibility: decisionVisibilitySchema.default('keep'),
203
191
  cleanupCandidate: z.boolean().default(false),
204
192
  staleReason: z.string().nullable().optional(),
205
- confidence: z.enum(["low", "medium", "high"]).default("medium"),
193
+ confidence: z.enum(['low', 'medium', 'high']).default('medium'),
206
194
  reasons: z.array(z.string()).default([]),
207
195
  });
208
196
  export const healthEntrySchema = z.object({
@@ -259,7 +247,7 @@ const curationBlockSchema = z
259
247
  // ──────────────────────────────────────────────────────────────────────
260
248
  const resourceBaseSchema = z.object({
261
249
  slug: z.string().min(1),
262
- description: z.string().default(""),
250
+ description: z.string().default(''),
263
251
  /**
264
252
  * Open Apps-written summary, surfaced as the lead paragraph on the
265
253
  * detail page above the original (GitHub-sourced) description.
@@ -275,21 +263,22 @@ const resourceBaseSchema = z.object({
275
263
  * overwriting what GitHub says the project is.
276
264
  */
277
265
  sourceDescription: z.string().optional(),
278
- category: z.string().min(1).default("uncategorized"),
266
+ category: z.string().min(1).default('uncategorized'),
279
267
  tags: z.array(z.string()).default([]),
280
268
  links: linksSchema,
281
269
  content: z.string().optional(), // path to markdown body under content/records/
282
270
  source: z
283
271
  .object({
284
- type: z.enum(["manual", "github-topic", "awesome-list", "submit", "import"])
285
- .default("manual"),
272
+ type: z
273
+ .enum(['manual', 'github-topic', 'awesome-list', 'submit', 'import'])
274
+ .default('manual'),
286
275
  file: z.string().optional(),
287
276
  url: z.string().optional(),
288
277
  provider: z.string().optional(),
289
278
  owner: z.string().optional(),
290
279
  repo: z.string().optional(),
291
280
  })
292
- .default({ type: "manual" }),
281
+ .default({ type: 'manual' }),
293
282
  curation: curationBlockSchema,
294
283
  scores: scoreSchema.default({}),
295
284
  /**
@@ -300,13 +289,13 @@ const resourceBaseSchema = z.object({
300
289
  * Defaults to "keep" so existing YAML files without the field
301
290
  * continue to validate.
302
291
  */
303
- visibility: decisionVisibilitySchema.default("keep"),
292
+ visibility: decisionVisibilitySchema.default('keep'),
304
293
  });
305
294
  // ──────────────────────────────────────────────────────────────────────
306
295
  // Blueprint: project-directory — kind: project
307
296
  // ──────────────────────────────────────────────────────────────────────
308
297
  export const projectRecordSchema = resourceBaseSchema.extend({
309
- kind: z.literal("project"),
298
+ kind: z.literal('project'),
310
299
  name: z.string().min(1),
311
300
  projectType: projectTypeSchema.optional(),
312
301
  stack: z.string().optional(),
@@ -316,8 +305,8 @@ export const projectRecordSchema = resourceBaseSchema.extend({
316
305
  // authored when a record is curated; otherwise derived from the
317
306
  // GitHub sync's `license.spdx_id` field at build time.
318
307
  licenses: z.array(z.string()).default([]),
319
- difficulty: z.enum(["beginner", "intermediate", "advanced"]).optional(),
320
- codebaseSize: z.enum(["small", "medium", "large", "huge"]).optional(),
308
+ difficulty: z.enum(['beginner', 'intermediate', 'advanced']).optional(),
309
+ codebaseSize: z.enum(['small', 'medium', 'large', 'huge']).optional(),
321
310
  // Canonical repo URL. Distinct from `links.github`, which is the
322
311
  // human-facing link on the page; `repoUrl` is the single source
323
312
  // for owner/repo extraction, avatar fallback, and "view repo" CTAs.
@@ -379,7 +368,7 @@ export const projectRecordSchema = resourceBaseSchema.extend({
379
368
  // Blueprint: resource-hub — kind: resource
380
369
  // ──────────────────────────────────────────────────────────────────────
381
370
  export const resourceRecordSchema = resourceBaseSchema.extend({
382
- kind: z.literal("resource"),
371
+ kind: z.literal('resource'),
383
372
  title: z.string().min(1),
384
373
  type: resourceTypeSchema,
385
374
  topic: z.string().min(1),
@@ -391,7 +380,7 @@ export const resourceRecordSchema = resourceBaseSchema.extend({
391
380
  // Blueprint: ecosystem-map — kind: entity
392
381
  // ──────────────────────────────────────────────────────────────────────
393
382
  export const entityRecordSchema = resourceBaseSchema.extend({
394
- kind: z.literal("entity"),
383
+ kind: z.literal('entity'),
395
384
  name: z.string().min(1),
396
385
  type: entityTypeSchema,
397
386
  founded: z.string().optional(),
@@ -402,7 +391,7 @@ export const entityRecordSchema = resourceBaseSchema.extend({
402
391
  // ──────────────────────────────────────────────────────────────────────
403
392
  // Discriminated union: Resource
404
393
  // ──────────────────────────────────────────────────────────────────────
405
- export const resourceSchema = z.discriminatedUnion("kind", [
394
+ export const resourceSchema = z.discriminatedUnion('kind', [
406
395
  projectRecordSchema,
407
396
  resourceRecordSchema,
408
397
  entityRecordSchema,
@@ -472,7 +461,7 @@ export const githubIntegrationSchema = z.union([
472
461
  * callers (`grove sync`, CI workflows) can gate each feature.
473
462
  */
474
463
  export function normalizeGithubIntegration(value) {
475
- if (typeof value === "boolean") {
464
+ if (typeof value === 'boolean') {
476
465
  return { metadata: value, contributors: value, health: value };
477
466
  }
478
467
  return {
@@ -489,28 +478,32 @@ export const themeSchema = z.object({
489
478
  */
490
479
  primaryColor: z
491
480
  .string()
492
- .regex(/^#[0-9a-fA-F]{3,8}$/, "theme.primaryColor must be a hex color such as #4f46e5")
481
+ .regex(/^#[0-9a-fA-F]{3,8}$/, 'theme.primaryColor must be a hex color such as #4f46e5')
493
482
  .optional(),
494
- radius: z.enum(["none", "soft", "round"]).default("soft"),
495
- density: z.enum(["compact", "comfortable", "spacious"]).default("comfortable"),
496
- containerWidth: z.string().default("72rem"),
483
+ radius: z.enum(['none', 'soft', 'round']).default('soft'),
484
+ density: z.enum(['compact', 'comfortable', 'spacious']).default('comfortable'),
485
+ containerWidth: z.string().default('72rem'),
497
486
  });
498
487
  // ──────────────────────────────────────────────────────────────────────
499
488
  // Audit manifest (consumed by `grove audit`)
500
489
  // ──────────────────────────────────────────────────────────────────────
501
490
  const auditPageTypeSchema = z.enum([
502
- "home",
503
- "directory",
504
- "collection",
505
- "record",
506
- "content",
507
- "empty",
508
- "404",
491
+ 'home',
492
+ 'directory',
493
+ 'collection',
494
+ 'record',
495
+ 'content',
496
+ 'empty',
497
+ '404',
509
498
  ]);
510
499
  const auditPageManifestEntrySchema = z.object({
511
500
  path: z.string().min(1),
512
501
  type: auditPageTypeSchema,
513
502
  label: z.string().min(1),
503
+ /**
504
+ * @deprecated No-op — nothing reads this. Retained so an existing
505
+ * grove.config.ts keeps type-checking; removed in the next major.
506
+ */
514
507
  sample: z.record(z.string(), z.string()).optional(),
515
508
  });
516
509
  export const auditSchema = z.object({
@@ -538,10 +531,10 @@ export const readmeConfigSchema = z.object({
538
531
  showBrowseLink: z.boolean().default(true),
539
532
  });
540
533
  export const groveConfigSchema = z.object({
541
- blueprint: blueprintSchema.default("project-directory"),
534
+ blueprint: blueprintSchema.default('project-directory'),
542
535
  site: z.object({
543
536
  name: z.string().min(1),
544
- tagline: z.string().default("A growing community knowledge site."),
537
+ tagline: z.string().default('A growing community knowledge site.'),
545
538
  description: z.string().optional(),
546
539
  url: z.string().url().optional(),
547
540
  repoUrl: z.string().url().optional(),
@@ -561,7 +554,7 @@ export const groveConfigSchema = z.object({
561
554
  * BCP-47 language tag for the published site. Drives `<html lang>`,
562
555
  * `og:locale`, and JSON-LD `inLanguage`.
563
556
  */
564
- locale: z.string().default("en"),
557
+ locale: z.string().default('en'),
565
558
  /**
566
559
  * Twitter/X handle for the site (e.g. `@grove`). Emitted as
567
560
  * `twitter:site` on every page when set.
@@ -572,7 +565,7 @@ export const groveConfigSchema = z.object({
572
565
  .object({
573
566
  googleAnalyticsId: z
574
567
  .string()
575
- .regex(/^G-[A-Z0-9]+$/, "Expected a GA4 measurement ID such as G-XXXXXX")
568
+ .regex(/^G-[A-Z0-9]+$/, 'Expected a GA4 measurement ID such as G-XXXXXX')
576
569
  .optional(),
577
570
  })
578
571
  .default({}),
@@ -618,7 +611,7 @@ export const groveConfigSchema = z.object({
618
611
  facets: z
619
612
  .array(z.enum(FACET_IDS))
620
613
  .refine((facets) => new Set(facets).size === facets.length, {
621
- message: "browse.facets contains duplicate entries",
614
+ message: 'browse.facets contains duplicate entries',
622
615
  })
623
616
  .default([...DEFAULT_FACETS]),
624
617
  })
@@ -634,8 +627,8 @@ export const groveConfigSchema = z.object({
634
627
  .unknown()
635
628
  .optional()
636
629
  .refine((value) => value === undefined, {
637
- message: "`facets` moved to `browse.facets` in grove.config.ts. " +
638
- `Supported ids: ${FACET_IDS.join(", ")} (canonical spellings only).`,
630
+ message: '`facets` moved to `browse.facets` in grove.config.ts. ' +
631
+ `Supported ids: ${FACET_IDS.join(', ')} (canonical spellings only).`,
639
632
  }),
640
633
  integrations: z
641
634
  .object({
@@ -674,30 +667,30 @@ export const groveConfigSchema = z.object({
674
667
  readme: readmeConfigSchema.optional(),
675
668
  paths: z
676
669
  .object({
677
- dataDir: z.string().default("data"),
678
- contentDir: z.string().default("content"),
679
- recordsDir: z.string().default("data/records"),
680
- pagesDir: z.string().default("content/pages"),
681
- bodiesDir: z.string().default("content/records"),
682
- publicDir: z.string().default("public"),
683
- taxonomyDir: z.string().default("data/taxonomy"),
684
- generatedDir: z.string().default("data/generated"),
685
- health: z.string().default("data/health.yml"),
686
- decisions: z.string().default("data/decisions.yml"),
687
- overrides: z.string().default("data/overrides.yml"),
670
+ dataDir: z.string().default('data'),
671
+ contentDir: z.string().default('content'),
672
+ recordsDir: z.string().default('data/records'),
673
+ pagesDir: z.string().default('content/pages'),
674
+ bodiesDir: z.string().default('content/records'),
675
+ publicDir: z.string().default('public'),
676
+ taxonomyDir: z.string().default('data/taxonomy'),
677
+ generatedDir: z.string().default('data/generated'),
678
+ health: z.string().default('data/health.yml'),
679
+ decisions: z.string().default('data/decisions.yml'),
680
+ overrides: z.string().default('data/overrides.yml'),
688
681
  })
689
682
  .default({
690
- dataDir: "data",
691
- contentDir: "content",
692
- recordsDir: "data/records",
693
- pagesDir: "content/pages",
694
- bodiesDir: "content/records",
695
- publicDir: "public",
696
- taxonomyDir: "data/taxonomy",
697
- generatedDir: "data/generated",
698
- health: "data/health.yml",
699
- decisions: "data/decisions.yml",
700
- overrides: "data/overrides.yml",
683
+ dataDir: 'data',
684
+ contentDir: 'content',
685
+ recordsDir: 'data/records',
686
+ pagesDir: 'content/pages',
687
+ bodiesDir: 'content/records',
688
+ publicDir: 'public',
689
+ taxonomyDir: 'data/taxonomy',
690
+ generatedDir: 'data/generated',
691
+ health: 'data/health.yml',
692
+ decisions: 'data/decisions.yml',
693
+ overrides: 'data/overrides.yml',
701
694
  }),
702
695
  });
703
696
  // ──────────────────────────────────────────────────────────────────────
@@ -721,8 +714,8 @@ export function parseRecordYaml(text, fileSlug) {
721
714
  // record file cannot smuggle `!!binary` / `!!js/function` / etc.
722
715
  // into host objects. The default schema would interpret them.
723
716
  // (Implementation-checklist.md #27.)
724
- const raw = parse(text, { schema: "core" }) ?? {};
725
- if (typeof raw !== "object" || Array.isArray(raw)) {
717
+ const raw = parse(text, { schema: 'core' }) ?? {};
718
+ if (typeof raw !== 'object' || Array.isArray(raw)) {
726
719
  throw new Error(`${fileSlug}: record file must contain a YAML mapping`);
727
720
  }
728
721
  return raw;
@@ -731,7 +724,7 @@ export function stringifyRecordYaml(record) {
731
724
  return stringify(record, {
732
725
  lineWidth: 100,
733
726
  singleQuote: false,
734
- defaultStringType: "PLAIN",
727
+ defaultStringType: 'PLAIN',
735
728
  });
736
729
  }
737
730
  export function getOwnerRepoFromUrl(repoUrl) {
@@ -744,16 +737,16 @@ export function getOwnerRepoFromUrl(repoUrl) {
744
737
  const repo = m[2];
745
738
  if (!owner || !repo)
746
739
  return null;
747
- return { owner, repo: repo.replace(/\.git$/, "") };
740
+ return { owner, repo: repo.replace(/\.git$/, '') };
748
741
  }
749
742
  export function isIndexProject(r) {
750
- return r.kind === "project";
743
+ return r.kind === 'project';
751
744
  }
752
745
  export function isIndexResource(r) {
753
- return r.kind === "resource";
746
+ return r.kind === 'resource';
754
747
  }
755
748
  export function isIndexEntity(r) {
756
- return r.kind === "entity";
749
+ return r.kind === 'entity';
757
750
  }
758
751
  /**
759
752
  * Project a Resource to a stable, search-index-friendly summary
@@ -777,15 +770,15 @@ export function toIndexRecord(record) {
777
770
  description: record.description,
778
771
  content: record.content,
779
772
  curation: record.curation,
780
- licenses: record.kind === "project" ? record.licenses ?? [] : [],
773
+ licenses: record.kind === 'project' ? (record.licenses ?? []) : [],
781
774
  summary: record.summary,
782
775
  sourceDescription: record.sourceDescription,
783
776
  };
784
- if (record.kind === "project") {
777
+ if (record.kind === 'project') {
785
778
  const r = record;
786
779
  return {
787
780
  ...base,
788
- kind: "project",
781
+ kind: 'project',
789
782
  name: r.name,
790
783
  stack: r.stack,
791
784
  stacks: r.stacks ?? [],
@@ -806,7 +799,7 @@ export function toIndexRecord(record) {
806
799
  // from signals) or the curation override (`decisions.yml`).
807
800
  // The generate step folds the latter in before serialising,
808
801
  // so this is a best-effort projection of the current state.
809
- visibility: r.health?.visibility ?? "keep",
802
+ visibility: r.health?.visibility ?? 'keep',
810
803
  github: r.github?.repository
811
804
  ? {
812
805
  fullName: r.github.repository.full_name,
@@ -822,11 +815,11 @@ export function toIndexRecord(record) {
822
815
  : undefined,
823
816
  };
824
817
  }
825
- if (record.kind === "resource") {
818
+ if (record.kind === 'resource') {
826
819
  const r = record;
827
820
  return {
828
821
  ...base,
829
- kind: "resource",
822
+ kind: 'resource',
830
823
  title: r.title,
831
824
  type: r.type,
832
825
  topic: r.topic,
@@ -844,7 +837,7 @@ export function toIndexRecord(record) {
844
837
  const e = record;
845
838
  return {
846
839
  ...base,
847
- kind: "entity",
840
+ kind: 'entity',
848
841
  name: e.name,
849
842
  type: e.type,
850
843
  founded: e.founded,