You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#29597a1e207 Thanks @stipsan! - Add outDir: "${configDir}/dist" to the recommended preset
Emitting to dist is already the default in @sanity/pkg-utils and tsdown, but every repo extending these presets had to repeat it in their own tsconfig. Since ${configDir} resolves to the directory of the tsconfig that extends the preset, output now lands in the dist folder next to your package.json by default, and the manual declaration can be removed:
#29789caf824 Thanks @stipsan! - feat: support TypeScript 7 (the Go-native compiler), require TypeScript 6 or later
BREAKING: the typescript peer dependency range is now 6.x || 7.x — TypeScript 5.x is no longer supported. TypeScript 7 is not required yet, but 6.0 is the new minimum.
The classic JS compiler API (used for parsing tsconfig.json and the api-extractor dts pipeline) is now always loaded from the official @typescript/typescript6 compat package (a regular dependency), since TypeScript 7 no longer ships it. The installed typescript peer no longer affects that pipeline.
dts: 'rolldown' upgrades to rolldown-plugin-dts 0.27.x: with typescript v7 installed, type generation automatically uses the Go-native compiler (tsgo) from the typescript package itself, without needing @typescript/native-preview. With v6, the previous behavior is unchanged (tsgo is opt-in via the tsgo option or @typescript/native-preview in devDependencies, and tsgo: false still opts out).
#2967b5d524e Thanks @stipsan! - Emit shared (non-entry) chunks into _chunks-es, _chunks-cjs and _chunks-dts folders, following the same naming convention as @sanity/pkg-utils, instead of placing them at the root of dist next to the entries.
A chunk could otherwise take an entry's filename: code shared between two entries forms a chunk that rolldown may name after one of the entries (e.g. theme). The JS output deduplicates such filename collisions in favor of the entry, but the d.ts output could resolve them the other way around, handing the entry's .d.ts filename to the chunk - which exports everything under minified aliases like buildTheme as x - so every named import from that entry failed to type-check with TS2460 (see sanity-io/ui#2262). With chunks emitted into their own folders they can never collide with entry filenames.
#2961c32c11d Thanks @stipsan! - Add dts and define options, passed through to tsdown as-is.
The dts option customizes how .d.ts files are generated, for example to use tsgo for type generation (the same feature as the tsgo option in @sanity/pkg-utils, requires @typescript/native-preview to be installed):
#2937cfa9845 Thanks @stipsan! - feat: add the vanillaExtract option known from @sanity/pkg-utils
Enables @vanilla-extract/rollup-plugin to extract CSS from .css.ts files into a separate file that is optimized with lightningcss. Like in @sanity/pkg-utils, the compat mode (on by default) automatically injects the self-referential import "<pkg>/bundle.css" into the entry chunk, emits a no-op bundle.css.js shim (plus bundle.css.d.ts) for runtimes that cannot import .css files, and writes the conditional "./bundle.css" export (browser/style → the real CSS, node/default → the shim) to package.json.
The feature is fully opt-in: neither @vanilla-extract/rollup-plugin nor the CSS toolchain (lightningcss, browserslist) is loaded unless vanillaExtract is enabled.
It runs babel-plugin-react-compiler on the source files before they are bundled, so published components are memoized automatically. Pass an object instead of true to configure the compiler with the same options as babel-plugin-react-compiler (e.g. reactCompiler: {target: '18'}). Requires babel-plugin-react-compiler to be installed.
It applies the styled-components transform (adding displayName for better debugging, componentId to avoid SSR hydration mismatches, and minifying the CSS in tagged template literals) with the same defaults as @sanity/pkg-utils. Unlike @sanity/pkg-utils it doesn't require installing babel-plugin-styled-components, as it uses oxc's native port of the babel plugin. Pass an object instead of true to customize the transform with the same options as babel-plugin-styled-components.
Tree-shaking no longer sets the equivalent of moduleSideEffects: 'no-external' and instead relies on the bundler's default (moduleSideEffects: true). Previously, binding-less side-effect imports of external package subpaths — e.g. import 'react-time-ago/locale/en' — were stripped from the output, breaking consumers that depended on those side effects. package.jsonsideEffects fields are still honored for bundled modules, so dead-code elimination is unaffected.
#22756546a45 Thanks @stipsan! - fix(build): restore named exports in dist/theme.d.ts so import {buildTheme} from '@​sanity/ui/theme' type-checks again (TS2460). Shared chunks are now emitted to dist/_chunks/ so they can no longer take an entry point's .d.ts filename.
#22675553766 Thanks @stipsan! - fix(deps): update dependency csstype to ^3.2.3, and use regular styled-components instead of the @sanity/styled-components fork for development and testing
#2242e301806 Thanks @stipsan! - The npm package no longer ships the src and exports folders — only dist (plus package.json, README.md, and LICENSE) is published. Nothing resolvable referenced those folders: the published exports map points exclusively at dist, and the JS sourcemaps embed sourcesContent. This cuts the unpacked package size roughly in half.
#2220edb7248 Thanks @stipsan! - The package is now built with tsdown. It continues to ship both CJS (require) and ESM (import) builds with identical entry points and named exports.
To initiate a new Sanity Studio project or learn more about upgrading, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
To initiate a new Sanity Studio project or learn more about upgrading, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
support@socket.dev.
Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/@emnapi/runtime@1.11.1. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^7.22.0→^7.23.0^2.1.0→^2.2.0^0.6.1→^0.13.0^3.2.0→^3.3.5^19.2.14→^19.2.17^6.0.2→^6.0.3^5.25.1→^5.31.1^0.50.0→^0.58.0^1.65.0→^1.73.0^0.23.0→^0.24.04f9cc66→84c30a84d2d3a0→a311e91^19.2.6→^19.2.7^19.2.6→^19.2.7^19.2.6→^19.2.7^5.25.1→^5.31.1^0.22.0→^0.22.4^4.1.6→^4.1.10Release Notes
sanity-io/client (@sanity/client)
v7.23.0Compare Source
Features
v7.22.1Compare Source
Bug Fixes
sanity-io/pkg-utils (@sanity/tsconfig)
v2.2.0Compare Source
Minor Changes
#2959
7a1e207Thanks @stipsan! - AddoutDir: "${configDir}/dist"to therecommendedpresetEmitting to
distis already the default in@sanity/pkg-utilsandtsdown, but every repo extending these presets had to repeat it in their own tsconfig. Since${configDir}resolves to the directory of the tsconfig that extends the preset, output now lands in thedistfolder next to yourpackage.jsonby default, and the manual declaration can be removed:{ "extends": "@​sanity/tsconfig/strictest", - "compilerOptions": { - "outDir": "${configDir}/dist" - } }sanity-io/pkg-utils (@sanity/tsdown-config)
v0.13.0Compare Source
Minor Changes
#2978
9caf824Thanks @stipsan! - feat: support TypeScript 7 (the Go-native compiler), require TypeScript 6 or laterBREAKING: the
typescriptpeer dependency range is now6.x || 7.x— TypeScript 5.x is no longer supported. TypeScript 7 is not required yet, but 6.0 is the new minimum.tsconfig.jsonand theapi-extractordts pipeline) is now always loaded from the official@typescript/typescript6compat package (a regular dependency), since TypeScript 7 no longer ships it. The installedtypescriptpeer no longer affects that pipeline.dts: 'rolldown'upgrades torolldown-plugin-dts0.27.x: withtypescriptv7 installed, type generation automatically uses the Go-native compiler (tsgo) from thetypescriptpackage itself, without needing@typescript/native-preview. With v6, the previous behavior is unchanged (tsgois opt-in via thetsgooption or@typescript/native-previewindevDependencies, andtsgo: falsestill opts out).v0.12.1Compare Source
Patch Changes
#2979
cc771d2Thanks @squiggler-app! - fix(deps): update dependency vitest to ^4.1.10#2987
9fe5a25Thanks @squiggler-app! - fix(deps): update dependency tsdown to v0.22.3#2990
f067d9aThanks @squiggler-app! - fix(deps): update dependency browserslist to ^4.28.5v0.12.0Compare Source
Minor Changes
#2967
b5d524eThanks @stipsan! - Emit shared (non-entry) chunks into_chunks-es,_chunks-cjsand_chunks-dtsfolders, following the same naming convention as@sanity/pkg-utils, instead of placing them at the root ofdistnext to the entries.A chunk could otherwise take an entry's filename: code shared between two entries forms a chunk that rolldown may name after one of the entries (e.g.
theme). The JS output deduplicates such filename collisions in favor of the entry, but the d.ts output could resolve them the other way around, handing the entry's.d.tsfilename to the chunk - which exports everything under minified aliases likebuildTheme as x- so every named import from that entry failed to type-check withTS2460(see sanity-io/ui#2262). With chunks emitted into their own folders they can never collide with entry filenames.v0.11.0Compare Source
Minor Changes
#2961
c32c11dThanks @stipsan! - Adddtsanddefineoptions, passed through totsdownas-is.The
dtsoption customizes how.d.tsfiles are generated, for example to usetsgofor type generation (the same feature as thetsgooption in@sanity/pkg-utils, requires@typescript/native-previewto be installed):The
defineoption replaces global identifiers with constant expressions at build time (the same feature as thedefineoption in@sanity/pkg-utils):v0.10.0Compare Source
Minor Changes
#2937
cfa9845Thanks @stipsan! - feat: add thevanillaExtractoption known from@sanity/pkg-utilsEnables
@vanilla-extract/rollup-pluginto extract CSS from.css.tsfiles into a separate file that is optimized withlightningcss. Like in@sanity/pkg-utils, the compat mode (on by default) automatically injects the self-referentialimport "<pkg>/bundle.css"into the entry chunk, emits a no-opbundle.css.jsshim (plusbundle.css.d.ts) for runtimes that cannot import.cssfiles, and writes the conditional"./bundle.css"export (browser/style→ the real CSS,node/default→ the shim) topackage.json.The feature is fully opt-in: neither
@vanilla-extract/rollup-pluginnor the CSS toolchain (lightningcss,browserslist) is loaded unlessvanillaExtractis enabled.v0.9.0Compare Source
Minor Changes
#2954
ec35d61Thanks @stipsan! - AddreactCompileroption, the same feature asbabel: {reactCompiler: true}in@sanity/pkg-utils.It runs
babel-plugin-react-compileron the source files before they are bundled, so published components are memoized automatically. Pass an object instead oftrueto configure the compiler with the same options asbabel-plugin-react-compiler(e.g.reactCompiler: {target: '18'}). Requiresbabel-plugin-react-compilerto be installed.v0.8.0Compare Source
Minor Changes
#2953
fd85068Thanks @stipsan! - AddstyledComponentsoption, the same feature asbabel: {styledComponents: true}in@sanity/pkg-utils.It applies the
styled-componentstransform (addingdisplayNamefor better debugging,componentIdto avoid SSR hydration mismatches, and minifying the CSS in tagged template literals) with the same defaults as@sanity/pkg-utils. Unlike@sanity/pkg-utilsit doesn't require installingbabel-plugin-styled-components, as it uses oxc's native port of the babel plugin. Pass an object instead oftrueto customize the transform with the same options asbabel-plugin-styled-components.v0.7.3Compare Source
Patch Changes
#2934
d6cfe32Thanks @stipsan! - fix: preserve side-effect-only imports of external packagesTree-shaking no longer sets the equivalent of
moduleSideEffects: 'no-external'and instead relies on the bundler's default (moduleSideEffects: true). Previously, binding-less side-effect imports of external package subpaths — e.g.import 'react-time-ago/locale/en'— were stripped from the output, breaking consumers that depended on those side effects.package.jsonsideEffectsfields are still honored for bundled modules, so dead-code elimination is unaffected.v0.7.2Compare Source
Patch Changes
#2828
66b1028Thanks @renovate! - fix(deps): update dependency tsdown to v0.22.2Updated dependencies [
66b1028]:v0.7.1Compare Source
Patch Changes
#2810
370f616Thanks @renovate! - fix(deps): update dependency tsdown to v0.22.1Updated dependencies [
370f616]:v0.7.0Compare Source
Minor Changes
92c6121Thanks @copilot-swe-agent! - feat(deps): Upgrade tsdown peer dependency to 0.22.xPatch Changes
60f10ad]:sanity-io/ui (@sanity/ui)
v3.3.5Compare Source
Patch Changes
6546a45Thanks @stipsan! - fix(build): restore named exports indist/theme.d.tssoimport {buildTheme} from '@​sanity/ui/theme'type-checks again (TS2460). Shared chunks are now emitted todist/_chunks/so they can no longer take an entry point's.d.tsfilename.v3.3.4Compare Source
Patch Changes
5553766Thanks @stipsan! - fix(deps): update dependency csstype to ^3.2.3, and use regularstyled-componentsinstead of the@sanity/styled-componentsfork for development and testingv3.3.3Compare Source
Patch Changes
#2250
9211258Thanks @squiggler-app! - fix(deps): update dependency @floating-ui/react-dom to ^2.1.8#2255
129e9faThanks @squiggler-app! - fix(deps): update dependency @sanity/icons to ^3.8.0#2257
2f3bc04Thanks @squiggler-app! - fix(deps): update dependency motion to ^12.42.2#2242
e301806Thanks @stipsan! - The npm package no longer ships thesrcandexportsfolders — onlydist(pluspackage.json,README.md, andLICENSE) is published. Nothing resolvable referenced those folders: the publishedexportsmap points exclusively atdist, and the JS sourcemaps embedsourcesContent. This cuts the unpacked package size roughly in half.v3.3.2Compare Source
Patch Changes
edb7248Thanks @stipsan! - The package is now built with tsdown. It continues to ship both CJS (require) and ESM (import) builds with identical entry points and named exports.v3.3.1Compare Source
Patch Changes
e5e508aThanks @stipsan! - Set up Changesets-based releases with npm trusted publishing. No runtime changes.v3.3.0Compare Source
Features
astypings from v4 (#2209) (ae60285)vitejs/vite-plugin-react (@vitejs/plugin-react)
v6.0.3Compare Source
sanity-io/sanity (groq)
v5.31.1Compare Source
Sanity Studio v5.31.1
For the complete changelog with all details, please visit:
www.sanity.io/docs/changelog/5e41ca5a-489c-4390-a9e8-f3712b30bf37
Install or upgrade Sanity Studio
To upgrade to this version, run:
To initiate a new Sanity Studio project or learn more about upgrading, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
📓 Full changelog
ec87ab7ca4657e75a443d0b8f8e3451b07b65d0a0c1cd4e22v5.31.0Compare Source
Sanity Studio v5.31.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit:
www.sanity.io/changelog/studio-NS4zMC4w
Install or upgrade Sanity Studio
To upgrade to this version, run:
To initiate a new Sanity Studio project or learn more about upgrading, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
📓 Full changelog
28ff40c798b5beef8909129d4cd9009b7e09bb43869f01d7452d3145f8b70e788044db0fe037dc996dab29317c1716818b4759a4101f7bd182e7cc65fa01b4b5ec84dcaace1eb830a7288513f9b60a045ca20d97513d6b22c19c5098b518d78f227e365bd6dc68dfd654d3b6e22bfb0aee60defd7d731b970607dbeab29f78e33cfdd02d30e5fd7f437d9ecec558ab41ec633537d872c55512066b1084c735c0958cadf11e3e77c07752b10f43f22ebff9f2fd13c400434efa6604e337fcd6dac1c3a0c63c02366967a62dcb422a3273b0be6beebe3b88a4f0Configuration
📅 Schedule: (UTC)
🚦 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 if that's undesired.
This PR has been generated by Mend Renovate using a curated preset maintained by
. View repository job log here