@mercurjs/b2c-core 1.5.0 → 1.5.2

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 (186) 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.d.ts +3 -0
  14. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +36 -0
  15. package/.medusa/server/src/api/admin/middlewares.js +13 -7
  16. package/.medusa/server/src/api/admin/notifications/route.js +8 -8
  17. package/.medusa/server/src/api/admin/orders/[id]/route.d.ts +3 -3
  18. package/.medusa/server/src/api/admin/orders/[id]/route.js +6 -6
  19. package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
  20. package/.medusa/server/src/api/admin/orders/middlewares.js +17 -0
  21. package/.medusa/server/src/api/admin/products/validators.d.ts +98 -98
  22. package/.medusa/server/src/api/admin/reservations/middlewares.d.ts +2 -0
  23. package/.medusa/server/src/api/admin/reservations/middlewares.js +12 -0
  24. package/.medusa/server/src/api/admin/sellers/validators.d.ts +2 -2
  25. package/.medusa/server/src/api/admin/sellers/validators.js +9 -7
  26. package/.medusa/server/src/api/store/carts/[id]/line-items/[line_id]/route.js +2 -2
  27. package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +3 -4
  28. package/.medusa/server/src/api/store/carts/[id]/route.d.ts +6 -0
  29. package/.medusa/server/src/api/store/carts/[id]/route.js +32 -0
  30. package/.medusa/server/src/api/store/carts/middlewares.js +4 -5
  31. package/.medusa/server/src/api/store/middlewares.js +11 -9
  32. package/.medusa/server/src/api/store/products/middlewares.d.ts +2 -0
  33. package/.medusa/server/src/api/store/products/middlewares.js +13 -0
  34. package/.medusa/server/src/api/store/products/search/route.d.ts +81 -0
  35. package/.medusa/server/src/api/store/products/search/route.js +170 -0
  36. package/.medusa/server/src/api/store/products/validators.d.ts +36 -0
  37. package/.medusa/server/src/api/store/products/validators.js +17 -0
  38. package/.medusa/server/src/api/store/wishlist/middlewares.d.ts +1 -1
  39. package/.medusa/server/src/api/store/wishlist/middlewares.js +47 -25
  40. package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts +3 -9
  41. package/.medusa/server/src/api/store/wishlist/product/[reference_id]/route.js +65 -0
  42. package/.medusa/server/src/api/store/wishlist/route.d.ts +789 -28
  43. package/.medusa/server/src/api/store/wishlist/route.js +816 -37
  44. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +22 -44
  45. package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +31 -46
  46. package/.medusa/server/src/api/vendor/campaigns/middlewares.js +30 -18
  47. package/.medusa/server/src/api/vendor/campaigns/query-config.js +2 -2
  48. package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +11 -0
  49. package/.medusa/server/src/api/vendor/campaigns/validators.js +6 -5
  50. package/.medusa/server/src/api/vendor/customer-groups/validators.js +1 -1
  51. package/.medusa/server/src/api/vendor/customers/route.js +2 -2
  52. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +1 -2
  53. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +2 -5
  54. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +2 -2
  55. package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +8 -8
  56. package/.medusa/server/src/api/vendor/me/route.d.ts +1 -2
  57. package/.medusa/server/src/api/vendor/me/route.js +1 -1
  58. package/.medusa/server/src/api/vendor/members/[id]/route.js +3 -3
  59. package/.medusa/server/src/api/vendor/orders/validators.d.ts +4 -4
  60. package/.medusa/server/src/api/vendor/payout-account/route.js +3 -2
  61. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.d.ts +2 -2
  62. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.js +2 -2
  63. package/.medusa/server/src/api/vendor/price-lists/route.d.ts +1 -1
  64. package/.medusa/server/src/api/vendor/price-lists/route.js +27 -8
  65. package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +2 -2
  66. package/.medusa/server/src/api/vendor/product-collections/middlewares.js +2 -2
  67. package/.medusa/server/src/api/vendor/product-collections/route.d.ts +18 -0
  68. package/.medusa/server/src/api/vendor/product-collections/route.js +19 -1
  69. package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +404 -15
  70. package/.medusa/server/src/api/vendor/product-collections/validators.js +18 -3
  71. package/.medusa/server/src/api/vendor/product-tags/route.d.ts +4 -1
  72. package/.medusa/server/src/api/vendor/product-tags/route.js +8 -8
  73. package/.medusa/server/src/api/vendor/product-types/validators.d.ts +153 -1
  74. package/.medusa/server/src/api/vendor/product-types/validators.js +6 -3
  75. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.d.ts +3 -0
  76. package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +20 -0
  77. package/.medusa/server/src/api/vendor/products/batch/route.d.ts +34 -0
  78. package/.medusa/server/src/api/vendor/products/batch/route.js +79 -0
  79. package/.medusa/server/src/api/vendor/products/middlewares.js +19 -5
  80. package/.medusa/server/src/api/vendor/products/route.d.ts +8 -2
  81. package/.medusa/server/src/api/vendor/products/route.js +29 -21
  82. package/.medusa/server/src/api/vendor/products/utils.d.ts +35 -1
  83. package/.medusa/server/src/api/vendor/products/utils.js +148 -6
  84. package/.medusa/server/src/api/vendor/products/validators.d.ts +275 -99
  85. package/.medusa/server/src/api/vendor/products/validators.js +58 -2
  86. package/.medusa/server/src/api/vendor/promotions/route.d.ts +86 -2
  87. package/.medusa/server/src/api/vendor/promotions/route.js +116 -7
  88. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +237 -38
  89. package/.medusa/server/src/api/vendor/promotions/validators.js +23 -5
  90. package/.medusa/server/src/api/vendor/reservations/middlewares.d.ts +4 -1
  91. package/.medusa/server/src/api/vendor/reservations/middlewares.js +23 -3
  92. package/.medusa/server/src/api/vendor/reservations/route.js +5 -3
  93. package/.medusa/server/src/api/vendor/reservations/validators.d.ts +45 -3
  94. package/.medusa/server/src/api/vendor/reservations/validators.js +5 -1
  95. package/.medusa/server/src/api/vendor/sellers/validators.js +1 -1
  96. package/.medusa/server/src/api/vendor/shipping-profiles/route.d.ts +31 -2
  97. package/.medusa/server/src/api/vendor/shipping-profiles/route.js +61 -10
  98. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +92 -3
  99. package/.medusa/server/src/api/vendor/shipping-profiles/validators.js +10 -2
  100. package/.medusa/server/src/api/vendor/stock-locations/[id]/route.d.ts +1 -2
  101. package/.medusa/server/src/api/vendor/stock-locations/[id]/route.js +1 -1
  102. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +10 -10
  103. package/.medusa/server/src/links/wishlist-product.js +3 -3
  104. package/.medusa/server/src/modules/payout/services/provider.js +1 -2
  105. package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.d.ts +5 -0
  106. package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.js +32 -0
  107. package/.medusa/server/src/modules/seller/service.js +2 -2
  108. package/.medusa/server/src/modules/seller/utils.d.ts +1 -1
  109. package/.medusa/server/src/modules/seller/utils.js +37 -10
  110. package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.d.ts +16 -7
  111. package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.js +26 -18
  112. package/.medusa/server/src/shared/infra/http/middlewares/index.d.ts +1 -0
  113. package/.medusa/server/src/shared/infra/http/middlewares/index.js +2 -1
  114. package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.d.ts +19 -0
  115. package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.js +28 -0
  116. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-attribute-options-path-params-guard.js +2 -2
  117. package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +2 -2
  118. package/.medusa/server/src/shared/infra/http/utils/products.js +9 -3
  119. package/.medusa/server/src/shared/infra/http/utils/unless-base-url.d.ts +1 -3
  120. package/.medusa/server/src/shared/infra/http/utils/unless-base-url.js +1 -1
  121. package/.medusa/server/src/subscribers/notification-seller-new-order.d.ts +1 -1
  122. package/.medusa/server/src/subscribers/notification-seller-new-order.js +44 -37
  123. package/.medusa/server/src/subscribers/payout-webhook.js +1 -1
  124. package/.medusa/server/src/subscribers/seller-status-changed.js +2 -3
  125. package/.medusa/server/src/utils/stock-locations.d.ts +9 -0
  126. package/.medusa/server/src/utils/stock-locations.js +231 -0
  127. package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +1 -1
  128. package/.medusa/server/src/workflows/attribute/steps/validate-attribute-value.js +7 -3
  129. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.d.ts +3 -3
  130. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.js +17 -15
  131. package/.medusa/server/src/workflows/attribute/utils/validate-attribute-values-to-link.js +2 -2
  132. package/.medusa/server/src/workflows/cart/steps/create-order-set.js +1 -1
  133. package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +1 -1
  134. package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +5 -7
  135. package/.medusa/server/src/workflows/configuration/steps/create-configuration-rule.js +1 -1
  136. package/.medusa/server/src/workflows/fulfillment-set/create-vendor-service-zone.js +2 -2
  137. package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.d.ts +1 -0
  138. package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.js +75 -0
  139. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.d.ts +1 -0
  140. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +97 -0
  141. package/.medusa/server/src/workflows/hooks/product-deleted.js +12 -5
  142. package/.medusa/server/src/workflows/order/steps/create-payout.js +1 -1
  143. package/.medusa/server/src/workflows/order/steps/validate-seller-payout-account.js +2 -2
  144. package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +1 -1
  145. package/.medusa/server/src/workflows/price-list/steps/validate-vendor-price-list-prices.js +2 -2
  146. package/.medusa/server/src/workflows/price-list/workflows/create-vendor-price-list.js +2 -2
  147. package/.medusa/server/src/workflows/product/steps/update-product-status.js +7 -1
  148. package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts +24 -0
  149. package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js +39 -0
  150. package/.medusa/server/src/workflows/product-variants/index.d.ts +3 -0
  151. package/.medusa/server/src/workflows/product-variants/index.js +20 -0
  152. package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.d.ts +4 -0
  153. package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.js +63 -0
  154. package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.d.ts +4 -0
  155. package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.js +28 -0
  156. package/.medusa/server/src/workflows/product-variants/steps/index.d.ts +2 -0
  157. package/.medusa/server/src/workflows/product-variants/steps/index.js +19 -0
  158. package/.medusa/server/src/workflows/product-variants/types.d.ts +10 -0
  159. package/.medusa/server/src/workflows/product-variants/types.js +3 -0
  160. package/.medusa/server/src/workflows/product-variants/workflows/index.d.ts +1 -0
  161. package/.medusa/server/src/workflows/product-variants/workflows/index.js +18 -0
  162. package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts +31 -0
  163. package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js +115 -0
  164. package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts +8 -0
  165. package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js +87 -0
  166. package/.medusa/server/src/workflows/promotions/steps/index.d.ts +2 -0
  167. package/.medusa/server/src/workflows/promotions/steps/index.js +3 -1
  168. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.d.ts +6 -0
  169. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +43 -0
  170. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts +5 -0
  171. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js +27 -11
  172. package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.d.ts +2 -0
  173. package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.js +165 -0
  174. package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +7 -2
  175. package/.medusa/server/src/workflows/promotions/workflows/create-vendor-promotion.js +4 -3
  176. package/.medusa/server/src/workflows/seller/steps/create-member.js +1 -1
  177. package/.medusa/server/src/workflows/seller/steps/create-payment-account.js +1 -1
  178. package/.medusa/server/src/workflows/seller/steps/create-payout-onboarding.js +1 -1
  179. package/.medusa/server/src/workflows/seller/steps/sync-stripe-account.js +1 -1
  180. package/.medusa/server/src/workflows/seller/steps/update-member-invite.js +3 -3
  181. package/.medusa/server/src/workflows/seller/steps/update-seller.js +2 -3
  182. package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +28 -23
  183. package/.medusa/server/src/workflows/seller/workflows/import-seller-products.js +2 -2
  184. package/.medusa/server/src/workflows/wishlist/steps/create-wishlist.js +1 -1
  185. package/package.json +1 -1
  186. package/.medusa/server/src/api/store/wishlist/[id]/product/[reference_id]/route.js +0 -61
@@ -0,0 +1,81 @@
1
+ import { MedusaRequest, MedusaResponse } from '@medusajs/framework';
2
+ import { StoreSearchProductsType } from '../validators';
3
+ /**
4
+ * @oas [post] /store/products/search
5
+ * operationId: "StoreSearchProducts"
6
+ * summary: "Search products"
7
+ * description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
8
+ * requestBody:
9
+ * content:
10
+ * application/json:
11
+ * schema:
12
+ * type: object
13
+ * properties:
14
+ * query:
15
+ * type: string
16
+ * description: The search query string
17
+ * page:
18
+ * type: number
19
+ * description: The page number (0-indexed)
20
+ * hitsPerPage:
21
+ * type: number
22
+ * description: Number of results per page
23
+ * filters:
24
+ * type: string
25
+ * description: Algolia filter string
26
+ * facets:
27
+ * type: array
28
+ * items:
29
+ * type: string
30
+ * description: Array of facet attributes to retrieve
31
+ * maxValuesPerFacet:
32
+ * type: number
33
+ * description: Maximum number of facet values to return per facet
34
+ * currency_code:
35
+ * type: string
36
+ * description: Currency code for price calculation
37
+ * region_id:
38
+ * type: string
39
+ * description: Region ID for price calculation
40
+ * customer_id:
41
+ * type: string
42
+ * description: Customer ID for customer-specific price calculation
43
+ * customer_group_id:
44
+ * type: array
45
+ * items:
46
+ * type: string
47
+ * description: Customer group IDs for group-specific price calculation
48
+ * responses:
49
+ * "200":
50
+ * description: OK
51
+ * content:
52
+ * application/json:
53
+ * schema:
54
+ * type: object
55
+ * properties:
56
+ * products:
57
+ * type: array
58
+ * items:
59
+ * type: object
60
+ * nbHits:
61
+ * type: number
62
+ * description: Total number of matching products
63
+ * page:
64
+ * type: number
65
+ * description: Current page number
66
+ * nbPages:
67
+ * type: number
68
+ * description: Total number of pages
69
+ * hitsPerPage:
70
+ * type: number
71
+ * description: Number of results per page
72
+ * facets:
73
+ * type: object
74
+ * description: Facet values and counts
75
+ * processingTimeMS:
76
+ * type: number
77
+ * description: Algolia processing time in milliseconds
78
+ * tags:
79
+ * - Store Products
80
+ */
81
+ export declare const POST: (req: MedusaRequest<StoreSearchProductsType>, res: MedusaResponse) => Promise<MedusaResponse | undefined>;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const framework_1 = require("@mercurjs/framework");
6
+ /**
7
+ * @oas [post] /store/products/search
8
+ * operationId: "StoreSearchProducts"
9
+ * summary: "Search products"
10
+ * description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
11
+ * requestBody:
12
+ * content:
13
+ * application/json:
14
+ * schema:
15
+ * type: object
16
+ * properties:
17
+ * query:
18
+ * type: string
19
+ * description: The search query string
20
+ * page:
21
+ * type: number
22
+ * description: The page number (0-indexed)
23
+ * hitsPerPage:
24
+ * type: number
25
+ * description: Number of results per page
26
+ * filters:
27
+ * type: string
28
+ * description: Algolia filter string
29
+ * facets:
30
+ * type: array
31
+ * items:
32
+ * type: string
33
+ * description: Array of facet attributes to retrieve
34
+ * maxValuesPerFacet:
35
+ * type: number
36
+ * description: Maximum number of facet values to return per facet
37
+ * currency_code:
38
+ * type: string
39
+ * description: Currency code for price calculation
40
+ * region_id:
41
+ * type: string
42
+ * description: Region ID for price calculation
43
+ * customer_id:
44
+ * type: string
45
+ * description: Customer ID for customer-specific price calculation
46
+ * customer_group_id:
47
+ * type: array
48
+ * items:
49
+ * type: string
50
+ * description: Customer group IDs for group-specific price calculation
51
+ * responses:
52
+ * "200":
53
+ * description: OK
54
+ * content:
55
+ * application/json:
56
+ * schema:
57
+ * type: object
58
+ * properties:
59
+ * products:
60
+ * type: array
61
+ * items:
62
+ * type: object
63
+ * nbHits:
64
+ * type: number
65
+ * description: Total number of matching products
66
+ * page:
67
+ * type: number
68
+ * description: Current page number
69
+ * nbPages:
70
+ * type: number
71
+ * description: Total number of pages
72
+ * hitsPerPage:
73
+ * type: number
74
+ * description: Number of results per page
75
+ * facets:
76
+ * type: object
77
+ * description: Facet values and counts
78
+ * processingTimeMS:
79
+ * type: number
80
+ * description: Algolia processing time in milliseconds
81
+ * tags:
82
+ * - Store Products
83
+ */
84
+ const POST = async (req, res) => {
85
+ const algoliaService = req.scope.resolve(framework_1.ALGOLIA_MODULE);
86
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
87
+ const { query: searchQuery, page, hitsPerPage, filters, facets, maxValuesPerFacet, currency_code, region_id, customer_id, customer_group_id } = req.validatedBody;
88
+ const searchParams = {
89
+ query: searchQuery,
90
+ page,
91
+ hitsPerPage,
92
+ attributesToRetrieve: ['id'],
93
+ attributesToHighlight: []
94
+ };
95
+ if (filters) {
96
+ searchParams.filters = filters;
97
+ }
98
+ if (facets) {
99
+ searchParams.facets = facets;
100
+ }
101
+ if (maxValuesPerFacet) {
102
+ searchParams.maxValuesPerFacet = maxValuesPerFacet;
103
+ }
104
+ const algoliaResult = await algoliaService.search(framework_1.IndexType.PRODUCT, searchParams);
105
+ const productIds = algoliaResult.hits.map((hit) => hit.id);
106
+ if (productIds.length === 0) {
107
+ return res.json({
108
+ products: [],
109
+ nbHits: algoliaResult.nbHits,
110
+ page: algoliaResult.page,
111
+ nbPages: algoliaResult.nbPages,
112
+ hitsPerPage: algoliaResult.hitsPerPage,
113
+ facets: algoliaResult.facets,
114
+ facets_stats: algoliaResult.facets_stats,
115
+ processingTimeMS: algoliaResult.processingTimeMS,
116
+ query: algoliaResult.query
117
+ });
118
+ }
119
+ const hasPricingContext = currency_code || region_id || customer_id || customer_group_id;
120
+ const contextParams = {};
121
+ if (hasPricingContext) {
122
+ contextParams.variants = {
123
+ calculated_price: (0, utils_1.QueryContext)({
124
+ ...(currency_code && { currency_code }),
125
+ ...(region_id && { region_id }),
126
+ ...(customer_id && { customer_id }),
127
+ ...(customer_group_id && { customer_group_id })
128
+ })
129
+ };
130
+ }
131
+ const { data: products } = await query.graph({
132
+ entity: 'product',
133
+ fields: [
134
+ '*',
135
+ 'images.*',
136
+ 'options.*',
137
+ 'options.values.*',
138
+ 'variants.*',
139
+ 'variants.options.*',
140
+ 'variants.prices.*',
141
+ ...(hasPricingContext ? ['variants.calculated_price.*'] : []),
142
+ 'categories.*',
143
+ 'collection.*',
144
+ 'type.*',
145
+ 'tags.*',
146
+ 'seller.*'
147
+ ],
148
+ filters: {
149
+ id: productIds
150
+ },
151
+ ...(Object.keys(contextParams).length > 0 && { context: contextParams })
152
+ });
153
+ const productMap = new Map(products.map((p) => [p.id, p]));
154
+ const orderedProducts = productIds
155
+ .map((id) => productMap.get(id))
156
+ .filter(Boolean);
157
+ res.json({
158
+ products: orderedProducts,
159
+ nbHits: algoliaResult.nbHits,
160
+ page: algoliaResult.page,
161
+ nbPages: algoliaResult.nbPages,
162
+ hitsPerPage: algoliaResult.hitsPerPage,
163
+ facets: algoliaResult.facets,
164
+ facets_stats: algoliaResult.facets_stats,
165
+ processingTimeMS: algoliaResult.processingTimeMS,
166
+ query: algoliaResult.query
167
+ });
168
+ };
169
+ exports.POST = POST;
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3RzL3NlYXJjaC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFHa0M7QUFDbEMsbURBSTRCO0FBUTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZFRztBQUNJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkMsRUFDM0MsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBYyxDQUFDLENBQUE7SUFDL0UsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLEtBQUssRUFBRSxXQUFXLEVBQ2xCLElBQUksRUFDSixXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUVyQixNQUFNLFlBQVksR0FBNEI7UUFDNUMsS0FBSyxFQUFFLFdBQVc7UUFDbEIsSUFBSTtRQUNKLFdBQVc7UUFDWCxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQztRQUM1QixxQkFBcUIsRUFBRSxFQUFFO0tBQzFCLENBQUE7SUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osWUFBWSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDaEMsQ0FBQztJQUNELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxZQUFZLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUM5QixDQUFDO0lBQ0Qs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
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export type StoreSearchProductsType = z.infer<typeof StoreSearchProductsSchema>;
3
+ export declare const StoreSearchProductsSchema: z.ZodObject<{
4
+ query: z.ZodDefault<z.ZodString>;
5
+ page: z.ZodDefault<z.ZodNumber>;
6
+ hitsPerPage: z.ZodDefault<z.ZodNumber>;
7
+ filters: z.ZodOptional<z.ZodString>;
8
+ facets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ maxValuesPerFacet: z.ZodOptional<z.ZodNumber>;
10
+ currency_code: z.ZodOptional<z.ZodString>;
11
+ region_id: z.ZodOptional<z.ZodString>;
12
+ customer_id: z.ZodOptional<z.ZodString>;
13
+ customer_group_id: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ query: string;
16
+ page: number;
17
+ hitsPerPage: number;
18
+ filters?: string | undefined;
19
+ facets?: string[] | undefined;
20
+ maxValuesPerFacet?: number | undefined;
21
+ currency_code?: string | undefined;
22
+ region_id?: string | undefined;
23
+ customer_id?: string | undefined;
24
+ customer_group_id?: string[] | undefined;
25
+ }, {
26
+ query?: string | undefined;
27
+ page?: number | undefined;
28
+ hitsPerPage?: number | undefined;
29
+ filters?: string | undefined;
30
+ facets?: string[] | undefined;
31
+ maxValuesPerFacet?: number | undefined;
32
+ currency_code?: string | undefined;
33
+ region_id?: string | undefined;
34
+ customer_id?: string | undefined;
35
+ customer_group_id?: string[] | undefined;
36
+ }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreSearchProductsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.StoreSearchProductsSchema = zod_1.z.object({
6
+ query: zod_1.z.string().default(''),
7
+ page: zod_1.z.coerce.number().int().min(0).default(0),
8
+ hitsPerPage: zod_1.z.coerce.number().int().min(1).max(100).default(12),
9
+ filters: zod_1.z.string().optional(),
10
+ facets: zod_1.z.array(zod_1.z.string()).optional(),
11
+ maxValuesPerFacet: zod_1.z.coerce.number().int().min(1).max(1000).optional(),
12
+ currency_code: zod_1.z.string().length(3).optional(),
13
+ region_id: zod_1.z.string().optional(),
14
+ customer_id: zod_1.z.string().optional(),
15
+ customer_group_id: zod_1.z.array(zod_1.z.string()).optional()
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcHJvZHVjdHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBdUI7QUFJVixRQUFBLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEQsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzdCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixNQUFNLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RSxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbEQsQ0FBQyxDQUFBIn0=
@@ -1,2 +1,2 @@
1
- import { MiddlewareRoute } from '@medusajs/medusa';
1
+ import { MiddlewareRoute } from "@medusajs/medusa";
2
2
  export declare const storeWishlistMiddlewares: MiddlewareRoute[];
@@ -1,39 +1,61 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.storeWishlistMiddlewares = void 0;
7
4
  const framework_1 = require("@medusajs/framework");
8
- const customer_wishlist_1 = __importDefault(require("../../../links/customer-wishlist"));
9
- const check_customer_ownership_1 = require("../../../shared/infra/http/middlewares/check-customer-ownership");
10
- const query_config_1 = require("./query-config");
11
- const validators_1 = require("./validators");
5
+ const medusa_1 = require("@medusajs/medusa");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const query_config_1 = require("@medusajs/medusa/api/store/products/query-config");
8
+ const validators_1 = require("@medusajs/medusa/api/store/products/validators");
9
+ const query_config_2 = require("./query-config");
10
+ const validators_2 = require("./validators");
11
+ const http_1 = require("@medusajs/framework/http");
12
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
12
13
  exports.storeWishlistMiddlewares = [
13
14
  {
14
- method: ['GET'],
15
- matcher: '/store/wishlist',
15
+ method: ["GET"],
16
+ matcher: "/store/wishlist",
16
17
  middlewares: [
17
- (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetWishlistsParams, query_config_1.storeWishlistQueryConfig.list)
18
- ]
18
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
19
+ (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetProductsParams, query_config_1.listProductQueryConfig),
20
+ (0, index_1.filterByValidSalesChannels)(),
21
+ (0, http_1.maybeApplyLinkFilter)({
22
+ entryPoint: "product_sales_channel",
23
+ resourceId: "product_id",
24
+ filterableField: "sales_channel_id",
25
+ }),
26
+ (0, http_1.applyDefaultFilters)({
27
+ status: utils_1.ProductStatus.PUBLISHED,
28
+ // TODO: the type here seems off and the implementation does not take into account $and and $or possible filters. Might be worth re working (original type used here was StoreGetProductsParamsType)
29
+ categories: (filters, _fields) => {
30
+ const categoryIds = filters.category_id;
31
+ delete filters.category_id;
32
+ if (!(0, utils_1.isPresent)(categoryIds)) {
33
+ return;
34
+ }
35
+ return { id: categoryIds, is_internal: false, is_active: true };
36
+ },
37
+ }),
38
+ (0, index_1.normalizeDataForContext)(),
39
+ (0, index_1.setPricingContext)(),
40
+ (0, index_1.setTaxContext)(),
41
+ (0, http_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
42
+ ],
19
43
  },
20
44
  {
21
- method: ['POST'],
22
- matcher: '/store/wishlist',
45
+ method: ["POST"],
46
+ matcher: "/store/wishlist",
23
47
  middlewares: [
24
- (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetWishlistsParams, query_config_1.storeWishlistQueryConfig.retrieve),
25
- (0, framework_1.validateAndTransformBody)(validators_1.StoreCreateWishlist)
26
- ]
48
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
49
+ (0, framework_1.validateAndTransformQuery)(validators_2.StoreGetWishlistsParams, query_config_2.storeWishlistQueryConfig.retrieve),
50
+ (0, framework_1.validateAndTransformBody)(validators_2.StoreCreateWishlist),
51
+ ],
27
52
  },
28
53
  {
29
- method: ['DELETE'],
30
- matcher: '/store/wishlist/:id/product/:reference_id',
54
+ method: ["DELETE"],
55
+ matcher: "/store/wishlist/product/:reference_id",
31
56
  middlewares: [
32
- (0, check_customer_ownership_1.checkCustomerResourceOwnershipByResourceId)({
33
- entryPoint: customer_wishlist_1.default.entryPoint,
34
- filterField: 'wishlist_id'
35
- })
36
- ]
37
- }
57
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
58
+ ],
59
+ },
38
60
  ];
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUc0QjtBQUc1Qix5RkFBK0Q7QUFDL0QsOEdBQTRIO0FBQzVILGlEQUF5RDtBQUN6RCw2Q0FBMkU7QUFFOUQsUUFBQSx3QkFBd0IsR0FBc0I7SUFDekQ7UUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLG9DQUF1QixFQUN2Qix1Q0FBd0IsQ0FBQyxJQUFJLENBQzlCO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQ0FBeUIsRUFDdkIsb0NBQXVCLEVBQ3ZCLHVDQUF3QixDQUFDLFFBQVEsQ0FDbEM7WUFDRCxJQUFBLG9DQUF3QixFQUFDLGdDQUFtQixDQUFDO1NBQzlDO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNsQixPQUFPLEVBQUUsMkNBQTJDO1FBQ3BELFdBQVcsRUFBRTtZQUNYLElBQUEscUVBQTBDLEVBQUM7Z0JBQ3pDLFVBQVUsRUFBRSwyQkFBZ0IsQ0FBQyxVQUFVO2dCQUN2QyxXQUFXLEVBQUUsYUFBYTthQUMzQixDQUFDO1NBQ0g7S0FDRjtDQUNGLENBQUEifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUc2QjtBQUM3Qiw2Q0FBaUU7QUFFakUscURBQXFFO0FBQ3JFLG1GQUEwRjtBQUMxRiwrRUFBd0Y7QUFDeEYsaURBQTBEO0FBQzFELDZDQUE0RTtBQUU1RSxtREFJa0M7QUFDbEMsd0VBS3NEO0FBRXpDLFFBQUEsd0JBQXdCLEdBQXNCO0lBQ3pEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixXQUFXLEVBQUU7WUFDWCxJQUFBLHFCQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUEscUNBQXlCLEVBQUMsbUNBQXNCLEVBQUUscUNBQXNCLENBQUM7WUFDekUsSUFBQSxrQ0FBMEIsR0FBRTtZQUM1QixJQUFBLDJCQUFvQixFQUFDO2dCQUNuQixVQUFVLEVBQUUsdUJBQXVCO2dCQUNuQyxVQUFVLEVBQUUsWUFBWTtnQkFDeEIsZUFBZSxFQUFFLGtCQUFrQjthQUNwQyxDQUFDO1lBQ0YsSUFBQSwwQkFBbUIsRUFBQztnQkFDbEIsTUFBTSxFQUFFLHFCQUFhLENBQUMsU0FBUztnQkFDL0Isb01BQW9NO2dCQUNwTSxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQUUsT0FBaUIsRUFBRSxFQUFFO29CQUM5QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO29CQUN4QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBRTNCLElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUIsT0FBTztvQkFDVCxDQUFDO29CQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNsRSxDQUFDO2FBQ0YsQ0FBQztZQUNGLElBQUEsK0JBQXVCLEdBQUU7WUFDekIsSUFBQSx5QkFBaUIsR0FBRTtZQUNuQixJQUFBLHFCQUFhLEdBQUU7WUFDZixJQUFBLHdCQUFpQixFQUFDLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEU7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFBLHFDQUF5QixFQUN2QixvQ0FBdUIsRUFDdkIsdUNBQXdCLENBQUMsUUFBUSxDQUNsQztZQUNELElBQUEsb0NBQXdCLEVBQUMsZ0NBQW1CLENBQUM7U0FDOUM7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7UUFDaEQsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtLQUNGO0NBQ0YsQ0FBQyJ9
@@ -1,21 +1,15 @@
1
1
  import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework';
2
2
  /**
3
- * @oas [delete] /store/wishlist/{id}/product/{reference_id}
3
+ * @oas [delete] /store/wishlist/product/{reference_id}
4
4
  * operationId: "StoreDeleteWishlist"
5
5
  * summary: "Delete a wishlist entry"
6
- * description: "Deletes a wishlist entry by its ID for the authenticated user."
6
+ * description: "Removes an item from the wishlist of the currently authenticated user. The wishlist is resolved from the logged-in customer."
7
7
  * x-authenticated: true
8
8
  * parameters:
9
- * - name: id
10
- * in: path
11
- * required: true
12
- * description: The ID of the wishlist entry to delete.
13
- * schema:
14
- * type: string
15
9
  * - name: reference_id
16
10
  * in: path
17
11
  * required: true
18
- * description: The ID of the wishlist entry to delete.
12
+ * description: ID of the product (wishlist entry) to remove.
19
13
  * schema:
20
14
  * type: string
21
15
  * responses:
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = void 0;
4
+ const workflows_1 = require("../../../../../workflows/wishlist/workflows");
5
+ const utils_1 = require("../../../../../modules/wishlist/utils");
6
+ const utils_2 = require("@medusajs/framework/utils");
7
+ /**
8
+ * @oas [delete] /store/wishlist/product/{reference_id}
9
+ * operationId: "StoreDeleteWishlist"
10
+ * summary: "Delete a wishlist entry"
11
+ * description: "Removes an item from the wishlist of the currently authenticated user. The wishlist is resolved from the logged-in customer."
12
+ * x-authenticated: true
13
+ * parameters:
14
+ * - name: reference_id
15
+ * in: path
16
+ * required: true
17
+ * description: ID of the product (wishlist entry) to remove.
18
+ * schema:
19
+ * type: string
20
+ * responses:
21
+ * "200":
22
+ * description: OK
23
+ * content:
24
+ * application/json:
25
+ * schema:
26
+ * type: object
27
+ * properties:
28
+ * id:
29
+ * type: string
30
+ * description: Id of the wishlsit nad reference id.
31
+ * reference_id:
32
+ * type: string
33
+ * object:
34
+ * type: string
35
+ * description: The type of resource
36
+ * deleted:
37
+ * type: boolean
38
+ * description: Indicates if the wishlist entry was deleted.
39
+ * tags:
40
+ * - Store Wishlist
41
+ * security:
42
+ * - api_token: []
43
+ * - cookie_auth: []
44
+ */
45
+ const DELETE = async (req, res) => {
46
+ const wishlist = await (0, utils_1.getWishlistFromCustomerId)(req.scope, req.auth_context.actor_id);
47
+ if (!wishlist) {
48
+ throw new utils_2.MedusaError(utils_2.MedusaError.Types.NOT_FOUND, 'Wishlist not found for current customer');
49
+ }
50
+ await workflows_1.deleteWishlistEntryWorkflow.run({
51
+ container: req.scope,
52
+ input: {
53
+ id: wishlist.id,
54
+ reference_id: req.params.reference_id
55
+ }
56
+ });
57
+ res.json({
58
+ id: wishlist.id,
59
+ reference_id: req.params.reference_id,
60
+ object: 'wishlist',
61
+ deleted: true
62
+ });
63
+ };
64
+ exports.DELETE = DELETE;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L3Byb2R1Y3QvW3JlZmVyZW5jZV9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXlGO0FBQ3pGLGlFQUFpRjtBQUNqRixxREFBdUQ7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFFSSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQ3pCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsaUNBQXlCLEVBQzlDLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQzFCLENBQUE7SUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQsTUFBTSx1Q0FBMkIsQ0FBQyxHQUFHLENBQUM7UUFDcEMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRTtZQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNmLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVk7U0FDdEM7S0FDRixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ2YsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTtRQUNyQyxNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQTNCWSxRQUFBLE1BQU0sVUEyQmxCIn0=