@mercurjs/core 2.1.2 → 2.2.0-canary.1

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 (725) hide show
  1. package/.medusa/server/src/api/admin/commission-rates/validators.d.ts +8 -8
  2. package/.medusa/server/src/api/admin/middlewares.js +20 -30
  3. package/.medusa/server/src/api/admin/offers/[id]/route.d.ts +3 -0
  4. package/.medusa/server/src/api/admin/offers/[id]/route.js +37 -0
  5. package/.medusa/server/src/api/admin/offers/batch/route.d.ts +3 -0
  6. package/.medusa/server/src/api/admin/offers/batch/route.js +37 -0
  7. package/.medusa/server/src/api/admin/offers/middlewares.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/offers/middlewares.js +31 -0
  9. package/.medusa/server/src/api/admin/offers/query-config.d.ts +11 -0
  10. package/.medusa/server/src/api/admin/offers/query-config.js +47 -0
  11. package/.medusa/server/src/api/admin/offers/route.d.ts +3 -0
  12. package/.medusa/server/src/api/admin/offers/route.js +21 -0
  13. package/.medusa/server/src/api/admin/offers/validators.d.ts +299 -0
  14. package/.medusa/server/src/api/admin/offers/validators.js +65 -0
  15. package/.medusa/server/src/api/admin/product-attributes/[id]/route.d.ts +7 -0
  16. package/.medusa/server/src/api/admin/product-attributes/[id]/route.js +51 -0
  17. package/.medusa/server/src/api/admin/product-attributes/[id]/values/[value_id]/route.d.ts +6 -0
  18. package/.medusa/server/src/api/admin/product-attributes/[id]/values/[value_id]/route.js +37 -0
  19. package/.medusa/server/src/api/admin/product-attributes/[id]/values/route.d.ts +4 -0
  20. package/.medusa/server/src/api/admin/product-attributes/[id]/values/route.js +22 -0
  21. package/.medusa/server/src/api/admin/product-attributes/middlewares.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/product-attributes/middlewares.js +75 -0
  23. package/.medusa/server/src/api/admin/product-attributes/query-config.d.ts +12 -0
  24. package/.medusa/server/src/api/admin/product-attributes/query-config.js +34 -0
  25. package/.medusa/server/src/api/admin/product-attributes/route.d.ts +6 -0
  26. package/.medusa/server/src/api/admin/product-attributes/route.js +38 -0
  27. package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +548 -0
  28. package/.medusa/server/src/api/admin/product-attributes/validators.js +128 -0
  29. package/.medusa/server/src/api/admin/product-brands/[id]/route.d.ts +7 -0
  30. package/.medusa/server/src/api/admin/product-brands/[id]/route.js +51 -0
  31. package/.medusa/server/src/api/admin/product-brands/[id]/sellers/route.d.ts +3 -0
  32. package/.medusa/server/src/api/admin/product-brands/[id]/sellers/route.js +20 -0
  33. package/.medusa/server/src/api/admin/product-brands/middlewares.d.ts +2 -0
  34. package/.medusa/server/src/api/admin/product-brands/middlewares.js +49 -0
  35. package/.medusa/server/src/api/admin/product-brands/query-config.d.ts +12 -0
  36. package/.medusa/server/src/api/admin/product-brands/query-config.js +24 -0
  37. package/.medusa/server/src/api/admin/product-brands/route.d.ts +6 -0
  38. package/.medusa/server/src/api/admin/product-brands/route.js +38 -0
  39. package/.medusa/server/src/api/admin/product-brands/validators.d.ts +284 -0
  40. package/.medusa/server/src/api/admin/product-brands/validators.js +41 -0
  41. package/.medusa/server/src/api/admin/product-categories/[id]/products/route.d.ts +3 -0
  42. package/.medusa/server/src/api/admin/product-categories/[id]/products/route.js +20 -0
  43. package/.medusa/server/src/api/admin/product-categories/[id]/route.d.ts +7 -0
  44. package/.medusa/server/src/api/admin/product-categories/[id]/route.js +50 -0
  45. package/.medusa/server/src/api/admin/product-categories/[id]/sellers/route.d.ts +3 -0
  46. package/.medusa/server/src/api/admin/product-categories/[id]/sellers/route.js +20 -0
  47. package/.medusa/server/src/api/admin/product-categories/middlewares.d.ts +2 -0
  48. package/.medusa/server/src/api/admin/product-categories/middlewares.js +54 -0
  49. package/.medusa/server/src/api/admin/product-categories/query-config.d.ts +12 -0
  50. package/.medusa/server/src/api/admin/product-categories/query-config.js +32 -0
  51. package/.medusa/server/src/api/admin/product-categories/route.d.ts +6 -0
  52. package/.medusa/server/src/api/admin/product-categories/route.js +39 -0
  53. package/.medusa/server/src/api/admin/product-categories/validators.d.ts +446 -0
  54. package/.medusa/server/src/api/admin/product-categories/validators.js +65 -0
  55. package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.d.ts +10 -0
  56. package/.medusa/server/src/api/admin/product-changes/[id]/cancel/route.js +33 -0
  57. package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.d.ts +10 -0
  58. package/.medusa/server/src/api/admin/product-changes/[id]/confirm/route.js +27 -0
  59. package/.medusa/server/src/api/admin/product-changes/middlewares.d.ts +2 -0
  60. package/.medusa/server/src/api/admin/product-changes/middlewares.js +18 -0
  61. package/.medusa/server/src/api/admin/product-changes/validators.d.ts +17 -0
  62. package/.medusa/server/src/api/admin/product-changes/validators.js +15 -0
  63. package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.d.ts +7 -0
  64. package/.medusa/server/src/api/admin/products/[id]/attributes/[attribute_id]/route.js +53 -0
  65. package/.medusa/server/src/api/admin/products/[id]/attributes/batch/route.d.ts +3 -0
  66. package/.medusa/server/src/api/admin/products/[id]/attributes/batch/route.js +36 -0
  67. package/.medusa/server/src/api/admin/products/[id]/attributes/route.d.ts +6 -0
  68. package/.medusa/server/src/api/admin/products/[id]/attributes/route.js +48 -0
  69. package/.medusa/server/src/api/admin/products/[id]/confirm/route.d.ts +4 -0
  70. package/.medusa/server/src/api/admin/products/[id]/confirm/route.js +26 -0
  71. package/.medusa/server/src/api/admin/products/[id]/preview/route.d.ts +5 -0
  72. package/.medusa/server/src/api/admin/products/[id]/preview/route.js +14 -0
  73. package/.medusa/server/src/api/admin/products/[id]/reject/route.d.ts +4 -0
  74. package/.medusa/server/src/api/admin/products/[id]/reject/route.js +27 -0
  75. package/.medusa/server/src/api/admin/products/[id]/request-changes/route.d.ts +4 -0
  76. package/.medusa/server/src/api/admin/products/[id]/request-changes/route.js +27 -0
  77. package/.medusa/server/src/api/admin/products/[id]/route.d.ts +7 -0
  78. package/.medusa/server/src/api/admin/products/[id]/route.js +55 -0
  79. package/.medusa/server/src/api/admin/products/[id]/variants/[variant_id]/route.d.ts +7 -0
  80. package/.medusa/server/src/api/admin/products/[id]/variants/[variant_id]/route.js +60 -0
  81. package/.medusa/server/src/api/admin/products/[id]/variants/route.d.ts +6 -0
  82. package/.medusa/server/src/api/admin/products/[id]/variants/route.js +41 -0
  83. package/.medusa/server/src/api/admin/products/batch/route.d.ts +4 -0
  84. package/.medusa/server/src/api/admin/products/batch/route.js +36 -0
  85. package/.medusa/server/src/api/admin/products/middlewares.d.ts +2 -0
  86. package/.medusa/server/src/api/admin/products/middlewares.js +161 -0
  87. package/.medusa/server/src/api/admin/products/query-config.d.ts +25 -0
  88. package/.medusa/server/src/api/admin/products/query-config.js +101 -0
  89. package/.medusa/server/src/api/admin/products/route.d.ts +4 -2
  90. package/.medusa/server/src/api/admin/products/route.js +48 -1
  91. package/.medusa/server/src/api/admin/products/validators.d.ts +2076 -799
  92. package/.medusa/server/src/api/admin/products/validators.js +254 -4
  93. package/.medusa/server/src/api/admin/sellers/validators.d.ts +12 -12
  94. package/.medusa/server/src/api/store/carts/[id]/line-items/route.d.ts +3 -0
  95. package/.medusa/server/src/api/store/carts/[id]/line-items/route.js +20 -0
  96. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.d.ts +27 -0
  97. package/.medusa/server/src/api/store/carts/[id]/line-items/validators.js +16 -0
  98. package/.medusa/server/src/api/store/carts/middlewares.js +26 -1
  99. package/.medusa/server/src/api/store/middlewares.js +11 -5
  100. package/.medusa/server/src/api/store/product-attributes/[id]/route.d.ts +2 -0
  101. package/.medusa/server/src/api/store/product-attributes/[id]/route.js +18 -0
  102. package/.medusa/server/src/api/store/product-attributes/middlewares.d.ts +2 -0
  103. package/.medusa/server/src/api/store/product-attributes/middlewares.js +31 -0
  104. package/.medusa/server/src/api/store/product-attributes/query-config.d.ts +12 -0
  105. package/.medusa/server/src/api/store/product-attributes/query-config.js +31 -0
  106. package/.medusa/server/src/api/store/product-attributes/route.d.ts +2 -0
  107. package/.medusa/server/src/api/store/product-attributes/route.js +21 -0
  108. package/.medusa/server/src/api/store/product-attributes/validators.d.ts +234 -0
  109. package/.medusa/server/src/api/store/product-attributes/validators.js +26 -0
  110. package/.medusa/server/src/api/store/product-brands/[id]/route.d.ts +2 -0
  111. package/.medusa/server/src/api/store/product-brands/[id]/route.js +18 -0
  112. package/.medusa/server/src/api/store/product-brands/middlewares.d.ts +2 -0
  113. package/.medusa/server/src/api/store/product-brands/middlewares.js +23 -0
  114. package/.medusa/server/src/api/store/product-brands/query-config.d.ts +12 -0
  115. package/.medusa/server/src/api/store/product-brands/query-config.js +23 -0
  116. package/.medusa/server/src/api/store/product-brands/route.d.ts +2 -0
  117. package/.medusa/server/src/api/store/product-brands/route.js +21 -0
  118. package/.medusa/server/src/api/store/product-brands/validators.d.ts +215 -0
  119. package/.medusa/server/src/api/store/product-brands/validators.js +21 -0
  120. package/.medusa/server/src/api/store/product-categories/[id]/route.d.ts +2 -0
  121. package/.medusa/server/src/api/store/product-categories/[id]/route.js +18 -0
  122. package/.medusa/server/src/api/store/product-categories/middlewares.d.ts +2 -0
  123. package/.medusa/server/src/api/store/product-categories/middlewares.js +31 -0
  124. package/.medusa/server/src/api/store/product-categories/query-config.d.ts +12 -0
  125. package/.medusa/server/src/api/store/product-categories/query-config.js +28 -0
  126. package/.medusa/server/src/api/store/product-categories/route.d.ts +2 -0
  127. package/.medusa/server/src/api/store/product-categories/route.js +21 -0
  128. package/.medusa/server/src/api/store/product-categories/validators.d.ts +240 -0
  129. package/.medusa/server/src/api/store/product-categories/validators.js +27 -0
  130. package/.medusa/server/src/api/store/products/[id]/route.d.ts +2 -0
  131. package/.medusa/server/src/api/store/products/[id]/route.js +47 -0
  132. package/.medusa/server/src/api/store/products/middlewares.d.ts +1 -1
  133. package/.medusa/server/src/api/store/products/middlewares.js +29 -5
  134. package/.medusa/server/src/api/store/products/query-config.d.ts +14 -0
  135. package/.medusa/server/src/api/store/products/query-config.js +58 -0
  136. package/.medusa/server/src/api/store/products/route.d.ts +2 -0
  137. package/.medusa/server/src/api/store/products/route.js +44 -0
  138. package/.medusa/server/src/api/store/products/validators.d.ts +276 -0
  139. package/.medusa/server/src/api/store/products/validators.js +33 -0
  140. package/.medusa/server/src/api/utils/format-product-attributes.d.ts +8 -0
  141. package/.medusa/server/src/api/utils/format-product-attributes.js +44 -0
  142. package/.medusa/server/src/api/utils/index.d.ts +1 -0
  143. package/.medusa/server/src/api/utils/index.js +2 -1
  144. package/.medusa/server/src/api/utils/wrap-variants-with-offers-inventory.d.ts +12 -0
  145. package/.medusa/server/src/api/utils/wrap-variants-with-offers-inventory.js +165 -0
  146. package/.medusa/server/src/api/utils/wrap-variants-with-offers-prices.d.ts +12 -0
  147. package/.medusa/server/src/api/utils/wrap-variants-with-offers-prices.js +64 -0
  148. package/.medusa/server/src/api/vendor/collections/validators.d.ts +4 -4
  149. package/.medusa/server/src/api/vendor/inventory-items/route.js +1 -1
  150. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +56 -56
  151. package/.medusa/server/src/api/vendor/middlewares.js +55 -51
  152. package/.medusa/server/src/api/vendor/offers/[id]/inventory-items/batch/route.d.ts +3 -0
  153. package/.medusa/server/src/api/vendor/offers/[id]/inventory-items/batch/route.js +24 -0
  154. package/.medusa/server/src/api/vendor/offers/[id]/route.d.ts +5 -0
  155. package/.medusa/server/src/api/vendor/offers/[id]/route.js +38 -0
  156. package/.medusa/server/src/api/vendor/{products/[id]/variants/[variant_id]/media → offers/batch}/route.d.ts +2 -2
  157. package/.medusa/server/src/api/vendor/offers/batch/route.js +34 -0
  158. package/.medusa/server/src/api/vendor/offers/helpers.d.ts +3 -0
  159. package/.medusa/server/src/api/vendor/offers/helpers.js +27 -0
  160. package/.medusa/server/src/api/vendor/offers/middlewares.d.ts +2 -0
  161. package/.medusa/server/src/api/vendor/offers/middlewares.js +65 -0
  162. package/.medusa/server/src/api/vendor/offers/query-config.d.ts +11 -0
  163. package/.medusa/server/src/api/vendor/offers/query-config.js +47 -0
  164. package/.medusa/server/src/api/vendor/offers/route.d.ts +4 -0
  165. package/.medusa/server/src/api/vendor/offers/route.js +41 -0
  166. package/.medusa/server/src/api/vendor/offers/validators.d.ts +607 -0
  167. package/.medusa/server/src/api/vendor/offers/validators.js +119 -0
  168. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +24 -24
  169. package/.medusa/server/src/api/vendor/product-attributes/[id]/route.d.ts +3 -0
  170. package/.medusa/server/src/api/vendor/product-attributes/[id]/route.js +18 -0
  171. package/.medusa/server/src/api/vendor/product-attributes/middlewares.d.ts +2 -0
  172. package/.medusa/server/src/api/vendor/product-attributes/middlewares.js +23 -0
  173. package/.medusa/server/src/api/vendor/product-attributes/query-config.d.ts +12 -0
  174. package/.medusa/server/src/api/vendor/product-attributes/query-config.js +34 -0
  175. package/.medusa/server/src/api/vendor/product-attributes/route.d.ts +3 -0
  176. package/.medusa/server/src/api/vendor/product-attributes/route.js +23 -0
  177. package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +394 -0
  178. package/.medusa/server/src/api/vendor/product-attributes/validators.js +85 -0
  179. package/.medusa/server/src/api/vendor/{attributes → product-brands/[id]}/route.d.ts +2 -1
  180. package/.medusa/server/src/api/vendor/product-brands/[id]/route.js +18 -0
  181. package/.medusa/server/src/api/vendor/product-brands/middlewares.d.ts +2 -0
  182. package/.medusa/server/src/api/vendor/product-brands/middlewares.js +23 -0
  183. package/.medusa/server/src/api/vendor/product-brands/query-config.d.ts +12 -0
  184. package/.medusa/server/src/api/vendor/product-brands/query-config.js +24 -0
  185. package/.medusa/server/src/api/vendor/product-brands/route.d.ts +3 -0
  186. package/.medusa/server/src/api/vendor/product-brands/route.js +21 -0
  187. package/.medusa/server/src/api/vendor/product-brands/validators.d.ts +221 -0
  188. package/.medusa/server/src/api/vendor/product-brands/validators.js +22 -0
  189. package/.medusa/server/src/api/vendor/product-categories/[id]/route.js +2 -4
  190. package/.medusa/server/src/api/vendor/product-categories/middlewares.js +5 -47
  191. package/.medusa/server/src/api/vendor/product-categories/query-config.d.ts +11 -8
  192. package/.medusa/server/src/api/vendor/product-categories/query-config.js +17 -12
  193. package/.medusa/server/src/api/vendor/product-categories/validators.d.ts +328 -44
  194. package/.medusa/server/src/api/vendor/product-categories/validators.js +20 -11
  195. package/.medusa/server/src/api/vendor/product-variants/middlewares.js +34 -11
  196. package/.medusa/server/src/api/vendor/product-variants/query-config.d.ts +2 -2
  197. package/.medusa/server/src/api/vendor/product-variants/query-config.js +16 -13
  198. package/.medusa/server/src/api/vendor/product-variants/route.d.ts +2 -1
  199. package/.medusa/server/src/api/vendor/product-variants/route.js +1 -1
  200. package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +377 -21
  201. package/.medusa/server/src/api/vendor/product-variants/validators.js +14 -8
  202. package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.d.ts +7 -2
  203. package/.medusa/server/src/api/vendor/products/[id]/attributes/[attribute_id]/route.js +25 -137
  204. package/.medusa/server/src/api/vendor/products/[id]/attributes/route.d.ts +8 -0
  205. package/.medusa/server/src/api/vendor/products/[id]/attributes/route.js +39 -103
  206. package/.medusa/server/src/api/vendor/products/[id]/cancel/route.d.ts +13 -0
  207. package/.medusa/server/src/api/vendor/products/[id]/cancel/route.js +46 -0
  208. package/.medusa/server/src/api/vendor/products/[id]/preview/route.d.ts +14 -0
  209. package/.medusa/server/src/api/vendor/products/[id]/preview/route.js +31 -0
  210. package/.medusa/server/src/api/vendor/products/[id]/route.d.ts +12 -2
  211. package/.medusa/server/src/api/vendor/products/[id]/route.js +28 -34
  212. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.d.ts +13 -3
  213. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/route.js +34 -36
  214. package/.medusa/server/src/api/vendor/products/[id]/variants/route.d.ts +7 -2
  215. package/.medusa/server/src/api/vendor/products/[id]/variants/route.js +15 -30
  216. package/.medusa/server/src/api/vendor/products/middlewares.js +54 -56
  217. package/.medusa/server/src/api/vendor/products/query-config.d.ts +4 -1
  218. package/.medusa/server/src/api/vendor/products/query-config.js +46 -13
  219. package/.medusa/server/src/api/vendor/products/route.js +11 -8
  220. package/.medusa/server/src/api/vendor/products/validators.d.ts +886 -1820
  221. package/.medusa/server/src/api/vendor/products/validators.js +182 -117
  222. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +16 -16
  223. package/.medusa/server/src/api/vendor/returns/validators.d.ts +18 -18
  224. package/.medusa/server/src/api/vendor/sales-channels/[id]/products/route.js +1 -5
  225. package/.medusa/server/src/api/vendor/sellers/validators.d.ts +10 -10
  226. package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +32 -32
  227. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +2 -2
  228. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +3 -3
  229. package/.medusa/server/src/feature-flags/product-request.d.ts +3 -0
  230. package/.medusa/server/src/feature-flags/product-request.js +10 -0
  231. package/.medusa/server/src/links/brand-seller-link.js +16 -0
  232. package/.medusa/server/src/links/cart-line-item-offer-link.js +10 -0
  233. package/.medusa/server/src/links/category-seller-link.js +16 -0
  234. package/.medusa/server/src/links/offer-inventory-item-link.js +26 -0
  235. package/.medusa/server/src/links/offer-price-set-link.js +15 -0
  236. package/.medusa/server/src/links/offer-seller-link.js +15 -0
  237. package/.medusa/server/src/links/offer-shipping-profile-link.d.ts +2 -0
  238. package/.medusa/server/src/links/offer-shipping-profile-link.js +15 -0
  239. package/.medusa/server/src/links/offer-variant-link.d.ts +2 -0
  240. package/.medusa/server/src/links/offer-variant-link.js +15 -0
  241. package/.medusa/server/src/links/order-line-item-offer-link.d.ts +2 -0
  242. package/.medusa/server/src/links/order-line-item-offer-link.js +10 -0
  243. package/.medusa/server/src/links/product-seller-link.js +13 -3
  244. package/.medusa/server/src/modules/offer/index.d.ts +21 -0
  245. package/.medusa/server/src/modules/offer/index.js +12 -0
  246. package/.medusa/server/src/modules/{attribute/migrations/Migration20260325000000.d.ts → offer/migrations/Migration20260520104835.d.ts} +1 -1
  247. package/.medusa/server/src/modules/offer/migrations/Migration20260520104835.js +22 -0
  248. package/.medusa/server/src/modules/offer/models/index.d.ts +1 -0
  249. package/.medusa/server/src/modules/offer/models/index.js +9 -0
  250. package/.medusa/server/src/modules/offer/models/offer.d.ts +13 -0
  251. package/.medusa/server/src/modules/offer/models/offer.js +56 -0
  252. package/.medusa/server/src/modules/offer/service.d.ts +17 -0
  253. package/.medusa/server/src/modules/offer/service.js +10 -0
  254. package/.medusa/server/src/modules/product/index.d.ts +7 -0
  255. package/.medusa/server/src/modules/product/index.js +14 -0
  256. package/.medusa/server/src/modules/{vendor-product-attribute/migrations/Migration20260325000000.d.ts → product/migrations/Migration20260414141012.d.ts} +1 -1
  257. package/.medusa/server/src/modules/product/migrations/Migration20260414141012.js +169 -0
  258. package/.medusa/server/src/modules/product/migrations/Migration20260415151424.d.ts +5 -0
  259. package/.medusa/server/src/modules/product/migrations/Migration20260415151424.js +14 -0
  260. package/.medusa/server/src/modules/product/migrations/Migration20260416104248.d.ts +5 -0
  261. package/.medusa/server/src/modules/product/migrations/Migration20260416104248.js +14 -0
  262. package/.medusa/server/src/modules/product/migrations/Migration20260416105443.d.ts +5 -0
  263. package/.medusa/server/src/modules/product/migrations/Migration20260416105443.js +16 -0
  264. package/.medusa/server/src/modules/product/migrations/Migration20260421093258.d.ts +5 -0
  265. package/.medusa/server/src/modules/product/migrations/Migration20260421093258.js +22 -0
  266. package/.medusa/server/src/modules/product/migrations/Migration20260422105949.d.ts +5 -0
  267. package/.medusa/server/src/modules/product/migrations/Migration20260422105949.js +32 -0
  268. package/.medusa/server/src/modules/product/migrations/Migration20260422112250.d.ts +5 -0
  269. package/.medusa/server/src/modules/product/migrations/Migration20260422112250.js +16 -0
  270. package/.medusa/server/src/modules/product/migrations/Migration20260424120000.d.ts +5 -0
  271. package/.medusa/server/src/modules/product/migrations/Migration20260424120000.js +16 -0
  272. package/.medusa/server/src/modules/product/migrations/Migration20260427140959.d.ts +5 -0
  273. package/.medusa/server/src/modules/product/migrations/Migration20260427140959.js +20 -0
  274. package/.medusa/server/src/modules/product/migrations/Migration20260427141021.d.ts +5 -0
  275. package/.medusa/server/src/modules/product/migrations/Migration20260427141021.js +16 -0
  276. package/.medusa/server/src/modules/product/migrations/Migration20260428115720.d.ts +5 -0
  277. package/.medusa/server/src/modules/product/migrations/Migration20260428115720.js +16 -0
  278. package/.medusa/server/src/modules/product/migrations/Migration20260430143600.d.ts +5 -0
  279. package/.medusa/server/src/modules/product/migrations/Migration20260430143600.js +15 -0
  280. package/.medusa/server/src/modules/product/migrations/Migration20260430144500.d.ts +5 -0
  281. package/.medusa/server/src/modules/product/migrations/Migration20260430144500.js +23 -0
  282. package/.medusa/server/src/modules/product/migrations/Migration20260430150000.d.ts +5 -0
  283. package/.medusa/server/src/modules/product/migrations/Migration20260430150000.js +14 -0
  284. package/.medusa/server/src/modules/product/migrations/Migration20260520120000.d.ts +5 -0
  285. package/.medusa/server/src/modules/product/migrations/Migration20260520120000.js +16 -0
  286. package/.medusa/server/src/modules/product/models/index.d.ts +13 -0
  287. package/.medusa/server/src/modules/product/models/index.js +33 -0
  288. package/.medusa/server/src/modules/product/models/product-attribute-value.d.ts +1676 -0
  289. package/.medusa/server/src/modules/product/models/product-attribute-value.js +38 -0
  290. package/.medusa/server/src/modules/product/models/product-attribute.d.ts +1597 -0
  291. package/.medusa/server/src/modules/product/models/product-attribute.js +57 -0
  292. package/.medusa/server/src/modules/product/models/product-brand.d.ts +539 -0
  293. package/.medusa/server/src/modules/product/models/product-brand.js +34 -0
  294. package/.medusa/server/src/modules/product/models/product-category.d.ts +1658 -0
  295. package/.medusa/server/src/modules/product/models/product-category.js +55 -0
  296. package/.medusa/server/src/modules/product/models/product-change-action.d.ts +1081 -0
  297. package/.medusa/server/src/modules/product/models/product-change-action.js +42 -0
  298. package/.medusa/server/src/modules/product/models/product-change.d.ts +547 -0
  299. package/.medusa/server/src/modules/product/models/product-change.js +50 -0
  300. package/.medusa/server/src/modules/product/models/product-collection.d.ts +540 -0
  301. package/.medusa/server/src/modules/product/models/product-collection.js +27 -0
  302. package/.medusa/server/src/modules/product/models/product-image.d.ts +1733 -0
  303. package/.medusa/server/src/modules/product/models/product-image.js +51 -0
  304. package/.medusa/server/src/modules/product/models/product-tag.d.ts +549 -0
  305. package/.medusa/server/src/modules/product/models/product-tag.js +26 -0
  306. package/.medusa/server/src/modules/product/models/product-type.d.ts +541 -0
  307. package/.medusa/server/src/modules/product/models/product-type.js +26 -0
  308. package/.medusa/server/src/modules/product/models/product-variant-product-image.d.ts +3352 -0
  309. package/.medusa/server/src/modules/product/models/product-variant-product-image.js +19 -0
  310. package/.medusa/server/src/modules/product/models/product-variant.d.ts +1617 -0
  311. package/.medusa/server/src/modules/product/models/product-variant.js +84 -0
  312. package/.medusa/server/src/modules/product/models/product.d.ts +547 -0
  313. package/.medusa/server/src/modules/product/models/product.js +137 -0
  314. package/.medusa/server/src/modules/product/repositories/product-category.d.ts +53 -0
  315. package/.medusa/server/src/modules/product/repositories/product-category.js +381 -0
  316. package/.medusa/server/src/modules/product/service.d.ts +11013 -0
  317. package/.medusa/server/src/modules/product/service.js +1471 -0
  318. package/.medusa/server/src/modules/product/services/product-category.d.ts +37 -0
  319. package/.medusa/server/src/modules/product/services/product-category.js +166 -0
  320. package/.medusa/server/src/modules/seller/loaders/register-feature-flags.js +7 -1
  321. package/.medusa/server/src/modules/seller/migrations/Migration20260414123048.d.ts +5 -0
  322. package/.medusa/server/src/modules/seller/migrations/Migration20260414123048.js +16 -0
  323. package/.medusa/server/src/types/cart-line-item.d.ts +15 -0
  324. package/.medusa/server/src/types/cart-line-item.js +3 -0
  325. package/.medusa/server/src/utils/disable-medusa-middlewares.d.ts +2 -0
  326. package/.medusa/server/src/utils/disable-medusa-middlewares.js +90 -0
  327. package/.medusa/server/src/with-mercur.js +9 -2
  328. package/.medusa/server/src/workflows/cart/hooks/index.d.ts +2 -0
  329. package/.medusa/server/src/workflows/cart/hooks/index.js +5 -0
  330. package/.medusa/server/src/workflows/cart/hooks/validate-add-to-cart-stock.js +52 -0
  331. package/.medusa/server/src/workflows/cart/hooks/validate-update-line-item-stock.js +60 -0
  332. package/.medusa/server/src/workflows/cart/index.d.ts +1 -0
  333. package/.medusa/server/src/workflows/cart/index.js +2 -1
  334. package/.medusa/server/src/workflows/cart/steps/calculate-offer-prices.d.ts +19 -0
  335. package/.medusa/server/src/workflows/cart/steps/calculate-offer-prices.js +39 -0
  336. package/.medusa/server/src/workflows/cart/steps/decorate-line-item-with-offer.d.ts +8 -0
  337. package/.medusa/server/src/workflows/cart/steps/decorate-line-item-with-offer.js +45 -0
  338. package/.medusa/server/src/workflows/cart/steps/get-line-item-actions.d.ts +21 -0
  339. package/.medusa/server/src/workflows/cart/steps/get-line-item-actions.js +85 -0
  340. package/.medusa/server/src/workflows/cart/steps/index.d.ts +5 -0
  341. package/.medusa/server/src/workflows/cart/steps/index.js +6 -1
  342. package/.medusa/server/src/workflows/cart/steps/link-line-item-to-offer.d.ts +13 -0
  343. package/.medusa/server/src/workflows/cart/steps/link-line-item-to-offer.js +31 -0
  344. package/.medusa/server/src/workflows/cart/steps/mirror-line-item-offer-links-to-order.d.ts +16 -0
  345. package/.medusa/server/src/workflows/cart/steps/mirror-line-item-offer-links-to-order.js +32 -0
  346. package/.medusa/server/src/workflows/cart/steps/validate-seller-cart-items.d.ts +5 -7
  347. package/.medusa/server/src/workflows/cart/steps/validate-seller-cart-items.js +6 -4
  348. package/.medusa/server/src/workflows/cart/steps/validate-seller-cart-shipping.d.ts +5 -6
  349. package/.medusa/server/src/workflows/cart/steps/validate-seller-cart-shipping.js +5 -4
  350. package/.medusa/server/src/workflows/cart/utils/fields.js +11 -20
  351. package/.medusa/server/src/workflows/cart/utils/index.d.ts +0 -1
  352. package/.medusa/server/src/workflows/cart/utils/index.js +1 -2
  353. package/.medusa/server/src/workflows/cart/utils/prepare-line-item-data.d.ts +1 -0
  354. package/.medusa/server/src/workflows/cart/utils/prepare-line-item-data.js +2 -2
  355. package/.medusa/server/src/workflows/cart/workflows/add-to-cart.d.ts +12 -0
  356. package/.medusa/server/src/workflows/cart/workflows/add-to-cart.js +235 -0
  357. package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +76 -24
  358. package/.medusa/server/src/workflows/cart/workflows/index.d.ts +2 -0
  359. package/.medusa/server/src/workflows/cart/workflows/index.js +3 -1
  360. package/.medusa/server/src/workflows/cart/workflows/list-seller-shipping-options-for-cart.js +18 -15
  361. package/.medusa/server/src/workflows/cart/workflows/update-line-item-in-cart.d.ts +16 -0
  362. package/.medusa/server/src/workflows/cart/workflows/update-line-item-in-cart.js +87 -0
  363. package/.medusa/server/src/workflows/commission/workflows/refresh-order-commission-lines.js +5 -3
  364. package/.medusa/server/src/workflows/events.d.ts +5 -0
  365. package/.medusa/server/src/workflows/events.js +7 -2
  366. package/.medusa/server/src/workflows/index.d.ts +4 -0
  367. package/.medusa/server/src/workflows/index.js +5 -1
  368. package/.medusa/server/src/workflows/offer/index.d.ts +3 -0
  369. package/.medusa/server/src/workflows/{attribute/workflows → offer}/index.js +4 -6
  370. package/.medusa/server/src/workflows/offer/steps/create-offers.d.ts +17 -0
  371. package/.medusa/server/src/workflows/offer/steps/create-offers.js +17 -0
  372. package/.medusa/server/src/workflows/offer/steps/delete-offers.d.ts +1 -0
  373. package/.medusa/server/src/workflows/offer/steps/delete-offers.js +17 -0
  374. package/.medusa/server/src/workflows/offer/steps/index.d.ts +3 -0
  375. package/.medusa/server/src/workflows/{product-attribute → offer}/steps/index.js +4 -8
  376. package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +26 -0
  377. package/.medusa/server/src/workflows/offer/steps/update-offers.js +35 -0
  378. package/.medusa/server/src/workflows/offer/utils/index.d.ts +1 -0
  379. package/.medusa/server/src/workflows/offer/utils/index.js +18 -0
  380. package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.d.ts +59 -0
  381. package/.medusa/server/src/workflows/offer/utils/prepare-offer-inventory-input.js +128 -0
  382. package/.medusa/server/src/workflows/offer/workflows/batch-offer-inventory-items.d.ts +35 -0
  383. package/.medusa/server/src/workflows/offer/workflows/batch-offer-inventory-items.js +118 -0
  384. package/.medusa/server/src/workflows/offer/workflows/create-offers.d.ts +116 -0
  385. package/.medusa/server/src/workflows/offer/workflows/create-offers.js +117 -0
  386. package/.medusa/server/src/workflows/offer/workflows/delete-offers.d.ts +11 -0
  387. package/.medusa/server/src/workflows/offer/workflows/delete-offers.js +22 -0
  388. package/.medusa/server/src/workflows/offer/workflows/index.d.ts +4 -0
  389. package/.medusa/server/src/workflows/{attribute/steps → offer/workflows}/index.js +5 -8
  390. package/.medusa/server/src/workflows/offer/workflows/update-offers.d.ts +123 -0
  391. package/.medusa/server/src/workflows/offer/workflows/update-offers.js +66 -0
  392. package/.medusa/server/src/workflows/order/index.d.ts +1 -0
  393. package/.medusa/server/src/workflows/order/index.js +18 -0
  394. package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.d.ts +15 -0
  395. package/.medusa/server/src/workflows/order/workflows/cancel-order-fulfillment.js +187 -0
  396. package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.d.ts +7 -0
  397. package/.medusa/server/src/workflows/order/workflows/confirm-return-receive.js +221 -0
  398. package/.medusa/server/src/workflows/order/workflows/create-order-fulfillment.d.ts +39 -0
  399. package/.medusa/server/src/workflows/order/workflows/create-order-fulfillment.js +367 -0
  400. package/.medusa/server/src/workflows/order/workflows/index.d.ts +3 -0
  401. package/.medusa/server/src/workflows/order/workflows/index.js +20 -0
  402. package/.medusa/server/src/workflows/product/events.d.ts +54 -0
  403. package/.medusa/server/src/workflows/product/events.js +58 -0
  404. package/.medusa/server/src/workflows/product/index.d.ts +3 -0
  405. package/.medusa/server/src/workflows/product/index.js +20 -0
  406. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product-brand.d.ts +8 -0
  407. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product-brand.js +26 -0
  408. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product-category.d.ts +8 -0
  409. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product-category.js +26 -0
  410. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product.d.ts +8 -0
  411. package/.medusa/server/src/workflows/product/steps/associate-sellers-with-product.js +26 -0
  412. package/.medusa/server/src/workflows/product/steps/batch-link-products-in-category.d.ts +7 -0
  413. package/.medusa/server/src/workflows/product/steps/batch-link-products-in-category.js +61 -0
  414. package/.medusa/server/src/workflows/product/steps/batch-product-attributes.d.ts +11 -0
  415. package/.medusa/server/src/workflows/product/steps/batch-product-attributes.js +16 -0
  416. package/.medusa/server/src/workflows/product/steps/create-product-attribute-values.d.ts +6 -0
  417. package/.medusa/server/src/workflows/product/steps/create-product-attribute-values.js +17 -0
  418. package/.medusa/server/src/workflows/product/steps/create-product-attributes.d.ts +2 -0
  419. package/.medusa/server/src/workflows/product/steps/create-product-attributes.js +17 -0
  420. package/.medusa/server/src/workflows/product/steps/create-product-brands.d.ts +2 -0
  421. package/.medusa/server/src/workflows/product/steps/create-product-brands.js +17 -0
  422. package/.medusa/server/src/workflows/product/steps/create-product-categories.d.ts +1548 -0
  423. package/.medusa/server/src/workflows/product/steps/create-product-categories.js +18 -0
  424. package/.medusa/server/src/workflows/product/steps/create-product-variants.d.ts +2 -0
  425. package/.medusa/server/src/workflows/product/steps/create-product-variants.js +18 -0
  426. package/.medusa/server/src/workflows/product/steps/create-products.d.ts +2 -0
  427. package/.medusa/server/src/workflows/product/steps/create-products.js +17 -0
  428. package/.medusa/server/src/workflows/product/steps/delete-product-attribute-values.d.ts +1 -0
  429. package/.medusa/server/src/workflows/product/steps/delete-product-attribute-values.js +17 -0
  430. package/.medusa/server/src/workflows/product/steps/delete-product-attributes.d.ts +1 -0
  431. package/.medusa/server/src/workflows/product/steps/delete-product-attributes.js +17 -0
  432. package/.medusa/server/src/workflows/product/steps/delete-product-brands.d.ts +1 -0
  433. package/.medusa/server/src/workflows/product/steps/delete-product-brands.js +17 -0
  434. package/.medusa/server/src/workflows/product/steps/delete-product-categories.d.ts +1 -0
  435. package/.medusa/server/src/workflows/product/steps/delete-product-categories.js +17 -0
  436. package/.medusa/server/src/workflows/product/steps/delete-product-variants.d.ts +1 -0
  437. package/.medusa/server/src/workflows/product/steps/delete-product-variants.js +17 -0
  438. package/.medusa/server/src/workflows/product/steps/delete-products.d.ts +1 -0
  439. package/.medusa/server/src/workflows/product/steps/delete-products.js +17 -0
  440. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product-brand.d.ts +8 -0
  441. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product-brand.js +26 -0
  442. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product-category.d.ts +8 -0
  443. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product-category.js +26 -0
  444. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product.d.ts +8 -0
  445. package/.medusa/server/src/workflows/product/steps/detach-sellers-from-product.js +26 -0
  446. package/.medusa/server/src/workflows/product/steps/index.d.ts +33 -0
  447. package/.medusa/server/src/workflows/product/steps/index.js +50 -0
  448. package/.medusa/server/src/workflows/product/steps/remove-attribute-from-product.d.ts +6 -0
  449. package/.medusa/server/src/workflows/product/steps/remove-attribute-from-product.js +11 -0
  450. package/.medusa/server/src/workflows/product/steps/update-product-attribute-values.d.ts +7 -0
  451. package/.medusa/server/src/workflows/product/steps/update-product-attribute-values.js +22 -0
  452. package/.medusa/server/src/workflows/product/steps/update-product-attributes.d.ts +7 -0
  453. package/.medusa/server/src/workflows/product/steps/update-product-attributes.js +22 -0
  454. package/.medusa/server/src/workflows/product/steps/update-product-brands.d.ts +7 -0
  455. package/.medusa/server/src/workflows/product/steps/update-product-brands.js +28 -0
  456. package/.medusa/server/src/workflows/product/steps/update-product-categories.d.ts +1552 -0
  457. package/.medusa/server/src/workflows/product/steps/update-product-categories.js +20 -0
  458. package/.medusa/server/src/workflows/product/steps/update-product-variants.d.ts +10 -0
  459. package/.medusa/server/src/workflows/product/steps/update-product-variants.js +32 -0
  460. package/.medusa/server/src/workflows/product/steps/update-products.d.ts +10 -0
  461. package/.medusa/server/src/workflows/product/steps/update-products.js +33 -0
  462. package/.medusa/server/src/workflows/product/steps/upsert-product-attribute-values.d.ts +5 -0
  463. package/.medusa/server/src/workflows/product/steps/upsert-product-attribute-values.js +30 -0
  464. package/.medusa/server/src/workflows/product/steps/validate-attribute-accepts-values.d.ts +5 -0
  465. package/.medusa/server/src/workflows/product/steps/validate-attribute-accepts-values.js +19 -0
  466. package/.medusa/server/src/workflows/product/steps/validate-confirm-products.d.ts +3 -0
  467. package/.medusa/server/src/workflows/product/steps/validate-confirm-products.js +14 -0
  468. package/.medusa/server/src/workflows/product/steps/validate-delete-product-attribute-values.d.ts +5 -0
  469. package/.medusa/server/src/workflows/product/steps/validate-delete-product-attribute-values.js +19 -0
  470. package/.medusa/server/src/workflows/product/steps/validate-delete-product-attributes.d.ts +5 -0
  471. package/.medusa/server/src/workflows/product/steps/validate-delete-product-attributes.js +30 -0
  472. package/.medusa/server/src/workflows/product/steps/validate-reject-product.d.ts +3 -0
  473. package/.medusa/server/src/workflows/product/steps/validate-reject-product.js +12 -0
  474. package/.medusa/server/src/workflows/product/steps/validate-request-changes.d.ts +3 -0
  475. package/.medusa/server/src/workflows/product/steps/validate-request-changes.js +12 -0
  476. package/.medusa/server/src/workflows/product/steps/validate-resubmit-product.d.ts +3 -0
  477. package/.medusa/server/src/workflows/product/steps/validate-resubmit-product.js +12 -0
  478. package/.medusa/server/src/workflows/product/steps/validate-seller-product-permissions.d.ts +7 -0
  479. package/.medusa/server/src/workflows/product/steps/validate-seller-product-permissions.js +45 -0
  480. package/.medusa/server/src/workflows/product/workflows/batch-link-products-in-category.d.ts +8 -0
  481. package/.medusa/server/src/workflows/product/workflows/batch-link-products-in-category.js +10 -0
  482. package/.medusa/server/src/workflows/product/workflows/batch-product-attributes.d.ts +12 -0
  483. package/.medusa/server/src/workflows/product/workflows/batch-product-attributes.js +23 -0
  484. package/.medusa/server/src/workflows/product/workflows/batch-products.d.ts +3 -0
  485. package/.medusa/server/src/workflows/product/workflows/batch-products.js +86 -0
  486. package/.medusa/server/src/workflows/product/workflows/confirm-products.d.ts +15 -0
  487. package/.medusa/server/src/workflows/product/workflows/confirm-products.js +57 -0
  488. package/.medusa/server/src/workflows/product/workflows/create-product-attribute-values.d.ts +8 -0
  489. package/.medusa/server/src/workflows/product/workflows/create-product-attribute-values.js +21 -0
  490. package/.medusa/server/src/workflows/product/workflows/create-product-attributes.d.ts +7 -0
  491. package/.medusa/server/src/workflows/product/workflows/create-product-attributes.js +18 -0
  492. package/.medusa/server/src/workflows/product/workflows/create-product-brands.d.ts +7 -0
  493. package/.medusa/server/src/workflows/product/workflows/create-product-brands.js +19 -0
  494. package/.medusa/server/src/workflows/product/workflows/create-product-categories.d.ts +1553 -0
  495. package/.medusa/server/src/workflows/product/workflows/create-product-categories.js +18 -0
  496. package/.medusa/server/src/workflows/product/workflows/create-product-variants.d.ts +3 -0
  497. package/.medusa/server/src/workflows/product/workflows/create-product-variants.js +25 -0
  498. package/.medusa/server/src/workflows/product/workflows/create-products.d.ts +3 -0
  499. package/.medusa/server/src/workflows/product/workflows/create-products.js +35 -0
  500. package/.medusa/server/src/workflows/product/workflows/delete-product-attribute-values.d.ts +6 -0
  501. package/.medusa/server/src/workflows/product/workflows/delete-product-attribute-values.js +20 -0
  502. package/.medusa/server/src/workflows/product/workflows/delete-product-attributes.d.ts +6 -0
  503. package/.medusa/server/src/workflows/product/workflows/delete-product-attributes.js +20 -0
  504. package/.medusa/server/src/workflows/product/workflows/delete-product-brands.d.ts +6 -0
  505. package/.medusa/server/src/workflows/product/workflows/delete-product-brands.js +19 -0
  506. package/.medusa/server/src/workflows/product/workflows/delete-product-categories.d.ts +6 -0
  507. package/.medusa/server/src/workflows/product/workflows/delete-product-categories.js +18 -0
  508. package/.medusa/server/src/workflows/product/workflows/delete-product-variants.d.ts +8 -0
  509. package/.medusa/server/src/workflows/product/workflows/delete-product-variants.js +24 -0
  510. package/.medusa/server/src/workflows/product/workflows/delete-products.d.ts +6 -0
  511. package/.medusa/server/src/workflows/product/workflows/delete-products.js +19 -0
  512. package/.medusa/server/src/workflows/product/workflows/index.d.ts +30 -0
  513. package/.medusa/server/src/workflows/product/workflows/index.js +47 -0
  514. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-brand.d.ts +14 -0
  515. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-brand.js +21 -0
  516. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.d.ts +14 -0
  517. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product-category.js +21 -0
  518. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.d.ts +14 -0
  519. package/.medusa/server/src/workflows/product/workflows/link-sellers-to-product.js +21 -0
  520. package/.medusa/server/src/workflows/product/workflows/reject-product.d.ts +11 -0
  521. package/.medusa/server/src/workflows/product/workflows/reject-product.js +61 -0
  522. package/.medusa/server/src/workflows/product/workflows/remove-attribute-from-product.d.ts +7 -0
  523. package/.medusa/server/src/workflows/product/workflows/remove-attribute-from-product.js +20 -0
  524. package/.medusa/server/src/workflows/product/workflows/request-product-changes.d.ts +11 -0
  525. package/.medusa/server/src/workflows/product/workflows/request-product-changes.js +61 -0
  526. package/.medusa/server/src/workflows/product/workflows/resubmit-product.d.ts +8 -0
  527. package/.medusa/server/src/workflows/product/workflows/resubmit-product.js +48 -0
  528. package/.medusa/server/src/workflows/product/workflows/submit-seller-products.d.ts +3 -0
  529. package/.medusa/server/src/workflows/product/workflows/submit-seller-products.js +76 -0
  530. package/.medusa/server/src/workflows/product/workflows/update-product-attribute-values.d.ts +8 -0
  531. package/.medusa/server/src/workflows/product/workflows/update-product-attribute-values.js +18 -0
  532. package/.medusa/server/src/workflows/product/workflows/update-product-attributes.d.ts +8 -0
  533. package/.medusa/server/src/workflows/product/workflows/update-product-attributes.js +18 -0
  534. package/.medusa/server/src/workflows/product/workflows/update-product-brands.d.ts +8 -0
  535. package/.medusa/server/src/workflows/product/workflows/update-product-brands.js +19 -0
  536. package/.medusa/server/src/workflows/product/workflows/update-product-categories.d.ts +1555 -0
  537. package/.medusa/server/src/workflows/product/workflows/update-product-categories.js +18 -0
  538. package/.medusa/server/src/workflows/product/workflows/update-product-variants.d.ts +3 -0
  539. package/.medusa/server/src/workflows/product/workflows/update-product-variants.js +36 -0
  540. package/.medusa/server/src/workflows/product/workflows/update-products.d.ts +3 -0
  541. package/.medusa/server/src/workflows/product/workflows/update-products.js +23 -0
  542. package/.medusa/server/src/workflows/product/workflows/upsert-product-attribute-values.d.ts +8 -0
  543. package/.medusa/server/src/workflows/product/workflows/upsert-product-attribute-values.js +21 -0
  544. package/.medusa/server/src/workflows/{attribute → product-edit}/index.js +2 -2
  545. package/.medusa/server/src/workflows/product-edit/steps/cancel-product-change.d.ts +7 -0
  546. package/.medusa/server/src/workflows/product-edit/steps/cancel-product-change.js +14 -0
  547. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.d.ts +8 -0
  548. package/.medusa/server/src/workflows/product-edit/steps/confirm-product-changes.js +11 -0
  549. package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.d.ts +16 -0
  550. package/.medusa/server/src/workflows/product-edit/steps/create-product-change-actions.js +17 -0
  551. package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.d.ts +17 -0
  552. package/.medusa/server/src/workflows/product-edit/steps/create-product-changes.js +25 -0
  553. package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.d.ts +8 -0
  554. package/.medusa/server/src/workflows/product-edit/steps/decline-product-change.js +14 -0
  555. package/.medusa/server/src/workflows/product-edit/steps/index.d.ts +8 -0
  556. package/.medusa/server/src/workflows/{product-attribute/workflows → product-edit/steps}/index.js +9 -9
  557. package/.medusa/server/src/workflows/product-edit/steps/retrieve-product-with-change.d.ts +5 -0
  558. package/.medusa/server/src/workflows/product-edit/steps/retrieve-product-with-change.js +11 -0
  559. package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.d.ts +12 -0
  560. package/.medusa/server/src/workflows/product-edit/steps/validate-no-pending-product-change.js +21 -0
  561. package/.medusa/server/src/workflows/product-edit/steps/validate-product-change-pending.d.ts +11 -0
  562. package/.medusa/server/src/workflows/product-edit/steps/validate-product-change-pending.js +21 -0
  563. package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.d.ts +16 -0
  564. package/.medusa/server/src/workflows/product-edit/workflows/auto-confirm-product-change.js +37 -0
  565. package/.medusa/server/src/workflows/product-edit/workflows/cancel-product-edit.d.ts +19 -0
  566. package/.medusa/server/src/workflows/product-edit/workflows/cancel-product-edit.js +40 -0
  567. package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-edit.d.ts +21 -0
  568. package/.medusa/server/src/workflows/product-edit/workflows/confirm-product-edit.js +44 -0
  569. package/.medusa/server/src/workflows/product-edit/workflows/decline-product-edit.d.ts +16 -0
  570. package/.medusa/server/src/workflows/product-edit/workflows/decline-product-edit.js +42 -0
  571. package/.medusa/server/src/workflows/product-edit/workflows/index.d.ts +11 -0
  572. package/.medusa/server/src/workflows/product-edit/workflows/index.js +28 -0
  573. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-add-attribute.d.ts +19 -0
  574. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-add-attribute.js +66 -0
  575. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-add-variant.d.ts +17 -0
  576. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-add-variant.js +58 -0
  577. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.d.ts +20 -0
  578. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-delete-product.js +60 -0
  579. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-remove-attribute.d.ts +17 -0
  580. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-remove-attribute.js +62 -0
  581. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-remove-variant.d.ts +16 -0
  582. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-remove-variant.js +68 -0
  583. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.d.ts +18 -0
  584. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-fields.js +72 -0
  585. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variant.d.ts +21 -0
  586. package/.medusa/server/src/workflows/product-edit/workflows/product-edit-update-variant.js +89 -0
  587. package/.medusa/server/src/workflows/seller/workflows/create-sellers.js +5 -2
  588. package/.medusa/server/src/workflows/utils/override-workflow.d.ts +12 -0
  589. package/.medusa/server/src/workflows/utils/override-workflow.js +21 -0
  590. package/package.json +8 -4
  591. package/.medusa/server/src/api/admin/attributes/[id]/route.d.ts +0 -5
  592. package/.medusa/server/src/api/admin/attributes/[id]/route.js +0 -68
  593. package/.medusa/server/src/api/admin/attributes/[id]/values/[value_id]/route.d.ts +0 -4
  594. package/.medusa/server/src/api/admin/attributes/[id]/values/[value_id]/route.js +0 -40
  595. package/.medusa/server/src/api/admin/attributes/[id]/values/route.d.ts +0 -4
  596. package/.medusa/server/src/api/admin/attributes/[id]/values/route.js +0 -44
  597. package/.medusa/server/src/api/admin/attributes/middlewares.d.ts +0 -2
  598. package/.medusa/server/src/api/admin/attributes/middlewares.js +0 -102
  599. package/.medusa/server/src/api/admin/attributes/query-config.d.ts +0 -20
  600. package/.medusa/server/src/api/admin/attributes/query-config.js +0 -41
  601. package/.medusa/server/src/api/admin/attributes/route.d.ts +0 -4
  602. package/.medusa/server/src/api/admin/attributes/route.js +0 -51
  603. package/.medusa/server/src/api/admin/attributes/validators.d.ts +0 -793
  604. package/.medusa/server/src/api/admin/attributes/validators.js +0 -92
  605. package/.medusa/server/src/api/vendor/attributes/middlewares.d.ts +0 -2
  606. package/.medusa/server/src/api/vendor/attributes/middlewares.js +0 -32
  607. package/.medusa/server/src/api/vendor/attributes/route.js +0 -20
  608. package/.medusa/server/src/api/vendor/product-categories/[id]/products/route.d.ts +0 -3
  609. package/.medusa/server/src/api/vendor/product-categories/[id]/products/route.js +0 -27
  610. package/.medusa/server/src/api/vendor/product-categories/helpers.d.ts +0 -2
  611. package/.medusa/server/src/api/vendor/product-categories/helpers.js +0 -24
  612. package/.medusa/server/src/api/vendor/products/[id]/attributes/utils.d.ts +0 -7
  613. package/.medusa/server/src/api/vendor/products/[id]/attributes/utils.js +0 -16
  614. package/.medusa/server/src/api/vendor/products/[id]/options/[option_id]/route.d.ts +0 -5
  615. package/.medusa/server/src/api/vendor/products/[id]/options/[option_id]/route.js +0 -74
  616. package/.medusa/server/src/api/vendor/products/[id]/options/route.d.ts +0 -4
  617. package/.medusa/server/src/api/vendor/products/[id]/options/route.js +0 -34
  618. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +0 -20
  619. package/.medusa/server/src/api/vendor/products/helpers.d.ts +0 -2
  620. package/.medusa/server/src/api/vendor/products/helpers.js +0 -20
  621. package/.medusa/server/src/api/vendor/products/utils/transform-product-attributes.d.ts +0 -34
  622. package/.medusa/server/src/api/vendor/products/utils/transform-product-attributes.js +0 -71
  623. package/.medusa/server/src/links/category-attribute-link.js +0 -16
  624. package/.medusa/server/src/links/product-attribute-value-link.js +0 -16
  625. package/.medusa/server/src/links/product-vendor-product-attribute-link.js +0 -16
  626. package/.medusa/server/src/links/seller-attribute-link.js +0 -13
  627. package/.medusa/server/src/links/seller-attribute-value-link.js +0 -13
  628. package/.medusa/server/src/links/seller-vendor-product-attribute-link.js +0 -13
  629. package/.medusa/server/src/modules/attribute/index.d.ts +0 -51
  630. package/.medusa/server/src/modules/attribute/index.js +0 -15
  631. package/.medusa/server/src/modules/attribute/migrations/Migration20260325000000.js +0 -32
  632. package/.medusa/server/src/modules/attribute/models/attribute-possible-value.d.ts +0 -27
  633. package/.medusa/server/src/modules/attribute/models/attribute-possible-value.js +0 -26
  634. package/.medusa/server/src/modules/attribute/models/attribute-value.d.ts +0 -27
  635. package/.medusa/server/src/modules/attribute/models/attribute-value.js +0 -26
  636. package/.medusa/server/src/modules/attribute/models/attribute.d.ts +0 -28
  637. package/.medusa/server/src/modules/attribute/models/attribute.js +0 -36
  638. package/.medusa/server/src/modules/attribute/models/index.d.ts +0 -3
  639. package/.medusa/server/src/modules/attribute/models/index.js +0 -13
  640. package/.medusa/server/src/modules/attribute/service.d.ts +0 -105
  641. package/.medusa/server/src/modules/attribute/service.js +0 -74
  642. package/.medusa/server/src/modules/vendor-product-attribute/index.d.ts +0 -23
  643. package/.medusa/server/src/modules/vendor-product-attribute/index.js +0 -15
  644. package/.medusa/server/src/modules/vendor-product-attribute/migrations/Migration20260325000000.js +0 -16
  645. package/.medusa/server/src/modules/vendor-product-attribute/models/vendor-product-attribute.d.ts +0 -11
  646. package/.medusa/server/src/modules/vendor-product-attribute/models/vendor-product-attribute.js +0 -24
  647. package/.medusa/server/src/modules/vendor-product-attribute/service.d.ts +0 -14
  648. package/.medusa/server/src/modules/vendor-product-attribute/service.js +0 -13
  649. package/.medusa/server/src/workflows/attribute/steps/create-attribute-possible-values.d.ts +0 -40
  650. package/.medusa/server/src/workflows/attribute/steps/create-attribute-possible-values.js +0 -18
  651. package/.medusa/server/src/workflows/attribute/steps/create-attributes.d.ts +0 -5
  652. package/.medusa/server/src/workflows/attribute/steps/create-attributes.js +0 -32
  653. package/.medusa/server/src/workflows/attribute/steps/delete-attribute.d.ts +0 -6
  654. package/.medusa/server/src/workflows/attribute/steps/delete-attribute.js +0 -31
  655. package/.medusa/server/src/workflows/attribute/steps/index.d.ts +0 -7
  656. package/.medusa/server/src/workflows/attribute/steps/update-attribute-possible-value.d.ts +0 -39
  657. package/.medusa/server/src/workflows/attribute/steps/update-attribute-possible-value.js +0 -18
  658. package/.medusa/server/src/workflows/attribute/steps/update-attributes.d.ts +0 -21
  659. package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +0 -37
  660. package/.medusa/server/src/workflows/attribute/steps/validate-attribute-delete.d.ts +0 -6
  661. package/.medusa/server/src/workflows/attribute/steps/validate-attribute-delete.js +0 -50
  662. package/.medusa/server/src/workflows/attribute/steps/validate-possible-values-removal.d.ts +0 -7
  663. package/.medusa/server/src/workflows/attribute/steps/validate-possible-values-removal.js +0 -70
  664. package/.medusa/server/src/workflows/attribute/workflows/create-attribute-possible-values.d.ts +0 -39
  665. package/.medusa/server/src/workflows/attribute/workflows/create-attribute-possible-values.js +0 -11
  666. package/.medusa/server/src/workflows/attribute/workflows/create-attributes.d.ts +0 -7
  667. package/.medusa/server/src/workflows/attribute/workflows/create-attributes.js +0 -40
  668. package/.medusa/server/src/workflows/attribute/workflows/delete-attribute.d.ts +0 -6
  669. package/.medusa/server/src/workflows/attribute/workflows/delete-attribute.js +0 -11
  670. package/.medusa/server/src/workflows/attribute/workflows/index.d.ts +0 -5
  671. package/.medusa/server/src/workflows/attribute/workflows/update-attribute-possible-value.d.ts +0 -39
  672. package/.medusa/server/src/workflows/attribute/workflows/update-attribute-possible-value.js +0 -11
  673. package/.medusa/server/src/workflows/attribute/workflows/update-attributes.d.ts +0 -24
  674. package/.medusa/server/src/workflows/attribute/workflows/update-attributes.js +0 -69
  675. package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.d.ts +0 -28
  676. package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +0 -165
  677. package/.medusa/server/src/workflows/hooks/product-created.js +0 -75
  678. package/.medusa/server/src/workflows/hooks/product-variant-created.js +0 -50
  679. package/.medusa/server/src/workflows/product-attribute/steps/create-attribute-value.d.ts +0 -39
  680. package/.medusa/server/src/workflows/product-attribute/steps/create-attribute-value.js +0 -21
  681. package/.medusa/server/src/workflows/product-attribute/steps/create-attribute-values.d.ts +0 -12
  682. package/.medusa/server/src/workflows/product-attribute/steps/create-attribute-values.js +0 -24
  683. package/.medusa/server/src/workflows/product-attribute/steps/create-vendor-product-attribute.d.ts +0 -14
  684. package/.medusa/server/src/workflows/product-attribute/steps/create-vendor-product-attribute.js +0 -18
  685. package/.medusa/server/src/workflows/product-attribute/steps/delete-attribute-value.d.ts +0 -2
  686. package/.medusa/server/src/workflows/product-attribute/steps/delete-attribute-value.js +0 -18
  687. package/.medusa/server/src/workflows/product-attribute/steps/index.d.ts +0 -7
  688. package/.medusa/server/src/workflows/product-attribute/steps/restore-variant-image-associations.d.ts +0 -10
  689. package/.medusa/server/src/workflows/product-attribute/steps/restore-variant-image-associations.js +0 -49
  690. package/.medusa/server/src/workflows/product-attribute/steps/save-variant-image-associations.d.ts +0 -8
  691. package/.medusa/server/src/workflows/product-attribute/steps/save-variant-image-associations.js +0 -29
  692. package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-value.d.ts +0 -3
  693. package/.medusa/server/src/workflows/product-attribute/steps/validate-attribute-value.js +0 -59
  694. package/.medusa/server/src/workflows/product-attribute/utils/find-or-create-vendor-attribute.d.ts +0 -13
  695. package/.medusa/server/src/workflows/product-attribute/utils/find-or-create-vendor-attribute.js +0 -56
  696. package/.medusa/server/src/workflows/product-attribute/utils/get-applicable-attributes.d.ts +0 -2
  697. package/.medusa/server/src/workflows/product-attribute/utils/get-applicable-attributes.js +0 -58
  698. package/.medusa/server/src/workflows/product-attribute/utils/products-created-handler.d.ts +0 -8
  699. package/.medusa/server/src/workflows/product-attribute/utils/products-created-handler.js +0 -100
  700. package/.medusa/server/src/workflows/product-attribute/workflows/convert-attribute-to-option.d.ts +0 -3
  701. package/.medusa/server/src/workflows/product-attribute/workflows/convert-attribute-to-option.js +0 -46
  702. package/.medusa/server/src/workflows/product-attribute/workflows/convert-option-to-attribute.d.ts +0 -3
  703. package/.medusa/server/src/workflows/product-attribute/workflows/convert-option-to-attribute.js +0 -29
  704. package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-attribute-values.d.ts +0 -16
  705. package/.medusa/server/src/workflows/product-attribute/workflows/create-and-link-attribute-values.js +0 -72
  706. package/.medusa/server/src/workflows/product-attribute/workflows/create-attribute-value.d.ts +0 -39
  707. package/.medusa/server/src/workflows/product-attribute/workflows/create-attribute-value.js +0 -35
  708. package/.medusa/server/src/workflows/product-attribute/workflows/create-vendor-product-attribute.d.ts +0 -24
  709. package/.medusa/server/src/workflows/product-attribute/workflows/create-vendor-product-attribute.js +0 -42
  710. package/.medusa/server/src/workflows/product-attribute/workflows/delete-attribute-value.d.ts +0 -3
  711. package/.medusa/server/src/workflows/product-attribute/workflows/delete-attribute-value.js +0 -59
  712. package/.medusa/server/src/workflows/product-attribute/workflows/index.d.ts +0 -8
  713. package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-values.d.ts +0 -20
  714. package/.medusa/server/src/workflows/product-attribute/workflows/sync-product-attribute-values.js +0 -67
  715. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-with-variant-images.d.ts +0 -11
  716. package/.medusa/server/src/workflows/product-attribute/workflows/update-product-with-variant-images.js +0 -34
  717. package/.medusa/server/src/links/{category-attribute-link.d.ts → brand-seller-link.d.ts} +0 -0
  718. package/.medusa/server/src/links/{product-attribute-value-link.d.ts → cart-line-item-offer-link.d.ts} +0 -0
  719. package/.medusa/server/src/links/{product-vendor-product-attribute-link.d.ts → category-seller-link.d.ts} +0 -0
  720. package/.medusa/server/src/links/{seller-attribute-link.d.ts → offer-inventory-item-link.d.ts} +0 -0
  721. package/.medusa/server/src/links/{seller-attribute-value-link.d.ts → offer-price-set-link.d.ts} +0 -0
  722. package/.medusa/server/src/links/{seller-vendor-product-attribute-link.d.ts → offer-seller-link.d.ts} +0 -0
  723. package/.medusa/server/src/workflows/{hooks/product-created.d.ts → cart/hooks/validate-add-to-cart-stock.d.ts} +0 -0
  724. package/.medusa/server/src/workflows/{hooks/product-variant-created.d.ts → cart/hooks/validate-update-line-item-stock.d.ts} +0 -0
  725. package/.medusa/server/src/workflows/{attribute → product-edit}/index.d.ts +1 -1
@@ -0,0 +1,137 @@
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 product_attribute_1 = __importDefault(require("./product-attribute"));
9
+ const product_attribute_value_1 = __importDefault(require("./product-attribute-value"));
10
+ const product_brand_1 = __importDefault(require("./product-brand"));
11
+ const product_category_1 = __importDefault(require("./product-category"));
12
+ const product_change_1 = __importDefault(require("./product-change"));
13
+ const product_collection_1 = __importDefault(require("./product-collection"));
14
+ const product_image_1 = __importDefault(require("./product-image"));
15
+ const product_tag_1 = __importDefault(require("./product-tag"));
16
+ const product_type_1 = __importDefault(require("./product-type"));
17
+ const product_variant_1 = __importDefault(require("./product-variant"));
18
+ const Product = utils_1.model
19
+ .define("Product", {
20
+ // --- Medusa original fields (unchanged) ---
21
+ id: utils_1.model.id({ prefix: "prod" }).primaryKey(),
22
+ title: utils_1.model.text().searchable().translatable(),
23
+ handle: utils_1.model.text(),
24
+ subtitle: utils_1.model.text().searchable().translatable().nullable(),
25
+ description: utils_1.model.text().searchable().translatable().nullable(),
26
+ is_giftcard: utils_1.model.boolean().default(false),
27
+ thumbnail: utils_1.model.text().nullable(),
28
+ weight: utils_1.model.text().nullable(),
29
+ length: utils_1.model.text().nullable(),
30
+ height: utils_1.model.text().nullable(),
31
+ width: utils_1.model.text().nullable(),
32
+ origin_country: utils_1.model.text().nullable(),
33
+ hs_code: utils_1.model.text().nullable(),
34
+ mid_code: utils_1.model.text().nullable(),
35
+ material: utils_1.model.text().translatable().nullable(),
36
+ discountable: utils_1.model.boolean().default(true),
37
+ external_id: utils_1.model.text().nullable(),
38
+ metadata: utils_1.model.json().nullable(),
39
+ // --- Marketplace additions ---
40
+ status: utils_1.model.enum(types_1.ProductStatus).default(types_1.ProductStatus.PROPOSED),
41
+ is_restricted: utils_1.model.boolean().default(false),
42
+ created_by: utils_1.model.text().nullable(),
43
+ created_by_actor: utils_1.model.text().searchable().nullable(),
44
+ // --- Medusa original relations (unchanged) ---
45
+ variants: utils_1.model.hasMany(() => product_variant_1.default, {
46
+ mappedBy: "product",
47
+ }),
48
+ type: utils_1.model
49
+ .belongsTo(() => product_type_1.default, {
50
+ mappedBy: "products",
51
+ })
52
+ .nullable(),
53
+ brand: utils_1.model
54
+ .belongsTo(() => product_brand_1.default, {
55
+ mappedBy: "products",
56
+ })
57
+ .nullable(),
58
+ tags: utils_1.model.manyToMany(() => product_tag_1.default, {
59
+ mappedBy: "products",
60
+ pivotTable: "product_tags",
61
+ }),
62
+ images: utils_1.model.hasMany(() => product_image_1.default, {
63
+ mappedBy: "product",
64
+ }),
65
+ collection: utils_1.model
66
+ .belongsTo(() => product_collection_1.default, {
67
+ mappedBy: "products",
68
+ })
69
+ .nullable(),
70
+ categories: utils_1.model.manyToMany(() => product_category_1.default, {
71
+ pivotTable: "product_category_product",
72
+ mappedBy: "products",
73
+ }),
74
+ variant_attributes: utils_1.model.manyToMany(() => product_attribute_1.default, {
75
+ pivotTable: "product_variant_attribute",
76
+ mappedBy: "variant_products",
77
+ }),
78
+ custom_attributes: utils_1.model.hasMany(() => product_attribute_1.default, {
79
+ mappedBy: "product",
80
+ }),
81
+ attribute_values: utils_1.model.manyToMany(() => product_attribute_value_1.default, {
82
+ pivotTable: "product_attribute_value_link",
83
+ mappedBy: "products",
84
+ }),
85
+ changes: utils_1.model.hasMany(() => product_change_1.default, {
86
+ mappedBy: "product",
87
+ }),
88
+ })
89
+ .cascades({
90
+ delete: ["variants", "images", "custom_attributes"],
91
+ })
92
+ .indexes([
93
+ {
94
+ name: "IDX_product_handle_unique",
95
+ on: ["handle"],
96
+ unique: true,
97
+ where: "deleted_at IS NULL",
98
+ },
99
+ {
100
+ name: "IDX_product_type_id",
101
+ on: ["type_id"],
102
+ unique: false,
103
+ where: "deleted_at IS NULL",
104
+ },
105
+ {
106
+ name: "IDX_product_collection_id",
107
+ on: ["collection_id"],
108
+ unique: false,
109
+ where: "deleted_at IS NULL",
110
+ },
111
+ {
112
+ name: "IDX_product_status",
113
+ on: ["status"],
114
+ unique: false,
115
+ where: "deleted_at IS NULL",
116
+ },
117
+ {
118
+ name: "IDX_product_brand_id",
119
+ on: ["brand_id"],
120
+ unique: false,
121
+ where: "deleted_at IS NULL",
122
+ },
123
+ {
124
+ name: "IDX_product_created_by",
125
+ on: ["created_by"],
126
+ unique: false,
127
+ where: "deleted_at IS NULL AND created_by IS NOT NULL",
128
+ },
129
+ {
130
+ name: "IDX_product_created_by_actor",
131
+ on: ["created_by_actor"],
132
+ unique: false,
133
+ where: "deleted_at IS NULL AND created_by_actor IS NOT NULL",
134
+ },
135
+ ]);
136
+ exports.default = Product;
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb2R1Y3QvbW9kZWxzL3Byb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsMkNBQWdEO0FBQ2hELDRFQUFtRDtBQUNuRCx3RkFBOEQ7QUFDOUQsb0VBQTJDO0FBQzNDLDBFQUFpRDtBQUNqRCxzRUFBNkM7QUFDN0MsOEVBQXFEO0FBQ3JELG9FQUEyQztBQUMzQyxnRUFBdUM7QUFDdkMsa0VBQXlDO0FBQ3pDLHdFQUErQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxhQUFLO0tBQ2xCLE1BQU0sQ0FBQyxTQUFTLEVBQUU7SUFDakIsNkNBQTZDO0lBQzdDLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzdDLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFFO0lBQy9DLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdELFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hFLFdBQVcsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMzQyxTQUFTLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixNQUFNLEVBQUUsYUFBSyxDQUFD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
@@ -0,0 +1,53 @@
1
+ import { Context, DAL, InferEntityType, ProductCategoryTransformOptions } from "@medusajs/framework/types";
2
+ import { DALUtils } from "@medusajs/framework/utils";
3
+ import { SqlEntityManager } from "@medusajs/framework/mikro-orm/postgresql";
4
+ import { ProductCategory } from "../models";
5
+ type UpdateCategoryInput = {
6
+ id: string;
7
+ name?: string;
8
+ description?: string;
9
+ handle?: string;
10
+ is_active?: boolean;
11
+ is_internal?: boolean;
12
+ is_restricted?: boolean;
13
+ rank?: number;
14
+ parent_category_id?: string | null;
15
+ parent_category?: {
16
+ id: string;
17
+ } | null;
18
+ category_children?: any[];
19
+ metadata?: Record<string, unknown> | null;
20
+ mpath?: string;
21
+ };
22
+ export declare class ProductCategoryRepository extends DALUtils.MikroOrmBaseTreeRepository<typeof ProductCategory> {
23
+ buildFindOptions(findOptions?: DAL.FindOptions<typeof ProductCategory>, familyOptions?: ProductCategoryTransformOptions): DAL.FindOptions<typeof ProductCategory>;
24
+ find(findOptions?: DAL.FindOptions<typeof ProductCategory>, transformOptions?: ProductCategoryTransformOptions, context?: Context): Promise<InferEntityType<typeof ProductCategory>[]>;
25
+ sortCategoriesByRank(categories: InferEntityType<typeof ProductCategory>[]): InferEntityType<typeof ProductCategory>[];
26
+ buildProductCategoriesWithTree(include: {
27
+ descendants?: boolean;
28
+ ancestors?: boolean;
29
+ }, productCategories: InferEntityType<typeof ProductCategory>[], findOptions?: DAL.FindOptions<typeof ProductCategory> & {
30
+ serialize?: boolean;
31
+ }, context?: Context): Promise<InferEntityType<typeof ProductCategory>[]>;
32
+ findAndCount(findOptions?: DAL.FindOptions<typeof ProductCategory>, transformOptions?: ProductCategoryTransformOptions, context?: Context): Promise<[InferEntityType<typeof ProductCategory>[], number]>;
33
+ delete(ids: string[], context?: Context): Promise<string[]>;
34
+ softDelete(ids: string[], context?: Context): Promise<[
35
+ InferEntityType<typeof ProductCategory>[],
36
+ Record<string, unknown[]>
37
+ ]>;
38
+ restore(ids: string[], context?: Context): Promise<[
39
+ InferEntityType<typeof ProductCategory>[],
40
+ Record<string, unknown[]>
41
+ ]>;
42
+ baseDelete(ids: string[], context?: Context): Promise<void>;
43
+ create(data: any[], context?: Context): Promise<InferEntityType<typeof ProductCategory>[]>;
44
+ update(data: UpdateCategoryInput[], context?: Context): Promise<InferEntityType<typeof ProductCategory>[]>;
45
+ protected rerankSiblingsAfterDeletion(manager: SqlEntityManager, removedSibling: Partial<InferEntityType<typeof ProductCategory>>): Promise<void>;
46
+ protected rerankSiblingsAfterCreation(manager: SqlEntityManager, addedSibling: Partial<InferEntityType<typeof ProductCategory>>): Promise<void>;
47
+ protected rerankAllSiblings(manager: SqlEntityManager, originalSibling: Partial<InferEntityType<typeof ProductCategory>> & {
48
+ rank: number;
49
+ }, updatedSibling: Partial<InferEntityType<typeof ProductCategory>> & {
50
+ rank: number;
51
+ }): Promise<void>;
52
+ }
53
+ export {};
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductCategoryRepository = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const core_1 = require("@medusajs/framework/mikro-orm/core");
6
+ const models_1 = require("../models");
7
+ // eslint-disable-next-line max-len
8
+ class ProductCategoryRepository extends utils_1.DALUtils.MikroOrmBaseTreeRepository {
9
+ buildFindOptions(findOptions = { where: {} }, familyOptions = {}) {
10
+ const findOptions_ = { ...findOptions };
11
+ findOptions_.options ??= {};
12
+ findOptions_.options.orderBy ??= {
13
+ id: "ASC",
14
+ rank: "ASC",
15
+ };
16
+ const fields = (findOptions_.options.fields ??= []);
17
+ const populate = (findOptions_.options.populate ??= []);
18
+ if (familyOptions.includeDescendantsTree ||
19
+ familyOptions.includeAncestorsTree) {
20
+ fields.indexOf("mpath") === -1 && fields.push("mpath");
21
+ fields.indexOf("parent_category_id") === -1 &&
22
+ fields.push("parent_category_id");
23
+ }
24
+ const shouldExpandParent = familyOptions.includeAncestorsTree ||
25
+ populate.includes("parent_category") ||
26
+ fields.some((field) => field.startsWith("parent_category."));
27
+ if (shouldExpandParent) {
28
+ populate.indexOf("parent_category") === -1 &&
29
+ populate.push("parent_category");
30
+ }
31
+ const shouldExpandChildren = familyOptions.includeDescendantsTree ||
32
+ populate.includes("category_children") ||
33
+ fields.some((field) => field.startsWith("category_children."));
34
+ if (shouldExpandChildren) {
35
+ populate.indexOf("category_children") === -1 &&
36
+ populate.push("category_children");
37
+ }
38
+ Object.assign(findOptions_.options, {
39
+ strategy: core_1.LoadStrategy.SELECT_IN,
40
+ });
41
+ return findOptions_;
42
+ }
43
+ async find(findOptions = { where: {} }, transformOptions = {}, context = {}) {
44
+ const manager = super.getActiveManager(context);
45
+ const findOptions_ = this.buildFindOptions(findOptions, transformOptions);
46
+ const productCategories = await manager.find(models_1.ProductCategory.name, findOptions_.where, { ...findOptions_.options });
47
+ if (!transformOptions.includeDescendantsTree &&
48
+ !transformOptions.includeAncestorsTree) {
49
+ return productCategories;
50
+ }
51
+ const categoriesTree = await this.buildProductCategoriesWithTree({
52
+ descendants: transformOptions.includeDescendantsTree,
53
+ ancestors: transformOptions.includeAncestorsTree,
54
+ }, productCategories, findOptions_, context);
55
+ return this.sortCategoriesByRank(categoriesTree);
56
+ }
57
+ sortCategoriesByRank(categories) {
58
+ const sortedCategories = categories.sort((a, b) => a.rank - b.rank);
59
+ for (const category of sortedCategories) {
60
+ if (category.category_children) {
61
+ category.category_children = this.sortCategoriesByRank(category.category_children);
62
+ }
63
+ }
64
+ return sortedCategories;
65
+ }
66
+ async buildProductCategoriesWithTree(include, productCategories, findOptions = { where: {} }, context = {}) {
67
+ const { serialize = true } = findOptions;
68
+ delete findOptions.serialize;
69
+ const manager = super.getActiveManager(context);
70
+ let relationIndex = findOptions.options?.populate?.indexOf("parent_category") ?? -1;
71
+ const shouldPopulateParent = relationIndex !== -1;
72
+ if (shouldPopulateParent && include.ancestors) {
73
+ findOptions.options.populate.splice(relationIndex, 1);
74
+ }
75
+ relationIndex =
76
+ findOptions.options?.populate?.indexOf("category_children") ?? -1;
77
+ const shouldPopulateChildren = relationIndex !== -1;
78
+ if (shouldPopulateChildren && include.descendants) {
79
+ findOptions.options.populate.splice(relationIndex, 1);
80
+ }
81
+ const mpaths = [];
82
+ const parentMpaths = new Set();
83
+ for (const cat of productCategories) {
84
+ if (include.descendants) {
85
+ mpaths.push({ mpath: { $like: `${cat.mpath}%` } });
86
+ }
87
+ if (include.ancestors) {
88
+ let parent = "";
89
+ cat.mpath?.split(".").forEach((mpath) => {
90
+ parentMpaths.add(parent + mpath);
91
+ parent += mpath + ".";
92
+ });
93
+ }
94
+ }
95
+ mpaths.push({ mpath: Array.from(parentMpaths) });
96
+ const where = { ...findOptions.where, $or: mpaths };
97
+ const options = {
98
+ ...findOptions.options,
99
+ limit: undefined,
100
+ offset: 0,
101
+ };
102
+ delete where.id;
103
+ delete where.handle;
104
+ delete where.mpath;
105
+ delete where.parent_category_id;
106
+ const categoriesInTree = serialize
107
+ ? await this.serialize(await manager.find(models_1.ProductCategory.name, where, options))
108
+ : await manager.find(models_1.ProductCategory.name, where, options);
109
+ const categoriesById = new Map(categoriesInTree.map((cat) => [cat.id, cat]));
110
+ categoriesInTree.forEach((cat) => {
111
+ if (cat.parent_category_id && include.ancestors) {
112
+ cat.parent_category = categoriesById.get(cat.parent_category_id);
113
+ cat.parent_category_id = categoriesById.get(cat.parent_category_id)?.["id"];
114
+ }
115
+ });
116
+ const populateChildren = (category, level = 0) => {
117
+ const categories = categoriesInTree.filter((child) => child.parent_category_id === category.id);
118
+ if (include.descendants) {
119
+ category.category_children = categories.map((child) => {
120
+ return populateChildren(categoriesById.get(child.id), level + 1);
121
+ });
122
+ }
123
+ if (level === 0) {
124
+ if (!include.ancestors && !shouldPopulateParent) {
125
+ delete category.parent_category;
126
+ }
127
+ return category;
128
+ }
129
+ if (include.ancestors) {
130
+ delete category.category_children;
131
+ }
132
+ if (include.descendants) {
133
+ delete category.parent_category;
134
+ }
135
+ return category;
136
+ };
137
+ const populatedProductCategories = productCategories.map((cat) => {
138
+ const fullCategory = categoriesById.get(cat.id);
139
+ return populateChildren(fullCategory);
140
+ });
141
+ return populatedProductCategories;
142
+ }
143
+ async findAndCount(findOptions = { where: {} }, transformOptions = {}, context = {}) {
144
+ const manager = super.getActiveManager(context);
145
+ const findOptions_ = this.buildFindOptions(findOptions, transformOptions);
146
+ const [productCategories, count] = (await manager.findAndCount(models_1.ProductCategory.name, findOptions_.where, findOptions_.options));
147
+ if (!transformOptions.includeDescendantsTree &&
148
+ !transformOptions.includeAncestorsTree) {
149
+ return [productCategories, count];
150
+ }
151
+ const categoriesTree = await this.buildProductCategoriesWithTree({
152
+ descendants: transformOptions.includeDescendantsTree,
153
+ ancestors: transformOptions.includeAncestorsTree,
154
+ }, productCategories, findOptions_, context);
155
+ return [this.sortCategoriesByRank(categoriesTree), count];
156
+ }
157
+ async delete(ids, context = {}) {
158
+ const manager = super.getActiveManager(context);
159
+ await this.baseDelete(ids, context);
160
+ await manager.nativeDelete(models_1.ProductCategory.name, { id: ids }, {});
161
+ return ids;
162
+ }
163
+ async softDelete(ids, context = {}) {
164
+ const manager = super.getActiveManager(context);
165
+ await this.baseDelete(ids, context);
166
+ const categories = await Promise.all(ids.map(async (id) => {
167
+ const productCategory = await manager.findOne(models_1.ProductCategory.name, {
168
+ id,
169
+ });
170
+ if (!productCategory) {
171
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `ProductCategory with id: ${id} was not found`);
172
+ }
173
+ manager.assign(productCategory, { deleted_at: new Date() });
174
+ return productCategory;
175
+ }));
176
+ manager.persist(categories);
177
+ return [categories, {}];
178
+ }
179
+ async restore(ids, context = {}) {
180
+ const manager = super.getActiveManager(context);
181
+ const categories = await Promise.all(ids.map(async (id) => {
182
+ const productCategory = await manager.findOneOrFail(models_1.ProductCategory.name, {
183
+ id,
184
+ });
185
+ manager.assign(productCategory, { deleted_at: null });
186
+ return productCategory;
187
+ }));
188
+ manager.persist(categories);
189
+ return [categories, {}];
190
+ }
191
+ async baseDelete(ids, context = {}) {
192
+ const manager = super.getActiveManager(context);
193
+ await Promise.all(ids.map(async (id) => {
194
+ const productCategory = await manager.findOne(models_1.ProductCategory.name, { id }, {
195
+ populate: ["category_children"],
196
+ });
197
+ if (!productCategory) {
198
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `ProductCategory with id: ${id} was not found`);
199
+ }
200
+ if (productCategory.category_children.length > 0) {
201
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, `Deleting ProductCategory (${id}) with category children is not allowed`);
202
+ }
203
+ await this.rerankSiblingsAfterDeletion(manager, productCategory);
204
+ }));
205
+ }
206
+ async create(data, context = {}) {
207
+ const manager = super.getActiveManager(context);
208
+ const categories = await Promise.all(data.map(async (entry, i) => {
209
+ const categoryData = {
210
+ ...entry,
211
+ };
212
+ const siblingsCount = await manager.count(models_1.ProductCategory.name, {
213
+ parent_category_id: categoryData?.parent_category_id || null,
214
+ });
215
+ categoryData.rank ??= siblingsCount + i;
216
+ if (categoryData.rank > siblingsCount + i) {
217
+ categoryData.rank = siblingsCount + i;
218
+ }
219
+ if (categoryData.rank < siblingsCount + i) {
220
+ await this.rerankSiblingsAfterCreation(manager, categoryData);
221
+ }
222
+ let parentCategory = null;
223
+ const parentCategoryId = categoryData.parent_category_id ??
224
+ categoryData.parent_category?.id;
225
+ if (parentCategoryId) {
226
+ parentCategory = await manager.findOne(models_1.ProductCategory.name, parentCategoryId);
227
+ if (!parentCategory) {
228
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, `Parent category with id: '${parentCategoryId}' does not exist`);
229
+ }
230
+ }
231
+ const result = await manager.create(models_1.ProductCategory.name, categoryData);
232
+ manager.assign(result, {
233
+ mpath: parentCategory
234
+ ? `${parentCategory.mpath}.${result.id}`
235
+ : result.id,
236
+ });
237
+ return result;
238
+ }));
239
+ manager.persist(categories);
240
+ return categories;
241
+ }
242
+ async update(data, context = {}) {
243
+ const manager = super.getActiveManager(context);
244
+ const categories = await Promise.all(data.map(async (entry, i) => {
245
+ const categoryData = {
246
+ ...entry,
247
+ };
248
+ let productCategory = await manager.findOne(models_1.ProductCategory.name, categoryData.id);
249
+ if (!productCategory) {
250
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `ProductCategory with id: ${categoryData.id} was not found`);
251
+ }
252
+ if (!(0, utils_1.isDefined)(categoryData.parent_category_id) &&
253
+ !(0, utils_1.isDefined)(categoryData.rank)) {
254
+ for (const key in categoryData) {
255
+ if ((0, utils_1.isDefined)(categoryData[key])) {
256
+ productCategory[key] = categoryData[key];
257
+ }
258
+ }
259
+ manager.assign(productCategory, categoryData);
260
+ return productCategory;
261
+ }
262
+ if ((0, utils_1.isDefined)(categoryData.parent_category_id) &&
263
+ categoryData.parent_category_id !== productCategory.parent_category_id) {
264
+ if (categoryData.parent_category_id === null) {
265
+ categoryData.mpath = "";
266
+ }
267
+ else {
268
+ productCategory = (await this.buildProductCategoriesWithTree({
269
+ descendants: true,
270
+ }, [productCategory], {
271
+ where: { id: productCategory.id },
272
+ serialize: false,
273
+ }, context))[0];
274
+ const newParentCategory = await manager.findOne(models_1.ProductCategory.name, categoryData.parent_category_id);
275
+ if (!newParentCategory) {
276
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_ARGUMENT, `Parent category with id: '${categoryData.parent_category_id}' does not exist`);
277
+ }
278
+ const categoryDataChildren = categoryData.category_children?.flatMap((child) => child.category_children ?? []);
279
+ const categoryDataChildrenMap = new Map(categoryDataChildren?.map((child) => [child.id, child]));
280
+ function updateMpathRecursively(category, newBaseMpath) {
281
+ const newMpath = `${newBaseMpath}.${category.id}`;
282
+ category.mpath = newMpath;
283
+ for (let child of category.category_children) {
284
+ child = manager.getReference(models_1.ProductCategory.name, child.id);
285
+ manager.assign(child, categoryDataChildrenMap.get(child.id) ?? {});
286
+ updateMpathRecursively(child, newMpath);
287
+ }
288
+ }
289
+ updateMpathRecursively(productCategory, newParentCategory.mpath);
290
+ }
291
+ const siblingsCount = await manager.count(models_1.ProductCategory.name, {
292
+ parent_category_id: categoryData.parent_category_id,
293
+ });
294
+ categoryData.rank ??= siblingsCount + i;
295
+ if (categoryData.rank > siblingsCount + i) {
296
+ categoryData.rank = siblingsCount + i;
297
+ }
298
+ if (categoryData.rank < siblingsCount + i) {
299
+ await this.rerankSiblingsAfterCreation(manager, categoryData);
300
+ }
301
+ await this.rerankSiblingsAfterDeletion(manager, productCategory);
302
+ for (const key in categoryData) {
303
+ if ((0, utils_1.isDefined)(categoryData[key])) {
304
+ productCategory[key] = categoryData[key];
305
+ }
306
+ }
307
+ manager.assign(productCategory, categoryData);
308
+ return productCategory;
309
+ }
310
+ else if ((0, utils_1.isDefined)(categoryData.rank)) {
311
+ const siblingsCount = await manager.count(models_1.ProductCategory.name, {
312
+ parent_category_id: productCategory.parent_category_id,
313
+ });
314
+ if (categoryData.rank > siblingsCount - 1 + i) {
315
+ categoryData.rank = siblingsCount - 1 + i;
316
+ }
317
+ await this.rerankAllSiblings(manager, productCategory, categoryData);
318
+ }
319
+ for (const key in categoryData) {
320
+ if ((0, utils_1.isDefined)(categoryData[key])) {
321
+ productCategory[key] = categoryData[key];
322
+ }
323
+ }
324
+ manager.assign(productCategory, categoryData);
325
+ return productCategory;
326
+ }));
327
+ manager.persist(categories);
328
+ return categories;
329
+ }
330
+ async rerankSiblingsAfterDeletion(manager, removedSibling) {
331
+ const affectedSiblings = await manager.find(models_1.ProductCategory.name, {
332
+ parent_category_id: removedSibling.parent_category_id,
333
+ rank: { $gt: removedSibling.rank },
334
+ });
335
+ const updatedSiblings = affectedSiblings.map((sibling) => {
336
+ manager.assign(sibling, { rank: sibling.rank - 1 });
337
+ return sibling;
338
+ });
339
+ manager.persist(updatedSiblings);
340
+ }
341
+ async rerankSiblingsAfterCreation(manager, addedSibling) {
342
+ const affectedSiblings = await manager.find(models_1.ProductCategory.name, {
343
+ parent_category_id: addedSibling.parent_category_id,
344
+ rank: { $gte: addedSibling.rank },
345
+ });
346
+ const updatedSiblings = affectedSiblings.map((sibling) => {
347
+ manager.assign(sibling, { rank: sibling.rank + 1 });
348
+ return sibling;
349
+ });
350
+ manager.persist(updatedSiblings);
351
+ }
352
+ async rerankAllSiblings(manager, originalSibling, updatedSibling) {
353
+ if (originalSibling.rank === updatedSibling.rank) {
354
+ return;
355
+ }
356
+ if (originalSibling.rank < updatedSibling.rank) {
357
+ const siblings = await manager.find(models_1.ProductCategory.name, {
358
+ parent_category_id: originalSibling.parent_category_id,
359
+ rank: { $gt: originalSibling.rank, $lte: updatedSibling.rank },
360
+ }, { orderBy: { rank: "ASC" } });
361
+ const updatedSiblings = siblings.map((sibling) => {
362
+ manager.assign(sibling, { rank: sibling.rank - 1 });
363
+ return sibling;
364
+ });
365
+ manager.persist(updatedSiblings);
366
+ }
367
+ else {
368
+ const siblings = await manager.find(models_1.ProductCategory.name, {
369
+ parent_category_id: originalSibling.parent_category_id,
370
+ rank: { $gte: updatedSibling.rank, $lt: originalSibling.rank },
371
+ }, { orderBy: { rank: "ASC" } });
372
+ const updatedSiblings = siblings.map((sibling) => {
373
+ manager.assign(sibling, { rank: sibling.rank + 1 });
374
+ return sibling;
375
+ });
376
+ manager.persist(updatedSiblings);
377
+ }
378
+ }
379
+ }
380
+ exports.ProductCategoryRepository = ProductCategoryRepository;
381
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXRlZ29yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb2R1Y3QvcmVwb3NpdG9yaWVzL3Byb2R1Y3QtY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEscURBQTRFO0FBQzVFLDZEQUcyQztBQUUzQyxzQ0FBMkM7QUFrQjNDLG1DQUFtQztBQUNuQyxNQUFhLHlCQUEwQixTQUFRLGdCQUFRLENBQUMsMEJBRXZEO0lBQ0MsZ0JBQWdCLENBQ2QsY0FBdUQsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQ3BFLGdCQUFpRCxFQUFFO1FBRW5ELE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQTtRQUN2QyxZQUFZLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQTtRQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSztZQUMvQixFQUFFLEVBQUUsS0FBSztZQUNULElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUV2RCxJQUNFLGFBQWEsQ0FBQyxzQkFBc0I7WUFDcEMsYUFBYSxDQUFDLG9CQUFvQixFQUNsQyxDQUFDO1lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3RELE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FB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