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

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/collections/[id]/route.d.ts +7 -0
  2. package/.medusa/server/src/api/admin/collections/[id]/route.js +48 -0
  3. package/.medusa/server/src/api/admin/collections/middlewares.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/collections/middlewares.js +55 -0
  5. package/.medusa/server/src/api/admin/collections/query-config.d.ts +12 -0
  6. package/.medusa/server/src/api/admin/collections/query-config.js +29 -0
  7. package/.medusa/server/src/api/admin/collections/route.d.ts +6 -0
  8. package/.medusa/server/src/api/admin/collections/route.js +36 -0
  9. package/.medusa/server/src/api/admin/collections/validators.d.ts +271 -0
  10. package/.medusa/server/src/api/admin/collections/validators.js +42 -0
  11. package/.medusa/server/src/api/admin/customer-groups/middlewares.d.ts +2 -0
  12. package/.medusa/server/src/api/admin/customer-groups/middlewares.js +48 -0
  13. package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +753 -0
  14. package/.medusa/server/src/api/admin/customer-groups/validators.js +13 -0
  15. package/.medusa/server/src/api/admin/middlewares.js +29 -25
  16. package/.medusa/server/src/api/admin/product-categories/validators.d.ts +16 -16
  17. package/.medusa/server/src/api/vendor/collections/query-config.js +7 -1
  18. package/.medusa/server/src/api/vendor/customer-groups/helpers.js +1 -1
  19. package/.medusa/server/src/api/vendor/customer-groups/middlewares.js +1 -1
  20. package/.medusa/server/src/api/vendor/customers/[id]/route.js +4 -4
  21. package/.medusa/server/src/api/vendor/offers/validators.js +4 -4
  22. package/.medusa/server/src/api/vendor/product-categories/query-config.js +7 -1
  23. package/.medusa/server/src/links/media-product-collection-link.d.ts +11 -0
  24. package/.medusa/server/src/links/media-product-collection-link.js +22 -0
  25. package/.medusa/server/src/links/seller-customer-group-link.js +7 -2
  26. package/.medusa/server/src/utils/disable-medusa-middlewares.js +3 -1
  27. package/.medusa/server/src/workflows/customer-group/steps/link-seller-customer-group.js +9 -7
  28. package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.d.ts +16 -0
  29. package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.js +28 -0
  30. package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.d.ts +10 -0
  31. package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.js +27 -0
  32. package/.medusa/server/src/workflows/media/workflows/index.d.ts +4 -0
  33. package/.medusa/server/src/workflows/media/workflows/index.js +5 -1
  34. package/.medusa/server/src/workflows/media/workflows/set-collection-images.d.ts +25 -0
  35. package/.medusa/server/src/workflows/media/workflows/set-collection-images.js +81 -0
  36. package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.d.ts +16 -0
  37. package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.js +26 -0
  38. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setCollectionImagesWorkflow = exports.setCollectionImagesWorkflowId = 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.setCollectionImagesWorkflowId = "mercur-set-collection-images";
11
+ /**
12
+ * Replaces a collection's media gallery and/or icon, composed from the same
13
+ * small media steps used by categories: read existing → create new `Image`
14
+ * rows → link them → unlink + delete the replaced ones. Each step
15
+ * self-compensates.
16
+ *
17
+ * Invariants (applied in the transform): at most one gallery thumbnail, one
18
+ * gallery banner, one icon per collection. An image may be both thumbnail and
19
+ * banner.
20
+ */
21
+ exports.setCollectionImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.setCollectionImagesWorkflowId, (input) => {
22
+ const existing = (0, core_flows_1.useQueryGraphStep)({
23
+ entity: "product_collection",
24
+ fields: ["id", "images.id", "images.type"],
25
+ filters: { id: input.collection_id },
26
+ });
27
+ const toCreate = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
28
+ const rows = [];
29
+ if (input.media !== undefined) {
30
+ let thumbnailTaken = false;
31
+ let bannerTaken = false;
32
+ input.media.forEach((m, index) => {
33
+ const is_thumbnail = !!m.is_thumbnail && !thumbnailTaken;
34
+ const is_banner = !!m.is_banner && !bannerTaken;
35
+ thumbnailTaken = thumbnailTaken || is_thumbnail;
36
+ bannerTaken = bannerTaken || is_banner;
37
+ rows.push({
38
+ url: m.url,
39
+ type: null,
40
+ is_thumbnail,
41
+ is_banner,
42
+ rank: m.rank ?? index,
43
+ });
44
+ });
45
+ }
46
+ if (input.icon !== undefined && input.icon) {
47
+ rows.push({
48
+ url: input.icon,
49
+ type: "icon",
50
+ is_thumbnail: false,
51
+ is_banner: false,
52
+ rank: 0,
53
+ });
54
+ }
55
+ return rows;
56
+ });
57
+ const created = (0, create_images_1.createImagesStep)(toCreate);
58
+ const linksToCreate = (0, workflows_sdk_1.transform)({ created, input }, ({ created, input }) => (created ?? []).map((image) => ({
59
+ [utils_1.Modules.PRODUCT]: { product_collection_id: input.collection_id },
60
+ [types_1.MercurModules.MEDIA]: { image_id: image.id },
61
+ })));
62
+ (0, core_flows_1.createRemoteLinkStep)(linksToCreate);
63
+ const toRemoveIds = (0, workflows_sdk_1.transform)({ existing, input }, ({ existing, input }) => {
64
+ const images = existing.data?.[0]?.images ?? [];
65
+ const ids = [];
66
+ if (input.media !== undefined) {
67
+ ids.push(...images.filter((img) => !img.type).map((img) => img.id));
68
+ }
69
+ if (input.icon !== undefined) {
70
+ ids.push(...images.filter((img) => img.type === "icon").map((img) => img.id));
71
+ }
72
+ return ids;
73
+ });
74
+ const linksToDismiss = (0, workflows_sdk_1.transform)({ toRemoveIds, input }, ({ toRemoveIds, input }) => toRemoveIds.map((image_id) => ({
75
+ [utils_1.Modules.PRODUCT]: { product_collection_id: input.collection_id },
76
+ [types_1.MercurModules.MEDIA]: { image_id },
77
+ })));
78
+ (0, core_flows_1.dismissRemoteLinkStep)(linksToDismiss);
79
+ (0, delete_images_1.deleteImagesStep)(toRemoveIds);
80
+ });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWNvbGxlY3Rpb24taW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZWRpYS93b3JrZmxvd3Mvc2V0LWNvbGxlY3Rpb24taW1hZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyw0REFJb0M7QUFDcEMscURBQW1EO0FBQ25ELDJDQUErQztBQUUvQywwREFBeUQ7QUFDekQsMERBQXlEO0FBaUI1QyxRQUFBLDZCQUE2QixHQUFHLDhCQUE4QixDQUFBO0FBRTNFOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsSUFBQSw4QkFBYyxFQUN2RCxxQ0FBNkIsRUFDN0IsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7SUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNqQyxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFO0tBQ3JDLENBQUMsQ0FBQTtJQUVGLE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ2xELE1BQU0sSUFBSSxHQU1KLEVBQUUsQ0FBQTtRQUVSLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7WUFDMUIsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQ3ZCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMvQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLGNBQWMsQ0FBQTtnQkFDeEQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxXQUFXLENBQUE7Z0JBQy9DLGNBQWMsR0FBRyxjQUFjLElBQUksWUFBWSxDQUFBO2dCQUMvQyxXQUFXLEdBQUcsV0FBVyxJQUFJLFNBQVMsQ0FBQTtnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDUixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7b0JBQ1YsSUFBSSxFQUFFLElBQUk7b0JBQ1YsWUFBWTtvQkFDWixTQUFTO29CQUNULElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUs7aUJBQ3RCLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxNQUFNO2dCQUNaLFlBQVksRUFBRSxLQUFLO2dCQUNuQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLENBQUMsQ0FBQTtJQUVGLE1BQU0sT0FBTyxHQUFHLElBQUEsZ0NBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFFMUMsTUFBTSxhQUFhLEdBQUcsSUFBQSx5QkFBUyxFQUM3QixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFDbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ3JCLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFO1FBQ2pFLENBQUMscUJBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO0tBQzlDLENBQUMsQ0FBQyxDQUNOLENBQUE7SUFDRCxJQUFBLGlDQUFvQixFQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRW5DLE1BQU0sV0FBVyxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDekUsTUFBTSxNQUFNLEdBQ1YsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDbEMsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFBO1FBQ3hCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQ04sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUNwRSxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLGNBQWMsR0FBRyxJQUFBLHlCQUFTLEVBQzlCLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUN0QixDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FDekIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFO1FBQ2pFLENBQUMscUJBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtLQUNwQyxDQUFDLENBQUMsQ0FDTixDQUFBO0lBQ0QsSUFBQSxrQ0FBcUIsRUFBQyxjQUFjLENBQUMsQ0FBQTtJQUNyQyxJQUFBLGdDQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQy9CLENBQUMsQ0FDRixDQUFBIn0=
@@ -0,0 +1,16 @@
1
+ import type { CollectionMediaInput } from "./set-collection-images";
2
+ export type UpdateProductCollectionWithImagesWorkflowInput = {
3
+ id: string;
4
+ /** Core update payload (title, handle, metadata, …). */
5
+ update: Record<string, unknown>;
6
+ /** Gallery images to replace (optional). */
7
+ media?: CollectionMediaInput[];
8
+ /** Icon image URL to set, or null to clear (optional). */
9
+ icon?: string | null;
10
+ };
11
+ export declare const updateProductCollectionWithImagesWorkflowId = "mercur-update-product-collection-with-images";
12
+ /**
13
+ * Wraps Medusa's `updateCollectionsWorkflow` and applies the collection's
14
+ * media gallery + icon changes in a single workflow.
15
+ */
16
+ export declare const updateProductCollectionWithImagesWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<UpdateProductCollectionWithImagesWorkflowInput, unknown, any[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProductCollectionWithImagesWorkflow = exports.updateProductCollectionWithImagesWorkflowId = 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_collection_images_1 = require("./set-collection-images");
7
+ exports.updateProductCollectionWithImagesWorkflowId = "mercur-update-product-collection-with-images";
8
+ /**
9
+ * Wraps Medusa's `updateCollectionsWorkflow` and applies the collection's
10
+ * media gallery + icon changes in a single workflow.
11
+ */
12
+ exports.updateProductCollectionWithImagesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.updateProductCollectionWithImagesWorkflowId, (input) => {
13
+ core_flows_1.updateCollectionsWorkflow.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
+ collection_id: input.id,
21
+ media: input.media,
22
+ icon: input.icon,
23
+ }));
24
+ set_collection_images_1.setCollectionImagesWorkflow.runAsStep({ input: imagesInput });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtY29sbGVjdGlvbi13aXRoLWltYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVkaWEvd29ya2Zsb3dzL3VwZGF0ZS1wcm9kdWN0LWNvbGxlY3Rpb24td2l0aC1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLDREQUF1RTtBQUd2RSxtRUFBcUU7QUFZeEQsUUFBQSwyQ0FBMkMsR0FDdEQsOENBQThDLENBQUE7QUFFaEQ7OztHQUdHO0FBQ1UsUUFBQSx5Q0FBeUMsR0FBRyxJQUFBLDhCQUFjLEVBQ3JFLG1EQUEyQyxFQUMzQyxDQUFDLEtBQXFELEVBQUUsRUFBRTtJQUN4RCxzQ0FBeUIsQ0FBQyxTQUFTLENBQUM7UUFDbEMsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ2Q7S0FDVCxDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUFDLENBQUE7SUFDSCxtREFBMkIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtBQUMvRCxDQUFDLENBQ0YsQ0FBQSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/core",
3
- "version": "2.2.0-canary.20",
3
+ "version": "2.2.0-canary.21",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mercurjs/mercur",