@grove-dev/core 0.7.0 → 0.9.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 (159) hide show
  1. package/dist/audit.d.ts +3 -3
  2. package/dist/audit.d.ts.map +1 -1
  3. package/dist/audit.js +25 -6
  4. package/dist/audit.js.map +1 -1
  5. package/dist/awesome-readme.d.ts.map +1 -1
  6. package/dist/awesome-readme.js +31 -31
  7. package/dist/awesome-readme.js.map +1 -1
  8. package/dist/build-data.d.ts +1 -1
  9. package/dist/build-data.d.ts.map +1 -1
  10. package/dist/build-data.js +110 -80
  11. package/dist/build-data.js.map +1 -1
  12. package/dist/candidate.d.ts +34 -0
  13. package/dist/candidate.d.ts.map +1 -0
  14. package/dist/candidate.js +128 -0
  15. package/dist/candidate.js.map +1 -0
  16. package/dist/collections-io.d.ts +1 -1
  17. package/dist/collections-io.js +8 -8
  18. package/dist/collections-io.js.map +1 -1
  19. package/dist/collections.d.ts +2 -2
  20. package/dist/collections.d.ts.map +1 -1
  21. package/dist/collections.js +8 -9
  22. package/dist/collections.js.map +1 -1
  23. package/dist/collector.d.ts +1 -1
  24. package/dist/collector.d.ts.map +1 -1
  25. package/dist/collector.js +2 -2
  26. package/dist/collector.js.map +1 -1
  27. package/dist/config.d.ts +1 -1
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +4 -4
  30. package/dist/config.js.map +1 -1
  31. package/dist/content-body.d.ts.map +1 -1
  32. package/dist/content-body.js +22 -22
  33. package/dist/content-body.js.map +1 -1
  34. package/dist/contributors.d.ts.map +1 -1
  35. package/dist/contributors.js +22 -23
  36. package/dist/contributors.js.map +1 -1
  37. package/dist/decisions.d.ts +1 -1
  38. package/dist/decisions.d.ts.map +1 -1
  39. package/dist/decisions.js +18 -20
  40. package/dist/decisions.js.map +1 -1
  41. package/dist/directory-client.d.ts +6 -4
  42. package/dist/directory-client.d.ts.map +1 -1
  43. package/dist/directory-client.js +9 -4
  44. package/dist/directory-client.js.map +1 -1
  45. package/dist/directory-facets.d.ts +1 -1
  46. package/dist/directory-facets.d.ts.map +1 -1
  47. package/dist/directory-facets.js +35 -17
  48. package/dist/directory-facets.js.map +1 -1
  49. package/dist/directory-filter-keys.d.ts +53 -0
  50. package/dist/directory-filter-keys.d.ts.map +1 -0
  51. package/dist/directory-filter-keys.js +66 -0
  52. package/dist/directory-filter-keys.js.map +1 -0
  53. package/dist/directory-format.d.ts.map +1 -1
  54. package/dist/directory-format.js +15 -15
  55. package/dist/directory-format.js.map +1 -1
  56. package/dist/directory-lenses.d.ts +1 -1
  57. package/dist/directory-lenses.d.ts.map +1 -1
  58. package/dist/directory-lenses.js +66 -61
  59. package/dist/directory-lenses.js.map +1 -1
  60. package/dist/directory-repo.js +2 -2
  61. package/dist/directory-scores.d.ts.map +1 -1
  62. package/dist/directory-scores.js +25 -25
  63. package/dist/directory-scores.js.map +1 -1
  64. package/dist/directory-search.d.ts +4 -4
  65. package/dist/directory-search.d.ts.map +1 -1
  66. package/dist/directory-search.js +129 -110
  67. package/dist/directory-search.js.map +1 -1
  68. package/dist/directory-taxonomy.d.ts +1 -1
  69. package/dist/directory-taxonomy.d.ts.map +1 -1
  70. package/dist/directory-taxonomy.js +2 -2
  71. package/dist/directory-taxonomy.js.map +1 -1
  72. package/dist/enrich.d.ts.map +1 -1
  73. package/dist/enrich.js +15 -12
  74. package/dist/enrich.js.map +1 -1
  75. package/dist/evidence.d.ts +33 -0
  76. package/dist/evidence.d.ts.map +1 -0
  77. package/dist/evidence.js +181 -0
  78. package/dist/evidence.js.map +1 -0
  79. package/dist/github-client.js +6 -6
  80. package/dist/github.d.ts +9 -1
  81. package/dist/github.d.ts.map +1 -1
  82. package/dist/github.js +40 -13
  83. package/dist/github.js.map +1 -1
  84. package/dist/health.d.ts +1 -1
  85. package/dist/health.js +44 -44
  86. package/dist/host.js +2 -2
  87. package/dist/import-types.d.ts +24 -0
  88. package/dist/import-types.d.ts.map +1 -0
  89. package/dist/import-types.js +2 -0
  90. package/dist/import-types.js.map +1 -0
  91. package/dist/import-write.d.ts +12 -0
  92. package/dist/import-write.d.ts.map +1 -0
  93. package/dist/import-write.js +39 -0
  94. package/dist/import-write.js.map +1 -0
  95. package/dist/importer.d.ts +5 -3
  96. package/dist/importer.d.ts.map +1 -1
  97. package/dist/importer.js +4 -2
  98. package/dist/importer.js.map +1 -1
  99. package/dist/index.d.ts +74 -63
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +94 -75
  102. package/dist/index.js.map +1 -1
  103. package/dist/io.js +8 -8
  104. package/dist/llms.d.ts +1 -1
  105. package/dist/llms.d.ts.map +1 -1
  106. package/dist/llms.js +65 -64
  107. package/dist/llms.js.map +1 -1
  108. package/dist/markdown.d.ts +3 -33
  109. package/dist/markdown.d.ts.map +1 -1
  110. package/dist/markdown.js +2 -39
  111. package/dist/markdown.js.map +1 -1
  112. package/dist/og-image.d.ts +8 -8
  113. package/dist/og-image.d.ts.map +1 -1
  114. package/dist/og-image.js +91 -84
  115. package/dist/og-image.js.map +1 -1
  116. package/dist/page-document.d.ts +8 -8
  117. package/dist/page-document.d.ts.map +1 -1
  118. package/dist/page-document.js +48 -54
  119. package/dist/page-document.js.map +1 -1
  120. package/dist/parseReadme.d.ts.map +1 -1
  121. package/dist/parseReadme.js +9 -11
  122. package/dist/parseReadme.js.map +1 -1
  123. package/dist/prepare.d.ts +5 -5
  124. package/dist/prepare.d.ts.map +1 -1
  125. package/dist/prepare.js +32 -38
  126. package/dist/prepare.js.map +1 -1
  127. package/dist/readme-health.d.ts +33 -0
  128. package/dist/readme-health.d.ts.map +1 -0
  129. package/dist/readme-health.js +88 -0
  130. package/dist/readme-health.js.map +1 -0
  131. package/dist/related.d.ts +1 -1
  132. package/dist/repository-health.d.ts +11 -0
  133. package/dist/repository-health.d.ts.map +1 -0
  134. package/dist/repository-health.js +94 -0
  135. package/dist/repository-health.js.map +1 -0
  136. package/dist/schema.d.ts +72 -30
  137. package/dist/schema.d.ts.map +1 -1
  138. package/dist/schema.js +156 -144
  139. package/dist/schema.js.map +1 -1
  140. package/dist/site-artifacts.js +1 -1
  141. package/dist/sitemap.d.ts +2 -2
  142. package/dist/sitemap.d.ts.map +1 -1
  143. package/dist/sitemap.js +39 -39
  144. package/dist/sitemap.js.map +1 -1
  145. package/dist/slug.js +4 -4
  146. package/dist/sync-icons.js +15 -15
  147. package/dist/taxonomy-inference.d.ts +27 -0
  148. package/dist/taxonomy-inference.d.ts.map +1 -0
  149. package/dist/taxonomy-inference.js +38 -0
  150. package/dist/taxonomy-inference.js.map +1 -0
  151. package/dist/validate.d.ts +3 -3
  152. package/dist/validate.d.ts.map +1 -1
  153. package/dist/validate.js +73 -62
  154. package/dist/validate.js.map +1 -1
  155. package/dist/yaml.d.ts +47 -0
  156. package/dist/yaml.d.ts.map +1 -0
  157. package/dist/yaml.js +56 -0
  158. package/dist/yaml.js.map +1 -0
  159. package/package.json +6 -1
package/dist/index.js CHANGED
@@ -8,95 +8,114 @@
8
8
  * To audit: `grep -E '^export ' src/index.ts | sort`
9
9
  */
10
10
  // ── Config ────────────────────────────────────────────────────────────
11
- export { defineConfig, loadConfig } from "./config.js";
12
- // ── Host helper ──────────────────────────────────────────────────────
13
- // Shared by `site-artifacts.ts` (static OG SVG) and `og-image.ts`
14
- // (per-page PNG cards). One implementation so the two social-card
15
- // surfaces never print different hosts for the same config.
16
- export { hostOf } from "./host.js";
17
- // ── Schemas (Zod) ─────────────────────────────────────────────────────
18
- // ── Slug helpers ───────────────────────────────────────────────────
19
- // Public because the markdown renderer in @grove-dev/astro imports
20
- // `uniqueSlug` to give heading anchors a collision-counter that
21
- // matches the IDs `extractToc` produces from the same body.
22
- export { slugify, uniqueSlug } from "./slug.js";
23
- export { blueprintSchema, resourceKindSchema, healthStatusSchema, healthTierSchema, healthBlockSchema, healthEntrySchema, healthFileSchema, decisionSchema, decisionsFileSchema, overrideSchema, overridesFileSchema, projectRecordSchema, resourceRecordSchema, entityRecordSchema, resourceSchema, recordsFileSchema, projectTypeSchema, resourceTypeSchema, entityTypeSchema, appLabelSchema, scoreSchema, linksSchema, githubRepositorySchema, githubMetadataSchema, githubLicenseSchema, blueprintKind, auditSchema, readmeConfigSchema, normalizeGithubIntegration, } from "./schema.js";
24
- // ── Build pipeline ───────────────────────────────────────────────────
25
- export { generate } from "./build-data.js";
26
- export { prepareDirectory } from "./prepare.js";
27
- // ── Record YAML helpers (used by `grove import` and the generator) ──
28
- export { stringifyRecordYaml } from "./schema.js";
29
- // ── Sitemap ──────────────────────────────────────────────────────────
30
- export { buildSitemap, buildSitemapXml } from "./sitemap.js";
31
- // ── llms.txt ─────────────────────────────────────────────────────────
32
- export { buildLlmsTxt, buildLlmsFullTxt, buildLlmsFiles } from "./llms.js";
11
+ export { DEFAULT_BUDGET, evaluateBudget, } from './audit.js';
33
12
  // ── Awesome-list README ──────────────────────────────────────────────
34
13
  // Generates a canonical sindresorhus/awesome-format README from the
35
14
  // same record stream used by llms.txt. The output is wrapped between
36
15
  // `<!-- grove-readme:start -->` / `<!-- grove-readme:end -->` sentinels
37
16
  // so hand-written intro/contributing sections survive regenerations.
38
- export { AWESOME_README_END, AWESOME_README_START, buildAwesomeReadme, injectAwesomeReadmeBlock, parseAwesomeReadmeSections, } from "./awesome-readme.js";
39
- // ── Config-driven public artifacts ──────────────────────────────────
40
- export { buildOgImageSvg, buildSiteArtifacts } from "./site-artifacts.js";
41
- export { buildOgImages, renderOgPng } from "./og-image.js";
42
- // ── Packaged icon assets ────────────────────────────────────────────
43
- export { syncIconAssets } from "./sync-icons.js";
44
- // ── Cleanup ──────────────────────────────────────────────────────────
45
- export { pickCleanupCandidates, cleanupStale } from "./decisions.js";
46
- // ── GitHub: parsing + REST metadata ──────────────────────────────────
47
- export { parseGithubRepoUrl, fetchGithubMetadata, buildGithubSyncPatch } from "./github.js";
48
- // ── GitHub: HTML enrichment (token-free fallback) ────────────────────
49
- export { enrichFromGithubHtml } from "./enrich.js";
50
- // ── GitHub: client helpers (V1 public subset) ────────────────────────
51
- export { rateLimitWaitMs, sleep } from "./github-client.js";
52
- // ── Contributor aggregation ───────────────────────────────────────────
53
- export { syncContributors } from "./contributors.js";
54
- // ── Health: classification ────────────────────────────────────────────
55
- export { classifyHealth } from "./health.js";
56
- // ── Importers / parsers ──────────────────────────────────────────────
57
- export { detectGithubRepo, parseAwesomeMarkdown, } from "./markdown.js";
58
- export { importAwesomeList, writeImportedRecords } from "./importer.js";
59
- export { parseEntry, parseSections } from "./parseReadme.js";
60
- // ── IO helpers ────────────────────────────────────────────────────────
61
- export { readYamlFile, writeYamlFile, writeTextFile } from "./io.js";
62
- // ── Validation ────────────────────────────────────────────────────────
63
- // `validateProject` is kept public because the CLI's `check` command needs
64
- // the structured issue output (codes + messages) that `generate`'s
65
- // throw path does not produce. This is the only V0-era name that
66
- // survives — every other removed name from V0 is gone.
67
- export { validateProject } from "./validate.js";
68
- // ── Directory presentation model ────────────────────────────────────
69
- // Framework-independent logic shared by Astro pages and any future
70
- // renderer. These helpers intentionally know nothing about Astro, HTML,
71
- // generated file locations, or component structure.
72
- export * from "./directory-display.js";
73
- export * from "./directory-facets.js";
74
- export * from "./directory-format.js";
75
- export * from "./directory-lenses.js";
76
- export * from "./directory-repo.js";
77
- export * from "./directory-scores.js";
78
- export * from "./directory-search.js";
79
- export * from "./directory-taxonomy.js";
17
+ export { AWESOME_README_END, AWESOME_README_START, buildAwesomeReadme, injectAwesomeReadmeBlock, parseAwesomeReadmeSections, } from './awesome-readme.js';
18
+ // ── Build pipeline ───────────────────────────────────────────────────
19
+ export { generate } from './build-data.js';
20
+ // ── Candidate extraction (AST-based, source-preserving) ──────────────
21
+ export { extractCandidates } from './candidate.js';
22
+ // ── Collection engine (query, ranking, editorial) ────────────────────
23
+ export { filterEntries, rankEntries, } from './collections.js';
24
+ // ── Collection IO (YAML loading from data/collections) ───────────────
25
+ export { loadCollections } from './collections-io.js';
26
+ // ── Collection runner + related resolver ─────────────────────────────
27
+ export { runCollection } from './collector.js';
28
+ export { defineConfig, loadConfig } from './config.js';
80
29
  // ── Content body ───────────────────────────────────────────────────
81
30
  // Pure helpers for reading and shaping the Markdown sidecar that
82
31
  // accompanies each record. No I/O of their own beyond `node:fs` for
83
32
  // the optional `readContentFile`; safe to import from server-only
84
33
  // contexts (Astro `getStaticPaths`, build scripts).
85
- export { extractToc, headingSlug, readContentFile, readingMetrics, resolveContentPath, stripFrontmatter, } from "./content-body.js";
86
- export { DEFAULT_BUDGET, evaluateBudget, } from "./audit.js";
34
+ export { extractToc, headingSlug, readContentFile, readingMetrics, resolveContentPath, stripFrontmatter, } from './content-body.js';
35
+ // ── Contributor aggregation ───────────────────────────────────────────
36
+ export { syncContributors } from './contributors.js';
37
+ // ── Cleanup ──────────────────────────────────────────────────────────
38
+ export { cleanupStale, pickCleanupCandidates } from './decisions.js';
39
+ // ── Directory presentation model ────────────────────────────────────
40
+ // Framework-independent logic shared by Astro pages and any future
41
+ // renderer. These helpers intentionally know nothing about Astro, HTML,
42
+ // generated file locations, or component structure.
43
+ export * from './directory-display.js';
44
+ export * from './directory-facets.js';
45
+ // ── Directory filter keys (single source of truth, see §22) ──────────
46
+ // One canonical mapping between facet group keys, URL param keys,
47
+ // taxonomy kinds, and display labels. Replaces three duplicated
48
+ // inline copies that pre-v1 lived in DirectoryIndexClient,
49
+ // RefinePanel, and server/directory.
50
+ export { DIRECTORY_FILTER_KEYS, DIRECTORY_FILTER_LABELS, DIRECTORY_TAXONOMY_KINDS, FACET_DIMENSION_FOR_KEY, isDirectoryFilterGroupKey, } from './directory-filter-keys.js';
51
+ export * from './directory-format.js';
52
+ export * from './directory-lenses.js';
53
+ export * from './directory-repo.js';
54
+ export * from './directory-scores.js';
55
+ export * from './directory-search.js';
56
+ export * from './directory-taxonomy.js';
57
+ // ── GitHub: HTML enrichment (token-free fallback) ────────────────────
58
+ export { enrichFromGithubHtml } from './enrich.js';
59
+ // ── GitHub: repository evidence (orchestrates fetch + fallback + cache) ──
60
+ export { canonicalRepoKey, createMemoryCache, inspectRepositories, inspectRepository, } from './evidence.js';
61
+ // ── GitHub: parsing + REST metadata ──────────────────────────────────
62
+ export { buildGithubSyncPatch, fetchGithubMetadata, parseGithubRepoUrl, pruneLegacyGithubFields, } from './github.js';
63
+ // ── GitHub: client helpers (V1 public subset) ────────────────────────
64
+ export { rateLimitWaitMs, sleep } from './github-client.js';
65
+ // ── Health: classification ────────────────────────────────────────────
66
+ export { classifyHealth } from './health.js';
67
+ // ── Host helper ──────────────────────────────────────────────────────
68
+ // Shared by `site-artifacts.ts` (static OG SVG) and `og-image.ts`
69
+ // (per-page PNG cards). One implementation so the two social-card
70
+ // surfaces never print different hosts for the same config.
71
+ export { hostOf } from './host.js';
72
+ export { importAwesomeList, writeImportedRecords } from './importer.js';
73
+ // ── IO helpers ────────────────────────────────────────────────────────
74
+ export { readYamlFile, writeTextFile, writeYamlFile } from './io.js';
75
+ // ── llms.txt ─────────────────────────────────────────────────────────
76
+ export { buildLlmsFiles, buildLlmsFullTxt, buildLlmsTxt } from './llms.js';
77
+ // ── Importers / parsers ──────────────────────────────────────────────
78
+ export { detectGithubRepo, parseAwesomeMarkdown, } from './markdown.js';
79
+ export { buildOgImages, renderOgPng } from './og-image.js';
87
80
  // ── PageDocument: unified page-level contract + JSON-LD registry ────
88
81
  // Every page in a Grove project declares a `PageDocument` and the
89
82
  // framework emits all SEO metadata (title, description, canonical, OG,
90
83
  // Twitter, JSON-LD) from this single source. `validateJsonLd` is the
91
84
  // build-time well-formedness check that runs over the node graph.
92
- export { definePageDocument, siteSchema, breadcrumbSchema, collectionSchema, recordSchema, contentSchema, buildJsonLd, validateJsonLd, } from "./page-document.js";
85
+ export { breadcrumbSchema, buildJsonLd, collectionSchema, contentSchema, definePageDocument, recordSchema, siteSchema, validateJsonLd, } from './page-document.js';
86
+ export { parseEntry, parseSections } from './parseReadme.js';
87
+ export { prepareDirectory } from './prepare.js';
88
+ // ── README health: batch orchestration (candidates → evidence → health) ──
89
+ export { runReadmeHealthCheck } from './readme-health.js';
90
+ export { findRelated } from './related.js';
91
+ // ── Repository health classification (evidence → explainable status, README-health) ──
92
+ export { classifyRepositoryHealth } from './repository-health.js';
93
93
  // ── Robots + filter URL policy ───────────────────────────────────────
94
- export { buildRobotsTxt, isIndexableFilterPath } from "./robots.js";
95
- // ── Collection engine (query, ranking, editorial) ────────────────────
96
- export { filterEntries, rankEntries, } from "./collections.js";
97
- // ── Collection runner + related resolver ─────────────────────────────
98
- export { runCollection } from "./collector.js";
99
- export { findRelated } from "./related.js";
100
- // ── Collection IO (YAML loading from data/collections) ───────────────
101
- export { loadCollections } from "./collections-io.js";
94
+ export { buildRobotsTxt, isIndexableFilterPath } from './robots.js';
95
+ // ── Record YAML helpers (used by `grove import` and the generator) ──
96
+ export { appLabelSchema, auditSchema, blueprintKind, blueprintSchema, decisionSchema, decisionsFileSchema, entityRecordSchema, entityTypeSchema, githubLicenseSchema, githubMetadataSchema, githubRepositorySchema, healthBlockSchema, healthEntrySchema, healthFileSchema, healthStatusSchema, healthTierSchema, linksSchema, normalizeGithubIntegration, overrideSchema, overridesFileSchema, projectRecordSchema, projectTypeSchema, readmeConfigSchema, recordsFileSchema, resourceKindSchema, resourceRecordSchema, resourceSchema, resourceTypeSchema, scoreSchema, stringifyRecordYaml, } from './schema.js';
97
+ // ── Config-driven public artifacts ──────────────────────────────────
98
+ export { buildOgImageSvg, buildSiteArtifacts } from './site-artifacts.js';
99
+ // ── Sitemap ──────────────────────────────────────────────────────────
100
+ export { buildSitemap, buildSitemapXml } from './sitemap.js';
101
+ // ── Schemas (Zod) ─────────────────────────────────────────────────────
102
+ // ── Slug helpers ───────────────────────────────────────────────────
103
+ // Public because the markdown renderer in @grove-dev/astro imports
104
+ // `uniqueSlug` to give heading anchors a collision-counter that
105
+ // matches the IDs `extractToc` produces from the same body.
106
+ export { slugify, uniqueSlug } from './slug.js';
107
+ // ── Packaged icon assets ────────────────────────────────────────────
108
+ export { syncIconAssets } from './sync-icons.js';
109
+ // ── Taxonomy inference (stack suggestion from GitHub metadata) ───────
110
+ export { inferStackFromTopics } from './taxonomy-inference.js';
111
+ // ── Validation ────────────────────────────────────────────────────────
112
+ // `validateProject` is kept public because the CLI's `check` command needs
113
+ // the structured issue output (codes + messages) that `generate`'s
114
+ // throw path does not produce. This is the only V0-era name that
115
+ // survives — every other removed name from V0 is gone.
116
+ export { validateProject } from './validate.js';
117
+ // ── YAML string helpers (submit form, future CLI emit) ───────────────
118
+ // Pure, dependency-free. Safe to use in browser (live preview) and
119
+ // in Node (server-side YAML generation).
120
+ export { parseGithubRepo, recordSlugify, yamlLines, yamlQuote, } from './yaml.js';
102
121
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/io.js CHANGED
@@ -1,6 +1,6 @@
1
- import { mkdir, readFile, writeFile } from "node:fs/promises";
2
- import { dirname } from "node:path";
3
- import { parse, stringify } from "yaml";
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import { dirname } from 'node:path';
3
+ import { parse, stringify } from 'yaml';
4
4
  // `parse(text, { schema: 'core' })` opts out of the YAML package's
5
5
  // default schema — which permits custom tag interpretation
6
6
  // (anchors, !!omap, !!binary, etc.). A malicious awesome-list README
@@ -8,9 +8,9 @@ import { parse, stringify } from "yaml";
8
8
  // `core` is the YAML 1.2 core schema with explicit merge keys;
9
9
  // sufficient for plain `key: value` record files and the safest
10
10
  // default for any user-supplied YAML. (Implementation-checklist.md #27.)
11
- const PARSE_OPTIONS = { schema: "core" };
11
+ const PARSE_OPTIONS = { schema: 'core' };
12
12
  export async function readYamlFile(path) {
13
- const text = await readFile(path, "utf8");
13
+ const text = await readFile(path, 'utf8');
14
14
  return parse(text, PARSE_OPTIONS);
15
15
  }
16
16
  export async function writeYamlFile(path, value) {
@@ -18,12 +18,12 @@ export async function writeYamlFile(path, value) {
18
18
  const text = stringify(value, {
19
19
  lineWidth: 100,
20
20
  singleQuote: false,
21
- defaultStringType: "PLAIN",
21
+ defaultStringType: 'PLAIN',
22
22
  });
23
- await writeFile(path, text, "utf8");
23
+ await writeFile(path, text, 'utf8');
24
24
  }
25
25
  export async function writeTextFile(path, value) {
26
26
  await mkdir(dirname(path), { recursive: true });
27
- await writeFile(path, value, "utf8");
27
+ await writeFile(path, value, 'utf8');
28
28
  }
29
29
  //# sourceMappingURL=io.js.map
package/dist/llms.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type GroveConfig } from "./config.js";
1
+ import { type GroveConfig } from './config.js';
2
2
  export interface LlmsRecordInput {
3
3
  slug: string;
4
4
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../src/llms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAsED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAkB1E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC;AAwEtE,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,EAChB,GAAG,SAAgB,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAerB"}
1
+ {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../src/llms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAkED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAgB1E;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC;AAwEtE,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,EAChB,GAAG,SAAgB,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAcrB"}
package/dist/llms.js CHANGED
@@ -1,22 +1,22 @@
1
- import { mkdir, writeFile } from "node:fs/promises";
2
- import { join, resolve } from "node:path";
3
- import { loadConfig } from "./config.js";
4
- import { slugify } from "./slug.js";
1
+ import { mkdir, writeFile } from 'node:fs/promises';
2
+ import { join, resolve } from 'node:path';
3
+ import { loadConfig } from './config.js';
4
+ import { slugify } from './slug.js';
5
5
  const BLUEPRINT_INDEX = {
6
- "project-directory": "projects",
7
- "resource-hub": "resources",
8
- "ecosystem-map": "entities",
6
+ 'project-directory': 'projects',
7
+ 'resource-hub': 'resources',
8
+ 'ecosystem-map': 'entities',
9
9
  };
10
10
  const BLUEPRINT_PLURAL = {
11
- "project-directory": "Projects",
12
- "resource-hub": "Resources",
13
- "ecosystem-map": "Entities",
11
+ 'project-directory': 'Projects',
12
+ 'resource-hub': 'Resources',
13
+ 'ecosystem-map': 'Entities',
14
14
  };
15
15
  function directorySlug(config) {
16
- return config.routes.directory ?? BLUEPRINT_INDEX[config.blueprint] ?? "items";
16
+ return config.routes.directory ?? BLUEPRINT_INDEX[config.blueprint] ?? 'items';
17
17
  }
18
18
  function pluralLabel(config) {
19
- const label = config.labels.plural ?? BLUEPRINT_PLURAL[config.blueprint] ?? "Items";
19
+ const label = config.labels.plural ?? BLUEPRINT_PLURAL[config.blueprint] ?? 'Items';
20
20
  return label.replace(/^./, (value) => value.toUpperCase());
21
21
  }
22
22
  function slug(value) {
@@ -27,41 +27,41 @@ function slug(value) {
27
27
  return slugify(String(value));
28
28
  }
29
29
  function truncate(value, max) {
30
- return value.replace(/\s+/g, " ").slice(0, max);
30
+ return value.replace(/\s+/g, ' ').slice(0, max);
31
31
  }
32
32
  function buildIndexLine(record) {
33
- const desc = truncate(record.description ?? "", 120);
34
- const cat = record.category ?? "—";
35
- const stack = record.stack ?? "—";
33
+ const desc = truncate(record.description ?? '', 120);
34
+ const cat = record.category ?? '—';
35
+ const stack = record.stack ?? '—';
36
36
  const stars = record.stars ?? 0;
37
37
  return `- [${record.name}](#${slug(record.slug)}) — ${cat} · ${stack} · ${stars}★ — ${desc}`;
38
38
  }
39
39
  function buildDetailSection(record, siteUrl, indexSlug) {
40
40
  const lines = [
41
41
  `### ${record.name}`,
42
- "",
43
- record.description ? `${record.description}` : "",
44
- "",
42
+ '',
43
+ record.description ? `${record.description}` : '',
44
+ '',
45
45
  `- slug: ${record.slug}`,
46
- `- category: ${record.category ?? "—"}`,
47
- `- stack: ${record.stack ?? "—"}`,
46
+ `- category: ${record.category ?? '—'}`,
47
+ `- stack: ${record.stack ?? '—'}`,
48
48
  `- stars: ${record.stars ?? 0}`,
49
- record.license ? `- license: ${record.license}` : "",
50
- record.repoUrl ? `- repo: ${record.repoUrl}` : "",
51
- record.homepageUrl ? `- homepage: ${record.homepageUrl}` : "",
49
+ record.license ? `- license: ${record.license}` : '',
50
+ record.repoUrl ? `- repo: ${record.repoUrl}` : '',
51
+ record.homepageUrl ? `- homepage: ${record.homepageUrl}` : '',
52
52
  `- url: ${siteUrl}/${indexSlug}/${record.slug}`,
53
- record.lastCommitAt ? `- lastCommit: ${record.lastCommitAt.slice(0, 10)}` : "",
54
- record.addedAt ? `- added: ${record.addedAt.slice(0, 10)}` : "",
53
+ record.lastCommitAt ? `- lastCommit: ${record.lastCommitAt.slice(0, 10)}` : '',
54
+ record.addedAt ? `- added: ${record.addedAt.slice(0, 10)}` : '',
55
55
  ].filter(Boolean);
56
56
  if (record.detail) {
57
- lines.push("", "#### Detail", "", record.detail);
57
+ lines.push('', '#### Detail', '', record.detail);
58
58
  }
59
- return lines.join("\n");
59
+ return lines.join('\n');
60
60
  }
61
61
  export function buildLlmsTxt(input, config) {
62
- const siteUrl = (input.siteUrl ?? config.site.url ?? "").replace(/\/$/, "");
62
+ const siteUrl = (input.siteUrl ?? config.site.url ?? '').replace(/\/$/, '');
63
63
  const indexSlug = directorySlug(config);
64
- const visible = input.records.filter((r) => r.visibility !== "hide" && r.visibility !== "remove");
64
+ const visible = input.records.filter((r) => r.visibility !== 'hide' && r.visibility !== 'remove');
65
65
  return `# ${config.site.name}
66
66
 
67
67
  ${config.site.description ?? config.site.tagline}
@@ -79,81 +79,82 @@ export function buildLlmsFullTxt(input, config) {
79
79
  // Discriminate on input shape rather than `config` presence: a caller that
80
80
  // mistakenly passes a catalog-shaped input alongside a config would otherwise
81
81
  // be routed into the legacy path and crash on missing legacy fields.
82
- if ("generatedAt" in input) {
82
+ if ('generatedAt' in input) {
83
83
  const legacyInput = input;
84
- const siteUrl = (legacyInput.siteUrl ?? config?.site.url ?? "").replace(/\/$/, "");
85
- const indexSlug = config ? directorySlug(config) : "items";
86
- const visible = legacyInput.records.filter((r) => r.visibility !== "hide" && r.visibility !== "remove");
87
- const plural = config ? pluralLabel(config) : "Records";
88
- const index = visible.map(buildIndexLine).join("\n");
84
+ const siteUrl = (legacyInput.siteUrl ?? config?.site.url ?? '').replace(/\/$/, '');
85
+ const indexSlug = config ? directorySlug(config) : 'items';
86
+ const visible = legacyInput.records.filter((r) => r.visibility !== 'hide' && r.visibility !== 'remove');
87
+ const plural = config ? pluralLabel(config) : 'Records';
88
+ const index = visible.map(buildIndexLine).join('\n');
89
89
  const sections = visible
90
90
  .map((record) => buildDetailSection(record, siteUrl, indexSlug))
91
- .join("\n\n");
91
+ .join('\n\n');
92
92
  return [
93
- `# ${config?.site.name ?? legacyInput.siteUrl ?? "Directory"} — full directory`,
94
- "",
93
+ `# ${config?.site.name ?? legacyInput.siteUrl ?? 'Directory'} — full directory`,
94
+ '',
95
95
  // Count the visible records, not every parsed one — llms.txt's
96
96
  // "Records indexed" line already reports the filtered count, and
97
97
  // the two disagreeing on the same build was confusing.
98
98
  `> Generated ${legacyInput.generatedAt} from ${visible.length} records.`,
99
99
  `> Source: ${siteUrl}/${indexSlug} · Regenerate with \`pnpm build\`.`,
100
- "",
101
- "Each section below mirrors one record detail page.",
102
- "",
103
- "## Index",
104
- "",
100
+ '',
101
+ 'Each section below mirrors one record detail page.',
102
+ '',
103
+ '## Index',
104
+ '',
105
105
  index,
106
- "",
107
- sections ? `## ${plural}` : "",
108
- "",
106
+ '',
107
+ sections ? `## ${plural}` : '',
108
+ '',
109
109
  sections,
110
- "",
111
- ].join("\n");
110
+ '',
111
+ ].join('\n');
112
112
  }
113
113
  const catalogInput = input;
114
114
  const lines = [];
115
115
  lines.push(`# ${catalogInput.site.name} — full catalog`);
116
- lines.push("");
116
+ lines.push('');
117
117
  lines.push(`> ${catalogInput.site.description}`);
118
118
  lines.push(`Updated: ${catalogInput.updatedAt}`);
119
- lines.push("");
119
+ lines.push('');
120
120
  lines.push(`Site: ${catalogInput.site.url}`);
121
- lines.push("");
122
- lines.push("## Taxonomies");
121
+ lines.push('');
122
+ lines.push('## Taxonomies');
123
123
  for (const taxonomy of catalogInput.taxonomies) {
124
124
  lines.push(`### ${taxonomy.title}`);
125
- lines.push("");
125
+ lines.push('');
126
126
  if (taxonomy.description)
127
127
  lines.push(taxonomy.description);
128
128
  lines.push(`URL: ${taxonomy.url}`);
129
- lines.push("");
129
+ lines.push('');
130
130
  }
131
- lines.push("## Records");
131
+ lines.push('## Records');
132
132
  for (const record of catalogInput.records) {
133
133
  lines.push(`### ${record.title}`);
134
- lines.push("");
134
+ lines.push('');
135
135
  lines.push(record.description);
136
136
  if (record.stack)
137
137
  lines.push(`Stack: ${record.stack}`);
138
138
  if (record.license)
139
139
  lines.push(`License: ${record.license}`);
140
140
  lines.push(`URL: ${record.url}`);
141
- lines.push("");
141
+ lines.push('');
142
142
  }
143
- return lines.join("\n");
143
+ return lines.join('\n');
144
144
  }
145
145
  export async function buildLlmsFiles(input, cwd = process.cwd(), config) {
146
146
  const cfg = config ?? (await loadConfig(cwd));
147
147
  const publicDir = resolve(cwd, cfg.paths.publicDir);
148
148
  await mkdir(publicDir, { recursive: true });
149
- const txtPath = join(publicDir, "llms.txt");
150
- const fullPath = join(publicDir, "llms-full.txt");
151
- await writeFile(txtPath, buildLlmsTxt(input, cfg), "utf8");
152
- await writeFile(fullPath, buildLlmsFullTxt(input, cfg), "utf8");
149
+ const txtPath = join(publicDir, 'llms.txt');
150
+ const fullPath = join(publicDir, 'llms-full.txt');
151
+ await writeFile(txtPath, buildLlmsTxt(input, cfg), 'utf8');
152
+ await writeFile(fullPath, buildLlmsFullTxt(input, cfg), 'utf8');
153
153
  return {
154
154
  txtPath,
155
155
  fullPath,
156
- indexed: input.records.filter((r) => r.visibility !== "hide" && r.visibility !== "remove").length,
156
+ indexed: input.records.filter((r) => r.visibility !== 'hide' && r.visibility !== 'remove')
157
+ .length,
157
158
  };
158
159
  }
159
160
  //# sourceMappingURL=llms.js.map
package/dist/llms.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llms.js","sourceRoot":"","sources":["../src/llms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llms.js","sourceRoot":"","sources":["../src/llms.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,10 @@
1
- import { type Blueprint } from './schema.js';
2
- export interface ImportedRecord {
3
- slug: string;
4
- name: string;
5
- description: string;
6
- category: string;
7
- links: {
8
- github?: string;
9
- website?: string;
10
- source?: string;
11
- };
12
- }
13
- export interface ImportSummary {
14
- imported: number;
15
- skipped: number;
16
- categories: string[];
17
- duplicateSlugs: number;
18
- tocSkipped: number;
19
- anchorLinksSkipped: number;
20
- }
21
- export interface ImportResult {
22
- records: ImportedRecord[];
23
- report: ImportSummary;
24
- }
1
+ import type { ImportResult } from './import-types.js';
2
+ export type { ImportedRecord, ImportResult, ImportSummary } from './import-types.js';
25
3
  export declare function detectGithubRepo(url: string): string | undefined;
4
+ export declare function extractDescription(body: string): string;
26
5
  export declare function parseAwesomeMarkdown(text: string, options?: {
27
6
  file?: string;
28
7
  sourceUrl?: string;
29
8
  }): ImportResult;
30
9
  export declare function importAwesomeList(input: string): Promise<ImportResult>;
31
- /**
32
- * Write imported records out as `data/records/<slug>.yml`, one per
33
- * record. Each file is shaped for the `project-directory` blueprint
34
- * (kind: project). Other blueprints should use a separate importer.
35
- */
36
- export declare function writeImportedRecords(result: ImportResult, cwd?: string, blueprint?: Blueprint): Promise<{
37
- written: number;
38
- dir: string;
39
- }>;
40
10
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,SAAS,EAAsB,MAAM,aAAa,CAAC;AAGhF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AA0BD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAShE;AAsDD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,YAAY,CAyGd;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB5E;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,GAAG,SAAgB,EACnB,SAAS,GAAE,SAA+B,GACzC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B3C"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA0BrF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAShE;AAmBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASvD;AA0BD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,YAAY,CAyGd;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB5E"}