@mercurjs/b2c-core 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/.medusa/server/src/admin/index.js +3 -1
  2. package/.medusa/server/src/admin/index.mjs +3 -1
  3. package/.medusa/server/src/api/admin/attributes/validators.d.ts +355 -59
  4. package/.medusa/server/src/api/admin/configuration/validators.d.ts +3 -2
  5. package/.medusa/server/src/api/admin/notifications/route.js +8 -2
  6. package/.medusa/server/src/api/admin/order-sets/validators.d.ts +5 -3
  7. package/.medusa/server/src/api/admin/products/validators.d.ts +909 -500
  8. package/.medusa/server/src/api/admin/sellers/validators.d.ts +20 -16
  9. package/.medusa/server/src/api/store/carts/[id]/promotions/route.d.ts +3 -0
  10. package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +34 -0
  11. package/.medusa/server/src/api/store/order-set/validators.d.ts +3 -2
  12. package/.medusa/server/src/api/store/returns/validators.d.ts +3 -2
  13. package/.medusa/server/src/api/store/seller/validators.d.ts +3 -2
  14. package/.medusa/server/src/api/store/shipping-options/validators.d.ts +24 -26
  15. package/.medusa/server/src/api/store/wishlist/validators.d.ts +3 -2
  16. package/.medusa/server/src/api/vendor/attributes/validators.d.ts +9 -7
  17. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +76 -0
  18. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +89 -0
  19. package/.medusa/server/src/api/vendor/campaigns/middlewares.js +11 -2
  20. package/.medusa/server/src/api/vendor/campaigns/route.d.ts +6 -0
  21. package/.medusa/server/src/api/vendor/campaigns/route.js +10 -4
  22. package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +20 -12
  23. package/.medusa/server/src/api/vendor/campaigns/validators.js +10 -4
  24. package/.medusa/server/src/api/vendor/customer-groups/route.d.ts +2 -2
  25. package/.medusa/server/src/api/vendor/customer-groups/route.js +5 -5
  26. package/.medusa/server/src/api/vendor/customer-groups/validators.d.ts +604 -2
  27. package/.medusa/server/src/api/vendor/customer-groups/validators.js +37 -2
  28. package/.medusa/server/src/api/vendor/customers/validators.d.ts +6 -4
  29. package/.medusa/server/src/api/vendor/fulfillment-providers/validators.d.ts +3 -2
  30. package/.medusa/server/src/api/vendor/fulfillment-sets/validators.d.ts +22 -6
  31. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +30 -0
  32. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +61 -2
  33. package/.medusa/server/src/api/vendor/inventory-items/[id]/route.d.ts +23 -0
  34. package/.medusa/server/src/api/vendor/inventory-items/[id]/route.js +48 -2
  35. package/.medusa/server/src/api/vendor/inventory-items/middlewares.js +20 -2
  36. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +39 -41
  37. package/.medusa/server/src/api/vendor/inventory-items/validators.js +1 -1
  38. package/.medusa/server/src/api/vendor/invites/validators.d.ts +3 -2
  39. package/.medusa/server/src/api/vendor/members/validators.d.ts +7 -6
  40. package/.medusa/server/src/api/vendor/notifications/validators.d.ts +3 -2
  41. package/.medusa/server/src/api/vendor/orders/validators.d.ts +13 -11
  42. package/.medusa/server/src/api/vendor/orders/validators.js +3 -2
  43. package/.medusa/server/src/api/vendor/payouts/validators.d.ts +3 -2
  44. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +18 -16
  45. package/.medusa/server/src/api/vendor/price-preferences/validators.d.ts +37 -29
  46. package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +317 -26
  47. package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +6 -4
  48. package/.medusa/server/src/api/vendor/product-tags/route.js +8 -2
  49. package/.medusa/server/src/api/vendor/product-tags/validators.d.ts +31 -29
  50. package/.medusa/server/src/api/vendor/product-types/validators.d.ts +3 -2
  51. package/.medusa/server/src/api/vendor/products/route.js +7 -3
  52. package/.medusa/server/src/api/vendor/products/utils.d.ts +4 -1
  53. package/.medusa/server/src/api/vendor/products/utils.js +40 -2
  54. package/.medusa/server/src/api/vendor/products/validators.d.ts +905 -377
  55. package/.medusa/server/src/api/vendor/promotions/middlewares.d.ts +1 -1
  56. package/.medusa/server/src/api/vendor/promotions/middlewares.js +55 -53
  57. package/.medusa/server/src/api/vendor/promotions/rule-value-options/[rule_type]/[rule_attribute_id]/route.js +4 -4
  58. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +87 -67
  59. package/.medusa/server/src/api/vendor/promotions/validators.js +22 -16
  60. package/.medusa/server/src/api/vendor/regions/validators.d.ts +3 -2
  61. package/.medusa/server/src/api/vendor/reservations/validators.d.ts +7 -6
  62. package/.medusa/server/src/api/vendor/returns/validators.d.ts +9 -8
  63. package/.medusa/server/src/api/vendor/sellers/validators.d.ts +20 -20
  64. package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +27 -26
  65. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +5 -4
  66. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +49 -59
  67. package/.medusa/server/src/links/seller-campaign.js +1 -1
  68. package/.medusa/server/src/links/seller-customer-group.js +1 -1
  69. package/.medusa/server/src/modules/attribute/migrations/Migration20250617080244.d.ts +1 -1
  70. package/.medusa/server/src/modules/attribute/migrations/Migration20250617080244.js +2 -2
  71. package/.medusa/server/src/modules/attribute/migrations/Migration20250620110849.d.ts +1 -1
  72. package/.medusa/server/src/modules/attribute/migrations/Migration20250620110849.js +2 -2
  73. package/.medusa/server/src/modules/attribute/migrations/Migration20250828065431.d.ts +1 -1
  74. package/.medusa/server/src/modules/attribute/migrations/Migration20250828065431.js +2 -2
  75. package/.medusa/server/src/modules/attribute/service.d.ts +1 -1
  76. package/.medusa/server/src/modules/configuration/migrations/Migration20250114063624.d.ts +1 -1
  77. package/.medusa/server/src/modules/configuration/migrations/Migration20250114063624.js +2 -2
  78. package/.medusa/server/src/modules/configuration/migrations/Migration20250324131111.d.ts +1 -1
  79. package/.medusa/server/src/modules/configuration/migrations/Migration20250324131111.js +2 -2
  80. package/.medusa/server/src/modules/marketplace/migrations/Migration20241207151814.d.ts +1 -1
  81. package/.medusa/server/src/modules/marketplace/migrations/Migration20241207151814.js +2 -2
  82. package/.medusa/server/src/modules/payout/migrations/Migration20250317090626.d.ts +1 -1
  83. package/.medusa/server/src/modules/payout/migrations/Migration20250317090626.js +2 -2
  84. package/.medusa/server/src/modules/payout/migrations/Migration20250612144913.d.ts +1 -1
  85. package/.medusa/server/src/modules/payout/migrations/Migration20250612144913.js +2 -2
  86. package/.medusa/server/src/modules/payout/service.d.ts +1 -1
  87. package/.medusa/server/src/modules/secondary_categories/migrations/Migration20251014102054.d.ts +1 -1
  88. package/.medusa/server/src/modules/secondary_categories/migrations/Migration20251014102054.js +2 -2
  89. package/.medusa/server/src/modules/seller/migrations/Migration20241206125415.d.ts +1 -1
  90. package/.medusa/server/src/modules/seller/migrations/Migration20241206125415.js +2 -2
  91. package/.medusa/server/src/modules/seller/migrations/Migration20250212131627.d.ts +1 -1
  92. package/.medusa/server/src/modules/seller/migrations/Migration20250212131627.js +2 -2
  93. package/.medusa/server/src/modules/seller/migrations/Migration20250225083755.d.ts +1 -1
  94. package/.medusa/server/src/modules/seller/migrations/Migration20250225083755.js +2 -2
  95. package/.medusa/server/src/modules/seller/migrations/Migration20250225094708.d.ts +1 -1
  96. package/.medusa/server/src/modules/seller/migrations/Migration20250225094708.js +2 -2
  97. package/.medusa/server/src/modules/seller/migrations/Migration20250307091819.d.ts +1 -1
  98. package/.medusa/server/src/modules/seller/migrations/Migration20250307091819.js +2 -2
  99. package/.medusa/server/src/modules/seller/migrations/Migration20250313065552.d.ts +1 -1
  100. package/.medusa/server/src/modules/seller/migrations/Migration20250313065552.js +2 -2
  101. package/.medusa/server/src/modules/seller/migrations/Migration20250530111528.d.ts +1 -1
  102. package/.medusa/server/src/modules/seller/migrations/Migration20250530111528.js +2 -2
  103. package/.medusa/server/src/modules/seller/utils.d.ts +4 -0
  104. package/.medusa/server/src/modules/seller/utils.js +18 -1
  105. package/.medusa/server/src/modules/split-order-payment/migrations/Migration20250516075429.d.ts +1 -1
  106. package/.medusa/server/src/modules/split-order-payment/migrations/Migration20250516075429.js +2 -2
  107. package/.medusa/server/src/modules/taxcode/migrations/Migration20250116135408.d.ts +1 -1
  108. package/.medusa/server/src/modules/taxcode/migrations/Migration20250116135408.js +2 -2
  109. package/.medusa/server/src/modules/wishlist/migrations/Migration20250424110903.d.ts +1 -1
  110. package/.medusa/server/src/modules/wishlist/migrations/Migration20250424110903.js +2 -2
  111. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.d.ts +2 -0
  112. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +16 -0
  113. package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +2 -2
  114. package/.medusa/server/src/workflows/order/steps/calculate-payout-for-order.d.ts +1 -1
  115. package/.medusa/server/src/workflows/promotions/steps/register-usage-step.d.ts +7 -2
  116. package/.medusa/server/src/workflows/promotions/steps/register-usage-step.js +6 -6
  117. package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +10 -10
  118. package/package.json +17 -30
@@ -2,7 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.filterProductsBySeller = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
- const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId) => {
5
+ const cleanKey = (key) => {
6
+ return key.split('=').pop()?.replace(/^\*/, '') || key;
7
+ };
8
+ const normalizeDirection = (direction) => {
9
+ return direction.toLowerCase() === 'desc' ? 'desc' : 'asc';
10
+ };
11
+ const addOrderEntry = (orderBy, key, direction) => {
12
+ const column = key.includes('.') ? key : `product.${key}`;
13
+ orderBy.push({ column, order: normalizeDirection(direction) });
14
+ };
15
+ const parseOrderForKnex = (order) => {
16
+ if (!order || typeof order !== 'object') {
17
+ return [];
18
+ }
19
+ const orderBy = [];
20
+ for (const [key, value] of Object.entries(order)) {
21
+ if (typeof value === 'string') {
22
+ addOrderEntry(orderBy, cleanKey(key), value);
23
+ }
24
+ else if (value && typeof value === 'object') {
25
+ for (const [nestedKey, nestedValue] of Object.entries(value)) {
26
+ if (typeof nestedValue === 'string') {
27
+ addOrderEntry(orderBy, nestedKey, nestedValue);
28
+ }
29
+ }
30
+ }
31
+ }
32
+ return orderBy;
33
+ };
34
+ const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId, order) => {
6
35
  const knex = container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
7
36
  let baseQuery = knex('product')
8
37
  .distinct('product.id')
@@ -23,6 +52,15 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
23
52
  .count('product.id as count');
24
53
  const [{ count }] = await countQuery;
25
54
  const totalCount = parseInt(count, 10);
55
+ if (order) {
56
+ const parsedOrder = parseOrderForKnex(order);
57
+ if (parsedOrder.length > 0) {
58
+ const orderColumns = parsedOrder.map(o => o.column);
59
+ const selectColumns = ['product.id', ...orderColumns.filter(col => col !== 'product.id')];
60
+ baseQuery = baseQuery.distinct(...selectColumns);
61
+ baseQuery = baseQuery.orderBy(parsedOrder);
62
+ }
63
+ }
26
64
  const productIds = await baseQuery
27
65
  .offset(skip)
28
66
  .limit(take)
@@ -30,4 +68,4 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
30
68
  return { productIds, count: totalCount };
31
69
  };
32
70
  exports.filterProductsBySeller = filterProductsBySeller;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFFOUQsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLEVBQ3pDLFNBQTBCLEVBQzFCLFFBQWdCLEVBQ2hCLElBQVksRUFDWixJQUFZLEVBQ1osY0FBdUIsRUFDdkIsRUFBRTtJQUNGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFdkUsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUM1QixRQUFRLENBQUMsWUFBWSxDQUFDO1NBQ3RCLFNBQVMsQ0FDUiwrQkFBK0IsRUFDL0IsWUFBWSxFQUNaLDBDQUEwQyxDQUMzQztTQUNBLEtBQUssQ0FBQztRQUNMLHlDQUF5QyxFQUFFLFFBQVE7UUFDbkQsMENBQTBDLEVBQUUsSUFBSTtRQUNoRCxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUMsQ0FBQTtJQUVKLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsU0FBUyxHQUFHLFNBQVM7YUFDbEIsU0FBUyxDQUNSLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osa0NBQWtDLENBQ25DO2FBQ0EsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxTQUFTO1NBQ3pCLEtBQUssRUFBRTtTQUNQLFdBQVcsRUFBRTtTQUNiLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQy9CLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxVQUFVLENBQUE7SUFDcEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLFNBQVM7U0FDL0IsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUE7QUFDMUMsQ0FBQyxDQUFBO0FBN0NZLFFBQUEsc0JBQXNCLDBCQTZDbEMifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBc0U7QUFLdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQWtCLEVBQUU7SUFDL0QsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUF5RCxFQUN6RCxHQUFXLEVBQ1gsU0FBaUIsRUFDWCxFQUFFO0lBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQ3hCLEtBQXFDLEVBQ2EsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFxRCxFQUFFLENBQUM7SUFFckUs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