@mercurjs/core 2.2.0-canary.19 → 2.2.0-canary.20

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 (38) hide show
  1. package/.medusa/server/src/api/admin/product-categories/[id]/route.js +8 -11
  2. package/.medusa/server/src/api/admin/product-categories/query-config.js +7 -1
  3. package/.medusa/server/src/api/admin/product-categories/route.js +5 -8
  4. package/.medusa/server/src/api/admin/product-categories/validators.d.ts +62 -0
  5. package/.medusa/server/src/api/admin/product-categories/validators.js +11 -1
  6. package/.medusa/server/src/links/media-product-category-link.d.ts +12 -0
  7. package/.medusa/server/src/links/media-product-category-link.js +23 -0
  8. package/.medusa/server/src/modules/media/index.d.ts +21 -0
  9. package/.medusa/server/src/modules/media/index.js +12 -0
  10. package/.medusa/server/src/modules/media/migrations/Migration20260616000000.d.ts +5 -0
  11. package/.medusa/server/src/modules/media/migrations/Migration20260616000000.js +16 -0
  12. package/.medusa/server/src/modules/media/models/image.d.ts +28 -0
  13. package/.medusa/server/src/modules/media/models/image.js +37 -0
  14. package/.medusa/server/src/modules/media/models/index.d.ts +1 -0
  15. package/.medusa/server/src/modules/media/models/index.js +9 -0
  16. package/.medusa/server/src/modules/media/service.d.ts +17 -0
  17. package/.medusa/server/src/modules/media/service.js +10 -0
  18. package/.medusa/server/src/workflows/index.d.ts +1 -0
  19. package/.medusa/server/src/workflows/index.js +2 -1
  20. package/.medusa/server/src/workflows/media/index.d.ts +2 -0
  21. package/.medusa/server/src/workflows/media/index.js +19 -0
  22. package/.medusa/server/src/workflows/media/steps/create-images.d.ts +23 -0
  23. package/.medusa/server/src/workflows/media/steps/create-images.js +24 -0
  24. package/.medusa/server/src/workflows/media/steps/delete-images.d.ts +6 -0
  25. package/.medusa/server/src/workflows/media/steps/delete-images.js +24 -0
  26. package/.medusa/server/src/workflows/media/steps/index.d.ts +2 -0
  27. package/.medusa/server/src/workflows/media/steps/index.js +19 -0
  28. package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.d.ts +16 -0
  29. package/.medusa/server/src/workflows/media/workflows/create-product-category-with-images.js +28 -0
  30. package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.d.ts +9 -0
  31. package/.medusa/server/src/workflows/media/workflows/delete-product-category-with-images.js +26 -0
  32. package/.medusa/server/src/workflows/media/workflows/index.d.ts +4 -0
  33. package/.medusa/server/src/workflows/media/workflows/index.js +21 -0
  34. package/.medusa/server/src/workflows/media/workflows/set-category-images.d.ts +24 -0
  35. package/.medusa/server/src/workflows/media/workflows/set-category-images.js +80 -0
  36. package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.d.ts +16 -0
  37. package/.medusa/server/src/workflows/media/workflows/update-product-category-with-images.js +26 -0
  38. package/package.json +1 -1
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DELETE = exports.POST = exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const core_flows_2 = require("@medusajs/medusa/core-flows");
5
+ const update_product_category_with_images_1 = require("../../../../workflows/media/workflows/update-product-category-with-images");
6
+ const delete_product_category_with_images_1 = require("../../../../workflows/media/workflows/delete-product-category-with-images");
7
7
  const GET = async (req, res) => {
8
8
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
9
  const { data: [product_category], } = await query.graph({
@@ -19,12 +19,9 @@ const GET = async (req, res) => {
19
19
  exports.GET = GET;
20
20
  const POST = async (req, res) => {
21
21
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
22
- const { additional_data: _additional_data, ...update } = req.validatedBody;
23
- await (0, core_flows_2.updateProductCategoriesWorkflow)(req.scope).run({
24
- input: {
25
- selector: { id: req.params.id },
26
- update,
27
- },
22
+ const { additional_data: _additional_data, media, icon, ...update } = req.validatedBody;
23
+ await (0, update_product_category_with_images_1.updateProductCategoryWithImagesWorkflow)(req.scope).run({
24
+ input: { id: req.params.id, update, media, icon },
28
25
  });
29
26
  const { data: [product_category], } = await query.graph({
30
27
  entity: "product_category",
@@ -38,8 +35,8 @@ const POST = async (req, res) => {
38
35
  };
39
36
  exports.POST = POST;
40
37
  const DELETE = async (req, res) => {
41
- await (0, core_flows_1.deleteProductCategoriesWorkflow)(req.scope).run({
42
- input: [req.params.id],
38
+ await (0, delete_product_category_with_images_1.deleteProductCategoryWithImagesWorkflow)(req.scope).run({
39
+ input: { id: req.params.id },
43
40
  });
44
41
  res.status(200).json({
45
42
  id: req.params.id,
@@ -48,4 +45,4 @@ const DELETE = async (req, res) => {
48
45
  });
49
46
  };
50
47
  exports.DELETE = DELETE;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtY2F0ZWdvcmllcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQUtsQyw0REFBNkU7QUFDN0UsNERBQTZFO0FBR3RFLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBMkQsRUFDM0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUN6QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQy9CLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDRCQUE0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUF0QlksUUFBQSxHQUFHLE9Bc0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFnRixFQUNoRixHQUEyRCxFQUMzRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFFMUUsTUFBTSxJQUFBLDRDQUErQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbkQsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQy9CLE1BQU07U0FDQTtLQUNULENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUN6QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQy9CLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDRCQUE0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUEvQlksUUFBQSxJQUFJLFFBK0JoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBaUUsRUFDakUsRUFBRTtJQUNGLE1BQU0sSUFBQSw0Q0FBK0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25ELEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFRO0tBQzlCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWJZLFFBQUEsTUFBTSxVQWFsQiJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtY2F0ZWdvcmllcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQU1sQyxtSUFBbUk7QUFDbkksbUlBQW1JO0FBRTVILE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBMkQsRUFDM0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUN6QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQy9CLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDRCQUE0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUF0QlksUUFBQSxHQUFHLE9Bc0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFnRixFQUNoRixHQUEyRCxFQUMzRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLGVBQWUsRUFBRSxnQkFBZ0IsRUFDakMsS0FBSyxFQUNMLElBQUksRUFDSixHQUFHLE1BQU0sRUFDVixHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFFckIsTUFBTSxJQUFBLDZFQUF1QyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDM0QsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0tBQ2xELENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUN6QixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQy9CLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLDRCQUE0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFqQ1ksUUFBQSxJQUFJLFFBaUNoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBaUUsRUFDakUsRUFBRTtJQUNGLE1BQU0sSUFBQSw2RUFBdUMsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzNELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtLQUM3QixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuQixFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFiWSxRQUFBLE1BQU0sVUFhbEIifQ==
@@ -16,6 +16,12 @@ exports.adminProductCategoryFields = [
16
16
  "metadata",
17
17
  "*parent_category",
18
18
  "*category_children",
19
+ "images.id",
20
+ "images.url",
21
+ "images.type",
22
+ "images.is_thumbnail",
23
+ "images.is_banner",
24
+ "images.rank",
19
25
  ];
20
26
  exports.adminProductCategoryQueryConfig = {
21
27
  list: {
@@ -28,4 +34,4 @@ exports.adminProductCategoryQueryConfig = {
28
34
  isList: false,
29
35
  },
30
36
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9wcm9kdWN0LWNhdGVnb3JpZXMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsSUFBSTtJQUNKLE1BQU07SUFDTixhQUFhO0lBQ2IsUUFBUTtJQUNSLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZUFBZTtJQUNmLE1BQU07SUFDTixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLFlBQVk7SUFDWixVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLG9CQUFvQjtDQUNyQixDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBRztJQUM3QyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9wcm9kdWN0LWNhdGVnb3JpZXMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsSUFBSTtJQUNKLE1BQU07SUFDTixhQUFhO0lBQ2IsUUFBUTtJQUNSLFdBQVc7SUFDWCxhQUFhO0lBQ2IsZUFBZTtJQUNmLE1BQU07SUFDTixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLFlBQVk7SUFDWixVQUFVO0lBQ1Ysa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixXQUFXO0lBQ1gsWUFBWTtJQUNaLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLGFBQWE7Q0FDZCxDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBRztJQUM3QyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLFlBQVksRUFBRSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsa0NBQTBCO1FBQ3BDLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFBIn0=
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const create_product_category_with_images_1 = require("../../../workflows/media/workflows/create-product-category-with-images");
6
6
  const GET = async (req, res) => {
7
7
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
8
  const { data: product_categories, metadata } = await query.graph({
@@ -21,13 +21,10 @@ const GET = async (req, res) => {
21
21
  exports.GET = GET;
22
22
  const POST = async (req, res) => {
23
23
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
24
- const { additional_data: _additional_data, ...payload } = req.validatedBody;
25
- const { result } = await (0, core_flows_1.createProductCategoriesWorkflow)(req.scope).run({
26
- input: {
27
- product_categories: [payload],
28
- },
24
+ const { additional_data: _additional_data, media, icon, ...payload } = req.validatedBody;
25
+ const { result: createdId } = await (0, create_product_category_with_images_1.createProductCategoryWithImagesWorkflow)(req.scope).run({
26
+ input: { product_category: payload, media, icon },
29
27
  });
30
- const createdId = result[0].id;
31
28
  const { data: [product_category], } = await query.graph({
32
29
  entity: "product_category",
33
30
  fields: req.queryConfig.fields,
@@ -36,4 +33,4 @@ const POST = async (req, res) => {
36
33
  res.status(200).json({ product_category });
37
34
  };
38
35
  exports.POST = POST;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtY2F0ZWdvcmllcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFJckUsNERBQTZFO0FBR3RFLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBK0QsRUFDL0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9ELE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO0tBQ3ZDLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxrQkFBa0I7UUFDbEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1FBQzNCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7S0FDM0IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBbkJZLFFBQUEsR0FBRyxPQW1CZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBZ0YsRUFDaEYsR0FBMkQsRUFDM0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBRTNFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsNENBQStCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RSxLQUFLLEVBQUU7WUFDTCxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUN2QjtLQUNULENBQUMsQ0FBQTtJQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDOUIsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQ3pCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO0tBQzNCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQTtBQXhCWSxRQUFBLElBQUksUUF3QmhCIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtY2F0ZWdvcmllcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBcUU7QUFLckUsZ0lBQWdJO0FBRXpILE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBK0QsRUFDL0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9ELE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO0tBQ3ZDLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxrQkFBa0I7UUFDbEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1FBQzNCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7S0FDM0IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBbkJZLFFBQUEsR0FBRyxPQW1CZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBZ0YsRUFDaEYsR0FBMkQsRUFDM0QsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFDSixlQUFlLEVBQUUsZ0JBQWdCLEVBQ2pDLEtBQUssRUFDTCxJQUFJLEVBQ0osR0FBRyxPQUFPLEVBQ1gsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBRXJCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFBLDZFQUF1QyxFQUN6RSxHQUFHLENBQUMsS0FBSyxDQUNWLENBQUMsR0FBRyxDQUFDO1FBQ0osS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDbEQsQ0FBQyxDQUFBO0lBRUYsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQ3pCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO0tBQzNCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQTtBQTVCWSxRQUFBLElBQUksUUE0QmhCIn0=
@@ -353,6 +353,23 @@ declare const CreateProductCategory: z.ZodObject<{
353
353
  attribute_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
354
354
  metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
355
355
  rank: z.ZodOptional<z.ZodNumber>;
356
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
357
+ url: z.ZodString;
358
+ is_thumbnail: z.ZodOptional<z.ZodBoolean>;
359
+ is_banner: z.ZodOptional<z.ZodBoolean>;
360
+ rank: z.ZodOptional<z.ZodNumber>;
361
+ }, "strip", z.ZodTypeAny, {
362
+ url: string;
363
+ rank?: number | undefined;
364
+ is_thumbnail?: boolean | undefined;
365
+ is_banner?: boolean | undefined;
366
+ }, {
367
+ url: string;
368
+ rank?: number | undefined;
369
+ is_thumbnail?: boolean | undefined;
370
+ is_banner?: boolean | undefined;
371
+ }>, "many">>;
372
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
356
373
  }, "strip", z.ZodTypeAny, {
357
374
  name: string;
358
375
  metadata?: Record<string, unknown> | null | undefined;
@@ -364,6 +381,13 @@ declare const CreateProductCategory: z.ZodObject<{
364
381
  is_restricted?: boolean | undefined;
365
382
  parent_category_id?: string | null | undefined;
366
383
  attribute_ids?: string[] | undefined;
384
+ media?: {
385
+ url: string;
386
+ rank?: number | undefined;
387
+ is_thumbnail?: boolean | undefined;
388
+ is_banner?: boolean | undefined;
389
+ }[] | undefined;
390
+ icon?: string | null | undefined;
367
391
  }, {
368
392
  name: string;
369
393
  metadata?: Record<string, unknown> | null | undefined;
@@ -375,6 +399,13 @@ declare const CreateProductCategory: z.ZodObject<{
375
399
  is_restricted?: boolean | undefined;
376
400
  parent_category_id?: string | null | undefined;
377
401
  attribute_ids?: string[] | undefined;
402
+ media?: {
403
+ url: string;
404
+ rank?: number | undefined;
405
+ is_thumbnail?: boolean | undefined;
406
+ is_banner?: boolean | undefined;
407
+ }[] | undefined;
408
+ icon?: string | null | undefined;
378
409
  }>;
379
410
  export declare const AdminCreateProductCategory: (additionalDataValidator?: z.ZodOptional<z.ZodNullable<z.ZodObject<any, any>>>) => z.ZodObject<any, any, z.ZodTypeAny, {
380
411
  [x: string]: any;
@@ -393,6 +424,23 @@ declare const UpdateProductCategory: z.ZodObject<{
393
424
  attribute_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
394
425
  metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
395
426
  rank: z.ZodOptional<z.ZodNumber>;
427
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
428
+ url: z.ZodString;
429
+ is_thumbnail: z.ZodOptional<z.ZodBoolean>;
430
+ is_banner: z.ZodOptional<z.ZodBoolean>;
431
+ rank: z.ZodOptional<z.ZodNumber>;
432
+ }, "strip", z.ZodTypeAny, {
433
+ url: string;
434
+ rank?: number | undefined;
435
+ is_thumbnail?: boolean | undefined;
436
+ is_banner?: boolean | undefined;
437
+ }, {
438
+ url: string;
439
+ rank?: number | undefined;
440
+ is_thumbnail?: boolean | undefined;
441
+ is_banner?: boolean | undefined;
442
+ }>, "many">>;
443
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
396
444
  }, "strip", z.ZodTypeAny, {
397
445
  metadata?: Record<string, unknown> | null | undefined;
398
446
  name?: string | undefined;
@@ -404,6 +452,13 @@ declare const UpdateProductCategory: z.ZodObject<{
404
452
  is_restricted?: boolean | undefined;
405
453
  parent_category_id?: string | null | undefined;
406
454
  attribute_ids?: string[] | undefined;
455
+ media?: {
456
+ url: string;
457
+ rank?: number | undefined;
458
+ is_thumbnail?: boolean | undefined;
459
+ is_banner?: boolean | undefined;
460
+ }[] | undefined;
461
+ icon?: string | null | undefined;
407
462
  }, {
408
463
  metadata?: Record<string, unknown> | null | undefined;
409
464
  name?: string | undefined;
@@ -415,6 +470,13 @@ declare const UpdateProductCategory: z.ZodObject<{
415
470
  is_restricted?: boolean | undefined;
416
471
  parent_category_id?: string | null | undefined;
417
472
  attribute_ids?: string[] | undefined;
473
+ media?: {
474
+ url: string;
475
+ rank?: number | undefined;
476
+ is_thumbnail?: boolean | undefined;
477
+ is_banner?: boolean | undefined;
478
+ }[] | undefined;
479
+ icon?: string | null | undefined;
418
480
  }>;
419
481
  export declare const AdminUpdateProductCategory: (additionalDataValidator?: z.ZodOptional<z.ZodNullable<z.ZodObject<any, any>>>) => z.ZodObject<any, any, z.ZodTypeAny, {
420
482
  [x: string]: any;
@@ -28,6 +28,12 @@ exports.AdminProductCategoriesParams = (0, validators_1.createFindParams)({
28
28
  })
29
29
  .merge(AdminProductCategoriesParamsFields)
30
30
  .merge((0, common_1.applyAndAndOrOperators)(AdminProductCategoriesParamsFields));
31
+ const ProductCategoryMedia = zod_1.z.object({
32
+ url: zod_1.z.string(),
33
+ is_thumbnail: zod_1.z.boolean().optional(),
34
+ is_banner: zod_1.z.boolean().optional(),
35
+ rank: zod_1.z.number().optional(),
36
+ });
31
37
  const CreateProductCategory = zod_1.z.object({
32
38
  name: zod_1.z.string(),
33
39
  description: zod_1.z.string().optional(),
@@ -39,6 +45,8 @@ const CreateProductCategory = zod_1.z.object({
39
45
  attribute_ids: zod_1.z.array(zod_1.z.string()).optional(),
40
46
  metadata: zod_1.z.record(zod_1.z.unknown()).nullish(),
41
47
  rank: zod_1.z.number().nonnegative().optional(),
48
+ media: zod_1.z.array(ProductCategoryMedia).optional(),
49
+ icon: zod_1.z.string().nullish(),
42
50
  });
43
51
  exports.AdminCreateProductCategory = (0, validators_1.WithAdditionalData)(CreateProductCategory);
44
52
  const UpdateProductCategory = zod_1.z.object({
@@ -52,6 +60,8 @@ const UpdateProductCategory = zod_1.z.object({
52
60
  attribute_ids: zod_1.z.array(zod_1.z.string()).optional(),
53
61
  metadata: zod_1.z.record(zod_1.z.unknown()).nullish(),
54
62
  rank: zod_1.z.number().nonnegative().optional(),
63
+ media: zod_1.z.array(ProductCategoryMedia).optional(),
64
+ icon: zod_1.z.string().nullish(),
55
65
  });
56
66
  exports.AdminUpdateProductCategory = (0, validators_1.WithAdditionalData)(UpdateProductCategory);
57
67
  exports.AdminBatchLinkProductsToCategory = zod_1.z.object({
@@ -62,4 +72,4 @@ exports.AdminBatchLinkSellersToCategory = zod_1.z.object({
62
72
  add: zod_1.z.array(zod_1.z.string()).optional(),
63
73
  remove: zod_1.z.array(zod_1.z.string()).optional(),
64
74
  });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vcHJvZHVjdC1jYXRlZ29yaWVzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXVCO0FBQ3ZCLHNFQUs4QztBQUM5QyxnRkFHNEQ7QUFNL0MsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLCtCQUFrQixHQUFFLENBQUMsS0FBSyxDQUNsRSxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1Asc0JBQXNCLEVBQUUsSUFBQSxzQkFBYSxHQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xELHdCQUF3QixFQUFFLElBQUEsc0JBQWEsR0FBRSxDQUFDLFFBQVEsRUFBRTtDQUNyRCxDQUFDLENBQ0gsQ0FBQTtBQUVELE1BQU0sa0NBQWtDLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDekQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzdELGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pFLFNB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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vcHJvZHVjdC1jYXRlZ29yaWVzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXVCO0FBQ3ZCLHNFQUs4QztBQUM5QyxnRkFHNEQ7QUFNL0MsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLCtCQUFrQixHQUFFLENBQUMsS0FBSyxDQUNsRSxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1Asc0JBQXNCLEVBQUUsSUFBQSxzQkFBYSxHQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xELHdCQUF3QixFQUFFLElBQUEsc0JBQWEsR0FBRSxDQUFDLFFBQVEsRUFBRTtDQUNyRCxDQUFDLENBQ0gsQ0FBQTtBQUVELE1BQU0sa0NBQWtDLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDekQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzdELGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pFLFNB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
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ProductCategory → Image link.
3
+ *
4
+ * Direction is category → media: the category owns its images, so
5
+ * `productCategory` is the parent linkable and `isList: true` sits on the
6
+ * image side. A category resolves its gallery + icon via `category.images`.
7
+ *
8
+ * The same `Image` model is reused for product collections later by adding
9
+ * a second, analogous link — keep this entity-agnostic.
10
+ */
11
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
12
+ export default _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const media_1 = __importDefault(require("../modules/media"));
9
+ /**
10
+ * ProductCategory → Image link.
11
+ *
12
+ * Direction is category → media: the category owns its images, so
13
+ * `productCategory` is the parent linkable and `isList: true` sits on the
14
+ * image side. A category resolves its gallery + icon via `category.images`.
15
+ *
16
+ * The same `Image` model is reused for product collections later by adding
17
+ * a second, analogous link — keep this entity-agnostic.
18
+ */
19
+ exports.default = (0, utils_1.defineLink)(product_1.default.linkable.productCategory, {
20
+ linkable: media_1.default.linkable.image,
21
+ isList: true,
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcHJvZHVjdC1jYXRlZ29yeS1saW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL21lZGlhLXByb2R1Y3QtY2F0ZWdvcnktbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx1RUFBb0Q7QUFFcEQsNkRBQTBDO0FBRTFDOzs7Ozs7Ozs7R0FTRztBQUNILGtCQUFlLElBQUEsa0JBQVUsRUFDdkIsaUJBQWEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUN0QztJQUNFLFFBQVEsRUFBRSxlQUFXLENBQUMsUUFBUSxDQUFDLEtBQUs7SUFDcEMsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUEifQ==
@@ -0,0 +1,21 @@
1
+ import { MercurModules } from "@mercurjs/types";
2
+ import MediaModuleService from "./service";
3
+ declare const _default: import("@mercurjs/types").ModuleExports<typeof MediaModuleService> & {
4
+ linkable: {
5
+ readonly image: {
6
+ id: {
7
+ serviceName: MercurModules.MEDIA;
8
+ field: "image";
9
+ linkable: "image_id";
10
+ primaryKey: "id";
11
+ };
12
+ toJSON: () => {
13
+ serviceName: MercurModules.MEDIA;
14
+ field: "image";
15
+ linkable: "image_id";
16
+ primaryKey: "id";
17
+ };
18
+ };
19
+ };
20
+ };
21
+ export default _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const types_1 = require("@mercurjs/types");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.default = (0, utils_1.Module)(types_1.MercurModules.MEDIA, {
10
+ service: service_1.default,
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFrRDtBQUNsRCwyQ0FBK0M7QUFFL0Msd0RBQTBDO0FBRTFDLGtCQUFlLElBQUEsY0FBTSxFQUFDLHFCQUFhLENBQUMsS0FBSyxFQUFFO0lBQ3pDLE9BQU8sRUFBRSxpQkFBa0I7Q0FDNUIsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20260616000000 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260616000000 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260616000000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`create table if not exists "media_image" ("id" text not null, "url" text not null, "type" text null, "is_thumbnail" boolean not null default false, "is_banner" boolean not null default false, "rank" integer not null default 0, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "media_image_pkey" primary key ("id"));`);
8
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_media_image_type" ON "media_image" ("type") WHERE deleted_at IS NULL;`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_media_image_deleted_at" ON "media_image" ("deleted_at") WHERE deleted_at IS NULL;`);
10
+ }
11
+ async down() {
12
+ this.addSql(`drop table if exists "media_image" cascade;`);
13
+ }
14
+ }
15
+ exports.Migration20260616000000 = Migration20260616000000;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA2MTYwMDAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYwNjE2MDAwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQzNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FDVCwrYUFBK2EsQ0FDaGIsQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsdUdBQXVHLENBQ3hHLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUNULG1IQUFtSCxDQUNwSCxDQUFBO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0NBQ0Y7QUFoQkQsMERBZ0JDIn0=
@@ -0,0 +1,28 @@
1
+ /**
2
+ * A generic image record owned (via module link) by a marketplace entity
3
+ * such as a product category — and, in a later iteration, a product
4
+ * collection. The owner id is NOT stored here; it lives in the link table.
5
+ *
6
+ * `type` discriminates the icon (`"icon"`) from gallery images (`null`).
7
+ * Among gallery images, `is_thumbnail` / `is_banner` mark the storefront
8
+ * roles; the same image may carry both flags or neither. The single-
9
+ * thumbnail / single-banner / single-icon invariants are enforced in the
10
+ * `setCategoryImages` workflow, not by DB constraints (they span the link
11
+ * table).
12
+ *
13
+ * Table is `media_image`, NOT `image`: Medusa's product module already
14
+ * owns a table named `image` (its ProductImage) — reusing it would collide.
15
+ */
16
+ declare const Image: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
17
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
18
+ url: import("@medusajs/framework/utils").TextProperty;
19
+ type: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
20
+ is_thumbnail: import("@medusajs/framework/utils").BooleanProperty;
21
+ is_banner: import("@medusajs/framework/utils").BooleanProperty;
22
+ rank: import("@medusajs/framework/utils").NumberProperty;
23
+ metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
24
+ }>, {
25
+ readonly tableName: "media_image";
26
+ readonly name: "Image";
27
+ }>;
28
+ export default Image;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ /**
5
+ * A generic image record owned (via module link) by a marketplace entity
6
+ * such as a product category — and, in a later iteration, a product
7
+ * collection. The owner id is NOT stored here; it lives in the link table.
8
+ *
9
+ * `type` discriminates the icon (`"icon"`) from gallery images (`null`).
10
+ * Among gallery images, `is_thumbnail` / `is_banner` mark the storefront
11
+ * roles; the same image may carry both flags or neither. The single-
12
+ * thumbnail / single-banner / single-icon invariants are enforced in the
13
+ * `setCategoryImages` workflow, not by DB constraints (they span the link
14
+ * table).
15
+ *
16
+ * Table is `media_image`, NOT `image`: Medusa's product module already
17
+ * owns a table named `image` (its ProductImage) — reusing it would collide.
18
+ */
19
+ const Image = utils_1.model
20
+ .define({ tableName: "media_image", name: "Image" }, {
21
+ id: utils_1.model.id({ prefix: "medimg" }).primaryKey(),
22
+ url: utils_1.model.text(),
23
+ type: utils_1.model.text().nullable(),
24
+ is_thumbnail: utils_1.model.boolean().default(false),
25
+ is_banner: utils_1.model.boolean().default(false),
26
+ rank: utils_1.model.number().default(0),
27
+ metadata: utils_1.model.json().nullable(),
28
+ })
29
+ .indexes([
30
+ {
31
+ name: "IDX_media_image_type",
32
+ on: ["type"],
33
+ where: "deleted_at IS NULL",
34
+ },
35
+ ]);
36
+ exports.default = Image;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9tb2RlbHMvaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLEtBQUssR0FBRyxhQUFLO0tBQ2hCLE1BQU0sQ0FDTCxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUMzQztJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQy9DLEdBQUcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ2pCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLFlBQVksRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QyxTQUFTLEVBQUUsYUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDekMsSUFBSSxFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9CLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ1osS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtDQUNGLENBQUMsQ0FBQTtBQUVKLGtCQUFlLEtBQUssQ0FBQSJ9
@@ -0,0 +1 @@
1
+ export { default as Image } from "./image";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Image = void 0;
7
+ var image_1 = require("./image");
8
+ Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return __importDefault(image_1).default; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZWRpYS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUNBQTBDO0FBQWpDLCtHQUFBLE9BQU8sT0FBUyJ9
@@ -0,0 +1,17 @@
1
+ declare const MediaModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
2
+ readonly Image: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
3
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
4
+ url: import("@medusajs/framework/utils").TextProperty;
5
+ type: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
6
+ is_thumbnail: import("@medusajs/framework/utils").BooleanProperty;
7
+ is_banner: import("@medusajs/framework/utils").BooleanProperty;
8
+ rank: import("@medusajs/framework/utils").NumberProperty;
9
+ metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
10
+ }>, {
11
+ readonly tableName: "media_image";
12
+ readonly name: "Image";
13
+ }>;
14
+ }>>;
15
+ declare class MediaModuleService extends MediaModuleService_base {
16
+ }
17
+ export default MediaModuleService;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const models_1 = require("./models");
5
+ class MediaModuleService extends (0, utils_1.MedusaService)({
6
+ Image: models_1.Image,
7
+ }) {
8
+ }
9
+ exports.default = MediaModuleService;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21lZGlhL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBeUQ7QUFFekQscUNBQWdDO0FBRWhDLE1BQU0sa0JBQW1CLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQzdDLEtBQUssRUFBTCxjQUFLO0NBQ04sQ0FBQztDQUFHO0FBRUwsa0JBQWUsa0JBQWtCLENBQUEifQ==
@@ -17,4 +17,5 @@ export * from './product';
17
17
  export * from './product-attribute';
18
18
  export * from './product-edit';
19
19
  export * from './offer';
20
+ export * from './media';
20
21
  export * from './order';
@@ -33,5 +33,6 @@ __exportStar(require("./product"), exports);
33
33
  __exportStar(require("./product-attribute"), exports);
34
34
  __exportStar(require("./product-edit"), exports);
35
35
  __exportStar(require("./offer"), exports);
36
+ __exportStar(require("./media"), exports);
36
37
  __exportStar(require("./order"), exports);
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMEI7QUFDMUIsbURBQWdDO0FBQ2hDLCtDQUE0QjtBQUM1QiwyQ0FBd0I7QUFDeEIsbURBQWdDO0FBQ2hDLGdEQUE2QjtBQUM3QiwrQ0FBNEI7QUFDNUIsOENBQTJCO0FBQzNCLDJDQUF3QjtBQUN4QixvREFBaUM7QUFDakMscURBQWtDO0FBQ2xDLG1EQUFnQztBQUNoQyx5Q0FBc0I7QUFDdEIsMkNBQXdCO0FBQ3hCLGtEQUErQjtBQUMvQiw0Q0FBeUI7QUFDekIsc0RBQW1DO0FBQ25DLGlEQUE4QjtBQUM5QiwwQ0FBdUI7QUFDdkIsMENBQXVCIn0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMEI7QUFDMUIsbURBQWdDO0FBQ2hDLCtDQUE0QjtBQUM1QiwyQ0FBd0I7QUFDeEIsbURBQWdDO0FBQ2hDLGdEQUE2QjtBQUM3QiwrQ0FBNEI7QUFDNUIsOENBQTJCO0FBQzNCLDJDQUF3QjtBQUN4QixvREFBaUM7QUFDakMscURBQWtDO0FBQ2xDLG1EQUFnQztBQUNoQyx5Q0FBc0I7QUFDdEIsMkNBQXdCO0FBQ3hCLGtEQUErQjtBQUMvQiw0Q0FBeUI7QUFDekIsc0RBQW1DO0FBQ25DLGlEQUE4QjtBQUM5QiwwQ0FBdUI7QUFDdkIsMENBQXVCO0FBQ3ZCLDBDQUF1QiJ9
@@ -0,0 +1,2 @@
1
+ export * from "./steps";
2
+ export * from "./workflows";
@@ -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("./steps"), exports);
18
+ __exportStar(require("./workflows"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBdUI7QUFDdkIsOENBQTJCIn0=
@@ -0,0 +1,23 @@
1
+ export type CreateImageInput = {
2
+ url: string;
3
+ type?: string | null;
4
+ is_thumbnail?: boolean;
5
+ is_banner?: boolean;
6
+ rank?: number;
7
+ };
8
+ export declare const createImagesStepId = "create-media-images";
9
+ /**
10
+ * Creates `Image` rows in the media module. Compensation deletes them.
11
+ */
12
+ export declare const createImagesStep: import("@medusajs/framework/workflows-sdk").StepFunction<CreateImageInput[], {
13
+ id: string;
14
+ url: string;
15
+ type: string | null;
16
+ is_thumbnail: boolean;
17
+ is_banner: boolean;
18
+ rank: number;
19
+ metadata: Record<string, unknown> | null;
20
+ created_at: Date;
21
+ updated_at: Date;
22
+ deleted_at: Date | null;
23
+ }[]>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createImagesStep = exports.createImagesStepId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const types_1 = require("@mercurjs/types");
6
+ exports.createImagesStepId = "create-media-images";
7
+ /**
8
+ * Creates `Image` rows in the media module. Compensation deletes them.
9
+ */
10
+ exports.createImagesStep = (0, workflows_sdk_1.createStep)(exports.createImagesStepId, async (input, { container }) => {
11
+ if (!input.length) {
12
+ return new workflows_sdk_1.StepResponse([], []);
13
+ }
14
+ const service = container.resolve(types_1.MercurModules.MEDIA);
15
+ const created = await service.createImages(input);
16
+ return new workflows_sdk_1.StepResponse(created, created.map((image) => image.id));
17
+ }, async (createdIds, { container }) => {
18
+ if (!createdIds?.length) {
19
+ return;
20
+ }
21
+ const service = container.resolve(types_1.MercurModules.MEDIA);
22
+ await service.deleteImages(createdIds);
23
+ });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVkaWEvc3RlcHMvY3JlYXRlLWltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUsMkNBQStDO0FBWWxDLFFBQUEsa0JBQWtCLEdBQUcscUJBQXFCLENBQUE7QUFFdkQ7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLElBQUEsMEJBQVUsRUFDeEMsMEJBQWtCLEVBQ2xCLEtBQUssRUFBRSxLQUF5QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBcUIscUJBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxRSxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFakQsT0FBTyxJQUFJLDRCQUFZLENBQ3JCLE9BQU8sRUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUNqRCxDQUFBO0FBQ0gsQ0FBQyxFQUNELEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFxQixxQkFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFFLE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUN4QyxDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,6 @@
1
+ export type DeleteImagesStepInput = string[];
2
+ export declare const deleteImagesStepId = "delete-media-images";
3
+ /**
4
+ * Soft-deletes `Image` rows in the media module. Compensation restores them.
5
+ */
6
+ export declare const deleteImagesStep: import("@medusajs/framework/workflows-sdk").StepFunction<DeleteImagesStepInput, undefined>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteImagesStep = exports.deleteImagesStepId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const types_1 = require("@mercurjs/types");
6
+ exports.deleteImagesStepId = "delete-media-images";
7
+ /**
8
+ * Soft-deletes `Image` rows in the media module. Compensation restores them.
9
+ */
10
+ exports.deleteImagesStep = (0, workflows_sdk_1.createStep)(exports.deleteImagesStepId, async (ids, { container }) => {
11
+ if (!ids.length) {
12
+ return new workflows_sdk_1.StepResponse(void 0, []);
13
+ }
14
+ const service = container.resolve(types_1.MercurModules.MEDIA);
15
+ await service.softDeleteImages(ids);
16
+ return new workflows_sdk_1.StepResponse(void 0, ids);
17
+ }, async (prevIds, { container }) => {
18
+ if (!prevIds?.length) {
19
+ return;
20
+ }
21
+ const service = container.resolve(types_1.MercurModules.MEDIA);
22
+ await service.restoreImages(prevIds);
23
+ });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVkaWEvc3RlcHMvZGVsZXRlLWltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNEU7QUFDNUUsMkNBQStDO0FBTWxDLFFBQUEsa0JBQWtCLEdBQUcscUJBQXFCLENBQUE7QUFFdkQ7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLElBQUEsMEJBQVUsRUFDeEMsMEJBQWtCLEVBQ2xCLEtBQUssRUFBRSxHQUEwQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFxQixxQkFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFFLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRW5DLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ3RDLENBQUMsRUFDRCxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBcUIscUJBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxRSxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEMsQ0FBQyxDQUNGLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ export * from "./create-images";
2
+ export * from "./delete-images";
@@ -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("./create-images"), exports);
18
+ __exportStar(require("./delete-images"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBK0I7QUFDL0Isa0RBQStCIn0=
@@ -0,0 +1,16 @@
1
+ import type { CategoryMediaInput } from "./set-category-images";
2
+ export type CreateProductCategoryWithImagesWorkflowInput = {
3
+ /** Core create payload (name, handle, is_active, parent_category_id, …). */
4
+ product_category: Record<string, unknown>;
5
+ /** Gallery images to set (optional). */
6
+ media?: CategoryMediaInput[];
7
+ /** Icon image URL to set, or null (optional). */
8
+ icon?: string | null;
9
+ };
10
+ export declare const createProductCategoryWithImagesWorkflowId = "mercur-create-product-category-with-images";
11
+ /**
12
+ * Wraps Medusa's `createProductCategoriesWorkflow` and attaches the category's
13
+ * media gallery + icon in a single workflow, so the route is one call.
14
+ * Returns the created category id.
15
+ */
16
+ export declare const createProductCategoryWithImagesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CreateProductCategoryWithImagesWorkflowInput, string, []>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProductCategoryWithImagesWorkflow = exports.createProductCategoryWithImagesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const set_category_images_1 = require("./set-category-images");
7
+ exports.createProductCategoryWithImagesWorkflowId = "mercur-create-product-category-with-images";
8
+ /**
9
+ * Wraps Medusa's `createProductCategoriesWorkflow` and attaches the category's
10
+ * media gallery + icon in a single workflow, so the route is one call.
11
+ * Returns the created category id.
12
+ */
13
+ exports.createProductCategoryWithImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.createProductCategoryWithImagesWorkflowId, (input) => {
14
+ const created = core_flows_1.createProductCategoriesWorkflow.runAsStep({
15
+ input: {
16
+ product_categories: [input.product_category],
17
+ },
18
+ });
19
+ const categoryId = (0, workflows_sdk_1.transform)({ created }, ({ created }) => created[0].id);
20
+ const imagesInput = (0, workflows_sdk_1.transform)({ categoryId, input }, ({ categoryId, input }) => ({
21
+ category_id: categoryId,
22
+ media: input.media,
23
+ icon: input.icon,
24
+ }));
25
+ set_category_images_1.setCategoryImagesWorkflow.runAsStep({ input: imagesInput });
26
+ return new workflows_sdk_1.WorkflowResponse(categoryId);
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtY2F0ZWdvcnktd2l0aC1pbWFnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL3dvcmtmbG93cy9jcmVhdGUtcHJvZHVjdC1jYXRlZ29yeS13aXRoLWltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFJMEM7QUFDMUMsNERBQTZFO0FBRzdFLCtEQUFpRTtBQVdwRCxRQUFBLHlDQUF5QyxHQUNwRCw0Q0FBNEMsQ0FBQTtBQUU5Qzs7OztHQUlHO0FBQ1UsUUFBQSx1Q0FBdUMsR0FBRyxJQUFBLDhCQUFjLEVBQ25FLGlEQUF5QyxFQUN6QyxDQUFDLEtBQW1ELEVBQUUsRUFBRTtJQUN0RCxNQUFNLE9BQU8sR0FBRyw0Q0FBK0IsQ0FBQyxTQUFTLENBQUM7UUFDeEQsS0FBSyxFQUFFO1lBQ0wsa0JBQWtCLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7U0FDdEM7S0FDVCxDQUFDLENBQUE7SUFFRixNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUV6RSxNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQzNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUNyQixDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUNILENBQUE7SUFDRCwrQ0FBeUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUUzRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDekMsQ0FBQyxDQUNGLENBQUEifQ==
@@ -0,0 +1,9 @@
1
+ export type DeleteProductCategoryWithImagesWorkflowInput = {
2
+ id: string;
3
+ };
4
+ export declare const deleteProductCategoryWithImagesWorkflowId = "mercur-delete-product-category-with-images";
5
+ /**
6
+ * Removes a category's linked images, then deletes the category. The delete
7
+ * is sequenced after image cleanup (via a data dependency) so no links dangle.
8
+ */
9
+ export declare const deleteProductCategoryWithImagesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<DeleteProductCategoryWithImagesWorkflowInput, unknown, any[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteProductCategoryWithImagesWorkflow = exports.deleteProductCategoryWithImagesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const set_category_images_1 = require("./set-category-images");
7
+ exports.deleteProductCategoryWithImagesWorkflowId = "mercur-delete-product-category-with-images";
8
+ /**
9
+ * Removes a category's linked images, then deletes the category. The delete
10
+ * is sequenced after image cleanup (via a data dependency) so no links dangle.
11
+ */
12
+ exports.deleteProductCategoryWithImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.deleteProductCategoryWithImagesWorkflowId, (input) => {
13
+ const cleared = set_category_images_1.setCategoryImagesWorkflow.runAsStep({
14
+ input: {
15
+ category_id: input.id,
16
+ media: [],
17
+ icon: null,
18
+ },
19
+ });
20
+ // Depend on `cleared` so image removal completes before the category is gone.
21
+ const ids = (0, workflows_sdk_1.transform)({ input, cleared }, ({ input }) => [input.id]);
22
+ core_flows_1.deleteProductCategoriesWorkflow.runAsStep({
23
+ input: ids,
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXByb2R1Y3QtY2F0ZWdvcnktd2l0aC1pbWFnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL3dvcmtmbG93cy9kZWxldGUtcHJvZHVjdC1jYXRlZ29yeS13aXRoLWltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsNERBQTZFO0FBRTdFLCtEQUFpRTtBQU1wRCxRQUFBLHlDQUF5QyxHQUNwRCw0Q0FBNEMsQ0FBQTtBQUU5Qzs7O0dBR0c7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLElBQUEsOEJBQWMsRUFDbkUsaURBQXlDLEVBQ3pDLENBQUMsS0FBbUQsRUFBRSxFQUFFO0lBQ3RELE1BQU0sT0FBTyxHQUFHLCtDQUF5QixDQUFDLFNBQVMsQ0FBQztRQUNsRCxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDckIsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsSUFBSTtTQUNYO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsOEVBQThFO0lBQzlFLE1BQU0sR0FBRyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFcEUsNENBQStCLENBQUMsU0FBUyxDQUFDO1FBQ3hDLEtBQUssRUFBRSxHQUFVO0tBQ2xCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
@@ -0,0 +1,4 @@
1
+ export * from "./set-category-images";
2
+ export * from "./create-product-category-with-images";
3
+ export * from "./update-product-category-with-images";
4
+ export * from "./delete-product-category-with-images";
@@ -0,0 +1,21 @@
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("./set-category-images"), exports);
18
+ __exportStar(require("./create-product-category-with-images"), exports);
19
+ __exportStar(require("./update-product-category-with-images"), exports);
20
+ __exportStar(require("./delete-product-category-with-images"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXFDO0FBQ3JDLHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsd0VBQXFEIn0=
@@ -0,0 +1,24 @@
1
+ export type CategoryMediaInput = {
2
+ url: string;
3
+ is_thumbnail?: boolean;
4
+ is_banner?: boolean;
5
+ rank?: number;
6
+ };
7
+ export type SetCategoryImagesWorkflowInput = {
8
+ category_id: string;
9
+ /** Replace the gallery (type = null) when provided. */
10
+ media?: CategoryMediaInput[];
11
+ /** Replace the icon (type = "icon") when the key is present; null clears it. */
12
+ icon?: string | null;
13
+ };
14
+ export declare const setCategoryImagesWorkflowId = "mercur-set-category-images";
15
+ /**
16
+ * Replaces a category's media gallery and/or icon, composed from small steps:
17
+ * read existing → create new `Image` rows → link them → unlink + delete the
18
+ * replaced ones. Each step self-compensates.
19
+ *
20
+ * Invariants (applied in the transform): at most one gallery thumbnail, one
21
+ * gallery banner, one icon per category. An image may be both thumbnail and
22
+ * banner.
23
+ */
24
+ export declare const setCategoryImagesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<SetCategoryImagesWorkflowInput, unknown, any[]>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setCategoryImagesWorkflow = exports.setCategoryImagesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const types_1 = require("@mercurjs/types");
8
+ const create_images_1 = require("../steps/create-images");
9
+ const delete_images_1 = require("../steps/delete-images");
10
+ exports.setCategoryImagesWorkflowId = "mercur-set-category-images";
11
+ /**
12
+ * Replaces a category's media gallery and/or icon, composed from small steps:
13
+ * read existing → create new `Image` rows → link them → unlink + delete the
14
+ * replaced ones. Each step self-compensates.
15
+ *
16
+ * Invariants (applied in the transform): at most one gallery thumbnail, one
17
+ * gallery banner, one icon per category. An image may be both thumbnail and
18
+ * banner.
19
+ */
20
+ exports.setCategoryImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.setCategoryImagesWorkflowId, (input) => {
21
+ const existing = (0, core_flows_1.useQueryGraphStep)({
22
+ entity: "product_category",
23
+ fields: ["id", "images.id", "images.type"],
24
+ filters: { id: input.category_id },
25
+ });
26
+ const toCreate = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
27
+ const rows = [];
28
+ if (input.media !== undefined) {
29
+ let thumbnailTaken = false;
30
+ let bannerTaken = false;
31
+ input.media.forEach((m, index) => {
32
+ const is_thumbnail = !!m.is_thumbnail && !thumbnailTaken;
33
+ const is_banner = !!m.is_banner && !bannerTaken;
34
+ thumbnailTaken = thumbnailTaken || is_thumbnail;
35
+ bannerTaken = bannerTaken || is_banner;
36
+ rows.push({
37
+ url: m.url,
38
+ type: null,
39
+ is_thumbnail,
40
+ is_banner,
41
+ rank: m.rank ?? index,
42
+ });
43
+ });
44
+ }
45
+ if (input.icon !== undefined && input.icon) {
46
+ rows.push({
47
+ url: input.icon,
48
+ type: "icon",
49
+ is_thumbnail: false,
50
+ is_banner: false,
51
+ rank: 0,
52
+ });
53
+ }
54
+ return rows;
55
+ });
56
+ const created = (0, create_images_1.createImagesStep)(toCreate);
57
+ const linksToCreate = (0, workflows_sdk_1.transform)({ created, input }, ({ created, input }) => (created ?? []).map((image) => ({
58
+ [utils_1.Modules.PRODUCT]: { product_category_id: input.category_id },
59
+ [types_1.MercurModules.MEDIA]: { image_id: image.id },
60
+ })));
61
+ (0, core_flows_1.createRemoteLinkStep)(linksToCreate);
62
+ const toRemoveIds = (0, workflows_sdk_1.transform)({ existing, input }, ({ existing, input }) => {
63
+ const images = existing.data?.[0]?.images ?? [];
64
+ const ids = [];
65
+ if (input.media !== undefined) {
66
+ ids.push(...images.filter((img) => !img.type).map((img) => img.id));
67
+ }
68
+ if (input.icon !== undefined) {
69
+ ids.push(...images.filter((img) => img.type === "icon").map((img) => img.id));
70
+ }
71
+ return ids;
72
+ });
73
+ const linksToDismiss = (0, workflows_sdk_1.transform)({ toRemoveIds, input }, ({ toRemoveIds, input }) => toRemoveIds.map((image_id) => ({
74
+ [utils_1.Modules.PRODUCT]: { product_category_id: input.category_id },
75
+ [types_1.MercurModules.MEDIA]: { image_id },
76
+ })));
77
+ (0, core_flows_1.dismissRemoteLinkStep)(linksToDismiss);
78
+ (0, delete_images_1.deleteImagesStep)(toRemoveIds);
79
+ });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWNhdGVnb3J5LWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVkaWEvd29ya2Zsb3dzL3NldC1jYXRlZ29yeS1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLDREQUlvQztBQUNwQyxxREFBbUQ7QUFDbkQsMkNBQStDO0FBRS9DLDBEQUF5RDtBQUN6RCwwREFBeUQ7QUFpQjVDLFFBQUEsMkJBQTJCLEdBQUcsNEJBQTRCLENBQUE7QUFFdkU7Ozs7Ozs7O0dBUUc7QUFDVSxRQUFBLHlCQUF5QixHQUFHLElBQUEsOEJBQWMsRUFDckQsbUNBQTJCLEVBQzNCLENBQUMsS0FBcUMsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDakMsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQztRQUMxQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRTtLQUNuQyxDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNsRCxNQUFNLElBQUksR0FNSixFQUFFLENBQUE7UUFFUixJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFBO1lBQzFCLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQTtZQUN2QixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FB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
@@ -0,0 +1,16 @@
1
+ import type { CategoryMediaInput } from "./set-category-images";
2
+ export type UpdateProductCategoryWithImagesWorkflowInput = {
3
+ id: string;
4
+ /** Core update payload (name, handle, is_active, …). */
5
+ update: Record<string, unknown>;
6
+ /** Gallery images to replace (optional). */
7
+ media?: CategoryMediaInput[];
8
+ /** Icon image URL to set, or null to clear (optional). */
9
+ icon?: string | null;
10
+ };
11
+ export declare const updateProductCategoryWithImagesWorkflowId = "mercur-update-product-category-with-images";
12
+ /**
13
+ * Wraps Medusa's `updateProductCategoriesWorkflow` and applies the category's
14
+ * media gallery + icon changes in a single workflow.
15
+ */
16
+ export declare const updateProductCategoryWithImagesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<UpdateProductCategoryWithImagesWorkflowInput, unknown, any[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProductCategoryWithImagesWorkflow = exports.updateProductCategoryWithImagesWorkflowId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const set_category_images_1 = require("./set-category-images");
7
+ exports.updateProductCategoryWithImagesWorkflowId = "mercur-update-product-category-with-images";
8
+ /**
9
+ * Wraps Medusa's `updateProductCategoriesWorkflow` and applies the category's
10
+ * media gallery + icon changes in a single workflow.
11
+ */
12
+ exports.updateProductCategoryWithImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updateProductCategoryWithImagesWorkflowId, (input) => {
13
+ core_flows_1.updateProductCategoriesWorkflow.runAsStep({
14
+ input: {
15
+ selector: { id: input.id },
16
+ update: input.update,
17
+ },
18
+ });
19
+ const imagesInput = (0, workflows_sdk_1.transform)({ input }, ({ input }) => ({
20
+ category_id: input.id,
21
+ media: input.media,
22
+ icon: input.icon,
23
+ }));
24
+ set_category_images_1.setCategoryImagesWorkflow.runAsStep({ input: imagesInput });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtY2F0ZWdvcnktd2l0aC1pbWFnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lZGlhL3dvcmtmbG93cy91cGRhdGUtcHJvZHVjdC1jYXRlZ29yeS13aXRoLWltYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsNERBQTZFO0FBRzdFLCtEQUFpRTtBQVlwRCxRQUFBLHlDQUF5QyxHQUNwRCw0Q0FBNEMsQ0FBQTtBQUU5Qzs7O0dBR0c7QUFDVSxRQUFBLHVDQUF1QyxHQUFHLElBQUEsOEJBQWMsRUFDbkUsaURBQXlDLEVBQ3pDLENBQUMsS0FBbUQsRUFBRSxFQUFFO0lBQ3RELDRDQUErQixDQUFDLFNBQVMsQ0FBQztRQUN4QyxLQUFLLEVBQUU7WUFDTCxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMxQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07U0FDZDtLQUNULENBQUMsQ0FBQTtJQUVGLE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtLQUNqQixDQUFDLENBQUMsQ0FBQTtJQUNILCtDQUF5QixDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0FBQzdELENBQUMsQ0FDRixDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/core",
3
- "version": "2.2.0-canary.19",
3
+ "version": "2.2.0-canary.20",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mercurjs/mercur",