@mercurjs/core 2.2.0-canary.23 → 2.2.0-canary.26

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 (50) hide show
  1. package/.medusa/server/src/api/admin/offers/query-config.js +2 -1
  2. package/.medusa/server/src/api/admin/product-attributes/query-config.js +4 -1
  3. package/.medusa/server/src/api/admin/product-attributes/route.d.ts +2 -2
  4. package/.medusa/server/src/api/admin/product-attributes/route.js +1 -1
  5. package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +4 -4
  6. package/.medusa/server/src/api/store/middlewares.js +13 -11
  7. package/.medusa/server/src/api/store/offers/[id]/route.d.ts +3 -0
  8. package/.medusa/server/src/api/store/offers/[id]/route.js +28 -0
  9. package/.medusa/server/src/api/store/offers/helpers.d.ts +43 -0
  10. package/.medusa/server/src/api/store/offers/helpers.js +191 -0
  11. package/.medusa/server/src/api/store/offers/middlewares.d.ts +2 -0
  12. package/.medusa/server/src/api/store/offers/middlewares.js +64 -0
  13. package/.medusa/server/src/api/store/offers/query-config.d.ts +12 -0
  14. package/.medusa/server/src/api/store/offers/query-config.js +50 -0
  15. package/.medusa/server/src/api/store/offers/route.d.ts +3 -0
  16. package/.medusa/server/src/api/store/offers/route.js +30 -0
  17. package/.medusa/server/src/api/store/offers/validators.d.ts +159 -0
  18. package/.medusa/server/src/api/store/offers/validators.js +29 -0
  19. package/.medusa/server/src/api/store/products/[id]/route.js +9 -1
  20. package/.medusa/server/src/api/store/products/helpers.d.ts +10 -0
  21. package/.medusa/server/src/api/store/products/helpers.js +20 -0
  22. package/.medusa/server/src/api/store/products/middlewares.js +20 -15
  23. package/.medusa/server/src/api/store/products/route.js +9 -1
  24. package/.medusa/server/src/api/utils/offers.d.ts +30 -2
  25. package/.medusa/server/src/api/utils/offers.js +141 -2
  26. package/.medusa/server/src/api/utils/sellers.d.ts +2 -0
  27. package/.medusa/server/src/api/utils/sellers.js +23 -0
  28. package/.medusa/server/src/api/vendor/claims/validators.d.ts +6 -6
  29. package/.medusa/server/src/api/vendor/exchanges/validators.d.ts +6 -6
  30. package/.medusa/server/src/api/vendor/offers/query-config.js +2 -1
  31. package/.medusa/server/src/api/vendor/order-edits/validators.d.ts +6 -6
  32. package/.medusa/server/src/api/vendor/product-attributes/query-config.js +4 -2
  33. package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +4 -4
  34. package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +6 -6
  35. package/.medusa/server/src/api/vendor/sales-channels/[id]/products/route.js +2 -1
  36. package/.medusa/server/src/api/vendor/sales-channels/helpers.d.ts +1 -0
  37. package/.medusa/server/src/api/vendor/sales-channels/helpers.js +20 -2
  38. package/.medusa/server/src/links/offer-product-link.d.ts +2 -0
  39. package/.medusa/server/src/links/offer-product-link.js +15 -0
  40. package/.medusa/server/src/modules/commission/migrations/Migration20260615120000.js +1 -1
  41. package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.d.ts +5 -0
  42. package/.medusa/server/src/modules/offer/migrations/Migration20260622000000.js +16 -0
  43. package/.medusa/server/src/modules/offer/models/offer.d.ts +1 -0
  44. package/.medusa/server/src/modules/offer/models/offer.js +7 -1
  45. package/.medusa/server/src/modules/offer/service.d.ts +1 -0
  46. package/.medusa/server/src/workflows/offer/steps/create-offers.d.ts +1 -0
  47. package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +1 -0
  48. package/.medusa/server/src/workflows/offer/workflows/create-offers.js +3 -2
  49. package/.medusa/server/src/workflows/payout/workflows/create-payout.js +16 -16
  50. package/package.json +1 -1
@@ -5,6 +5,7 @@ exports.defaultAdminOfferFields = [
5
5
  "id",
6
6
  "seller_id",
7
7
  "variant_id",
8
+ "product_id",
8
9
  "shipping_profile_id",
9
10
  "sku",
10
11
  "ean",
@@ -44,4 +45,4 @@ exports.adminOfferQueryConfig = {
44
45
  isList: false,
45
46
  },
46
47
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9vZmZlcnMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLFlBQVk7SUFDWixVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixZQUFZO0lBQ1osV0FBVztJQUNYLGFBQWE7SUFDYixlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5QiwwQkFBMEI7SUFDMUIsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxvQkFBb0I7SUFDcEIscUJBQXFCO0NBQ3RCLENBQUE7QUFFWSxRQUFBLHFCQUFxQixHQUFHO0lBQ25DLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSwrQkFBdUI7UUFDakMsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwrQkFBdUI7UUFDakMsTUFBTSxFQUFFLEtBQUs7S0FDZDtDQUNGLENBQUEifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9vZmZlcnMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1osWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxZQUFZO0lBQ1osVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQiw4QkFBOEI7SUFDOUIsMEJBQTBCO0lBQzFCLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsb0JBQW9CO0lBQ3BCLHFCQUFxQjtDQUN0QixDQUFBO0FBRVksUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsK0JBQXVCO1FBQ2pDLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsK0JBQXVCO1FBQ2pDLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
@@ -18,6 +18,9 @@ exports.adminProductAttributeFields = [
18
18
  "created_at",
19
19
  "updated_at",
20
20
  "*values",
21
+ "categories.id",
22
+ "categories.name",
23
+ "categories.handle",
21
24
  ];
22
25
  exports.adminProductAttributeQueryConfig = {
23
26
  list: {
@@ -30,4 +33,4 @@ exports.adminProductAttributeQueryConfig = {
30
33
  isList: false,
31
34
  },
32
35
  };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9wcm9kdWN0LWF0dHJpYnV0ZXMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMkJBQTJCLEdBQUc7SUFDekMsSUFBSTtJQUNKLE1BQU07SUFDTixRQUFRO0lBQ1IsYUFBYTtJQUNiLE1BQU07SUFDTixhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixXQUFXO0lBQ1gsWUFBWTtJQUNaLFlBQVk7SUFDWixNQUFNO0lBQ04sVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osU0FBUztDQUNWLENBQUE7QUFFWSxRQUFBLGdDQUFnQyxHQUFHO0lBQzlDLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxtQ0FBMkI7UUFDckMsWUFBWSxFQUFFLEVBQUU7UUFDaEIsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxtQ0FBMkI7UUFDckMsTUFBTSxFQUFFLEtBQUs7S0FDZDtDQUNGLENBQUEifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9wcm9kdWN0LWF0dHJpYnV0ZXMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMkJBQTJCLEdBQUc7SUFDekMsSUFBSTtJQUNKLE1BQU07SUFDTixRQUFRO0lBQ1IsYUFBYTtJQUNiLE1BQU07SUFDTixhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixXQUFXO0lBQ1gsWUFBWTtJQUNaLFlBQVk7SUFDWixNQUFNO0lBQ04sVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osU0FBUztJQUNULGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0NBQ3BCLENBQUE7QUFFWSxRQUFBLGdDQUFnQyxHQUFHO0lBQzlDLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxtQ0FBMkI7UUFDckMsWUFBWSxFQUFFLEVBQUU7UUFDaEIsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxtQ0FBMkI7UUFDckMsTUFBTSxFQUFFLEtBQUs7S0FDZDtDQUNGLENBQUEifQ==
@@ -1,6 +1,6 @@
1
1
  import { AuthenticatedMedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
2
  import { AdditionalData } from "@medusajs/framework/types";
3
3
  import { HttpTypes } from "@mercurjs/types";
4
- import { AdminCreateProductAttributeType } from "./validators";
5
- export declare const GET: (req: AuthenticatedMedusaRequest, res: MedusaResponse<HttpTypes.AdminProductAttributeListResponse>) => Promise<void>;
4
+ import { AdminCreateProductAttributeType, AdminGetProductAttributesParamsType } from "./validators";
5
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetProductAttributesParamsType>, res: MedusaResponse<HttpTypes.AdminProductAttributeListResponse>) => Promise<void>;
6
6
  export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateProductAttributeType & AdditionalData>, res: MedusaResponse<HttpTypes.AdminProductAttributeResponse>) => Promise<void>;
@@ -38,4 +38,4 @@ const POST = async (req, res) => {
38
38
  res.status(200).json({ product_attribute });
39
39
  };
40
40
  exports.POST = POST;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtYXR0cmlidXRlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFJckUsd0hBQTBIO0FBR25ILE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBZ0UsRUFDaEUsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLGlFQUFpRTtJQUNqRSxrRUFBa0U7SUFDbEUsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9ELE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQ3RELFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLGtCQUFrQjtRQUNsQixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7UUFDM0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztLQUMzQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUF0QlksUUFBQSxHQUFHLE9Bc0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFpRixFQUNqRixHQUE0RCxFQUM1RCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFFM0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwyREFBK0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RFLEtBQUssRUFBRTtZQUNMLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUN0QjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUMxQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDOUIsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUE7QUFDN0MsQ0FBQyxDQUFBO0FBdkJZLFFBQUEsSUFBSSxRQXVCaEIifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtYXR0cmlidXRlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFJckUsd0hBQTBIO0FBTW5ILE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBb0UsRUFDcEUsR0FBZ0UsRUFDaEUsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLGlFQUFpRTtJQUNqRSxrRUFBa0U7SUFDbEUsc0RBQXNEO0lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9ELE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQ3RELFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLGtCQUFrQjtRQUNsQixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7UUFDM0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztLQUMzQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUF0QlksUUFBQSxHQUFHLE9Bc0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFpRixFQUNqRixHQUE0RCxFQUM1RCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFFM0UsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwyREFBK0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RFLEtBQUssRUFBRTtZQUNMLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUN0QjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUMxQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7S0FDOUIsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUE7QUFDN0MsQ0FBQyxDQUFBO0FBdkJZLFFBQUEsSUFBSSxRQXVCaEIifQ==
@@ -109,11 +109,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
109
109
  updated_at?: any;
110
110
  type?: AttributeType | AttributeType[] | undefined;
111
111
  q?: string | undefined;
112
+ product_id?: string | string[] | null | undefined;
112
113
  handle?: string | string[] | undefined;
113
114
  is_active?: boolean | undefined;
114
115
  is_variant_axis?: boolean | undefined;
115
116
  is_required?: boolean | undefined;
116
- product_id?: string | string[] | null | undefined;
117
117
  is_filterable?: boolean | undefined;
118
118
  category_id?: string | string[] | undefined;
119
119
  }, {
@@ -122,11 +122,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
122
122
  updated_at?: any;
123
123
  type?: AttributeType | AttributeType[] | undefined;
124
124
  q?: string | undefined;
125
+ product_id?: string | string[] | null | undefined;
125
126
  handle?: string | string[] | undefined;
126
127
  is_active?: string | boolean | undefined;
127
128
  is_variant_axis?: string | boolean | undefined;
128
129
  is_required?: string | boolean | undefined;
129
- product_id?: string | string[] | null | undefined;
130
130
  is_filterable?: string | boolean | undefined;
131
131
  category_id?: string | string[] | undefined;
132
132
  }>, "many">>>;
@@ -227,11 +227,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
227
227
  updated_at?: any;
228
228
  type?: AttributeType | AttributeType[] | undefined;
229
229
  q?: string | undefined;
230
+ product_id?: string | string[] | null | undefined;
230
231
  handle?: string | string[] | undefined;
231
232
  is_active?: boolean | undefined;
232
233
  is_variant_axis?: boolean | undefined;
233
234
  is_required?: boolean | undefined;
234
- product_id?: string | string[] | null | undefined;
235
235
  is_filterable?: boolean | undefined;
236
236
  category_id?: string | string[] | undefined;
237
237
  }, {
@@ -240,11 +240,11 @@ export declare const AdminGetProductAttributesParams: z.ZodObject<{} & {
240
240
  updated_at?: any;
241
241
  type?: AttributeType | AttributeType[] | undefined;
242
242
  q?: string | undefined;
243
+ product_id?: string | string[] | null | undefined;
243
244
  handle?: string | string[] | undefined;
244
245
  is_active?: string | boolean | undefined;
245
246
  is_variant_axis?: string | boolean | undefined;
246
247
  is_required?: string | boolean | undefined;
247
- product_id?: string | string[] | null | undefined;
248
248
  is_filterable?: string | boolean | undefined;
249
249
  category_id?: string | string[] | undefined;
250
250
  }>, "many">>>;
@@ -2,17 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.storeMiddlewares = void 0;
4
4
  const middlewares_1 = require("./carts/middlewares");
5
- const middlewares_2 = require("./order-groups/middlewares");
6
- const middlewares_3 = require("./product-attributes/middlewares");
7
- const middlewares_4 = require("./product-categories/middlewares");
8
- const middlewares_5 = require("./products/middlewares");
9
- const middlewares_6 = require("./sellers/middlewares");
5
+ const middlewares_2 = require("./offers/middlewares");
6
+ const middlewares_3 = require("./order-groups/middlewares");
7
+ const middlewares_4 = require("./product-attributes/middlewares");
8
+ const middlewares_5 = require("./product-categories/middlewares");
9
+ const middlewares_6 = require("./products/middlewares");
10
+ const middlewares_7 = require("./sellers/middlewares");
10
11
  exports.storeMiddlewares = [
11
12
  ...middlewares_1.storeCartsMiddlewares,
12
- ...middlewares_2.storeOrderGroupsMiddlewares,
13
- ...middlewares_3.storeProductAttributesMiddlewares,
14
- ...middlewares_4.storeProductCategoriesMiddlewares,
15
- ...middlewares_5.storeProductsMiddlewares,
16
- ...middlewares_6.storeSellersMiddlewares,
13
+ ...middlewares_2.storeOffersMiddlewares,
14
+ ...middlewares_3.storeOrderGroupsMiddlewares,
15
+ ...middlewares_4.storeProductAttributesMiddlewares,
16
+ ...middlewares_5.storeProductCategoriesMiddlewares,
17
+ ...middlewares_6.storeProductsMiddlewares,
18
+ ...middlewares_7.storeSellersMiddlewares,
17
19
  ];
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUEyRDtBQUMzRCw0REFBd0U7QUFDeEUsa0VBQW9GO0FBQ3BGLGtFQUFvRjtBQUNwRix3REFBaUU7QUFDakUsdURBQStEO0FBRWxELFFBQUEsZ0JBQWdCLEdBQXNCO0lBQ2pELEdBQUcsbUNBQXFCO0lBQ3hCLEdBQUcseUNBQTJCO0lBQzlCLEdBQUcsK0NBQWlDO0lBQ3BDLEdBQUcsK0NBQWlDO0lBQ3BDLEdBQUcsc0NBQXdCO0lBQzNCLEdBQUcscUNBQXVCO0NBQzNCLENBQUEifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFEQUEyRDtBQUMzRCxzREFBNkQ7QUFDN0QsNERBQXdFO0FBQ3hFLGtFQUFvRjtBQUNwRixrRUFBb0Y7QUFDcEYsd0RBQWlFO0FBQ2pFLHVEQUErRDtBQUVsRCxRQUFBLGdCQUFnQixHQUFzQjtJQUNqRCxHQUFHLG1DQUFxQjtJQUN4QixHQUFHLG9DQUFzQjtJQUN6QixHQUFHLHlDQUEyQjtJQUM5QixHQUFHLCtDQUFpQztJQUNwQyxHQUFHLCtDQUFpQztJQUNwQyxHQUFHLHNDQUF3QjtJQUMzQixHQUFHLHFDQUF1QjtDQUMzQixDQUFBIn0=
@@ -0,0 +1,3 @@
1
+ import { MedusaResponse, MedusaStoreRequest } from "@medusajs/framework/http";
2
+ import { StoreGetOfferParamsType } from "../validators";
3
+ export declare const GET: (req: MedusaStoreRequest<StoreGetOfferParamsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const helpers_1 = require("../helpers");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { fields, withCalculatedPrice, withInventoryQuantity } = (0, helpers_1.splitComputedOfferFields)(req.queryConfig.fields);
9
+ const { data: [offer], } = await query.graph({
10
+ entity: "offer",
11
+ fields: fields,
12
+ filters: { ...req.filterableFields, id: req.params.id },
13
+ });
14
+ if (!offer) {
15
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Offer with id ${req.params.id} was not found`);
16
+ }
17
+ const offers = [offer];
18
+ if (withCalculatedPrice) {
19
+ await (0, helpers_1.wrapOffersWithCalculatedPrices)(req, offers);
20
+ await (0, helpers_1.wrapOffersWithTaxPrices)(req, offers);
21
+ }
22
+ if (withInventoryQuantity) {
23
+ await (0, helpers_1.wrapOffersWithInventoryQuantityForSalesChannel)(req, offers);
24
+ }
25
+ res.json({ offer });
26
+ };
27
+ exports.GET = GET;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQUVsQyx3Q0FLbUI7QUFHWixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWdELEVBQ2hELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLEdBQzFELElBQUEsa0NBQXdCLEVBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVsRCxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQ2QsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtLQUN4RCxDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixpQkFBaUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixDQUMvQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdEIsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBQSx3Q0FBOEIsRUFDbEMsR0FBRyxFQUNILE1BQU0sQ0FDUCxDQUFBO1FBQ0QsTUFBTSxJQUFBLGlDQUF1QixFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBQSx3REFBOEMsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQXRDWSxRQUFBLEdBQUcsT0FzQ2YifQ==
@@ -0,0 +1,43 @@
1
+ import { MedusaStoreRequest } from "@medusajs/framework/http";
2
+ import { MedusaPricingContext, TaxCalculationContext } from "@medusajs/framework/types";
3
+ type OfferLocationLevel = {
4
+ location_id: string;
5
+ stocked_quantity: number;
6
+ };
7
+ type OfferInventoryLink = {
8
+ required_quantity?: number | null;
9
+ inventory_item?: {
10
+ location_levels?: OfferLocationLevel[] | null;
11
+ } | null;
12
+ };
13
+ export type EnrichableOffer = {
14
+ id: string;
15
+ product_id?: string;
16
+ product_variant?: {
17
+ price_set?: {
18
+ id?: string;
19
+ } | null;
20
+ } | null;
21
+ inventory_item_link?: OfferInventoryLink[] | null;
22
+ calculated_price?: Record<string, unknown> | null;
23
+ inventory_quantity?: number | null;
24
+ in_stock?: boolean;
25
+ };
26
+ type StoreRequestWithContext = MedusaStoreRequest<unknown> & {
27
+ pricingContext?: MedusaPricingContext;
28
+ taxContext?: {
29
+ taxLineContext?: TaxCalculationContext;
30
+ taxInclusivityContext?: {
31
+ automaticTaxes: boolean;
32
+ };
33
+ };
34
+ };
35
+ export declare const wrapOffersWithCalculatedPrices: (req: StoreRequestWithContext, offers: EnrichableOffer[]) => Promise<void>;
36
+ export declare const wrapOffersWithTaxPrices: (req: StoreRequestWithContext, offers: EnrichableOffer[]) => Promise<void>;
37
+ export declare const wrapOffersWithInventoryQuantityForSalesChannel: (req: MedusaStoreRequest<unknown>, offers: EnrichableOffer[]) => Promise<void>;
38
+ export declare const splitComputedOfferFields: (fields: string[]) => {
39
+ fields: string[];
40
+ withCalculatedPrice: boolean;
41
+ withInventoryQuantity: boolean;
42
+ };
43
+ export {};
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitComputedOfferFields = exports.wrapOffersWithInventoryQuantityForSalesChannel = exports.wrapOffersWithTaxPrices = exports.wrapOffersWithCalculatedPrices = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const utils_2 = require("@medusajs/framework/utils");
6
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
7
+ const wrapOffersWithCalculatedPrices = async (req, offers) => {
8
+ if (!req.pricingContext || !offers?.length) {
9
+ return;
10
+ }
11
+ const pricingModule = req.scope.resolve(utils_1.Modules.PRICING);
12
+ const baseContext = req.pricingContext;
13
+ const byPriceSet = new Map();
14
+ for (const offer of offers) {
15
+ const priceSetId = offer.product_variant?.price_set?.id;
16
+ if (!priceSetId) {
17
+ continue;
18
+ }
19
+ const group = byPriceSet.get(priceSetId);
20
+ if (group) {
21
+ group.push(offer);
22
+ }
23
+ else {
24
+ byPriceSet.set(priceSetId, [offer]);
25
+ }
26
+ }
27
+ if (!byPriceSet.size) {
28
+ return;
29
+ }
30
+ const singletons = [];
31
+ const siblings = [];
32
+ for (const [priceSetId, group] of byPriceSet) {
33
+ if (group.length === 1) {
34
+ singletons.push({ priceSetId, offer: group[0] });
35
+ }
36
+ else {
37
+ for (const offer of group) {
38
+ siblings.push({ priceSetId, offer });
39
+ }
40
+ }
41
+ }
42
+ const tasks = [];
43
+ if (singletons.length) {
44
+ tasks.push((async () => {
45
+ const context = {
46
+ ...baseContext,
47
+ offer_id: singletons.map((s) => s.offer.id),
48
+ };
49
+ const calculated = await pricingModule.calculatePrices({ id: singletons.map((s) => s.priceSetId) }, { context: context });
50
+ const byPriceSetId = new Map(calculated.map((c) => [
51
+ c.id,
52
+ c,
53
+ ]));
54
+ for (const { priceSetId, offer } of singletons) {
55
+ offer.calculated_price = byPriceSetId.get(priceSetId) ?? null;
56
+ }
57
+ })());
58
+ }
59
+ for (const { priceSetId, offer } of siblings) {
60
+ tasks.push((async () => {
61
+ const context = {
62
+ ...baseContext,
63
+ offer_id: offer.id,
64
+ };
65
+ const [calculated] = await pricingModule.calculatePrices({ id: [priceSetId] }, { context: context });
66
+ offer.calculated_price =
67
+ calculated ?? null;
68
+ })());
69
+ }
70
+ await (0, utils_2.promiseAll)(tasks);
71
+ };
72
+ exports.wrapOffersWithCalculatedPrices = wrapOffersWithCalculatedPrices;
73
+ const wrapOffersWithTaxPrices = async (req, offers) => {
74
+ if (!req.taxContext?.taxInclusivityContext ||
75
+ !req.taxContext?.taxLineContext ||
76
+ !offers?.length) {
77
+ return;
78
+ }
79
+ const items = offers
80
+ .map((offer) => {
81
+ const price = offer.calculated_price;
82
+ if (!price || !offer.product_id) {
83
+ return undefined;
84
+ }
85
+ return {
86
+ id: offer.id,
87
+ product_id: offer.product_id,
88
+ quantity: 1,
89
+ unit_price: price.calculated_amount,
90
+ currency_code: price.currency_code,
91
+ };
92
+ })
93
+ .filter((item) => !!item);
94
+ if (!items.length) {
95
+ return;
96
+ }
97
+ const taxService = req.scope.resolve(utils_1.Modules.TAX);
98
+ const taxLines = (await taxService.getTaxLines(items, req.taxContext.taxLineContext));
99
+ const taxRatesMap = new Map();
100
+ taxLines.forEach((taxLine) => {
101
+ const existing = taxRatesMap.get(taxLine.line_item_id) ?? [];
102
+ existing.push(taxLine);
103
+ taxRatesMap.set(taxLine.line_item_id, existing);
104
+ });
105
+ offers.forEach((offer) => {
106
+ const price = offer.calculated_price;
107
+ if (!price) {
108
+ return;
109
+ }
110
+ const taxRatesForOffer = taxRatesMap.get(offer.id) || [];
111
+ const { priceWithTax, priceWithoutTax } = (0, utils_2.calculateAmountsWithTax)({
112
+ taxLines: taxRatesForOffer,
113
+ amount: price.calculated_amount,
114
+ includesTax: price.is_calculated_price_tax_inclusive,
115
+ });
116
+ price.calculated_amount_with_tax = priceWithTax;
117
+ price.calculated_amount_without_tax = priceWithoutTax;
118
+ const { priceWithTax: originalPriceWithTax, priceWithoutTax: originalPriceWithoutTax, } = (0, utils_2.calculateAmountsWithTax)({
119
+ taxLines: taxRatesForOffer,
120
+ amount: price.original_amount,
121
+ includesTax: price.is_original_price_tax_inclusive,
122
+ });
123
+ price.original_amount_with_tax = originalPriceWithTax;
124
+ price.original_amount_without_tax = originalPriceWithoutTax;
125
+ });
126
+ };
127
+ exports.wrapOffersWithTaxPrices = wrapOffersWithTaxPrices;
128
+ const wrapOffersWithInventoryQuantityForSalesChannel = async (req, offers) => {
129
+ if (!offers?.length) {
130
+ return;
131
+ }
132
+ const salesChannelIds = (0, index_1.transformAndValidateSalesChannelIds)(req);
133
+ const publishableApiKeySalesChannelIds = req.publishable_key_context?.sales_channel_ids ?? [];
134
+ let channelToUse;
135
+ if (publishableApiKeySalesChannelIds.length === 1) {
136
+ channelToUse = publishableApiKeySalesChannelIds[0];
137
+ }
138
+ else if (salesChannelIds.length === 1) {
139
+ channelToUse = salesChannelIds[0];
140
+ }
141
+ else {
142
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Inventory availability cannot be calculated in the given context. Either provide a single sales channel id or configure a single sales channel in the publishable key`);
143
+ }
144
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
145
+ const { data: channels } = await query.graph({
146
+ entity: "sales_channel",
147
+ fields: ["stock_locations.id"],
148
+ filters: { id: channelToUse },
149
+ });
150
+ const channelLocationIds = new Set((channels[0]?.stock_locations ?? [])
151
+ .map((l) => l.id)
152
+ .filter((id) => Boolean(id)));
153
+ for (const offer of offers) {
154
+ const links = offer.inventory_item_link ?? [];
155
+ if (!links.length) {
156
+ offer.inventory_quantity = 0;
157
+ offer.in_stock = false;
158
+ continue;
159
+ }
160
+ let offerAvailability = Number.POSITIVE_INFINITY;
161
+ for (const link of links) {
162
+ const requiredQuantity = link.required_quantity ?? 1;
163
+ const levels = link.inventory_item?.location_levels ?? [];
164
+ const stocked = levels
165
+ .filter((level) => channelLocationIds.has(level.location_id))
166
+ .reduce((sum, level) => sum + (level.stocked_quantity ?? 0), 0);
167
+ const itemAvailability = requiredQuantity > 0 ? Math.floor(stocked / requiredQuantity) : 0;
168
+ offerAvailability = Math.min(offerAvailability, itemAvailability);
169
+ }
170
+ const quantity = Number.isFinite(offerAvailability) ? offerAvailability : 0;
171
+ offer.inventory_quantity = quantity;
172
+ offer.in_stock = quantity > 0;
173
+ }
174
+ };
175
+ exports.wrapOffersWithInventoryQuantityForSalesChannel = wrapOffersWithInventoryQuantityForSalesChannel;
176
+ const splitComputedOfferFields = (fields) => {
177
+ const withCalculatedPrice = fields.some((f) => f === "calculated_price" || f.startsWith("calculated_price."));
178
+ const withInventoryQuantity = fields.includes("inventory_quantity");
179
+ const withInStock = fields.includes("in_stock");
180
+ const filteredFields = fields.filter((f) => f !== "calculated_price" &&
181
+ !f.startsWith("calculated_price.") &&
182
+ f !== "inventory_quantity" &&
183
+ f !== "in_stock");
184
+ return {
185
+ fields: filteredFields,
186
+ withCalculatedPrice,
187
+ withInventoryQuantity: withInventoryQuantity || withInStock,
188
+ };
189
+ };
190
+ exports.splitComputedOfferFields = splitComputedOfferFields;
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvb2ZmZXJzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EscURBSWtDO0FBT2xDLHFEQUErRTtBQUMvRSx3RUFBa0c7QUFnQzNGLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxFQUNqRCxHQUE0QixFQUM1QixNQUF5QixFQUNWLEVBQUU7SUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0MsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLGNBQXlDLENBQUE7SUFFakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUE7SUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUE7UUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLFNBQVE7UUFDVixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN4QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENB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
@@ -0,0 +1,2 @@
1
+ import { MiddlewareRoute } from "@medusajs/framework/http";
2
+ export declare const storeOffersMiddlewares: MiddlewareRoute[];
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeOffersMiddlewares = void 0;
4
+ const http_1 = require("@medusajs/framework/http");
5
+ const framework_1 = require("@medusajs/framework");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const types_1 = require("@mercurjs/types");
8
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
9
+ const query_config_1 = require("./query-config");
10
+ const validators_1 = require("./validators");
11
+ const sellers_1 = require("../../utils/sellers");
12
+ async function applyVisibleSellerIdsFilter(req, _res, next) {
13
+ req.filterableFields ??= {};
14
+ req.filterableFields.seller_id = await (0, sellers_1.resolveVisibleSellerIds)(req.scope);
15
+ next();
16
+ }
17
+ async function applyPublishedProductFilter(req, _res, next) {
18
+ req.filterableFields ??= {};
19
+ const requested = req.filterableFields.product_id;
20
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
21
+ const { data: products } = await query.graph({
22
+ entity: "product",
23
+ fields: ["id"],
24
+ filters: {
25
+ status: types_1.ProductStatus.PUBLISHED,
26
+ ...(requested ? { id: requested } : {}),
27
+ },
28
+ });
29
+ req.filterableFields.product_id = products.map((p) => p.id);
30
+ next();
31
+ }
32
+ const pricingMiddlewares = [
33
+ (0, index_1.normalizeDataForContext)({ priceFieldPaths: ["calculated_price"] }),
34
+ (0, index_1.setPricingContext)({ priceFieldPaths: ["calculated_price"] }),
35
+ (0, index_1.setTaxContext)({ priceFieldPaths: ["calculated_price"] }),
36
+ ];
37
+ const offerMiddlewares = [
38
+ (0, http_1.authenticate)("customer", ["session", "bearer"], {
39
+ allowUnauthenticated: true,
40
+ }),
41
+ applyVisibleSellerIdsFilter,
42
+ applyPublishedProductFilter,
43
+ ...pricingMiddlewares,
44
+ (0, http_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
45
+ ];
46
+ exports.storeOffersMiddlewares = [
47
+ {
48
+ method: ["GET"],
49
+ matcher: "/store/offers",
50
+ middlewares: [
51
+ (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetOffersParams, query_config_1.storeOfferQueryConfig.list),
52
+ ...offerMiddlewares,
53
+ ],
54
+ },
55
+ {
56
+ method: ["GET"],
57
+ matcher: "/store/offers/:id",
58
+ middlewares: [
59
+ (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetOfferParams, query_config_1.storeOfferQueryConfig.retrieve),
60
+ ...offerMiddlewares,
61
+ ],
62
+ },
63
+ ];
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFPaUM7QUFDakMsbURBQStEO0FBQy9ELHFEQUFxRTtBQUNyRSwyQ0FBK0M7QUFDL0Msd0VBSXFEO0FBRXJELGlEQUFzRDtBQUN0RCw2Q0FBd0U7QUFDeEUsaURBQTZEO0FBRTdELEtBQUssVUFBVSwyQkFBMkIsQ0FDeEMsR0FBa0IsRUFDbEIsSUFBb0IsRUFDcEIsSUFBd0I7SUFFeEIsR0FBRyxDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQTtJQUMzQixHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekUsSUFBSSxFQUFFLENBQUE7QUFDUixDQUFDO0FBRUQsS0FBSyxVQUFVLDJCQUEyQixDQUN4QyxHQUFrQixFQUNsQixJQUFvQixFQUNwQixJQUF3QjtJQUV4QixHQUFHLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxDQUFBO0lBQzNCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUcxQixDQUFBO0lBRWIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2QsT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFLHFCQUFhLENBQUMsU0FBUztZQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLElBQUksRUFBRSxDQUFBO0FBQ1IsQ0FBQztBQUVELE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsSUFBQSwrQkFBdUIsRUFBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztJQUNsRSxJQUFBLHlCQUFpQixFQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0lBQzVELElBQUEscUJBQWEsRUFBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztDQUN6RCxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixJQUFBLG1CQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQzlDLG9CQUFvQixFQUFFLElBQUk7S0FDM0IsQ0FBQztJQUNGLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsR0FBRyxrQkFBa0I7SUFDckIsSUFBQSx3QkFBaUIsRUFBQyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0NBQ3hFLENBQUE7QUFFWSxRQUFBLHNCQUFzQixHQUFzQjtJQUN2RDtRQUNFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLGlDQUFvQixFQUNwQixvQ0FBcUIsQ0FBQyxJQUFJLENBQzNCO1lBQ0QsR0FBRyxnQkFBZ0I7U0FDcEI7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixXQUFXLEVBQUU7WUFDWCxJQUFBLHFDQUF5QixFQUN2QixnQ0FBbUIsRUFDbkIsb0NBQXFCLENBQUMsUUFBUSxDQUMvQjtZQUNELEdBQUcsZ0JBQWdCO1NBQ3BCO0tBQ0Y7Q0FDRixDQUFBIn0=
@@ -0,0 +1,12 @@
1
+ export declare const defaultStoreOfferFields: string[];
2
+ export declare const storeOfferQueryConfig: {
3
+ list: {
4
+ defaults: string[];
5
+ defaultLimit: number;
6
+ isList: boolean;
7
+ };
8
+ retrieve: {
9
+ defaults: string[];
10
+ isList: boolean;
11
+ };
12
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeOfferQueryConfig = exports.defaultStoreOfferFields = void 0;
4
+ exports.defaultStoreOfferFields = [
5
+ "id",
6
+ "seller_id",
7
+ "variant_id",
8
+ "product_id",
9
+ "shipping_profile_id",
10
+ "sku",
11
+ "ean",
12
+ "upc",
13
+ "metadata",
14
+ "created_at",
15
+ "updated_at",
16
+ "seller.id",
17
+ "seller.name",
18
+ "seller.handle",
19
+ "product_variant.id",
20
+ "product_variant.title",
21
+ "product_variant.sku",
22
+ "product_variant.price_set.id",
23
+ "shipping_profile.id",
24
+ "shipping_profile.name",
25
+ "prices.id",
26
+ "prices.amount",
27
+ "prices.currency_code",
28
+ "prices.min_quantity",
29
+ "prices.max_quantity",
30
+ "inventory_item_link.id",
31
+ "inventory_item_link.required_quantity",
32
+ "inventory_item_link.inventory_item_id",
33
+ "inventory_item_link.inventory_item.id",
34
+ "inventory_item_link.inventory_item.sku",
35
+ "inventory_item_link.inventory_item.location_levels.id",
36
+ "inventory_item_link.inventory_item.location_levels.location_id",
37
+ "inventory_item_link.inventory_item.location_levels.stocked_quantity",
38
+ ];
39
+ exports.storeOfferQueryConfig = {
40
+ list: {
41
+ defaults: exports.defaultStoreOfferFields,
42
+ defaultLimit: 50,
43
+ isList: true,
44
+ },
45
+ retrieve: {
46
+ defaults: exports.defaultStoreOfferFields,
47
+ isList: false,
48
+ },
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9vZmZlcnMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1osWUFBWTtJQUNaLHFCQUFxQjtJQUNyQixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixXQUFXO0lBQ1gsYUFBYTtJQUNiLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHFCQUFxQjtJQUNyQiw4QkFBOEI7SUFDOUIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4Qix1Q0FBdUM7SUFDdkMsdUNBQXVDO0lBQ3ZDLHVDQUF1QztJQUN2Qyx3Q0FBd0M7SUFDeEMsdURBQXVEO0lBQ3ZELGdFQUFnRTtJQUNoRSxxRUFBcUU7Q0FDdEUsQ0FBQTtBQUVZLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLCtCQUF1QjtRQUNqQyxZQUFZLEVBQUUsRUFBRTtRQUNoQixNQUFNLEVBQUUsSUFBSTtLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLCtCQUF1QjtRQUNqQyxNQUFNLEVBQUUsS0FBSztLQUNkO0NBQ0YsQ0FBQSJ9
@@ -0,0 +1,3 @@
1
+ import { MedusaResponse, MedusaStoreRequest } from "@medusajs/framework/http";
2
+ import { StoreGetOffersParamsType } from "./validators";
3
+ export declare const GET: (req: MedusaStoreRequest<StoreGetOffersParamsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const helpers_1 = require("./helpers");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { fields, withCalculatedPrice, withInventoryQuantity } = (0, helpers_1.splitComputedOfferFields)(req.queryConfig.fields);
9
+ const { data: offers, metadata } = await query.graph({
10
+ entity: "offer",
11
+ fields: fields,
12
+ filters: req.filterableFields,
13
+ pagination: req.queryConfig.pagination,
14
+ });
15
+ if (withCalculatedPrice) {
16
+ await (0, helpers_1.wrapOffersWithCalculatedPrices)(req, offers);
17
+ await (0, helpers_1.wrapOffersWithTaxPrices)(req, offers);
18
+ }
19
+ if (withInventoryQuantity) {
20
+ await (0, helpers_1.wrapOffersWithInventoryQuantityForSalesChannel)(req, offers);
21
+ }
22
+ res.json({
23
+ offers,
24
+ count: metadata?.count ?? 0,
25
+ offset: metadata?.skip ?? 0,
26
+ limit: metadata?.take ?? 0,
27
+ });
28
+ };
29
+ exports.GET = GET;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29mZmVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFFckUsdUNBS2tCO0FBR1gsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFpRCxFQUNqRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxHQUMxRCxJQUFBLGtDQUF3QixFQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFbEQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO0tBQ3ZDLENBQUMsQ0FBQTtJQUVGLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUEsd0NBQThCLEVBQ2xDLEdBQUcsRUFDSCxNQUFNLENBQ1AsQ0FBQTtRQUNELE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUEsd0RBQThDLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsTUFBTTtRQUNOLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDM0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUMzQixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO0tBQzNCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWxDWSxRQUFBLEdBQUcsT0FrQ2YifQ==