@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,25 @@
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 member_tier_1 = __importDefault(require("./models/member-tier"));
8
+ const membership_1 = __importDefault(require("./models/membership"));
9
+ const membership_config_1 = __importDefault(require("./models/membership-config"));
10
+ const membership_transaction_1 = __importDefault(require("./models/membership-transaction"));
11
+ const membership_notification_1 = __importDefault(require("./models/membership-notification"));
12
+ const membership_consent_1 = __importDefault(require("./models/membership-consent"));
13
+ const membership_consent_keys_1 = __importDefault(require("./models/membership-consent-keys"));
14
+ class MembershipModuleService extends (0, utils_1.MedusaService)({
15
+ MemberTier: member_tier_1.default,
16
+ Membership: membership_1.default,
17
+ MembershipConfig: membership_config_1.default,
18
+ MembershipTransaction: membership_transaction_1.default,
19
+ MembershipNotification: membership_notification_1.default,
20
+ MembershipConsent: membership_consent_1.default,
21
+ MembershipConsentKey: membership_consent_keys_1.default,
22
+ }) {
23
+ }
24
+ exports.default = MembershipModuleService;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL21lbWJlcnNoaXAvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUEwRDtBQUMxRCx1RUFBOEM7QUFDOUMscUVBQTZDO0FBQzdDLG1GQUEwRDtBQUMxRCw2RkFBb0U7QUFDcEUsK0ZBQXNFO0FBQ3RFLHFGQUE0RDtBQUM1RCwrRkFBb0U7QUFFcEUsTUFBTSx1QkFBd0IsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDbEQsVUFBVSxFQUFWLHFCQUFVO0lBQ1YsVUFBVSxFQUFWLG9CQUFVO0lBQ1YsZ0JBQWdCLEVBQWhCLDJCQUFnQjtJQUNoQixxQkFBcUIsRUFBckIsZ0NBQXFCO0lBQ3JCLHNCQUFzQixFQUF0QixpQ0FBc0I7SUFDdEIsaUJBQWlCLEVBQWpCLDRCQUFpQjtJQUNqQixvQkFBb0IsRUFBcEIsaUNBQW9CO0NBQ3JCLENBQUM7Q0FBRztBQUVMLGtCQUFlLHVCQUF1QixDQUFDIn0=
@@ -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
+ exports.updateMembershipConfigSchema = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ exports.updateMembershipConfigSchema = zod_1.default.object({
9
+ enable_membership: zod_1.default.boolean().optional(),
10
+ membership_points_multiplier: zod_1.default.number().optional(),
11
+ enable_membership_notification: zod_1.default.boolean().optional(),
12
+ enable_wishlist: zod_1.default.boolean().optional(),
13
+ enable_promotion_collection: zod_1.default.boolean().optional(),
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL3R5cGVzL21lbWJlcnNoaXAtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFvQjtBQUVQLFFBQUEsNEJBQTRCLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUNuRCxpQkFBaUIsRUFBRSxhQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLDRCQUE0QixFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkQsOEJBQThCLEVBQUUsYUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0RCxlQUFlLEVBQUUsYUFBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN2QywyQkFBMkIsRUFBRSxhQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3BELENBQUMsQ0FBQyJ9
@@ -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.PROMOTION_CACHE_MODULE = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.PROMOTION_CACHE_MODULE = "promotion_cache";
10
+ exports.default = (0, utils_1.Module)(exports.PROMOTION_CACHE_MODULE, {
11
+ service: service_1.default,
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9tb3Rpb24tY2FjaGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQW1EO0FBQ25ELHdEQUE4QztBQUVqQyxRQUFBLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDO0FBRXhELGtCQUFlLElBQUEsY0FBTSxFQUFDLDhCQUFzQixFQUFFO0lBQzVDLE9BQU8sRUFBRSxpQkFBcUI7Q0FDL0IsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,126 @@
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 ioredis_1 = __importDefault(require("ioredis"));
8
+ const framework_1 = require("@medusajs/framework");
9
+ class PromotionCacheService {
10
+ constructor({}, options = {}) {
11
+ this.ttl = 60 * 60 * 24 * 365;
12
+ this.prefix = "promotion:";
13
+ this.logger = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
14
+ this.redis = new ioredis_1.default(options.redisUrl ?? "", {
15
+ ...options.redisOptions,
16
+ });
17
+ // Error handling
18
+ this.redis.on("error", (err) => {
19
+ this.logger.error("promotion-cache Error:", err);
20
+ });
21
+ // Connection handling
22
+ this.redis.on("connect", () => {
23
+ this.logger.log("Connection to Redis in module 'promotion-cache' established");
24
+ });
25
+ }
26
+ async set(key, data, ttl) {
27
+ try {
28
+ const fullKey = `${this.prefix}${key}`;
29
+ const value = JSON.stringify(data);
30
+ await this.redis.set(fullKey, value, "EX", ttl || this.ttl);
31
+ }
32
+ catch (error) {
33
+ this.logger.error("Error setting cache:", error);
34
+ throw error;
35
+ }
36
+ }
37
+ async get(key) {
38
+ try {
39
+ const fullKey = `${this.prefix}${key}`;
40
+ const value = await this.redis.get(fullKey);
41
+ return value ? JSON.parse(value) : null;
42
+ }
43
+ catch (error) {
44
+ this.logger.error("Error getting cache:", error);
45
+ throw error;
46
+ }
47
+ }
48
+ async invalidate(key) {
49
+ try {
50
+ const fullKey = `${this.prefix}${key}`;
51
+ await this.redis.del(fullKey);
52
+ }
53
+ catch (error) {
54
+ this.logger.error("Error invalidating cache:", error);
55
+ throw error;
56
+ }
57
+ }
58
+ async invalidateKeys(keys) {
59
+ try {
60
+ const fullKeys = keys.map((key) => `${this.prefix}${key}`);
61
+ await this.redis.del(...fullKeys);
62
+ }
63
+ catch (error) {
64
+ this.logger.error("Error invalidating cache keys:", error);
65
+ throw error;
66
+ }
67
+ }
68
+ async invalidateAll() {
69
+ try {
70
+ const keys = await this.redis.keys(`${this.prefix}*`);
71
+ if (keys.length > 0) {
72
+ await this.redis.del(...keys);
73
+ }
74
+ }
75
+ catch (error) {
76
+ this.logger.error("Error invalidating all cache:", error);
77
+ throw error;
78
+ }
79
+ }
80
+ async exists(key) {
81
+ try {
82
+ const fullKey = `${this.prefix}${key}`;
83
+ const exists = await this.redis.exists(fullKey);
84
+ return exists === 1;
85
+ }
86
+ catch (error) {
87
+ this.logger.error("Error checking cache existence:", error);
88
+ throw error;
89
+ }
90
+ }
91
+ async keys(pattern) {
92
+ try {
93
+ const keys = await this.redis.keys(`${this.prefix}${pattern}`);
94
+ return keys;
95
+ }
96
+ catch (error) {
97
+ this.logger.error("Error getting keys:", error);
98
+ throw error;
99
+ }
100
+ }
101
+ async scan(pattern) {
102
+ const COUNT = 1000;
103
+ const keys = [];
104
+ let cursor = 0;
105
+ try {
106
+ do {
107
+ const [nextCursor, batchKeys] = await this.redis.scan(cursor, "MATCH", `${this.prefix}${pattern}`, "COUNT", COUNT);
108
+ keys.push(...batchKeys);
109
+ cursor = parseInt(nextCursor);
110
+ } while (cursor > 0);
111
+ if (keys.length === 0) {
112
+ return [];
113
+ }
114
+ const values = await this.redis.mget(keys);
115
+ return values
116
+ .map((value) => (value ? JSON.parse(value) : null))
117
+ .filter((v) => v !== null);
118
+ }
119
+ catch (error) {
120
+ this.logger.error("Error scanning keys:", error);
121
+ throw error;
122
+ }
123
+ }
124
+ }
125
+ exports.default = PromotionCacheService;
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb21vdGlvbi1jYWNoZS9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXNFO0FBQ3RFLHNEQUE4QztBQUU5QyxtREFBZ0Q7QUFRaEQsTUFBcUIscUJBQXFCO0lBTXhDLFlBQVksRUFBRSxFQUFFLFVBQWlDLEVBQUU7UUFKM0MsUUFBRyxHQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNqQyxXQUFNLEdBQVcsWUFBWSxDQUFDO1FBSXBDLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGlCQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFDN0MsR0FBRyxPQUFPLENBQUMsWUFBWTtTQUN4QixDQUFDLENBQUM7UUFFSCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYiw2REFBNkQsQ0FDOUQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxHQUFZO1FBQ2hELElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxH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
@@ -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.USABLE_PROMO_MODULE = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.USABLE_PROMO_MODULE = "usable_promotion";
10
+ exports.default = (0, utils_1.Module)(exports.USABLE_PROMO_MODULE, {
11
+ service: service_1.default,
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy91c2FibGUtcHJvbW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQW1EO0FBQ25ELHdEQUFpRDtBQUVwQyxRQUFBLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO0FBRXRELGtCQUFlLElBQUEsY0FBTSxFQUFDLDJCQUFtQixFQUFFO0lBQ3pDLE9BQU8sRUFBRSxpQkFBd0I7Q0FDbEMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250504044646 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250504044646 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "usable_promotion" drop constraint if exists "usable_promotion_promotion_id_unique";`);
8
+ this.addSql(`create table if not exists "usable_promotion" ("id" text not null, "promotion_id" text not null, "enabled" boolean not null default false, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "usable_promotion_pkey" primary key ("id"));`);
9
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_usable_promotion_promotion_id_unique" ON "usable_promotion" (promotion_id) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_usable_promotion_deleted_at" ON "usable_promotion" (deleted_at) WHERE deleted_at IS NULL;`);
11
+ }
12
+ async down() {
13
+ this.addSql(`drop table if exists "usable_promotion" cascade;`);
14
+ }
15
+ }
16
+ exports.Migration20250504044646 = Migration20250504044646;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA1MDQwNDQ2NDYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy91c2FibGUtcHJvbW8vbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDUwNDA0NDY0Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsNEdBQTRHLENBQUMsQ0FBQztRQUMxSCxJQUFJLENBQUMsTUFBTSxDQUFDLHFVQUFxVSxDQUFDLENBQUM7UUFDblYsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2SUFBNkksQ0FBQyxDQUFDO1FBQzNKLElBQUksQ0FBQyxNQUFNLENBQUMsMkhBQTJILENBQUMsQ0FBQztJQUMzSSxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FFRjtBQWJELDBEQWFDIn0=
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const UsablePromotion = utils_1.model.define("usable_promotion", {
5
+ id: utils_1.model.id().primaryKey(),
6
+ promotion_id: utils_1.model.text().unique(),
7
+ enabled: utils_1.model.boolean().default(false),
8
+ });
9
+ exports.default = UsablePromotion;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhYmxlLXByb21vdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VzYWJsZS1wcm9tby9tb2RlbHMvdXNhYmxlLXByb21vdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFrRDtBQUVsRCxNQUFNLGVBQWUsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO0lBQ3ZELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFlBQVksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztDQUN4QyxDQUFDLENBQUM7QUFFSCxrQkFBZSxlQUFlLENBQUMifQ==
@@ -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
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const usable_promotion_1 = __importDefault(require("./models/usable-promotion"));
8
+ class UsablePromoModuleService extends (0, utils_1.MedusaService)({
9
+ UsablePromotion: usable_promotion_1.default,
10
+ }) {
11
+ }
12
+ exports.default = UsablePromoModuleService;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3VzYWJsZS1wcm9tby9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQTBEO0FBQzFELGlGQUF3RDtBQUV4RCxNQUFNLHdCQUF5QixTQUFRLElBQUEscUJBQWEsRUFBQztJQUNuRCxlQUFlLEVBQWYsMEJBQWU7Q0FDaEIsQ0FBQztDQUFHO0FBRUwsa0JBQWUsd0JBQXdCLENBQUMifQ==
@@ -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 utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBbUQ7QUFDbkQsd0RBQThDO0FBRWpDLFFBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUUxQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyx1QkFBZSxFQUFFO0lBQ3JDLE9BQU8sRUFBRSxpQkFBcUI7Q0FDL0IsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250424011114 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250424011114 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "wishlist_item" drop constraint if exists "wishlist_item_product_variant_id_wishlist_id_unique";`);
8
+ this.addSql(`create table if not exists "wishlist" ("customer_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 ("customer_id"));`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_deleted_at" ON "wishlist" (deleted_at) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`create table if not exists "wishlist_item" ("id" text not null, "product_variant_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"));`);
11
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_item_wishlist_id" ON "wishlist_item" (wishlist_id) WHERE deleted_at IS NULL;`);
12
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_wishlist_item_deleted_at" ON "wishlist_item" (deleted_at) WHERE deleted_at IS NULL;`);
13
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_wishlist_item_product_variant_id_wishlist_id_unique" ON "wishlist_item" (product_variant_id, wishlist_id) WHERE deleted_at IS NULL;`);
14
+ this.addSql(`alter table if exists "wishlist_item" add constraint "wishlist_item_wishlist_id_foreign" foreign key ("wishlist_id") references "wishlist" ("customer_id") on update cascade on delete cascade;`);
15
+ }
16
+ async down() {
17
+ this.addSql(`alter table if exists "wishlist_item" drop constraint if exists "wishlist_item_wishlist_id_foreign";`);
18
+ this.addSql(`drop table if exists "wishlist" cascade;`);
19
+ this.addSql(`drop table if exists "wishlist_item" cascade;`);
20
+ }
21
+ }
22
+ exports.Migration20250424011114 = Migration20250424011114;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjQwMTExMTQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUwNDI0MDExMTE0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBRTNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3SEFBd0gsQ0FBQyxDQUFDO1FBQ3RJLElBQUksQ0FBQyxNQUFNLENBQUMsK1BBQStQLENBQUMsQ0FBQztRQUM3USxJQUFJLENBQUMsTUFBTSxDQUFDLDJHQUEyRyxDQUFDLENBQUM7UUFFekgsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3VEFBd1QsQ0FBQyxDQUFDO1FBQ3RVLElBQUksQ0FBQyxNQUFNLENBQUMsdUhBQXVILENBQUMsQ0FBQztRQUNySSxJQUFJLENBQUMsTUFBTSxDQUFDLHFIQUFxSCxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLE1BQU0sQ0FBQyw0S0FBNEssQ0FBQyxDQUFDO1FBRTFMLElBQUksQ0FBQyxNQUFNLENBQUMsaU1BQWlNLENBQUMsQ0FBQztJQUNqTixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO1FBRXBILElBQUksQ0FBQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUVGO0FBdkJELDBEQXVCQyJ9
@@ -0,0 +1,23 @@
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("./wishlist"));
8
+ const WishlistItem = utils_1.model
9
+ .define("wishlist_item", {
10
+ id: utils_1.model.id().primaryKey(),
11
+ product_variant_id: utils_1.model.text(),
12
+ wishlist: utils_1.model.belongsTo(() => wishlist_1.default, {
13
+ mappedBy: "items",
14
+ }),
15
+ })
16
+ .indexes([
17
+ {
18
+ on: ["product_variant_id", "wishlist_id"],
19
+ unique: true,
20
+ },
21
+ ]);
22
+ exports.default = WishlistItem;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L21vZGVscy93aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQWtEO0FBQ2xELDBEQUFrQztBQUVsQyxNQUFNLFlBQVksR0FBRyxhQUFLO0tBQ3ZCLE1BQU0sQ0FBQyxlQUFlLEVBQUU7SUFDdkIsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0Isa0JBQWtCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUNoQyxRQUFRLEVBQUUsYUFBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBUSxFQUFFO1FBQ3hDLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUM7Q0FDSCxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLENBQUM7UUFDekMsTUFBTSxFQUFFLElBQUk7S0FDYjtDQUNGLENBQUMsQ0FBQztBQUVMLGtCQUFlLFlBQVksQ0FBQyJ9
@@ -0,0 +1,17 @@
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_item_1 = __importDefault(require("./wishlist-item"));
8
+ const Wishlist = utils_1.model
9
+ .define("wishlist", {
10
+ customer_id: utils_1.model.text().primaryKey(),
11
+ items: utils_1.model.hasMany(() => wishlist_item_1.default),
12
+ })
13
+ .cascades({
14
+ delete: ["items"],
15
+ });
16
+ exports.default = Wishlist;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9tb2RlbHMvd2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsb0VBQTJDO0FBRTNDLE1BQU0sUUFBUSxHQUFHLGFBQUs7S0FDbkIsTUFBTSxDQUFDLFVBQVUsRUFBRTtJQUNsQixXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUN0QyxLQUFLLEVBQUUsYUFBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBWSxDQUFDO0NBQ3pDLENBQUM7S0FDRCxRQUFRLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7Q0FDbEIsQ0FBQyxDQUFDO0FBQ0wsa0JBQWUsUUFBUSxDQUFDIn0=
@@ -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_item_1 = __importDefault(require("./models/wishlist-item"));
8
+ const wishlist_1 = __importDefault(require("./models/wishlist"));
9
+ class WishlistModuleService extends (0, utils_1.MedusaService)({
10
+ Wishlist: wishlist_1.default,
11
+ WishlistItem: wishlist_item_1.default,
12
+ }) {
13
+ }
14
+ exports.default = WishlistModuleService;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBMEQ7QUFDMUQsMkVBQWtEO0FBQ2xELGlFQUF5QztBQUV6QyxNQUFNLHFCQUFzQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUNoRCxRQUFRLEVBQVIsa0JBQVE7SUFDUixZQUFZLEVBQVosdUJBQVk7Q0FDYixDQUFDO0NBQUc7QUFFTCxrQkFBZSxxQkFBcUIsQ0FBQyJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = customerCreatedHandler;
5
+ const framework_1 = require("@medusajs/framework");
6
+ const create_membership_consent_1 = require("../workflows/membership-consent/create-membership-consent");
7
+ const create_membership_notification_1 = require("../workflows/membership-notification/create-membership-notification");
8
+ async function customerCreatedHandler({ event: { data }, }) {
9
+ const logger = framework_1.container.resolve("logger");
10
+ await create_membership_notification_1.createMembershipNotificationWorkflow.run({
11
+ input: {
12
+ customer_id: data.id,
13
+ },
14
+ });
15
+ logger.log(`Customer notification created for ${data.id}`);
16
+ await create_membership_consent_1.createMembershipConsentWorkflow.run({
17
+ input: {
18
+ customer_id: data.id,
19
+ },
20
+ });
21
+ logger.log(`Customer consents created for ${data.id}`);
22
+ }
23
+ exports.config = {
24
+ event: `customer.created`,
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9jdXN0b21lci1jcmVhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHlDQWlCQztBQXpCRCxtREFJNkI7QUFDN0IseUdBQTRHO0FBQzVHLHdIQUEySDtBQUU1RyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsRUFDbkQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQ2dCO0lBQy9CLE1BQU0sTUFBTSxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0scUVBQW9DLENBQUMsR0FBRyxDQUFDO1FBQzdDLEtBQUssRUFBRTtZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtTQUNyQjtLQUNGLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMscUNBQXFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNELE1BQU0sMkRBQStCLENBQUMsR0FBRyxDQUFDO1FBQ3hDLEtBQUssRUFBRTtZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtTQUNyQjtLQUNGLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixDQUFDIn0=
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = orderCompletedHandler;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const add_membership_points_1 = require("../workflows/membership/add-membership-points");
7
+ async function orderCompletedHandler({ event: { data }, container, }) {
8
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ const { data: [order], } = await query.graph({
10
+ entity: "order",
11
+ fields: ["id", "total", "customer.id"],
12
+ filters: {
13
+ id: data.id,
14
+ },
15
+ });
16
+ await add_membership_points_1.addMemberShipPointsWorkflow.run({
17
+ input: {
18
+ customer_id: order.customer.id,
19
+ spending: order.total,
20
+ source: `order: ${order.id}`,
21
+ },
22
+ });
23
+ }
24
+ exports.config = {
25
+ event: `order.completed`,
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxldGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLWNvbXBsZXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSx3Q0FzQkM7QUF6QkQscURBQXNFO0FBQ3RFLHlGQUE0RjtBQUU3RSxLQUFLLFVBQVUscUJBQXFCLENBQUMsRUFDbEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ2YsU0FBUyxHQUNzQjtJQUMvQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FDZCxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQ3RDLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxtREFBMkIsQ0FBQyxHQUFHLENBQUM7UUFDcEMsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QixRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDckIsTUFBTSxFQUFFLFVBQVUsS0FBSyxDQUFDLEVBQUUsRUFBRTtTQUM3QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLGlCQUFpQjtDQUN6QixDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = invalidateUsedPromotions;
5
+ 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
+ });
13
+ }
14
+ exports.config = {
15
+ event: `order.placed`,
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL29yZGVyLXBsYWNlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSwyQ0FTQztBQVhELCtHQUE0RztBQUU3RixLQUFLLFVBQVUsd0JBQXdCLENBQUMsRUFDckQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQ2dCO0lBQy9CLCtDQUErQztJQUMvQyxNQUFNLGlFQUErQixDQUFDLEdBQUcsQ0FBQztRQUN4QyxLQUFLLEVBQUU7WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDbEI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSxjQUFjO0NBQ3RCLENBQUMifQ==
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const init_membership_config_1 = require("../membership_config/init-membership-config");
5
+ const membership_1 = require("../../modules/membership");
6
+ const defaultConsentKeys = ["personal_info", "news_promotion", "survey"];
7
+ init_membership_config_1.initMembershipConfigWorkflow.hooks.membershipConfigInitialized(async ({ configs }, { container }) => {
8
+ const membershipModuleService = container.resolve(membership_1.MEMBERSHIP_MODULE);
9
+ const consentKeys = await membershipModuleService.createMembershipConsentKeys(defaultConsentKeys.map((key) => ({
10
+ name: key,
11
+ description: "",
12
+ })));
13
+ return new workflows_sdk_1.StepResponse(undefined, { consentKeys });
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcENvbmZpZ0luaXRpYWxpemVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9ob29rcy9tZW1iZXJzaGlwQ29uZmlnSW5pdGlhbGl6ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxRUFBaUU7QUFDakUsd0ZBQTJGO0FBRTNGLHlEQUE2RDtBQUU3RCxNQUFNLGtCQUFrQixHQUFHLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRXpFLHFEQUE0QixDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FDNUQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ25DLE1BQU0sdUJBQXVCLEdBQzNCLFNBQVMsQ0FBQyxPQUFPLENBQTBCLDhCQUFpQixDQUFDLENBQUM7SUFFaEUsTUFBTSxXQUFXLEdBQ2YsTUFBTSx1QkFBdUIsQ0FBQywyQkFBMkIsQ0FDdkQsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksRUFBRSxHQUFHO1FBQ1QsV0FBVyxFQUFFLEVBQUU7S0FDaEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUVKLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const usable_promo_1 = require("../../modules/usable-promo");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const framework_1 = require("@medusajs/framework");
8
+ core_flows_1.deletePromotionsWorkflow.hooks.promotionsDeleted(async ({ ids }) => {
9
+ const usablePromotionModuleService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
10
+ const usablePromotions = await usablePromotionModuleService.listUsablePromotions({
11
+ promotion_id: ids,
12
+ });
13
+ const usablePromotionIds = usablePromotions.map((p) => p.id);
14
+ const link = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.LINK);
15
+ await link.dismiss({
16
+ [utils_1.Modules.PROMOTION]: {
17
+ promotion_id: ids,
18
+ },
19
+ [usable_promo_1.USABLE_PROMO_MODULE]: {
20
+ usable_promotion_id: usablePromotionIds,
21
+ },
22
+ });
23
+ await usablePromotionModuleService.softDeleteUsablePromotions(usablePromotionIds);
24
+ return new workflows_sdk_1.StepResponse(undefined);
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uRGVsZXRlSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaG9va3MvcHJvbW90aW9uRGVsZXRlSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUFpRTtBQUlqRSw0REFBdUU7QUFFdkUsNkRBQWlFO0FBQ2pFLHFEQUErRTtBQUMvRSxtREFBZ0Q7QUFFaEQscUNBQXdCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDakUsTUFBTSw0QkFBNEIsR0FDaEMscUJBQVMsQ0FBQyxPQUFPLENBQTJCLGtDQUFtQixDQUFDLENBQUM7SUFFbkUsTUFBTSxnQkFBZ0IsR0FDcEIsTUFBTSw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RCxZQUFZLEVBQUUsR0FBRztLQUNsQixDQUFDLENBQUM7SUFDTCxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTdELE1BQU0sSUFBSSxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQixDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuQixZQUFZLEVBQUUsR0FBRztTQUNsQjtRQUNELENBQUMsa0NBQW1CLENBQUMsRUFBRTtZQUNyQixtQkFBbUIsRUFBRSxrQkFBa0I7U0FDeEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLDRCQUE0QixDQUFDLDBCQUEwQixDQUMzRCxrQkFBa0IsQ0FDbkIsQ0FBQztJQUVGLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMemberTiersWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const membership_1 = require("../../modules/membership");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ // Step to create member tiers with rollback on failure
8
+ const createMemberTiersStep = (0, workflows_sdk_1.createStep)("create-member-tiers", async (memberTiers, { container }) => {
9
+ const memberTierService = container.resolve(membership_1.MEMBERSHIP_MODULE);
10
+ const [basicTierWithZeroPoints] = await memberTierService.listMemberTiers({
11
+ min_points: 0,
12
+ }, {
13
+ take: 1,
14
+ });
15
+ if (!basicTierWithZeroPoints &&
16
+ memberTiers.every((t) => t.min_points !== 0)) {
17
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Must create a tier with min points of 0 first");
18
+ }
19
+ const created = await memberTierService.createMemberTiers(memberTiers);
20
+ return new workflows_sdk_1.StepResponse(created, created.map((t) => t.id));
21
+ }, async (ids, { container }) => {
22
+ if (!ids?.length)
23
+ return;
24
+ const memberTierService = container.resolve(membership_1.MEMBERSHIP_MODULE);
25
+ await memberTierService.deleteMemberTiers(ids);
26
+ });
27
+ // Workflow to create member tiers
28
+ exports.createMemberTiersWorkflow = (0, workflows_sdk_1.createWorkflow)("create-member-tiers", (input) => {
29
+ const created = createMemberTiersStep(input);
30
+ return new workflows_sdk_1.WorkflowResponse({ member_tiers: created });
31
+ });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1lbWJlci10aWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZW1iZXItdGllci9jcmVhdGUtbWVtYmVyLXRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLHlEQUE2RDtBQUU3RCxxREFBd0Q7QUFTeEQsdURBQXVEO0FBQ3ZELE1BQU0scUJBQXFCLEdBQUcsSUFBQSwwQkFBVSxFQUN0QyxxQkFBcUIsRUFDckIsS0FBSyxFQUFFLFdBQTZDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3JFLE1BQU0saUJBQWlCLEdBQ3JCLFNBQVMsQ0FBQyxPQUFPLENBQTBCLDhCQUFpQixDQUFDLENBQUM7SUFFaEUsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxlQUFlLENBQ3ZFO1FBQ0UsVUFBVSxFQUFFLENBQUM7S0FDZCxFQUNEO1FBQ0UsSUFBSSxFQUFFLENBQUM7S0FDUixDQUNGLENBQUM7SUFDRixJQUNFLENBQUMsdUJBQXVCO1FBQ3hCLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQzVDLENBQUM7UUFDRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QiwrQ0FBK0MsQ0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXZFLE9BQU8sSUFBSSw0QkFBWSxDQUNyQixPQUFPLEVBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUN6QixDQUFDO0FBQ0osQ0FBQyxFQUNELEtBQUssRUFBRSxHQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3JDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTTtRQUFFLE9BQU87SUFFekIsTUFBTSxpQkFBaUIsR0FDckIsU0FBUyxDQUFDLE9BQU8sQ0FBMEIsOEJBQWlCLENBQUMsQ0FBQztJQUNoRSxNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FDRixDQUFDO0FBRUYsa0NBQWtDO0FBQ3JCLFFBQUEseUJBQXlCLEdBQUcsSUFBQSw4QkFBYyxFQUNyRCxxQkFBcUIsRUFDckIsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7SUFDMUMsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsT0FBTyxJQUFJLGdDQUFnQixDQUFDLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteMemberTiersWorkflow = exports.deleteMemberTiersStep = void 0;
4
+ // src/workflows/delete-member-tiers.ts
5
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
+ const membership_1 = require("../../modules/membership");
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ exports.deleteMemberTiersStep = (0, workflows_sdk_1.createStep)("delete-member-tiers", async ({ ids }, { container }) => {
9
+ const memberTierService = container.resolve(membership_1.MEMBERSHIP_MODULE);
10
+ const [basicTierWithZeroPoints] = await memberTierService.listMemberTiers({ min_points: 0 }, { take: 1 });
11
+ const [nonZeroTiers] = await memberTierService.listMemberTiers({ min_points: { $gt: 0 } }, { take: 1 });
12
+ if (ids.includes(basicTierWithZeroPoints?.id) && nonZeroTiers) {
13
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Must delete other tiers first before deleting tier with min points of 0");
14
+ }
15
+ if (!ids.length) {
16
+ throw new Error("At least one member tier ID is required");
17
+ }
18
+ await memberTierService.deleteMemberTiers(ids);
19
+ return new workflows_sdk_1.StepResponse(ids, ids);
20
+ });
21
+ exports.deleteMemberTiersWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-member-tiers", (input) => {
22
+ const result = (0, exports.deleteMemberTiersStep)(input);
23
+ return new workflows_sdk_1.WorkflowResponse(result);
24
+ });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLW1lbWJlci10aWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZW1iZXItdGllci9kZWxldGUtbWVtYmVyLXRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXVDO0FBQ3ZDLHFFQUsyQztBQUMzQyx5REFBNkQ7QUFFN0QscURBQXdEO0FBTTNDLFFBQUEscUJBQXFCLEdBQUcsSUFBQSwwQkFBVSxFQUM3QyxxQkFBcUIsRUFDckIsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFrQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvRCxNQUFNLGlCQUFpQixHQUNyQixTQUFTLENBQUMsT0FBTyxDQUEwQiw4QkFBaUIsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMsZUFBZSxDQUN2RSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFDakIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQztJQUNGLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGVBQWUsQ0FDNUQsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFDMUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQztJQUVGLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix5RUFBeUUsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUvQyxPQUFPLElBQUksNEJBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLHlCQUF5QixHQUFHLElBQUEsOEJBQWMsRUFDckQscUJBQXFCLEVBQ3JCLENBQUMsS0FBcUMsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUEsNkJBQXFCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsT0FBTyxJQUFJLGdDQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMemberTiersWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const membership_1 = require("../../modules/membership");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ // Step to update member tiers with rollback on failure
8
+ const updateMemberTiersStep = (0, workflows_sdk_1.createStep)("update-member-tier", async (updateInput, { container }) => {
9
+ const { id, ...data } = updateInput;
10
+ const memberTierService = container.resolve(membership_1.MEMBERSHIP_MODULE);
11
+ const tier = await memberTierService.retrieveMemberTier(id);
12
+ if (tier.min_points === 0 && data.min_points !== 0) {
13
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Cannot update tier with min points of 0, rename instead");
14
+ }
15
+ const updated = await memberTierService.updateMemberTiers({
16
+ selector: {
17
+ id: updateInput.id,
18
+ },
19
+ data,
20
+ });
21
+ return new workflows_sdk_1.StepResponse(updated);
22
+ });
23
+ // Workflow to update member tiers
24
+ exports.updateMemberTiersWorkflow = (0, workflows_sdk_1.createWorkflow)("update-member-tier", (input) => {
25
+ const updated = updateMemberTiersStep(input);
26
+ return new workflows_sdk_1.WorkflowResponse({ member_tiers: updated });
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW1lbWJlci10aWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZW1iZXItdGllci91cGRhdGUtbWVtYmVyLXRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSzJDO0FBQzNDLHlEQUE2RDtBQUU3RCxxREFBd0Q7QUFVeEQsdURBQXVEO0FBQ3ZELE1BQU0scUJBQXFCLEdBQUcsSUFBQSwwQkFBVSxFQUN0QyxvQkFBb0IsRUFDcEIsS0FBSyxFQUFFLFdBQWtDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzFELE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDcEMsTUFBTSxpQkFBaUIsR0FDckIsU0FBUyxDQUFDLE9BQU8sQ0FBMEIsOEJBQWlCLENBQUMsQ0FBQztJQUVoRSxNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix5REFBeUQsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBQ3hELFFBQVEsRUFBRTtZQUNSLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtTQUNuQjtRQUNELElBQUk7S0FDTCxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQ0YsQ0FBQztBQUVGLGtDQUFrQztBQUNyQixRQUFBLHlCQUF5QixHQUFHLElBQUEsOEJBQWMsRUFDckQsb0JBQW9CLEVBQ3BCLENBQUMsS0FBNEIsRUFBRSxFQUFFO0lBQy9CLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FDRixDQUFDIn0=