@hartl-services/medusa-affiliate 0.3.0

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 (169) hide show
  1. package/.medusa/server/src/admin/index.js +3739 -0
  2. package/.medusa/server/src/admin/index.mjs +3738 -0
  3. package/.medusa/server/src/api/admin/affiliate-applications/[id]/approve/route.js +28 -0
  4. package/.medusa/server/src/api/admin/affiliate-applications/[id]/reject/route.js +19 -0
  5. package/.medusa/server/src/api/admin/affiliate-applications/route.js +23 -0
  6. package/.medusa/server/src/api/admin/affiliate-distribution-reports/query.js +171 -0
  7. package/.medusa/server/src/api/admin/affiliate-distribution-reports/route.js +13 -0
  8. package/.medusa/server/src/api/admin/affiliate-program-settings/route.js +27 -0
  9. package/.medusa/server/src/api/admin/affiliate-reports/[id]/route.js +45 -0
  10. package/.medusa/server/src/api/admin/affiliate-reports/route.js +27 -0
  11. package/.medusa/server/src/api/admin/affiliates/[id]/consignment-reminders/route.js +31 -0
  12. package/.medusa/server/src/api/admin/affiliates/[id]/consignment-transfers/route.js +41 -0
  13. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/reconcile/route.js +34 -0
  14. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/revoke/route.js +36 -0
  15. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/rotate/route.js +40 -0
  16. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/route.js +56 -0
  17. package/.medusa/server/src/api/admin/affiliates/[id]/distribution/route.js +45 -0
  18. package/.medusa/server/src/api/admin/affiliates/[id]/inactive/route.js +20 -0
  19. package/.medusa/server/src/api/admin/affiliates/[id]/route.js +50 -0
  20. package/.medusa/server/src/api/admin/affiliates/[id]/slugs/[slug_id]/route.js +19 -0
  21. package/.medusa/server/src/api/admin/affiliates/[id]/slugs/route.js +26 -0
  22. package/.medusa/server/src/api/admin/affiliates/route.js +43 -0
  23. package/.medusa/server/src/api/admin/consignment-report-response.js +36 -0
  24. package/.medusa/server/src/api/admin/consignment-reports/[id]/approve/route.js +25 -0
  25. package/.medusa/server/src/api/admin/consignment-reports/[id]/correct/route.js +18 -0
  26. package/.medusa/server/src/api/admin/consignment-reports/[id]/reject/route.js +15 -0
  27. package/.medusa/server/src/api/admin/consignment-reports/[id]/route.js +11 -0
  28. package/.medusa/server/src/api/admin/consignment-reports/route.js +27 -0
  29. package/.medusa/server/src/api/admin/customers/[id]/affiliate/route.js +50 -0
  30. package/.medusa/server/src/api/admin/orders/[id]/affiliate-attribution/route.js +30 -0
  31. package/.medusa/server/src/api/affiliate-coupon-http.js +152 -0
  32. package/.medusa/server/src/api/affiliate-referral-cookie.js +34 -0
  33. package/.medusa/server/src/api/affiliate-self-service-http.js +37 -0
  34. package/.medusa/server/src/api/middlewares.js +786 -0
  35. package/.medusa/server/src/api/store/affiliate-referrals/apply-coupon/route.js +47 -0
  36. package/.medusa/server/src/api/store/affiliate-referrals/capture/route.js +76 -0
  37. package/.medusa/server/src/api/store/affiliate-referrals/carts/[cart_id]/route.js +20 -0
  38. package/.medusa/server/src/api/store/affiliates/consignment-inventory/route.js +53 -0
  39. package/.medusa/server/src/api/store/affiliates/consignment-report-response.js +31 -0
  40. package/.medusa/server/src/api/store/affiliates/consignment-reports/[id]/submit/route.js +40 -0
  41. package/.medusa/server/src/api/store/affiliates/consignment-reports/route.js +43 -0
  42. package/.medusa/server/src/api/store/affiliates/coupon-labels/route.js +14 -0
  43. package/.medusa/server/src/api/store/affiliates/me/commissions/route.js +35 -0
  44. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/[coupon_id]/revoke/route.js +36 -0
  45. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/[coupon_id]/rotate/route.js +40 -0
  46. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/route.js +55 -0
  47. package/.medusa/server/src/api/store/affiliates/me/dashboard/route.js +15 -0
  48. package/.medusa/server/src/api/store/affiliates/me/route.js +85 -0
  49. package/.medusa/server/src/api/store/affiliates/me/slugs/[slug_id]/route.js +29 -0
  50. package/.medusa/server/src/api/store/affiliates/me/slugs/route.js +34 -0
  51. package/.medusa/server/src/api/store/affiliates/own-order-discount/route.js +22 -0
  52. package/.medusa/server/src/api/store/affiliates/own-order-promotion/route.js +30 -0
  53. package/.medusa/server/src/api/store/affiliates/register/route.js +27 -0
  54. package/.medusa/server/src/api/store/affiliates/resolve-referral/route.js +34 -0
  55. package/.medusa/server/src/api/validators.js +52 -0
  56. package/.medusa/server/src/api/wire-response.js +10 -0
  57. package/.medusa/server/src/integration/email-events.js +51 -0
  58. package/.medusa/server/src/integrations/inventory-transfer/batch-management-transfer-adapter.js +36 -0
  59. package/.medusa/server/src/integrations/inventory-transfer/native-inventory-transfer-adapter.js +30 -0
  60. package/.medusa/server/src/integrations/inventory-transfer/resolve-inventory-transfer-adapter.js +46 -0
  61. package/.medusa/server/src/integrations/inventory-transfer/types.js +3 -0
  62. package/.medusa/server/src/jobs/affiliate-attribution-expiry.js +20 -0
  63. package/.medusa/server/src/jobs/affiliate-consignment-report-reminders.js +15 -0
  64. package/.medusa/server/src/jobs/affiliate-promotion-freshness.js +24 -0
  65. package/.medusa/server/src/lib/query-string.js +15 -0
  66. package/.medusa/server/src/modules/affiliate/domain/affiliate-attribution-policy.js +81 -0
  67. package/.medusa/server/src/modules/affiliate/domain/affiliate-coupon-policy.js +61 -0
  68. package/.medusa/server/src/modules/affiliate/domain/commission-policy.js +33 -0
  69. package/.medusa/server/src/modules/affiliate/domain/consignment-reminder-rules.js +74 -0
  70. package/.medusa/server/src/modules/affiliate/domain/email-normalization.js +20 -0
  71. package/.medusa/server/src/modules/affiliate/domain/own-order-coupon-code.js +37 -0
  72. package/.medusa/server/src/modules/affiliate/domain/plugin-options.js +40 -0
  73. package/.medusa/server/src/modules/affiliate/index.js +13 -0
  74. package/.medusa/server/src/modules/affiliate/migrations/Migration20260827085154.js +423 -0
  75. package/.medusa/server/src/modules/affiliate/models/affiliate-application.js +38 -0
  76. package/.medusa/server/src/modules/affiliate/models/affiliate-cart-referral.js +65 -0
  77. package/.medusa/server/src/modules/affiliate/models/affiliate-code-redemption.js +41 -0
  78. package/.medusa/server/src/modules/affiliate/models/affiliate-coupon.js +55 -0
  79. package/.medusa/server/src/modules/affiliate/models/affiliate-distribution-settings.js +22 -0
  80. package/.medusa/server/src/modules/affiliate/models/affiliate-order-attribution.js +49 -0
  81. package/.medusa/server/src/modules/affiliate/models/affiliate-program-settings.js +28 -0
  82. package/.medusa/server/src/modules/affiliate/models/affiliate-referral-session.js +34 -0
  83. package/.medusa/server/src/modules/affiliate/models/affiliate-slug.js +27 -0
  84. package/.medusa/server/src/modules/affiliate/models/affiliate.js +49 -0
  85. package/.medusa/server/src/modules/affiliate/models/commission-entry.js +62 -0
  86. package/.medusa/server/src/modules/affiliate/models/consignment-report-line.js +21 -0
  87. package/.medusa/server/src/modules/affiliate/models/consignment-report.js +31 -0
  88. package/.medusa/server/src/modules/affiliate/models/consignment-transfer-line.js +16 -0
  89. package/.medusa/server/src/modules/affiliate/models/consignment-transfer.js +20 -0
  90. package/.medusa/server/src/modules/affiliate/models/customer-affiliate-assignment.js +58 -0
  91. package/.medusa/server/src/modules/affiliate/service.js +2321 -0
  92. package/.medusa/server/src/modules/affiliate/services/affiliate-application-manager.js +171 -0
  93. package/.medusa/server/src/modules/affiliate/services/affiliate-coupon-manager.js +441 -0
  94. package/.medusa/server/src/modules/affiliate/services/affiliate-discount.service.js +55 -0
  95. package/.medusa/server/src/modules/affiliate/services/affiliate-manager.js +242 -0
  96. package/.medusa/server/src/modules/affiliate/services/affiliate-partner-portal.service.js +138 -0
  97. package/.medusa/server/src/modules/affiliate/services/affiliate-report.service.js +436 -0
  98. package/.medusa/server/src/modules/affiliate/services/affiliate-slug-manager.js +163 -0
  99. package/.medusa/server/src/modules/affiliate/services/commission-ledger.service.js +729 -0
  100. package/.medusa/server/src/modules/affiliate/services/customer-affiliate-assignment-manager.js +350 -0
  101. package/.medusa/server/src/modules/affiliate/services/order-attribution-manager.js +1051 -0
  102. package/.medusa/server/src/modules/affiliate/services/referral-lifecycle-manager.js +1420 -0
  103. package/.medusa/server/src/modules/affiliate/services/utils.js +49 -0
  104. package/.medusa/server/src/modules/affiliate/types/internal.js +3 -0
  105. package/.medusa/server/src/paths/affiliate.js +7 -0
  106. package/.medusa/server/src/paths/index.js +18 -0
  107. package/.medusa/server/src/schemas/index.js +18 -0
  108. package/.medusa/server/src/schemas/store.js +24 -0
  109. package/.medusa/server/src/subscribers/affiliate-cart-updated.js +92 -0
  110. package/.medusa/server/src/subscribers/affiliate-order-canceled.js +70 -0
  111. package/.medusa/server/src/subscribers/affiliate-order-placed.js +63 -0
  112. package/.medusa/server/src/subscribers/affiliate-order-return-received.js +67 -0
  113. package/.medusa/server/src/subscribers/affiliate-product-eligibility-updated.js +87 -0
  114. package/.medusa/server/src/types/admin-api.js +3 -0
  115. package/.medusa/server/src/types/enums.js +53 -0
  116. package/.medusa/server/src/types/index.js +32 -0
  117. package/.medusa/server/src/types/public.js +3 -0
  118. package/.medusa/server/src/types/store-api.js +3 -0
  119. package/.medusa/server/src/utils/affiliate-cart-operation-lock.js +316 -0
  120. package/.medusa/server/src/utils/affiliate-promotion-mutation-authorization.js +49 -0
  121. package/.medusa/server/src/utils/cart-promotions.js +9 -0
  122. package/.medusa/server/src/utils/money.js +79 -0
  123. package/.medusa/server/src/utils/promotion-code-availability.js +34 -0
  124. package/.medusa/server/src/utils/registered-email-checkout.js +101 -0
  125. package/.medusa/server/src/utils/resolve-services.js +7 -0
  126. package/.medusa/server/src/utils/settle-cart-promotions.js +44 -0
  127. package/.medusa/server/src/workflows/affiliate/affiliate-coupon-cart.js +215 -0
  128. package/.medusa/server/src/workflows/affiliate/affiliate-coupon-command-authorization.js +20 -0
  129. package/.medusa/server/src/workflows/affiliate/apply-affiliate-coupon.js +174 -0
  130. package/.medusa/server/src/workflows/affiliate/apply-own-order-promotion.js +89 -0
  131. package/.medusa/server/src/workflows/affiliate/approve-consignment-report.js +186 -0
  132. package/.medusa/server/src/workflows/affiliate/correct-approved-consignment-report.js +263 -0
  133. package/.medusa/server/src/workflows/affiliate/create-affiliate-coupon.js +35 -0
  134. package/.medusa/server/src/workflows/affiliate/create-commission-correction-for-cancellation.js +21 -0
  135. package/.medusa/server/src/workflows/affiliate/create-commission-correction-for-refund.js +24 -0
  136. package/.medusa/server/src/workflows/affiliate/create-commission-for-order.js +17 -0
  137. package/.medusa/server/src/workflows/affiliate/deactivate-affiliate.js +89 -0
  138. package/.medusa/server/src/workflows/affiliate/enable-distribution.js +120 -0
  139. package/.medusa/server/src/workflows/affiliate/enrich-affiliate-report.js +75 -0
  140. package/.medusa/server/src/workflows/affiliate/ensure-affiliate-coupon-promotion.js +410 -0
  141. package/.medusa/server/src/workflows/affiliate/ensure-affiliate-own-order-promotion.js +240 -0
  142. package/.medusa/server/src/workflows/affiliate/ensure-default-affiliate-coupon.js +32 -0
  143. package/.medusa/server/src/workflows/affiliate/expire-affiliate-attribution-state.js +131 -0
  144. package/.medusa/server/src/workflows/affiliate/finalize-affiliate-order-attribution.js +82 -0
  145. package/.medusa/server/src/workflows/affiliate/payment-authorization.js +33 -0
  146. package/.medusa/server/src/workflows/affiliate/promotion-eligibility.js +179 -0
  147. package/.medusa/server/src/workflows/affiliate/reconcile-affiliate-cart-referral.js +219 -0
  148. package/.medusa/server/src/workflows/affiliate/reconcile-affiliate-coupon.js +388 -0
  149. package/.medusa/server/src/workflows/affiliate/refresh-affiliate-promotions.js +114 -0
  150. package/.medusa/server/src/workflows/affiliate/resolve-coupon-labels.js +40 -0
  151. package/.medusa/server/src/workflows/affiliate/revoke-affiliate-coupon.js +29 -0
  152. package/.medusa/server/src/workflows/affiliate/rotate-affiliate-coupon.js +36 -0
  153. package/.medusa/server/src/workflows/affiliate/run-consignment-report-reminders.js +58 -0
  154. package/.medusa/server/src/workflows/affiliate/submit-consignment-report.js +279 -0
  155. package/.medusa/server/src/workflows/affiliate/transfer-batch-aware-inventory.js +172 -0
  156. package/.medusa/server/src/workflows/affiliate/transfer-consignment-stock.js +106 -0
  157. package/.medusa/server/src/workflows/affiliate/update-affiliate-coupon-discounts.js +129 -0
  158. package/.medusa/server/src/workflows/affiliate/utils.js +118 -0
  159. package/.medusa/server/src/workflows/hooks/complete-cart-affiliate-attribution.js +57 -0
  160. package/.medusa/server/src/workflows/hooks/complete-cart-order-created-composition.js +111 -0
  161. package/.medusa/server/src/workflows/hooks/complete-cart-own-order-discount.js +75 -0
  162. package/.medusa/server/src/workflows/hooks/enforce-unique-promotion-codes.js +33 -0
  163. package/.medusa/server/src/workflows/hooks/validate-affiliate-customer-code.js +239 -0
  164. package/.medusa/server/src/workflows/hooks/validate-complete-cart-affiliate-referral.js +137 -0
  165. package/LICENSE +21 -0
  166. package/README.md +799 -0
  167. package/dist/integration/email-events.d.ts +20 -0
  168. package/dist/integration/email-events.js +50 -0
  169. package/package.json +84 -0
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.respondToAffiliateCouponCommandError = exports.requireAdminCouponAffiliate = exports.requireStoreCouponAffiliate = exports.toAdminAffiliateCouponCode = exports.toStoreAffiliateCouponCode = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const affiliate_coupon_policy_1 = require("../modules/affiliate/domain/affiliate-coupon-policy");
6
+ const affiliate_self_service_http_1 = require("./affiliate-self-service-http");
7
+ const requiredWireDate = (value, field) => {
8
+ if (value == null) {
9
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Affiliate coupon ${field} is missing.`);
10
+ }
11
+ return value instanceof Date ? value.toISOString() : value;
12
+ };
13
+ const nullableWireDate = (value) => value instanceof Date ? value.toISOString() : value;
14
+ const toStoreAffiliateCouponCode = (coupon, affiliate) => ({
15
+ id: coupon.id,
16
+ code: coupon.code,
17
+ status: (0, affiliate_coupon_policy_1.getAffiliateCouponWireStatus)(coupon, affiliate.status),
18
+ origin: coupon.origin,
19
+ created_at: requiredWireDate(coupon.created_at, "created_at"),
20
+ revoked_at: nullableWireDate(coupon.revoked_at),
21
+ });
22
+ exports.toStoreAffiliateCouponCode = toStoreAffiliateCouponCode;
23
+ const toAdminAffiliateCouponCode = (coupon, affiliate) => ({
24
+ ...(0, exports.toStoreAffiliateCouponCode)(coupon, affiliate),
25
+ affiliate_id: coupon.affiliate_id,
26
+ lifecycle_status: coupon.lifecycle_status,
27
+ provisioning_status: coupon.provisioning_status,
28
+ promotion_id: coupon.promotion_id,
29
+ promotion_setup_error: coupon.promotion_setup_error,
30
+ replaces_coupon_id: coupon.replaces_coupon_id,
31
+ creation_idempotency_key: coupon.creation_idempotency_key,
32
+ created_by_type: coupon.created_by_type,
33
+ created_by_id: coupon.created_by_id,
34
+ revoked_by_type: coupon.revoked_by_type,
35
+ revoked_by_id: coupon.revoked_by_id,
36
+ });
37
+ exports.toAdminAffiliateCouponCode = toAdminAffiliateCouponCode;
38
+ const requireStoreCouponAffiliate = async (affiliateService, customerId, requireActive) => {
39
+ await (0, affiliate_self_service_http_1.requireAffiliateSelfService)(affiliateService);
40
+ const [affiliates] = await affiliateService.listAffiliateRecords({
41
+ customer_id: customerId,
42
+ limit: 1,
43
+ offset: 0,
44
+ });
45
+ const affiliate = affiliates[0];
46
+ if (!affiliate ||
47
+ (affiliate.status !== "active" && affiliate.status !== "inactive")) {
48
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "affiliate_not_found");
49
+ }
50
+ if (requireActive && affiliate.status !== "active") {
51
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "affiliate_not_active");
52
+ }
53
+ return affiliate;
54
+ };
55
+ exports.requireStoreCouponAffiliate = requireStoreCouponAffiliate;
56
+ const requireAdminCouponAffiliate = async (affiliateService, affiliateId) => await affiliateService.retrieveAffiliateRecord(affiliateId);
57
+ exports.requireAdminCouponAffiliate = requireAdminCouponAffiliate;
58
+ const sendCouponError = (res, status, code) => {
59
+ const errorResponse = res;
60
+ errorResponse.status(status).json({
61
+ type: status === 409 ? "conflict" : "api_error",
62
+ code,
63
+ message: code,
64
+ });
65
+ };
66
+ const postgresConstraint = (error) => {
67
+ if (typeof error !== "object" || error === null)
68
+ return null;
69
+ const constraint = error.constraint;
70
+ return typeof constraint === "string" ? constraint : null;
71
+ };
72
+ const conflictCode = (error) => {
73
+ const message = typeof error === "object" &&
74
+ error !== null &&
75
+ typeof error.message === "string"
76
+ ? error.message
77
+ : "";
78
+ if (message === "coupon_limit_reached") {
79
+ return message;
80
+ }
81
+ if (message === "coupon_code_conflict" ||
82
+ message === "Affiliate coupon code is unavailable." ||
83
+ message === "No unique affiliate coupon code could be generated." ||
84
+ postgresConstraint(error) === "IDX_affiliate_coupon_code") {
85
+ return "coupon_code_conflict";
86
+ }
87
+ return null;
88
+ };
89
+ const isCommandIntentConflict = (error) => {
90
+ if (typeof error !== "object" || error === null)
91
+ return false;
92
+ const { message, type } = error;
93
+ if (type !== utils_1.MedusaError.Types.CONFLICT || typeof message !== "string") {
94
+ return false;
95
+ }
96
+ return (message.includes("idempotency key") ||
97
+ message.includes("rotation successor") ||
98
+ message.includes("rotation predecessor") ||
99
+ message.includes("active rotation successor") ||
100
+ message.includes("promotion binding cannot be replaced") ||
101
+ message.startsWith("Only an enabled, ready affiliate coupon"));
102
+ };
103
+ const findCommandCoupon = async (affiliateService, input) => {
104
+ if (input.coupon_id) {
105
+ try {
106
+ return await affiliateService.retrieveAffiliateCouponRecord(input.coupon_id, input.affiliate_id);
107
+ }
108
+ catch (error) {
109
+ if (error instanceof utils_1.MedusaError &&
110
+ error.type === utils_1.MedusaError.Types.NOT_FOUND) {
111
+ return null;
112
+ }
113
+ throw error;
114
+ }
115
+ }
116
+ if (!input.idempotency_key)
117
+ return null;
118
+ return await affiliateService.findAffiliateCouponByCreationIdempotencyKey(input.idempotency_key, input.affiliate_id);
119
+ };
120
+ /**
121
+ * Handles only recognized coupon command outcomes. Programming and unrelated
122
+ * infrastructure errors continue through Medusa's normal error handler.
123
+ */
124
+ const respondToAffiliateCouponCommandError = async (res, error, affiliateService, input) => {
125
+ const semanticConflict = conflictCode(error);
126
+ if (semanticConflict) {
127
+ sendCouponError(res, 409, semanticConflict);
128
+ return true;
129
+ }
130
+ if (isCommandIntentConflict(error)) {
131
+ return false;
132
+ }
133
+ const coupon = await findCommandCoupon(affiliateService, input);
134
+ const relatedCoupon = input.related_coupon_id
135
+ ? await findCommandCoupon(affiliateService, {
136
+ affiliate_id: input.affiliate_id,
137
+ coupon_id: input.related_coupon_id,
138
+ })
139
+ : null;
140
+ const failedCoupons = [coupon, relatedCoupon].filter((candidate) => candidate?.provisioning_status === "failed");
141
+ if (failedCoupons.some(({ lifecycle_status }) => lifecycle_status === "revoked")) {
142
+ sendCouponError(res, 503, "coupon_cleanup_pending");
143
+ return true;
144
+ }
145
+ if (failedCoupons.length) {
146
+ sendCouponError(res, 503, "coupon_provisioning_failed");
147
+ return true;
148
+ }
149
+ return false;
150
+ };
151
+ exports.respondToAffiliateCouponCommandError = respondToAffiliateCouponCommandError;
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaWxpYXRlLWNvdXBvbi1odHRwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9hZmZpbGlhdGUtY291cG9uLWh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBSXZELGlHQUFrRztBQU1sRywrRUFBMkU7QUFFM0UsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFnQyxFQUNoQyxLQUFhLEVBQ0wsRUFBRTtJQUNWLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsb0JBQW9CLEtBQUssY0FBYyxDQUN4QyxDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDNUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTJCLEVBQWlCLEVBQUUsQ0FDdEUsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFOUMsTUFBTSwwQkFBMEIsR0FBRyxDQUN4QyxNQUEwQixFQUMxQixTQUF1QyxFQUNiLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtJQUNiLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtJQUNqQixNQUFNLEVBQUUsSUFBQSxzREFBNEIsRUFBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM5RCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07SUFDckIsVUFBVSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO0lBQzdELFVBQVUsRUFBRSxn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
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildClearedAffiliateReferralCookie = exports.buildAffiliateReferralCookie = exports.readAffiliateReferralCookie = void 0;
4
+ const cookieName = "affiliate_referral";
5
+ const rawTokenPattern = /^[A-Za-z0-9_-]{43}$/;
6
+ const readAffiliateReferralCookie = (cookieHeader) => {
7
+ if (!cookieHeader) {
8
+ return null;
9
+ }
10
+ for (const part of cookieHeader.split(";")) {
11
+ const trimmed = part.trim();
12
+ if (!trimmed.startsWith(`${cookieName}=`)) {
13
+ continue;
14
+ }
15
+ const token = trimmed.slice(cookieName.length + 1);
16
+ return rawTokenPattern.test(token) ? token : null;
17
+ }
18
+ return null;
19
+ };
20
+ exports.readAffiliateReferralCookie = readAffiliateReferralCookie;
21
+ const buildAffiliateReferralCookie = (input) => {
22
+ if (!rawTokenPattern.test(input.token)) {
23
+ throw new Error("Affiliate referral token must be a 32-byte base64url value.");
24
+ }
25
+ if (!Number.isSafeInteger(input.maxAgeSeconds) || input.maxAgeSeconds < 0) {
26
+ throw new Error("Affiliate referral cookie Max-Age must be a non-negative integer.");
27
+ }
28
+ return serializeAffiliateReferralCookie(input.token, input.maxAgeSeconds, input.secure);
29
+ };
30
+ exports.buildAffiliateReferralCookie = buildAffiliateReferralCookie;
31
+ const buildClearedAffiliateReferralCookie = (input) => serializeAffiliateReferralCookie("", 0, input.secure);
32
+ exports.buildClearedAffiliateReferralCookie = buildClearedAffiliateReferralCookie;
33
+ const serializeAffiliateReferralCookie = (value, maxAgeSeconds, secure) => `${cookieName}=${value}; Max-Age=${maxAgeSeconds}; Path=/; HttpOnly; SameSite=Lax${secure ? "; Secure" : ""}`;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaWxpYXRlLXJlZmVycmFsLWNvb2tpZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvYWZmaWxpYXRlLXJlZmVycmFsLWNvb2tpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQTtBQUN2QyxNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQTtBQUV0QyxNQUFNLDJCQUEyQixHQUFHLENBQ3pDLFlBQWdDLEVBQ2pCLEVBQUU7SUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELEtBQUssTUFBTSxJQUFJLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxTQUFRO1FBQ1YsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNsRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ25ELENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQWpCWSxRQUFBLDJCQUEyQiwrQkFpQnZDO0FBRU0sTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEtBSTVDLEVBQVUsRUFBRTtJQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUUsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLGdDQUFnQyxDQUNyQyxLQUFLLENBQUMsS0FBSyxFQUNYLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxNQUFNLENBQ2IsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXJCWSxRQUFBLDRCQUE0QixnQ0FxQnhDO0FBRU0sTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLEtBRW5ELEVBQVUsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBRnRELFFBQUEsbUNBQW1DLHVDQUVtQjtBQUVuRSxNQUFNLGdDQUFnQyxHQUFHLENBQ3ZDLEtBQWEsRUFDYixhQUFxQixFQUNyQixNQUFlLEVBQ1AsRUFBRSxDQUNWLEdBQUcsVUFBVSxJQUFJLEtBQUssYUFBYSxhQUFhLG1DQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDeEIsRUFBRSxDQUFBIn0=
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireAffiliateReferralBaseUrl = exports.requireAffiliateSelfService = exports.getAffiliateSelfServiceStatus = exports.AFFILIATE_SELF_SERVICE_DISABLED_MESSAGE = exports.AFFILIATE_SELF_SERVICE_DISABLED_CODE = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ exports.AFFILIATE_SELF_SERVICE_DISABLED_CODE = "partner_portal_disabled";
6
+ exports.AFFILIATE_SELF_SERVICE_DISABLED_MESSAGE = "Der Affiliate-Self-Service ist in der Shop-Konfiguration deaktiviert. Deshalb stehen die Partnerportal-Funktionen nicht zur Verfügung (affiliate.portal.enabled: false).";
7
+ const disabledError = () => new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, exports.AFFILIATE_SELF_SERVICE_DISABLED_MESSAGE, exports.AFFILIATE_SELF_SERVICE_DISABLED_CODE);
8
+ const getAffiliateSelfServiceStatus = async (affiliateService) => {
9
+ const options = await affiliateService.getPluginOptions();
10
+ return options.portal.enabled
11
+ ? { enabled: true }
12
+ : {
13
+ enabled: false,
14
+ code: exports.AFFILIATE_SELF_SERVICE_DISABLED_CODE,
15
+ message: exports.AFFILIATE_SELF_SERVICE_DISABLED_MESSAGE,
16
+ };
17
+ };
18
+ exports.getAffiliateSelfServiceStatus = getAffiliateSelfServiceStatus;
19
+ const requireAffiliateSelfService = async (affiliateService) => {
20
+ const options = await affiliateService.getPluginOptions();
21
+ if (!options.portal.enabled) {
22
+ throw disabledError();
23
+ }
24
+ };
25
+ exports.requireAffiliateSelfService = requireAffiliateSelfService;
26
+ const requireAffiliateReferralBaseUrl = async (affiliateService) => {
27
+ const options = await affiliateService.getPluginOptions();
28
+ if (!options.portal.enabled) {
29
+ throw disabledError();
30
+ }
31
+ if (!options.portal.referral_base_url) {
32
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Affiliate self-service is enabled without a referral base URL.");
33
+ }
34
+ return options.portal.referral_base_url;
35
+ };
36
+ exports.requireAffiliateReferralBaseUrl = requireAffiliateReferralBaseUrl;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaWxpYXRlLXNlbGYtc2VydmljZS1odHRwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9hZmZpbGlhdGUtc2VsZi1zZXJ2aWNlLWh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXVEO0FBSzFDLFFBQUEsb0NBQW9DLEdBQy9DLHlCQUFrQyxDQUFBO0FBQ3ZCLFFBQUEsdUNBQXVDLEdBQ2xELDBLQUEwSyxDQUFBO0FBRTVLLE1BQU0sYUFBYSxHQUFHLEdBQWdCLEVBQUUsQ0FDdEMsSUFBSSxtQkFBVyxDQUNiLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDN0IsK0NBQXVDLEVBQ3ZDLDRDQUFvQyxDQUNyQyxDQUFBO0FBRUksTUFBTSw2QkFBNkIsR0FBRyxLQUFLLEVBQ2hELGdCQUF3QyxFQUNILEVBQUU7SUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQ3pELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQzNCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDbkIsQ0FBQyxDQUFDO1lBQ0UsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsNENBQW9DO1lBQzFDLE9BQU8sRUFBRSwrQ0FBdUM7U0FDakQsQ0FBQTtBQUNQLENBQUMsQ0FBQTtBQVhZLFFBQUEsNkJBQTZCLGlDQVd6QztBQUVNLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxFQUM5QyxnQkFBd0MsRUFDekIsRUFBRTtJQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBUFksUUFBQSwyQkFBMkIsK0JBT3ZDO0FBRU0sTUFBTSwrQkFBK0IsR0FBRyxLQUFLLEVBQ2xELGdCQUF3QyxFQUN2QixFQUFFO0lBQ25CLE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtJQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLGFBQWEsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsZ0VBQWdFLENBQ2pFLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0FBQ3pDLENBQUMsQ0FBQTtBQWRZLFFBQUEsK0JBQStCLG1DQWMzQyJ9