@lodashventure/medusa-membership 0.0.6

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 (92) hide show
  1. package/.medusa/server/src/admin/index.js +2039 -0
  2. package/.medusa/server/src/admin/index.mjs +2038 -0
  3. package/.medusa/server/src/api/admin/member-tiers/[id]/route.js +40 -0
  4. package/.medusa/server/src/api/admin/member-tiers/route.js +49 -0
  5. package/.medusa/server/src/api/admin/membership/config/[store_id]/route.js +43 -0
  6. package/.medusa/server/src/api/admin/membership-consents/[id]/route.js +40 -0
  7. package/.medusa/server/src/api/admin/membership-consents/route.js +48 -0
  8. package/.medusa/server/src/api/admin/promotions/[id]/update-collectable/route.js +34 -0
  9. package/.medusa/server/src/api/middlewares/consent.js +32 -0
  10. package/.medusa/server/src/api/middlewares/customers.js +23 -0
  11. package/.medusa/server/src/api/middlewares/member-tiers.js +38 -0
  12. package/.medusa/server/src/api/middlewares/notifications.js +27 -0
  13. package/.medusa/server/src/api/middlewares/promotion-codes.js +22 -0
  14. package/.medusa/server/src/api/middlewares/wishlist.js +27 -0
  15. package/.medusa/server/src/api/middlewares.js +26 -0
  16. package/.medusa/server/src/api/store/customers/me/consents/[keyId]/route.js +22 -0
  17. package/.medusa/server/src/api/store/customers/me/consents/route.js +15 -0
  18. package/.medusa/server/src/api/store/customers/me/notifications/[key]/route.js +21 -0
  19. package/.medusa/server/src/api/store/customers/me/notifications/route.js +15 -0
  20. package/.medusa/server/src/api/store/customers/me/promotion-codes/route.js +20 -0
  21. package/.medusa/server/src/api/store/customers/me/wishlist/[variant_id]/route.js +17 -0
  22. package/.medusa/server/src/api/store/customers/me/wishlist/route.js +61 -0
  23. package/.medusa/server/src/api/store/promotion-codes/route.js +66 -0
  24. package/.medusa/server/src/api/utils/middlewares/checkFeatureFlag.js +18 -0
  25. package/.medusa/server/src/links/customer-membership.js +10 -0
  26. package/.medusa/server/src/links/promotion-usable-promo.js +10 -0
  27. package/.medusa/server/src/links/store-membership-config.js +10 -0
  28. package/.medusa/server/src/links/wishlisht-customer.js +15 -0
  29. package/.medusa/server/src/links/wishlisht-item-product-variant.js +16 -0
  30. package/.medusa/server/src/modules/membership/index.js +13 -0
  31. package/.medusa/server/src/modules/membership/migrations/Migration20250416034358.js +19 -0
  32. package/.medusa/server/src/modules/membership/migrations/Migration20250416231624.js +15 -0
  33. package/.medusa/server/src/modules/membership/migrations/Migration20250418020235.js +14 -0
  34. package/.medusa/server/src/modules/membership/migrations/Migration20250420014232.js +17 -0
  35. package/.medusa/server/src/modules/membership/migrations/Migration20250420050937.js +15 -0
  36. package/.medusa/server/src/modules/membership/migrations/Migration20250421010109.js +15 -0
  37. package/.medusa/server/src/modules/membership/migrations/Migration20250421011451.js +15 -0
  38. package/.medusa/server/src/modules/membership/migrations/Migration20250422230822.js +14 -0
  39. package/.medusa/server/src/modules/membership/migrations/Migration20250423021328.js +23 -0
  40. package/.medusa/server/src/modules/membership/migrations/Migration20250423021925.js +15 -0
  41. package/.medusa/server/src/modules/membership/migrations/Migration20250424011144.js +14 -0
  42. package/.medusa/server/src/modules/membership/migrations/Migration20250507013347.js +14 -0
  43. package/.medusa/server/src/modules/membership/models/member-tier.js +12 -0
  44. package/.medusa/server/src/modules/membership/models/membership-config.js +14 -0
  45. package/.medusa/server/src/modules/membership/models/membership-consent-keys.js +21 -0
  46. package/.medusa/server/src/modules/membership/models/membership-consent.js +19 -0
  47. package/.medusa/server/src/modules/membership/models/membership-notification.js +13 -0
  48. package/.medusa/server/src/modules/membership/models/membership-transaction.js +12 -0
  49. package/.medusa/server/src/modules/membership/models/membership.js +10 -0
  50. package/.medusa/server/src/modules/membership/service.js +25 -0
  51. package/.medusa/server/src/modules/membership/types/membership-config.js +15 -0
  52. package/.medusa/server/src/modules/promotion-cache/index.js +13 -0
  53. package/.medusa/server/src/modules/promotion-cache/service.js +126 -0
  54. package/.medusa/server/src/modules/usable-promo/index.js +13 -0
  55. package/.medusa/server/src/modules/usable-promo/migrations/Migration20250504044646.js +17 -0
  56. package/.medusa/server/src/modules/usable-promo/models/usable-promotion.js +10 -0
  57. package/.medusa/server/src/modules/usable-promo/service.js +13 -0
  58. package/.medusa/server/src/modules/wishlist/index.js +13 -0
  59. package/.medusa/server/src/modules/wishlist/migrations/Migration20250424011114.js +23 -0
  60. package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +23 -0
  61. package/.medusa/server/src/modules/wishlist/models/wishlist.js +17 -0
  62. package/.medusa/server/src/modules/wishlist/service.js +15 -0
  63. package/.medusa/server/src/subscribers/customer-created.js +26 -0
  64. package/.medusa/server/src/subscribers/order-completed.js +27 -0
  65. package/.medusa/server/src/subscribers/order-placed.js +17 -0
  66. package/.medusa/server/src/workflows/hooks/membershipConfigInitialized.js +15 -0
  67. package/.medusa/server/src/workflows/hooks/promotionDeleteHook.js +26 -0
  68. package/.medusa/server/src/workflows/member-tier/create-member-tier.js +32 -0
  69. package/.medusa/server/src/workflows/member-tier/delete-member-tier.js +25 -0
  70. package/.medusa/server/src/workflows/member-tier/update-member-tier.js +28 -0
  71. package/.medusa/server/src/workflows/membership/add-membership-points.js +75 -0
  72. package/.medusa/server/src/workflows/membership/create-membership.js +67 -0
  73. package/.medusa/server/src/workflows/membership/update-membership.js +35 -0
  74. package/.medusa/server/src/workflows/membership-consent/create-membership-consent.js +24 -0
  75. package/.medusa/server/src/workflows/membership-consent/retrieve-membership-consent.js +39 -0
  76. package/.medusa/server/src/workflows/membership-consent/update-membership-consent.js +27 -0
  77. package/.medusa/server/src/workflows/membership-consent-key/create-membership-consent-key.js +22 -0
  78. package/.medusa/server/src/workflows/membership-consent-key/delete-membership-consent-key.js +19 -0
  79. package/.medusa/server/src/workflows/membership-consent-key/update-membership-consent-key.js +23 -0
  80. package/.medusa/server/src/workflows/membership-notification/create-membership-notification.js +23 -0
  81. package/.medusa/server/src/workflows/membership-notification/retrieve-membership-notification.js +33 -0
  82. package/.medusa/server/src/workflows/membership-notification/update-membership-notification.js +27 -0
  83. package/.medusa/server/src/workflows/membership_config/init-membership-config.js +61 -0
  84. package/.medusa/server/src/workflows/membership_config/retrieve-membership-config.js +24 -0
  85. package/.medusa/server/src/workflows/membership_config/update-membership-config.js +23 -0
  86. package/.medusa/server/src/workflows/usable-promo/invalidateUsedPromotionWorkflow.js +28 -0
  87. package/.medusa/server/src/workflows/usable-promo/updateCollectablePromoWorkflow.js +65 -0
  88. package/.medusa/server/src/workflows/wishlist/create-wishlist-items.js +45 -0
  89. package/.medusa/server/src/workflows/wishlist/create-wishlist.js +21 -0
  90. package/.medusa/server/src/workflows/wishlist/delete-wishlist-items.js +25 -0
  91. package/README.md +36 -0
  92. package/package.json +79 -0
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateCollectablePromoWorkflow = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const usable_promo_1 = require("../../modules/usable-promo");
7
+ const framework_1 = require("@medusajs/framework");
8
+ const updateCollectablePromoStep = (0, workflows_sdk_1.createStep)("update-collectable-promo", async (data) => {
9
+ const promotionModuleService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
10
+ const promotion = await promotionModuleService.retrievePromotion(data.promotion_id);
11
+ if (!promotion) {
12
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Promotion not found");
13
+ }
14
+ if (promotion.is_automatic) {
15
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Promotion must not be automatic");
16
+ }
17
+ const usablePromoModuleService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
18
+ const [usablePromo] = await usablePromoModuleService.listUsablePromotions({
19
+ promotion_id: data.promotion_id,
20
+ });
21
+ if (usablePromo) {
22
+ const [updated] = await usablePromoModuleService.updateUsablePromotions([
23
+ {
24
+ selector: {
25
+ id: usablePromo.id,
26
+ },
27
+ data: {
28
+ enabled: data.enabled,
29
+ },
30
+ },
31
+ ]);
32
+ return new workflows_sdk_1.StepResponse(updated, updated);
33
+ }
34
+ let createdId = "";
35
+ const link = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.LINK);
36
+ try {
37
+ const created = await usablePromoModuleService.createUsablePromotions({
38
+ promotion_id: data.promotion_id,
39
+ enabled: data.enabled,
40
+ });
41
+ createdId = created.id;
42
+ await link.create([
43
+ {
44
+ [utils_1.Modules.PROMOTION]: {
45
+ promotion_id: data.promotion_id,
46
+ },
47
+ [usable_promo_1.USABLE_PROMO_MODULE]: {
48
+ usable_promotion_id: createdId,
49
+ },
50
+ },
51
+ ]);
52
+ return new workflows_sdk_1.StepResponse(created, created);
53
+ }
54
+ catch (error) {
55
+ console.log("Error while creating usable promo", error);
56
+ if (createdId) {
57
+ await usablePromoModuleService.deleteUsablePromotions(createdId);
58
+ }
59
+ }
60
+ });
61
+ exports.updateCollectablePromoWorkflow = (0, workflows_sdk_1.createWorkflow)("update-collectable-promo", (input) => {
62
+ const collectable = updateCollectablePromoStep(input);
63
+ return new workflows_sdk_1.WorkflowResponse({ collectable });
64
+ });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ29sbGVjdGFibGVQcm9tb1dvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy91c2FibGUtcHJvbW8vdXBkYXRlQ29sbGVjdGFibGVQcm9tb1dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUltQztBQUNuQyxxRUFLMkM7QUFDM0MsNkRBQWlFO0FBRWpFLG1EQUFnRDtBQU9oRCxNQUFNLDBCQUEwQixHQUFHLElBQUEsMEJBQVUsRUFDM0MsMEJBQTBCLEVBQzFCLEtBQUssRUFBRSxJQUF5QyxFQUFFLEVBQUU7SUFDbEQsTUFBTSxzQkFBc0IsR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FDOUQsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztJQUVGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpQ0FBaUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLHdCQUF3QixHQUM1QixxQkFBUyxDQUFDLE9BQU8sQ0FBMkIsa0NBQW1CLENBQUMsQ0FBQztJQUVuRSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7S0FDaEMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUN0RTtnQkFDRSxRQUFRLEVBQUU7b0JBQ1IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLDRCQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUNwRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztRQUNILFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBRXZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUNoQztnQkFDRCxDQUFDLGtDQUFtQixDQUFDLEVBQUU7b0JBQ3JCLG1CQUFtQixFQUFFLFNBQVM7aUJBQy9CO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLDhCQUE4QixHQUFHLElBQUEsOEJBQWMsRUFDMUQsMEJBQTBCLEVBQzFCLENBQUMsS0FBMEMsRUFBRSxFQUFFO0lBQzdDLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXRELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistItemWorkflow = exports.createWishlistItemStep = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const wishlist_1 = require("../../modules/wishlist");
7
+ const create_wishlist_1 = require("./create-wishlist");
8
+ exports.createWishlistItemStep = (0, workflows_sdk_1.createStep)("create-wishlist-item", async (input, { container }) => {
9
+ if (!input.customer_id) {
10
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "customer_id is required");
11
+ }
12
+ if (!input.variant_id) {
13
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "variant_id is required");
14
+ }
15
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
16
+ let [wishlist] = await wishlistModuleService.listWishlists({
17
+ customer_id: input.customer_id,
18
+ });
19
+ if (!wishlist) {
20
+ const res = await create_wishlist_1.createWishlistWorkflow.run({
21
+ input: {
22
+ customer_id: input.customer_id,
23
+ },
24
+ });
25
+ wishlist = res.result.wishlist;
26
+ }
27
+ const item = await wishlistModuleService.createWishlistItems({
28
+ wishlist_id: input.customer_id,
29
+ product_variant_id: input.variant_id,
30
+ });
31
+ return new workflows_sdk_1.StepResponse(item, item.id);
32
+ }, async (id, { container }) => {
33
+ if (!id) {
34
+ return;
35
+ }
36
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
37
+ await wishlistModuleService.deleteWishlistItems(id);
38
+ });
39
+ exports.createWishlistItemWorkflow = (0, workflows_sdk_1.createWorkflow)("create-wishlist-item", (input) => {
40
+ const wishlistItem = (0, exports.createWishlistItemStep)(input);
41
+ return new workflows_sdk_1.WorkflowResponse({
42
+ wishlistItem: wishlistItem,
43
+ });
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LWl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy93aXNobGlzdC9jcmVhdGUtd2lzaGxpc3QtaXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQUsyQztBQUMzQyxxREFBeUQ7QUFFekQsdURBQTJEO0FBTzlDLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QyxzQkFBc0IsRUFDdEIsS0FBSyxFQUFFLEtBQWtDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIseUJBQXlCLENBQzFCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix3QkFBd0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUFlLENBQUMsQ0FBQztJQUVyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7UUFDekQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO0tBQy9CLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sR0FBRyxHQUFHLE1BQU0sd0NBQXNCLENBQUMsR0FBRyxDQUFDO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDL0I7U0FDRixDQUFDLENBQUM7UUFDSCxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0scUJBQXFCLENBQUMsbUJBQW1CLENBQUM7UUFDM0QsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1FBQzlCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVO0tBQ3JDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQyxFQUNELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzFCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxxQkFBcUIsR0FDekIsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQkFBZSxDQUFDLENBQUM7SUFFckMsTUFBTSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQ0YsQ0FBQztBQU9XLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCxzQkFBc0IsRUFDdEIsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7SUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBQSw4QkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsWUFBWSxFQUFFLFlBQVk7S0FDM0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWishlistWorkflow = exports.createWishlistStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const wishlist_1 = require("../../modules/wishlist");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ exports.createWishlistStep = (0, workflows_sdk_1.createStep)("create-wishlist", async (input, { container }) => {
8
+ if (!input.customer_id) {
9
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "customer_id is required");
10
+ }
11
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
12
+ const wishlist = await wishlistModuleService.createWishlists(input);
13
+ return new workflows_sdk_1.StepResponse(wishlist, wishlist);
14
+ });
15
+ exports.createWishlistWorkflow = (0, workflows_sdk_1.createWorkflow)("create-wishlist", (input) => {
16
+ const wishlist = (0, exports.createWishlistStep)(input);
17
+ return new workflows_sdk_1.WorkflowResponse({
18
+ wishlist,
19
+ });
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXdpc2hsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy93aXNobGlzdC9jcmVhdGUtd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLHFEQUF5RDtBQUV6RCxxREFBd0Q7QUFNM0MsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLGlCQUFpQixFQUNqQixLQUFLLEVBQUUsS0FBOEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix5QkFBeUIsQ0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUFlLENBQUMsQ0FBQztJQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwRSxPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUNGLENBQUM7QUFNVyxRQUFBLHNCQUFzQixHQUFHLElBQUEsOEJBQWMsRUFDbEQsaUJBQWlCLEVBQ2pCLENBQUMsS0FBa0MsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFM0MsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWishlistItemWorkflow = exports.deleteWishlistItemStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const wishlist_1 = require("../../modules/wishlist");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ exports.deleteWishlistItemStep = (0, workflows_sdk_1.createStep)("delete-wishlist-item", async ({ customer_id, product_variant_id }, { container }) => {
8
+ const wishlistModuleService = container.resolve(wishlist_1.WISHLIST_MODULE);
9
+ const [wishlistItem] = await wishlistModuleService.listWishlistItems({
10
+ wishlist_id: customer_id,
11
+ product_variant_id,
12
+ });
13
+ if (!wishlistItem) {
14
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Wishlist item not found");
15
+ }
16
+ await wishlistModuleService.deleteWishlistItems(wishlistItem.id);
17
+ return new workflows_sdk_1.StepResponse(product_variant_id, product_variant_id);
18
+ });
19
+ exports.deleteWishlistItemWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-wishlist-item", (input) => {
20
+ const ids = (0, exports.deleteWishlistItemStep)(input);
21
+ return new workflows_sdk_1.WorkflowResponse({
22
+ deleted: ids,
23
+ });
24
+ });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXdpc2hsaXN0LWl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy93aXNobGlzdC9kZWxldGUtd2lzaGxpc3QtaXRlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBRTNDLHFEQUF5RDtBQUN6RCxxREFBd0Q7QUFPM0MsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLDBCQUFVLEVBQzlDLHNCQUFzQixFQUN0QixLQUFLLEVBQ0gsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQW1DLEVBQ3BFLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0scUJBQXFCLEdBQ3pCLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQWUsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDO1FBQ25FLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLGtCQUFrQjtLQUNuQixDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IseUJBQXlCLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxJQUFJLDRCQUFZLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQ0YsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCxzQkFBc0IsRUFDdEIsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBQSw4QkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUUxQyxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
package/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Medusa Plugin membership
2
+
3
+ ## This plugin need redis to work
4
+
5
+ ## How to install
6
+ 1. add the plugin to your medusa backend
7
+ ```bash
8
+ yarn add medusa-membership
9
+ ```
10
+ 2. configure your medusa backend `medusa-config.ts`
11
+ ```ts
12
+ module.exports = defineConfig({
13
+ // ... rest of the config
14
+ plugins: [
15
+ // ... rest of the plugins
16
+ {
17
+ resolve: "medusa-membership",
18
+ options: {
19
+ redisUrl: "redis://localhost:6380", // or process.env.YOUR_REDIS_URL
20
+ // optional for redis
21
+ redisOptions: {
22
+ // see https://redis.github.io/ioredis/index.html#RedisOptions
23
+ }
24
+ },
25
+ },
26
+ ],
27
+ });
28
+ ```
29
+
30
+ 1. run the migrations in your medusa core backend
31
+ ```bash
32
+ yarn medusa db:migrate
33
+ ```
34
+
35
+ 1. all done now just start your medusa backend
36
+ `yarn dev` `yarn start` or whatever you use to start your backend
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@lodashventure/medusa-membership",
3
+ "version": "0.0.6",
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
+ },
18
+ "keywords": [
19
+ "medusa",
20
+ "plugin",
21
+ "medusa-plugin-other",
22
+ "medusa-plugin",
23
+ "medusa-v2"
24
+ ],
25
+ "scripts": {
26
+ "build": "medusa plugin:build",
27
+ "dev": "medusa plugin:develop",
28
+ "prepublishOnly": "medusa plugin:build"
29
+ },
30
+ "devDependencies": {
31
+ "@medusajs/admin-sdk": "2.7.0",
32
+ "@medusajs/cli": "2.7.0",
33
+ "@medusajs/framework": "2.7.0",
34
+ "@medusajs/icons": "2.7.0",
35
+ "@medusajs/medusa": "2.7.0",
36
+ "@medusajs/test-utils": "2.7.0",
37
+ "@medusajs/ui": "4.0.4",
38
+ "@mikro-orm/cli": "6.4.3",
39
+ "@mikro-orm/core": "6.4.3",
40
+ "@mikro-orm/knex": "6.4.3",
41
+ "@mikro-orm/migrations": "6.4.3",
42
+ "@mikro-orm/postgresql": "6.4.3",
43
+ "@swc/core": "1.5.7",
44
+ "@types/node": "^20.0.0",
45
+ "@types/react": "^18.3.2",
46
+ "@types/react-dom": "^18.2.25",
47
+ "awilix": "^8.0.1",
48
+ "pg": "^8.13.0",
49
+ "prop-types": "^15.8.1",
50
+ "react": "^18.2.0",
51
+ "react-dom": "^18.2.0",
52
+ "ts-node": "^10.9.2",
53
+ "typescript": "^5.6.2",
54
+ "vite": "^5.2.11",
55
+ "yalc": "^1.0.0-pre.53"
56
+ },
57
+ "peerDependencies": {
58
+ "@medusajs/admin-sdk": "2.7.0",
59
+ "@medusajs/cli": "2.7.0",
60
+ "@medusajs/framework": "2.7.0",
61
+ "@medusajs/icons": "2.7.0",
62
+ "@medusajs/medusa": "2.7.0",
63
+ "@medusajs/test-utils": "2.7.0",
64
+ "@medusajs/ui": "4.0.3",
65
+ "@mikro-orm/cli": "6.4.3",
66
+ "@mikro-orm/core": "6.4.3",
67
+ "@mikro-orm/knex": "6.4.3",
68
+ "@mikro-orm/migrations": "6.4.3",
69
+ "@mikro-orm/postgresql": "6.4.3",
70
+ "awilix": "^8.0.1",
71
+ "pg": "^8.13.0"
72
+ },
73
+ "engines": {
74
+ "node": ">=20"
75
+ },
76
+ "dependencies": {
77
+ "dayjs": "^1.11.13"
78
+ }
79
+ }