@grove-dev/core 0.17.0 → 0.18.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 (54) hide show
  1. package/dist/build-data.d.ts.map +1 -1
  2. package/dist/build-data.js +2 -0
  3. package/dist/build-data.js.map +1 -1
  4. package/dist/candidate-collector.d.ts +61 -0
  5. package/dist/candidate-collector.d.ts.map +1 -0
  6. package/dist/candidate-collector.js +545 -0
  7. package/dist/candidate-collector.js.map +1 -0
  8. package/dist/candidate-discovery.d.ts +92 -0
  9. package/dist/candidate-discovery.d.ts.map +1 -0
  10. package/dist/candidate-discovery.js +488 -0
  11. package/dist/candidate-discovery.js.map +1 -0
  12. package/dist/candidate-schema.d.ts +209 -0
  13. package/dist/candidate-schema.d.ts.map +1 -0
  14. package/dist/candidate-schema.js +84 -0
  15. package/dist/candidate-schema.js.map +1 -0
  16. package/dist/github-cache.d.ts +87 -1
  17. package/dist/github-cache.d.ts.map +1 -1
  18. package/dist/github-cache.js +19 -1
  19. package/dist/github-cache.js.map +1 -1
  20. package/dist/image-probe.d.ts +27 -0
  21. package/dist/image-probe.d.ts.map +1 -0
  22. package/dist/image-probe.js +124 -0
  23. package/dist/image-probe.js.map +1 -0
  24. package/dist/index-policy.d.ts +48 -0
  25. package/dist/index-policy.d.ts.map +1 -0
  26. package/dist/index-policy.js +58 -0
  27. package/dist/index-policy.js.map +1 -0
  28. package/dist/index.d.ts +16 -4
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +8 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/page-document.d.ts +48 -0
  33. package/dist/page-document.d.ts.map +1 -1
  34. package/dist/page-document.js +93 -8
  35. package/dist/page-document.js.map +1 -1
  36. package/dist/prepare.d.ts.map +1 -1
  37. package/dist/prepare.js +31 -10
  38. package/dist/prepare.js.map +1 -1
  39. package/dist/record-candidates.d.ts +61 -0
  40. package/dist/record-candidates.d.ts.map +1 -0
  41. package/dist/record-candidates.js +261 -0
  42. package/dist/record-candidates.js.map +1 -0
  43. package/dist/schema.d.ts +78 -18
  44. package/dist/schema.d.ts.map +1 -1
  45. package/dist/schema.js +55 -2
  46. package/dist/schema.js.map +1 -1
  47. package/dist/sitemap.d.ts +3 -0
  48. package/dist/sitemap.d.ts.map +1 -1
  49. package/dist/sitemap.js +2 -0
  50. package/dist/sitemap.js.map +1 -1
  51. package/dist/validate.d.ts.map +1 -1
  52. package/dist/validate.js +14 -2
  53. package/dist/validate.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,209 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Channel and media candidates: install channels, logos and
4
+ * screenshots that `grove sync github` finds for a record when
5
+ * `integrations.github.candidates` is on.
6
+ *
7
+ * Candidates live in the GitHub sync cache, never in the record, and
8
+ * nothing renders them. A reviewer approves or rejects each one in
9
+ * `paths.decisions` (see {@link candidateReviewSchema}); copying an
10
+ * approved one into the record stays a human edit.
11
+ */
12
+ /** Where a candidate was found. */
13
+ export declare const candidateOriginSchema: z.ZodEnum<{
14
+ fdroid: "fdroid";
15
+ flathub: "flathub";
16
+ repology: "repology";
17
+ "github-releases": "github-releases";
18
+ fastlane: "fastlane";
19
+ appstream: "appstream";
20
+ "web-manifest": "web-manifest";
21
+ "repo-asset": "repo-asset";
22
+ }>;
23
+ export type CandidateOrigin = z.infer<typeof candidateOriginSchema>;
24
+ export declare const candidateKindSchema: z.ZodEnum<{
25
+ channel: "channel";
26
+ logo: "logo";
27
+ screenshot: "screenshot";
28
+ }>;
29
+ export type CandidateKind = z.infer<typeof candidateKindSchema>;
30
+ /**
31
+ * Where the evidence for a candidate came from: the source, the URL
32
+ * that proved it (a commit-pinned permalink for files in the
33
+ * repository, the API endpoint for a package index), and when.
34
+ */
35
+ export declare const candidateProvenanceSchema: z.ZodObject<{
36
+ source: z.ZodEnum<{
37
+ fdroid: "fdroid";
38
+ flathub: "flathub";
39
+ repology: "repology";
40
+ "github-releases": "github-releases";
41
+ fastlane: "fastlane";
42
+ appstream: "appstream";
43
+ "web-manifest": "web-manifest";
44
+ "repo-asset": "repo-asset";
45
+ }>;
46
+ url: z.ZodString;
47
+ fetchedAt: z.ZodString;
48
+ }, z.core.$strip>;
49
+ export type CandidateProvenance = z.infer<typeof candidateProvenanceSchema>;
50
+ /** An install channel, shaped like a `distribution.channels[]` entry plus evidence. */
51
+ export declare const channelCandidateSchema: z.ZodObject<{
52
+ type: z.ZodString;
53
+ platform: z.ZodOptional<z.ZodString>;
54
+ label: z.ZodString;
55
+ url: z.ZodString;
56
+ facts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
57
+ provenance: z.ZodObject<{
58
+ source: z.ZodEnum<{
59
+ fdroid: "fdroid";
60
+ flathub: "flathub";
61
+ repology: "repology";
62
+ "github-releases": "github-releases";
63
+ fastlane: "fastlane";
64
+ appstream: "appstream";
65
+ "web-manifest": "web-manifest";
66
+ "repo-asset": "repo-asset";
67
+ }>;
68
+ url: z.ZodString;
69
+ fetchedAt: z.ZodString;
70
+ }, z.core.$strip>;
71
+ }, z.core.$strip>;
72
+ export type ChannelCandidate = z.infer<typeof channelCandidateSchema>;
73
+ /** A logo or screenshot. Facts are cheap ones: never a full download. */
74
+ export declare const mediaCandidateSchema: z.ZodObject<{
75
+ url: z.ZodString;
76
+ path: z.ZodOptional<z.ZodString>;
77
+ blobSha: z.ZodOptional<z.ZodString>;
78
+ locale: z.ZodOptional<z.ZodString>;
79
+ format: z.ZodOptional<z.ZodString>;
80
+ bytes: z.ZodOptional<z.ZodNumber>;
81
+ width: z.ZodOptional<z.ZodNumber>;
82
+ height: z.ZodOptional<z.ZodNumber>;
83
+ provenance: z.ZodObject<{
84
+ source: z.ZodEnum<{
85
+ fdroid: "fdroid";
86
+ flathub: "flathub";
87
+ repology: "repology";
88
+ "github-releases": "github-releases";
89
+ fastlane: "fastlane";
90
+ appstream: "appstream";
91
+ "web-manifest": "web-manifest";
92
+ "repo-asset": "repo-asset";
93
+ }>;
94
+ url: z.ZodString;
95
+ fetchedAt: z.ZodString;
96
+ }, z.core.$strip>;
97
+ }, z.core.$strip>;
98
+ export type MediaCandidate = z.infer<typeof mediaCandidateSchema>;
99
+ export declare const recordCandidatesSchema: z.ZodObject<{
100
+ channels: z.ZodDefault<z.ZodArray<z.ZodObject<{
101
+ type: z.ZodString;
102
+ platform: z.ZodOptional<z.ZodString>;
103
+ label: z.ZodString;
104
+ url: z.ZodString;
105
+ facts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
106
+ provenance: z.ZodObject<{
107
+ source: z.ZodEnum<{
108
+ fdroid: "fdroid";
109
+ flathub: "flathub";
110
+ repology: "repology";
111
+ "github-releases": "github-releases";
112
+ fastlane: "fastlane";
113
+ appstream: "appstream";
114
+ "web-manifest": "web-manifest";
115
+ "repo-asset": "repo-asset";
116
+ }>;
117
+ url: z.ZodString;
118
+ fetchedAt: z.ZodString;
119
+ }, z.core.$strip>;
120
+ }, z.core.$strip>>>;
121
+ logos: z.ZodDefault<z.ZodArray<z.ZodObject<{
122
+ url: z.ZodString;
123
+ path: z.ZodOptional<z.ZodString>;
124
+ blobSha: z.ZodOptional<z.ZodString>;
125
+ locale: z.ZodOptional<z.ZodString>;
126
+ format: z.ZodOptional<z.ZodString>;
127
+ bytes: z.ZodOptional<z.ZodNumber>;
128
+ width: z.ZodOptional<z.ZodNumber>;
129
+ height: z.ZodOptional<z.ZodNumber>;
130
+ provenance: z.ZodObject<{
131
+ source: z.ZodEnum<{
132
+ fdroid: "fdroid";
133
+ flathub: "flathub";
134
+ repology: "repology";
135
+ "github-releases": "github-releases";
136
+ fastlane: "fastlane";
137
+ appstream: "appstream";
138
+ "web-manifest": "web-manifest";
139
+ "repo-asset": "repo-asset";
140
+ }>;
141
+ url: z.ZodString;
142
+ fetchedAt: z.ZodString;
143
+ }, z.core.$strip>;
144
+ }, z.core.$strip>>>;
145
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
146
+ url: z.ZodString;
147
+ path: z.ZodOptional<z.ZodString>;
148
+ blobSha: z.ZodOptional<z.ZodString>;
149
+ locale: z.ZodOptional<z.ZodString>;
150
+ format: z.ZodOptional<z.ZodString>;
151
+ bytes: z.ZodOptional<z.ZodNumber>;
152
+ width: z.ZodOptional<z.ZodNumber>;
153
+ height: z.ZodOptional<z.ZodNumber>;
154
+ provenance: z.ZodObject<{
155
+ source: z.ZodEnum<{
156
+ fdroid: "fdroid";
157
+ flathub: "flathub";
158
+ repology: "repology";
159
+ "github-releases": "github-releases";
160
+ fastlane: "fastlane";
161
+ appstream: "appstream";
162
+ "web-manifest": "web-manifest";
163
+ "repo-asset": "repo-asset";
164
+ }>;
165
+ url: z.ZodString;
166
+ fetchedAt: z.ZodString;
167
+ }, z.core.$strip>;
168
+ }, z.core.$strip>>>;
169
+ }, z.core.$strip>;
170
+ export type RecordCandidates = z.infer<typeof recordCandidatesSchema>;
171
+ /**
172
+ * A reviewer's verdict on one candidate, listed under `candidates:`
173
+ * in `paths.decisions`. `id` is the record slug; `kind` and `url`
174
+ * name the candidate exactly as `grove candidates` prints it. A media
175
+ * candidate's URL is pinned to a commit, so a changed file shows up
176
+ * as a new candidate and is reviewed again.
177
+ */
178
+ export declare const candidateReviewSchema: z.ZodObject<{
179
+ id: z.ZodString;
180
+ kind: z.ZodEnum<{
181
+ channel: "channel";
182
+ logo: "logo";
183
+ screenshot: "screenshot";
184
+ }>;
185
+ url: z.ZodString;
186
+ verdict: z.ZodEnum<{
187
+ approved: "approved";
188
+ rejected: "rejected";
189
+ }>;
190
+ reason: z.ZodOptional<z.ZodString>;
191
+ reviewedBy: z.ZodOptional<z.ZodString>;
192
+ reviewedAt: z.ZodOptional<z.ZodString>;
193
+ provenance: z.ZodObject<{
194
+ source: z.ZodEnum<{
195
+ fdroid: "fdroid";
196
+ flathub: "flathub";
197
+ repology: "repology";
198
+ "github-releases": "github-releases";
199
+ fastlane: "fastlane";
200
+ appstream: "appstream";
201
+ "web-manifest": "web-manifest";
202
+ "repo-asset": "repo-asset";
203
+ }>;
204
+ url: z.ZodString;
205
+ fetchedAt: z.ZodString;
206
+ }, z.core.$strip>;
207
+ }, z.core.$strip>;
208
+ export type CandidateReview = z.infer<typeof candidateReviewSchema>;
209
+ //# sourceMappingURL=candidate-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-schema.d.ts","sourceRoot":"","sources":["../src/candidate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;GASG;AAEH,mCAAmC;AACnC,eAAO,MAAM,qBAAqB;;;;;;;;;EAShC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;EAA4C,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,uFAAuF;AACvF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;iBASjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,yEAAyE;AACzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAShC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Channel and media candidates: install channels, logos and
4
+ * screenshots that `grove sync github` finds for a record when
5
+ * `integrations.github.candidates` is on.
6
+ *
7
+ * Candidates live in the GitHub sync cache, never in the record, and
8
+ * nothing renders them. A reviewer approves or rejects each one in
9
+ * `paths.decisions` (see {@link candidateReviewSchema}); copying an
10
+ * approved one into the record stays a human edit.
11
+ */
12
+ /** Where a candidate was found. */
13
+ export const candidateOriginSchema = z.enum([
14
+ 'fdroid',
15
+ 'flathub',
16
+ 'repology',
17
+ 'github-releases',
18
+ 'fastlane',
19
+ 'appstream',
20
+ 'web-manifest',
21
+ 'repo-asset',
22
+ ]);
23
+ export const candidateKindSchema = z.enum(['channel', 'logo', 'screenshot']);
24
+ /**
25
+ * Where the evidence for a candidate came from: the source, the URL
26
+ * that proved it (a commit-pinned permalink for files in the
27
+ * repository, the API endpoint for a package index), and when.
28
+ */
29
+ export const candidateProvenanceSchema = z.object({
30
+ source: candidateOriginSchema,
31
+ url: z.string().min(1),
32
+ fetchedAt: z.string().min(1),
33
+ });
34
+ /** An install channel, shaped like a `distribution.channels[]` entry plus evidence. */
35
+ export const channelCandidateSchema = z.object({
36
+ /** Channel id: `fdroid`, `flathub`, `github-releases`, `snapcraft` or `package-manager`. */
37
+ type: z.string().min(1),
38
+ platform: z.string().optional(),
39
+ label: z.string().min(1),
40
+ url: z.string().min(1),
41
+ /** What the source reported: app id, release tag and assets, package names. */
42
+ facts: z.record(z.string(), z.unknown()).default({}),
43
+ provenance: candidateProvenanceSchema,
44
+ });
45
+ /** A logo or screenshot. Facts are cheap ones: never a full download. */
46
+ export const mediaCandidateSchema = z.object({
47
+ /** Commit-pinned permalink for a repository file, else the URL as found. */
48
+ url: z.string().min(1),
49
+ /** Path in the repository, when the file lives there. */
50
+ path: z.string().optional(),
51
+ /** Git blob SHA of that file: an unchanged blob keeps its candidate. */
52
+ blobSha: z.string().optional(),
53
+ /** fastlane locale directory, e.g. `en-US`. */
54
+ locale: z.string().optional(),
55
+ format: z.string().optional(),
56
+ /** Size from the git tree. */
57
+ bytes: z.number().int().nonnegative().optional(),
58
+ width: z.number().int().positive().optional(),
59
+ height: z.number().int().positive().optional(),
60
+ provenance: candidateProvenanceSchema,
61
+ });
62
+ export const recordCandidatesSchema = z.object({
63
+ channels: z.array(channelCandidateSchema).default([]),
64
+ logos: z.array(mediaCandidateSchema).default([]),
65
+ screenshots: z.array(mediaCandidateSchema).default([]),
66
+ });
67
+ /**
68
+ * A reviewer's verdict on one candidate, listed under `candidates:`
69
+ * in `paths.decisions`. `id` is the record slug; `kind` and `url`
70
+ * name the candidate exactly as `grove candidates` prints it. A media
71
+ * candidate's URL is pinned to a commit, so a changed file shows up
72
+ * as a new candidate and is reviewed again.
73
+ */
74
+ export const candidateReviewSchema = z.object({
75
+ id: z.string().min(1),
76
+ kind: candidateKindSchema,
77
+ url: z.string().min(1),
78
+ verdict: z.enum(['approved', 'rejected']),
79
+ reason: z.string().optional(),
80
+ reviewedBy: z.string().optional(),
81
+ reviewedAt: z.string().optional(),
82
+ provenance: candidateProvenanceSchema,
83
+ });
84
+ //# sourceMappingURL=candidate-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-schema.js","sourceRoot":"","sources":["../src/candidate-schema.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,20 @@ declare const cacheSourceSchema: z.ZodEnum<{
26
26
  api: "api";
27
27
  html: "html";
28
28
  }>;
29
+ /**
30
+ * What failed: the API or HTML fetch, or — with
31
+ * `integrations.github.candidates` — candidate collection. Candidate
32
+ * failures are recorded but never make the entry stale.
33
+ */
34
+ declare const cacheFailureSourceSchema: z.ZodEnum<{
35
+ candidates: "candidates";
36
+ api: "api";
37
+ html: "html";
38
+ }>;
29
39
  declare const githubCacheFailureSchema: z.ZodObject<{
30
40
  at: z.ZodString;
31
41
  source: z.ZodEnum<{
42
+ candidates: "candidates";
32
43
  api: "api";
33
44
  html: "html";
34
45
  }>;
@@ -46,6 +57,7 @@ export declare const githubCacheEntrySchema: z.ZodObject<{
46
57
  partialFailures: z.ZodDefault<z.ZodArray<z.ZodObject<{
47
58
  at: z.ZodString;
48
59
  source: z.ZodEnum<{
60
+ candidates: "candidates";
49
61
  api: "api";
50
62
  html: "html";
51
63
  }>;
@@ -54,8 +66,80 @@ export declare const githubCacheEntrySchema: z.ZodObject<{
54
66
  sourceDescription: z.ZodOptional<z.ZodString>;
55
67
  github: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
56
68
  health: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
69
+ candidates: z.ZodOptional<z.ZodObject<{
70
+ channels: z.ZodDefault<z.ZodArray<z.ZodObject<{
71
+ type: z.ZodString;
72
+ platform: z.ZodOptional<z.ZodString>;
73
+ label: z.ZodString;
74
+ url: z.ZodString;
75
+ facts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
76
+ provenance: z.ZodObject<{
77
+ source: z.ZodEnum<{
78
+ fdroid: "fdroid";
79
+ flathub: "flathub";
80
+ repology: "repology";
81
+ "github-releases": "github-releases";
82
+ fastlane: "fastlane";
83
+ appstream: "appstream";
84
+ "web-manifest": "web-manifest";
85
+ "repo-asset": "repo-asset";
86
+ }>;
87
+ url: z.ZodString;
88
+ fetchedAt: z.ZodString;
89
+ }, z.core.$strip>;
90
+ }, z.core.$strip>>>;
91
+ logos: z.ZodDefault<z.ZodArray<z.ZodObject<{
92
+ url: z.ZodString;
93
+ path: z.ZodOptional<z.ZodString>;
94
+ blobSha: z.ZodOptional<z.ZodString>;
95
+ locale: z.ZodOptional<z.ZodString>;
96
+ format: z.ZodOptional<z.ZodString>;
97
+ bytes: z.ZodOptional<z.ZodNumber>;
98
+ width: z.ZodOptional<z.ZodNumber>;
99
+ height: z.ZodOptional<z.ZodNumber>;
100
+ provenance: z.ZodObject<{
101
+ source: z.ZodEnum<{
102
+ fdroid: "fdroid";
103
+ flathub: "flathub";
104
+ repology: "repology";
105
+ "github-releases": "github-releases";
106
+ fastlane: "fastlane";
107
+ appstream: "appstream";
108
+ "web-manifest": "web-manifest";
109
+ "repo-asset": "repo-asset";
110
+ }>;
111
+ url: z.ZodString;
112
+ fetchedAt: z.ZodString;
113
+ }, z.core.$strip>;
114
+ }, z.core.$strip>>>;
115
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
116
+ url: z.ZodString;
117
+ path: z.ZodOptional<z.ZodString>;
118
+ blobSha: z.ZodOptional<z.ZodString>;
119
+ locale: z.ZodOptional<z.ZodString>;
120
+ format: z.ZodOptional<z.ZodString>;
121
+ bytes: z.ZodOptional<z.ZodNumber>;
122
+ width: z.ZodOptional<z.ZodNumber>;
123
+ height: z.ZodOptional<z.ZodNumber>;
124
+ provenance: z.ZodObject<{
125
+ source: z.ZodEnum<{
126
+ fdroid: "fdroid";
127
+ flathub: "flathub";
128
+ repology: "repology";
129
+ "github-releases": "github-releases";
130
+ fastlane: "fastlane";
131
+ appstream: "appstream";
132
+ "web-manifest": "web-manifest";
133
+ "repo-asset": "repo-asset";
134
+ }>;
135
+ url: z.ZodString;
136
+ fetchedAt: z.ZodString;
137
+ }, z.core.$strip>;
138
+ }, z.core.$strip>>>;
139
+ }, z.core.$strip>>;
57
140
  }, z.core.$strip>;
58
141
  export type GithubCacheSource = z.infer<typeof cacheSourceSchema>;
142
+ export type GithubCacheFailureSource = z.infer<typeof cacheFailureSourceSchema>;
59
143
  export type GithubCacheFailure = z.infer<typeof githubCacheFailureSchema>;
60
144
  export type GithubCacheEntry = z.infer<typeof githubCacheEntrySchema>;
61
145
  export interface GithubCache {
@@ -170,9 +254,11 @@ export interface GithubSyncAttempt {
170
254
  /** A freshly derived health block; the previous one is kept when absent. */
171
255
  health?: Record<string, unknown>;
172
256
  sourceDescription?: string;
257
+ /** Freshly collected candidates; the previous ones are kept when absent. */
258
+ candidates?: GithubCacheEntry['candidates'];
173
259
  /** What failed on the way, in order. */
174
260
  failures: Array<{
175
- source: GithubCacheSource;
261
+ source: GithubCacheFailureSource;
176
262
  reason: string;
177
263
  }>;
178
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github-cache.d.ts","sourceRoot":"","sources":["../src/github-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-cache.d.ts","sourceRoot":"","sources":["../src/github-cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,kEAAkE;AAClE,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,QAAA,MAAM,iBAAiB;;;EAA0B,CAAC;AAElD;;;;GAIG;AACH,QAAA,MAAM,wBAAwB;;;;EAAwC,CAAC;AAEvE,QAAA,MAAM,wBAAwB;;;;;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmBjC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAChF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,+DAA+D;IAC/D,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,SAAgB,GAAG,MAAM,CAE/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,GAAG,SAAgB,GAClB,OAAO,CAAC,WAAW,CAAC,CA6BtB;AAID,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAI5D,MAAM,WAAW,0BAA0B;IACzC,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAChB;IACE,KAAK,EAAE,IAAI,CAAC;IACZ,qGAAqG;IACrG,KAAK,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC9D,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,0BAA0B,CAE1F;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAwCrB;AAoBD,MAAM,WAAW,oBAAoB;IACnC,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAC3D;AAmCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,MAAM,EAAE,CA0BV;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,SAAS,CAAC,EAAE,0BAA0B,GACrC,oBAAoB,CAyBtB;AAiBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAMzE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,wCAAwC;IACxC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,wBAAwB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CA0BlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,CAyBlB;AAID,QAAA,MAAM,aAAa,+BAAgC,CAAC;AAgBpD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgCpF;AAED,MAAM,WAAW,oBAAoB;IACnC,sGAAsG;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,wDAAwD;IACxD,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,uFAAuF;IACvF,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,oBAAoB,CAmBtB"}
@@ -2,6 +2,7 @@ import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
2
2
  import { basename, join, resolve } from 'node:path';
3
3
  import { parseDocument, parse as parseYaml } from 'yaml';
4
4
  import { z } from 'zod';
5
+ import { recordCandidatesSchema } from './candidate-schema.js';
5
6
  import { DAY_MS } from './health-thresholds.js';
6
7
  /**
7
8
  * The GitHub sync cache: one JSON file per record, owned by
@@ -26,9 +27,15 @@ export const GITHUB_SYNC_MAX_AGE_DAYS = 14;
26
27
  /** `staleReason` of a health block resolved from a stale cache entry. */
27
28
  export const SYNC_STALE_REASON = 'sync_stale';
28
29
  const cacheSourceSchema = z.enum(['api', 'html']);
30
+ /**
31
+ * What failed: the API or HTML fetch, or — with
32
+ * `integrations.github.candidates` — candidate collection. Candidate
33
+ * failures are recorded but never make the entry stale.
34
+ */
35
+ const cacheFailureSourceSchema = z.enum(['api', 'html', 'candidates']);
29
36
  const githubCacheFailureSchema = z.object({
30
37
  at: z.string(),
31
- source: cacheSourceSchema,
38
+ source: cacheFailureSourceSchema,
32
39
  reason: z.string(),
33
40
  });
34
41
  export const githubCacheEntrySchema = z.object({
@@ -45,6 +52,11 @@ export const githubCacheEntrySchema = z.object({
45
52
  sourceDescription: z.string().optional(),
46
53
  github: z.record(z.string(), z.unknown()).optional(),
47
54
  health: z.record(z.string(), z.unknown()).optional(),
55
+ /**
56
+ * Channel and media candidates (`integrations.github.candidates`).
57
+ * Review material only: never merged into the record or rendered.
58
+ */
59
+ candidates: recordCandidatesSchema.optional(),
48
60
  });
49
61
  /**
50
62
  * Absolute directory of the GitHub sync cache for a project. Falls
@@ -109,6 +121,9 @@ export function githubSyncFreshness(entry, options = {}) {
109
121
  const maxAgeDays = options.maxAgeDays ?? GITHUB_SYNC_MAX_AGE_DAYS;
110
122
  const success = entry.lastSuccessAt ? Date.parse(entry.lastSuccessAt) : Number.NaN;
111
123
  const newestFailure = entry.partialFailures.reduce((newest, failure) => {
124
+ // A candidate lookup failing says nothing about the metadata.
125
+ if (failure.source === 'candidates')
126
+ return newest;
112
127
  const at = Date.parse(failure.at);
113
128
  if (Number.isNaN(at) || (newest && newest.at >= at))
114
129
  return newest;
@@ -269,6 +284,7 @@ const ENTRY_KEY_ORDER = [
269
284
  'sourceDescription',
270
285
  'github',
271
286
  'health',
287
+ 'candidates',
272
288
  ];
273
289
  /**
274
290
  * Serialize a cache entry: fixed top-level key order, two-space
@@ -327,6 +343,8 @@ export function nextGithubCacheEntry(previous, attempt) {
327
343
  ...(attempt.repoUrl ? { repoUrl: attempt.repoUrl } : {}),
328
344
  partialFailures,
329
345
  };
346
+ if (attempt.candidates)
347
+ next.candidates = attempt.candidates;
330
348
  if (!attempt.source)
331
349
  return next;
332
350
  next.source = attempt.source;
@@ -1 +1 @@
1
- {"version":3,"file":"github-cache.js","sourceRoot":"","sources":["../src/github-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-cache.js","sourceRoot":"","sources":["../src/github-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Read an image's format and pixel size from the first bytes of the
3
+ * file, so sync can describe a logo or screenshot candidate without
4
+ * downloading it. Callers fetch a small byte range (see
5
+ * {@link IMAGE_PROBE_BYTES}) and hand it here; nothing in this module
6
+ * touches the network.
7
+ */
8
+ export type ImageFormat = 'png' | 'jpeg' | 'gif' | 'webp' | 'svg' | 'ico' | 'avif';
9
+ export interface ImageFacts {
10
+ format?: ImageFormat;
11
+ width?: number;
12
+ height?: number;
13
+ }
14
+ /**
15
+ * Bytes a range request asks for. Enough for the PNG, GIF and WebP
16
+ * headers and for the opening `<svg …>` tag; a JPEG's frame header
17
+ * usually sits past its EXIF block but inside this window.
18
+ */
19
+ export declare const IMAGE_PROBE_BYTES = 16384;
20
+ /** Image format implied by a path or URL's extension. */
21
+ export declare function imageFormatFromPath(path: string): ImageFormat | undefined;
22
+ /**
23
+ * Format and size from the leading bytes of an image. Returns only
24
+ * what the bytes prove: `{}` when they match no known header.
25
+ */
26
+ export declare function probeImageBytes(bytes: Uint8Array): ImageFacts;
27
+ //# sourceMappingURL=image-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-probe.d.ts","sourceRoot":"","sources":["../src/image-probe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAaxC,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAIzE;AA2FD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAS7D"}