@lodashventure/medusa-membership 0.1.2 → 0.3.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 (32) hide show
  1. package/.medusa/server/src/api/middlewares.js +15 -1
  2. package/.medusa/server/src/api/store/customers/me/member-tier/route.js +74 -4
  3. package/.medusa/server/src/api/store/customers/me/wishlist/route.js +1 -1
  4. package/.medusa/server/src/api/store/promotion-codes/[id]/collect/route.js +116 -0
  5. package/.medusa/server/src/api/store/promotion-codes/[id]/route.js +123 -0
  6. package/.medusa/server/src/api/store/promotion-codes/route.js +62 -9
  7. package/.medusa/server/src/modules/membership/migrations/Migration20250416034358.js +2 -2
  8. package/.medusa/server/src/modules/membership/migrations/Migration20250416231624.js +2 -2
  9. package/.medusa/server/src/modules/membership/migrations/Migration20250418020235.js +2 -2
  10. package/.medusa/server/src/modules/membership/migrations/Migration20250420014232.js +2 -2
  11. package/.medusa/server/src/modules/membership/migrations/Migration20250420050937.js +2 -2
  12. package/.medusa/server/src/modules/membership/migrations/Migration20250421010109.js +2 -2
  13. package/.medusa/server/src/modules/membership/migrations/Migration20250421011451.js +2 -2
  14. package/.medusa/server/src/modules/membership/migrations/Migration20250422230822.js +2 -2
  15. package/.medusa/server/src/modules/membership/migrations/Migration20250423021328.js +2 -2
  16. package/.medusa/server/src/modules/membership/migrations/Migration20250423021925.js +2 -2
  17. package/.medusa/server/src/modules/membership/migrations/Migration20250424011144.js +2 -2
  18. package/.medusa/server/src/modules/membership/migrations/Migration20250507013347.js +2 -2
  19. package/.medusa/server/src/modules/promotion-cache/service.js +5 -1
  20. package/.medusa/server/src/modules/usable-promo/migrations/Migration20250504044646.js +2 -2
  21. package/.medusa/server/src/modules/wishlist/migrations/Migration20250424011114.js +2 -2
  22. package/.medusa/server/src/subscribers/customer-created.js +33 -4
  23. package/.medusa/server/src/subscribers/order-canceled.js +48 -0
  24. package/.medusa/server/src/subscribers/order-completed.js +62 -16
  25. package/.medusa/server/src/subscribers/order-fulfilled.js +68 -0
  26. package/.medusa/server/src/subscribers/order-payment-captured.js +111 -0
  27. package/.medusa/server/src/subscribers/order-placed.js +83 -9
  28. package/.medusa/server/src/subscribers/return-received.js +48 -0
  29. package/.medusa/server/src/workflows/membership/create-membership.js +27 -6
  30. package/.medusa/server/src/workflows/membership/void-membership-points.js +110 -0
  31. package/.medusa/server/src/workflows/usable-promo/invalidateUsedPromotionWorkflow.js +8 -2
  32. package/package.json +14 -28
@@ -1,17 +1,91 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.config = void 0;
4
- exports.default = invalidateUsedPromotions;
4
+ exports.default = handleOrderPlaced;
5
+ const utils_1 = require("@medusajs/framework/utils");
5
6
  const invalidateUsedPromotionWorkflow_1 = require("../workflows/usable-promo/invalidateUsedPromotionWorkflow");
6
- async function invalidateUsedPromotions({ event: { data }, }) {
7
- // invalidate all promotions used in this order
8
- await invalidateUsedPromotionWorkflow_1.invalidatedUsePromotionWorkflow.run({
9
- input: {
10
- order_id: data.id,
11
- },
12
- });
7
+ const create_membership_1 = require("../workflows/membership/create-membership");
8
+ async function handleOrderPlaced({ event: { data }, container, }) {
9
+ try {
10
+ // First, invalidate all promotions used in this order
11
+ try {
12
+ await invalidateUsedPromotionWorkflow_1.invalidatedUsePromotionWorkflow.run({
13
+ input: {
14
+ order_id: data.id,
15
+ },
16
+ });
17
+ }
18
+ catch (promoError) {
19
+ console.error(`[Membership] Error invalidating promotions for order ${data.id}:`, promoError);
20
+ // Continue processing - promotion invalidation shouldn't block membership creation
21
+ }
22
+ // Then, ensure customer has a membership (create with 0 points if doesn't exist)
23
+ console.log(`[Membership] Processing order.placed event for order: ${data.id}`);
24
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
25
+ // Get order details
26
+ const { data: orders } = await query.graph({
27
+ entity: "order",
28
+ fields: ["id", "customer_id", "status"],
29
+ filters: {
30
+ id: data.id,
31
+ },
32
+ });
33
+ if (!orders?.length) {
34
+ console.error(`[Membership] Order ${data.id} not found`);
35
+ return;
36
+ }
37
+ const order = orders[0];
38
+ // Check if customer exists
39
+ if (!order.customer_id) {
40
+ console.log(`[Membership] Order ${order.id} has no customer (guest checkout), skipping membership creation`);
41
+ return;
42
+ }
43
+ // Check if customer already has a membership
44
+ const { data: customers } = await query.graph({
45
+ entity: "customer",
46
+ fields: ["id", "membership.id", "membership.membership_points"],
47
+ filters: {
48
+ id: order.customer_id,
49
+ },
50
+ });
51
+ if (!customers?.length) {
52
+ console.error(`[Membership] Customer ${order.customer_id} not found`);
53
+ return;
54
+ }
55
+ const customer = customers[0];
56
+ if (!customer.membership) {
57
+ // This should rarely happen since memberships are now created on customer creation
58
+ // But we'll handle it as a fallback for existing customers or edge cases
59
+ console.log(`[Membership] Customer ${order.customer_id} doesn't have membership (edge case), creating one from order ${order.id}`);
60
+ // Check if membership is enabled before creating
61
+ const { data: [store], } = await query.graph({
62
+ entity: "store",
63
+ fields: ["id", "membership_config.*"],
64
+ });
65
+ if (store?.membership_config?.enable_membership) {
66
+ // Create membership with 0 points (points will be added when order is completed)
67
+ await create_membership_1.createMembershipWorkflow.run({
68
+ input: {
69
+ customer_id: order.customer_id,
70
+ points: 0,
71
+ },
72
+ });
73
+ console.log(`[Membership] Successfully created membership for customer ${order.customer_id}`);
74
+ }
75
+ else {
76
+ console.log(`[Membership] Membership is disabled in store configuration, skipping membership creation`);
77
+ }
78
+ }
79
+ else {
80
+ console.log(`[Membership] Customer ${order.customer_id} already has membership with ${customer.membership.membership_points} points`);
81
+ }
82
+ }
83
+ catch (error) {
84
+ console.error(`[Membership] Error processing order.placed for order ${data.id}:`, error);
85
+ // Don't throw error to avoid blocking order flow
86
+ }
13
87
  }
14
88
  exports.config = {
15
89
  event: `order.placed`,
16
90
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSwyQ0FTQztBQVhELCtHQUE0RztBQUU3RixLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQ2dCO0lBQy9CLCtDQUErQztJQUMvQyxNQUFNLGlFQUErQixDQUFDLEdBQUcsQ0FBQztRQUN4QyxLQUFLLEVBQUU7WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDbEI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxjQUFjO0NBQ3RCLENBQUMifQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxvQ0E2RkM7QUFqR0QscURBQXNFO0FBQ3RFLCtHQUE0RztBQUM1RyxpRkFBcUY7QUFFdEUsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQzlDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUNmLFNBQVMsR0FDc0I7SUFDL0IsSUFBSSxDQUFDO1FBQ0gsc0RBQXNEO1FBQ3RELElBQUksQ0FBQztZQUNILE1BQU0saUVBQStCLENBQUMsR0FBRyxDQUFDO2dCQUN4QyxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUNsQjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM5RixtRkFBbUY7UUFDckYsQ0FBQztRQUVELGlGQUFpRjtRQUNqRixPQUFPLENBQUMsR0FBRyxDQUFDLHlEQUF5RCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVoRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLG9CQUFvQjtRQUNwQixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN6QyxNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7YUFDWjtTQUNGLENBQUMsQ0FB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
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = returnReceivedHandler;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const void_membership_points_1 = require("../workflows/membership/void-membership-points");
7
+ async function returnReceivedHandler({ event: { data }, container, }) {
8
+ try {
9
+ console.log(`[Membership] Processing return.received event for return: ${data.id}, order: ${data.order_id}`);
10
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ // Get order details
12
+ const { data: orders, } = await query.graph({
13
+ entity: "order",
14
+ fields: ["id", "customer_id", "status"],
15
+ filters: {
16
+ id: data.order_id,
17
+ },
18
+ });
19
+ if (!orders?.length) {
20
+ console.error(`[Membership] Order ${data.order_id} not found`);
21
+ return;
22
+ }
23
+ const order = orders[0];
24
+ console.log(`[Membership] Order details - ID: ${order.id}, Status: ${order.status}, Customer: ${order.customer_id}`);
25
+ // Check if customer exists
26
+ if (!order.customer_id) {
27
+ console.log(`[Membership] Order ${order.id} has no customer (guest checkout), skipping void points`);
28
+ return;
29
+ }
30
+ // Void membership points for this returned order
31
+ await void_membership_points_1.voidMembershipPointsWorkflow.run({
32
+ input: {
33
+ customer_id: order.customer_id,
34
+ order_id: order.id,
35
+ reason: "order_returned",
36
+ },
37
+ });
38
+ console.log(`[Membership] Successfully processed return for order ${order.id}`);
39
+ }
40
+ catch (error) {
41
+ console.error(`[Membership] Error processing return.received for order ${data.order_id}:`, error);
42
+ // Don't throw error to avoid blocking order flow
43
+ }
44
+ }
45
+ exports.config = {
46
+ event: `return.received`,
47
+ };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuLXJlY2VpdmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL3JldHVybi1yZWNlaXZlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSx3Q0FnREM7QUFuREQscURBQXNFO0FBQ3RFLDJGQUE4RjtBQUUvRSxLQUFLLFVBQVUscUJBQXFCLENBQUMsRUFDbEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ2YsU0FBUyxHQUN3QztJQUNqRCxJQUFJLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZEQUE2RCxJQUFJLENBQUMsRUFBRSxZQUFZLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTdHLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakUsb0JBQW9CO1FBQ3BCLE1BQU0sRUFDSixJQUFJLEVBQUUsTUFBTSxHQUNiLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUM7WUFDdkMsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUTthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFFBQVEsWUFBWSxDQUFDLENBQUM7WUFDL0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsS0FBSyxDQUFDLEVBQUUsYUFBYSxLQUFLLENBQUMsTUFBTSxlQUFlLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXJILDJCQUEyQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEtBQUssQ0FBQyxFQUFFLHlEQUF5RCxDQUFDLENBQUM7WUFDckcsT0FBTztRQUNULENBQUM7UUFFRCxpREFBaUQ7UUFDakQsTUFBTSxxREFBNEIsQ0FBQyxHQUFHLENBQUM7WUFDckMsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNsQixNQUFNLEVBQUUsZ0JBQWdCO2FBQ3pCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDJEQUEyRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEcsaURBQWlEO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQyJ9
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMembershipWorkflow = void 0;
4
- const framework_1 = require("@medusajs/framework");
5
4
  const utils_1 = require("@medusajs/framework/utils");
6
5
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
6
  const membership_1 = require("../../modules/membership");
8
7
  const createMembershipStep = (0, workflows_sdk_1.createStep)("create-membership", async (data, { container }) => {
9
8
  const membershipModuleService = container.resolve(membership_1.MEMBERSHIP_MODULE);
9
+ console.log(`[Membership Workflow] Creating membership for customer ${data.customer_id} with ${data.points} points`);
10
10
  const [memberTier] = await membershipModuleService.listMemberTiers({
11
11
  min_points: {
12
12
  $lte: data.points,
@@ -17,13 +17,16 @@ const createMembershipStep = (0, workflows_sdk_1.createStep)("create-membership"
17
17
  },
18
18
  take: 1,
19
19
  });
20
+ console.log(`[Membership Workflow] Found member tier: ${memberTier ? `${memberTier.name} (id: ${memberTier.id}, min_points: ${memberTier.min_points})` : "none"}`);
20
21
  if (memberTier) {
21
22
  const membership = await membershipModuleService.createMemberships({
22
23
  member_tier_id: memberTier.id,
23
24
  membership_points: data.points,
24
25
  });
26
+ console.log(`[Membership Workflow] Created membership: ${membership.id} with tier ${memberTier.name}`);
25
27
  return new workflows_sdk_1.StepResponse({ membership }, { membership });
26
28
  }
29
+ console.log(`[Membership Workflow] No member tier found for ${data.points} points`);
27
30
  return new workflows_sdk_1.StepResponse(null, null);
28
31
  }, async (membership, { container }) => {
29
32
  const membershipModuleService = container.resolve(membership_1.MEMBERSHIP_MODULE);
@@ -31,8 +34,9 @@ const createMembershipStep = (0, workflows_sdk_1.createStep)("create-membership"
31
34
  return;
32
35
  await membershipModuleService.deleteMemberships(membership.membership.id);
33
36
  });
34
- const createMemberShipLink = (0, workflows_sdk_1.createStep)("create-membership-link", async (data) => {
35
- const link = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.LINK);
37
+ const createMemberShipLink = (0, workflows_sdk_1.createStep)("create-membership-link", async (data, { container }) => {
38
+ const link = container.resolve(utils_1.ContainerRegistrationKeys.LINK);
39
+ console.log(`[Membership Workflow] Creating link between customer ${data.customerId} and membership ${data.membershipId}`);
36
40
  try {
37
41
  await link.create([
38
42
  {
@@ -44,17 +48,34 @@ const createMemberShipLink = (0, workflows_sdk_1.createStep)("create-membership-
44
48
  },
45
49
  },
46
50
  ]);
51
+ console.log(`[Membership Workflow] Successfully created link between customer and membership`);
47
52
  }
48
53
  catch (error) {
49
- const membershipModuleService = framework_1.container.resolve(membership_1.MEMBERSHIP_MODULE);
54
+ console.error(`[Membership Workflow] Failed to create link:`, error);
55
+ const membershipModuleService = container.resolve(membership_1.MEMBERSHIP_MODULE);
50
56
  await membershipModuleService.deleteMemberships(data.membershipId);
51
57
  throw error;
52
58
  }
53
59
  return new workflows_sdk_1.StepResponse({ data }, { data });
60
+ }, async (data, { container }) => {
61
+ // Rollback: remove the link
62
+ if (!data?.data)
63
+ return;
64
+ const link = container.resolve(utils_1.ContainerRegistrationKeys.LINK);
65
+ await link.dismiss([
66
+ {
67
+ [utils_1.Modules.CUSTOMER]: {
68
+ customer_id: data.data.customerId,
69
+ },
70
+ [membership_1.MEMBERSHIP_MODULE]: {
71
+ membership_id: data.data.membershipId,
72
+ },
73
+ },
74
+ ]);
54
75
  });
55
76
  exports.createMembershipWorkflow = (0, workflows_sdk_1.createWorkflow)("create-membership", (input) => {
56
77
  const { membership } = createMembershipStep(input);
57
- (0, workflows_sdk_1.when)({ membership }, ({ membership }) => membership !== undefined).then(() => {
78
+ (0, workflows_sdk_1.when)({ membership }, ({ membership }) => membership !== null).then(() => {
58
79
  createMemberShipLink({
59
80
  membershipId: membership.id,
60
81
  customerId: input.customer_id,
@@ -64,4 +85,4 @@ exports.createMembershipWorkflow = (0, workflows_sdk_1.createWorkflow)("create-m
64
85
  membership,
65
86
  });
66
87
  });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lbWJlcnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lbWJlcnNoaXAvY3JlYXRlLW1lbWJlcnNoaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBQ2hELHFEQUErRTtBQUMvRSxxRUFNMkM7QUFDM0MseURBQTZEO0FBUTdELE1BQU0sb0JBQW9CLEdBQUcsSUFBQSwwQkFBVSxFQUNyQyxtQkFBbUIsRUFDbkIsS0FBSyxFQUFFLElBQTJCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ25ELE1BQU0sdUJBQXVCLEdBQzNCLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQUMsQ0FBQztJQUV2QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxlQUFlLENBQ2hFO1FBQ0UsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ2xCO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRTtZQUNMLFVBQVUsRUFBRSxNQUFNO1NBQ25CO1FBQ0QsSUFBSSxFQUFFLENBQUM7S0FDUixDQUNGLENBQUM7SUFFRixJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxVQUFVLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUNqRSxjQUFjLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDN0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0QyxDQUFDLEVBRUQsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDbEMsTUFBTSx1QkFBdUIsR0FDM0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBQyxDQUFDO0lBRXZDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFBRSxPQUFPO0lBRXhDLE1BQU0sdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1RSxDQUFDLENBQ0YsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsSUFBQSwwQkFBVSxFQUNyQyx3QkFBd0IsRUFDeEIsS0FBSyxFQUFFLElBQWtELEVBQUUsRUFBRTtJQUMzRCxNQUFNLElBQUksR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvRCxJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDN0I7Z0JBQ0QsQ0FBQyw4QkFBaUIsQ0FBQyxFQUFFO29CQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQ2pDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sdUJBQXVCLEdBQzNCLHFCQUFTLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFDLENBQUM7UUFDdkMsTUFBTSx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkUsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLHdCQUF3QixHQUFHLElBQUEsOEJBQWMsRUFDcEQsbUJBQW1CLEVBQ25CLENBQUMsS0FBNEIsRUFBRSxFQUFFO0lBQy9CLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVuRCxJQUFBLG9CQUFJLEVBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsRUFBRTtRQUNILG9CQUFvQixDQUFDO1lBQ25CLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUNGLENBQUM7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsVUFBVTtLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lbWJlcnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21lbWJlcnNoaXAvY3JlYXRlLW1lbWJlcnNoaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQStFO0FBQy9FLHFFQU0yQztBQUMzQyx5REFBNkQ7QUFRN0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3JDLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsSUFBMkIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDbkQsTUFBTSx1QkFBdUIsR0FDM0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBQyxDQUFDO0lBRXZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMERBQTBELElBQUksQ0FBQyxXQUFXLFNBQVMsSUFBSSxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQUM7SUFFckgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sdUJBQXVCLENBQUMsZUFBZSxDQUNoRTtRQUNFLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNsQjtLQUNGLEVBQ0Q7UUFDRSxLQUFLLEVBQUU7WUFDTCxVQUFVLEVBQUUsTUFBTTtTQUNuQjtRQUNELElBQUksRUFBRSxDQUFDO0tBQ1IsQ0FDRixDQUFDO0lBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLFNBQVMsVUFBVSxDQUFDLEVBQUUsaUJBQWlCLFVBQVUsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVuSyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxVQUFVLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUNqRSxjQUFjLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDN0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsVUFBVSxDQUFDLEVBQUUsY0FBYyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RyxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsSUFBSSxDQUFDLE1BQU0sU0FBUyxDQUFDLENBQUM7SUFDcEYsT0FBTyxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RDLENBQUMsRUFFRCxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNsQyxNQUFNLHVCQUF1QixHQUMzQixTQUFTLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFDLENBQUM7SUFFdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUFFLE9BQU87SUFFeEMsTUFBTSx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVFLENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3JDLHdCQUF3QixFQUN4QixLQUFLLEVBQUUsSUFBa0QsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDMUUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvRCxPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxJQUFJLENBQUMsVUFBVSxtQkFBbUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFFM0gsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hCO2dCQUNFLENBQUMsZUFBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVU7aUJBQzdCO2dCQUNELENBQUMsOEJBQWlCLENBQUMsRUFBRTtvQkFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUNqQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxNQUFNLHVCQUF1QixHQUMzQixTQUFTLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFDLENBQUM7UUFDdkMsTUFBTSx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkUsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxFQUVELEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzVCLDRCQUE0QjtJQUM1QixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUk7UUFBRSxPQUFPO0lBRXhCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pCO1lBQ0UsQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7YUFDbEM7WUFDRCxDQUFDLDhCQUFpQixDQUFDLEVBQUU7Z0JBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7YUFDdEM7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDhCQUFjLEVBQ3BELG1CQUFtQixFQUNuQixDQUFDLEtBQTRCLEVBQUUsRUFBRTtJQUMvQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbkQsSUFBQSxvQkFBSSxFQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNoRSxHQUFHLEVBQUU7UUFDSCxvQkFBb0IsQ0FBQztZQUNuQixZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDM0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FDRixDQUFDO0lBRUYsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLFVBQVU7S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.voidMembershipPointsWorkflow = void 0;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
7
+ const update_membership_1 = require("./update-membership");
8
+ const membership_1 = require("../../modules/membership");
9
+ const voidMembershipPointsStep = (0, workflows_sdk_1.createStep)("void-membership-points", async (data) => {
10
+ const query = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ console.log(`[Membership] Voiding points for order ${data.order_id}, reason: ${data.reason}`);
12
+ // Check if membership is enabled
13
+ const { data: [store], } = await query.graph({
14
+ entity: "store",
15
+ fields: ["id", "membership_config.*"],
16
+ });
17
+ if (!store.membership_config?.enable_membership) {
18
+ console.log(`[Membership] Membership is disabled, skipping void points`);
19
+ return new workflows_sdk_1.StepResponse(null, null);
20
+ }
21
+ if (!data.customer_id) {
22
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Customer id is required");
23
+ }
24
+ if (!data.order_id) {
25
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Order id is required");
26
+ }
27
+ // Get customer and membership
28
+ const { data: [customer], } = await query.graph({
29
+ entity: "customer",
30
+ fields: ["*", "membership.*"],
31
+ filters: {
32
+ id: data.customer_id,
33
+ },
34
+ });
35
+ if (!customer) {
36
+ console.error(`[Membership] Customer ${data.customer_id} not found`);
37
+ return new workflows_sdk_1.StepResponse(null, null);
38
+ }
39
+ if (!customer.membership) {
40
+ console.log(`[Membership] Customer ${data.customer_id} has no membership, nothing to void`);
41
+ return new workflows_sdk_1.StepResponse(null, null);
42
+ }
43
+ const membershipModuleService = framework_1.container.resolve(membership_1.MEMBERSHIP_MODULE);
44
+ // Find the original transaction that added points for this order
45
+ const { data: transactions } = await query.graph({
46
+ entity: "membership_transaction",
47
+ fields: ["id", "points", "source"],
48
+ filters: {
49
+ customer_id: data.customer_id,
50
+ source: `order: ${data.order_id}`,
51
+ },
52
+ });
53
+ if (!transactions || transactions.length === 0) {
54
+ console.log(`[Membership] No points transaction found for order ${data.order_id}, nothing to void`);
55
+ return new workflows_sdk_1.StepResponse(null, null);
56
+ }
57
+ // Check if points were already voided for this order
58
+ const voidSource = `void_${data.reason}: ${data.order_id}`;
59
+ const { data: voidTransactions } = await query.graph({
60
+ entity: "membership_transaction",
61
+ fields: ["id"],
62
+ filters: {
63
+ customer_id: data.customer_id,
64
+ source: voidSource,
65
+ },
66
+ });
67
+ if (voidTransactions && voidTransactions.length > 0) {
68
+ console.log(`[Membership] Points already voided for order ${data.order_id}, skipping to avoid duplication`);
69
+ return new workflows_sdk_1.StepResponse(null, null);
70
+ }
71
+ // Sum all points from this order (in case there are multiple transactions)
72
+ const totalPointsToVoid = transactions.reduce((sum, t) => sum + t.points, 0);
73
+ if (totalPointsToVoid <= 0) {
74
+ console.log(`[Membership] No positive points to void for order ${data.order_id}`);
75
+ return new workflows_sdk_1.StepResponse(null, null);
76
+ }
77
+ console.log(`[Membership] Voiding ${totalPointsToVoid} points from customer ${data.customer_id}`);
78
+ const currentPoints = customer.membership.membership_points || 0;
79
+ const newPoints = Math.max(0, currentPoints - totalPointsToVoid);
80
+ // Update membership points
81
+ await update_membership_1.updateMembershipWorkflow.run({
82
+ input: {
83
+ membership_id: customer.membership.id,
84
+ points: newPoints,
85
+ },
86
+ });
87
+ // Create a negative transaction to record the void
88
+ await membershipModuleService.createMembershipTransactions({
89
+ customer_id: data.customer_id,
90
+ membership_id: customer.membership.id,
91
+ points: -totalPointsToVoid,
92
+ source: voidSource,
93
+ });
94
+ console.log(`[Membership] Successfully voided ${totalPointsToVoid} points for order ${data.order_id}`);
95
+ return new workflows_sdk_1.StepResponse({
96
+ voided_points: totalPointsToVoid,
97
+ new_points: newPoints
98
+ }, {
99
+ customer_id: data.customer_id,
100
+ membership_id: customer.membership.id,
101
+ voided_points: totalPointsToVoid,
102
+ });
103
+ });
104
+ exports.voidMembershipPointsWorkflow = (0, workflows_sdk_1.createWorkflow)("void-membership-points", (input) => {
105
+ const result = voidMembershipPointsStep(input);
106
+ return new workflows_sdk_1.WorkflowResponse({
107
+ result,
108
+ });
109
+ });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pZC1tZW1iZXJzaGlwLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbWVtYmVyc2hpcC92b2lkLW1lbWJlcnNoaXAtcG9pbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFnRDtBQUNoRCxxREFHbUM7QUFDbkMscUVBSzJDO0FBQzNDLDJEQUErRDtBQUUvRCx5REFBNkQ7QUFRN0QsTUFBTSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLHdCQUF3QixFQUN4QixLQUFLLEVBQUUsSUFBK0IsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLElBQUksQ0FBQyxRQUFRLGFBQWEsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFOUYsaUNBQWlDO0lBQ2pDLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FDZCxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQztLQUN0QyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix5QkFBeUIs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
@@ -13,8 +13,14 @@ const invalidateUsedPromotionStep = (0, workflows_sdk_1.createStep)("invalidate-
13
13
  const customerId = order.customer_id;
14
14
  const promotionSet = new Set(order.items
15
15
  ?.map((item) => item.adjustments?.map((adjustment) => adjustment.promotion_id))
16
- .flat());
16
+ .flat()
17
+ .filter((id) => id !== null && id !== undefined) // Filter out null/undefined
18
+ );
17
19
  const promotionIds = Array.from(promotionSet);
20
+ if (promotionIds.length === 0) {
21
+ console.log(`[Promotion Cache] No promotions to invalidate for order ${order_id}`);
22
+ return;
23
+ }
18
24
  const promotionCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
19
25
  const keys = promotionIds.map((id) => `user:${customerId}:promotion:${id}`);
20
26
  await promotionCacheService.invalidateKeys(keys);
@@ -25,4 +31,4 @@ exports.invalidatedUsePromotionWorkflow = (0, workflows_sdk_1.createWorkflow)("i
25
31
  invalidateUsePromotion: data,
26
32
  });
27
33
  });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZGF0ZVVzZWRQcm9tb3Rpb25Xb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvdXNhYmxlLXByb21vL2ludmFsaWRhdGVVc2VkUHJvbW90aW9uV29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBQ2hELHFEQUFvRDtBQUNwRCxxRUFJMkM7QUFDM0MsbUVBQXVFO0FBR3ZFLE1BQU0sMkJBQTJCLEdBQUcsSUFBQSwwQkFBVSxFQUM1QywyQkFBMkIsRUFDM0IsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUF3QixFQUFFLEVBQUU7SUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtRQUN2RCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztLQUNqQyxDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBRXJDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUMxQixLQUFLLENBQUMsS0FBSztRQUNULEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUMvRDtTQUNBLElBQUksRUFBRSxDQUNWLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlDLE1BQU0scUJBQXFCLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQzdDLHdDQUFzQixDQUN2QixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxVQUFVLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxNQUFNLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQ0YsQ0FBQztBQUVXLFFBQUEsK0JBQStCLEdBQUcsSUFBQSw4QkFBYyxFQUMzRCwwQkFBMEIsRUFDMUIsQ0FBQyxLQUEyQixFQUFFLEVBQUU7SUFDOUIsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFdkUsT0FBTyxJQUFJLGdDQUFnQixDQUFDO1FBQzFCLHNCQUFzQixFQUFFLElBQUk7S0FDN0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZGF0ZVVzZWRQcm9tb3Rpb25Xb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvdXNhYmxlLXByb21vL2ludmFsaWRhdGVVc2VkUHJvbW90aW9uV29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBQ2hELHFEQUFvRDtBQUNwRCxxRUFJMkM7QUFDM0MsbUVBQXVFO0FBR3ZFLE1BQU0sMkJBQTJCLEdBQUcsSUFBQSwwQkFBVSxFQUM1QywyQkFBMkIsRUFDM0IsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUF3QixFQUFFLEVBQUU7SUFDM0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtRQUN2RCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztLQUNqQyxDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBRXJDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUMxQixLQUFLLENBQUMsS0FBSztRQUNULEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUMvRDtTQUNBLElBQUksRUFBRTtTQUNOLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsNEJBQTRCO0tBQ2hGLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlDLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLDJEQUEyRCxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FDN0Msd0NBQXNCLENBQ3ZCLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLFVBQVUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLE1BQU0scUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSwrQkFBK0IsR0FBRyxJQUFBLDhCQUFjLEVBQzNELDBCQUEwQixFQUMxQixDQUFDLEtBQTJCLEVBQUUsRUFBRTtJQUM5QixNQUFNLElBQUksR0FBRywyQkFBMkIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUV2RSxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsc0JBQXNCLEVBQUUsSUFBSTtLQUM3QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-membership",
3
- "version": "0.1.2",
3
+ "version": "0.3.1",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",
@@ -29,24 +29,17 @@
29
29
  "prepublishOnly": "medusa plugin:build"
30
30
  },
31
31
  "devDependencies": {
32
- "@medusajs/admin-sdk": "2.10.0",
33
- "@medusajs/cli": "2.10.0",
34
- "@medusajs/framework": "2.10.0",
35
- "@medusajs/icons": "^2.10.0",
36
- "@medusajs/medusa": "2.10.0",
37
- "@medusajs/test-utils": "2.10.0",
32
+ "@medusajs/admin-sdk": "2.11.0",
33
+ "@medusajs/cli": "2.11.0",
34
+ "@medusajs/framework": "2.11.0",
35
+ "@medusajs/icons": "^2.11.0",
36
+ "@medusajs/medusa": "2.11.0",
37
+ "@medusajs/test-utils": "2.11.0",
38
38
  "@medusajs/ui": "4.0.4",
39
- "@mikro-orm/cli": "6.4.3",
40
- "@mikro-orm/core": "6.4.3",
41
- "@mikro-orm/knex": "6.4.3",
42
- "@mikro-orm/migrations": "6.4.3",
43
- "@mikro-orm/postgresql": "6.4.3",
44
39
  "@swc/core": "1.5.7",
45
40
  "@types/node": "^20.0.0",
46
41
  "@types/react": "^18.3.2",
47
42
  "@types/react-dom": "^18.2.25",
48
- "awilix": "^8.0.1",
49
- "pg": "^8.13.0",
50
43
  "prop-types": "^15.8.1",
51
44
  "react": "^18.2.0",
52
45
  "react-dom": "^18.2.0",
@@ -56,22 +49,15 @@
56
49
  "yalc": "^1.0.0-pre.53"
57
50
  },
58
51
  "peerDependencies": {
59
- "@medusajs/admin-sdk": "2.10.0",
60
- "@medusajs/cli": "2.10.0",
61
- "@medusajs/framework": "2.10.0",
62
- "@medusajs/icons": "^2.10.0",
52
+ "@medusajs/admin-sdk": "2.11.0",
53
+ "@medusajs/cli": "2.11.0",
54
+ "@medusajs/framework": "2.11.0",
55
+ "@medusajs/icons": "^2.11.0",
63
56
  "@medusajs/js-sdk": "*",
64
- "@medusajs/medusa": "2.10.0",
65
- "@medusajs/test-utils": "2.10.0",
57
+ "@medusajs/medusa": "2.11.0",
58
+ "@medusajs/test-utils": "2.11.0",
66
59
  "@medusajs/ui": "4.0.3",
67
- "@mikro-orm/cli": "6.4.3",
68
- "@mikro-orm/core": "6.4.3",
69
- "@mikro-orm/knex": "6.4.3",
70
- "@mikro-orm/migrations": "6.4.3",
71
- "@mikro-orm/postgresql": "6.4.3",
72
- "@tanstack/react-query": "*",
73
- "awilix": "^8.0.1",
74
- "pg": "^8.13.0"
60
+ "@tanstack/react-query": "*"
75
61
  },
76
62
  "engines": {
77
63
  "node": ">=20"