Tech debt
Pinned dependencies
In general we keep dependencies up to date. The following packages, however, need to be pinned to a specific version:
[email protected]
because of this (opens in a new tab) and this (opens in a new tab).[email protected]
because 6.x added a breaking change (opens in a new tab) where all component props that don't start with$
("transient props") are passed down to the underlying components, which in most cases are DOM elements that shouldn't receive random attributes. We can upgrade to 6.x safely after prefixing styled props with$
.[email protected]
because installing 13.x fails with this error (opens in a new tab). This could probably be fixed using dependency package resolutions (string-width
or some other transient dependency). Not a priority because a) this problem might fix itself in time as Cypress and the conflicting dependencies evolve, and b) we might look at migrating Cypress tests to Playwright anyway.
Pure ESM in Node.js
Some Node packages are pinned to their last CommonJS version until ESM is fully supported in Jest (opens in a new tab) or until we migrate to Vitest (opens in a new tab) or another ESM compatible test runner: