chore: update package.json resolutions to include joi@18.2.1#452
Conversation
|
Greptile SummaryThis PR adds a Yarn resolution to pin
Confidence Score: 4/5Safe to merge if the Docusaurus website and e2e builds are verified to pass, since joi@18 is functionally API-compatible with joi@17 for typical usage patterns. The resolution forces joi@17 consumers in Docusaurus to receive joi@18 at runtime. joi@18's only stated breaking change is an internal dependency rename (@sideway/* → @hapi/*), with no documented user-facing API removals. In practice Docusaurus uses joi for config-schema validation through its own wrapper, and that API surface is stable between versions. The risk is real but narrow: any subtle behavioral change in joi@18 validation (error messages, coercion edge cases) could affect Docusaurus config handling without a compile-time error to catch it. The Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["@docusaurus/types@3.10.1\n(declares joi@^17.9.2)"] --> R
B["@docusaurus/utils-validation@3.10.1\n(declares joi@^17.9.2)"] --> R
R["Yarn resolution\n joi@npm:^17.9.2 → 18.2.1"]
R --> J["joi@18.2.1"]
J --> H1["@hapi/hoek@^11.0.7"]
J --> H2["@hapi/address@^5.1.1"]
J --> H3["@hapi/formula@^3.0.2"]
J --> H4["@hapi/pinpoint@^2.0.1"]
J --> H5["@hapi/tlds@^1.1.1"]
J --> H6["@hapi/topo@^6.0.2"]
J --> H7["@standard-schema/spec@^1.1.0"]
OLD["joi@17.13.3 (previous)"]:::removed --> OLD_H1["@hapi/hoek@^9.3.0"]:::removed
OLD --> OLD_H2["@sideway/address@^4.1.5"]:::removed
OLD --> OLD_H3["@sideway/formula@^3.0.1"]:::removed
OLD --> OLD_H4["@sideway/pinpoint@^2.0.0"]:::removed
OLD --> OLD_H5["@hapi/topo@^5.1.0"]:::removed
classDef removed fill:#fdd,stroke:#f00,color:#900
Reviews (1): Last reviewed commit: "chore: update package.json resolutions t..." | Re-trigger Greptile |
| "follow-redirects@npm:^1.0.0": "npm:^1.16.0", | ||
| "ip-address@npm:^10.0.1": "npm:^10.1.1", | ||
| "jest-util@npm:29.7.0/picomatch": "npm:^2.3.2", | ||
| "joi@npm:^17.9.2": "npm:18.2.1", |
There was a problem hiding this comment.
Forced major-version upgrade via resolution
The resolution key "joi@npm:^17.9.2" maps to 18.2.1, which is a major-version jump. Yarn resolutions bypass semver safety, so both @docusaurus/types and @docusaurus/utils-validation (the only two consumers in the lockfile, both declaring joi@^17.9.2) will silently receive joi@18 at runtime even though they were built and tested against joi@17. joi's own 18.0.0 release notes describe the breaking change as "Upgrade all modules" — replacing the @sideway/* sub-packages with @hapi/* equivalents. The public validation API appears unchanged for the patterns Docusaurus uses, but any subtle difference in error-message formatting, coercion behavior, or schema internals could cause Docusaurus config validation to silently produce wrong results or throw. Verifying that the Docusaurus website/e2e builds and site-config validation still pass after this change is strongly recommended.
No description provided.