What we saw
While fixing an unrelated CI failure in Cratis/Ante (Cratis/Ante#24), yarn install --immutable reported unmet peer dependencies for @cratis/components@4.1.1:
➤ YN0002: │ ante@workspace:Source/Ante doesn't provide reflect-metadata (p96650c), requested by @cratis/components.
➤ YN0002: │ ante@workspace:Source/Ante doesn't provide tsyringe (pd763ff), requested by @cratis/components.
package.json for @cratis/components@4.1.1 lists both as required (non-optional) peerDependencies:
"peerDependencies": {
"reflect-metadata": "0.2.2",
"tsyringe": "4.10.0"
}
We couldn't find any direct reference to tsyringe or reflect-metadata inside the published dist/ of @cratis/components itself, which suggests this might be needed transitively (e.g. via @cratis/arc.react.mvvm or similar) rather than by components directly.
Why it matters
This is not currently blocking — yarn install --immutable still succeeds ("Done with warnings"), and lint/build/test all pass. But every application that consumes @cratis/components gets this warning noise in every CI run and local install unless it happens to already depend on tsyringe/reflect-metadata for unrelated reasons.
Ask
Could you clarify:
- Is
tsyringe/reflect-metadata actually required by every consumer of @cratis/components, or only by a subset of components/hooks?
- If only a subset, would it make sense to mark them as
peerDependenciesMeta optional (like pixi.js already is), or move the requirement down to whichever package genuinely uses them?
Happy to help verify a fix if useful.
What we saw
While fixing an unrelated CI failure in
Cratis/Ante(Cratis/Ante#24),yarn install --immutablereported unmet peer dependencies for@cratis/components@4.1.1:package.jsonfor@cratis/components@4.1.1lists both as required (non-optional)peerDependencies:We couldn't find any direct reference to
tsyringeorreflect-metadatainside the publisheddist/of@cratis/componentsitself, which suggests this might be needed transitively (e.g. via@cratis/arc.react.mvvmor similar) rather than bycomponentsdirectly.Why it matters
This is not currently blocking —
yarn install --immutablestill succeeds ("Done with warnings"), and lint/build/test all pass. But every application that consumes@cratis/componentsgets this warning noise in every CI run and local install unless it happens to already depend ontsyringe/reflect-metadatafor unrelated reasons.Ask
Could you clarify:
tsyringe/reflect-metadataactually required by every consumer of@cratis/components, or only by a subset of components/hooks?peerDependenciesMetaoptional (likepixi.jsalready is), or move the requirement down to whichever package genuinely uses them?Happy to help verify a fix if useful.