Found while onboarding the v4 CI/release flow (#2) — out of scope for that change, filing separately.
.configs/tsconfig.types.jsonc (used by build:types) runs with checkJs: false — it emits .d.mts declarations from the JSDoc annotations in src/index.mjs but never verifies them. Running the same file through tsc with checkJs: true (no emit) surfaces ~10 pre-existing errors against prettier's plugin API, e.g.:
src/index.mjs(125,22): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'CallCallback<any, Doc>'.
src/index.mjs(200,6): error TS2322: Type 'unknown' is not assignable to type '2025 | 2011 | ... | 2024'.
src/index.mjs(219,29): error TS2341: Property 'tokens' is private and only accessible within class 'Parser'.
src/index.mjs(228,14): error TS2339: Property 'comments' does not exist on type 'Program'.
Mostly path.call(print, ...) / path.map(print, ...) callbacks typed as bare Function instead of prettier's CallCallback/MapCallback signatures, a couple of options.jsonvYear/options.strictBigInt reads typed as unknown, and two accesses into @cldmv/jsonv's Parser internals (parser.tokens, program.comments) that aren't part of its public typed surface.
This is why CI (.github/workflows/ci.yml, added in #2) sets skip_type_check: true rather than wiring a real test:types script — a real checkJs pass would fail on these pre-existing gaps, unrelated to the CI onboarding change. Once these are fixed, add a .configs/tsconfig.check.jsonc (checkJs: true, noEmit: true) + "test:types" script and flip skip_type_check to false in ci.yml.
Found while onboarding the v4 CI/release flow (#2) — out of scope for that change, filing separately.
.configs/tsconfig.types.jsonc(used bybuild:types) runs withcheckJs: false— it emits.d.mtsdeclarations from the JSDoc annotations insrc/index.mjsbut never verifies them. Running the same file throughtscwithcheckJs: true(no emit) surfaces ~10 pre-existing errors against prettier's plugin API, e.g.:Mostly
path.call(print, ...)/path.map(print, ...)callbacks typed as bareFunctioninstead of prettier'sCallCallback/MapCallbacksignatures, a couple ofoptions.jsonvYear/options.strictBigIntreads typed asunknown, and two accesses into@cldmv/jsonv'sParserinternals (parser.tokens,program.comments) that aren't part of its public typed surface.This is why CI (
.github/workflows/ci.yml, added in #2) setsskip_type_check: truerather than wiring a realtest:typesscript — a realcheckJspass would fail on these pre-existing gaps, unrelated to the CI onboarding change. Once these are fixed, add a.configs/tsconfig.check.jsonc(checkJs: true,noEmit: true) +"test:types"script and flipskip_type_checktofalseinci.yml.