From 42b270ed2df09474f528d8d23816e0affcf4bd25 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 4 Nov 2025 09:39:42 +0200 Subject: [PATCH] fix(types, medusa): fixes to http types and validators (#13928) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary **What** — What changes are introduced in this PR? - Fix validators of delete item action for exchanges and claims to not include filter fields (their routes don't use these filters, and it doesn't make sense to have them) - Fix query parameter type argument of the create reservation route to the correct HTTP type. - Fix the HTTP type used for listing products and shipping options in the storefront to not include the `with_deleted` (It's also not supported by their validators) **Why** — Why are these changes relevant or necessary? *Please provide answer here* **How** — How have these changes been implemented? *Please provide answer here* **Testing** — How have these changes been tested, or how can the reviewer test the feature? *Please provide answer here* --- ## Examples Provide examples or code snippets that demonstrate how this feature works, or how it can be used in practice. This helps with documentation and ensures maintainers can quickly understand and verify the change. ```ts // Example usage ``` --- ## Checklist Please ensure the following before requesting a review: - [ ] I have added a **changeset** for this PR - Every non-breaking change should be marked as a **patch** - To add a changeset, run `yarn changeset` and follow the prompts - [ ] The changes are covered by relevant **tests** - [ ] I have verified the code works as intended locally - [ ] I have linked the related issue(s) if applicable --- ## Additional Context Add any additional context, related issues, or references that might help the reviewer understand this PR. --- .changeset/fair-carrots-provide.md | 6 ++++++ packages/core/types/src/http/product/store/queries.ts | 2 +- .../types/src/http/shipping-option/store/queries.ts | 2 +- .../claims/[id]/claim-items/[action_id]/route.ts | 2 +- .../claims/[id]/inbound/items/[action_id]/route.ts | 2 +- .../[id]/inbound/shipping-method/[action_id]/route.ts | 2 +- .../claims/[id]/outbound/items/[action_id]/route.ts | 2 +- .../outbound/shipping-method/[action_id]/route.ts | 2 +- packages/medusa/src/api/admin/claims/middlewares.ts | 11 ++++++----- packages/medusa/src/api/admin/claims/validators.ts | 4 ++++ .../exchanges/[id]/inbound/items/[action_id]/route.ts | 2 +- .../[id]/inbound/shipping-method/[action_id]/route.ts | 2 +- .../outbound/shipping-method/[action_id]/route.ts | 2 +- .../medusa/src/api/admin/exchanges/middlewares.ts | 9 +++++---- packages/medusa/src/api/admin/exchanges/validators.ts | 6 ++++++ packages/medusa/src/api/admin/reservations/route.ts | 2 +- 16 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 .changeset/fair-carrots-provide.md diff --git a/.changeset/fair-carrots-provide.md b/.changeset/fair-carrots-provide.md new file mode 100644 index 0000000000..feb335b41f --- /dev/null +++ b/.changeset/fair-carrots-provide.md @@ -0,0 +1,6 @@ +--- +"@medusajs/types": patch +"@medusajs/medusa": patch +--- + +fix(types, medusa): fixes to http types and validators diff --git a/packages/core/types/src/http/product/store/queries.ts b/packages/core/types/src/http/product/store/queries.ts index a0942e0836..5b2de26f98 100644 --- a/packages/core/types/src/http/product/store/queries.ts +++ b/packages/core/types/src/http/product/store/queries.ts @@ -28,7 +28,7 @@ export interface StoreProductPricingContext { export interface StoreProductParams extends SelectParams, StoreProductPricingContext {} export interface StoreProductListParams - extends Omit, StoreProductPricingContext { + extends Omit, StoreProductPricingContext { /** * Filter by the product's tag(s). */ diff --git a/packages/core/types/src/http/shipping-option/store/queries.ts b/packages/core/types/src/http/shipping-option/store/queries.ts index 4c92554e80..3039d71030 100644 --- a/packages/core/types/src/http/shipping-option/store/queries.ts +++ b/packages/core/types/src/http/shipping-option/store/queries.ts @@ -2,7 +2,7 @@ import { BaseFilterable } from "../../../dal" import { FindParams } from "../../common" export interface StoreGetShippingOptionList - extends FindParams, + extends Omit, BaseFilterable { /** * The ID of the cart to retrieve the shipping options that diff --git a/packages/medusa/src/api/admin/claims/[id]/claim-items/[action_id]/route.ts b/packages/medusa/src/api/admin/claims/[id]/claim-items/[action_id]/route.ts index 6f27df3e7c..4e1f297089 100644 --- a/packages/medusa/src/api/admin/claims/[id]/claim-items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/claims/[id]/claim-items/[action_id]/route.ts @@ -51,7 +51,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminClaimActionsParams>, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/claims/[id]/inbound/items/[action_id]/route.ts b/packages/medusa/src/api/admin/claims/[id]/inbound/items/[action_id]/route.ts index bce69d57e1..24ffa9751e 100644 --- a/packages/medusa/src/api/admin/claims/[id]/inbound/items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/claims/[id]/inbound/items/[action_id]/route.ts @@ -62,7 +62,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const { id, action_id } = req.params diff --git a/packages/medusa/src/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route.ts index 8b992ae293..f4f9080b90 100644 --- a/packages/medusa/src/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/claims/[id]/inbound/shipping-method/[action_id]/route.ts @@ -65,7 +65,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/claims/[id]/outbound/items/[action_id]/route.ts b/packages/medusa/src/api/admin/claims/[id]/outbound/items/[action_id]/route.ts index bae73add68..0e0d845fc6 100644 --- a/packages/medusa/src/api/admin/claims/[id]/outbound/items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/claims/[id]/outbound/items/[action_id]/route.ts @@ -51,7 +51,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminClaimActionsParams>, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route.ts index 5af2c6e8a2..fa70a93b03 100644 --- a/packages/medusa/src/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/claims/[id]/outbound/shipping-method/[action_id]/route.ts @@ -51,7 +51,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminClaimActionsParams>, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/claims/middlewares.ts b/packages/medusa/src/api/admin/claims/middlewares.ts index d8c51fc443..65494cc1be 100644 --- a/packages/medusa/src/api/admin/claims/middlewares.ts +++ b/packages/medusa/src/api/admin/claims/middlewares.ts @@ -5,6 +5,7 @@ import { } from "@medusajs/framework" import * as QueryConfig from "./query-config" import { + AdminDeleteClaimItemActionSchema, AdminGetOrdersOrderParams, AdminGetOrdersParams, AdminPostCancelClaimReqSchema, @@ -77,7 +78,7 @@ export const adminClaimRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/claims/:id/claim-items/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteClaimItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -110,7 +111,7 @@ export const adminClaimRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/claims/:id/inbound/items/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteClaimItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -142,7 +143,7 @@ export const adminClaimRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/claims/:id/inbound/shipping-method/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteClaimItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -175,7 +176,7 @@ export const adminClaimRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/claims/:id/outbound/items/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteClaimItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -207,7 +208,7 @@ export const adminClaimRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/claims/:id/outbound/shipping-method/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteClaimItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], diff --git a/packages/medusa/src/api/admin/claims/validators.ts b/packages/medusa/src/api/admin/claims/validators.ts index d00fb7b15c..fbb84637cb 100644 --- a/packages/medusa/src/api/admin/claims/validators.ts +++ b/packages/medusa/src/api/admin/claims/validators.ts @@ -209,3 +209,7 @@ export const AdminPostClaimsConfirmRequestReqSchema = z.object({ export type AdminPostClaimsConfirmRequestReqSchemaType = z.infer< typeof AdminPostClaimsConfirmRequestReqSchema > + +export const AdminDeleteClaimItemActionSchema = createSelectParams() + +export type AdminDeleteClaimItemActionSchemaType = z.infer \ No newline at end of file diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts index 211ae75b88..767dcd5464 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts @@ -62,7 +62,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts index 14a8363961..bf1ebfbc1d 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts @@ -65,7 +65,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts index f06e42c0e8..a1a5020407 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts @@ -51,7 +51,7 @@ export const POST = async ( } export const DELETE = async ( - req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminOrderExchangeListParams>, + req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/middlewares.ts b/packages/medusa/src/api/admin/exchanges/middlewares.ts index 96b02bcebf..6176966895 100644 --- a/packages/medusa/src/api/admin/exchanges/middlewares.ts +++ b/packages/medusa/src/api/admin/exchanges/middlewares.ts @@ -5,6 +5,7 @@ import { } from "@medusajs/framework" import * as QueryConfig from "./query-config" import { + AdminDeleteExchangeItemActionSchema, AdminGetExchangeParams, AdminGetOrdersOrderParams, AdminGetOrdersParams, @@ -79,7 +80,7 @@ export const adminExchangeRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/exchanges/:id/inbound/items/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteExchangeItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -111,7 +112,7 @@ export const adminExchangeRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/exchanges/:id/inbound/shipping-method/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteExchangeItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -144,7 +145,7 @@ export const adminExchangeRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/exchanges/:id/outbound/items/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteExchangeItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], @@ -176,7 +177,7 @@ export const adminExchangeRoutesMiddlewares: MiddlewareRoute[] = [ matcher: "/admin/exchanges/:id/outbound/shipping-method/:action_id", middlewares: [ validateAndTransformQuery( - AdminGetOrdersOrderParams, + AdminDeleteExchangeItemActionSchema, QueryConfig.retrieveTransformQueryConfig ), ], diff --git a/packages/medusa/src/api/admin/exchanges/validators.ts b/packages/medusa/src/api/admin/exchanges/validators.ts index 3e42baf308..1cc926589c 100644 --- a/packages/medusa/src/api/admin/exchanges/validators.ts +++ b/packages/medusa/src/api/admin/exchanges/validators.ts @@ -175,3 +175,9 @@ export const AdminPostExchangesItemsActionReqSchema = z.object({ export type AdminPostExchangesItemsActionReqSchemaType = z.infer< typeof AdminPostExchangesItemsActionReqSchema > + +export const AdminDeleteExchangeItemActionSchema = createSelectParams() + +export type AdminDeleteExchangeItemActionSchemaType = z.infer< + typeof AdminDeleteExchangeItemActionSchema +> \ No newline at end of file diff --git a/packages/medusa/src/api/admin/reservations/route.ts b/packages/medusa/src/api/admin/reservations/route.ts index 0ad78de2fe..9f904d4505 100644 --- a/packages/medusa/src/api/admin/reservations/route.ts +++ b/packages/medusa/src/api/admin/reservations/route.ts @@ -39,7 +39,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest< HttpTypes.AdminCreateReservation, - HttpTypes.AdminGetReservationsParams + HttpTypes.AdminReservationParams >, res: MedusaResponse ) => {