Fix: cross-package peer deps publish as caret ranges (ERESOLVE deadlock) (#508)
Fixes an ERESOLVE deadlock when installing sibling @waveform-playlist/* packages together from npm. PR #508.
Published packages
| Package | Version |
|---|---|
@waveform-playlist/annotations |
12.0.2 |
@waveform-playlist/browser |
13.1.2 |
@waveform-playlist/spectrogram |
13.0.3 |
What changed
pnpm rewrites workspace:* peerDependencies to the exact current version at publish time. That produced a mutually unsatisfiable pin between siblings — e.g. annotations@12.0.1 shipped peer @waveform-playlist/browser: 13.1.0 while browser@13.1.1 shipped peer @waveform-playlist/annotations: 12.0.1 — so a downstream app installing both from npm failed with ERESOLVE.
Switched the cross-@waveform-playlist peerDependencies to workspace:^, which publishes as a caret range (e.g. ^13.1.x) that patch releases satisfy. Affects the peer deps in annotations (→ browser), browser (→ annotations, recording), and spectrogram (→ browser); the three affected packages were patch-bumped so the fix could be republished.
A regression guard added in the following release (#509) fails the build if any package reintroduces workspace:* in peerDependencies.