@alphabite/medusa-wishlist 0.0.1

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 (30) hide show
  1. package/.medusa/server/src/admin/lib/sdk.js +11 -0
  2. package/.medusa/server/src/admin/vite-env.d.js +1 -0
  3. package/.medusa/server/src/admin/widgets/product-widget.js +24 -0
  4. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  5. package/.medusa/server/src/api/store/customers/me/wishlists/items/[id]/route.js +16 -0
  6. package/.medusa/server/src/api/store/customers/me/wishlists/items/route.js +21 -0
  7. package/.medusa/server/src/api/store/customers/me/wishlists/items/validators.js +8 -0
  8. package/.medusa/server/src/api/store/customers/me/wishlists/route.js +37 -0
  9. package/.medusa/server/src/api/store/customers/me/wishlists/share/route.js +38 -0
  10. package/.medusa/server/src/links/wishlist-customer.js +15 -0
  11. package/.medusa/server/src/links/wishlist-product.js +15 -0
  12. package/.medusa/server/src/links/wishlist-sales-channel.js +15 -0
  13. package/.medusa/server/src/modules/wishlist/index.js +13 -0
  14. package/.medusa/server/src/modules/wishlist/migrations/Migration20250331134307.js +25 -0
  15. package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +20 -0
  16. package/.medusa/server/src/modules/wishlist/models/wishlist.js +19 -0
  17. package/.medusa/server/src/modules/wishlist/service.js +81 -0
  18. package/.medusa/server/src/workflows/create-wishlist-item.js +46 -0
  19. package/.medusa/server/src/workflows/create-wishlist.js +16 -0
  20. package/.medusa/server/src/workflows/delete-wishlist-item.js +40 -0
  21. package/.medusa/server/src/workflows/steps/create-wishlist-item.js +17 -0
  22. package/.medusa/server/src/workflows/steps/create-wishlist.js +17 -0
  23. package/.medusa/server/src/workflows/steps/delete-wishlist-item.js +15 -0
  24. package/.medusa/server/src/workflows/steps/validate-customer-create-wishlist.js +30 -0
  25. package/.medusa/server/src/workflows/steps/validate-item-in-wishlist.js +12 -0
  26. package/.medusa/server/src/workflows/steps/validate-product-wishlist.js +24 -0
  27. package/.medusa/server/src/workflows/steps/validate-wishlist-exists.js +11 -0
  28. package/.medusa/server/src/workflows/steps/validate-wishlist-sales-channel.js +11 -0
  29. package/README.md +64 -0
  30. package/package.json +85 -0
@@ -0,0 +1,11 @@
1
+ import Medusa from "D:/Documents/GitHub/medusa-wishlist/node_modules/@medusajs/js-sdk/dist/esm/index.js";
2
+ const sdk = new Medusa({
3
+ baseUrl: "http://localhost:9000",
4
+ debug: process.env.NODE_ENV === "development",
5
+ auth: {
6
+ type: "session"
7
+ }
8
+ });
9
+ export {
10
+ sdk
11
+ };
@@ -0,0 +1,24 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { defineWidgetConfig } from "@medusajs/admin-sdk";
3
+ import { Container, Heading, Text } from "@medusajs/ui";
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { sdk } from "../lib/sdk.js";
6
+ const ProductWidget = ({
7
+ data: product
8
+ }) => {
9
+ const { data, isLoading } = useQuery({
10
+ queryFn: () => sdk.client.fetch(`/admin/products/${product.id}/wishlist`),
11
+ queryKey: [["products", product.id, "wishlist"]]
12
+ });
13
+ return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0", children: [
14
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Wishlist" }) }),
15
+ /* @__PURE__ */ jsx(Text, { className: "px-6 py-4", children: isLoading ? "Loading..." : `This product is in ${data == null ? void 0 : data.count} wishlist(s).` })
16
+ ] });
17
+ };
18
+ const config = defineWidgetConfig({
19
+ zone: "product.details.before"
20
+ });
21
+ export {
22
+ ProductWidget,
23
+ config
24
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ async function GET(req, res) {
5
+ res.sendStatus(200);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BsdWdpbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUtDO0FBTE0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixDQUFDIn0=
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = DELETE;
4
+ const delete_wishlist_item_1 = require("../../../../../../../workflows/delete-wishlist-item");
5
+ async function DELETE(req, res) {
6
+ const { result } = await (0, delete_wishlist_item_1.deleteWishlistItemWorkflow)(req.scope).run({
7
+ input: {
8
+ product_id: req.params.id,
9
+ customer_id: req.auth_context.actor_id,
10
+ },
11
+ });
12
+ res.json({
13
+ wishlist: result.wishlist,
14
+ });
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdHMvaXRlbXMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLHdCQWNDO0FBaEJELDhGQUFpRztBQUUxRixLQUFLLFVBQVUsTUFBTSxDQUMxQixHQUErQixFQUMvQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGlEQUEwQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDakUsS0FBSyxFQUFFO1lBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixXQUFXLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const create_wishlist_item_1 = require("../../../../../../workflows/create-wishlist-item");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ async function POST(req, res) {
7
+ if (!req.publishable_key_context?.sales_channel_ids.length) {
8
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "At least one sales channel ID is required to be associated with the publishable API key in the request header.");
9
+ }
10
+ const { result } = await (0, create_wishlist_item_1.createWishlistItemWorkflow)(req.scope).run({
11
+ input: {
12
+ product_id: req.body.product_id,
13
+ customer_id: req.auth_context.actor_id,
14
+ sales_channel_id: req.publishable_key_context?.sales_channel_ids[0],
15
+ },
16
+ });
17
+ res.json({
18
+ wishlist: result.wishlist,
19
+ });
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdHMvaXRlbXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxvQkFxQkM7QUE5QkQsMkZBQThGO0FBQzlGLHFEQUF3RDtBQVFqRCxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFnRSxFQUNoRSxHQUFtQjtJQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGdIQUFnSCxDQUNqSCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsaURBQTBCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNqRSxLQUFLLEVBQUU7WUFDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQy9CLFdBQVcsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDdEMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUNwRTtLQUNGLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7S0FDMUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostStoreCreateWishlistItem = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.PostStoreCreateWishlistItem = zod_1.z.object({
6
+ product_id: zod_1.z.string(),
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvY3VzdG9tZXJzL21lL3dpc2hsaXN0cy9pdGVtcy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUVYLFFBQUEsMkJBQTJCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRCxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUMifQ==
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ exports.GET = GET;
5
+ const create_wishlist_1 = require("../../../../../workflows/create-wishlist");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ async function POST(req, res) {
8
+ if (!req.publishable_key_context?.sales_channel_ids.length) {
9
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "At least one sales channel ID is required to be associated with the publishable API key in the request header.");
10
+ }
11
+ const { result } = await (0, create_wishlist_1.createWishlistWorkflow)(req.scope).run({
12
+ input: {
13
+ customer_id: req.auth_context.actor_id,
14
+ sales_channel_id: req.publishable_key_context?.sales_channel_ids[0],
15
+ },
16
+ });
17
+ res.json({
18
+ wishlist: result.wishlist,
19
+ });
20
+ }
21
+ async function GET(req, res) {
22
+ const query = req.scope.resolve("query");
23
+ const { data } = await query.graph({
24
+ entity: "wishlist",
25
+ fields: ["*", "items.*", "items.product.*", "items.product.variants.*", "items.product.variants.prices.*"],
26
+ filters: {
27
+ customer_id: req.auth_context.actor_id,
28
+ },
29
+ });
30
+ if (!data.length) {
31
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "No wishlist found for customer");
32
+ }
33
+ res.json({
34
+ wishlist: data[0],
35
+ });
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxvQkFpQkM7QUFFRCxrQkFrQkM7QUF4Q0QsOEVBQWtGO0FBQ2xGLHFEQUF3RDtBQUVqRCxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQStCLEVBQUUsR0FBbUI7SUFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixnSEFBZ0gsQ0FDakgsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHdDQUFzQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0QsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUTtZQUN0QyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRU0sS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUErQixFQUFFLEdBQW1CO0lBQzVFLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxpQ0FBaUMsQ0FBQztRQUMxRyxPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function POST(req, res) {
6
+ if (!req.publishable_key_context?.sales_channel_ids.length) {
7
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "At least one sales channel ID is required to be associated with the publishable API key in the request header.");
8
+ }
9
+ const query = req.scope.resolve("query");
10
+ const { data } = await query.graph({
11
+ entity: "wishlist",
12
+ fields: ["*"],
13
+ filters: {
14
+ customer_id: req.auth_context.actor_id,
15
+ },
16
+ });
17
+ if (!data.length) {
18
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "No wishlist found for customer");
19
+ }
20
+ if (data[0].sales_channel_id !==
21
+ req.publishable_key_context.sales_channel_ids[0]) {
22
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Wishlist does not belong to the specified sales channel");
23
+ }
24
+ const { http } = req.scope.resolve("configModule").projectConfig;
25
+ // const wishlistToken = jwt.sign(
26
+ // {
27
+ // wishlist_id: data[0].id,
28
+ // },
29
+ // http.jwtSecret!,
30
+ // {
31
+ // expiresIn: http.jwtExpiresIn,
32
+ // }
33
+ // );
34
+ return res.json({
35
+ token: "wishlistToken",
36
+ });
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdHMvc2hhcmUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxvQkFxREM7QUF4REQscURBQXdEO0FBR2pELEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQStCLEVBQy9CLEdBQW1CO0lBRW5CLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsZ0hBQWdILENBQ2pILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNqQyxNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDYixPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixnQ0FBZ0MsQ0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUNFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7UUFDeEIsR0FBRyxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUNoRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIseURBQXlELENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUVqRSxrQ0FBa0M7SUFDbEMsTUFBTTtJQUNOLCtCQUErQjtJQUMvQixPQUFPO0lBQ1AscUJBQXFCO0lBQ3JCLE1BQU07SUFDTixvQ0FBb0M7SUFDcEMsTUFBTTtJQUNOLEtBQUs7SUFFTCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDZCxLQUFLLEVBQUUsZUFBZTtLQUN2QixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,15 @@
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 wishlist_1 = __importDefault(require("../modules/wishlist"));
8
+ const customer_1 = __importDefault(require("@medusajs/medusa/customer"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ ...wishlist_1.default.linkable.wishlist.id,
11
+ field: "customer_id",
12
+ }, customer_1.default.linkable.customer.id, {
13
+ readOnly: true,
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtY3VzdG9tZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3Mvd2lzaGxpc3QtY3VzdG9tZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQsbUVBQWlEO0FBQ2pELHlFQUF1RDtBQUV2RCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3ZCO0lBQ0UsR0FBRyxrQkFBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtJQUN0QyxLQUFLLEVBQUUsYUFBYTtDQUNyQixFQUNELGtCQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQ25DO0lBQ0UsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUNGLENBQUMifQ==
@@ -0,0 +1,15 @@
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 wishlist_1 = __importDefault(require("../modules/wishlist"));
8
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ ...wishlist_1.default.linkable.wishlistItem.id,
11
+ field: "product_id",
12
+ }, product_1.default.linkable.product, {
13
+ readOnly: true,
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy93aXNobGlzdC1wcm9kdWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXVEO0FBQ3ZELG1FQUFpRDtBQUNqRCx1RUFBcUQ7QUFFckQsa0JBQWUsSUFBQSxrQkFBVSxFQUN2QjtJQUNFLEdBQUcsa0JBQWMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7SUFDMUMsS0FBSyxFQUFFLFlBQVk7Q0FDcEIsRUFDRCxpQkFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQzlCO0lBQ0UsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUNGLENBQUMifQ==
@@ -0,0 +1,15 @@
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 wishlist_1 = __importDefault(require("../modules/wishlist"));
8
+ const sales_channel_1 = __importDefault(require("@medusajs/medusa/sales-channel"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ ...wishlist_1.default.linkable.wishlist.id,
11
+ field: "sales_channel_id",
12
+ }, sales_channel_1.default.linkable.salesChannel, {
13
+ readOnly: true,
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Qtc2FsZXMtY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy93aXNobGlzdC1zYWxlcy1jaGFubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXVEO0FBQ3ZELG1FQUFpRDtBQUNqRCxtRkFBZ0U7QUFFaEUsa0JBQWUsSUFBQSxrQkFBVSxFQUN2QjtJQUNFLEdBQUcsa0JBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdEMsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixFQUNELHVCQUFrQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQ3hDO0lBQ0UsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUNGLENBQUMifQ==
@@ -0,0 +1,13 @@
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.WISHLIST_MODULE = void 0;
7
+ const service_1 = __importDefault(require("./service"));
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ exports.WISHLIST_MODULE = "wishlist";
10
+ exports.default = (0, utils_1.Module)(exports.WISHLIST_MODULE, {
11
+ service: service_1.default,
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBOEM7QUFDOUMscURBQW1EO0FBRXRDLFFBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUUxQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyx1QkFBZSxFQUFFO0lBQ3JDLE9BQU8sRUFBRSxpQkFBcUI7Q0FDL0IsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250331134307 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250331134307 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "wishlist_item" drop constraint if exists "wishlist_item_product_id_wishlist_id_unique";`);
8
+ this.addSql(`alter table if exists "wishlist" drop constraint if exists "wishlist_customer_id_sales_channel_id_unique";`);
9
+ this.addSql(`create table if not exists "wishlist" ("id" text not null, "customer_id" text not null, "sales_channel_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "wishlist_pkey" primary key ("id"));`);
10
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_deleted_at" ON "wishlist" (deleted_at) WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_wishlist_customer_id_sales_channel_id_unique" ON "wishlist" (customer_id, sales_channel_id) WHERE deleted_at IS NULL;`);
12
+ this.addSql(`create table if not exists "wishlist_item" ("id" text not null, "product_id" text not null, "wishlist_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "wishlist_item_pkey" primary key ("id"));`);
13
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_item_wishlist_id" ON "wishlist_item" (wishlist_id) WHERE deleted_at IS NULL;`);
14
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_item_deleted_at" ON "wishlist_item" (deleted_at) WHERE deleted_at IS NULL;`);
15
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_wishlist_item_product_id_wishlist_id_unique" ON "wishlist_item" (product_id, wishlist_id) WHERE deleted_at IS NULL;`);
16
+ this.addSql(`alter table if exists "wishlist_item" add constraint "wishlist_item_wishlist_id_foreign" foreign key ("wishlist_id") references "wishlist" ("id") on update cascade;`);
17
+ }
18
+ async down() {
19
+ this.addSql(`alter table if exists "wishlist_item" drop constraint if exists "wishlist_item_wishlist_id_foreign";`);
20
+ this.addSql(`drop table if exists "wishlist" cascade;`);
21
+ this.addSql(`drop table if exists "wishlist_item" cascade;`);
22
+ }
23
+ }
24
+ exports.Migration20250331134307 = Migration20250331134307;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAzMzExMzQzMDcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUwMzMxMTM0MzA3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnSEFBZ0gsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxNQUFNLENBQUMsNEdBQTRHLENBQUMsQ0FBQztRQUMxSCxJQUFJLENBQUMsTUFBTSxDQUFDLDRTQUE0UyxDQUFDLENBQUM7UUFDMVQsSUFBSSxDQUFDLE1BQU0sQ0FBQywyR0FBMkcsQ0FBQyxDQUFDO1FBQ3pILElBQUksQ0FBQyxNQUFNLENBQUMsOEpBQThKLENBQUMsQ0FBQztRQUU1SyxJQUFJLENBQUMsTUFBTSxDQUFDLGdUQUFnVCxDQUFDLENBQUM7UUFDOVQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO1FBQ3JJLElBQUksQ0FBQyxNQUFNLENBQUMscUhBQXFILENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsTUFBTSxDQUFDLDRKQUE0SixDQUFDLENBQUM7UUFFMUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxzS0FBc0ssQ0FBQyxDQUFDO0lBQ3RMLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLHNHQUFzRyxDQUFDLENBQUM7UUFFcEgsSUFBSSxDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBRUY7QUF6QkQsMERBeUJDIn0=
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WishlistItem = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const wishlist_1 = require("./wishlist");
6
+ exports.WishlistItem = utils_1.model
7
+ .define("wishlist_item", {
8
+ id: utils_1.model.id().primaryKey(),
9
+ product_id: utils_1.model.text(),
10
+ wishlist: utils_1.model.belongsTo(() => wishlist_1.Wishlist, {
11
+ mappedBy: "items",
12
+ }),
13
+ })
14
+ .indexes([
15
+ {
16
+ on: ["product_id", "wishlist_id"],
17
+ unique: true,
18
+ },
19
+ ]);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L21vZGVscy93aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUNsRCx5Q0FBc0M7QUFFekIsUUFBQSxZQUFZLEdBQUcsYUFBSztLQUM5QixNQUFNLENBQUMsZUFBZSxFQUFFO0lBQ3ZCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3hCLFFBQVEsRUFBRSxhQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFRLEVBQUU7UUFDeEMsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztDQUNILENBQUM7S0FDRCxPQUFPLENBQUM7SUFDUDtRQUNFLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7UUFDakMsTUFBTSxFQUFFLElBQUk7S0FDYjtDQUNGLENBQUMsQ0FBQyJ9
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Wishlist = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const wishlist_item_1 = require("./wishlist-item");
6
+ exports.Wishlist = utils_1.model
7
+ .define("wishlist", {
8
+ id: utils_1.model.id().primaryKey(),
9
+ customer_id: utils_1.model.text(),
10
+ sales_channel_id: utils_1.model.text(),
11
+ items: utils_1.model.hasMany(() => wishlist_item_1.WishlistItem),
12
+ })
13
+ .indexes([
14
+ {
15
+ on: ["customer_id", "sales_channel_id"],
16
+ unique: true,
17
+ },
18
+ ]);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9tb2RlbHMvd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWtEO0FBQ2xELG1EQUErQztBQUVsQyxRQUFBLFFBQVEsR0FBRyxhQUFLO0tBQzFCLE1BQU0sQ0FBQyxVQUFVLEVBQUU7SUFDbEIsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsV0FBVyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM5QixLQUFLLEVBQUUsYUFBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBWSxDQUFDO0NBQ3pDLENBQUM7S0FDRCxPQUFPLENBQUM7SUFDUDtRQUNFLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztRQUN2QyxNQUFNLEVBQUUsSUFBSTtLQUNiO0NBQ0YsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const utils_1 = require("@medusajs/framework/utils");
16
+ const wishlist_1 = require("./models/wishlist");
17
+ const wishlist_item_1 = require("./models/wishlist-item");
18
+ const utils_2 = require("@medusajs/framework/utils");
19
+ class WishlistModuleService extends (0, utils_1.MedusaService)({
20
+ Wishlist: wishlist_1.Wishlist,
21
+ WishlistItem: wishlist_item_1.WishlistItem,
22
+ }) {
23
+ async getWishlistCountsOfProduct(productId, context = {}) {
24
+ return ((await context.manager
25
+ ?.createQueryBuilder("wishlist_item", "wi")
26
+ .select(["wi.wishlist_id"], true)
27
+ .where("wi.product_id = ?", [productId])
28
+ .execute())?.length || 0);
29
+ }
30
+ async getWishlistsOfProducts(productIds, context = {}) {
31
+ return await context.manager
32
+ ?.createQueryBuilder("wishlist_item", "wi")
33
+ .where("wi.product_id IN (?)", [productIds])
34
+ .execute();
35
+ }
36
+ async getWishlistItemId(customerId, productId, context = {}) {
37
+ const wishlist = await context.manager
38
+ ?.createQueryBuilder("wishlist", "w")
39
+ .select(["w.id"])
40
+ .where("w.customer_id = ?", [customerId])
41
+ .execute();
42
+ if (!wishlist?.[0]?.id) {
43
+ throw new Error("Wishlist not found");
44
+ }
45
+ const wishlistId = wishlist[0].id;
46
+ const wishlistItem = await context.manager
47
+ ?.createQueryBuilder("wishlist_item", "wi")
48
+ .select(["wi.id"])
49
+ .where("wi.wishlist_id = ?", [wishlistId])
50
+ .andWhere("wi.product_id = ?", [productId])
51
+ .andWhere("wi.deleted_at IS NULL")
52
+ .execute();
53
+ if (!wishlistItem?.[0]?.id) {
54
+ throw new Error("Wishlist item not found");
55
+ }
56
+ return wishlistItem[0].id;
57
+ }
58
+ }
59
+ exports.default = WishlistModuleService;
60
+ __decorate([
61
+ (0, utils_2.InjectManager)(),
62
+ __param(1, (0, utils_1.MedusaContext)()),
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", [String, Object]),
65
+ __metadata("design:returntype", Promise)
66
+ ], WishlistModuleService.prototype, "getWishlistCountsOfProduct", null);
67
+ __decorate([
68
+ (0, utils_2.InjectManager)(),
69
+ __param(1, (0, utils_1.MedusaContext)()),
70
+ __metadata("design:type", Function),
71
+ __metadata("design:paramtypes", [Array, Object]),
72
+ __metadata("design:returntype", Promise)
73
+ ], WishlistModuleService.prototype, "getWishlistsOfProducts", null);
74
+ __decorate([
75
+ (0, utils_2.InjectManager)(),
76
+ __param(2, (0, utils_1.MedusaContext)()),
77
+ __metadata("design:type", Function),
78
+ __metadata("design:paramtypes", [String, String, Object]),
79
+ __metadata("design:returntype", Promise)
80
+ ], WishlistModuleService.prototype, "getWishlistItemId", null);
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBeUU7QUFDekUsZ0RBQTZDO0FBQzdDLDBEQUFzRDtBQUN0RCxxREFBMEQ7QUFJMUQsTUFBcUIscUJBQXNCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQy9ELFFBQVEsRUFBUixtQkFBUTtJQUNSLFlBQVksRUFBWiw0QkFBWTtDQUNiLENBQUM7SUFFTSxBQUFOLEtBQUssQ0FBQywwQkFBMEIsQ0FDOUIsU0FBaUIsRUFDQSxVQUFrQyxFQUFFO1FBRXJELE9BQU8sQ0FDTCxDQUNFLE1BQU0sT0FBTyxDQUFDLE9BQU87WUFDbkIsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO2FBQzFDLE1BQU0sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDO2FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZDLE9BQU8sRUFBRSxDQUNiLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLHNCQUFzQixDQUMxQixVQUFvQixFQUNILFVBQWtDLEVBQUU7UUFFckQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPO1lBQzFCLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzthQUMxQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMzQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsVUFBa0IsRUFDbEIsU0FBaUIsRUFDQSxVQUFrQyxFQUFFO1FBRXJELE1BQU0sUUFBUSxHQUFRLE1BQU0sT0FBTyxDQUFDLE9BQU87WUFDekMsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2hCLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDLE9BQU8sRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFlBQVksR0FBUSxNQUFNLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzthQUMxQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqQixLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQyxRQUFRLENBQUMsdUJBQXVCLENBQUM7YUFDakMsT0FBTyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBL0RELHdDQStEQztBQTFETztJQURMLElBQUEscUJBQWEsR0FBRTtJQUdiLFdBQUEsSUFBQSxxQkFBYSxHQUFFLENBQUE7Ozs7dUVBV2pCO0FBR0s7SUFETCxJQUFBLHFCQUFhLEdBQUU7SUFHYixXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7O21FQU1qQjtBQUdLO0lBREwsSUFBQSxxQkFBYSxHQUFFO0lBSWIsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozs4REEyQmpCIn0=
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistItemWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const validate_wishlist_sales_channel_1 = require("./steps/validate-wishlist-sales-channel");
7
+ const create_wishlist_item_1 = require("./steps/create-wishlist-item");
8
+ const validate_product_wishlist_1 = require("./steps/validate-product-wishlist");
9
+ const validate_wishlist_exists_1 = require("./steps/validate-wishlist-exists");
10
+ exports.createWishlistItemWorkflow = (0, workflows_sdk_1.createWorkflow)("create-wishlist-item", (input) => {
11
+ const { data: wishlists } = (0, core_flows_1.useQueryGraphStep)({
12
+ entity: "wishlist",
13
+ fields: ["*", "items.*"],
14
+ filters: {
15
+ customer_id: input.customer_id,
16
+ },
17
+ });
18
+ (0, validate_wishlist_exists_1.validateWishlistExistsStep)({
19
+ wishlists,
20
+ });
21
+ (0, validate_wishlist_sales_channel_1.validateWishlistSalesChannelStep)({
22
+ wishlist: wishlists[0],
23
+ sales_channel_id: input.sales_channel_id,
24
+ });
25
+ (0, validate_product_wishlist_1.validateProductWishlistStep)({
26
+ product_id: input.product_id,
27
+ sales_channel_id: input.sales_channel_id,
28
+ wishlist: wishlists[0],
29
+ });
30
+ (0, create_wishlist_item_1.createWishlistItemStep)({
31
+ product_id: input.product_id,
32
+ wishlist_id: wishlists[0].id,
33
+ });
34
+ // refetch wishlist
35
+ const { data: updatedWishlists } = (0, core_flows_1.useQueryGraphStep)({
36
+ entity: "wishlist",
37
+ fields: ["*", "items.*"],
38
+ filters: {
39
+ id: wishlists[0].id,
40
+ },
41
+ }).config({ name: "refetch-wishlist" });
42
+ return new workflows_sdk_1.WorkflowResponse({
43
+ wishlist: updatedWishlists[0],
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS13aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUMzQyw0REFBZ0U7QUFDaEUsNkZBQTJGO0FBQzNGLHVFQUFzRTtBQUN0RSxpRkFBZ0Y7QUFDaEYsK0VBQThFO0FBUWpFLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCxzQkFBc0IsRUFDdEIsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7SUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQzVDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDeEIsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CO0tBQ0YsQ0FBUSxDQUFDO0lBRVYsSUFBQSxxREFBMEIsRUFBQztRQUN6QixTQUFTO0tBQ1YsQ0FBQyxDQUFDO0lBRUgsSUFBQSxrRUFBZ0MsRUFBQztRQUMvQixRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO0tBQ3pDLENBQUMsQ0FBQztJQUVILElBQUEsdURBQTJCLEVBQUM7UUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7UUFDeEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsSUFBQSw2Q0FBc0IsRUFBQztRQUNyQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQzdCLENBQUMsQ0FBQztJQUVILG1CQUFtQjtJQUNuQixNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUNuRCxNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDO1FBQ3hCLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUNwQjtLQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBUSxDQUFDO0lBRS9DLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0tBQzlCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const validate_customer_create_wishlist_1 = require("./steps/validate-customer-create-wishlist");
6
+ const create_wishlist_1 = require("./steps/create-wishlist");
7
+ exports.createWishlistWorkflow = (0, workflows_sdk_1.createWorkflow)("create-wishlist", (input) => {
8
+ (0, validate_customer_create_wishlist_1.validateCustomerCreateWishlistStep)({
9
+ customer_id: input.customer_id,
10
+ });
11
+ const wishlist = (0, create_wishlist_1.createWishlistStep)(input);
12
+ return new workflows_sdk_1.WorkflowResponse({
13
+ wishlist,
14
+ });
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jcmVhdGUtd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzJDO0FBQzNDLGlHQUErRjtBQUMvRiw2REFBNkQ7QUFPaEQsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDhCQUFjLEVBQ2xELGlCQUFpQixFQUNqQixDQUFDLEtBQWtDLEVBQUUsRUFBRTtJQUNyQyxJQUFBLHNFQUFrQyxFQUFDO1FBQ2pDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztLQUMvQixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFBLG9DQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWishlistItemWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const delete_wishlist_item_1 = require("./steps/delete-wishlist-item");
6
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
7
+ const validate_item_in_wishlist_1 = require("./steps/validate-item-in-wishlist");
8
+ const validate_wishlist_exists_1 = require("./steps/validate-wishlist-exists");
9
+ exports.deleteWishlistItemWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-wishlist-item", (input) => {
10
+ const { data: wishlists } = (0, core_flows_1.useQueryGraphStep)({
11
+ entity: "wishlist",
12
+ fields: ["*", "items.*"],
13
+ filters: {
14
+ customer_id: input.customer_id,
15
+ },
16
+ });
17
+ (0, validate_wishlist_exists_1.validateWishlistExistsStep)({
18
+ wishlists,
19
+ });
20
+ (0, validate_item_in_wishlist_1.validateItemInWishlistStep)({
21
+ wishlist: wishlists[0],
22
+ product_id: input.product_id,
23
+ });
24
+ (0, delete_wishlist_item_1.deleteWishlistItemStep)({
25
+ customer_id: input.customer_id,
26
+ product_id: input.product_id,
27
+ });
28
+ // refetch wishlist
29
+ const { data: updatedWishlists } = (0, core_flows_1.useQueryGraphStep)({
30
+ entity: "wishlist",
31
+ fields: ["*", "items.*", "items.product.*"],
32
+ filters: {
33
+ id: wishlists[0].id,
34
+ },
35
+ }).config({ name: "refetch-wishlist" });
36
+ return new workflows_sdk_1.WorkflowResponse({
37
+ wishlist: updatedWishlists[0],
38
+ });
39
+ });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXdpc2hsaXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2RlbGV0ZS13aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUMzQyx1RUFBc0U7QUFDdEUsNERBQWdFO0FBQ2hFLGlGQUErRTtBQUMvRSwrRUFBOEU7QUFPakUsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDhCQUFjLEVBQ3RELHNCQUFzQixFQUN0QixDQUFDLEtBQXNDLEVBQUUsRUFBRTtJQUN6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDNUMsTUFBTSxFQUFFLFVBQVU7UUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUN4QixPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0I7S0FDRixDQUFRLENBQUM7SUFFVixJQUFBLHFEQUEwQixFQUFDO1FBQ3pCLFNBQVM7S0FDVixDQUFDLENBQUM7SUFFSCxJQUFBLHNEQUEwQixFQUFDO1FBQ3pCLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFFSCxJQUFBLDZDQUFzQixFQUFDO1FBQ3JCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7S0FDN0IsQ0FBQyxDQUFDO0lBRUgsbUJBQW1CO0lBQ25CLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ25ELE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUM7UUFDM0MsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BCO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFRLENBQUM7SUFFL0MsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7S0FDOUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistItemStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const wishlist_1 = require("../../modules/wishlist");
6
+ exports.createWishlistItemStep = (0, workflows_sdk_1.createStep)("create-wishlist-item", async (input, { container }) => {
7
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
8
+ const item = await wishlistModuleService.createWishlistItems(input);
9
+ return new workflows_sdk_1.StepResponse(item, item.id);
10
+ }, async (id, { container }) => {
11
+ if (!id) {
12
+ return;
13
+ }
14
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
15
+ await wishlistModuleService.deleteWishlistItems(id);
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2NyZWF0ZS13aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxxREFBeUQ7QUFPNUMsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDBCQUFVLEVBQzlDLHNCQUFzQixFQUN0QixLQUFLLEVBQUUsS0FBa0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDMUQsTUFBTSxxQkFBcUIsR0FDekIsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQkFBZSxDQUFDLENBQUM7SUFFckMsTUFBTSxJQUFJLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwRSxPQUFPLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsRUFDRCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMxQixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0scUJBQXFCLEdBQ3pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQWUsQ0FBQyxDQUFDO0lBRXJDLE1BQU0scUJBQXFCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const wishlist_1 = require("../../modules/wishlist");
6
+ exports.createWishlistStep = (0, workflows_sdk_1.createStep)("create-wishlist", async (input, { container }) => {
7
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
8
+ const wishlist = await wishlistModuleService.createWishlists(input);
9
+ return new workflows_sdk_1.StepResponse(wishlist, wishlist.id);
10
+ }, async (id, { container }) => {
11
+ if (!id) {
12
+ return;
13
+ }
14
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
15
+ await wishlistModuleService.deleteWishlists(id);
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9jcmVhdGUtd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUF5RDtBQVE1QyxRQUFBLGtCQUFrQixHQUFHLElBQUEsMEJBQVUsRUFDMUMsaUJBQWlCLEVBQ2pCLEtBQUssRUFBRSxLQUE4QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN0RCxNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUFlLENBQUMsQ0FBQztJQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwRSxPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUMsRUFDRCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMxQixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0scUJBQXFCLEdBQ3pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQWUsQ0FBQyxDQUFDO0lBRXJDLE1BQU0scUJBQXFCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWishlistItemStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const wishlist_1 = require("../../modules/wishlist");
6
+ exports.deleteWishlistItemStep = (0, workflows_sdk_1.createStep)("delete-wishlist-item", async ({ product_id, customer_id }, { container }) => {
7
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
8
+ const wishlist_item_id = await wishlistModuleService.getWishlistItemId(customer_id, product_id);
9
+ await wishlistModuleService.softDeleteWishlistItems(wishlist_item_id);
10
+ return new workflows_sdk_1.StepResponse(void 0, wishlist_item_id);
11
+ }, async (wishlistItemId, { container }) => {
12
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
13
+ await wishlistModuleService.restoreWishlistItems([wishlistItemId]);
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXdpc2hsaXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2RlbGV0ZS13aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxxREFBeUQ7QUFPNUMsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDBCQUFVLEVBQzlDLHNCQUFzQixFQUN0QixLQUFLLEVBQ0gsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUErQixFQUN4RCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUFlLENBQUMsQ0FBQztJQUVyQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0scUJBQXFCLENBQUMsaUJBQWlCLENBQ3BFLFdBQVcsRUFDWCxVQUFVLENBQ1gsQ0FBQztJQUVGLE1BQU0scUJBQXFCLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV0RSxPQUFPLElBQUksNEJBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3BELENBQUMsRUFDRCxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN0QyxNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUFlLENBQUMsQ0FBQztJQUVyQyxNQUFNLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateCustomerCreateWishlistStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ exports.validateCustomerCreateWishlistStep = (0, workflows_sdk_1.createStep)("validate-customer-create-wishlist", async ({ customer_id }, { container }) => {
7
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { data } = await query.graph({
9
+ entity: "wishlist",
10
+ fields: ["*"],
11
+ filters: {
12
+ customer_id: customer_id,
13
+ },
14
+ });
15
+ if (data.length) {
16
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Customer already has a wishlist");
17
+ }
18
+ // check that customer exists
19
+ const { data: customers } = await query.graph({
20
+ entity: "customer",
21
+ fields: ["*"],
22
+ filters: {
23
+ id: customer_id,
24
+ },
25
+ });
26
+ if (customers.length === 0) {
27
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Specified customer was not found");
28
+ }
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtY3VzdG9tZXItY3JlYXRlLXdpc2hsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy92YWxpZGF0ZS1jdXN0b21lci1jcmVhdGUtd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBQ25DLHFFQUErRDtBQU9sRCxRQUFBLGtDQUFrQyxHQUFHLElBQUEsMEJBQVUsRUFDMUQsbUNBQW1DLEVBQ25DLEtBQUssRUFDSCxFQUFFLFdBQVcsRUFBMkMsRUFDeEQsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNiLE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSxXQUFXO1NBQ3pCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsaUNBQWlDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzVDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNiLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxXQUFXO1NBQ2hCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGtDQUFrQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateItemInWishlistStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ exports.validateItemInWishlistStep = (0, workflows_sdk_1.createStep)("validate-item-in-wishlist", async ({ wishlist, product_id }, { container }) => {
7
+ const item = wishlist.items.find((item) => item.product_id === product_id);
8
+ if (!item) {
9
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Item does not exist in customer's wishlist");
10
+ }
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtaXRlbS1pbi13aXNobGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdmFsaWRhdGUtaXRlbS1pbi13aXNobGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxRUFBK0Q7QUFDL0QscURBQXdEO0FBTzNDLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSwwQkFBVSxFQUNsRCwyQkFBMkIsRUFDM0IsS0FBSyxFQUNILEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBbUMsRUFDekQsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUM7SUFFM0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsNENBQTRDLENBQzdDLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateProductWishlistStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ exports.validateProductWishlistStep = (0, workflows_sdk_1.createStep)("validate-product-in-wishlist", async ({ product_id, sales_channel_id, wishlist, }, { container }) => {
7
+ const isInWishlist = wishlist.items?.some((item) => item.product_id === product_id);
8
+ if (isInWishlist) {
9
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Product is already in wishlist");
10
+ }
11
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
12
+ const { data } = await query.graph({
13
+ entity: "product",
14
+ fields: ["sales_channels.*"],
15
+ filters: {
16
+ id: product_id,
17
+ },
18
+ });
19
+ const productInSalesChannel = data[0].sales_channels?.some((sc) => sc?.id === sales_channel_id);
20
+ if (!productInSalesChannel) {
21
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Product is not available in the specified sales channel");
22
+ }
23
+ });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcHJvZHVjdC13aXNobGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdmFsaWRhdGUtcHJvZHVjdC13aXNobGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxRUFBK0Q7QUFDL0QscURBR21DO0FBU3RCLFFBQUEsMkJBQTJCLEdBQUcsSUFBQSwwQkFBVSxFQUNuRCw4QkFBOEIsRUFDOUIsS0FBSyxFQUNILEVBQ0UsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixRQUFRLEdBQ3lCLEVBQ25DLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUN2QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQ3pDLENBQUM7SUFFRixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGdDQUFnQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNqQyxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztRQUM1QixPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsVUFBVTtTQUNmO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLElBQUksQ0FDeEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssZ0JBQWdCLENBQ3BDLENBQUM7SUFFRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix5REFBeUQsQ0FDMUQsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateWishlistExistsStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ exports.validateWishlistExistsStep = (0, workflows_sdk_1.createStep)("validate-wishlist-exists", async (input) => {
7
+ if (!input.wishlists?.length) {
8
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "No wishlist found for this customer");
9
+ }
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtd2lzaGxpc3QtZXhpc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy92YWxpZGF0ZS13aXNobGlzdC1leGlzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQUErRDtBQVFsRCxRQUFBLDBCQUEwQixHQUFHLElBQUEsMEJBQVUsRUFDbEQsMEJBQTBCLEVBQzFCLEtBQUssRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQixxQ0FBcUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateWishlistSalesChannelStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ exports.validateWishlistSalesChannelStep = (0, workflows_sdk_1.createStep)("validate-wishlist-sales-channel", async (input, { container }) => {
6
+ const { wishlist, sales_channel_id } = input;
7
+ if (wishlist.sales_channel_id !== sales_channel_id) {
8
+ throw new Error("Wishlist does not belong to the current sales channel");
9
+ }
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtd2lzaGxpc3Qtc2FsZXMtY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdmFsaWRhdGUtd2lzaGxpc3Qtc2FsZXMtY2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBK0Q7QUFTbEQsUUFBQSxnQ0FBZ0MsR0FBRyxJQUFBLDBCQUFVLEVBQ3hELGlDQUFpQyxFQUNqQyxLQUFLLEVBQUUsS0FBNEMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU3QyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==
package/README.md ADDED
@@ -0,0 +1,64 @@
1
+ <p align="center">
2
+ <a href="https://www.medusajs.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
+ <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <h1 align="center">
11
+ Medusa Plugin Starter
12
+ </h1>
13
+
14
+ <h4 align="center">
15
+ <a href="https://docs.medusajs.com">Documentation</a> |
16
+ <a href="https://www.medusajs.com">Website</a>
17
+ </h4>
18
+
19
+ <p align="center">
20
+ Building blocks for digital commerce
21
+ </p>
22
+ <p align="center">
23
+ <a href="https://github.com/medusajs/medusa/blob/master/CONTRIBUTING.md">
24
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
25
+ </a>
26
+ <a href="https://www.producthunt.com/posts/medusa"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Day-%23DA552E" alt="Product Hunt"></a>
27
+ <a href="https://discord.gg/xpCwq3Kfn8">
28
+ <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
29
+ </a>
30
+ <a href="https://twitter.com/intent/follow?screen_name=medusajs">
31
+ <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
32
+ </a>
33
+ </p>
34
+
35
+ ## Compatibility
36
+
37
+ This starter is compatible with versions >= 2.4.0 of `@medusajs/medusa`.
38
+
39
+ ## Getting Started
40
+
41
+ Visit the [Quickstart Guide](https://docs.medusajs.com/learn/installation) to set up a server.
42
+
43
+ Visit the [Plugins documentation](https://docs.medusajs.com/learn/fundamentals/plugins) to learn more about plugins and how to create them.
44
+
45
+ Visit the [Docs](https://docs.medusajs.com/learn/installation#get-started) to learn more about our system requirements.
46
+
47
+ ## What is Medusa
48
+
49
+ Medusa is a set of commerce modules and tools that allow you to build rich, reliable, and performant commerce applications without reinventing core commerce logic. The modules can be customized and used to build advanced ecommerce stores, marketplaces, or any product that needs foundational commerce primitives. All modules are open-source and freely available on npm.
50
+
51
+ Learn more about [Medusa’s architecture](https://docs.medusajs.com/learn/introduction/architecture) and [commerce modules](https://docs.medusajs.com/learn/fundamentals/modules/commerce-modules) in the Docs.
52
+
53
+ ## Community & Contributions
54
+
55
+ The community and core team are available in [GitHub Discussions](https://github.com/medusajs/medusa/discussions), where you can ask for support, discuss roadmap, and share ideas.
56
+
57
+ Join our [Discord server](https://discord.com/invite/medusajs) to meet other community members.
58
+
59
+ ## Other channels
60
+
61
+ - [GitHub Issues](https://github.com/medusajs/medusa/issues)
62
+ - [Twitter](https://twitter.com/medusajs)
63
+ - [LinkedIn](https://www.linkedin.com/company/medusajs)
64
+ - [Medusa Blog](https://medusajs.com/blog/)
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@alphabite/medusa-wishlist",
3
+ "version": "0.0.1",
4
+ "description": "A starter for Medusa plugins.",
5
+ "author": "Medusa (https://medusajs.com)",
6
+ "license": "MIT",
7
+ "files": [
8
+ ".medusa/server"
9
+ ],
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ "./workflows": "./.medusa/server/src/workflows/index.js",
13
+ "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
14
+ "./modules/*": "./.medusa/server/src/modules/*/index.js",
15
+ "./providers/*": "./.medusa/server/src/providers/*/index.js",
16
+ "./*": "./.medusa/server/src/*.js",
17
+ "./admin": {
18
+ "import": "./.medusa/server/src/admin/index.mjs",
19
+ "require": "./.medusa/server/src/admin/index.js",
20
+ "default": "./.medusa/server/src/admin/index.js"
21
+ }
22
+ },
23
+ "keywords": [
24
+ "medusa",
25
+ "plugin",
26
+ "medusa-plugin-other",
27
+ "medusa-plugin",
28
+ "medusa-v2"
29
+ ],
30
+ "scripts": {
31
+ "build": "medusa plugin:build",
32
+ "dev": "medusa plugin:develop",
33
+ "prepublishOnly": "medusa plugin:build"
34
+ },
35
+ "devDependencies": {
36
+ "@medusajs/admin-sdk": "2.4.0",
37
+ "@medusajs/cli": "2.4.0",
38
+ "@medusajs/framework": "2.4.0",
39
+ "@medusajs/medusa": "2.4.0",
40
+ "@medusajs/test-utils": "2.4.0",
41
+ "@medusajs/ui": "4.0.4",
42
+ "@medusajs/icons": "2.4.0",
43
+ "@mikro-orm/cli": "6.4.3",
44
+ "@mikro-orm/core": "6.4.3",
45
+ "@mikro-orm/knex": "6.4.3",
46
+ "@mikro-orm/migrations": "6.4.3",
47
+ "@mikro-orm/postgresql": "6.4.3",
48
+ "@swc/core": "1.5.7",
49
+ "@types/node": "^20.0.0",
50
+ "@types/react": "^18.3.2",
51
+ "@types/react-dom": "^18.2.25",
52
+ "awilix": "^8.0.1",
53
+ "pg": "^8.13.0",
54
+ "prop-types": "^15.8.1",
55
+ "react": "^18.2.0",
56
+ "react-dom": "^18.2.0",
57
+ "ts-node": "^10.9.2",
58
+ "typescript": "^5.6.2",
59
+ "vite": "^5.2.11",
60
+ "yalc": "^1.0.0-pre.53"
61
+ },
62
+ "peerDependencies": {
63
+ "@medusajs/admin-sdk": "2.4.0",
64
+ "@medusajs/cli": "2.4.0",
65
+ "@medusajs/framework": "2.4.0",
66
+ "@medusajs/test-utils": "2.4.0",
67
+ "@medusajs/medusa": "2.4.0",
68
+ "@medusajs/ui": "4.0.3",
69
+ "@medusajs/icons": "2.4.0",
70
+ "@mikro-orm/cli": "6.4.3",
71
+ "@mikro-orm/core": "6.4.3",
72
+ "@mikro-orm/knex": "6.4.3",
73
+ "@mikro-orm/migrations": "6.4.3",
74
+ "@mikro-orm/postgresql": "6.4.3",
75
+ "awilix": "^8.0.1",
76
+ "pg": "^8.13.0"
77
+ },
78
+ "engines": {
79
+ "node": ">=20"
80
+ },
81
+ "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610",
82
+ "publishConfig": {
83
+ "access": "public"
84
+ }
85
+ }