build: retire the old TypeDoc theme and its assets - #85
Conversation
c340ea0 to
5178863
Compare
5178863 to
9d83ba8
Compare
9d83ba8 to
61c3824
Compare
61c3824 to
9904083
Compare
d24df78 to
fe378e9
Compare
090c2e1 to
3386b4d
Compare
3386b4d to
4158ba0
Compare
4158ba0 to
247952c
Compare
247952c to
04df105
Compare
df4b8df to
75cfd67
Compare
38a1e3a to
8ed5bcb
Compare
8396d4e to
e51a10c
Compare
e51a10c to
c74a60c
Compare
c74a60c to
f6dd408
Compare
|
This layer is where
Commit: |
f0794f6 to
22c85b9
Compare
22c85b9 to
0d166e4
Compare
0d166e4 to
20ca39e
Compare
|
The one item this layer's audit could not fix, so it goes in the ledger with the rest of the packaging follow-ups: a CommonJS TypeScript consumer under Local to this PR because the fix is the same kind of decision the other entries here are: an |
20ca39e to
2f0bb83
Compare
2f0bb83 to
41aab52
Compare
Phase E of #81. `typedoc-unhoax-theme` has been unreferenced since the API reference moved to markdown, and the two theme assets it loaded are dead weight in the published package. - `typedoc-unhoax-theme` is out of `devDependencies`; `npm ci` still installs the committed lockfile, and the package is gone from `node_modules`. - `assets/custom.css` and `assets/custom.js` are deleted, and out of the `files` allowlist with them: measured `npm pack` goes from 30 files / 67kB to **28 files / 66.6kB**, with `assets/favicon.ico` as the only asset left. - `AGENTS.md` and `docs/contributor/compatibility.md` carry the new allowlist and the measured counts. - `gh-pages` stays for now: `doc:publish` is the fallback deployment path until the repository's Pages source is switched to GitHub Actions, and the ledger records that as the one remaining step. Verified after the change: `npm ci --include=dev` against the committed lockfile, lint 0/0, format:check, typecheck (TS 7), verify:docs, docs:build (11 legacy redirects written), 126 tests passed / 2 skipped, coverage 100%, verify:package green (bundler, node16, nodenext, and the three documentation examples).
Two findings that are not broken today and belong in their own commits: the workflows pin action majors several releases behind (docs.yml four of them, and nothing in the repository raises those automatically), and the README's only local image is a 2.9 kB file the `files` allowlist omits while `AGENTS.md` frames the fix as costing 468 kB.
What the tarball contains was decided by the `files` allowlist and never asserted: `npm pack` was measured once at 28 files with no `docs/` entry, and nothing failed if the site's source tree or the uncompressed PNGs joined the allowlist, or if `src/` and a tsconfig left it. `scripts/verify-package.mjs` now compares `npm pack --dry-run --json` against the intended list and names the difference, in both directions. Measured: with `docs` added to `files` it reports "179 files, not the 28 intended — not expected: docs/.vitepress/config.mts, … and 143 more"; with `src` removed, "21 files … missing: src/abstract-bin.ts, …"; on the intended allowlist it passes. AGENTS.md says the list is pinned and where.
The fix for it is an `exports` map, and that also seals the deep imports this project keeps working, so it belongs to 3.0.0 rather than to the documentation stack — which is exactly what the deferred-work ledger is for. Measured on the published tarball: TS1479 for a static import from a `.cts` file under node16/nodenext and TS1471 for `import ... = require(...)`, while dynamic `import()`, node10/bundler resolution and JavaScript `require()` all compile.
41aab52 to
91f973a
Compare
|
Rebased on the current #84 head and out of draft. Gates on this head ( Three layers, one merge order: #83 → #84 → #85. Each next layer's base branch needs retargeting to |
|
Phase E of #81, stacked on the deployment phase. Review order: #82 → content migration → deployment → this.
What goes
typedoc-unhoax-themehas been unreferenced since the API reference moved to markdown, and the two assets it loaded were still being published.devDependencies(and out ofnode_modulesafter a freshnpm ciagainst the committed lockfile);assets/custom.cssandassets/custom.jsare deleted and out of thefilesallowlist with them;assets/favicon.icothe only asset left in the allowlist (the repository still tracks the icons and the preview image; they were never published) — measured withnpm pack --dry-runbefore and after;AGENTS.mdanddocs/contributor/compatibility.mdcarry the new allowlist and the measured counts.What stays, and why
gh-pageskeeps its place for now:doc:publishis the fallback deployment path until the Pages source is switched to GitHub Actions, and removing it before that switch would leave no way to publish. The deferred-work ledger records it as the one remaining step, together withcz-conventional-changelog(interactive commitizen commits only, unrelated to this migration).Verification
npm ci --include=devagainst the committed lockfile;lint0/0;format:check;typecheck(TS 7.0.2);verify:docs;docs:build(11 legacy redirects written); 126 tests passed / 2 skipped; coverage 100%;verify:packagegreen — bundler, node16, nodenext and the three documentation examples.