Skip to content

Fix content collection JSON schema generation#15901

Merged
delucis merged 4 commits intomainfrom
chris/to-json-schema-fix
Mar 13, 2026
Merged

Fix content collection JSON schema generation#15901
delucis merged 4 commits intomainfrom
chris/to-json-schema-fix

Conversation

@delucis
Copy link
Copy Markdown
Member

@delucis delucis commented Mar 13, 2026

Changes

  • Closes Frontmatter errors having upgraded to 0.38 #15900
  • Zod 4’s .toJSONSchema() method outputs a schema matching the output shape of the Zod schema by default. However, our JSON schemas should reflect the input shape as they are used on documents before they are processed.
  • This PR fixes our JSON schema generation use the input shape using Zod’s io option.

Testing

  • Added a new test that failed before my change to confirm this fixes things.
  • Removed additionalProperties: false from two schemas we were expecting in tests. This property is set on output schemas because the full shape is known, but for inputs it is only set when using z.strictObject()
  • Other existing tests should pass.

Docs

n/a — bug fix

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 13, 2026

🦋 Changeset detected

Latest commit: ecbd774

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@delucis delucis marked this pull request as ready for review March 13, 2026 12:07
@github-actions github-actions bot added the pkg: astro Related to the core `astro` package (scope) label Mar 13, 2026
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 13, 2026

Merging this PR will not alter performance

✅ 18 untouched benchmarks


Comparing chris/to-json-schema-fix (ecbd774) with main (765a887)

Open in CodSpeed

@delucis delucis changed the title Chris/to json schema fix Fix content collection JSON schema generation Mar 13, 2026
@delucis delucis merged commit 07c1002 into main Mar 13, 2026
26 checks passed
@delucis delucis deleted the chris/to-json-schema-fix branch March 13, 2026 13:03
@astrobot-houston astrobot-houston mentioned this pull request Mar 13, 2026
dadezzz pushed a commit to dadezzz/ice-notes that referenced this pull request Mar 20, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@astrojs/check](https://github.com/withastro/astro/tree/main/packages/language-tools/astro-check) ([source](https://github.com/withastro/astro/tree/HEAD/packages/language-tools/astro-check)) | [`0.9.7` → `0.9.8`](https://renovatebot.com/diffs/npm/@astrojs%2fcheck/0.9.7/0.9.8) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@astrojs%2fcheck/0.9.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@astrojs%2fcheck/0.9.7/0.9.8?slim=true) |
| [astro](https://astro.build) ([source](https://github.com/withastro/astro/tree/HEAD/packages/astro)) | [`6.0.4` → `6.0.5`](https://renovatebot.com/diffs/npm/astro/6.0.4/6.0.5) | ![age](https://developer.mend.io/api/mc/badges/age/npm/astro/6.0.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/astro/6.0.4/6.0.5?slim=true) |

---

### Release Notes

<details>
<summary>withastro/astro (@&#8203;astrojs/check)</summary>

### [`v0.9.8`](https://github.com/withastro/astro/blob/HEAD/packages/language-tools/astro-check/CHANGELOG.md#098)

[Compare Source](https://github.com/withastro/astro/compare/@astrojs/check@0.9.7...@astrojs/check@0.9.8)

##### Patch Changes

- [#&#8203;15892](withastro/astro#15892) [`a2f597d`](withastro/astro@a2f597d) Thanks [@&#8203;Princesseuh](https://github.com/Princesseuh)! - Fixes Astro not being able to find astro check sometimes

- Updated dependencies \[[`7b4b254`](withastro/astro@7b4b254)]:
  - [@&#8203;astrojs/language-server](https://github.com/astrojs/language-server)@&#8203;2.16.5

</details>

<details>
<summary>withastro/astro (astro)</summary>

### [`v6.0.5`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#605)

[Compare Source](https://github.com/withastro/astro/compare/astro@6.0.4...astro@6.0.5)

##### Patch Changes

- [#&#8203;15891](withastro/astro#15891) [`b889231`](withastro/astro@b889231) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fix dev routing for `server:defer` islands when adapters opt into handling prerendered routes in Astro core. Server island requests are now treated as prerender-handler eligible so prerendered pages using `prerenderEnvironment: 'node'` can load island content without `400` errors.

- [#&#8203;15890](withastro/astro#15890) [`765a887`](withastro/astro@765a887) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fixes `astro:actions` validation to check resolved routes, so projects using default static output with at least one `prerender = false` page or endpoint no longer fail during startup.

- [#&#8203;15884](withastro/astro#15884) [`dcd2c8e`](withastro/astro@dcd2c8e) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Avoid a `MaxListenersExceededWarning` during `astro dev` startup by increasing the shared Vite watcher listener limit when attaching content server listeners.

- [#&#8203;15904](withastro/astro#15904) [`23d5244`](withastro/astro@23d5244) Thanks [@&#8203;jlukic](https://github.com/jlukic)! - Emit the `before-hydration` script chunk for the `client` Vite environment. The chunk was only emitted for `prerender` and `ssr` environments, causing a 404 when browsers tried to load it. This broke hydration for any integration using `injectScript('before-hydration', ...)`, including Lit SSR.

- [#&#8203;15933](withastro/astro#15933) [`325901e`](withastro/astro@325901e) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixes an issue where `<style>` tags inside SVG components weren't correctly tracked when enabling CSP.

- [#&#8203;15875](withastro/astro#15875) [`c43ef8a`](withastro/astro@c43ef8a) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Ensure custom prerenderers are always torn down during build, even when `getStaticPaths()` throws.

- [#&#8203;15887](withastro/astro#15887) [`1861fed`](withastro/astro@1861fed) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixes an issue where the build incorrectly leaked server entrypoint into the client environment, causing adapters to emit warnings during the build.

- [#&#8203;15888](withastro/astro#15888) [`925252e`](withastro/astro@925252e) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fix a bug where `server:defer` could fail at runtime in prerendered pages for some adapters (including Cloudflare), causing errors like `serverIslandMap?.get is not a function`.

- [#&#8203;15901](withastro/astro#15901) [`07c1002`](withastro/astro@07c1002) Thanks [@&#8203;delucis](https://github.com/delucis)! - Fixes JSON schema generation for content collection schemas that have differences between their input and output shapes.

- [#&#8203;15882](withastro/astro#15882) [`759f946`](withastro/astro@759f946) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fix `Astro.url.pathname` for the root page when using `build.format: "file"` so it resolves to `/index.html` instead of `/.html` during builds.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43Ni4yIiwidXBkYXRlZEluVmVyIjoiNDMuNzYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Renovate Bot <renovate@zarantonello.dev>
Co-committed-by: Renovate Bot <renovate@zarantonello.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: astro Related to the core `astro` package (scope)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Frontmatter errors having upgraded to 0.38

3 participants