@mercurjs/b2c-core 1.5.1 → 1.5.3

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 (162) hide show
  1. package/.medusa/server/src/api/admin/custom/middlewares.d.ts +2 -0
  2. package/.medusa/server/src/api/admin/custom/middlewares.js +8 -0
  3. package/.medusa/server/src/api/admin/custom/product-variants/middlewares.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/custom/product-variants/middlewares.js +16 -0
  5. package/.medusa/server/src/api/admin/custom/product-variants/query-config.d.ts +7 -0
  6. package/.medusa/server/src/api/admin/custom/product-variants/query-config.js +48 -0
  7. package/.medusa/server/src/api/admin/custom/product-variants/route.d.ts +100 -0
  8. package/.medusa/server/src/api/admin/custom/product-variants/route.js +133 -0
  9. package/.medusa/server/src/api/admin/custom/product-variants/utils.d.ts +19 -0
  10. package/.medusa/server/src/api/admin/custom/product-variants/utils.js +31 -0
  11. package/.medusa/server/src/api/admin/custom/product-variants/validators.d.ts +327 -0
  12. package/.medusa/server/src/api/admin/custom/product-variants/validators.js +34 -0
  13. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +2 -2
  14. package/.medusa/server/src/api/admin/middlewares.js +13 -7
  15. package/.medusa/server/src/api/admin/order-sets/query-config.js +6 -2
  16. package/.medusa/server/src/api/admin/order-sets/route.d.ts +38 -2
  17. package/.medusa/server/src/api/admin/order-sets/route.js +46 -27
  18. package/.medusa/server/src/api/admin/order-sets/validators.d.ts +100 -1
  19. package/.medusa/server/src/api/admin/order-sets/validators.js +10 -3
  20. package/.medusa/server/src/api/admin/orders/[id]/route.d.ts +3 -3
  21. package/.medusa/server/src/api/admin/orders/[id]/route.js +6 -6
  22. package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
  23. package/.medusa/server/src/api/admin/orders/middlewares.js +17 -0
  24. package/.medusa/server/src/api/admin/products/validators.d.ts +98 -98
  25. package/.medusa/server/src/api/admin/reservations/middlewares.d.ts +2 -0
  26. package/.medusa/server/src/api/admin/reservations/middlewares.js +12 -0
  27. package/.medusa/server/src/api/hooks/middlewares.js +6 -1
  28. package/.medusa/server/src/api/store/carts/[id]/line-items/[line_id]/route.js +2 -2
  29. package/.medusa/server/src/api/store/carts/[id]/route.d.ts +6 -0
  30. package/.medusa/server/src/api/store/carts/[id]/route.js +32 -0
  31. package/.medusa/server/src/api/store/carts/middlewares.js +4 -5
  32. package/.medusa/server/src/api/store/wishlist/middlewares.js +2 -2
  33. package/.medusa/server/src/api/store/wishlist/route.js +3 -4
  34. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +22 -44
  35. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +31 -46
  36. package/.medusa/server/src/api/vendor/campaigns/middlewares.js +30 -18
  37. package/.medusa/server/src/api/vendor/campaigns/query-config.js +2 -2
  38. package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +11 -0
  39. package/.medusa/server/src/api/vendor/campaigns/validators.js +3 -2
  40. package/.medusa/server/src/api/vendor/customer-groups/validators.js +1 -1
  41. package/.medusa/server/src/api/vendor/customers/route.js +2 -2
  42. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +1 -2
  43. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +5 -2
  44. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +8 -8
  45. package/.medusa/server/src/api/vendor/me/route.d.ts +1 -2
  46. package/.medusa/server/src/api/vendor/me/route.js +1 -1
  47. package/.medusa/server/src/api/vendor/members/[id]/route.js +3 -3
  48. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +2 -2
  49. package/.medusa/server/src/api/vendor/product-collections/[id]/products/route.d.ts +91 -0
  50. package/.medusa/server/src/api/vendor/product-collections/[id]/products/route.js +120 -2
  51. package/.medusa/server/src/api/vendor/product-collections/middlewares.js +20 -2
  52. package/.medusa/server/src/api/vendor/product-types/validators.d.ts +153 -1
  53. package/.medusa/server/src/api/vendor/product-types/validators.js +6 -3
  54. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.d.ts +3 -0
  55. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +20 -0
  56. package/.medusa/server/src/api/vendor/products/batch/route.d.ts +34 -0
  57. package/.medusa/server/src/api/vendor/products/batch/route.js +79 -0
  58. package/.medusa/server/src/api/vendor/products/middlewares.js +19 -5
  59. package/.medusa/server/src/api/vendor/products/route.js +4 -4
  60. package/.medusa/server/src/api/vendor/products/utils.d.ts +16 -1
  61. package/.medusa/server/src/api/vendor/products/utils.js +69 -3
  62. package/.medusa/server/src/api/vendor/products/validators.d.ts +218 -102
  63. package/.medusa/server/src/api/vendor/products/validators.js +52 -2
  64. package/.medusa/server/src/api/vendor/reservations/middlewares.d.ts +4 -1
  65. package/.medusa/server/src/api/vendor/reservations/middlewares.js +23 -3
  66. package/.medusa/server/src/api/vendor/reservations/route.js +5 -3
  67. package/.medusa/server/src/api/vendor/reservations/validators.d.ts +45 -3
  68. package/.medusa/server/src/api/vendor/reservations/validators.js +5 -1
  69. package/.medusa/server/src/api/vendor/sellers/validators.js +1 -1
  70. package/.medusa/server/src/api/vendor/shipping-options/query-config.js +3 -1
  71. package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +156 -1
  72. package/.medusa/server/src/api/vendor/shipping-options/validators.js +13 -3
  73. package/.medusa/server/src/api/vendor/stock-locations/[id]/route.d.ts +1 -2
  74. package/.medusa/server/src/api/vendor/stock-locations/[id]/route.js +1 -1
  75. package/.medusa/server/src/api/vendor/stock-locations/middlewares.js +11 -1
  76. package/.medusa/server/src/modules/payout/services/provider.js +1 -2
  77. package/.medusa/server/src/modules/seller/service.js +2 -2
  78. package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.d.ts +26 -7
  79. package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.js +58 -19
  80. package/.medusa/server/src/shared/infra/http/middlewares/index.d.ts +1 -0
  81. package/.medusa/server/src/shared/infra/http/middlewares/index.js +2 -1
  82. package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.d.ts +19 -0
  83. package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.js +28 -0
  84. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-attribute-options-path-params-guard.js +2 -2
  85. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +2 -2
  86. package/.medusa/server/src/shared/infra/http/utils/hosts.d.ts +7 -4
  87. package/.medusa/server/src/shared/infra/http/utils/hosts.js +16 -5
  88. package/.medusa/server/src/shared/infra/http/utils/products.js +2 -2
  89. package/.medusa/server/src/shared/infra/http/utils/unless-base-url.d.ts +1 -3
  90. package/.medusa/server/src/shared/infra/http/utils/unless-base-url.js +1 -1
  91. package/.medusa/server/src/subscribers/notification-seller-new-order.d.ts +1 -1
  92. package/.medusa/server/src/subscribers/notification-seller-new-order.js +44 -37
  93. package/.medusa/server/src/subscribers/payout-webhook.js +1 -1
  94. package/.medusa/server/src/subscribers/seller-status-changed.js +2 -3
  95. package/.medusa/server/src/utils/stock-locations.d.ts +9 -0
  96. package/.medusa/server/src/utils/stock-locations.js +231 -0
  97. package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +1 -1
  98. package/.medusa/server/src/workflows/attribute/utils/validate-attribute-values-to-link.js +2 -2
  99. package/.medusa/server/src/workflows/cart/steps/create-order-set.js +1 -1
  100. package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +1 -1
  101. package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +5 -7
  102. package/.medusa/server/src/workflows/configuration/steps/create-configuration-rule.js +1 -1
  103. package/.medusa/server/src/workflows/fulfillment-set/create-vendor-service-zone.js +2 -2
  104. package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.d.ts +1 -0
  105. package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.js +75 -0
  106. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +4 -4
  107. package/.medusa/server/src/workflows/hooks/product-deleted.js +12 -5
  108. package/.medusa/server/src/workflows/order/steps/create-payout.js +1 -1
  109. package/.medusa/server/src/workflows/order/steps/validate-seller-payout-account.js +2 -2
  110. package/.medusa/server/src/workflows/order-set/index.d.ts +1 -0
  111. package/.medusa/server/src/workflows/order-set/index.js +2 -1
  112. package/.medusa/server/src/workflows/order-set/steps/filter-order-sets-with-knex.d.ts +14 -0
  113. package/.medusa/server/src/workflows/order-set/steps/filter-order-sets-with-knex.js +196 -0
  114. package/.medusa/server/src/workflows/order-set/steps/index.d.ts +1 -0
  115. package/.medusa/server/src/workflows/order-set/steps/index.js +18 -0
  116. package/.medusa/server/src/workflows/order-set/utils/format-order-sets.d.ts +3 -3
  117. package/.medusa/server/src/workflows/order-set/utils/format-order-sets.js +38 -35
  118. package/.medusa/server/src/workflows/order-set/workflows/filter-and-list-order-sets.d.ts +12 -0
  119. package/.medusa/server/src/workflows/order-set/workflows/filter-and-list-order-sets.js +100 -0
  120. package/.medusa/server/src/workflows/order-set/workflows/get-formatted-order-set-list.js +5 -2
  121. package/.medusa/server/src/workflows/order-set/workflows/index.d.ts +2 -1
  122. package/.medusa/server/src/workflows/order-set/workflows/index.js +2 -1
  123. package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +1 -1
  124. package/.medusa/server/src/workflows/price-list/steps/validate-vendor-price-list-prices.js +2 -2
  125. package/.medusa/server/src/workflows/price-list/workflows/create-vendor-price-list.js +2 -2
  126. package/.medusa/server/src/workflows/product/steps/update-product-status.js +7 -1
  127. package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts +24 -0
  128. package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js +39 -0
  129. package/.medusa/server/src/workflows/product-variants/index.d.ts +3 -0
  130. package/.medusa/server/src/workflows/product-variants/index.js +20 -0
  131. package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.d.ts +4 -0
  132. package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.js +63 -0
  133. package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.d.ts +4 -0
  134. package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.js +28 -0
  135. package/.medusa/server/src/workflows/product-variants/steps/index.d.ts +2 -0
  136. package/.medusa/server/src/workflows/product-variants/steps/index.js +19 -0
  137. package/.medusa/server/src/workflows/product-variants/types.d.ts +10 -0
  138. package/.medusa/server/src/workflows/product-variants/types.js +3 -0
  139. package/.medusa/server/src/workflows/product-variants/workflows/index.d.ts +1 -0
  140. package/.medusa/server/src/workflows/product-variants/workflows/index.js +18 -0
  141. package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts +31 -0
  142. package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js +115 -0
  143. package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts +8 -0
  144. package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js +87 -0
  145. package/.medusa/server/src/workflows/promotions/steps/index.d.ts +1 -1
  146. package/.medusa/server/src/workflows/promotions/steps/index.js +2 -2
  147. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +4 -1
  148. package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.d.ts +2 -0
  149. package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.js +165 -0
  150. package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +7 -6
  151. package/.medusa/server/src/workflows/seller/steps/create-member.js +1 -1
  152. package/.medusa/server/src/workflows/seller/steps/create-payment-account.js +1 -1
  153. package/.medusa/server/src/workflows/seller/steps/create-payout-onboarding.js +1 -1
  154. package/.medusa/server/src/workflows/seller/steps/sync-stripe-account.js +1 -1
  155. package/.medusa/server/src/workflows/seller/steps/update-member-invite.js +3 -3
  156. package/.medusa/server/src/workflows/seller/steps/update-seller.js +2 -3
  157. package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +23 -23
  158. package/.medusa/server/src/workflows/seller/workflows/import-seller-products.js +2 -2
  159. package/.medusa/server/src/workflows/wishlist/steps/create-wishlist.js +1 -1
  160. package/package.json +2 -2
  161. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +0 -9
  162. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +0 -27
@@ -20,7 +20,7 @@ exports.createVendorPriceListWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
20
20
  return result.map((list) => {
21
21
  return {
22
22
  [seller_1.SELLER_MODULE]: {
23
- seller_id: seller_id,
23
+ seller_id,
24
24
  },
25
25
  [utils_1.Modules.PRICING]: {
26
26
  price_list_id: list.id,
@@ -31,4 +31,4 @@ exports.createVendorPriceListWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
31
31
  (0, core_flows_1.createRemoteLinkStep)(links);
32
32
  return new workflows_sdk_1.WorkflowResponse(result);
33
33
  });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXZlbmRvci1wcmljZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcmljZS1saXN0L3dvcmtmbG93cy9jcmVhdGUtdmVuZG9yLXByaWNlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQW9EO0FBQ3BELDREQUdxQztBQUNyQywyREFJaUM7QUFFakMsb0RBQXdEO0FBRXhELG9DQUE2RDtBQUVoRCxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsMEJBQTBCLEVBQzFCLFVBQVUsRUFDUixnQkFBZ0IsRUFDaEIsU0FBUyxHQUlWO0lBQ0MsSUFBQSx5Q0FBaUMsRUFBQztRQUNoQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtRQUMvQixTQUFTO0tBQ1YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcscUNBQXdCLENBQUMsU0FBUyxDQUFDO1FBQ2hELEtBQUssRUFBRTtZQUNMLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDckM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pCLE9BQU87Z0JBQ0wsQ0FBQyxzQkFBYSxDQUFDLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLFNBQVM7aUJBQ3JCO2dCQUNELENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqQixhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUU7aUJBQ3ZCO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLGlDQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQ0YsQ0FBQyJ9
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXZlbmRvci1wcmljZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcmljZS1saXN0L3dvcmtmbG93cy9jcmVhdGUtdmVuZG9yLXByaWNlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQW9EO0FBQ3BELDREQUdxQztBQUNyQywyREFJaUM7QUFFakMsb0RBQXdEO0FBRXhELG9DQUE2RDtBQUVoRCxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsMEJBQTBCLEVBQzFCLFVBQVUsRUFDUixnQkFBZ0IsRUFDaEIsU0FBUyxHQUlWO0lBQ0MsSUFBQSx5Q0FBaUMsRUFBQztRQUNoQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtRQUMvQixTQUFTO0tBQ1YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcscUNBQXdCLENBQUMsU0FBUyxDQUFDO1FBQ2hELEtBQUssRUFBRTtZQUNMLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDckM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pCLE9BQU87Z0JBQ0wsQ0FBQyxzQkFBYSxDQUFDLEVBQUU7b0JBQ2YsU0FBUztpQkFDVjtnQkFDRCxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUN2QjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxpQ0FBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -3,11 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateProductStatusStep = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const framework_1 = require("@mercurjs/framework");
6
7
  exports.updateProductStatusStep = (0, workflows_sdk_1.createStep)('update-product-status', async (input, { container }) => {
7
8
  const service = container.resolve(utils_1.Modules.PRODUCT);
9
+ const eventBus = container.resolve(utils_1.Modules.EVENT_BUS);
8
10
  const product = await service.updateProducts(input.id, {
9
11
  status: input.status
10
12
  });
13
+ await eventBus.emit({
14
+ name: framework_1.AlgoliaEvents.PRODUCTS_CHANGED,
15
+ data: { ids: [input.id] }
16
+ });
11
17
  return new workflows_sdk_1.StepResponse(product, product.id);
12
18
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3Qtc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0L3N0ZXBzL3VwZGF0ZS1wcm9kdWN0LXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBa0U7QUFDbEUscUVBQTRFO0FBRS9ELFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyx1QkFBdUIsRUFDdkIsS0FBSyxFQUFFLEtBQTRDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWxELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3JELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksNEJBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FDRixDQUFBIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3Qtc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0L3N0ZXBzL3VwZGF0ZS1wcm9kdWN0LXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBa0U7QUFDbEUscUVBQTRFO0FBRTVFLG1EQUFtRDtBQUV0QyxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFBRSxLQUE0QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNsRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07S0FDckIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2xCLElBQUksRUFBRSx5QkFBYSxDQUFDLGdCQUFnQjtRQUNwQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7S0FDMUIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,24 @@
1
+ import { Knex } from "@mikro-orm/postgresql";
2
+ export interface ProductVariantFilters {
3
+ seller_id?: string;
4
+ has_price?: boolean;
5
+ has_inventory?: boolean;
6
+ /**
7
+ * Whether the variant has at least one inventory level (inventory_item at any location).
8
+ * This follows the chain: ProductVariant -> InventoryItem (pivot) -> InventoryLevel(location_id).
9
+ */
10
+ has_stock_location?: boolean;
11
+ /**
12
+ * Whether the variant has at least one admin-owned stock location.
13
+ * Admin-owned stock location = stock location that is NOT linked to any seller.
14
+ *
15
+ * Note: This filter requires looking up seller-stock-location links, so it's applied
16
+ * in the workflow step (not purely in this helper) where both Knex and Query are available.
17
+ */
18
+ has_admin_stock_location?: boolean;
19
+ }
20
+ export declare class ProductVariantFilterHelper {
21
+ private knex;
22
+ constructor(knex: Knex);
23
+ getFilteredVariantIds(filters: ProductVariantFilters): Promise<string[]>;
24
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductVariantFilterHelper = void 0;
4
+ class ProductVariantFilterHelper {
5
+ constructor(knex) {
6
+ this.knex = knex;
7
+ }
8
+ async getFilteredVariantIds(filters) {
9
+ let query = this.knex
10
+ .select("pv.id")
11
+ .from("product_variant as pv")
12
+ .distinct();
13
+ if (filters.seller_id) {
14
+ query = query
15
+ .join("seller_seller_product_product as sspp", "sspp.product_id", "pv.product_id")
16
+ .where("sspp.seller_id", filters.seller_id)
17
+ .whereNull("sspp.deleted_at");
18
+ }
19
+ if (filters.has_price !== undefined) {
20
+ query = query.whereRaw(filters.has_price
21
+ ? "EXISTS (SELECT 1 FROM product_variant_price_set pvps INNER JOIN price p ON p.price_set_id = pvps.price_set_id WHERE pvps.variant_id = pv.id AND p.deleted_at IS NULL AND pvps.deleted_at IS NULL)"
22
+ : "NOT EXISTS (SELECT 1 FROM product_variant_price_set pvps INNER JOIN price p ON p.price_set_id = pvps.price_set_id WHERE pvps.variant_id = pv.id AND p.deleted_at IS NULL AND pvps.deleted_at IS NULL)");
23
+ }
24
+ if (filters.has_inventory !== undefined) {
25
+ query = query.whereRaw(filters.has_inventory
26
+ ? "EXISTS (SELECT 1 FROM product_variant_inventory_item WHERE product_variant_inventory_item.variant_id = pv.id AND product_variant_inventory_item.deleted_at IS NULL)"
27
+ : "NOT EXISTS (SELECT 1 FROM product_variant_inventory_item WHERE product_variant_inventory_item.variant_id = pv.id AND product_variant_inventory_item.deleted_at IS NULL)");
28
+ }
29
+ if (filters.has_stock_location !== undefined) {
30
+ query = query.whereRaw(filters.has_stock_location
31
+ ? "EXISTS (SELECT 1 FROM product_variant_inventory_item pvii INNER JOIN inventory_level il ON il.inventory_item_id = pvii.inventory_item_id WHERE pvii.variant_id = pv.id AND pvii.deleted_at IS NULL AND il.location_id IS NOT NULL)"
32
+ : "NOT EXISTS (SELECT 1 FROM product_variant_inventory_item pvii INNER JOIN inventory_level il ON il.inventory_item_id = pvii.inventory_item_id WHERE pvii.variant_id = pv.id AND pvii.deleted_at IS NULL AND il.location_id IS NOT NULL)");
33
+ }
34
+ const results = await query;
35
+ return results.map((r) => r.id);
36
+ }
37
+ }
38
+ exports.ProductVariantFilterHelper = ProductVariantFilterHelper;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWZpbHRlci1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvaGVscGVycy9wcm9kdWN0LXZhcmlhbnQtZmlsdGVyLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsTUFBYSwwQkFBMEI7SUFDckMsWUFBb0IsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07SUFBRyxDQUFDO0lBRWxDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsT0FBOEI7UUFFOUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQzthQUM3QixRQUFRLEVBQUUsQ0FBQztRQUVkLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssR0FBRyxLQUFLO2lCQUNWLElBQUksQ0FDSCx1Q0FBdUMsRUFDdkMsaUJBQWlCLEVBQ2pCLGVBQWUsQ0FDaEI7aUJBQ0EsS0FBSyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7aUJBQzFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxTQUFTO2dCQUNmLENBQUMsQ0FBQyxtTUFBbU07Z0JBQ3JNLENBQUMsQ0FBQyx1TUFBdU0sQ0FDNU0sQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxhQUFhO2dCQUNuQixDQUFDLENBQUMscUtBQXFLO2dCQUN2SyxDQUFDLENBQUMseUtBQXlLLENBQzlLLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQ3hCLENBQUMsQ0FBQyxvT0FBb087Z0JBQ3RPLENBQUMsQ0FBQyx3T0FBd08sQ0FDN08sQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFqREQsZ0VBaURDIn0=
@@ -0,0 +1,3 @@
1
+ export * from "./steps";
2
+ export * from "./types";
3
+ export * from "./workflows";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./steps"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./workflows"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsOENBQTRCIn0=
@@ -0,0 +1,4 @@
1
+ import { ProductVariantFilters } from "../helpers/product-variant-filter-helper";
2
+ export declare const filterVariantsCombinedStep: import("@medusajs/framework/workflows-sdk").StepFunction<ProductVariantFilters, {
3
+ variantIds: string[];
4
+ }>;
@@ -0,0 +1,63 @@
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.filterVariantsCombinedStep = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const seller_stock_location_1 = __importDefault(require("../../../links/seller-stock-location"));
10
+ const product_variant_filter_helper_1 = require("../helpers/product-variant-filter-helper");
11
+ exports.filterVariantsCombinedStep = (0, workflows_sdk_1.createStep)("filter-variants-combined", async (input, { container }) => {
12
+ const knex = container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
13
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
14
+ const filterHelper = new product_variant_filter_helper_1.ProductVariantFilterHelper(knex);
15
+ let variantIds = await filterHelper.getFilteredVariantIds(input);
16
+ if (input.has_admin_stock_location !== undefined &&
17
+ Array.isArray(variantIds) &&
18
+ variantIds.length > 0) {
19
+ const rows = await knex("product_variant_inventory_item as pvii")
20
+ .distinct("pvii.variant_id as variant_id", "il.location_id as location_id")
21
+ .innerJoin("inventory_level as il", "il.inventory_item_id", "pvii.inventory_item_id")
22
+ .whereIn("pvii.variant_id", variantIds)
23
+ .whereNull("pvii.deleted_at")
24
+ .whereNotNull("il.location_id");
25
+ const locationIds = [
26
+ ...new Set(rows
27
+ .map((r) => r?.location_id)
28
+ .filter((id) => typeof id === "string" && id.length > 0)),
29
+ ];
30
+ if (!locationIds.length) {
31
+ variantIds = input.has_admin_stock_location ? [] : variantIds;
32
+ }
33
+ else {
34
+ const { data: links } = await query.graph({
35
+ entity: seller_stock_location_1.default.entryPoint,
36
+ fields: ["stock_location_id"],
37
+ filters: { stock_location_id: locationIds },
38
+ });
39
+ const sellerLinkedLocationIdSet = new Set((links ?? [])
40
+ .map((l) => l?.stock_location_id)
41
+ .filter((id) => typeof id === "string" && id.length > 0));
42
+ const variantIdHasAdminSet = new Set();
43
+ for (const r of rows) {
44
+ const variantId = r?.variant_id;
45
+ const locationId = r?.location_id;
46
+ if (typeof variantId === "string" &&
47
+ variantId.length > 0 &&
48
+ typeof locationId === "string" &&
49
+ locationId.length > 0 &&
50
+ !sellerLinkedLocationIdSet.has(locationId)) {
51
+ variantIdHasAdminSet.add(variantId);
52
+ }
53
+ }
54
+ variantIds = input.has_admin_stock_location
55
+ ? variantIds.filter((id) => variantIdHasAdminSet.has(id))
56
+ : variantIds.filter((id) => !variantIdHasAdminSet.has(id));
57
+ }
58
+ }
59
+ return new workflows_sdk_1.StepResponse({
60
+ variantIds,
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhcmlhbnRzLWNvbWJpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXZhcmlhbnRzL3N0ZXBzL2ZpbHRlci12YXJpYW50cy1jb21iaW5lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBc0U7QUFDdEUscUVBQTZFO0FBRzdFLGlHQUF1RTtBQUN2RSw0RkFHa0Q7QUFFckMsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQ2xELDBCQUEwQixFQUMxQixLQUFLLEVBQUUsS0FBNEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDNUIsaUNBQXlCLENBQUMsYUFBYSxDQUNoQyxDQUFDO0lBRVYsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqRSxNQUFNLFlBQVksR0FBRyxJQUFJLDBEQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFELElBQUksVUFBVSxHQUFHLE1BQU0sWUFBWSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLElBQ0UsS0FBSyxDQUFDLHdCQUF3QixLQUFLLFNBQVM7UUFDNUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDekIsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQzthQUM5RCxRQUFRLENBQUMsK0JBQStCLEVBQUUsK0JBQStCLENBQUM7YUFDMUUsU0FBUyxDQUNSLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsd0JBQXdCLENBQ3pCO2FBQ0EsT0FBTyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQzthQUN0QyxTQUFT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
@@ -0,0 +1,4 @@
1
+ export interface GetSellerProductIdsInput {
2
+ seller_id?: string;
3
+ }
4
+ export declare const getSellerProductIdsStep: import("@medusajs/framework/workflows-sdk").StepFunction<GetSellerProductIdsInput, string[]>;
@@ -0,0 +1,28 @@
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.getSellerProductIdsStep = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const seller_product_1 = __importDefault(require("../../../links/seller-product"));
10
+ exports.getSellerProductIdsStep = (0, workflows_sdk_1.createStep)("get-seller-product-ids", async (input, { container }) => {
11
+ if (!input.seller_id) {
12
+ return new workflows_sdk_1.StepResponse([]);
13
+ }
14
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
15
+ const { data: sellerProducts } = await query.graph({
16
+ entity: seller_product_1.default.entryPoint,
17
+ fields: ["product_id"],
18
+ filters: {
19
+ seller_id: input.seller_id,
20
+ deleted_at: {
21
+ $eq: null,
22
+ },
23
+ },
24
+ });
25
+ const productIds = sellerProducts.map((sp) => sp.product_id);
26
+ return new workflows_sdk_1.StepResponse(productIds);
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGxlci1wcm9kdWN0LWlkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC12YXJpYW50cy9zdGVwcy9nZXQtc2VsbGVyLXByb2R1Y3QtaWRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUFzRTtBQUN0RSxxRUFBNkU7QUFFN0UsbUZBQThEO0FBVWpELFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyx3QkFBd0IsRUFDeEIsS0FBSyxFQUFFLEtBQStCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakQsTUFBTSxFQUFFLHdCQUFpQixDQUFDLFVBQVU7UUFDcEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7YUFDVjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUksY0FBa0MsQ0FBQyxHQUFHLENBQ3hELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUN0QixDQUFDO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ export * from "./filter-variants-combined";
2
+ export * from "./get-seller-product-ids";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./filter-variants-combined"), exports);
18
+ __exportStar(require("./get-seller-product-ids"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUEyQztBQUMzQywyREFBeUMifQ==
@@ -0,0 +1,10 @@
1
+ import { PriceDTO, ProductVariantDTO } from "@medusajs/framework/types";
2
+ export interface ProductVariantWithRelations extends ProductVariantDTO {
3
+ prices?: PriceDTO[];
4
+ inventory_items?: Array<{
5
+ id: string;
6
+ inventory_item_id: string;
7
+ variant_id: string;
8
+ required_quantity: number;
9
+ }>;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1 @@
1
+ export * from "./list-filtered-product-variants";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./list-filtered-product-variants"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBaUQifQ==
@@ -0,0 +1,31 @@
1
+ export interface ListFilteredProductVariantsInput {
2
+ seller_id?: string;
3
+ has_price?: boolean;
4
+ has_inventory?: boolean;
5
+ has_stock_location?: boolean;
6
+ has_admin_stock_location?: boolean;
7
+ q?: string;
8
+ fields: string[];
9
+ /**
10
+ * Additional filters coming from API query params (everything except custom filters).
11
+ * Example: id, created_at, updated_at, manage_inventory, allow_backorder, etc.
12
+ */
13
+ filters?: Record<string, unknown>;
14
+ pagination?: {
15
+ skip?: number;
16
+ take?: number;
17
+ order?: Record<string, string>;
18
+ };
19
+ }
20
+ export interface ListFilteredProductVariantsOutput {
21
+ variants: unknown[];
22
+ count: number;
23
+ offset: number;
24
+ limit: number;
25
+ }
26
+ export declare const listFilteredProductVariantsWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ListFilteredProductVariantsInput, import("@medusajs/framework/workflows-sdk").WorkflowData<{
27
+ variants: (any[] | import("@medusajs/framework/workflows-sdk").WorkflowData<any[]>) & any[];
28
+ count: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
29
+ offset: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
30
+ limit: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
31
+ }> | undefined, []>;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listFilteredProductVariantsWorkflow = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
7
+ const steps_1 = require("../steps");
8
+ exports.listFilteredProductVariantsWorkflow = (0, workflows_sdk_1.createWorkflow)("list-filtered-product-variants", (input) => {
9
+ const hasFilters = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
10
+ return (!!input.seller_id ||
11
+ input.has_price !== undefined ||
12
+ input.has_inventory !== undefined ||
13
+ input.has_stock_location !== undefined ||
14
+ input.has_admin_stock_location !== undefined);
15
+ });
16
+ const filterResult = (0, workflows_sdk_1.when)({ hasFilters }, ({ hasFilters }) => hasFilters).then(() => {
17
+ return (0, steps_1.filterVariantsCombinedStep)({
18
+ seller_id: input.seller_id,
19
+ has_price: input.has_price,
20
+ has_inventory: input.has_inventory,
21
+ has_stock_location: input.has_stock_location,
22
+ has_admin_stock_location: input.has_admin_stock_location,
23
+ });
24
+ });
25
+ const finalVariantIds = (0, workflows_sdk_1.transform)({ filterResult }, ({ filterResult }) => {
26
+ return filterResult?.variantIds ?? null;
27
+ });
28
+ const finalVariantIdsAfterIntersection = (0, workflows_sdk_1.transform)({ input, finalVariantIds }, ({ input, finalVariantIds }) => {
29
+ if (finalVariantIds === null) {
30
+ return null;
31
+ }
32
+ const rawExisting = input.filters?.id;
33
+ const existingIds = Array.isArray(rawExisting)
34
+ ? rawExisting.filter((id) => typeof id === "string" && id.length > 0)
35
+ : typeof rawExisting === "string" && rawExisting.length > 0
36
+ ? [rawExisting]
37
+ : [];
38
+ if (!existingIds.length) {
39
+ return finalVariantIds;
40
+ }
41
+ const set = new Set(existingIds);
42
+ return finalVariantIds.filter((id) => set.has(id));
43
+ });
44
+ const isEmpty = (0, workflows_sdk_1.transform)({ finalVariantIdsAfterIntersection }, ({ finalVariantIdsAfterIntersection }) => {
45
+ return (finalVariantIdsAfterIntersection !== null &&
46
+ Array.isArray(finalVariantIdsAfterIntersection) &&
47
+ finalVariantIdsAfterIntersection.length === 0);
48
+ });
49
+ const emptyResponse = (0, workflows_sdk_1.when)({ isEmpty }, ({ isEmpty }) => isEmpty).then(() => {
50
+ return (0, workflows_sdk_1.transform)({ pagination: input.pagination }, ({ pagination }) => ({
51
+ variants: [],
52
+ count: 0,
53
+ offset: pagination?.skip || 0,
54
+ limit: pagination?.take || 50,
55
+ }));
56
+ });
57
+ const dataResponse = (0, workflows_sdk_1.when)({ isEmpty }, ({ isEmpty }) => !isEmpty).then(() => {
58
+ const finalFilters = (0, workflows_sdk_1.transform)({ input, finalVariantIdsAfterIntersection }, ({ input, finalVariantIdsAfterIntersection }) => {
59
+ const filters = {
60
+ ...(input.filters ?? {}),
61
+ };
62
+ if (finalVariantIdsAfterIntersection !== null) {
63
+ filters.id = finalVariantIdsAfterIntersection;
64
+ }
65
+ const q = typeof input.q === "string" ? input.q.trim() : "";
66
+ if (q) {
67
+ const searchOr = [
68
+ { title: { $ilike: `%${q}%` } },
69
+ { sku: { $ilike: `%${q}%` } },
70
+ ];
71
+ // Don't overwrite existing $or/$and from validated filters – instead, AND the search in.
72
+ const existingAnd = filters.$and;
73
+ if (Array.isArray(existingAnd)) {
74
+ filters.$and = [...existingAnd, { $or: searchOr }];
75
+ }
76
+ else if (filters.$or) {
77
+ filters.$and = [{ $or: filters.$or }, { $or: searchOr }];
78
+ delete filters.$or;
79
+ }
80
+ else {
81
+ filters.$or = searchOr;
82
+ }
83
+ }
84
+ return filters;
85
+ });
86
+ const fields = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
87
+ return (0, utils_1.deduplicate)([
88
+ ...(input.fields ?? []),
89
+ "id",
90
+ "title",
91
+ "sku",
92
+ "product_id",
93
+ "created_at",
94
+ "updated_at",
95
+ ]);
96
+ });
97
+ const { data: variants, metadata } = (0, core_flows_1.useQueryGraphStep)({
98
+ entity: "product_variant",
99
+ fields,
100
+ filters: finalFilters,
101
+ pagination: input.pagination,
102
+ });
103
+ return (0, workflows_sdk_1.transform)({ variants, metadata }, ({ variants, metadata }) => ({
104
+ variants,
105
+ count: metadata?.count || 0,
106
+ offset: metadata?.skip || 0,
107
+ limit: metadata?.take || 50,
108
+ }));
109
+ });
110
+ const result = (0, workflows_sdk_1.transform)({ emptyResponse, dataResponse }, ({ emptyResponse, dataResponse }) => {
111
+ return emptyResponse || dataResponse;
112
+ });
113
+ return new workflows_sdk_1.WorkflowResponse(result);
114
+ });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXJlZC1wcm9kdWN0LXZhcmlhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXZhcmlhbnRzL3dvcmtmbG93cy9saXN0LWZpbHRlcmVkLXByb2R1Y3QtdmFyaWFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQUsyQztBQUMzQyw0REFBZ0U7QUFFaEUsb0NBQXNEO0FBNkJ6QyxRQUFBLG1DQUFtQyxHQUFHLElBQUEsOEJBQWMsRUFDL0QsZ0NBQWdDLEVBQ2hDLENBQUMsS0FBdUMsRUFBRSxFQUFFO0lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3BELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDakIsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQzdCLEtBQUssQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxLQUFLLENBQUMsa0JBQWtCLEtBQUssU0FBUztZQUN0QyxLQUFLLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFlBQVksR0FBRyxJQUFBLG9CQUFJLEVBQ3ZCLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQy9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNWLE9BQU8sSUFBQSxrQ0FBMEIsRUFBQztZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtC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
@@ -0,0 +1,8 @@
1
+ import { BatchPromotionRulesWorkflowInput } from '@medusajs/medusa/core-flows';
2
+ type Input = {
3
+ batchInput: BatchPromotionRulesWorkflowInput;
4
+ seller_id: string;
5
+ promotion_id: string;
6
+ };
7
+ export declare const ensureSellerProductRuleAfterDeletionStep: import("@medusajs/framework/workflows-sdk").StepFunction<Input, BatchPromotionRulesWorkflowInput>;
8
+ export {};
@@ -0,0 +1,87 @@
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.ensureSellerProductRuleAfterDeletionStep = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const seller_product_1 = __importDefault(require("../../../links/seller-product"));
10
+ const inject_seller_product_rule_1 = require("./inject-seller-product-rule");
11
+ const isProductRule = (rule) => rule?.attribute === 'items.product.id';
12
+ const normalizeValues = (values) => Array.isArray(values) ? values : [values];
13
+ exports.ensureSellerProductRuleAfterDeletionStep = (0, workflows_sdk_1.createStep)('ensure-seller-product-rule-after-deletion', async (input, { container }) => {
14
+ const { batchInput } = input;
15
+ if (batchInput.rule_type !== 'target_rules') {
16
+ return new workflows_sdk_1.StepResponse(batchInput);
17
+ }
18
+ const createdRules = batchInput.create || [];
19
+ const productRulesToCreate = createdRules.filter(isProductRule);
20
+ const nonProductRulesToCreate = createdRules.filter((rule) => !isProductRule(rule));
21
+ const hasDeletions = Boolean(batchInput.delete?.length);
22
+ const hasNewProductRule = productRulesToCreate.length > 0;
23
+ if (!hasDeletions && !hasNewProductRule) {
24
+ return new workflows_sdk_1.StepResponse(batchInput);
25
+ }
26
+ const promotionModule = container.resolve(utils_1.Modules.PROMOTION);
27
+ const promotion = await promotionModule.retrievePromotion(input.promotion_id, {
28
+ relations: [
29
+ 'application_method.target_rules',
30
+ 'application_method.target_rules.values'
31
+ ]
32
+ });
33
+ const deleteSet = new Set(batchInput.delete || []);
34
+ const currentRules = promotion.application_method?.target_rules || [];
35
+ const remainingRules = currentRules.filter((rule) => !deleteSet.has(rule.id));
36
+ if (hasNewProductRule) {
37
+ const baseRule = productRulesToCreate[0];
38
+ const nextRule = {
39
+ ...baseRule,
40
+ values: normalizeValues(baseRule.values),
41
+ description: baseRule.description === inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION
42
+ ? undefined
43
+ : baseRule.description
44
+ };
45
+ const existingProductRuleIds = remainingRules
46
+ .filter(isProductRule)
47
+ .map((rule) => rule.id)
48
+ .filter(Boolean);
49
+ existingProductRuleIds.forEach((id) => deleteSet.add(id));
50
+ return new workflows_sdk_1.StepResponse({
51
+ ...batchInput,
52
+ delete: Array.from(deleteSet),
53
+ create: [nextRule, ...nonProductRulesToCreate]
54
+ });
55
+ }
56
+ const hasProductRule = remainingRules.some(isProductRule);
57
+ if (hasProductRule) {
58
+ return new workflows_sdk_1.StepResponse({
59
+ ...batchInput,
60
+ delete: Array.from(deleteSet)
61
+ });
62
+ }
63
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
64
+ const { data: sellerProducts } = await query.graph({
65
+ entity: seller_product_1.default.entryPoint,
66
+ fields: ['product_id'],
67
+ filters: {
68
+ seller_id: input.seller_id
69
+ }
70
+ });
71
+ const productIds = sellerProducts.map((sp) => sp.product_id);
72
+ if (productIds.length === 0) {
73
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Seller has no products. Cannot remove all product rules.');
74
+ }
75
+ const defaultRule = {
76
+ attribute: 'items.product.id',
77
+ operator: 'in',
78
+ values: productIds,
79
+ description: inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION
80
+ };
81
+ return new workflows_sdk_1.StepResponse({
82
+ ...batchInput,
83
+ delete: Array.from(deleteSet),
84
+ create: [defaultRule, ...createdRules]
85
+ });
86
+ });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLXNlbGxlci1wcm9kdWN0LXJ1bGUtYWZ0ZXItZGVsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvZW5zdXJlLXNlbGxlci1wcm9kdWN0LXJ1bGUtYWZ0ZXItZGVsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBSWtDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFDekQsNkVBQStFO0FBUS9FLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBNkIsRUFBRSxFQUFFLENBQ3RELElBQUksRUFBRSxTQUFTLEtBQUssa0JBQWtCLENBQUE7QUFFeEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUF5QixFQUFFLEVBQUUsQ0FDcEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBRTlCLFFBQUEsd0NBQXdDLEdBQUcsSUFBQSwwQkFBVSxFQUNoRSwyQ0FBMkMsRUFDM0MsS0FBSyxFQUFFLEtBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU1QixJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDNUMsT0FBTyxJQUFJLDRCQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzVDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMvRCxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENB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
@@ -3,4 +3,4 @@ export * from './verify-vendor-campaign';
3
3
  export * from './verify-vendor-target-promotion-rules';
4
4
  export * from './register-usage-step';
5
5
  export * from './inject-seller-product-rule';
6
- export * from './verify-seller-product-rule-deletion';
6
+ export * from './ensure-seller-product-rule-after-deletion';
@@ -19,5 +19,5 @@ __exportStar(require("./verify-vendor-campaign"), exports);
19
19
  __exportStar(require("./verify-vendor-target-promotion-rules"), exports);
20
20
  __exportStar(require("./register-usage-step"), exports);
21
21
  __exportStar(require("./inject-seller-product-rule"), exports);
22
- __exportStar(require("./verify-seller-product-rule-deletion"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5QztBQUN6QywyREFBd0M7QUFDeEMseUVBQXNEO0FBQ3RELHdEQUFxQztBQUNyQywrREFBNEM7QUFDNUMsd0VBQXFEIn0=
22
+ __exportStar(require("./ensure-seller-product-rule-after-deletion"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5QztBQUN6QywyREFBd0M7QUFDeEMseUVBQXNEO0FBQ3RELHdEQUFxQztBQUNyQywrREFBNEM7QUFDNUMsOEVBQTJEIn0=
@@ -9,6 +9,9 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
9
  const seller_product_1 = __importDefault(require("../../../links/seller-product"));
10
10
  exports.SELLER_PRODUCTS_RULE_DESCRIPTION = 'seller_products_default_rule';
11
11
  exports.injectSellerProductRuleStep = (0, workflows_sdk_1.createStep)('inject-seller-product-rule', async (input, { container }) => {
12
+ if (input.promotion.application_method.target_rules && input.promotion.application_method.target_rules.length > 0) {
13
+ return new workflows_sdk_1.StepResponse(input.promotion);
14
+ }
12
15
  const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
13
16
  const { data: sellerProducts } = await query.graph({
14
17
  entity: seller_product_1.default.entryPoint,
@@ -37,4 +40,4 @@ exports.injectSellerProductRuleStep = (0, workflows_sdk_1.createStep)('inject-se
37
40
  };
38
41
  return new workflows_sdk_1.StepResponse(promotionWithDefaultRule);
39
42
  });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFFNUMsUUFBQSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQTtBQUVqRSxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFDSCxLQUEyRCxFQUMzRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pELE1BQU0sRUFBRSx3QkFBYSxDQUFDLFVBQVU7UUFDaEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUU1RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIscUVBQXFFLENBQ3RFLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FDdkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFBO0lBRXhELE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixRQUFRLEVBQUUsSUFBYTtRQUN2QixNQUFNLEVBQUUsVUFBVTtRQUNsQixXQUFXLEVBQUUsd0NBQWdDO0tBQzlDLENBQUE7SUFFRCxNQUFNLHdCQUF3QixHQUF1QjtRQUNuRCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLGtCQUFrQixFQUFFO1lBQ2xCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0I7WUFDckMsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQztTQUMxRDtLQUNGLENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBQ25ELENBQUMsQ0FDRixDQUFBIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFFNUMsUUFBQSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQTtBQUVqRSxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFDSCxLQUEyRCxFQUMzRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsSCxPQUFPLElBQUksNEJBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakQsTUFBTSxFQUFFLHdCQUFhLENBQUMsVUFBVTtRQUNoQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTVELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixxRUFBcUUsQ0FDdEUsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLG1CQUFtQixHQUN2QixLQUFLLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFlBQVksSUFBSSxFQUFFLENBQUE7SUFFeEQsTUFBTSxpQkFBaUIsR0FBRztRQUN4QixTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLFFBQVEsRUFBRSxJQUFhO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFdBQVcsRUFBRSx3Q0FBZ0M7S0FDOUMsQ0FBQTtJQUVELE1BQU0sd0JBQXdCLEdBQXVCO1FBQ25ELEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsa0JBQWtCLEVBQUU7WUFDbEIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLGtCQUFrQjtZQUNyQyxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLG1CQUFtQixDQUFDO1NBQzFEO0tBQ0YsQ0FBQTtJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUE7QUFDbkQsQ0FBQyxDQUNGLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ import { MedusaContainer } from "@medusajs/framework";
2
+ export declare const syncSellersPromotionsDefaultProductRuleValues: (container: MedusaContainer, productIds: string[], action: "add" | "remove") => Promise<void>;