From d47d4890b3f200b3aae4bbe91b08bfa55bd9f1f0 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Fri, 2 Oct 2026 21:31:52 -0700 Subject: [PATCH 1/2] fix: widen @json-render/react peer to React 18 and 19 The react peer range is now ^18.0.0 || ^19.0.0, and the lockfile specifier matches it while the resolved version stays 19.2.4. The installation page states that range alongside zod ^4.0.0, and the docs baseline hashes for that page are updated to the new content. A vitest reads the package manifest and expects peerDependencies.react to be ^18.0.0 || ^19.0.0, with react-dom left out of peerDependencies. Fixes #329 --- apps/web/content/docs/installation.mdx | 2 +- apps/web/tests/fixtures/docs-baseline.json | 6 +++--- packages/react/package.json | 2 +- packages/react/src/peer-dependency.test.ts | 19 +++++++++++++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 packages/react/src/peer-dependency.test.ts diff --git a/apps/web/content/docs/installation.mdx b/apps/web/content/docs/installation.mdx index b7544426..76dbc381 100644 --- a/apps/web/content/docs/installation.mdx +++ b/apps/web/content/docs/installation.mdx @@ -8,7 +8,7 @@ Install the core package plus your renderer of choice. -Peer dependencies: `react ^19.0.0` and `zod ^4.0.0`. +Peer dependencies: `react ^18.0.0 || ^19.0.0` and `zod ^4.0.0`. diff --git a/apps/web/tests/fixtures/docs-baseline.json b/apps/web/tests/fixtures/docs-baseline.json index 40dc5ceb..9deb192d 100644 --- a/apps/web/tests/fixtures/docs-baseline.json +++ b/apps/web/tests/fixtures/docs-baseline.json @@ -3011,9 +3011,9 @@ "title": "Installation", "metadataTitle": "Installation | json-render", "prefix": "import { pageMetadata } from \"@/lib/page-metadata\"\nexport const metadata = pageMetadata(\"docs/installation\")\n\n# Installation\n", - "sourceSha256": "937bfb315b619c999082fac5253c2609db1e68d736ca0bf011c7eded9ec93593", - "bodySha256": "13b1b9d4c4f7de99ed2493358608eabb4565a956db8750f458efd437ffc6c8d1", - "markdownSha256": "08bbe2a46b41b4354feeb3538416a85f6d5cf9b5343d4dbf524e21ae8d56b46f", + "sourceSha256": "11a2c0f2d5bd6230d93bd2885bf96014fb9ee413a08020a4c07712cd48aad989", + "bodySha256": "40e3d4a57fb3a312b4eb8de430431ba20db6a66f7db13a26cde86f5f692dd540", + "markdownSha256": "35645fa10c555ad42d5c13b0d30b1f969fa3e807b131c1c88512837d34dc508e", "headings": [ { "title": "For React UI", diff --git a/packages/react/package.json b/packages/react/package.json index a1bb0860..3035bc80 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -61,6 +61,6 @@ "zod": "^4.3.6" }, "peerDependencies": { - "react": "^19.2.3" + "react": "^18.0.0 || ^19.0.0" } } diff --git a/packages/react/src/peer-dependency.test.ts b/packages/react/src/peer-dependency.test.ts new file mode 100644 index 00000000..c4f0606b --- /dev/null +++ b/packages/react/src/peer-dependency.test.ts @@ -0,0 +1,19 @@ +// @ts-expect-error This package does not depend on @types/node. +import { readFileSync } from "node:fs"; +// @ts-expect-error This package does not depend on @types/node. +import { join } from "node:path"; +import { describe, expect, it } from "vitest"; + +const packageJson = JSON.parse( + // @ts-expect-error Vitest provides __dirname when running this file. + readFileSync(join(__dirname, "../package.json"), "utf8"), +) as { + peerDependencies: Record; +}; + +describe("@json-render/react peerDependencies", () => { + it("accepts React 18 and React 19", () => { + expect(packageJson.peerDependencies.react).toBe("^18.0.0 || ^19.0.0"); + expect(packageJson.peerDependencies).not.toHaveProperty("react-dom"); + }); +}); From d7ef0e86d841074c41a7036e6d1e440e7d1fc986 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Sat, 3 Oct 2026 10:12:58 -0700 Subject: [PATCH 2/2] fix: update pnpm lockfile for the widened react peer range The previous commit set the react peer range in packages/react/package.json to ^18.0.0 || ^19.0.0 but left the lockfile specifier at ^19.2.3, so pnpm install --frozen-lockfile failed in CI. Regenerated with pnpm 11.1.3; the resolved version stays 19.2.4. --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 985ee564..9519a3b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2168,7 +2168,7 @@ importers: specifier: workspace:* version: link:../core react: - specifier: ^19.2.3 + specifier: ^18.0.0 || ^19.0.0 version: 19.2.4 devDependencies: '@internal/react-state':