@mercurjs/core 2.2.0-canary.9 → 2.2.0-rc.0

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 (642) hide show
  1. package/.medusa/server/src/api/admin/claims/[id]/outbound/items/route.d.ts +13 -0
  2. package/.medusa/server/src/api/admin/claims/[id]/outbound/items/route.js +59 -0
  3. package/.medusa/server/src/api/admin/claims/[id]/request/route.d.ts +4 -0
  4. package/.medusa/server/src/api/admin/claims/[id]/request/route.js +74 -0
  5. package/.medusa/server/src/api/admin/collections/[id]/route.d.ts +7 -0
  6. package/.medusa/server/src/api/admin/collections/[id]/route.js +48 -0
  7. package/.medusa/server/src/api/admin/collections/middlewares.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/collections/middlewares.js +49 -0
  9. package/.medusa/server/src/api/admin/collections/query-config.d.ts +12 -0
  10. package/.medusa/server/src/api/admin/collections/query-config.js +29 -0
  11. package/.medusa/server/src/api/admin/collections/route.d.ts +6 -0
  12. package/.medusa/server/src/api/admin/collections/route.js +36 -0
  13. package/.medusa/server/src/api/admin/collections/validators.d.ts +262 -0
  14. package/.medusa/server/src/api/admin/collections/validators.js +42 -0
  15. package/.medusa/server/src/api/admin/commission-rates/query-config.js +6 -4
  16. package/.medusa/server/src/api/admin/commission-rates/route.js +4 -1
  17. package/.medusa/server/src/api/admin/commission-rates/validators.d.ts +89 -58
  18. package/.medusa/server/src/api/admin/commission-rates/validators.js +16 -9
  19. package/.medusa/server/src/api/admin/customer-groups/middlewares.d.ts +2 -0
  20. package/.medusa/server/src/api/admin/customer-groups/middlewares.js +43 -0
  21. package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +257 -0
  22. package/.medusa/server/src/api/admin/customer-groups/validators.js +12 -0
  23. package/.medusa/server/src/api/admin/exchanges/[id]/outbound/items/route.d.ts +14 -0
  24. package/.medusa/server/src/api/admin/exchanges/[id]/outbound/items/route.js +60 -0
  25. package/.medusa/server/src/api/admin/exchanges/[id]/request/route.d.ts +4 -0
  26. package/.medusa/server/src/api/admin/exchanges/[id]/request/route.js +75 -0
  27. package/.medusa/server/src/api/admin/members/validators.d.ts +14 -15
  28. package/.medusa/server/src/api/admin/middlewares.js +31 -36
  29. package/.medusa/server/src/api/admin/offers/middlewares.js +3 -1
  30. package/.medusa/server/src/api/admin/offers/query-config.js +3 -1
  31. package/.medusa/server/src/api/admin/offers/validators.d.ts +74 -55
  32. package/.medusa/server/src/api/admin/offers/validators.js +8 -1
  33. package/.medusa/server/src/api/admin/order-edits/[id]/confirm/route.d.ts +3 -0
  34. package/.medusa/server/src/api/admin/order-edits/[id]/confirm/route.js +18 -0
  35. package/.medusa/server/src/api/admin/order-edits/[id]/items/route.d.ts +15 -0
  36. package/.medusa/server/src/api/admin/order-edits/[id]/items/route.js +46 -0
  37. package/.medusa/server/src/api/admin/order-groups/helpers.d.ts +2 -0
  38. package/.medusa/server/src/api/admin/order-groups/helpers.js +53 -0
  39. package/.medusa/server/src/api/admin/order-groups/middlewares.js +3 -1
  40. package/.medusa/server/src/api/admin/order-groups/route.js +4 -2
  41. package/.medusa/server/src/api/admin/order-groups/validators.d.ts +20 -21
  42. package/.medusa/server/src/api/admin/orders/[id]/commission-lines/route.d.ts +7 -0
  43. package/.medusa/server/src/api/admin/orders/[id]/commission-lines/route.js +17 -0
  44. package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
  45. package/.medusa/server/src/api/admin/orders/middlewares.js +42 -0
  46. package/.medusa/server/src/api/admin/orders/resolve-order-seller-id.d.ts +2 -0
  47. package/.medusa/server/src/api/admin/orders/resolve-order-seller-id.js +15 -0
  48. package/.medusa/server/src/api/admin/orders/validators.d.ts +1 -287
  49. package/.medusa/server/src/api/admin/orders/validators.js +9 -29
  50. package/.medusa/server/src/api/admin/payouts/validators.d.ts +18 -19
  51. package/.medusa/server/src/api/admin/product-attributes/[id]/route.js +2 -2
  52. package/.medusa/server/src/api/admin/product-attributes/[id]/values/[value_id]/route.js +2 -2
  53. package/.medusa/server/src/api/admin/product-attributes/middlewares.js +1 -3
  54. package/.medusa/server/src/api/admin/product-attributes/query-config.js +4 -1
  55. package/.medusa/server/src/api/admin/product-attributes/route.d.ts +2 -2
  56. package/.medusa/server/src/api/admin/product-attributes/route.js +2 -5
  57. package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +129 -140
  58. package/.medusa/server/src/api/admin/product-attributes/validators.js +1 -3
  59. package/.medusa/server/src/api/admin/product-categories/[id]/route.js +8 -11
  60. package/.medusa/server/src/api/admin/product-categories/query-config.js +7 -1
  61. package/.medusa/server/src/api/admin/product-categories/route.js +5 -8
  62. package/.medusa/server/src/api/admin/product-categories/validators.d.ts +153 -93
  63. package/.medusa/server/src/api/admin/product-categories/validators.js +11 -1
  64. package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.d.ts +0 -7
  65. package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.js +1 -8
  66. package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.d.ts +0 -7
  67. package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.js +1 -8
  68. package/.medusa/server/src/api/admin/products/[id]/attributes/batch/route.js +6 -9
  69. package/.medusa/server/src/api/admin/products/[id]/confirm/route.d.ts +0 -12
  70. package/.medusa/server/src/api/admin/products/[id]/confirm/route.js +1 -13
  71. package/.medusa/server/src/api/admin/products/[id]/preview/route.d.ts +0 -7
  72. package/.medusa/server/src/api/admin/products/[id]/preview/route.js +1 -8
  73. package/.medusa/server/src/api/admin/products/[id]/reject/route.d.ts +0 -8
  74. package/.medusa/server/src/api/admin/products/[id]/reject/route.js +1 -9
  75. package/.medusa/server/src/api/admin/products/[id]/request-changes/route.d.ts +0 -9
  76. package/.medusa/server/src/api/admin/products/[id]/request-changes/route.js +1 -10
  77. package/.medusa/server/src/api/admin/products/[id]/route.js +9 -3
  78. package/.medusa/server/src/api/admin/products/[id]/sellers/route.d.ts +3 -0
  79. package/.medusa/server/src/api/admin/products/[id]/sellers/route.js +13 -0
  80. package/.medusa/server/src/api/admin/products/middlewares.js +6 -42
  81. package/.medusa/server/src/api/admin/products/query-config.js +41 -16
  82. package/.medusa/server/src/api/admin/products/route.js +9 -1
  83. package/.medusa/server/src/api/admin/products/validators.d.ts +558 -1324
  84. package/.medusa/server/src/api/admin/products/validators.js +59 -93
  85. package/.medusa/server/src/api/admin/returns/[id]/receive/confirm/route.d.ts +3 -0
  86. package/.medusa/server/src/api/admin/returns/[id]/receive/confirm/route.js +29 -0
  87. package/.medusa/server/src/api/admin/sellers/middlewares.js +1 -20
  88. package/.medusa/server/src/api/admin/sellers/validators.d.ts +75 -96
  89. package/.medusa/server/src/api/admin/sellers/validators.js +3 -4
  90. package/.medusa/server/src/api/admin/shipping-options/middlewares.d.ts +2 -0
  91. package/.medusa/server/src/api/admin/shipping-options/middlewares.js +46 -0
  92. package/.medusa/server/src/api/admin/shipping-profiles/middlewares.d.ts +2 -0
  93. package/.medusa/server/src/api/admin/shipping-profiles/middlewares.js +46 -0
  94. package/.medusa/server/src/api/admin/stock-locations/middlewares.d.ts +2 -0
  95. package/.medusa/server/src/api/admin/stock-locations/middlewares.js +46 -0
  96. package/.medusa/server/src/api/store/carts/[id]/complete/route.js +1 -5
  97. package/.medusa/server/src/api/store/carts/[id]/complete/validators.d.ts +1 -1
  98. package/.medusa/server/src/api/store/carts/[id]/line-items/route.js +13 -1
  99. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.d.ts +0 -3
  100. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.js +1 -2
  101. package/.medusa/server/src/api/store/carts/[id]/shipping-methods/route.js +6 -2
  102. package/.medusa/server/src/api/store/middlewares.js +15 -11
  103. package/.medusa/server/src/api/store/offers/[id]/route.d.ts +3 -0
  104. package/.medusa/server/src/api/store/offers/[id]/route.js +28 -0
  105. package/.medusa/server/src/api/store/offers/helpers.d.ts +43 -0
  106. package/.medusa/server/src/api/store/offers/helpers.js +191 -0
  107. package/.medusa/server/src/api/store/offers/middlewares.d.ts +2 -0
  108. package/.medusa/server/src/api/store/offers/middlewares.js +64 -0
  109. package/.medusa/server/src/api/store/offers/query-config.d.ts +12 -0
  110. package/.medusa/server/src/api/store/offers/query-config.js +50 -0
  111. package/.medusa/server/src/api/store/offers/route.d.ts +3 -0
  112. package/.medusa/server/src/api/store/offers/route.js +30 -0
  113. package/.medusa/server/src/api/store/offers/validators.d.ts +158 -0
  114. package/.medusa/server/src/api/store/offers/validators.js +29 -0
  115. package/.medusa/server/src/api/store/order-groups/validators.d.ts +16 -17
  116. package/.medusa/server/src/api/store/product-attributes/validators.d.ts +50 -46
  117. package/.medusa/server/src/api/store/product-categories/validators.d.ts +59 -53
  118. package/.medusa/server/src/api/store/products/[id]/route.js +9 -5
  119. package/.medusa/server/src/api/store/products/helpers.d.ts +10 -0
  120. package/.medusa/server/src/api/store/products/helpers.js +20 -0
  121. package/.medusa/server/src/api/store/products/middlewares.js +37 -24
  122. package/.medusa/server/src/api/store/products/query-config.js +23 -7
  123. package/.medusa/server/src/api/store/products/route.js +9 -1
  124. package/.medusa/server/src/api/store/products/validators.d.ts +69 -65
  125. package/.medusa/server/src/api/store/search/middlewares.d.ts +2 -0
  126. package/.medusa/server/src/api/store/search/middlewares.js +73 -0
  127. package/.medusa/server/src/api/store/search/route.d.ts +8 -0
  128. package/.medusa/server/src/api/store/search/route.js +25 -0
  129. package/.medusa/server/src/api/store/search/validators.d.ts +27 -0
  130. package/.medusa/server/src/api/store/search/validators.js +17 -0
  131. package/.medusa/server/src/api/store/sellers/validators.d.ts +35 -34
  132. package/.medusa/server/src/api/utils/filter-attributes-by-category-link.d.ts +0 -15
  133. package/.medusa/server/src/api/utils/filter-attributes-by-category-link.js +22 -26
  134. package/.medusa/server/src/api/utils/format-product-attributes.d.ts +5 -50
  135. package/.medusa/server/src/api/utils/format-product-attributes.js +90 -166
  136. package/.medusa/server/src/api/utils/index.d.ts +2 -0
  137. package/.medusa/server/src/api/utils/index.js +3 -1
  138. package/.medusa/server/src/api/utils/offers.d.ts +50 -0
  139. package/.medusa/server/src/api/utils/offers.js +286 -0
  140. package/.medusa/server/src/api/utils/order-commission-lines.d.ts +11 -0
  141. package/.medusa/server/src/api/utils/order-commission-lines.js +71 -0
  142. package/.medusa/server/src/api/utils/product-attribute-fields.d.ts +5 -0
  143. package/.medusa/server/src/api/utils/product-attribute-fields.js +35 -0
  144. package/.medusa/server/src/api/utils/sellers.d.ts +2 -0
  145. package/.medusa/server/src/api/utils/sellers.js +23 -0
  146. package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +14 -15
  147. package/.medusa/server/src/api/vendor/claims/[id]/outbound/items/route.d.ts +0 -6
  148. package/.medusa/server/src/api/vendor/claims/[id]/outbound/items/route.js +1 -7
  149. package/.medusa/server/src/api/vendor/claims/[id]/request/route.js +1 -4
  150. package/.medusa/server/src/api/vendor/claims/validators.d.ts +32 -33
  151. package/.medusa/server/src/api/vendor/collections/query-config.js +7 -1
  152. package/.medusa/server/src/api/vendor/collections/validators.d.ts +22 -23
  153. package/.medusa/server/src/api/vendor/currencies/validators.d.ts +14 -15
  154. package/.medusa/server/src/api/vendor/customer-groups/[id]/customers/route.d.ts +4 -0
  155. package/.medusa/server/src/api/vendor/customer-groups/[id]/customers/route.js +20 -0
  156. package/.medusa/server/src/api/vendor/customer-groups/[id]/route.d.ts +6 -0
  157. package/.medusa/server/src/api/vendor/customer-groups/[id]/route.js +43 -0
  158. package/.medusa/server/src/api/vendor/customer-groups/helpers.d.ts +3 -0
  159. package/.medusa/server/src/api/vendor/customer-groups/helpers.js +38 -0
  160. package/.medusa/server/src/api/vendor/customer-groups/middlewares.d.ts +2 -0
  161. package/.medusa/server/src/api/vendor/customer-groups/middlewares.js +62 -0
  162. package/.medusa/server/src/api/vendor/customer-groups/query-config.d.ts +11 -0
  163. package/.medusa/server/src/api/vendor/customer-groups/query-config.js +22 -0
  164. package/.medusa/server/src/api/vendor/customer-groups/route.d.ts +5 -0
  165. package/.medusa/server/src/api/vendor/customer-groups/route.js +35 -0
  166. package/.medusa/server/src/api/vendor/customer-groups/validators.d.ts +156 -0
  167. package/.medusa/server/src/api/vendor/customer-groups/validators.js +35 -0
  168. package/.medusa/server/src/api/vendor/customers/[id]/customer-groups/route.d.ts +4 -0
  169. package/.medusa/server/src/api/vendor/customers/[id]/customer-groups/route.js +27 -0
  170. package/.medusa/server/src/api/vendor/customers/[id]/route.js +13 -1
  171. package/.medusa/server/src/api/vendor/customers/middlewares.js +9 -1
  172. package/.medusa/server/src/api/vendor/customers/validators.d.ts +47 -32
  173. package/.medusa/server/src/api/vendor/customers/validators.js +9 -2
  174. package/.medusa/server/src/api/vendor/exchanges/[id]/outbound/items/route.d.ts +0 -6
  175. package/.medusa/server/src/api/vendor/exchanges/[id]/outbound/items/route.js +1 -7
  176. package/.medusa/server/src/api/vendor/exchanges/[id]/request/route.js +1 -4
  177. package/.medusa/server/src/api/vendor/exchanges/validators.d.ts +29 -30
  178. package/.medusa/server/src/api/vendor/fulfillment-providers/validators.d.ts +24 -23
  179. package/.medusa/server/src/api/vendor/fulfillment-sets/validators.d.ts +18 -18
  180. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +104 -110
  181. package/.medusa/server/src/api/vendor/middlewares.js +17 -17
  182. package/.medusa/server/src/api/vendor/offers/query-config.js +2 -1
  183. package/.medusa/server/src/api/vendor/offers/validators.d.ts +54 -59
  184. package/.medusa/server/src/api/vendor/offers/validators.js +4 -8
  185. package/.medusa/server/src/api/vendor/order-edits/[id]/confirm/route.d.ts +0 -6
  186. package/.medusa/server/src/api/vendor/order-edits/[id]/confirm/route.js +3 -9
  187. package/.medusa/server/src/api/vendor/order-edits/[id]/items/[action_id]/route.d.ts +0 -9
  188. package/.medusa/server/src/api/vendor/order-edits/[id]/items/[action_id]/route.js +1 -10
  189. package/.medusa/server/src/api/vendor/order-edits/[id]/items/item/[item_id]/route.d.ts +0 -6
  190. package/.medusa/server/src/api/vendor/order-edits/[id]/items/item/[item_id]/route.js +1 -7
  191. package/.medusa/server/src/api/vendor/order-edits/[id]/items/route.d.ts +0 -12
  192. package/.medusa/server/src/api/vendor/order-edits/[id]/items/route.js +1 -13
  193. package/.medusa/server/src/api/vendor/order-edits/[id]/request/route.d.ts +0 -7
  194. package/.medusa/server/src/api/vendor/order-edits/[id]/request/route.js +1 -8
  195. package/.medusa/server/src/api/vendor/order-edits/[id]/route.d.ts +0 -7
  196. package/.medusa/server/src/api/vendor/order-edits/[id]/route.js +1 -8
  197. package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/[action_id]/route.d.ts +0 -9
  198. package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/[action_id]/route.js +1 -10
  199. package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/route.d.ts +0 -5
  200. package/.medusa/server/src/api/vendor/order-edits/[id]/shipping-method/route.js +1 -6
  201. package/.medusa/server/src/api/vendor/order-edits/middlewares.js +1 -13
  202. package/.medusa/server/src/api/vendor/order-edits/route.d.ts +0 -6
  203. package/.medusa/server/src/api/vendor/order-edits/route.js +1 -7
  204. package/.medusa/server/src/api/vendor/order-edits/validators.d.ts +12 -18
  205. package/.medusa/server/src/api/vendor/order-edits/validators.js +1 -1
  206. package/.medusa/server/src/api/vendor/orders/[id]/commission-lines/route.d.ts +7 -0
  207. package/.medusa/server/src/api/vendor/orders/[id]/commission-lines/route.js +18 -0
  208. package/.medusa/server/src/api/vendor/orders/middlewares.js +1 -3
  209. package/.medusa/server/src/api/vendor/orders/resolve-offer-items.d.ts +2 -13
  210. package/.medusa/server/src/api/vendor/orders/resolve-offer-items.js +11 -2
  211. package/.medusa/server/src/api/vendor/orders/validators.d.ts +21 -25
  212. package/.medusa/server/src/api/vendor/orders/validators.js +1 -7
  213. package/.medusa/server/src/api/vendor/payments/helpers.d.ts +0 -9
  214. package/.medusa/server/src/api/vendor/payments/helpers.js +1 -10
  215. package/.medusa/server/src/api/vendor/payments/validators.d.ts +38 -38
  216. package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +11 -12
  217. package/.medusa/server/src/api/vendor/payouts/validators.d.ts +18 -19
  218. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +38 -40
  219. package/.medusa/server/src/api/vendor/price-preferences/validators.d.ts +14 -15
  220. package/.medusa/server/src/api/vendor/product-attributes/query-config.js +4 -2
  221. package/.medusa/server/src/api/vendor/product-attributes/route.js +1 -3
  222. package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +92 -104
  223. package/.medusa/server/src/api/vendor/product-attributes/validators.js +1 -1
  224. package/.medusa/server/src/api/vendor/product-categories/[id]/products/route.js +2 -2
  225. package/.medusa/server/src/api/vendor/product-categories/query-config.js +7 -1
  226. package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +89 -83
  227. package/.medusa/server/src/api/vendor/product-tags/validators.d.ts +2 -2
  228. package/.medusa/server/src/api/vendor/product-types/validators.d.ts +14 -15
  229. package/.medusa/server/src/api/vendor/product-variants/middlewares.js +11 -19
  230. package/.medusa/server/src/api/vendor/product-variants/query-config.js +1 -3
  231. package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +103 -97
  232. package/.medusa/server/src/api/vendor/products/[id]/attributes/batch/route.d.ts +2 -9
  233. package/.medusa/server/src/api/vendor/products/[id]/attributes/batch/route.js +3 -27
  234. package/.medusa/server/src/api/vendor/products/[id]/cancel/route.d.ts +0 -6
  235. package/.medusa/server/src/api/vendor/products/[id]/cancel/route.js +1 -7
  236. package/.medusa/server/src/api/vendor/products/[id]/preview/route.d.ts +0 -9
  237. package/.medusa/server/src/api/vendor/products/[id]/preview/route.js +1 -10
  238. package/.medusa/server/src/api/vendor/products/[id]/route.d.ts +0 -14
  239. package/.medusa/server/src/api/vendor/products/[id]/route.js +10 -17
  240. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.d.ts +0 -8
  241. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.js +3 -11
  242. package/.medusa/server/src/api/vendor/products/[id]/variants/route.d.ts +0 -7
  243. package/.medusa/server/src/api/vendor/products/[id]/variants/route.js +2 -9
  244. package/.medusa/server/src/api/vendor/products/helpers.d.ts +6 -5
  245. package/.medusa/server/src/api/vendor/products/helpers.js +54 -10
  246. package/.medusa/server/src/api/vendor/products/middlewares.js +14 -63
  247. package/.medusa/server/src/api/vendor/products/query-config.js +52 -15
  248. package/.medusa/server/src/api/vendor/products/route.d.ts +0 -9
  249. package/.medusa/server/src/api/vendor/products/route.js +14 -17
  250. package/.medusa/server/src/api/vendor/products/validators.d.ts +436 -838
  251. package/.medusa/server/src/api/vendor/products/validators.js +65 -103
  252. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +47 -49
  253. package/.medusa/server/src/api/vendor/refund-reasons/validators.d.ts +18 -19
  254. package/.medusa/server/src/api/vendor/regions/validators.d.ts +20 -21
  255. package/.medusa/server/src/api/vendor/reservations/[id]/route.js +1 -1
  256. package/.medusa/server/src/api/vendor/reservations/helpers.js +1 -4
  257. package/.medusa/server/src/api/vendor/reservations/middlewares.js +1 -18
  258. package/.medusa/server/src/api/vendor/reservations/query-config.js +1 -4
  259. package/.medusa/server/src/api/vendor/reservations/route.js +1 -1
  260. package/.medusa/server/src/api/vendor/reservations/validators.d.ts +24 -25
  261. package/.medusa/server/src/api/vendor/reservations/validators.js +1 -1
  262. package/.medusa/server/src/api/vendor/return-reasons/validators.d.ts +18 -19
  263. package/.medusa/server/src/api/vendor/returns/validators.d.ts +25 -26
  264. package/.medusa/server/src/api/vendor/sales-channels/[id]/products/route.js +2 -1
  265. package/.medusa/server/src/api/vendor/sales-channels/helpers.d.ts +1 -0
  266. package/.medusa/server/src/api/vendor/sales-channels/helpers.js +25 -2
  267. package/.medusa/server/src/api/vendor/sales-channels/validators.d.ts +25 -24
  268. package/.medusa/server/src/api/vendor/sellers/middlewares.js +1 -18
  269. package/.medusa/server/src/api/vendor/sellers/route.js +6 -2
  270. package/.medusa/server/src/api/vendor/sellers/validators.d.ts +25 -46
  271. package/.medusa/server/src/api/vendor/sellers/validators.js +2 -2
  272. package/.medusa/server/src/api/vendor/shipping-option-types/validators.d.ts +18 -19
  273. package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +97 -98
  274. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +20 -21
  275. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +18 -19
  276. package/.medusa/server/src/api/vendor/stores/validators.d.ts +14 -15
  277. package/.medusa/server/src/links/media-product-category-link.d.ts +20 -0
  278. package/.medusa/server/src/links/media-product-category-link.js +34 -0
  279. package/.medusa/server/src/links/media-product-collection-link.d.ts +18 -0
  280. package/.medusa/server/src/links/media-product-collection-link.js +32 -0
  281. package/.medusa/server/src/links/offer-product-link.js +15 -0
  282. package/.medusa/server/src/links/product-attribute-category-link.d.ts +0 -14
  283. package/.medusa/server/src/links/product-attribute-category-link.js +4 -21
  284. package/.medusa/server/src/links/product-attribute-option-mirror-link.d.ts +6 -0
  285. package/.medusa/server/src/links/product-attribute-option-mirror-link.js +24 -0
  286. package/.medusa/server/src/links/product-attribute-product-link.d.ts +0 -5
  287. package/.medusa/server/src/links/product-attribute-product-link.js +2 -7
  288. package/.medusa/server/src/links/product-attribute-value-option-value-mirror-link.d.ts +6 -0
  289. package/.medusa/server/src/links/product-attribute-value-option-value-mirror-link.js +24 -0
  290. package/.medusa/server/src/links/{product-variant-attribute-value-link.d.ts → product-attribute-value-pivot-link.d.ts} +3 -0
  291. package/.medusa/server/src/links/product-attribute-value-pivot-link.js +23 -0
  292. package/.medusa/server/src/links/seller-customer-group-link.js +15 -0
  293. package/.medusa/server/src/migration-scripts/drop-fulfillment-global-unique-indexes.js +6 -1
  294. package/.medusa/server/src/migration-scripts/rename-default-store.d.ts +2 -0
  295. package/.medusa/server/src/migration-scripts/rename-default-store.js +12 -0
  296. package/.medusa/server/src/modules/commission/index.d.ts +14 -0
  297. package/.medusa/server/src/modules/commission/index.js +3 -1
  298. package/.medusa/server/src/modules/commission/loaders/seed-default-commission-rate.d.ts +11 -0
  299. package/.medusa/server/src/modules/commission/loaders/seed-default-commission-rate.js +35 -0
  300. package/.medusa/server/src/modules/commission/migrations/Migration20260615120000.d.ts +5 -0
  301. package/.medusa/server/src/modules/commission/migrations/Migration20260615120000.js +46 -0
  302. package/.medusa/server/src/modules/commission/models/commission-line.d.ts +2 -1
  303. package/.medusa/server/src/modules/commission/models/commission-line.js +3 -2
  304. package/.medusa/server/src/modules/commission/models/commission-rate-value.d.ts +25 -0
  305. package/.medusa/server/src/modules/commission/models/commission-rate-value.js +17 -0
  306. package/.medusa/server/src/modules/commission/models/commission-rate.d.ts +9 -4
  307. package/.medusa/server/src/modules/commission/models/commission-rate.js +9 -6
  308. package/.medusa/server/src/modules/commission/models/commission-rule.d.ts +8 -3
  309. package/.medusa/server/src/modules/commission/models/index.d.ts +1 -0
  310. package/.medusa/server/src/modules/commission/models/index.js +4 -2
  311. package/.medusa/server/src/modules/commission/service.d.ts +170 -10
  312. package/.medusa/server/src/modules/commission/service.js +270 -114
  313. package/.medusa/server/src/modules/media/index.d.ts +21 -0
  314. package/.medusa/server/src/modules/media/index.js +12 -0
  315. package/.medusa/server/src/modules/media/migrations/Migration20260616000000.d.ts +5 -0
  316. package/.medusa/server/src/modules/media/migrations/Migration20260616000000.js +16 -0
  317. package/.medusa/server/src/modules/media/models/index.d.ts +1 -0
  318. package/.medusa/server/src/modules/media/models/index.js +9 -0
  319. package/.medusa/server/src/modules/media/models/media-image.d.ts +32 -0
  320. package/.medusa/server/src/modules/media/models/media-image.js +41 -0
  321. package/.medusa/server/src/modules/media/service.d.ts +17 -0
  322. package/.medusa/server/src/modules/media/service.js +10 -0
  323. package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.d.ts +5 -0
  324. package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.js +16 -0
  325. package/.medusa/server/src/modules/offer/models/offer.d.ts +2 -0
  326. package/.medusa/server/src/modules/offer/models/offer.js +8 -1
  327. package/.medusa/server/src/modules/offer/service.d.ts +10 -0
  328. package/.medusa/server/src/modules/offer/service.js +100 -1
  329. package/.medusa/server/src/modules/product-attribute/migrations/Migration20260601000002.d.ts +14 -0
  330. package/.medusa/server/src/modules/product-attribute/migrations/Migration20260601000002.js +31 -0
  331. package/.medusa/server/src/modules/product-attribute/models/product-attribute-value.d.ts +2 -0
  332. package/.medusa/server/src/modules/product-attribute/models/product-attribute-value.js +2 -1
  333. package/.medusa/server/src/modules/product-attribute/models/product-attribute.d.ts +2 -0
  334. package/.medusa/server/src/modules/product-attribute/models/product-attribute.js +2 -1
  335. package/.medusa/server/src/modules/product-attribute/service.d.ts +18 -3
  336. package/.medusa/server/src/modules/product-attribute/service.js +213 -1
  337. package/.medusa/server/src/modules/search/abstract-search-provider.d.ts +9 -0
  338. package/.medusa/server/src/modules/search/abstract-search-provider.js +20 -0
  339. package/.medusa/server/src/modules/search/index.d.ts +10 -0
  340. package/.medusa/server/src/modules/search/index.js +31 -0
  341. package/.medusa/server/src/modules/search/lib/build-docs.d.ts +84 -0
  342. package/.medusa/server/src/modules/search/lib/build-docs.js +207 -0
  343. package/.medusa/server/src/modules/search/lib/reindex.d.ts +7 -0
  344. package/.medusa/server/src/modules/search/lib/reindex.js +61 -0
  345. package/.medusa/server/src/modules/search/lib/sync.d.ts +9 -0
  346. package/.medusa/server/src/modules/search/lib/sync.js +73 -0
  347. package/.medusa/server/src/modules/search/loaders/providers.d.ts +5 -0
  348. package/.medusa/server/src/modules/search/loaders/providers.js +26 -0
  349. package/.medusa/server/src/modules/search/providers/index.d.ts +1 -0
  350. package/.medusa/server/src/modules/search/providers/index.js +6 -0
  351. package/.medusa/server/src/modules/search/providers/orama/index.d.ts +4 -0
  352. package/.medusa/server/src/modules/search/providers/orama/index.js +12 -0
  353. package/.medusa/server/src/modules/search/providers/orama/service.d.ts +19 -0
  354. package/.medusa/server/src/modules/search/providers/orama/service.js +148 -0
  355. package/.medusa/server/src/modules/search/providers/orama/types.d.ts +10 -0
  356. package/.medusa/server/src/modules/search/providers/orama/types.js +3 -0
  357. package/.medusa/server/src/modules/search/services/index.d.ts +2 -0
  358. package/.medusa/server/src/modules/search/services/index.js +24 -0
  359. package/.medusa/server/src/modules/search/services/search-module-service.d.ts +25 -0
  360. package/.medusa/server/src/modules/search/services/search-module-service.js +60 -0
  361. package/.medusa/server/src/modules/search/services/search-provider-service.d.ts +15 -0
  362. package/.medusa/server/src/modules/search/services/search-provider-service.js +30 -0
  363. package/.medusa/server/src/modules/seller/migrations/Migration20260616120000.d.ts +5 -0
  364. package/.medusa/server/src/modules/seller/migrations/Migration20260616120000.js +16 -0
  365. package/.medusa/server/src/modules/seller/models/address.d.ts +2 -2
  366. package/.medusa/server/src/modules/seller/models/member-invite.d.ts +2 -2
  367. package/.medusa/server/src/modules/seller/models/member.d.ts +2 -2
  368. package/.medusa/server/src/modules/seller/models/payment-details.d.ts +2 -2
  369. package/.medusa/server/src/modules/seller/models/payment-details.js +3 -3
  370. package/.medusa/server/src/modules/seller/models/professional-details.d.ts +2 -2
  371. package/.medusa/server/src/modules/seller/models/seller-member.d.ts +4 -4
  372. package/.medusa/server/src/modules/seller/models/seller.d.ts +2 -2
  373. package/.medusa/server/src/modules/seller/repositories/order-group.js +1 -11
  374. package/.medusa/server/src/modules/seller/service.d.ts +16 -16
  375. package/.medusa/server/src/modules/seller/service.js +1 -2
  376. package/.medusa/server/src/subscribers/order-edit-confirmed.d.ts +9 -2
  377. package/.medusa/server/src/subscribers/order-edit-confirmed.js +18 -6
  378. package/.medusa/server/src/subscribers/search-offer-changed.d.ts +6 -0
  379. package/.medusa/server/src/subscribers/search-offer-changed.js +34 -0
  380. package/.medusa/server/src/subscribers/search-product-changed.d.ts +5 -0
  381. package/.medusa/server/src/subscribers/search-product-changed.js +29 -0
  382. package/.medusa/server/src/subscribers/search-product-deleted.d.ts +5 -0
  383. package/.medusa/server/src/subscribers/search-product-deleted.js +23 -0
  384. package/.medusa/server/src/subscribers/search-reindex.d.ts +3 -0
  385. package/.medusa/server/src/subscribers/search-reindex.js +23 -0
  386. package/.medusa/server/src/subscribers/search-seller-changed.d.ts +5 -0
  387. package/.medusa/server/src/subscribers/search-seller-changed.js +44 -0
  388. package/.medusa/server/src/utils/dashboard/dashboard-base.js +6 -2
  389. package/.medusa/server/src/utils/disable-medusa-middlewares.js +7 -1
  390. package/.medusa/server/src/workflows/cart/hooks/validate.js +1 -12
  391. package/.medusa/server/src/workflows/cart/steps/prepare-adjustments-from-promotion-actions.js +3 -5
  392. package/.medusa/server/src/workflows/cart/utils/fields.js +1 -13
  393. package/.medusa/server/src/workflows/cart/utils/prepare-line-item-data.js +1 -3
  394. package/.medusa/server/src/workflows/cart/workflows/add-seller-shipping-method-to-cart.js +1 -2
  395. package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +1 -24
  396. package/.medusa/server/src/workflows/cart/workflows/list-seller-shipping-options-for-cart.d.ts +2 -2
  397. package/.medusa/server/src/workflows/cart/workflows/list-seller-shipping-options-for-cart.js +1 -2
  398. package/.medusa/server/src/workflows/commission/steps/create-commission-rates.d.ts +1 -28
  399. package/.medusa/server/src/workflows/commission/steps/create-commission-rules.d.ts +13 -4
  400. package/.medusa/server/src/workflows/commission/steps/index.d.ts +1 -0
  401. package/.medusa/server/src/workflows/commission/steps/index.js +2 -1
  402. package/.medusa/server/src/workflows/commission/steps/update-commission-rates.d.ts +13 -4
  403. package/.medusa/server/src/workflows/commission/steps/update-commission-rules.d.ts +13 -4
  404. package/.medusa/server/src/workflows/commission/steps/upsert-commission-lines.d.ts +2 -2
  405. package/.medusa/server/src/workflows/commission/steps/upsert-commission-lines.js +1 -1
  406. package/.medusa/server/src/workflows/commission/steps/validate-commission-rates-deletable.d.ts +2 -0
  407. package/.medusa/server/src/workflows/commission/steps/validate-commission-rates-deletable.js +19 -0
  408. package/.medusa/server/src/workflows/commission/workflows/create-commission-rates.d.ts +1 -28
  409. package/.medusa/server/src/workflows/commission/workflows/delete-commission-rates.d.ts +1 -2
  410. package/.medusa/server/src/workflows/commission/workflows/delete-commission-rates.js +3 -1
  411. package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.js +2 -1
  412. package/.medusa/server/src/workflows/commission/workflows/update-commission-rates.d.ts +13 -4
  413. package/.medusa/server/src/workflows/customer-group/index.d.ts +2 -0
  414. package/.medusa/server/src/workflows/customer-group/index.js +19 -0
  415. package/.medusa/server/src/workflows/customer-group/steps/index.d.ts +1 -0
  416. package/.medusa/server/src/workflows/customer-group/steps/index.js +18 -0
  417. package/.medusa/server/src/workflows/customer-group/steps/link-seller-customer-group.d.ts +6 -0
  418. package/.medusa/server/src/workflows/customer-group/steps/link-seller-customer-group.js +38 -0
  419. package/.medusa/server/src/workflows/customer-group/workflows/create-seller-customer-groups.d.ts +7 -0
  420. package/.medusa/server/src/workflows/customer-group/workflows/create-seller-customer-groups.js +20 -0
  421. package/.medusa/server/src/workflows/customer-group/workflows/index.d.ts +1 -0
  422. package/.medusa/server/src/workflows/customer-group/workflows/index.js +18 -0
  423. package/.medusa/server/src/workflows/index.d.ts +2 -0
  424. package/.medusa/server/src/workflows/index.js +3 -1
  425. package/.medusa/server/src/workflows/media/index.d.ts +2 -0
  426. package/.medusa/server/src/workflows/media/index.js +19 -0
  427. package/.medusa/server/src/workflows/media/steps/create-images.d.ts +20 -0
  428. package/.medusa/server/src/workflows/media/steps/create-images.js +21 -0
  429. package/.medusa/server/src/workflows/media/steps/delete-images.d.ts +3 -0
  430. package/.medusa/server/src/workflows/media/steps/delete-images.js +21 -0
  431. package/.medusa/server/src/workflows/media/steps/index.d.ts +2 -0
  432. package/.medusa/server/src/workflows/media/steps/index.js +19 -0
  433. package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.d.ts +8 -0
  434. package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.js +23 -0
  435. package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.d.ts +8 -0
  436. package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.js +23 -0
  437. package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.d.ts +5 -0
  438. package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.js +21 -0
  439. package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.d.ts +5 -0
  440. package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.js +21 -0
  441. package/.medusa/server/src/workflows/media/workflows/index.d.ts +8 -0
  442. package/.medusa/server/src/workflows/media/workflows/index.js +25 -0
  443. package/.medusa/server/src/workflows/media/workflows/set-category-images.d.ts +13 -0
  444. package/.medusa/server/src/workflows/media/workflows/set-category-images.js +71 -0
  445. package/.medusa/server/src/workflows/media/workflows/set-collection-images.d.ts +13 -0
  446. package/.medusa/server/src/workflows/media/workflows/set-collection-images.js +71 -0
  447. package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.d.ts +9 -0
  448. package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.js +22 -0
  449. package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.d.ts +9 -0
  450. package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.js +22 -0
  451. package/.medusa/server/src/workflows/offer/steps/add-offer-prices.d.ts +0 -12
  452. package/.medusa/server/src/workflows/offer/steps/add-offer-prices.js +1 -16
  453. package/.medusa/server/src/workflows/offer/steps/create-offers.d.ts +2 -0
  454. package/.medusa/server/src/workflows/offer/steps/ensure-variant-price-sets.d.ts +0 -9
  455. package/.medusa/server/src/workflows/offer/steps/ensure-variant-price-sets.js +1 -10
  456. package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +2 -5
  457. package/.medusa/server/src/workflows/offer/steps/update-offers.js +1 -1
  458. package/.medusa/server/src/workflows/offer/utils/assert-offer-price-ownership.d.ts +0 -11
  459. package/.medusa/server/src/workflows/offer/utils/assert-offer-price-ownership.js +1 -12
  460. package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.d.ts +0 -10
  461. package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.js +1 -19
  462. package/.medusa/server/src/workflows/offer/workflows/create-offers.js +4 -16
  463. package/.medusa/server/src/workflows/offer/workflows/delete-offers.js +7 -2
  464. package/.medusa/server/src/workflows/offer/workflows/update-offers.d.ts +0 -11
  465. package/.medusa/server/src/workflows/offer/workflows/update-offers.js +2 -23
  466. package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.d.ts +1 -2
  467. package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.js +1 -2
  468. package/.medusa/server/src/workflows/order/workflows/confirm-claim-request.js +1 -3
  469. package/.medusa/server/src/workflows/order/workflows/confirm-exchange-request.js +1 -8
  470. package/.medusa/server/src/workflows/order/workflows/confirm-order-edit-request.d.ts +7 -0
  471. package/.medusa/server/src/workflows/order/workflows/confirm-order-edit-request.js +165 -0
  472. package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.js +1 -9
  473. package/.medusa/server/src/workflows/order/workflows/create-order-fulfillment.js +2 -3
  474. package/.medusa/server/src/workflows/order/workflows/index.d.ts +1 -0
  475. package/.medusa/server/src/workflows/order/workflows/index.js +2 -1
  476. package/.medusa/server/src/workflows/order-group/utils/aggregate-status.js +1 -7
  477. package/.medusa/server/src/workflows/order-group/workflows/get-order-groups-list.d.ts +1 -0
  478. package/.medusa/server/src/workflows/order-group/workflows/get-order-groups-list.js +11 -2
  479. package/.medusa/server/src/workflows/payout/workflows/create-payout.js +34 -21
  480. package/.medusa/server/src/workflows/product/events.d.ts +0 -6
  481. package/.medusa/server/src/workflows/product/events.js +1 -7
  482. package/.medusa/server/src/workflows/product/steps/index.d.ts +0 -2
  483. package/.medusa/server/src/workflows/product/steps/index.js +1 -3
  484. package/.medusa/server/src/workflows/product/steps/validate-products-status.d.ts +0 -8
  485. package/.medusa/server/src/workflows/product/steps/validate-products-status.js +1 -9
  486. package/.medusa/server/src/workflows/product/steps/validate-seller-product-permissions.js +1 -3
  487. package/.medusa/server/src/workflows/product/workflows/confirm-products.d.ts +0 -16
  488. package/.medusa/server/src/workflows/product/workflows/confirm-products.js +1 -13
  489. package/.medusa/server/src/workflows/product/workflows/create-products.d.ts +4 -52
  490. package/.medusa/server/src/workflows/product/workflows/create-products.js +69 -158
  491. package/.medusa/server/src/workflows/product/workflows/index.d.ts +0 -1
  492. package/.medusa/server/src/workflows/product/workflows/index.js +1 -2
  493. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.d.ts +0 -7
  494. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.js +1 -1
  495. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.d.ts +0 -7
  496. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.js +1 -1
  497. package/.medusa/server/src/workflows/product/workflows/reject-product.d.ts +0 -7
  498. package/.medusa/server/src/workflows/product/workflows/reject-product.js +1 -8
  499. package/.medusa/server/src/workflows/product/workflows/request-product-change.d.ts +0 -14
  500. package/.medusa/server/src/workflows/product/workflows/request-product-change.js +1 -15
  501. package/.medusa/server/src/workflows/product-attribute/events.d.ts +0 -9
  502. package/.medusa/server/src/workflows/product-attribute/events.js +1 -10
  503. package/.medusa/server/src/workflows/product-attribute/steps/create-product-attribute-values.d.ts +1 -31
  504. package/.medusa/server/src/workflows/product-attribute/steps/create-product-attributes.d.ts +1 -41
  505. package/.medusa/server/src/workflows/product-attribute/steps/create-product-attributes.js +1 -1
  506. package/.medusa/server/src/workflows/product-attribute/steps/detach-product-option-values-from-product.d.ts +14 -0
  507. package/.medusa/server/src/workflows/product-attribute/steps/detach-product-option-values-from-product.js +40 -0
  508. package/.medusa/server/src/workflows/product-attribute/steps/index.d.ts +3 -4
  509. package/.medusa/server/src/workflows/product-attribute/steps/index.js +4 -5
  510. package/.medusa/server/src/workflows/product-attribute/steps/update-product-attribute-values.d.ts +6 -3
  511. package/.medusa/server/src/workflows/product-attribute/steps/update-product-attribute-values.js +17 -2
  512. package/.medusa/server/src/workflows/product-attribute/steps/update-product-attributes.d.ts +1 -31
  513. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-linked.d.ts +2 -0
  514. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-linked.js +28 -0
  515. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-required.d.ts +7 -0
  516. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attributes-not-required.js +16 -0
  517. package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attributes-to-product.d.ts +9 -0
  518. package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attributes-to-product.js +242 -0
  519. package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-product-attributes.d.ts +14 -0
  520. package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-product-attributes.js +27 -0
  521. package/.medusa/server/src/workflows/product-attribute/workflows/create-product-attribute-values.js +44 -3
  522. package/.medusa/server/src/workflows/product-attribute/workflows/create-product-attributes.js +41 -17
  523. package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attribute-values.js +36 -15
  524. package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attributes.d.ts +0 -7
  525. package/.medusa/server/src/workflows/product-attribute/workflows/delete-product-attributes.js +11 -8
  526. package/.medusa/server/src/workflows/product-attribute/workflows/index.d.ts +4 -6
  527. package/.medusa/server/src/workflows/product-attribute/workflows/index.js +5 -7
  528. package/.medusa/server/src/workflows/product-attribute/workflows/remove-product-attributes-from-product.d.ts +10 -0
  529. package/.medusa/server/src/workflows/product-attribute/workflows/remove-product-attributes-from-product.js +83 -0
  530. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute-values.js +34 -1
  531. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes-on-product.d.ts +11 -0
  532. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes-on-product.js +285 -0
  533. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attributes.js +15 -1
  534. package/.medusa/server/src/workflows/product-attribute/workflows/upsert-product-attribute-values.d.ts +4 -11
  535. package/.medusa/server/src/workflows/product-attribute/workflows/upsert-product-attribute-values.js +19 -19
  536. package/.medusa/server/src/workflows/product-edit/events.d.ts +0 -7
  537. package/.medusa/server/src/workflows/product-edit/events.js +1 -8
  538. package/.medusa/server/src/workflows/product-edit/steps/apply-variant-image-links.d.ts +16 -0
  539. package/.medusa/server/src/workflows/product-edit/steps/apply-variant-image-links.js +35 -0
  540. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-change-validation.d.ts +0 -4
  541. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-change-validation.js +1 -5
  542. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.d.ts +0 -6
  543. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.js +1 -7
  544. package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.d.ts +0 -5
  545. package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.js +1 -6
  546. package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.d.ts +0 -6
  547. package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.js +1 -1
  548. package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.d.ts +0 -5
  549. package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.js +1 -6
  550. package/.medusa/server/src/workflows/product-edit/steps/index.d.ts +1 -0
  551. package/.medusa/server/src/workflows/product-edit/steps/index.js +2 -1
  552. package/.medusa/server/src/workflows/product-edit/steps/update-product-change-actions.d.ts +0 -5
  553. package/.medusa/server/src/workflows/product-edit/steps/update-product-change-actions.js +1 -6
  554. package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.d.ts +0 -6
  555. package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.js +2 -8
  556. package/.medusa/server/src/workflows/product-edit/workflows/apply-product-attribute-change-actions.d.ts +5 -19
  557. package/.medusa/server/src/workflows/product-edit/workflows/apply-product-attribute-change-actions.js +11 -128
  558. package/.medusa/server/src/workflows/product-edit/workflows/apply-product-change-actions.d.ts +0 -31
  559. package/.medusa/server/src/workflows/product-edit/workflows/apply-product-change-actions.js +43 -50
  560. package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.d.ts +1 -9
  561. package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.js +3 -11
  562. package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-change.d.ts +0 -11
  563. package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-change.js +1 -12
  564. package/.medusa/server/src/workflows/product-edit/workflows/index.d.ts +1 -1
  565. package/.medusa/server/src/workflows/product-edit/workflows/index.js +2 -2
  566. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.d.ts +0 -7
  567. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.js +10 -9
  568. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-attributes.d.ts +4 -46
  569. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-attributes.js +11 -162
  570. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-product.d.ts +11 -0
  571. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-product.js +133 -0
  572. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variants.d.ts +0 -10
  573. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variants.js +71 -17
  574. package/.medusa/server/src/workflows/product-edit/workflows/record-product-audit-change.d.ts +0 -24
  575. package/.medusa/server/src/workflows/product-edit/workflows/record-product-audit-change.js +1 -15
  576. package/.medusa/server/src/workflows/product-edit/workflows/stage-product-change.d.ts +1 -25
  577. package/.medusa/server/src/workflows/product-edit/workflows/stage-product-change.js +2 -15
  578. package/.medusa/server/src/workflows/promotion/steps/register-usage.d.ts +0 -3
  579. package/.medusa/server/src/workflows/promotion/steps/register-usage.js +1 -4
  580. package/.medusa/server/src/workflows/seller/steps/create-seller-member.d.ts +4 -4
  581. package/.medusa/server/src/workflows/seller/steps/update-member.d.ts +2 -2
  582. package/.medusa/server/src/workflows/seller/steps/update-seller-member.d.ts +4 -4
  583. package/.medusa/server/src/workflows/seller/workflows/accept-member-invite.js +1 -2
  584. package/.medusa/server/src/workflows/seller/workflows/add-seller-member.d.ts +4 -4
  585. package/.medusa/server/src/workflows/seller/workflows/create-sellers.js +1 -2
  586. package/.medusa/server/src/workflows/seller/workflows/update-member.d.ts +2 -2
  587. package/package.json +19 -18
  588. package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.d.ts +0 -13
  589. package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.js +0 -90
  590. package/.medusa/server/src/api/admin/products/[id]/attributes/route.d.ts +0 -5
  591. package/.medusa/server/src/api/admin/products/[id]/attributes/route.js +0 -63
  592. package/.medusa/server/src/api/vendor/orders/apply-request-filter.d.ts +0 -2
  593. package/.medusa/server/src/api/vendor/orders/apply-request-filter.js +0 -99
  594. package/.medusa/server/src/api/vendor/payment-collections/[id]/mark-as-paid/route.d.ts +0 -3
  595. package/.medusa/server/src/api/vendor/payment-collections/[id]/mark-as-paid/route.js +0 -25
  596. package/.medusa/server/src/api/vendor/payment-collections/helpers.d.ts +0 -3
  597. package/.medusa/server/src/api/vendor/payment-collections/helpers.js +0 -30
  598. package/.medusa/server/src/api/vendor/payment-collections/middlewares.d.ts +0 -2
  599. package/.medusa/server/src/api/vendor/payment-collections/middlewares.js +0 -17
  600. package/.medusa/server/src/api/vendor/payment-collections/query-config.d.ts +0 -7
  601. package/.medusa/server/src/api/vendor/payment-collections/query-config.js +0 -26
  602. package/.medusa/server/src/api/vendor/payment-collections/validators.d.ts +0 -17
  603. package/.medusa/server/src/api/vendor/payment-collections/validators.js +0 -12
  604. package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.d.ts +0 -22
  605. package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.js +0 -97
  606. package/.medusa/server/src/api/vendor/products/[id]/attributes/route.d.ts +0 -15
  607. package/.medusa/server/src/api/vendor/products/[id]/attributes/route.js +0 -80
  608. package/.medusa/server/src/links/line-item-commission-line-link.js +0 -21
  609. package/.medusa/server/src/links/product-attribute-value-link.d.ts +0 -22
  610. package/.medusa/server/src/links/product-attribute-value-link.js +0 -46
  611. package/.medusa/server/src/links/product-variant-attribute-link.js +0 -21
  612. package/.medusa/server/src/links/product-variant-attribute-value-link.js +0 -21
  613. package/.medusa/server/src/workflows/product/steps/replace-product-attribute-value-links.d.ts +0 -28
  614. package/.medusa/server/src/workflows/product/steps/replace-product-attribute-value-links.js +0 -72
  615. package/.medusa/server/src/workflows/product/steps/resolve-attribute-refs.d.ts +0 -90
  616. package/.medusa/server/src/workflows/product/steps/resolve-attribute-refs.js +0 -185
  617. package/.medusa/server/src/workflows/product/workflows/update-products.d.ts +0 -39
  618. package/.medusa/server/src/workflows/product/workflows/update-products.js +0 -161
  619. package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-attribute-values.d.ts +0 -43
  620. package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-attribute-values.js +0 -51
  621. package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-options-for-axis.d.ts +0 -7
  622. package/.medusa/server/src/workflows/product-attribute/steps/upsert-product-options-for-axis.js +0 -59
  623. package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-accepts-values.d.ts +0 -6
  624. package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-accepts-values.js +0 -20
  625. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attribute-input.d.ts +0 -7
  626. package/.medusa/server/src/workflows/product-attribute/steps/validate-product-attribute-input.js +0 -20
  627. package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attribute.d.ts +0 -52
  628. package/.medusa/server/src/workflows/product-attribute/workflows/add-product-attribute.js +0 -120
  629. package/.medusa/server/src/workflows/product-attribute/workflows/batch-product-attribute-values.d.ts +0 -23
  630. package/.medusa/server/src/workflows/product-attribute/workflows/batch-product-attribute-values.js +0 -252
  631. package/.medusa/server/src/workflows/product-attribute/workflows/detach-product-attribute.d.ts +0 -17
  632. package/.medusa/server/src/workflows/product-attribute/workflows/detach-product-attribute.js +0 -62
  633. package/.medusa/server/src/workflows/product-attribute/workflows/materialize-product-attributes.d.ts +0 -135
  634. package/.medusa/server/src/workflows/product-attribute/workflows/materialize-product-attributes.js +0 -43
  635. package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-options.d.ts +0 -24
  636. package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-options.js +0 -27
  637. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute.d.ts +0 -23
  638. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-attribute.js +0 -67
  639. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.d.ts +0 -25
  640. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.js +0 -148
  641. /package/.medusa/server/src/links/{line-item-commission-line-link.d.ts → offer-product-link.d.ts} +0 -0
  642. /package/.medusa/server/src/links/{product-variant-attribute-link.d.ts → seller-customer-group-link.d.ts} +0 -0
@@ -13,11 +13,23 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const utils_1 = require("@medusajs/framework/utils");
16
+ const postgresql_1 = require("@medusajs/framework/mikro-orm/postgresql");
16
17
  const types_1 = require("@mercurjs/types");
17
18
  const models_1 = require("./models");
19
+ /** Build a unique, URL-safe code from a rate name. */
20
+ const generateCommissionCode = (name) => {
21
+ const slug = (name ?? "")
22
+ .toLowerCase()
23
+ .trim()
24
+ .replace(/[^a-z0-9]+/g, "-")
25
+ .replace(/^-+|-+$/g, "");
26
+ const suffix = Math.random().toString(36).slice(2, 8);
27
+ return `${slug || "commission-rule"}-${suffix}`;
28
+ };
18
29
  class CommissionModuleService extends (0, utils_1.MedusaService)({
19
30
  CommissionRate: models_1.CommissionRate,
20
31
  CommissionRule: models_1.CommissionRule,
32
+ CommissionRateValue: models_1.CommissionRateValue,
21
33
  CommissionLine: models_1.CommissionLine,
22
34
  }) {
23
35
  constructor({ commissionLineService, baseRepository }) {
@@ -25,145 +37,262 @@ class CommissionModuleService extends (0, utils_1.MedusaService)({
25
37
  this.commissionLineService_ = commissionLineService;
26
38
  this.baseRepository_ = baseRepository;
27
39
  }
40
+ /**
41
+ * Does a single rule match a product?
42
+ */
43
+ ruleMatchesProduct(rule, product) {
44
+ if (!product) {
45
+ return false;
46
+ }
47
+ switch (rule.reference) {
48
+ case "product":
49
+ return product.id === rule.reference_id;
50
+ case "product_type":
51
+ return product.type_id === rule.reference_id;
52
+ case "product_collection":
53
+ return product.collection_id === rule.reference_id;
54
+ case "product_category":
55
+ return (product.categories?.some((cat) => cat.id === rule.reference_id) ??
56
+ false);
57
+ case "seller":
58
+ return product.seller?.id === rule.reference_id;
59
+ default:
60
+ return false;
61
+ }
62
+ }
63
+ /**
64
+ * A rate matches an item when **every** present dimension group (rules
65
+ * grouped by `reference`) has at least one matching rule
66
+ * (AND-across-dimension, OR-within-dimension). A rule-less rate is the
67
+ * default and matches everything.
68
+ */
69
+ rateMatchesItem(rate, item) {
70
+ const rules = (rate.rules ?? []);
71
+ if (rules.length === 0) {
72
+ return true;
73
+ }
74
+ const groups = new Map();
75
+ for (const rule of rules) {
76
+ const bucket = groups.get(rule.reference) ?? [];
77
+ bucket.push(rule);
78
+ groups.set(rule.reference, bucket);
79
+ }
80
+ for (const groupRules of groups.values()) {
81
+ if (!groupRules.some((rule) => this.ruleMatchesProduct(rule, item.product))) {
82
+ return false;
83
+ }
84
+ }
85
+ return true;
86
+ }
87
+ /**
88
+ * Specificity = number of distinct dimension groups a rate scopes on.
89
+ * More dimensions → higher specificity → wins the tie-break.
90
+ */
91
+ rateSpecificity(rate) {
92
+ return new Set((rate.rules ?? []).map((rule) => rule.reference)).size;
93
+ }
94
+ /**
95
+ * Resolve the commission amount + line `rate` for a base amount.
96
+ * Percentage uses the scalar `value`; Fixed reads the per-currency
97
+ * `values` (falling back to the legacy single `value`).
98
+ */
99
+ computeCommission(rate, baseAmount, currencyCode) {
100
+ if (rate.type === types_1.CommissionRateType.PERCENTAGE) {
101
+ const amount = utils_1.MathBN.div(utils_1.MathBN.mult(baseAmount, rate.value), 100);
102
+ return {
103
+ rate: utils_1.MathBN.convert(rate.value).toNumber(),
104
+ amount: utils_1.MathBN.convert(amount).toNumber(),
105
+ };
106
+ }
107
+ const perCurrency = (rate.values ?? []).find((value) => value.currency_code === currencyCode);
108
+ const fixed = perCurrency ? perCurrency.amount : rate.value;
109
+ return {
110
+ rate: utils_1.MathBN.convert(fixed).toNumber(),
111
+ amount: utils_1.MathBN.convert(fixed).toNumber(),
112
+ };
113
+ }
28
114
  async getCommissionLines(context, sharedContext = {}) {
29
115
  const commissionLines = [];
30
116
  const { items = [], shipping_methods = [], currency_code } = context;
31
- // Get all enabled commission rates with their rules, ordered by priority DESC
32
- const commissionRates = await this.listCommissionRates({ is_enabled: true }, { relations: ["rules"], order: { priority: "DESC" } }, sharedContext);
33
- // Separate rates by target
34
- const itemRates = commissionRates.filter((rate) => rate.target === types_1.CommissionRateTarget.ITEM);
35
- const shippingRates = commissionRates.filter((rate) => rate.target === types_1.CommissionRateTarget.SHIPPING);
36
- // Process each item
117
+ // Load all enabled rates with their rules + per-currency values,
118
+ // oldest first (created_at ASC) so it is the deterministic tie-break.
119
+ const commissionRates = (await this.listCommissionRates({ is_enabled: true }, { relations: ["rules", "values"], order: { created_at: "ASC" } }, sharedContext));
120
+ // Legacy single-currency rates only apply to their currency; rates
121
+ // without a currency_code apply to any currency.
122
+ const applicableRates = commissionRates.filter((rate) => !rate.currency_code || rate.currency_code === currency_code);
123
+ // The Global Commission: the is_default rate (fallback: any rule-less rate).
124
+ const defaultRate = applicableRates.find((rate) => rate.is_default) ??
125
+ applicableRates.find((rate) => (rate.rules ?? []).length === 0);
126
+ // Item lines — match per item, most-specific rate wins.
37
127
  for (const item of items) {
38
- const product = item.product;
39
- let matchedRate = null;
40
- // Find matching rate based on rules (priority order)
41
- for (const rate of itemRates) {
42
- // Check currency code match if specified
43
- if (rate.currency_code && rate.currency_code !== currency_code) {
44
- continue;
45
- }
46
- // If no rules, this is a default rate
47
- if (!rate.rules || rate.rules.length === 0) {
48
- matchedRate = rate;
49
- break;
50
- }
51
- // Check if any rule matches
52
- const ruleMatches = rate.rules.some((rule) => {
53
- if (!product)
54
- return false;
55
- switch (rule.reference) {
56
- case "product":
57
- return product.id === rule.reference_id;
58
- case "product_type":
59
- return product.type_id === rule.reference_id;
60
- case "product_collection":
61
- return product.collection_id === rule.reference_id;
62
- case "product_category":
63
- return product.categories?.some((cat) => cat.id === rule.reference_id) ?? false;
64
- case "seller":
65
- return product.seller?.id === rule.reference_id;
66
- default:
67
- return false;
68
- }
69
- });
70
- if (ruleMatches) {
71
- matchedRate = rate;
72
- break;
73
- }
74
- }
75
- if (!matchedRate) {
128
+ const candidates = applicableRates.filter((rate) => this.rateMatchesItem(rate, item));
129
+ if (!candidates.length) {
76
130
  continue;
77
131
  }
78
- // Calculate base amount (include tax if specified)
132
+ candidates.sort((a, b) => {
133
+ const specificityDiff = this.rateSpecificity(b) - this.rateSpecificity(a);
134
+ if (specificityDiff !== 0) {
135
+ return specificityDiff;
136
+ }
137
+ return (new Date(a.created_at).getTime() - new Date(b.created_at).getTime());
138
+ });
139
+ const matchedRate = candidates[0];
79
140
  let baseAmount = item.subtotal;
80
141
  if (matchedRate.include_tax && item.tax_total) {
81
142
  baseAmount = utils_1.MathBN.add(item.subtotal, item.tax_total);
82
143
  }
83
- // Calculate commission amount using MathBN
84
- let amount;
85
- if (matchedRate.type === types_1.CommissionRateType.PERCENTAGE) {
86
- amount = utils_1.MathBN.div(utils_1.MathBN.mult(baseAmount, matchedRate.value), 100);
87
- }
88
- else {
89
- amount = matchedRate.value;
90
- }
91
- // Apply minimum commission if set
92
- if (matchedRate.min_amount !== null && utils_1.MathBN.lt(amount, matchedRate.min_amount)) {
93
- amount = matchedRate.min_amount;
94
- }
144
+ const { rate, amount } = this.computeCommission(matchedRate, baseAmount, currency_code);
95
145
  commissionLines.push({
96
146
  item_id: item.id,
147
+ shipping_method_id: null,
97
148
  code: matchedRate.code,
98
- rate: matchedRate.value,
99
- amount: utils_1.MathBN.convert(amount).toNumber(),
149
+ rate,
150
+ amount,
100
151
  commission_rate_id: matchedRate.id,
101
152
  });
102
153
  }
103
- // Process shipping methods
104
- for (const shippingMethod of shipping_methods) {
105
- let matchedRate = null;
106
- for (const rate of shippingRates) {
107
- // Check currency code match if specified
108
- if (rate.currency_code && rate.currency_code !== currency_code) {
109
- continue;
154
+ // Shipping lines — one per shipping method, governed by the global
155
+ // rate, only when its include_shipping is on (resolved independently
156
+ // of the items the method ships).
157
+ if (defaultRate?.include_shipping) {
158
+ for (const shippingMethod of shipping_methods) {
159
+ let baseAmount = shippingMethod.subtotal;
160
+ if (defaultRate.include_tax && shippingMethod.tax_total) {
161
+ baseAmount = utils_1.MathBN.add(shippingMethod.subtotal, shippingMethod.tax_total);
110
162
  }
111
- // If no rules, this is a default rate
112
- if (!rate.rules || rate.rules.length === 0) {
113
- matchedRate = rate;
114
- break;
115
- }
116
- // Check if any rule matches shipping option
117
- const ruleMatches = rate.rules.some((rule) => {
118
- if (!shippingMethod.shipping_option)
119
- return false;
120
- switch (rule.reference) {
121
- case "shipping_option_type":
122
- return shippingMethod.shipping_option.shipping_option_type_id === rule.reference_id;
123
- default:
124
- return false;
125
- }
163
+ const { rate, amount } = this.computeCommission(defaultRate, baseAmount, currency_code);
164
+ commissionLines.push({
165
+ item_id: null,
166
+ shipping_method_id: shippingMethod.id,
167
+ code: defaultRate.code,
168
+ rate,
169
+ amount,
170
+ commission_rate_id: defaultRate.id,
171
+ description: "Shipping Commission",
126
172
  });
127
- if (ruleMatches) {
128
- matchedRate = rate;
129
- break;
130
- }
131
- }
132
- if (!matchedRate) {
133
- continue;
134
- }
135
- // Calculate base amount (include tax if specified)
136
- let baseAmount = shippingMethod.subtotal;
137
- if (matchedRate.include_tax && shippingMethod.tax_total) {
138
- baseAmount = utils_1.MathBN.add(shippingMethod.subtotal, shippingMethod.tax_total);
139
- }
140
- // Calculate commission amount using MathBN
141
- let amount;
142
- if (matchedRate.type === types_1.CommissionRateType.PERCENTAGE) {
143
- amount = utils_1.MathBN.div(utils_1.MathBN.mult(baseAmount, matchedRate.value), 100);
144
- }
145
- else {
146
- amount = matchedRate.value;
147
173
  }
148
- // Apply minimum commission if set
149
- if (matchedRate.min_amount !== null && utils_1.MathBN.lt(amount, matchedRate.min_amount)) {
150
- amount = matchedRate.min_amount;
151
- }
152
- commissionLines.push({
153
- item_id: shippingMethod.id,
154
- code: matchedRate.code,
155
- rate: matchedRate.value,
156
- commission_rate_id: matchedRate.id,
157
- description: `Shipping Commission`,
158
- amount: utils_1.MathBN.convert(amount).toNumber(),
159
- });
160
174
  }
161
175
  return commissionLines;
162
176
  }
177
+ /**
178
+ * Overrides the auto-generated upsert with idempotent **replace**
179
+ * semantics keyed on the line's anchor (item_id / shipping_method_id):
180
+ * delete any existing lines for the incoming anchors, then insert the new
181
+ * set, in a single transaction. The computed lines carry no `id`, so a
182
+ * plain primary-key upsert would duplicate them on every refresh; deleting
183
+ * by anchor first makes re-running the refresh idempotent.
184
+ */
163
185
  async upsertCommissionLines(commissionLines, sharedContext = {}) {
186
+ const itemIds = commissionLines
187
+ .map((line) => line.item_id)
188
+ .filter((id) => !!id);
189
+ const shippingMethodIds = commissionLines
190
+ .map((line) => line.shipping_method_id)
191
+ .filter((id) => !!id);
192
+ const filters = [];
193
+ if (itemIds.length) {
194
+ filters.push({ item_id: itemIds });
195
+ }
196
+ if (shippingMethodIds.length) {
197
+ filters.push({ shipping_method_id: shippingMethodIds });
198
+ }
199
+ if (filters.length) {
200
+ const existing = await this.commissionLineService_.list({ $or: filters }, {}, sharedContext);
201
+ if (existing.length) {
202
+ await this.commissionLineService_.delete(existing.map((line) => line.id), sharedContext);
203
+ }
204
+ }
205
+ if (!commissionLines.length) {
206
+ return [];
207
+ }
164
208
  const result = await this.commissionLineService_.upsert(commissionLines, sharedContext);
165
209
  return await this.baseRepository_.serialize(result);
166
210
  }
211
+ /**
212
+ * Build a DB-side predicate for the virtual `scope_type` filter (rule
213
+ * scope: "store", "product_type", "category", "store_product_type",
214
+ * "store_category"). Scope type is derived from the set of rule
215
+ * `reference`s rather than stored, so each option maps to an
216
+ * EXISTS / NOT EXISTS combination on `commission_rule` that mirrors the
217
+ * admin-side `deriveScopeType`. Multiple selected scopes are OR-ed.
218
+ */
219
+ buildScopeTypeWhere_(scopeTypes) {
220
+ const valid = scopeTypes.filter((scope) => [
221
+ "store",
222
+ "product_type",
223
+ "category",
224
+ "store_product_type",
225
+ "store_category",
226
+ ].includes(scope));
227
+ if (!valid.length) {
228
+ return null;
229
+ }
230
+ return (alias) => {
231
+ const has = (reference) => `EXISTS (SELECT 1 FROM commission_rule cr WHERE cr.commission_rate_id = ${alias}.id AND cr.deleted_at IS NULL AND cr.reference = '${reference}')`;
232
+ const missing = (reference) => `NOT ${has(reference)}`;
233
+ const conditionFor = (scope) => {
234
+ switch (scope) {
235
+ case "store":
236
+ return `${has("seller")} AND ${missing("product_type")} AND ${missing("product_category")}`;
237
+ case "product_type":
238
+ return `${has("product_type")} AND ${missing("seller")} AND ${missing("product_category")}`;
239
+ case "category":
240
+ return `${has("product_category")} AND ${missing("seller")} AND ${missing("product_type")}`;
241
+ case "store_product_type":
242
+ return `${has("seller")} AND ${has("product_type")}`;
243
+ case "store_category":
244
+ return `${has("seller")} AND ${has("product_category")} AND ${missing("product_type")}`;
245
+ default:
246
+ return "1 = 0";
247
+ }
248
+ };
249
+ return `(${valid.map((scope) => `(${conditionFor(scope)})`).join(" OR ")})`;
250
+ };
251
+ }
252
+ /**
253
+ * Strip the virtual `scope_type` key and rewrite it into a `raw()`
254
+ * correlated-subquery predicate so the filtering happens in the database,
255
+ * not in the route handler.
256
+ */
257
+ applyScopeTypeFilter_(filters = {}) {
258
+ const { scope_type, ...rest } = filters ?? {};
259
+ if (scope_type === undefined || scope_type === null) {
260
+ return { ...rest };
261
+ }
262
+ const scopeTypes = (Array.isArray(scope_type) ? scope_type : [scope_type])
263
+ .flatMap((value) => String(value).split(","))
264
+ .map((value) => value.trim())
265
+ .filter(Boolean);
266
+ const predicate = this.buildScopeTypeWhere_(scopeTypes);
267
+ const where = { ...rest };
268
+ // No recognised scope type → match nothing rather than ignore the filter.
269
+ where[(0, postgresql_1.raw)((alias) => (predicate ? predicate(alias) : "(1 = 0)"))] =
270
+ true;
271
+ return where;
272
+ }
273
+ /**
274
+ * Auto-generate a unique `code` from the rate `name` when one is not
275
+ * provided, before delegating to the generated create. Accepts a single
276
+ * payload or an array and preserves the caller's shape.
277
+ */
278
+ // @ts-ignore
279
+ async createCommissionRates(data, sharedContext = {}) {
280
+ const input = Array.isArray(data) ? data : [data];
281
+ const withCode = input.map((rate) => ({
282
+ ...rate,
283
+ code: rate.code ?? generateCommissionCode(rate.name),
284
+ }));
285
+ const result = await super.createCommissionRates(withCode, sharedContext);
286
+ return Array.isArray(data) ? result : result[0];
287
+ }
288
+ // @ts-ignore
289
+ async listCommissionRates(filters = {}, config = {}, sharedContext = {}) {
290
+ return await super.listCommissionRates(this.applyScopeTypeFilter_(filters), config, sharedContext);
291
+ }
292
+ // @ts-ignore
293
+ async listAndCountCommissionRates(filters = {}, config = {}, sharedContext = {}) {
294
+ return await super.listAndCountCommissionRates(this.applyScopeTypeFilter_(filters), config, sharedContext);
295
+ }
167
296
  }
168
297
  __decorate([
169
298
  (0, utils_1.InjectManager)(),
@@ -180,5 +309,32 @@ __decorate([
180
309
  __metadata("design:paramtypes", [Array, Object]),
181
310
  __metadata("design:returntype", Promise)
182
311
  ], CommissionModuleService.prototype, "upsertCommissionLines", null);
312
+ __decorate([
313
+ (0, utils_1.InjectManager)()
314
+ // @ts-ignore
315
+ ,
316
+ __param(1, (0, utils_1.MedusaContext)()),
317
+ __metadata("design:type", Function),
318
+ __metadata("design:paramtypes", [Object, Object]),
319
+ __metadata("design:returntype", Promise)
320
+ ], CommissionModuleService.prototype, "createCommissionRates", null);
321
+ __decorate([
322
+ (0, utils_1.InjectManager)()
323
+ // @ts-ignore
324
+ ,
325
+ __param(2, (0, utils_1.MedusaContext)()),
326
+ __metadata("design:type", Function),
327
+ __metadata("design:paramtypes", [Object, Object, Object]),
328
+ __metadata("design:returntype", Promise)
329
+ ], CommissionModuleService.prototype, "listCommissionRates", null);
330
+ __decorate([
331
+ (0, utils_1.InjectManager)()
332
+ // @ts-ignore
333
+ ,
334
+ __param(2, (0, utils_1.MedusaContext)()),
335
+ __metadata("design:type", Function),
336
+ __metadata("design:paramtypes", [Object, Object, Object]),
337
+ __metadata("design:returntype", Promise)
338
+ ], CommissionModuleService.prototype, "listAndCountCommissionRates", null);
183
339
  exports.default = CommissionModuleService;
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvbW1pc3Npb24vc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUNBLHFEQU1rQztBQUVsQywyQ0FRd0I7QUFFeEIscUNBQXlFO0FBRXpFLE1BQU0sdUJBQXdCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xELGNBQWMsRUFBZCx1QkFBYztJQUNkLGNBQWMsRUFBZCx1QkFBYztJQUNkLGNBQWMsRUFBZCx1QkFBYztDQUNmLENBQUM7SUFNQSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFO1FBQ25ELEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQ25CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQTtRQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQTtJQUN2QyxDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsa0JBQWtCLENBQ3RCLE9BQXFDLEVBQ3BCLGdCQUF5QixFQUFFO1FBRTVDLE1BQU0sZUFBZSxHQUE4QixFQUFFLENBQUE7UUFDckQsTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLEdBQUcsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUVwRSw4RUFBOEU7UUFDOUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQ3BELEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUNwQixFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUNyRCxhQUFhLENBQ2QsQ0FBQTtRQUVELDJCQUEyQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMs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
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvbW1pc3Npb24vc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQU9BLHFEQU1rQztBQUNsQyx5RUFBOEQ7QUFFOUQsMkNBT3dCO0FBRXhCLHFDQUtpQjtBQUtqQixzREFBc0Q7QUFDdEQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFO0lBQ3RELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUN0QixXQUFXLEVBQUU7U0FDYixJQUFJLEVBQUU7U0FDTixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxPQUFPLEdBQUcsSUFBSSxJQUFJLGlCQUFpQixJQUFJLE1BQU0sRUFBRSxDQUFBO0FBQ2pELENBQUMsQ0FBQTtBQUVELE1BQU0sdUJBQXdCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2xELGNBQWMsRUFBZCx1QkFBYztJQUNkLGNBQWMsRUFBZCx1QkFBYztJQUNkLG1CQUFtQixFQUFuQiw0QkFBbUI7SUFDbkIsY0FBYyxFQUFkLHVCQUFjO0NBQ2YsQ0FBQztJQU1BLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUU7UUFDbkQsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO1FBQ25ELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFBO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNLLGtC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
@@ -0,0 +1,21 @@
1
+ import { MercurModules } from "@mercurjs/types";
2
+ import MediaModuleService from "./service";
3
+ declare const _default: import("@mercurjs/types").ModuleExports<typeof MediaModuleService> & {
4
+ linkable: {
5
+ readonly mediaImage: {
6
+ id: {
7
+ serviceName: MercurModules.MEDIA;
8
+ field: "mediaImage";
9
+ linkable: "media_image_id";
10
+ primaryKey: "id";
11
+ };
12
+ toJSON: () => {
13
+ serviceName: MercurModules.MEDIA;
14
+ field: "mediaImage";
15
+ linkable: "media_image_id";
16
+ primaryKey: "id";
17
+ };
18
+ };
19
+ };
20
+ };
21
+ export default _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const types_1 = require("@mercurjs/types");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.default = (0, utils_1.Module)(types_1.MercurModules.MEDIA, {
10
+ service: service_1.default,
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFrRDtBQUNsRCwyQ0FBK0M7QUFFL0Msd0RBQTBDO0FBRTFDLGtCQUFlLElBQUEsY0FBTSxFQUFDLHFCQUFhLENBQUMsS0FBSyxFQUFFO0lBQ3pDLE9BQU8sRUFBRSxpQkFBa0I7Q0FDNUIsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20260616000000 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260616000000 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260616000000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`create table if not exists "media_image" ("id" text not null, "url" text not null, "type" text null, "is_thumbnail" boolean not null default false, "is_banner" boolean not null default false, "rank" integer not null default 0, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "media_image_pkey" primary key ("id"));`);
8
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_media_image_type" ON "media_image" ("type") WHERE deleted_at IS NULL;`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_media_image_deleted_at" ON "media_image" ("deleted_at") WHERE deleted_at IS NULL;`);
10
+ }
11
+ async down() {
12
+ this.addSql(`drop table if exists "media_image" cascade;`);
13
+ }
14
+ }
15
+ exports.Migration20260616000000 = Migration20260616000000;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA2MTYwMDAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNjE2MDAwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQzNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FDVCwrYUFBK2EsQ0FDaGIsQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsdUdBQXVHLENBQ3hHLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUNULG1IQUFtSCxDQUNwSCxDQUFBO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0NBQ0Y7QUFoQkQsMERBZ0JDIn0=
@@ -0,0 +1 @@
1
+ export { default as MediaImage } from "./media-image";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MediaImage = void 0;
7
+ var media_image_1 = require("./media-image");
8
+ Object.defineProperty(exports, "MediaImage", { enumerable: true, get: function () { return __importDefault(media_image_1).default; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQXFEO0FBQTVDLDBIQUFBLE9BQU8sT0FBYyJ9
@@ -0,0 +1,32 @@
1
+ /**
2
+ * A generic image record owned (via module link) by a marketplace entity
3
+ * such as a product category — and, in a later iteration, a product
4
+ * collection. The owner id is NOT stored here; it lives in the link table.
5
+ *
6
+ * `type` discriminates the icon (`"icon"`) from gallery images (`null`).
7
+ * Among gallery images, `is_thumbnail` / `is_banner` mark the storefront
8
+ * roles; the same image may carry both flags or neither. The single-
9
+ * thumbnail / single-banner / single-icon invariants are enforced in the
10
+ * `setCategoryImages` workflow, not by DB constraints (they span the link
11
+ * table).
12
+ *
13
+ * Table is `media_image`, NOT `image`, AND the model name is `MediaImage`,
14
+ * NOT `Image`: Medusa's product module already owns both a table named
15
+ * `image` and a model named `Image` (its ProductImage). Reusing either name
16
+ * collides in the joiner's entity map, so the `media_images` link alias
17
+ * resolves ambiguously and every product `query.graph` throws
18
+ * `Cannot resolve alias path "" that matches entity Product`.
19
+ */
20
+ declare const MediaImage: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
21
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
22
+ url: import("@medusajs/framework/utils").TextProperty;
23
+ type: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
24
+ is_thumbnail: import("@medusajs/framework/utils").BooleanProperty;
25
+ is_banner: import("@medusajs/framework/utils").BooleanProperty;
26
+ rank: import("@medusajs/framework/utils").NumberProperty;
27
+ metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
28
+ }>, {
29
+ readonly tableName: "media_image";
30
+ readonly name: "MediaImage";
31
+ }>;
32
+ export default MediaImage;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ /**
5
+ * A generic image record owned (via module link) by a marketplace entity
6
+ * such as a product category — and, in a later iteration, a product
7
+ * collection. The owner id is NOT stored here; it lives in the link table.
8
+ *
9
+ * `type` discriminates the icon (`"icon"`) from gallery images (`null`).
10
+ * Among gallery images, `is_thumbnail` / `is_banner` mark the storefront
11
+ * roles; the same image may carry both flags or neither. The single-
12
+ * thumbnail / single-banner / single-icon invariants are enforced in the
13
+ * `setCategoryImages` workflow, not by DB constraints (they span the link
14
+ * table).
15
+ *
16
+ * Table is `media_image`, NOT `image`, AND the model name is `MediaImage`,
17
+ * NOT `Image`: Medusa's product module already owns both a table named
18
+ * `image` and a model named `Image` (its ProductImage). Reusing either name
19
+ * collides in the joiner's entity map, so the `media_images` link alias
20
+ * resolves ambiguously and every product `query.graph` throws
21
+ * `Cannot resolve alias path "" that matches entity Product`.
22
+ */
23
+ const MediaImage = utils_1.model
24
+ .define({ tableName: "media_image", name: "MediaImage" }, {
25
+ id: utils_1.model.id({ prefix: "medimg" }).primaryKey(),
26
+ url: utils_1.model.text(),
27
+ type: utils_1.model.text().nullable(),
28
+ is_thumbnail: utils_1.model.boolean().default(false),
29
+ is_banner: utils_1.model.boolean().default(false),
30
+ rank: utils_1.model.number().default(0),
31
+ metadata: utils_1.model.json().nullable(),
32
+ })
33
+ .indexes([
34
+ {
35
+ name: "IDX_media_image_type",
36
+ on: ["type"],
37
+ where: "deleted_at IS NULL",
38
+ },
39
+ ]);
40
+ exports.default = MediaImage;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9tb2RlbHMvbWVkaWEtaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxHQUFHLGFBQUs7S0FDckIsTUFBTSxDQUNMLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQ2hEO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDL0MsR0FBRyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDakIsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsWUFBWSxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVDLFNBQVMsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN6QyxJQUFJLEVBQUUsYUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDL0IsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDbEMsQ0FDRjtLQUNBLE9BQU8sQ0FBQztJQUNQO1FBQ0UsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDWixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsVUFBVSxDQUFBIn0=
@@ -0,0 +1,17 @@
1
+ declare const MediaModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
2
+ readonly MediaImage: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
3
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
4
+ url: import("@medusajs/framework/utils").TextProperty;
5
+ type: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
6
+ is_thumbnail: import("@medusajs/framework/utils").BooleanProperty;
7
+ is_banner: import("@medusajs/framework/utils").BooleanProperty;
8
+ rank: import("@medusajs/framework/utils").NumberProperty;
9
+ metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
10
+ }>, {
11
+ readonly tableName: "media_image";
12
+ readonly name: "MediaImage";
13
+ }>;
14
+ }>>;
15
+ declare class MediaModuleService extends MediaModuleService_base {
16
+ }
17
+ export default MediaModuleService;