@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.
- package/.medusa/server/src/api/admin/collections/[id]/route.d.ts +7 -0
- package/.medusa/server/src/api/admin/collections/[id]/route.js +48 -0
- package/.medusa/server/src/api/admin/collections/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/collections/middlewares.js +55 -0
- package/.medusa/server/src/api/admin/collections/query-config.d.ts +12 -0
- package/.medusa/server/src/api/admin/collections/query-config.js +29 -0
- package/.medusa/server/src/api/admin/collections/route.d.ts +6 -0
- package/.medusa/server/src/api/admin/collections/route.js +36 -0
- package/.medusa/server/src/api/admin/collections/validators.d.ts +271 -0
- package/.medusa/server/src/api/admin/collections/validators.js +42 -0
- package/.medusa/server/src/api/admin/customer-groups/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-groups/middlewares.js +48 -0
- package/.medusa/server/src/api/admin/customer-groups/validators.d.ts +753 -0
- package/.medusa/server/src/api/admin/customer-groups/validators.js +13 -0
- package/.medusa/server/src/api/admin/middlewares.js +29 -25
- package/.medusa/server/src/api/admin/product-categories/validators.d.ts +16 -16
- package/.medusa/server/src/api/vendor/collections/query-config.js +7 -1
- package/.medusa/server/src/api/vendor/customer-groups/helpers.js +1 -1
- package/.medusa/server/src/api/vendor/customer-groups/middlewares.js +1 -1
- package/.medusa/server/src/api/vendor/customers/[id]/route.js +4 -4
- package/.medusa/server/src/api/vendor/offers/validators.js +4 -4
- package/.medusa/server/src/api/vendor/product-categories/query-config.js +7 -1
- package/.medusa/server/src/links/media-product-collection-link.d.ts +11 -0
- package/.medusa/server/src/links/media-product-collection-link.js +22 -0
- package/.medusa/server/src/links/seller-customer-group-link.js +7 -2
- package/.medusa/server/src/utils/disable-medusa-middlewares.js +3 -1
- package/.medusa/server/src/workflows/customer-group/steps/link-seller-customer-group.js +9 -7
- package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.d.ts +16 -0
- package/.medusa/server/src/workflows/media/workflows/create-product-collection-with-images.js +28 -0
- package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.d.ts +10 -0
- package/.medusa/server/src/workflows/media/workflows/delete-product-collection-with-images.js +27 -0
- package/.medusa/server/src/workflows/media/workflows/index.d.ts +4 -0
- package/.medusa/server/src/workflows/media/workflows/index.js +5 -1
- package/.medusa/server/src/workflows/media/workflows/set-collection-images.d.ts +25 -0
- package/.medusa/server/src/workflows/media/workflows/set-collection-images.js +81 -0
- package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.d.ts +16 -0
- package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.js +26 -0
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWNvbGxlY3Rpb24taW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZWRpYS93b3JrZmxvd3Mvc2V0LWNvbGxlY3Rpb24taW1hZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyw0REFJb0M7QUFDcEMscURBQW1EO0FBQ25ELDJDQUErQztBQUUvQywwREFBeUQ7QUFDekQsMERBQXlEO0FBaUI1QyxRQUFBLDZCQUE2QixHQUFHLDhCQUE4QixDQUFBO0FBRTNFOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsSUFBQSw4QkFBYyxFQUN2RCxxQ0FBNkIsRUFDN0IsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7SUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNqQyxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFO0tBQ3JDLENBQUMsQ0FBQTtJQUVGLE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ2xELE1BQU0sSUFBSSxHQU1KLEVBQUUsQ0FBQTtRQUVSLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7WUFDMUIsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO1lBQ3ZCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMvQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFB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
|
package/.medusa/server/src/workflows/media/workflows/update-product-collection-with-images.d.ts
ADDED
|
@@ -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
|