Summary
@demlik/tea (0.12.0 through 0.15.0, and main) declares an optional peer vitest: "^2 || ^3" for its ./testing and ./extension/test-utils exports. npm 11 enforces optional peer ranges, so a project on vitest 4 can't install tea next to it. It fails with ERESOLVE, then Cannot read properties of null (reading 'edgesOut'). pnpm workspaces don't enforce the range, which is why this hasn't shown up before.
Where it bites
Phoenix is publishing its Tuval SDK (@kampus/tuval-sdk) to npm, and the SDK depends on tea. Its README tells outside authors to test with vitest, and current vitest is 4. Phoenix tracks this as kamp-us/phoenix#9708. For now its packed-tarball proof pins vitest 3.2.7 to get around it.
Ask
Widen peerDependencies.vitest to include ^4 (and ^5 if tea's own tests pass under it), check that ./testing and ./extension/test-utils work under vitest 4, and cut a release. Phoenix will then bump its @demlik/tea catalog pin and drop the vitest 3 pin.
Summary
@demlik/tea(0.12.0 through 0.15.0, andmain) declares an optional peervitest: "^2 || ^3"for its./testingand./extension/test-utilsexports. npm 11 enforces optional peer ranges, so a project on vitest 4 can't install tea next to it. It fails withERESOLVE, thenCannot read properties of null (reading 'edgesOut'). pnpm workspaces don't enforce the range, which is why this hasn't shown up before.Where it bites
Phoenix is publishing its Tuval SDK (
@kampus/tuval-sdk) to npm, and the SDK depends on tea. Its README tells outside authors to test with vitest, and current vitest is 4. Phoenix tracks this as kamp-us/phoenix#9708. For now its packed-tarball proof pins vitest 3.2.7 to get around it.Ask
Widen
peerDependencies.vitestto include^4(and^5if tea's own tests pass under it), check that./testingand./extension/test-utilswork under vitest 4, and cut a release. Phoenix will then bump its@demlik/teacatalog pin and drop the vitest 3 pin.