Skip to content

Conversation

@adrien2p
Copy link
Member

@adrien2p adrien2p commented Dec 15, 2025

What
zod v4 comes with performance improvements, types simplification and such which would be great to get in and benefit from

ref: https://zod.dev/v4
ref2: https://zod.dev/v4#benchmarks


Note

Upgrade all packages to Zod v4 and migrate validation code, schemas, helpers, and tests (explicit record key types, metadata shapes, error handling, hook validation).

  • Dependencies
    • Upgrade to Zod v4 across packages: @medusajs/medusa, @medusajs/core-flows, @medusajs/framework, @medusajs/utils, @medusajs/workflows-sdk, @medusajs/admin-sdk, @medusajs/dashboard; add/update zod-validation-error@^5.
  • Validation/Types refactor
    • Migrate schemas to Zod v4 API: use z.ZodType/ZodObject; remove ZodEffects usage; implement .superRefine where needed; require key type in z.record(keyType, valueType); standardize metadata to z.record(z.string(), z.unknown()).
    • Update framework helpers: validateAndTransformBody/validateAndTransformQuery now accept ZodType; revamped zod-helpers to handle v4 issue shape (input vs received, invalid_value, union errors) and improved required-field messages.
    • @medusajs/workflows-sdk: create-hook now accepts any validator with .parse; tests updated for new issue shapes/messages.
  • Admin Dashboard & Schemas
    • Adjust form hooks (packages/admin/dashboard/.../forms/hooks.tsx) to drop ZodEffects, use .superRefine and explicit z.record(z.string(), ...).
    • Update various route schemas (inventory-stock, product-variants, products, price-lists, product-stock, etc.) to explicit z.record(keyType, valueType) and metadata key types.
  • Tests
    • Integration and unit tests updated for new validation errors/messages (e.g., invalid_type now uses input, messages like “Invalid input: expected …”).

Written by Cursor Bugbot for commit 140ca54. This will update automatically on new commits. Configure here.

@changeset-bot
Copy link

changeset-bot bot commented Dec 15, 2025

🦋 Changeset detected

Latest commit: 140ca54

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

This PR includes changesets to release 75 packages
Name Type
@medusajs/medusa Patch
@medusajs/core-flows Patch
@medusajs/framework Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/admin-sdk Patch
@medusajs/dashboard Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
integration-tests-http Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/translation Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/draft-order Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/cli Patch
@medusajs/admin-bundler Patch
@medusajs/oas-github-ci Patch
@medusajs/js-sdk Patch
@medusajs/types Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

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

@vercel
Copy link

vercel bot commented Dec 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

8 Skipped Deployments
Project Deployment Review Updated (UTC)
api-reference Ignored Ignored Dec 18, 2025 2:01pm
api-reference-v2 Ignored Ignored Preview Dec 18, 2025 2:01pm
cloud-docs Ignored Ignored Preview Dec 18, 2025 2:01pm
docs-ui Ignored Ignored Preview Dec 18, 2025 2:01pm
docs-v2 Ignored Ignored Preview Dec 18, 2025 2:01pm
medusa-docs Ignored Ignored Preview Dec 18, 2025 2:01pm
resources-docs Ignored Ignored Preview Dec 18, 2025 2:01pm
user-guide Ignored Ignored Preview Dec 18, 2025 2:01pm

@adrien2p adrien2p marked this pull request as ready for review December 16, 2025 15:57
@adrien2p adrien2p requested review from a team as code owners December 16, 2025 15:57
@adrien2p
Copy link
Member Author

@olivermrbl I ve made an attempt here, let me know what you think

@adrien2p
Copy link
Member Author

cc @shahednasser

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@adrien2p adrien2p requested a review from olivermrbl December 18, 2025 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants