diff --git a/CHANGELOG.md b/CHANGELOG.md index 917295dbf..e4fbd99f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,54 @@ All notable changes to Mercur will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.2] - 2025-11-03 + +### Release 1.4.2 - B2C Marketplace + +### Changed + +- **Improved add-to-cart load time on Storefront** (@AlanJanicki) + +### Fixed + +#### Vendor Panel + +- **Vendors can now see the correct list of products (Issue [#173])** (@katPanek, @AlanJanicki) +- **Vendors can now see the current product price during price list creation** (@AlanJanicki) +- **Vendors can now see correct order item prices on the order details page** (@AlanJanicki) +- **Vendors can now edit shipping options without issues** (@katPanek, @AlanJanicki) +- **Vendors can now edit product attributes without issues (Issue [#380])** (@itariv, @AlanJanicki) +- **Vendors can now edit additional product attributes without issues** (@kilias07) +- **Vendors can now manage inventory item locations without issues** (@AlanJanicki) +- **Fixed UI issue with suspended account** (@AlanJanicki) +- **Fixed price lists table item status** (@katPanek) +- **Fixed product variant edit drawer** (@katPanek) + +#### Admin Panel + +- **Admin can now manage refund reasons without issues (Issue [#440])** (@mikolvj) +- **Fixed UI issue in the seller edition drawer** (@sylwia-werner) +- **Fixed sellers table pagination** (@sylwia-werner) +- **Fixed user invitation email issues** (@jakub-borek) + +#### Storefront + +- **Storefront listings now display new products without issues** (@itariv) +- **Fixed UI issue on the review details page** (@AlanJanicki) +- **Fixed UI issue with the product reviews section** (@AlanJanicki) +- **Fixed cart first step saving issues** (@AlanJanicki) +- **Fixed product carousel on the product details page** (@AlanJanicki) + +#### Other + +- **Fixed link targets in the order confirmation email template** (@itariv, @AlanJanicki) + +## [1.4.1] - 2025-10-29 + +### Fixed + +- **Fixed incorrect migration script (Issue [#439])** + ## [1.4.0] - 2025-10-27 ### Release 1.4.0 - B2C Marketplace @@ -32,7 +80,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Fixed errors on message page in Admin Panel** (@AlanJanicki) - **Fixed screen swiping issues in product detail page specific section** (@Si3r4dz) - ## [1.3.0] 2025-10-15 ### Release 1.3.0 - B2C Marketplace @@ -43,8 +90,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Cleaner separation between Medusa core and Mercur extensions** - **Easier updates and maintenance through modular architecture** - **Independent versioning for different components -Details: divide Mercur into plugins by @rigbyms in https://github.com/mercurjs/mercur/pull/410 -Read more in our [docs page](https://docs.mercurjs.com/components/backend).** + Details: divide Mercur into plugins by @rigbyms in https://github.com/mercurjs/mercur/pull/410 + Read more in our [docs page](https://docs.mercurjs.com/components/backend).** ### Enhanced CLI tooling: @@ -54,8 +101,8 @@ Read more in our [docs page](https://docs.mercurjs.com/components/backend).** - **Simplified configuration process** ### Others: -- **Fix: Link tax regions to system tax provider by @NicolasGorga in https://github.com/mercurjs/mercur/pull/405** +- **Fix: Link tax regions to system tax provider by @NicolasGorga in https://github.com/mercurjs/mercur/pull/405** ## [1.1.0] - 2025-09-19 diff --git a/apps/backend/package.json b/apps/backend/package.json index 7e80e0314..001e31d51 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -13,7 +13,8 @@ "medusa" ], "scripts": { - "build": "medusa build && ln -s .medusa/server/public/ public", + "build": "medusa build", + "build:symlink": "medusa build && ln -s .medusa/server/public/ public", "build:windows": "medusa build && node -e \"const fs=require('fs');const path=require('path');const target='.medusa/server/public/';const link='public';try{if(fs.existsSync(link))fs.rmSync(link,{recursive:true,force:true});fs.symlinkSync(target,link,process.platform==='win32'?'junction':'dir');console.log('✔ Symlink created:',link,'→',target);}catch(e){console.error('✖ Failed to create symlink:',e.message);process.exit(1);}\"", "seed": "medusa exec ./src/scripts/seed.ts", "start": "medusa start --types=false", diff --git a/apps/backend/src/scripts/fixes/fix-onboarding-291025.ts b/apps/backend/src/scripts/fixes/fix-onboarding-291025.ts new file mode 100644 index 000000000..2eee83680 --- /dev/null +++ b/apps/backend/src/scripts/fixes/fix-onboarding-291025.ts @@ -0,0 +1,34 @@ +import { ExecArgs } from '@medusajs/framework/types' +import { ContainerRegistrationKeys } from '@medusajs/framework/utils' + +/** + * IMPORTANT: Use this script only if you are affected by the issue described below. + * + * + * This script fixes the "onboarding" table from "payout" module, which may be accidentally dropped by a migration. + * The table may be missing, if the database was set up using affected Mercur versions: 1.3.0, 1.4.0 + * + * Place this script in your backend project's src/scripts/fixes directory, and run it with: + * ``` + * npx medusa exec ./src/scripts/fixes/fix-onboarding-291025.ts + * ``` + */ + +export default async function fixOnboardingTable291025({ + container +}: ExecArgs) { + const pg = container.resolve(ContainerRegistrationKeys.PG_CONNECTION) + + await pg.raw( + `create table if not exists "onboarding" ("id" text not null, "data" jsonb null, "context" jsonb null, "payout_account_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "onboarding_pkey" primary key ("id"));` + ) + await pg.raw( + `CREATE UNIQUE INDEX IF NOT EXISTS "IDX_onboarding_payout_account_id_unique" ON "onboarding" (payout_account_id) WHERE deleted_at IS NULL;` + ) + await pg.raw( + `CREATE INDEX IF NOT EXISTS "IDX_onboarding_deleted_at" ON "onboarding" (deleted_at) WHERE deleted_at IS NULL;` + ) + await pg.raw( + `alter table if exists "onboarding" add constraint "onboarding_payout_account_id_foreign" foreign key ("payout_account_id") references "payout_account" ("id") on update cascade;` + ) +} diff --git a/package.json b/package.json index 41ab144fa..b2f179257 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "mercur", - "version": "1.3.0", + "version": "1.4.2", "devDependencies": { "turbo": "^2.3.3" }, @@ -23,4 +23,4 @@ "codegen": "cd .", "generate:oas": "turbo run generate:oas" } -} \ No newline at end of file +} diff --git a/packages/framework/package.json b/packages/framework/package.json index 148fd4d2b..8e4e6595c 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -53,4 +53,4 @@ "@mikro-orm/postgresql": "6.4.3", "awilix": "^8.0.1" } -} \ No newline at end of file +} diff --git a/packages/framework/src/types/algolia/algolia-product.ts b/packages/framework/src/types/algolia/algolia-product.ts index 833193564..00cb64844 100644 --- a/packages/framework/src/types/algolia/algolia-product.ts +++ b/packages/framework/src/types/algolia/algolia-product.ts @@ -120,38 +120,4 @@ export const AlgoliaVariantValidator = z.object({ amount: z.number(), }) ), - calculated_price: z - .object({ - id: z.string(), - is_calculated_price_price_list: z.boolean(), - is_calculated_price_tax_inclusive: z.boolean(), - calculated_amount: z.number(), - raw_calculated_amount: z.object({ - value: z.string(), - precision: z.number(), - }), - is_original_price_price_list: z.boolean(), - is_original_price_tax_inclusive: z.boolean(), - original_amount: z.number(), - raw_original_amount: z.object({ - value: z.string(), - precision: z.number(), - }), - currency_code: z.string(), - calculated_price: z.object({ - id: z.string(), - price_list_id: z.string().nullish(), - price_list_type: z.string().nullish(), - min_quantity: z.number().nullish(), - max_quantity: z.number().nullish(), - }), - original_price: z.object({ - id: z.string(), - price_list_id: z.string().nullish(), - price_list_type: z.string().nullish(), - min_quantity: z.number().nullish(), - max_quantity: z.number().nullish(), - }), - }) - .nullish(), }); diff --git a/packages/modules/algolia/package.json b/packages/modules/algolia/package.json index a6d67db2f..8e369bfcd 100644 --- a/packages/modules/algolia/package.json +++ b/packages/modules/algolia/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/algolia", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -86,4 +86,4 @@ "dependencies": { "algoliasearch": "^5.40.0" } -} \ No newline at end of file +} diff --git a/packages/modules/algolia/src/subscribers/utils/algolia-product.ts b/packages/modules/algolia/src/subscribers/utils/algolia-product.ts index 32af69d1a..a142cf263 100644 --- a/packages/modules/algolia/src/subscribers/utils/algolia-product.ts +++ b/packages/modules/algolia/src/subscribers/utils/algolia-product.ts @@ -133,8 +133,6 @@ export async function findAndTransformAlgoliaProducts( 'variants.options.*', 'variants.options.prices.*', 'variants.prices.*', - 'variants.calculated_price.*', - 'brand.name', 'options.*', 'options.values.*', 'images.*', @@ -143,13 +141,6 @@ export async function findAndTransformAlgoliaProducts( 'attribute_values.attribute.is_filterable', 'attribute_values.attribute.ui_component' ], - context: { - variants: { - calculated_price: QueryContext({ - currency_code: region?.currency_code ?? 'eur' - }) - } - }, filters: ids.length ? { id: ids, diff --git a/packages/modules/b2c-core/package.json b/packages/modules/b2c-core/package.json index 1c5827e55..002b8b054 100644 --- a/packages/modules/b2c-core/package.json +++ b/packages/modules/b2c-core/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/b2c-core", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -84,4 +84,4 @@ "node": ">=20" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} \ No newline at end of file +} diff --git a/packages/modules/b2c-core/src/api/vendor/campaigns/route.ts b/packages/modules/b2c-core/src/api/vendor/campaigns/route.ts index b0eb35110..c4ab0ba4e 100644 --- a/packages/modules/b2c-core/src/api/vendor/campaigns/route.ts +++ b/packages/modules/b2c-core/src/api/vendor/campaigns/route.ts @@ -2,10 +2,8 @@ import { AuthenticatedMedusaRequest, MedusaResponse, } from "@medusajs/framework"; -import { ContainerRegistrationKeys } from "@medusajs/framework/utils"; - -import sellerCampaign from "../../../links/seller-campaign"; -import { fetchSellerByAuthActorId } from "../../../shared/infra/http/utils"; +import { ContainerRegistrationKeys, omitDeep } from "@medusajs/framework/utils"; +import { fetchSellerByAuthActorId } from "@mercurjs/framework"; import { createVendorCampaignWorkflow } from "../../../workflows/campaigns/workflows"; import { VendorCreateCampaignType } from "./validators"; @@ -16,6 +14,12 @@ import { VendorCreateCampaignType } from "./validators"; * description: "Retrieves a list of campaigns for the authenticated vendor." * x-authenticated: true * parameters: + * - name: q + * in: query + * schema: + * type: string + * required: false + * description: Search query to filter campaigns by name (case-insensitive). * - name: offset * in: query * schema: @@ -67,28 +71,47 @@ export const GET = async ( ) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY); - const { data: relations, metadata } = await query.graph({ - entity: sellerCampaign.entryPoint, - fields: req.queryConfig.fields.map((field) => `campaign.${field}`), - filters: { - ...req.filterableFields, - deleted_at: { - $eq: null, - }, + const filters: Record = { + ...omitDeep(req.filterableFields, ['q', 'seller_id']), + deleted_at: { + $eq: null, }, - pagination: req.queryConfig.pagination, - }); + } + + if(req.filterableFields?.seller_id) { + filters.seller = { + id: req.filterableFields.seller_id, + } + } + + if(req.filterableFields?.q) { + filters.$or = [ + { + name: { + $ilike: `%${req.filterableFields.q}%`, + }, + }, + { + campaign_identifier: { + $ilike: `%${req.filterableFields.q}%`, + }, + }, + ] + } - const activeCampaigns = relations - .map((relation) => relation.campaign) - .filter((campaign) => !!campaign); + const { data: relations, metadata } = await query.index({ + entity: 'campaign', + fields: [...req.queryConfig.fields, 'seller.id'], + filters, + pagination: req.queryConfig.pagination, + }) res.json({ - campaigns: activeCampaigns, - count: activeCampaigns.length, - offset: metadata?.skip, - limit: metadata?.take, - }); + campaigns: relations, + count: relations.length, + offset: metadata?.skip ?? 0, + limit: metadata?.take ?? relations.length, + }) }; /** @@ -152,3 +175,4 @@ export const POST = async ( res.status(201).json({ campaign }); }; + diff --git a/packages/modules/b2c-core/src/api/vendor/campaigns/validators.ts b/packages/modules/b2c-core/src/api/vendor/campaigns/validators.ts index 28f6062a1..11222035e 100644 --- a/packages/modules/b2c-core/src/api/vendor/campaigns/validators.ts +++ b/packages/modules/b2c-core/src/api/vendor/campaigns/validators.ts @@ -3,13 +3,19 @@ import { z } from 'zod' import { CampaignBudgetType, isPresent } from '@medusajs/framework/utils' import { createFindParams } from '@medusajs/medusa/api/utils/validators' +export const VendorGetCampaignsParamsFields = z.object({ + q: z.string().optional() +}) + export type VendorGetCampaignsParamsType = z.infer< typeof VendorGetCampaignsParams > export const VendorGetCampaignsParams = createFindParams({ - offset: 0, - limit: 50 + limit: 50, + offset: 0 }) + .merge(VendorGetCampaignsParamsFields) + .strict() /** * @schema VendorCreateCampaignBudget diff --git a/packages/modules/b2c-core/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.ts b/packages/modules/b2c-core/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.ts index f63424451..6dfdd221d 100644 --- a/packages/modules/b2c-core/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.ts +++ b/packages/modules/b2c-core/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.ts @@ -1,10 +1,12 @@ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework' -import { ContainerRegistrationKeys, Modules } from '@medusajs/framework/utils' -import { updateInventoryLevelsWorkflow } from '@medusajs/medusa/core-flows' +import { ContainerRegistrationKeys, Modules, MedusaError } from '@medusajs/framework/utils' +import { updateInventoryLevelsWorkflow, deleteInventoryLevelsWorkflow } from '@medusajs/medusa/core-flows' import { IntermediateEvents } from '@mercurjs/framework' import { VendorUpdateInventoryLevelType } from '../../../validators' +import { VendorInventoryLevelDeleteResponse } from '../../../validators' +import { refetchInventoryItem } from '@medusajs/medusa/api/admin/inventory-items/helpers' /** * @oas [post] /vendor/inventory-items/{id}/location-levels/{location_id} @@ -128,3 +130,86 @@ export const GET = async ( location_level }) } + +/** + * @oas [delete] /vendor/inventory-items/{id}/location-levels/{location_id} + * operationId: "VendorDeleteInventoryLevel" + * summary: "Delete inventory level" + * description: "Deletes inventory level of the InventoryItem in the specified location" + * x-authenticated: true + * parameters: + * - in: path + * name: id + * required: true + * description: The ID of the InventoryItem. + * schema: + * type: string + * - in: path + * name: location_id + * required: true + * description: The ID of the Stock Location. + * schema: + * type: string + * responses: + * "200": + * description: Inventory level + * tags: + * - Vendor Inventory Items + * security: + * - api_token: [] + * - cookie_auth: [] + */ + +export const DELETE = async ( + req: AuthenticatedMedusaRequest, + res: MedusaResponse +) => { + const { id, location_id } = req.params + + const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) + + const result = await query.graph({ + entity: "inventory_level", + filters: { inventory_item_id: id, location_id }, + fields: ["id", "reserved_quantity"], + }) + + if (!result.data.length) { + throw new MedusaError( + MedusaError.Types.NOT_FOUND, + `Inventory Level for Item ${id} at Location ${location_id} not found` + ) + } + + const { id: levelId, reserved_quantity: reservedQuantity } = result.data[0] + + if (reservedQuantity > 0) { + throw new MedusaError( + MedusaError.Types.NOT_ALLOWED, + `Cannot remove Inventory Level ${id} at Location ${location_id} because there are reservations at location` + ) + } + + const deleteInventoryLevelWorkflow = deleteInventoryLevelsWorkflow(req.scope) + + await deleteInventoryLevelWorkflow.run({ + input: { + id: [levelId], + }, + }) + + const inventoryItem = await refetchInventoryItem( + id, + req.scope, + req.queryConfig.fields + ) + + res.status(200).json({ + id: levelId, + object: "inventory-level", + deleted: true, + parent: inventoryItem, + }) +} + + diff --git a/packages/modules/b2c-core/src/api/vendor/inventory-items/middlewares.ts b/packages/modules/b2c-core/src/api/vendor/inventory-items/middlewares.ts index 16dc5544e..3805a5b78 100644 --- a/packages/modules/b2c-core/src/api/vendor/inventory-items/middlewares.ts +++ b/packages/modules/b2c-core/src/api/vendor/inventory-items/middlewares.ts @@ -165,5 +165,15 @@ export const vendorInventoryItemsMiddlewares: MiddlewareRoute[] = [ }) ) ] - } + }, + { + method: ["DELETE"], + matcher: "/vendor/inventory-items/:id/location-levels/:location_id", + middlewares: [ + validateAndTransformQuery( + VendorGetInventoryItemsParams, + vendorInventoryLevelQueryConfig.retrieve + ), + ], + }, ] diff --git a/packages/modules/b2c-core/src/api/vendor/inventory-items/validators.ts b/packages/modules/b2c-core/src/api/vendor/inventory-items/validators.ts index 9c9f393bf..525450532 100644 --- a/packages/modules/b2c-core/src/api/vendor/inventory-items/validators.ts +++ b/packages/modules/b2c-core/src/api/vendor/inventory-items/validators.ts @@ -2,6 +2,7 @@ import { z } from 'zod' import { applyAndAndOrOperators } from '@medusajs/medusa/api/utils/common-validators/common' import { createFindParams } from '@medusajs/medusa/api/utils/validators' +import { HttpTypes } from '@medusajs/framework/types' export const VendorGetInventoryItemsParamsFields = z.object({ q: z.string().optional(), @@ -240,3 +241,5 @@ export const VendorBatchInventoryItemLocationsLevel = z.object({ delete: z.array(z.string()).optional(), force: z.boolean().optional() }) + +export type VendorInventoryLevelDeleteResponse = HttpTypes.AdminInventoryLevelDeleteResponse diff --git a/packages/modules/b2c-core/src/api/vendor/orders/validators.ts b/packages/modules/b2c-core/src/api/vendor/orders/validators.ts index fc60a22bb..97acd27f8 100644 --- a/packages/modules/b2c-core/src/api/vendor/orders/validators.ts +++ b/packages/modules/b2c-core/src/api/vendor/orders/validators.ts @@ -9,7 +9,8 @@ import { export type VendorGetOrderParamsType = z.infer export const VendorGetOrderParams = createFindParams({ offset: 0, - limit: 50 + limit: 50, + order: '-created_at' }).merge( z.object({ created_at: createOperatorMap().optional(), diff --git a/packages/modules/b2c-core/src/links/seller-campaign.ts b/packages/modules/b2c-core/src/links/seller-campaign.ts index caedacb5d..ac51af73e 100644 --- a/packages/modules/b2c-core/src/links/seller-campaign.ts +++ b/packages/modules/b2c-core/src/links/seller-campaign.ts @@ -3,7 +3,14 @@ import PromotionModule from "@medusajs/medusa/promotion"; import SellerModule from "../modules/seller"; -export default defineLink(SellerModule.linkable.seller, { - linkable: PromotionModule.linkable.campaign, - isList: true, -}); +export default defineLink( + { + linkable: SellerModule.linkable.seller, + filterable: ["id"], + }, + { + linkable: PromotionModule.linkable.campaign, + isList: true, + filterable: ["id", "name", "campaign_identifier", "deleted_at"], + } +); \ No newline at end of file diff --git a/packages/modules/b2c-core/src/modules/seller/migrations/Migration20250212131627.ts b/packages/modules/b2c-core/src/modules/seller/migrations/Migration20250212131627.ts index fc8994103..557c02df1 100644 --- a/packages/modules/b2c-core/src/modules/seller/migrations/Migration20250212131627.ts +++ b/packages/modules/b2c-core/src/modules/seller/migrations/Migration20250212131627.ts @@ -1,32 +1,15 @@ -import { Migration } from '@mikro-orm/migrations' +import { Migration } from "@mikro-orm/migrations"; export class Migration20250212131627 extends Migration { async up(): Promise { - this.addSql('drop table if exists "onboarding" cascade;') - this.addSql( 'alter table if exists "member" add column if not exists "email" text null;' - ) + ); } async down(): Promise { this.addSql( - 'create table if not exists "onboarding" ("id" text not null, "is_payout_account_setup_completed" boolean not null default false, "seller_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "onboarding_pkey" primary key ("id"));' - ) - this.addSql( - 'alter table if exists "onboarding" add constraint "onboarding_seller_id_unique" unique ("seller_id");' - ) - this.addSql( - 'CREATE INDEX IF NOT EXISTS "IDX_onboarding_seller_id" ON "onboarding" (seller_id) WHERE deleted_at IS NULL;' - ) - this.addSql( - 'CREATE INDEX IF NOT EXISTS "IDX_onboarding_deleted_at" ON "onboarding" (deleted_at) WHERE deleted_at IS NULL;' - ) - - this.addSql( - 'alter table if exists "onboarding" add constraint "onboarding_seller_id_foreign" foreign key ("seller_id") references "seller" ("id") on update cascade;' - ) - - this.addSql('alter table if exists "member" drop column if exists "email";') + 'alter table if exists "member" drop column if exists "email";' + ); } } diff --git a/packages/modules/commission/package.json b/packages/modules/commission/package.json index a55e01366..3b603fb01 100644 --- a/packages/modules/commission/package.json +++ b/packages/modules/commission/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/commission", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -84,4 +84,4 @@ "node": ">=20" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} \ No newline at end of file +} diff --git a/packages/modules/payment-stripe-connect/package.json b/packages/modules/payment-stripe-connect/package.json index d0e2e0577..9611c09a6 100644 --- a/packages/modules/payment-stripe-connect/package.json +++ b/packages/modules/payment-stripe-connect/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/payment-stripe-connect", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -86,4 +86,4 @@ "dependencies": { "stripe": "^19.1.0" } -} \ No newline at end of file +} diff --git a/packages/modules/requests/package.json b/packages/modules/requests/package.json index c39057033..4e69812cd 100644 --- a/packages/modules/requests/package.json +++ b/packages/modules/requests/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/requests", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -84,4 +84,4 @@ "node": ">=20" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} \ No newline at end of file +} diff --git a/packages/modules/resend/package.json b/packages/modules/resend/package.json index 0c5b16b24..4261388e8 100644 --- a/packages/modules/resend/package.json +++ b/packages/modules/resend/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/resend", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -83,4 +83,4 @@ "dependencies": { "resend": "^4.1.2" } -} \ No newline at end of file +} diff --git a/packages/modules/reviews/package.json b/packages/modules/reviews/package.json index 945290c2b..b79ebb850 100644 --- a/packages/modules/reviews/package.json +++ b/packages/modules/reviews/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/reviews", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -84,4 +84,4 @@ "node": ">=20" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} \ No newline at end of file +} diff --git a/packages/modules/reviews/src/api/middlewares.ts b/packages/modules/reviews/src/api/middlewares.ts index 6971b0325..01a9757b5 100644 --- a/packages/modules/reviews/src/api/middlewares.ts +++ b/packages/modules/reviews/src/api/middlewares.ts @@ -2,7 +2,8 @@ import { defineMiddlewares } from "@medusajs/medusa"; import { adminMiddlewares } from "./admin/middlewares"; import { vendorMiddlewares } from "./vendor/middlewares"; +import { storeReviewMiddlewares } from "./store/reviews/middlewares"; export default defineMiddlewares({ - routes: [...adminMiddlewares, ...vendorMiddlewares], + routes: [...adminMiddlewares, ...vendorMiddlewares, ...storeReviewMiddlewares], }); diff --git a/packages/modules/stripe-tax-provider/package.json b/packages/modules/stripe-tax-provider/package.json index 28bf40e3d..6f5133a53 100644 --- a/packages/modules/stripe-tax-provider/package.json +++ b/packages/modules/stripe-tax-provider/package.json @@ -1,6 +1,6 @@ { "name": "@mercurjs/stripe-tax-provider", - "version": "1.4.0", + "version": "1.4.2", "author": "MercurJS (https://mercurjs.com)", "repository": { "type": "git", @@ -84,4 +84,4 @@ "engines": { "node": ">=20" } -} \ No newline at end of file +}