@grimoire-rs/indexer 0.3.3 → 0.4.1
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.
- package/README.md +220 -9
- package/dist/ci.d.ts +6 -1
- package/dist/ci.d.ts.map +1 -1
- package/dist/ci.js +32 -1
- package/dist/ci.js.map +1 -1
- package/dist/cli/build.d.ts.map +1 -1
- package/dist/cli/build.js +3 -1
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/ci.d.ts.map +1 -1
- package/dist/cli/ci.js +5 -1
- package/dist/cli/ci.js.map +1 -1
- package/dist/cli/enrich.d.ts +1 -0
- package/dist/cli/enrich.d.ts.map +1 -1
- package/dist/cli/enrich.js +38 -0
- package/dist/cli/enrich.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +17 -3
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +9 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/ratings.d.ts +3 -0
- package/dist/cli/ratings.d.ts.map +1 -0
- package/dist/cli/ratings.js +160 -0
- package/dist/cli/ratings.js.map +1 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +47 -1
- package/dist/config.js.map +1 -1
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +13 -0
- package/dist/data/index.js.map +1 -1
- package/dist/enrich/checkpoint.d.ts +53 -0
- package/dist/enrich/checkpoint.d.ts.map +1 -0
- package/dist/enrich/checkpoint.js +296 -0
- package/dist/enrich/checkpoint.js.map +1 -0
- package/dist/enrich/index.d.ts +14 -0
- package/dist/enrich/index.d.ts.map +1 -1
- package/dist/enrich/index.js +77 -4
- package/dist/enrich/index.js.map +1 -1
- package/dist/ratings/budget.d.ts +16 -0
- package/dist/ratings/budget.d.ts.map +1 -0
- package/dist/ratings/budget.js +7 -0
- package/dist/ratings/budget.js.map +1 -0
- package/dist/ratings/config.d.ts +56 -0
- package/dist/ratings/config.d.ts.map +1 -0
- package/dist/ratings/config.js +86 -0
- package/dist/ratings/config.js.map +1 -0
- package/dist/ratings/marker.d.ts +105 -0
- package/dist/ratings/marker.d.ts.map +1 -0
- package/dist/ratings/marker.js +141 -0
- package/dist/ratings/marker.js.map +1 -0
- package/dist/ratings/paging.d.ts +16 -0
- package/dist/ratings/paging.d.ts.map +1 -0
- package/dist/ratings/paging.js +36 -0
- package/dist/ratings/paging.js.map +1 -0
- package/dist/ratings/provider.d.ts +100 -0
- package/dist/ratings/provider.d.ts.map +1 -0
- package/dist/ratings/provider.js +203 -0
- package/dist/ratings/provider.js.map +1 -0
- package/dist/ratings/provider_github.d.ts +3 -0
- package/dist/ratings/provider_github.d.ts.map +1 -0
- package/dist/ratings/provider_github.js +135 -0
- package/dist/ratings/provider_github.js.map +1 -0
- package/dist/ratings/provider_gitlab.d.ts +3 -0
- package/dist/ratings/provider_gitlab.d.ts.map +1 -0
- package/dist/ratings/provider_gitlab.js +153 -0
- package/dist/ratings/provider_gitlab.js.map +1 -0
- package/dist/ratings/provider_memory.d.ts +28 -0
- package/dist/ratings/provider_memory.d.ts.map +1 -0
- package/dist/ratings/provider_memory.js +49 -0
- package/dist/ratings/provider_memory.js.map +1 -0
- package/dist/ratings/reconcile.d.ts +47 -0
- package/dist/ratings/reconcile.d.ts.map +1 -0
- package/dist/ratings/reconcile.js +133 -0
- package/dist/ratings/reconcile.js.map +1 -0
- package/dist/ratings/seed.d.ts +60 -0
- package/dist/ratings/seed.d.ts.map +1 -0
- package/dist/ratings/seed.js +132 -0
- package/dist/ratings/seed.js.map +1 -0
- package/dist/renderer/astro/components/Catalog.d.ts +2 -0
- package/dist/renderer/astro/components/Catalog.js +65 -16
- package/dist/renderer/astro/components/Catalog.tsx +119 -26
- package/dist/renderer/astro/components/CommandField.astro +1 -0
- package/dist/renderer/astro/components/VersionMenu.astro +31 -23
- package/dist/renderer/astro/layouts/Base.astro +218 -263
- package/dist/renderer/astro/lib/catalog.d.ts +25 -0
- package/dist/renderer/astro/lib/catalog.js +46 -0
- package/dist/renderer/astro/lib/catalog.ts +49 -0
- package/dist/renderer/astro/pages/p/[...slug].astro +238 -85
- package/dist/renderer/astro/styles/tokens.css +157 -0
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +101 -2
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/types.d.ts +41 -0
- package/dist/renderer/types.d.ts.map +1 -1
- package/dist/validate/adapters/http.d.ts +29 -1
- package/dist/validate/adapters/http.d.ts.map +1 -1
- package/dist/validate/adapters/http.js +17 -2
- package/dist/validate/adapters/http.js.map +1 -1
- package/package.json +1 -1
- package/templates/ci/github-enrich.yml +9 -1
- package/templates/ci/github-pages.yml +11 -5
- package/templates/ci/github-ratings-seed.yml +88 -0
- package/templates/ci/github-ratings.yml +51 -0
- package/templates/ci/gitlab-ci.yml +3 -3
- package/templates/ci/gitlab-enrich.sh +10 -1
- package/templates/ci/gitlab-ratings-seed.sh +83 -0
- package/templates/ci/gitlab-ratings.yml +37 -0
- package/templates/gitignore +8 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/* SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
Copyright 2026 The Grimoire Authors
|
|
3
|
+
|
|
4
|
+
THE THEMING CONTRACT — these custom properties are the whole customization
|
|
5
|
+
surface. There is no component-override API; see `data-slot` below for the
|
|
6
|
+
other half of the contract.
|
|
7
|
+
|
|
8
|
+
Everything the renderer ships is layered. Unlayered CSS — i.e. any user
|
|
9
|
+
override file — beats a layered declaration outright, at any specificity,
|
|
10
|
+
so a single `:root { --grim-color-accent: … }` wins in light AND dark
|
|
11
|
+
without !important and without knowing where Astro injects its bundle.
|
|
12
|
+
|
|
13
|
+
Names are `--grim-<category>-<role>`. The category segment is not
|
|
14
|
+
decoration: it is what stops a colour named `--grim-text` from colliding
|
|
15
|
+
with the type-scale tokens below.
|
|
16
|
+
|
|
17
|
+
COLOUR is the one family that differs per scheme, so it is the one family
|
|
18
|
+
declared twice — `:root` and `[data-theme="dark"]`. Redeclare BOTH when you
|
|
19
|
+
override one: `:root` is scheme-agnostic, so a `:root`-only override
|
|
20
|
+
silently takes dark mode with it. Every other family is a measurement, not
|
|
21
|
+
an appearance, and is declared once.
|
|
22
|
+
|
|
23
|
+
Adding a token is additive. Removing or renaming one is a breaking change.
|
|
24
|
+
|
|
25
|
+
`test/renderer/style_contract.test.ts` holds this file to it, and
|
|
26
|
+
`test/renderer/build.test.ts` proves the layer survives a real build. */
|
|
27
|
+
|
|
28
|
+
@layer grimoire {
|
|
29
|
+
:root {
|
|
30
|
+
/* ---- Colour: surface ------------------------------------------- */
|
|
31
|
+
--grim-color-bg: #f7f6f3;
|
|
32
|
+
--grim-color-fg: #1d1c1a;
|
|
33
|
+
--grim-color-muted: #6d6a63;
|
|
34
|
+
--grim-color-card: #ffffff;
|
|
35
|
+
--grim-color-border: #dedbd3;
|
|
36
|
+
--grim-color-chip-bg: #edebe5;
|
|
37
|
+
|
|
38
|
+
/* ---- Colour: accent -------------------------------------------- */
|
|
39
|
+
--grim-color-accent: #6d4fc4;
|
|
40
|
+
--grim-color-accent-soft: #efeafd;
|
|
41
|
+
--grim-color-on-accent: #ffffff;
|
|
42
|
+
|
|
43
|
+
/* ---- Colour: package kind --------------------------------------
|
|
44
|
+
Read through a name composed at runtime — `Catalog.tsx` and the detail
|
|
45
|
+
page build `var(--grim-color-kind-${pkg.kind})`. Grepping for one of
|
|
46
|
+
these finds the declaration and no use site; all five are used. */
|
|
47
|
+
--grim-color-kind-skill: #6d4fc4;
|
|
48
|
+
--grim-color-kind-rule: #1a7f6b;
|
|
49
|
+
--grim-color-kind-agent: #b0641a;
|
|
50
|
+
--grim-color-kind-mcp: #2565c7;
|
|
51
|
+
--grim-color-kind-bundle: #a63d68;
|
|
52
|
+
|
|
53
|
+
/* ---- Colour: state --------------------------------------------- */
|
|
54
|
+
/* ~5.7:1 on --grim-color-card (white) */
|
|
55
|
+
--grim-color-deprecated: #9c5400;
|
|
56
|
+
--grim-color-banner-bg: #fff3cd;
|
|
57
|
+
--grim-color-banner-fg: #6b4c00;
|
|
58
|
+
--grim-color-banner-border: #e0b84c;
|
|
59
|
+
|
|
60
|
+
color-scheme: light;
|
|
61
|
+
|
|
62
|
+
/* ---- Space -----------------------------------------------------
|
|
63
|
+
Numbered, not role-named, because a spacing step is pure ordinal
|
|
64
|
+
magnitude: bigger number, more room. The steps are sparse and the
|
|
65
|
+
distance between them GROWS — 2, 2, 2, 4, 4, 8, 8, 16px — so the
|
|
66
|
+
scale stays usable at the top without minting a step per pixel.
|
|
67
|
+
A bare number is only honest with a published role, so here it is:
|
|
68
|
+
|
|
69
|
+
1 hairline inset — badge and pill padding
|
|
70
|
+
2 tight — an icon and its label
|
|
71
|
+
3 chip padding, keyword gaps
|
|
72
|
+
4 default gap inside one control
|
|
73
|
+
5 between related controls
|
|
74
|
+
6 card padding, row gap
|
|
75
|
+
7 between sections
|
|
76
|
+
8 page block separation
|
|
77
|
+
9 page bottom */
|
|
78
|
+
--grim-space-1: 0.125rem;
|
|
79
|
+
--grim-space-2: 0.25rem;
|
|
80
|
+
--grim-space-3: 0.375rem;
|
|
81
|
+
--grim-space-4: 0.5rem;
|
|
82
|
+
--grim-space-5: 0.75rem;
|
|
83
|
+
--grim-space-6: 1rem;
|
|
84
|
+
--grim-space-7: 1.5rem;
|
|
85
|
+
--grim-space-8: 2rem;
|
|
86
|
+
--grim-space-9: 3rem;
|
|
87
|
+
|
|
88
|
+
/* ---- Type ------------------------------------------------------
|
|
89
|
+
Role-named, unlike space: a type step is "metadata vs body vs
|
|
90
|
+
heading", which is a job, not a magnitude. `xl` is a detail-page
|
|
91
|
+
heading and `2xl` the landing hero — two sizes because those are two
|
|
92
|
+
deliberately different headings, not drift. */
|
|
93
|
+
--grim-text-2xs: 0.72rem;
|
|
94
|
+
--grim-text-xs: 0.78rem;
|
|
95
|
+
--grim-text-sm: 0.85rem;
|
|
96
|
+
--grim-text-md: 0.95rem;
|
|
97
|
+
--grim-text-lg: 1.05rem;
|
|
98
|
+
--grim-text-xl: 1.5rem;
|
|
99
|
+
--grim-text-2xl: 1.6rem;
|
|
100
|
+
|
|
101
|
+
/* ---- Radius ---------------------------------------------------- */
|
|
102
|
+
--grim-radius-sm: 4px;
|
|
103
|
+
--grim-radius-md: 6px;
|
|
104
|
+
--grim-radius-lg: 8px;
|
|
105
|
+
--grim-radius-xl: 10px;
|
|
106
|
+
--grim-radius-pill: 999px;
|
|
107
|
+
|
|
108
|
+
/* ---- Border ----------------------------------------------------
|
|
109
|
+
One width carries every rule in the UI. It is a token so a consumer
|
|
110
|
+
can thicken every seam at once, and so the two places that pull a
|
|
111
|
+
border into its neighbour can say `calc(-1 * …)` instead of
|
|
112
|
+
hardcoding the negation of a number declared elsewhere. */
|
|
113
|
+
--grim-border-width: 1px;
|
|
114
|
+
|
|
115
|
+
/* ---- Motion ---------------------------------------------------- */
|
|
116
|
+
--grim-duration-fast: 120ms;
|
|
117
|
+
--grim-duration-base: 160ms;
|
|
118
|
+
--grim-duration-slow: 200ms;
|
|
119
|
+
|
|
120
|
+
/* ---- Elevation -------------------------------------------------
|
|
121
|
+
A drop shadow is a black scrim rather than a palette colour: it reads
|
|
122
|
+
correctly over either scheme, which is why these are not declared
|
|
123
|
+
twice. Overriding one is how a consumer changes elevation. */
|
|
124
|
+
--grim-shadow-raised: 0 6px 20px rgb(0 0 0 / 18%);
|
|
125
|
+
--grim-shadow-overlay: 0 8px 24px rgb(0 0 0 / 18%);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Colour only. Every other family above is a measurement that does not
|
|
129
|
+
change with the scheme, and redeclaring one here would be a second
|
|
130
|
+
source of truth for the same value. */
|
|
131
|
+
[data-theme="dark"] {
|
|
132
|
+
--grim-color-bg: #16151a;
|
|
133
|
+
--grim-color-fg: #e8e6e1;
|
|
134
|
+
--grim-color-muted: #98948b;
|
|
135
|
+
--grim-color-card: #201f26;
|
|
136
|
+
--grim-color-border: #35333d;
|
|
137
|
+
--grim-color-chip-bg: #2a2931;
|
|
138
|
+
|
|
139
|
+
--grim-color-accent: #a58cf0;
|
|
140
|
+
--grim-color-accent-soft: #2c2540;
|
|
141
|
+
--grim-color-on-accent: #ffffff;
|
|
142
|
+
|
|
143
|
+
--grim-color-kind-skill: #a58cf0;
|
|
144
|
+
--grim-color-kind-rule: #4cc2a9;
|
|
145
|
+
--grim-color-kind-agent: #e0a35c;
|
|
146
|
+
--grim-color-kind-mcp: #6fa8f5;
|
|
147
|
+
--grim-color-kind-bundle: #e07ba6;
|
|
148
|
+
|
|
149
|
+
/* ~7.6:1 on --grim-color-card (#201f26) */
|
|
150
|
+
--grim-color-deprecated: #e3a640;
|
|
151
|
+
--grim-color-banner-bg: #4a3b0a;
|
|
152
|
+
--grim-color-banner-fg: #f0d78c;
|
|
153
|
+
--grim-color-banner-border: #8a6d1a;
|
|
154
|
+
|
|
155
|
+
color-scheme: dark;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAa9D,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,+DAA+D;AAC/D,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AA4BD,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAA2B,CAAC;AACtD,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,QAA4B,CAAC;AAuU5D,sEAAsE;AACtE,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrE;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA2BtE;AAED,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/renderer/index.js
CHANGED
|
@@ -9,6 +9,9 @@ import { fileURLToPath } from "node:url";
|
|
|
9
9
|
import { build, dev } from "astro";
|
|
10
10
|
import preact from "@astrojs/preact";
|
|
11
11
|
import { resolveConfig } from "../config.js";
|
|
12
|
+
// The per-key merge, shared with the ratings producer rather than restated:
|
|
13
|
+
// both write the same file and both have to leave the other's key alone.
|
|
14
|
+
import { mergeStats, SCHEMA_VERSION, } from "../ratings/seed.js";
|
|
12
15
|
import { SHIKI_THEMES } from "./astro/lib/code.js";
|
|
13
16
|
/** Thrown when `<outDir>/all.json` is missing or malformed. */
|
|
14
17
|
export class RenderInputError extends Error {
|
|
@@ -70,6 +73,90 @@ async function readPackages(outDir) {
|
|
|
70
73
|
throw new RenderInputError(`${file}: expected a JSON array`);
|
|
71
74
|
return parsed.sort((a, b) => a.name.localeCompare(b.name));
|
|
72
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* The ratings job leaves its output here, in the index root; the render
|
|
78
|
+
* publishes it as `stats.json` beside `all.json`. Two names on purpose: the
|
|
79
|
+
* scratch copy is gitignored (it is regenerated, never committed) and the
|
|
80
|
+
* published one is the frozen URL every client reads.
|
|
81
|
+
*/
|
|
82
|
+
const STATS_SCRATCH = ".stats.json";
|
|
83
|
+
const STATS_PUBLISHED = "stats.json";
|
|
84
|
+
/** The stat key this build produces, and the name it publishes it under. */
|
|
85
|
+
const UPDATED_KEY = "updated";
|
|
86
|
+
const UPDATED_PROVIDER = "indexer";
|
|
87
|
+
/**
|
|
88
|
+
* Read `<root>/.stats.json`. Absent is the normal case — most indexes run no
|
|
89
|
+
* ratings job — and so is unreadable or malformed: the sidecar is a signal,
|
|
90
|
+
* never an input the site depends on, so nothing here may fail a build over
|
|
91
|
+
* it. A document that does not parse is also not republished.
|
|
92
|
+
*/
|
|
93
|
+
async function readStats(root) {
|
|
94
|
+
let parsed;
|
|
95
|
+
try {
|
|
96
|
+
parsed = JSON.parse(await fs.readFile(path.join(root, STATS_SCRATCH), "utf8"));
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
102
|
+
}
|
|
103
|
+
/** Join ratings onto packages by ref. A ref the sidecar omits stays unrated. */
|
|
104
|
+
function withRatings(packages, stats) {
|
|
105
|
+
const entries = stats?.entries;
|
|
106
|
+
if (!entries)
|
|
107
|
+
return packages;
|
|
108
|
+
return packages.map((p) => {
|
|
109
|
+
// A ref present but carrying only other stats, and a `rating` whose `up`
|
|
110
|
+
// is not a number, are both unrated — same as not being listed at all.
|
|
111
|
+
const up = entries[p.ref]?.rating?.up;
|
|
112
|
+
return typeof up === "number" ? { ...p, rating: { up } } : p;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The document to publish: whatever the ratings job left, plus this build's
|
|
117
|
+
* own `updated` key.
|
|
118
|
+
*
|
|
119
|
+
* Recency is the one stat the index derives from itself. `enrich` already
|
|
120
|
+
* calls `describe` per package and writes the answer into the sidecar, so
|
|
121
|
+
* every ref carries it by the time `all.json` is compiled — which makes this
|
|
122
|
+
* a local join with no network and no seed to fetch. It runs on every build,
|
|
123
|
+
* including one that never ran a ratings job at all.
|
|
124
|
+
*
|
|
125
|
+
* `mergeStats` is the same per-key merge the ratings producer uses, and for
|
|
126
|
+
* the same reason: a run owns its own key and carries every other one
|
|
127
|
+
* forward untouched, so a build cannot empty a published rating and a
|
|
128
|
+
* ratings run cannot empty a published date.
|
|
129
|
+
*
|
|
130
|
+
* `schema_version` and `generated_at` are carried over rather than
|
|
131
|
+
* re-stamped. The ratings job stamped this document, and re-stamping it here
|
|
132
|
+
* would make the published bytes differ on every rebuild of an unchanged
|
|
133
|
+
* index — a fresh stamp is taken only when there was no document to carry.
|
|
134
|
+
*/
|
|
135
|
+
function publishedStats(packages, stats) {
|
|
136
|
+
const fresh = {};
|
|
137
|
+
for (const p of packages) {
|
|
138
|
+
if (typeof p.updated === "string" && p.updated !== "")
|
|
139
|
+
fresh[p.ref] = { at: p.updated };
|
|
140
|
+
}
|
|
141
|
+
// Nothing published and nothing to publish. An index whose packages all
|
|
142
|
+
// predate the `updated` field keeps behaving exactly as it did.
|
|
143
|
+
if (!stats && Object.keys(fresh).length === 0)
|
|
144
|
+
return null;
|
|
145
|
+
const seed = {
|
|
146
|
+
providers: (stats?.providers ?? {}),
|
|
147
|
+
entries: (stats?.entries ?? {}),
|
|
148
|
+
};
|
|
149
|
+
const merged = mergeStats(seed, UPDATED_KEY, UPDATED_PROVIDER, fresh);
|
|
150
|
+
return {
|
|
151
|
+
schema_version: typeof stats?.schema_version === "number" ? stats.schema_version : SCHEMA_VERSION,
|
|
152
|
+
// RFC 3339 UTC to the second — the shape `statsDocument` writes and every
|
|
153
|
+
// fixture pins.
|
|
154
|
+
generated_at: typeof stats?.generated_at === "string"
|
|
155
|
+
? stats.generated_at
|
|
156
|
+
: new Date().toISOString().replace(/\.\d+Z$/, "Z"),
|
|
157
|
+
...merged,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
73
160
|
async function exists(target) {
|
|
74
161
|
return fs.access(target).then(() => true, () => false);
|
|
75
162
|
}
|
|
@@ -202,14 +289,18 @@ async function stage(root, outDir, srcDir) {
|
|
|
202
289
|
*/
|
|
203
290
|
async function resolveInputs(opts) {
|
|
204
291
|
const config = resolveConfig(opts.config);
|
|
205
|
-
const
|
|
292
|
+
const sidecar = await readStats(opts.root);
|
|
293
|
+
const packages = withRatings(await readPackages(opts.outDir), sidecar);
|
|
294
|
+
// Downstream of the join, because the `updated` it publishes is read off
|
|
295
|
+
// the packages themselves.
|
|
296
|
+
const stats = publishedStats(packages, sidecar);
|
|
206
297
|
const css = await readCustomCss(opts.root, config.customCss);
|
|
207
298
|
// A site on GitHub/GitLab *project* Pages lives under a path segment, and
|
|
208
299
|
// `site` is the only place that fact is recorded. Its path becomes Astro's
|
|
209
300
|
// `base` — which covers everything Astro emits itself — and the same value
|
|
210
301
|
// reaches the hand-written URLs through `astro/lib/base.ts`. Domain-rooted
|
|
211
302
|
// sites yield "/", Astro's own default, so nothing about them moves.
|
|
212
|
-
return { config, packages, css, base: new URL(config.site).pathname };
|
|
303
|
+
return { config, packages, css, stats, base: new URL(config.site).pathname };
|
|
213
304
|
}
|
|
214
305
|
/**
|
|
215
306
|
* Everything Astro is told, for one run. Build and dev share it verbatim —
|
|
@@ -248,6 +339,14 @@ function inlineConfig(opts, staged, { config, packages, css, base }) {
|
|
|
248
339
|
/** Render the catalog site from `<outDir>/all.json` into `outDir`. */
|
|
249
340
|
export async function buildSite(opts) {
|
|
250
341
|
const inputs = await resolveInputs(opts);
|
|
342
|
+
// Before `stage`, and that is the whole trick: `outDir` is its last
|
|
343
|
+
// `public/` layer, which is the only reason a file sitting there survives
|
|
344
|
+
// Astro emptying `outDir` — the same route `all.json` already takes.
|
|
345
|
+
// Upstream of here, `compileIndex` has already `rmSync`'d `outDir`, so
|
|
346
|
+
// publishing any earlier writes into a directory about to be deleted.
|
|
347
|
+
if (inputs.stats) {
|
|
348
|
+
await fs.writeFile(path.join(opts.outDir, STATS_PUBLISHED), `${JSON.stringify(inputs.stats)}\n`);
|
|
349
|
+
}
|
|
251
350
|
const staged = await stage(opts.root, opts.outDir);
|
|
252
351
|
const astro = inlineConfig(opts, staged, inputs);
|
|
253
352
|
// Astro routes its server build through `<cwd>/.astro/` whenever `outDir`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer/types.d.ts
CHANGED
|
@@ -18,6 +18,47 @@ export interface CatalogPackage extends IndexRecord {
|
|
|
18
18
|
replacedBy?: string;
|
|
19
19
|
tags?: string[];
|
|
20
20
|
logo?: string;
|
|
21
|
+
/** Publishing commit SHA, `-dirty` suffixed from a dirty tree. Never shown raw. */
|
|
22
|
+
revision?: string;
|
|
23
|
+
/** Maintainer. Only present when the artifact was authored or published with git. */
|
|
24
|
+
authors?: string;
|
|
25
|
+
/** Distributing organization; grim derives it from the repo namespace when unset. */
|
|
26
|
+
vendor?: string;
|
|
27
|
+
/** Project home page. */
|
|
28
|
+
url?: string;
|
|
29
|
+
/** Documentation URL. */
|
|
30
|
+
documentation?: string;
|
|
31
|
+
/** A skill's editor/runtime hint. Absent for every other kind. */
|
|
32
|
+
compatibility?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Where to get help, from the description companion's manifest. Every
|
|
35
|
+
* channel is optional and the object itself is absent for a repository
|
|
36
|
+
* publishing no companion — the "Get help" block renders only when at
|
|
37
|
+
* least one channel is set, which for most repositories is never.
|
|
38
|
+
*/
|
|
39
|
+
support?: {
|
|
40
|
+
issues?: string;
|
|
41
|
+
chat?: string;
|
|
42
|
+
contact?: string;
|
|
43
|
+
security?: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* When this artifact last moved, as an RFC 3339 timestamp — its own
|
|
47
|
+
* `created` (a commit date, stable per digest) when it has one, and
|
|
48
|
+
* otherwise the first build that saw the current digest. Written by
|
|
49
|
+
* `enrich`, joined into the published `stats.json` at build time.
|
|
50
|
+
*/
|
|
51
|
+
updated?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Upvotes joined from the `stats.json` sidecar at build time. Absent means
|
|
54
|
+
* **unrated**, and never zero: an index that publishes no sidecar, a ref the
|
|
55
|
+
* sidecar omits, and a ref carrying other stats but no `rating` are the same
|
|
56
|
+
* absence, and none of them is an error. The site is anonymous — it is built
|
|
57
|
+
* once for everyone — so this is a count and never a "you voted" state.
|
|
58
|
+
*/
|
|
59
|
+
rating?: {
|
|
60
|
+
up: number;
|
|
61
|
+
};
|
|
21
62
|
}
|
|
22
63
|
/**
|
|
23
64
|
* The build-time payload `buildSite` injects through Vite `define`. Read it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderer/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -9,13 +9,41 @@
|
|
|
9
9
|
export declare const USER_AGENT = "grim-indexer-bot";
|
|
10
10
|
export declare const TIMEOUT_MS = 30000;
|
|
11
11
|
export declare const MAX_RESPONSE_BYTES: number;
|
|
12
|
+
/**
|
|
13
|
+
* The cap for the two calls that legitimately read more than a small JSON
|
|
14
|
+
* document: the enrichment checkpoint, which is the whole sidecar tree, and a
|
|
15
|
+
* ratings page, which carries every thread's full body — including bodies this
|
|
16
|
+
* bot did not write.
|
|
17
|
+
*
|
|
18
|
+
* The same ceiling `enrich` already accepts from one `grim` subprocess
|
|
19
|
+
* (`MAX_OUTPUT_BYTES`), so the largest thing this toolchain holds in memory is
|
|
20
|
+
* one number rather than three.
|
|
21
|
+
*/
|
|
22
|
+
export declare const LARGE_RESPONSE_BYTES: number;
|
|
12
23
|
export interface HttpResponse {
|
|
13
24
|
/** HTTP status, or 0 when the request never completed. */
|
|
14
25
|
status: number;
|
|
15
26
|
body: string;
|
|
16
27
|
header(name: string): string;
|
|
17
28
|
}
|
|
18
|
-
|
|
29
|
+
/** Everything past a plain GET. Omitted leaves `fetch`'s own defaults. */
|
|
30
|
+
export interface RequestOptions {
|
|
31
|
+
method?: string;
|
|
32
|
+
body?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Response-size cap for this call, in bytes. Defaults to
|
|
35
|
+
* [`MAX_RESPONSE_BYTES`], so every call site that does not ask keeps the
|
|
36
|
+
* reply it already got, byte for byte.
|
|
37
|
+
*
|
|
38
|
+
* Per-call because the default is sized for a small JSON document, and two
|
|
39
|
+
* callers legitimately read more: the enrichment checkpoint is the whole
|
|
40
|
+
* sidecar tree, and a ratings page carries every thread's full body. Both
|
|
41
|
+
* used to surface as `{status: 0}` — indistinguishable from a transport
|
|
42
|
+
* failure, which is how an oversized page got reported as one.
|
|
43
|
+
*/
|
|
44
|
+
maxBytes?: number;
|
|
45
|
+
}
|
|
46
|
+
export declare function request(url: string, headers?: Record<string, string>, options?: RequestOptions): Promise<HttpResponse>;
|
|
19
47
|
/** `request` plus a `JSON.parse` that yields `null` instead of throwing. */
|
|
20
48
|
export declare function requestJson(url: string, headers?: Record<string, string>): Promise<{
|
|
21
49
|
status: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,QAAS,CAAC;AACjC,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AA4BD,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,eAAO,MAAM,UAAU,QAAS,CAAC;AACjC,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AA4BD,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAwBvB;AAED,4EAA4E;AAC5E,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ5C"}
|
|
@@ -11,6 +11,17 @@
|
|
|
11
11
|
export const USER_AGENT = "grim-indexer-bot";
|
|
12
12
|
export const TIMEOUT_MS = 30_000;
|
|
13
13
|
export const MAX_RESPONSE_BYTES = 1024 * 1024;
|
|
14
|
+
/**
|
|
15
|
+
* The cap for the two calls that legitimately read more than a small JSON
|
|
16
|
+
* document: the enrichment checkpoint, which is the whole sidecar tree, and a
|
|
17
|
+
* ratings page, which carries every thread's full body — including bodies this
|
|
18
|
+
* bot did not write.
|
|
19
|
+
*
|
|
20
|
+
* The same ceiling `enrich` already accepts from one `grim` subprocess
|
|
21
|
+
* (`MAX_OUTPUT_BYTES`), so the largest thing this toolchain holds in memory is
|
|
22
|
+
* one number rather than three.
|
|
23
|
+
*/
|
|
24
|
+
export const LARGE_RESPONSE_BYTES = 16 * 1024 * 1024;
|
|
14
25
|
async function readCapped(response, cap) {
|
|
15
26
|
if (!response.body)
|
|
16
27
|
return "";
|
|
@@ -37,17 +48,21 @@ async function readCapped(response, cap) {
|
|
|
37
48
|
}
|
|
38
49
|
return Buffer.concat(chunks).toString("utf8");
|
|
39
50
|
}
|
|
40
|
-
export async function request(url, headers = {}) {
|
|
51
|
+
export async function request(url, headers = {}, options = {}) {
|
|
41
52
|
const none = { status: 0, body: "", header: () => "" };
|
|
42
53
|
try {
|
|
43
54
|
const response = await fetch(url, {
|
|
44
55
|
headers: { "User-Agent": USER_AGENT, ...headers },
|
|
56
|
+
// Both `undefined` for a two-argument call, which is what `fetch` sees
|
|
57
|
+
// when neither is passed — the existing GET call sites are untouched.
|
|
58
|
+
method: options.method,
|
|
59
|
+
body: options.body,
|
|
45
60
|
// ponytail: redirects are refused, not followed. If a real registry ever
|
|
46
61
|
// needs one, re-run the host policy on the Location and follow one hop.
|
|
47
62
|
redirect: "manual",
|
|
48
63
|
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
49
64
|
});
|
|
50
|
-
const body = await readCapped(response, MAX_RESPONSE_BYTES);
|
|
65
|
+
const body = await readCapped(response, options.maxBytes ?? MAX_RESPONSE_BYTES);
|
|
51
66
|
if (body === null)
|
|
52
67
|
return none;
|
|
53
68
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,sCAAsC;AAEtC;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAC7C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/validate/adapters/http.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -21,7 +21,15 @@
|
|
|
21
21
|
# the site to pointers-only, never block a deploy that is otherwise
|
|
22
22
|
# ready. `enrich` itself keeps any sidecar it fails to refresh. Set
|
|
23
23
|
# `"enrich": false` in the `ci` block to drop these two steps entirely.
|
|
24
|
+
#
|
|
25
|
+
# `--seed` restores enrich/ from `<site>/enrich.json` - the checkpoint the
|
|
26
|
+
# last deploy published - before refreshing. Nothing is committed here, so
|
|
27
|
+
# without it this job starts from an empty tree every run: every digest
|
|
28
|
+
# probe compares against nothing, every README and payload is downloaded
|
|
29
|
+
# again, and every artifact without a `created` of its own is re-dated to
|
|
30
|
+
# this build. A checkpoint that cannot be read is a warning, not a
|
|
31
|
+
# failure; the run just does the full download it used to do.
|
|
24
32
|
- name: Refresh package metadata
|
|
25
33
|
run: |
|
|
26
|
-
npm run enrich ||
|
|
34
|
+
npm run enrich -- --seed ||
|
|
27
35
|
echo "::warning::enrich failed - building without READMEs, logos and version lists"
|
|
@@ -7,7 +7,7 @@ name: pages
|
|
|
7
7
|
|
|
8
8
|
on:
|
|
9
9
|
push:
|
|
10
|
-
branches: [{{defaultBranch}}]
|
|
10
|
+
branches: [{{defaultBranch}}]{{githubRatingsSchedule}}
|
|
11
11
|
workflow_dispatch:
|
|
12
12
|
|
|
13
13
|
# Default-deny at the top; every job pays for exactly what it needs.
|
|
@@ -19,7 +19,7 @@ concurrency:
|
|
|
19
19
|
|
|
20
20
|
jobs:
|
|
21
21
|
build:
|
|
22
|
-
runs-on: ubuntu-latest
|
|
22
|
+
runs-on: ubuntu-latest{{githubRatingsBuildKeys}}
|
|
23
23
|
permissions:
|
|
24
24
|
contents: read
|
|
25
25
|
steps:
|
|
@@ -40,12 +40,17 @@ jobs:
|
|
|
40
40
|
# here, in the job that publishes the site.
|
|
41
41
|
- name: Install
|
|
42
42
|
run: npm ci --ignore-scripts
|
|
43
|
-
|
|
43
|
+
|
|
44
|
+
# Ahead of the build, not after it: it only resolves this repository's
|
|
45
|
+
# Pages URL and sets outputs, and a step that runs before the build - the
|
|
46
|
+
# ratings seed - cross-checks `site` against that URL before it reads the
|
|
47
|
+
# published sidecar.
|
|
48
|
+
- id: pages
|
|
49
|
+
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
|
|
50
|
+
{{githubEnrichSteps}}{{githubRatingsSeedSteps}}
|
|
44
51
|
- name: Build index
|
|
45
52
|
run: npm run build
|
|
46
53
|
|
|
47
|
-
- uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
|
|
48
|
-
|
|
49
54
|
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
|
|
50
55
|
with:
|
|
51
56
|
path: dist
|
|
@@ -62,3 +67,4 @@ jobs:
|
|
|
62
67
|
steps:
|
|
63
68
|
- id: deployment
|
|
64
69
|
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
|
|
70
|
+
{{githubRatingsJob}}
|