@grove-dev/core 0.7.0 → 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 (133) 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 +82 -77
  11. package/dist/build-data.js.map +1 -1
  12. package/dist/collections-io.d.ts +1 -1
  13. package/dist/collections-io.js +8 -8
  14. package/dist/collections-io.js.map +1 -1
  15. package/dist/collections.d.ts +2 -2
  16. package/dist/collections.d.ts.map +1 -1
  17. package/dist/collections.js +8 -9
  18. package/dist/collections.js.map +1 -1
  19. package/dist/collector.d.ts +1 -1
  20. package/dist/collector.d.ts.map +1 -1
  21. package/dist/collector.js +2 -2
  22. package/dist/collector.js.map +1 -1
  23. package/dist/config.d.ts +1 -1
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +4 -4
  26. package/dist/config.js.map +1 -1
  27. package/dist/content-body.d.ts.map +1 -1
  28. package/dist/content-body.js +22 -22
  29. package/dist/content-body.js.map +1 -1
  30. package/dist/contributors.d.ts.map +1 -1
  31. package/dist/contributors.js +22 -23
  32. package/dist/contributors.js.map +1 -1
  33. package/dist/decisions.d.ts +1 -1
  34. package/dist/decisions.d.ts.map +1 -1
  35. package/dist/decisions.js +18 -20
  36. package/dist/decisions.js.map +1 -1
  37. package/dist/directory-client.d.ts +6 -4
  38. package/dist/directory-client.d.ts.map +1 -1
  39. package/dist/directory-client.js +9 -4
  40. package/dist/directory-client.js.map +1 -1
  41. package/dist/directory-facets.d.ts +1 -1
  42. package/dist/directory-facets.d.ts.map +1 -1
  43. package/dist/directory-facets.js +35 -17
  44. package/dist/directory-facets.js.map +1 -1
  45. package/dist/directory-filter-keys.d.ts +53 -0
  46. package/dist/directory-filter-keys.d.ts.map +1 -0
  47. package/dist/directory-filter-keys.js +66 -0
  48. package/dist/directory-filter-keys.js.map +1 -0
  49. package/dist/directory-format.d.ts.map +1 -1
  50. package/dist/directory-format.js +15 -15
  51. package/dist/directory-format.js.map +1 -1
  52. package/dist/directory-lenses.d.ts +1 -1
  53. package/dist/directory-lenses.d.ts.map +1 -1
  54. package/dist/directory-lenses.js +66 -61
  55. package/dist/directory-lenses.js.map +1 -1
  56. package/dist/directory-repo.js +2 -2
  57. package/dist/directory-scores.d.ts.map +1 -1
  58. package/dist/directory-scores.js +25 -25
  59. package/dist/directory-scores.js.map +1 -1
  60. package/dist/directory-search.d.ts +4 -4
  61. package/dist/directory-search.d.ts.map +1 -1
  62. package/dist/directory-search.js +99 -107
  63. package/dist/directory-search.js.map +1 -1
  64. package/dist/directory-taxonomy.d.ts +1 -1
  65. package/dist/directory-taxonomy.d.ts.map +1 -1
  66. package/dist/directory-taxonomy.js +2 -2
  67. package/dist/directory-taxonomy.js.map +1 -1
  68. package/dist/enrich.d.ts.map +1 -1
  69. package/dist/enrich.js +15 -12
  70. package/dist/enrich.js.map +1 -1
  71. package/dist/github-client.js +6 -6
  72. package/dist/github.d.ts +1 -1
  73. package/dist/github.d.ts.map +1 -1
  74. package/dist/github.js +15 -13
  75. package/dist/github.js.map +1 -1
  76. package/dist/health.d.ts +1 -1
  77. package/dist/health.js +44 -44
  78. package/dist/host.js +2 -2
  79. package/dist/importer.d.ts +2 -2
  80. package/dist/importer.d.ts.map +1 -1
  81. package/dist/importer.js +1 -1
  82. package/dist/importer.js.map +1 -1
  83. package/dist/index.d.ts +66 -63
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +86 -75
  86. package/dist/index.js.map +1 -1
  87. package/dist/io.js +8 -8
  88. package/dist/llms.d.ts +1 -1
  89. package/dist/llms.d.ts.map +1 -1
  90. package/dist/llms.js +65 -64
  91. package/dist/llms.js.map +1 -1
  92. package/dist/markdown.d.ts.map +1 -1
  93. package/dist/markdown.js.map +1 -1
  94. package/dist/og-image.d.ts +8 -8
  95. package/dist/og-image.d.ts.map +1 -1
  96. package/dist/og-image.js +91 -84
  97. package/dist/og-image.js.map +1 -1
  98. package/dist/page-document.d.ts +8 -8
  99. package/dist/page-document.d.ts.map +1 -1
  100. package/dist/page-document.js +48 -54
  101. package/dist/page-document.js.map +1 -1
  102. package/dist/parseReadme.d.ts.map +1 -1
  103. package/dist/parseReadme.js +9 -11
  104. package/dist/parseReadme.js.map +1 -1
  105. package/dist/prepare.d.ts +5 -5
  106. package/dist/prepare.d.ts.map +1 -1
  107. package/dist/prepare.js +25 -35
  108. package/dist/prepare.js.map +1 -1
  109. package/dist/related.d.ts +1 -1
  110. package/dist/schema.d.ts +21 -21
  111. package/dist/schema.d.ts.map +1 -1
  112. package/dist/schema.js +130 -141
  113. package/dist/schema.js.map +1 -1
  114. package/dist/site-artifacts.js +1 -1
  115. package/dist/sitemap.d.ts +2 -2
  116. package/dist/sitemap.d.ts.map +1 -1
  117. package/dist/sitemap.js +39 -39
  118. package/dist/sitemap.js.map +1 -1
  119. package/dist/slug.js +4 -4
  120. package/dist/sync-icons.js +15 -15
  121. package/dist/taxonomy-inference.d.ts +27 -0
  122. package/dist/taxonomy-inference.d.ts.map +1 -0
  123. package/dist/taxonomy-inference.js +38 -0
  124. package/dist/taxonomy-inference.js.map +1 -0
  125. package/dist/validate.d.ts +3 -3
  126. package/dist/validate.d.ts.map +1 -1
  127. package/dist/validate.js +56 -58
  128. package/dist/validate.js.map +1 -1
  129. package/dist/yaml.d.ts +47 -0
  130. package/dist/yaml.d.ts.map +1 -0
  131. package/dist/yaml.js +56 -0
  132. package/dist/yaml.js.map +1 -0
  133. package/package.json +1 -1
package/dist/enrich.js CHANGED
@@ -10,10 +10,10 @@
10
10
  * block used in `data/records/<slug>.yml` for `kind: project` records,
11
11
  * so a subsequent token-backed sync can fill in the rest of the fields.
12
12
  */
13
- import { getOwnerRepoFromUrl } from "./schema.js";
13
+ import { getOwnerRepoFromUrl } from './schema.js';
14
14
  const HEADERS = {
15
- Accept: "text/html,application/xhtml+xml",
16
- "User-Agent": "grove-enricher",
15
+ Accept: 'text/html,application/xhtml+xml',
16
+ 'User-Agent': 'grove-enricher',
17
17
  };
18
18
  async function fetchHtml(owner, repo) {
19
19
  try {
@@ -46,12 +46,15 @@ async function fetchLicenseViaShields(owner, repo) {
46
46
  const m = svg.match(/<title>([^<]+)<\/title>/);
47
47
  if (!m || !m[1])
48
48
  return null;
49
- const id = m[1].trim().replace(/^license:\s*/i, "").trim();
49
+ const id = m[1]
50
+ .trim()
51
+ .replace(/^license:\s*/i, '')
52
+ .trim();
50
53
  if (!id ||
51
- id === "not specified" ||
52
- id === "not identifiable by github" ||
53
- id === "unknown" ||
54
- id.toLowerCase().includes("business source")) {
54
+ id === 'not specified' ||
55
+ id === 'not identifiable by github' ||
56
+ id === 'unknown' ||
57
+ id.toLowerCase().includes('business source')) {
55
58
  return null;
56
59
  }
57
60
  return id;
@@ -85,23 +88,23 @@ export async function enrichFromGithubHtml(repoUrl) {
85
88
  if (!ref) {
86
89
  return {
87
90
  fields: { license: null, language: null, topics: [], homepage: null },
88
- error: "invalid_repo_url",
91
+ error: 'invalid_repo_url',
89
92
  };
90
93
  }
91
94
  const res = await fetchHtml(ref.owner, ref.repo);
92
- if ("notFound" in res) {
95
+ if ('notFound' in res) {
93
96
  return {
94
97
  fields: { license: null, language: null, topics: [], homepage: null },
95
98
  notFound: true,
96
99
  };
97
100
  }
98
- if ("rateLimited" in res) {
101
+ if ('rateLimited' in res) {
99
102
  return {
100
103
  fields: { license: null, language: null, topics: [], homepage: null },
101
104
  rateLimited: true,
102
105
  };
103
106
  }
104
- if ("error" in res) {
107
+ if ('error' in res) {
105
108
  return {
106
109
  fields: { license: null, language: null, topics: [], homepage: null },
107
110
  error: res.error,
@@ -1 +1 @@
1
- {"version":3,"file":"enrich.js","sourceRoot":"","sources":["../src/enrich.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enrich.js","sourceRoot":"","sources":["../src/enrich.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,12 @@
11
11
  * instead of one round-trip at a time.
12
12
  */
13
13
  const DEFAULT_HEADERS = {
14
- Accept: "application/vnd.github+json",
15
- "X-GitHub-Api-Version": "2022-11-28",
16
- "User-Agent": "grove-bot",
14
+ Accept: 'application/vnd.github+json',
15
+ 'X-GitHub-Api-Version': '2022-11-28',
16
+ 'User-Agent': 'grove-bot',
17
17
  };
18
18
  export function rateLimitWaitMs(res, capMs = 5 * 60_000) {
19
- const reset = res.headers.get("x-ratelimit-reset");
19
+ const reset = res.headers.get('x-ratelimit-reset');
20
20
  if (!reset)
21
21
  return 0;
22
22
  const resetMs = Number(reset) * 1000 - Date.now();
@@ -34,7 +34,7 @@ export async function ghFetch(path, options = {}) {
34
34
  const headers = {
35
35
  ...DEFAULT_HEADERS,
36
36
  ...(token ? { Authorization: `Bearer ${token}` } : {}),
37
- ...(userAgent ? { "User-Agent": userAgent } : {}),
37
+ ...(userAgent ? { 'User-Agent': userAgent } : {}),
38
38
  };
39
39
  let lastErr;
40
40
  for (let i = 0; i < attempts; i++) {
@@ -51,7 +51,7 @@ export async function ghFetch(path, options = {}) {
51
51
  throw err;
52
52
  }
53
53
  if (res.status === 429 ||
54
- (res.status === 403 && res.headers.get("x-ratelimit-remaining") === "0")) {
54
+ (res.status === 403 && res.headers.get('x-ratelimit-remaining') === '0')) {
55
55
  const wait = onRateLimited ? onRateLimited() : rateLimitWaitMs(res);
56
56
  if (wait > 0) {
57
57
  console.warn(`[ghFetch] rate limited, waiting ${Math.round(wait / 1000)}s for ${path}`);
package/dist/github.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GithubMetadata } from "./schema.js";
1
+ import type { GithubMetadata } from './schema.js';
2
2
  export interface GithubRepoRef {
3
3
  owner: string;
4
4
  repo: string;
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAWrF;AAiCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAEvD;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,qBAAuB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA+B/H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAClD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzB"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAWrF;AAmCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAEvD;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,aAAa,EAClB,KAAK,qBAAuB,GAC3B,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAmCrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAClD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2BzB"}
package/dist/github.js CHANGED
@@ -10,22 +10,22 @@ export function parseGithubRepoUrl(url) {
10
10
  return undefined;
11
11
  return {
12
12
  owner,
13
- repo: repo.replace(/\.git$/, ""),
13
+ repo: repo.replace(/\.git$/, ''),
14
14
  };
15
15
  }
16
16
  async function githubJson(path, token) {
17
17
  const headers = {
18
- Accept: "application/vnd.github+json",
19
- "X-GitHub-Api-Version": "2022-11-28",
20
- "User-Agent": "grove",
18
+ Accept: 'application/vnd.github+json',
19
+ 'X-GitHub-Api-Version': '2022-11-28',
20
+ 'User-Agent': 'grove',
21
21
  };
22
22
  if (token)
23
23
  headers.Authorization = `Bearer ${token}`;
24
24
  const response = await fetch(`https://api.github.com${path}`, { headers });
25
25
  if (response.status === 404)
26
26
  return null;
27
- if (response.status === 403 && response.headers.get("x-ratelimit-remaining") === "0") {
28
- throw new Error("GitHub API rate limit reached. Set GITHUB_TOKEN and rerun analyze.");
27
+ if (response.status === 403 && response.headers.get('x-ratelimit-remaining') === '0') {
28
+ throw new Error('GitHub API rate limit reached. Set GITHUB_TOKEN and rerun analyze.');
29
29
  }
30
30
  if (!response.ok) {
31
31
  throw new Error(`GitHub API ${response.status} ${response.statusText} for ${path}`);
@@ -33,13 +33,15 @@ async function githubJson(path, token) {
33
33
  return response.json();
34
34
  }
35
35
  function asRecord(value) {
36
- return value && typeof value === "object" && !Array.isArray(value) ? value : {};
36
+ return value && typeof value === 'object' && !Array.isArray(value)
37
+ ? value
38
+ : {};
37
39
  }
38
40
  function asString(value) {
39
- return typeof value === "string" ? value : undefined;
41
+ return typeof value === 'string' ? value : undefined;
40
42
  }
41
43
  function asNumber(value) {
42
- return typeof value === "number" ? value : undefined;
44
+ return typeof value === 'number' ? value : undefined;
43
45
  }
44
46
  /**
45
47
  * Resolve a GitHub token from the environment. `GH_TOKEN` is checked
@@ -73,7 +75,9 @@ export async function fetchGithubMetadata(ref, token = resolveGithubToken()) {
73
75
  createdAt: asString(repo.created_at) ?? null,
74
76
  latestReleaseAt: asString(latestRelease.published_at) ?? null,
75
77
  license: asString(license.spdx_id) ?? asString(license.name) ?? null,
76
- topics: Array.isArray(repo.topics) ? repo.topics.filter((topic) => typeof topic === "string") : [],
78
+ topics: Array.isArray(repo.topics)
79
+ ? repo.topics.filter((topic) => typeof topic === 'string')
80
+ : [],
77
81
  language: asString(repo.language) ?? null,
78
82
  defaultBranch: asString(repo.default_branch),
79
83
  htmlUrl: asString(repo.html_url),
@@ -109,9 +113,7 @@ export function buildGithubSyncPatch(metadata, existingGithub) {
109
113
  archived: metadata.archived,
110
114
  disabled: metadata.disabled,
111
115
  default_branch: metadata.defaultBranch,
112
- license: metadata.license
113
- ? { spdx_id: metadata.license, name: metadata.license }
114
- : null,
116
+ license: metadata.license ? { spdx_id: metadata.license, name: metadata.license } : null,
115
117
  topics: metadata.topics,
116
118
  },
117
119
  };
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/health.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { GithubMetadata, HealthEntry } from "./schema.js";
1
+ import type { GithubMetadata, HealthEntry } from './schema.js';
2
2
  export declare function classifyHealth(id: string, github?: GithubMetadata): HealthEntry;
3
3
  //# sourceMappingURL=health.d.ts.map
package/dist/health.js CHANGED
@@ -11,74 +11,74 @@ export function classifyHealth(id, github) {
11
11
  return {
12
12
  id,
13
13
  health: {
14
- status: "unknown",
15
- maturity: "unknown",
16
- tier: "experimental",
17
- visibility: "keep",
14
+ status: 'unknown',
15
+ maturity: 'unknown',
16
+ tier: 'experimental',
17
+ visibility: 'keep',
18
18
  cleanupCandidate: false,
19
19
  staleReason: null,
20
- confidence: "low",
21
- reasons: ["No GitHub metadata available"],
20
+ confidence: 'low',
21
+ reasons: ['No GitHub metadata available'],
22
22
  },
23
23
  };
24
24
  }
25
25
  const reasons = [];
26
26
  const pushedDays = daysSince(github.pushedAt);
27
27
  const releaseDays = daysSince(github.latestReleaseAt);
28
- let status = "unknown";
28
+ let status = 'unknown';
29
29
  if (github.archived) {
30
- status = "archived";
31
- reasons.push("Repository is archived on GitHub");
30
+ status = 'archived';
31
+ reasons.push('Repository is archived on GitHub');
32
32
  }
33
33
  else if (pushedDays <= 183) {
34
- status = "active";
35
- reasons.push("Recent repository activity");
34
+ status = 'active';
35
+ reasons.push('Recent repository activity');
36
36
  }
37
37
  else if (pushedDays <= 548) {
38
- status = "stale";
39
- reasons.push("No recent commits in the last 6 months");
38
+ status = 'stale';
39
+ reasons.push('No recent commits in the last 6 months');
40
40
  }
41
41
  else if (pushedDays > 730) {
42
- status = "inactive";
43
- reasons.push("No commits in the last 24 months");
42
+ status = 'inactive';
43
+ reasons.push('No commits in the last 24 months');
44
44
  }
45
45
  else {
46
- status = "needs_review";
47
- reasons.push("Repository activity is old enough to need review");
46
+ status = 'needs_review';
47
+ reasons.push('Repository activity is old enough to need review');
48
48
  }
49
49
  const hasRelease = releaseDays <= 365;
50
- const hasLicense = Boolean(github.license && github.license !== "NOASSERTION");
50
+ const hasLicense = Boolean(github.license && github.license !== 'NOASSERTION');
51
51
  const popular = github.stars >= 500;
52
52
  const maintainedSignals = pushedDays <= 183 && (hasRelease || hasLicense);
53
- let maturity = "unknown";
54
- if (status === "archived" || status === "inactive") {
55
- maturity = "unknown";
53
+ let maturity = 'unknown';
54
+ if (status === 'archived' || status === 'inactive') {
55
+ maturity = 'unknown';
56
56
  }
57
57
  else if (popular && maintainedSignals) {
58
- maturity = "mature";
59
- if (status === "active")
60
- status = "mature";
61
- reasons.push("Strong adoption with maintenance signals");
58
+ maturity = 'mature';
59
+ if (status === 'active')
60
+ status = 'mature';
61
+ reasons.push('Strong adoption with maintenance signals');
62
62
  }
63
63
  else if (github.stars >= 50 || maintainedSignals) {
64
- maturity = "useful";
64
+ maturity = 'useful';
65
65
  }
66
66
  else {
67
- maturity = "experimental";
67
+ maturity = 'experimental';
68
68
  }
69
69
  if (hasRelease)
70
- reasons.push("Recent release found");
70
+ reasons.push('Recent release found');
71
71
  if (hasLicense)
72
- reasons.push("Clear license found");
72
+ reasons.push('Clear license found');
73
73
  if (!hasLicense)
74
- reasons.push("License is missing or unclear");
75
- const tier = status === "archived" || status === "inactive"
76
- ? "hidden"
74
+ reasons.push('License is missing or unclear');
75
+ const tier = status === 'archived' || status === 'inactive'
76
+ ? 'hidden'
77
77
  : popular
78
- ? "curated"
78
+ ? 'curated'
79
79
  : github.stars >= 50
80
- ? "listed"
81
- : "experimental";
80
+ ? 'listed'
81
+ : 'experimental';
82
82
  return {
83
83
  id,
84
84
  github,
@@ -86,16 +86,16 @@ export function classifyHealth(id, github) {
86
86
  status,
87
87
  maturity,
88
88
  tier,
89
- visibility: tier === "hidden" ? "hide" : "keep",
90
- cleanupCandidate: status === "stale" || status === "archived" || status === "inactive",
91
- staleReason: status === "inactive"
92
- ? "no_commits_24_months"
93
- : status === "stale"
94
- ? "no_commits_365_days"
95
- : status === "archived"
96
- ? "github_archived"
89
+ visibility: tier === 'hidden' ? 'hide' : 'keep',
90
+ cleanupCandidate: status === 'stale' || status === 'archived' || status === 'inactive',
91
+ staleReason: status === 'inactive'
92
+ ? 'no_commits_24_months'
93
+ : status === 'stale'
94
+ ? 'no_commits_365_days'
95
+ : status === 'archived'
96
+ ? 'github_archived'
97
97
  : null,
98
- confidence: github.fullName ? "high" : "medium",
98
+ confidence: github.fullName ? 'high' : 'medium',
99
99
  reasons,
100
100
  },
101
101
  };
package/dist/host.js CHANGED
@@ -4,12 +4,12 @@
4
4
  // lacks a scheme, since `site.url` accepts either form.
5
5
  export function hostOf(rawUrl) {
6
6
  if (!rawUrl)
7
- return "example.com";
7
+ return 'example.com';
8
8
  try {
9
9
  return new URL(rawUrl).host;
10
10
  }
11
11
  catch {
12
- return rawUrl.replace(/^https?:\/\//, "").replace(/\/$/, "");
12
+ return rawUrl.replace(/^https?:\/\//, '').replace(/\/$/, '');
13
13
  }
14
14
  }
15
15
  //# sourceMappingURL=host.js.map
@@ -1,4 +1,4 @@
1
- import { importAwesomeList, writeImportedRecords, type ImportResult } from "./markdown.js";
2
- export { importAwesomeList, writeImportedRecords };
1
+ import { type ImportResult, importAwesomeList, writeImportedRecords } from './markdown.js';
3
2
  export type { ImportResult };
3
+ export { importAwesomeList, writeImportedRecords };
4
4
  //# sourceMappingURL=importer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE3F,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
package/dist/importer.js CHANGED
@@ -1,3 +1,3 @@
1
- import { importAwesomeList, writeImportedRecords, } from "./markdown.js";
1
+ import { importAwesomeList, writeImportedRecords } from './markdown.js';
2
2
  export { importAwesomeList, writeImportedRecords };
3
3
  //# sourceMappingURL=importer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"importer.js","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,67 +7,70 @@
7
7
  *
8
8
  * To audit: `grep -E '^export ' src/index.ts | sort`
9
9
  */
10
- export { defineConfig, loadConfig } from "./config.js";
11
- export type { GroveConfig, GroveConfigInput } from "./schema.js";
12
- export { hostOf } from "./host.js";
13
- export { slugify, uniqueSlug } from "./slug.js";
14
- 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";
15
- export type { GithubIntegrationFlags } from "./schema.js";
16
- export type { Blueprint, ResourceKind, DecisionVisibility, Resource, ProjectRecord, ResourceRecord, EntityRecord, IndexRecord, IndexProjectRecord, IndexResourceRecord, IndexEntityRecord, HealthStatus, HealthTier, HealthEntry, HealthFile, Decision, DecisionsFile, Override, OverridesFile, ProjectType, ResourceType, EntityType, AppLabel, Score, Links, GithubMetadata, GithubRepository, ReadmeConfig, } from "./schema.js";
17
- export { generate } from "./build-data.js";
18
- export type { GenerateResult, RecordsFullPayload, RecordsIndexPayload } from "./build-data.js";
19
- export { prepareDirectory } from "./prepare.js";
20
- export type { PrepareDirectoryResult } from "./prepare.js";
21
- export { stringifyRecordYaml } from "./schema.js";
22
- export { buildSitemap, buildSitemapXml } from "./sitemap.js";
23
- export { buildLlmsTxt, buildLlmsFullTxt, buildLlmsFiles } from "./llms.js";
24
- export type { LlmsInput, LlmsRecordInput, LlmsResult } from "./llms.js";
25
- export { AWESOME_README_END, AWESOME_README_START, buildAwesomeReadme, injectAwesomeReadmeBlock, parseAwesomeReadmeSections, } from "./awesome-readme.js";
26
- export type { AwesomeReadmeCategory, AwesomeReadmeInput, AwesomeReadmeOptions, AwesomeReadmeRecord, AwesomeReadmeSections, } from "./awesome-readme.js";
27
- export { buildOgImageSvg, buildSiteArtifacts } from "./site-artifacts.js";
28
- export { buildOgImages, renderOgPng } from "./og-image.js";
29
- export type { OgTemplate, OgBuildInput, OgBuildResult } from "./og-image.js";
30
- export type { SiteArtifactStats, SiteArtifactsResult, } from "./site-artifacts.js";
31
- export { syncIconAssets } from "./sync-icons.js";
32
- export type { IconSyncOptions, IconSyncResult } from "./sync-icons.js";
33
- export { pickCleanupCandidates, cleanupStale } from "./decisions.js";
34
- export type { CleanupCandidate, CleanupReport } from "./decisions.js";
35
- export { parseGithubRepoUrl, fetchGithubMetadata, buildGithubSyncPatch } from "./github.js";
36
- export type { GithubRepoRef } from "./github.js";
37
- export { enrichFromGithubHtml } from "./enrich.js";
38
- export type { EnrichedFields, EnrichResult } from "./enrich.js";
39
- export { rateLimitWaitMs, sleep } from "./github-client.js";
40
- export { syncContributors } from "./contributors.js";
41
- export type { Contributor, ContributorSyncResult, SyncContributorsOptions, } from "./contributors.js";
42
- export type { GhFetchOptions } from "./github-client.js";
43
- export { classifyHealth } from "./health.js";
44
- export { detectGithubRepo, parseAwesomeMarkdown, } from "./markdown.js";
45
- export type { ImportedRecord, ImportSummary, ImportResult, } from "./markdown.js";
46
- export { importAwesomeList, writeImportedRecords } from "./importer.js";
47
- export { parseEntry, parseSections } from "./parseReadme.js";
48
- export type { ParsedEntry, ParsedSection } from "./parseReadme.js";
49
- export { readYamlFile, writeYamlFile, writeTextFile } from "./io.js";
50
- export { validateProject } from "./validate.js";
51
- export type { ValidationResult, ValidationIssue, ValidationSeverity } from "./validate.js";
52
- export * from "./directory-display.js";
53
- export * from "./directory-facets.js";
54
- export * from "./directory-format.js";
55
- export * from "./directory-lenses.js";
56
- export * from "./directory-repo.js";
57
- export * from "./directory-scores.js";
58
- export * from "./directory-search.js";
59
- export * from "./directory-taxonomy.js";
60
- export { extractToc, headingSlug, readContentFile, readingMetrics, resolveContentPath, stripFrontmatter, } from "./content-body.js";
61
- export type { ExtractTocOptions, ReadContentFileResult, ReadingMetrics, ReadingMetricsOptions, TocEntry, } from "./content-body.js";
62
- export { DEFAULT_BUDGET, evaluateBudget, } from "./audit.js";
63
- export type { PageType, Profile, PageManifestEntry, LighthouseScores, LighthouseMetrics, AuditResult, BudgetConfig, BudgetViolation, } from "./audit.js";
64
- export { definePageDocument, siteSchema, breadcrumbSchema, collectionSchema, recordSchema, contentSchema, buildJsonLd, validateJsonLd, } from "./page-document.js";
65
- export type { DocumentPageType, OpenGraphMetadata, TwitterMetadata, PageMetadata, LinkedDocument, JsonLdNode, PageDiscovery, PageIdentity, PageDocument, Crumb, SiteInput, CollectionInput, RecordInput, ContentInput, JsonLdValidationIssue, } from "./page-document.js";
66
- export { buildRobotsTxt, isIndexableFilterPath } from "./robots.js";
67
- export { filterEntries, rankEntries, } from "./collections.js";
68
- export type { CollectionKind, RankingPreset, CollectionQuery, CollectionRanking, CollectionEditorial, CollectionSeo, Collection, CollectionEntry, } from "./collections.js";
69
- export { runCollection } from "./collector.js";
70
- export type { CollectionResult } from "./collector.js";
71
- export { findRelated } from "./related.js";
72
- export { loadCollections } from "./collections-io.js";
10
+ export type { AuditResult, BudgetConfig, BudgetViolation, LighthouseMetrics, LighthouseScores, PageManifestEntry, PageType, Profile, } from './audit.js';
11
+ export { DEFAULT_BUDGET, evaluateBudget, } from './audit.js';
12
+ export type { AwesomeReadmeCategory, AwesomeReadmeInput, AwesomeReadmeOptions, AwesomeReadmeRecord, AwesomeReadmeSections, } from './awesome-readme.js';
13
+ export { AWESOME_README_END, AWESOME_README_START, buildAwesomeReadme, injectAwesomeReadmeBlock, parseAwesomeReadmeSections, } from './awesome-readme.js';
14
+ export type { GenerateResult, RecordsFullPayload, RecordsIndexPayload } from './build-data.js';
15
+ export { generate } from './build-data.js';
16
+ export type { Collection, CollectionEditorial, CollectionEntry, CollectionKind, CollectionQuery, CollectionRanking, CollectionSeo, RankingPreset, } from './collections.js';
17
+ export { filterEntries, rankEntries, } from './collections.js';
18
+ export { loadCollections } from './collections-io.js';
19
+ export type { CollectionResult } from './collector.js';
20
+ export { runCollection } from './collector.js';
21
+ export { defineConfig, loadConfig } from './config.js';
22
+ export type { ExtractTocOptions, ReadContentFileResult, ReadingMetrics, ReadingMetricsOptions, TocEntry, } from './content-body.js';
23
+ export { extractToc, headingSlug, readContentFile, readingMetrics, resolveContentPath, stripFrontmatter, } from './content-body.js';
24
+ export type { Contributor, ContributorSyncResult, SyncContributorsOptions, } from './contributors.js';
25
+ export { syncContributors } from './contributors.js';
26
+ export type { CleanupCandidate, CleanupReport } from './decisions.js';
27
+ export { cleanupStale, pickCleanupCandidates } from './decisions.js';
28
+ export * from './directory-display.js';
29
+ export * from './directory-facets.js';
30
+ export type { DirectoryFilterGroupKey, DirectoryFilterLabel, DirectoryFilterParamKey, DirectoryTaxonomyKind, } from './directory-filter-keys.js';
31
+ export { DIRECTORY_FILTER_KEYS, DIRECTORY_FILTER_LABELS, DIRECTORY_TAXONOMY_KINDS, FACET_DIMENSION_FOR_KEY, isDirectoryFilterGroupKey, } from './directory-filter-keys.js';
32
+ export * from './directory-format.js';
33
+ export * from './directory-lenses.js';
34
+ export * from './directory-repo.js';
35
+ export * from './directory-scores.js';
36
+ export * from './directory-search.js';
37
+ export * from './directory-taxonomy.js';
38
+ export type { EnrichedFields, EnrichResult } from './enrich.js';
39
+ export { enrichFromGithubHtml } from './enrich.js';
40
+ export type { GithubRepoRef } from './github.js';
41
+ export { buildGithubSyncPatch, fetchGithubMetadata, parseGithubRepoUrl } from './github.js';
42
+ export type { GhFetchOptions } from './github-client.js';
43
+ export { rateLimitWaitMs, sleep } from './github-client.js';
44
+ export { classifyHealth } from './health.js';
45
+ export { hostOf } from './host.js';
46
+ export { importAwesomeList, writeImportedRecords } from './importer.js';
47
+ export { readYamlFile, writeTextFile, writeYamlFile } from './io.js';
48
+ export type { LlmsInput, LlmsRecordInput, LlmsResult } from './llms.js';
49
+ export { buildLlmsFiles, buildLlmsFullTxt, buildLlmsTxt } from './llms.js';
50
+ export type { ImportedRecord, ImportResult, ImportSummary, } from './markdown.js';
51
+ export { detectGithubRepo, parseAwesomeMarkdown, } from './markdown.js';
52
+ export type { OgBuildInput, OgBuildResult, OgTemplate } from './og-image.js';
53
+ export { buildOgImages, renderOgPng } from './og-image.js';
54
+ export type { CollectionInput, ContentInput, Crumb, DocumentPageType, JsonLdNode, JsonLdValidationIssue, LinkedDocument, OpenGraphMetadata, PageDiscovery, PageDocument, PageIdentity, PageMetadata, RecordInput, SiteInput, TwitterMetadata, } from './page-document.js';
55
+ export { breadcrumbSchema, buildJsonLd, collectionSchema, contentSchema, definePageDocument, recordSchema, siteSchema, validateJsonLd, } from './page-document.js';
56
+ export type { ParsedEntry, ParsedSection } from './parseReadme.js';
57
+ export { parseEntry, parseSections } from './parseReadme.js';
58
+ export type { PrepareDirectoryResult } from './prepare.js';
59
+ export { prepareDirectory } from './prepare.js';
60
+ export { findRelated } from './related.js';
61
+ export { buildRobotsTxt, isIndexableFilterPath } from './robots.js';
62
+ export type { AppLabel, Blueprint, Decision, DecisionsFile, DecisionVisibility, EntityRecord, EntityType, GithubIntegrationFlags, GithubMetadata, GithubRepository, GroveConfig, GroveConfigInput, HealthEntry, HealthFile, HealthStatus, HealthTier, IndexEntityRecord, IndexProjectRecord, IndexRecord, IndexResourceRecord, Links, Override, OverridesFile, ProjectRecord, ProjectType, ReadmeConfig, Resource, ResourceKind, ResourceRecord, ResourceType, Score, } from './schema.js';
63
+ 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';
64
+ export type { SiteArtifactStats, SiteArtifactsResult, } from './site-artifacts.js';
65
+ export { buildOgImageSvg, buildSiteArtifacts } from './site-artifacts.js';
66
+ export { buildSitemap, buildSitemapXml } from './sitemap.js';
67
+ export { slugify, uniqueSlug } from './slug.js';
68
+ export type { IconSyncOptions, IconSyncResult } from './sync-icons.js';
69
+ export { syncIconAssets } from './sync-icons.js';
70
+ export type { InferStackInput } from './taxonomy-inference.js';
71
+ export { inferStackFromTopics } from './taxonomy-inference.js';
72
+ export type { ValidationIssue, ValidationResult, ValidationSeverity } from './validate.js';
73
+ export { validateProject } from './validate.js';
74
+ export type { ParsedRepo } from './yaml.js';
75
+ export { parseGithubRepo, recordSlugify, yamlLines, yamlQuote, } from './yaml.js';
73
76
  //# sourceMappingURL=index.d.ts.map
@@ -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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"}