|
4 | 4 | // `PluginMetadata` surface of `@objectstack/core` (#11982 `configSchema`, |
5 | 5 | // #12587 `hotReloadable`), recorded in ADR-0025 §3.7. |
6 | 6 | // |
7 | | -// Why the pins live in THIS package: `@objectstack/core` has no `typecheck` |
8 | | -// script (it is a type-check DEBT ledger entry), so a `@ts-expect-error` there |
9 | | -// is a phantom pin — no tsc program a `typecheck` script runs ever evaluates |
10 | | -// it, and `check:type-check-coverage` refuses it. This package's |
11 | | -// `tsconfig.test.json` program IS run by its `typecheck` script |
12 | | -// (`check:test-typecheck`, EXACT per-file ratchet: an unlisted file must stay |
13 | | -// at zero errors), and it resolves `@objectstack/core` to the BUILT |
14 | | -// `dist/index.d.ts` — so these directives pin the contract consumers actually |
15 | | -// see. This package is also the retirement's worked replacement: the REST |
| 7 | +// Why the pins live in THIS package: this package's `tsconfig.test.json` |
| 8 | +// program IS run by its `typecheck` script (`check:test-typecheck`, EXACT |
| 9 | +// per-file ratchet: an unlisted file must stay at zero errors), and it |
| 10 | +// resolves `@objectstack/core` to the BUILT `dist/index.d.ts` — so these |
| 11 | +// directives pin the contract consumers actually see. |
| 12 | +// |
| 13 | +// ⚠️ NOT because core cannot compile a pin — this header used to say |
| 14 | +// `@objectstack/core` "has no `typecheck` script (it is a type-check DEBT |
| 15 | +// ledger entry)", and that is false on this tree in BOTH halves. #14613 split |
| 16 | +// a `tsconfig.test.json` out of core's build config and core's `typecheck` |
| 17 | +// NAMES it (via `check:test-typecheck --project`), so a `@ts-expect-error` |
| 18 | +// over there is compiled rather than the phantom pin |
| 19 | +// `check:type-check-coverage` refuses; and core holds no DEBT entry. What |
| 20 | +// core's program cannot do is read core's own PUBLISHED surface: it compiles |
| 21 | +// `src`, so a pin there would read `plugin-loader.ts` — the declaration — |
| 22 | +// not the `.d.ts` the build emits from it. Measured with `tsc --listFiles` on |
| 23 | +// both programs: this one contains `packages/core/dist/index.d.ts` and ZERO |
| 24 | +// files under `packages/core/src/`, while core's own test program contains |
| 25 | +// `packages/core/src/plugin-loader.ts` and ZERO under `packages/core/dist/`. |
| 26 | +// That reason is durable where the script-list one was not. Same placement as |
| 27 | +// `plugin-type-closed-set.pin.test.ts`. |
| 28 | +// |
| 29 | +// This package is also the retirement's worked replacement: the REST |
16 | 30 | // server parses its own config at its own seam (#11637, |
17 | 31 | // `rest-config-parse-not-cast.test.ts`) precisely because the kernel-side |
18 | 32 | // validator could never run. |
|
0 commit comments