@easypayment/medusa-paypal 0.6.3 → 0.6.4

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 (68) hide show
  1. package/.medusa/server/src/admin/index.js +12 -15
  2. package/.medusa/server/src/admin/index.mjs +12 -15
  3. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.d.ts.map +1 -1
  4. package/.medusa/server/src/api/store/payment-collections/[id]/payment-sessions/route.js.map +1 -1
  5. package/.medusa/server/src/api/store/paypal/capture-order/route.d.ts.map +1 -1
  6. package/.medusa/server/src/api/store/paypal/capture-order/route.js +1 -11
  7. package/.medusa/server/src/api/store/paypal/capture-order/route.js.map +1 -1
  8. package/.medusa/server/src/api/store/paypal/create-order/route.d.ts.map +1 -1
  9. package/.medusa/server/src/api/store/paypal/create-order/route.js +0 -9
  10. package/.medusa/server/src/api/store/paypal/create-order/route.js.map +1 -1
  11. package/.medusa/server/src/api/store/paypal/webhook/route.d.ts.map +1 -1
  12. package/.medusa/server/src/api/store/paypal/webhook/route.js +162 -115
  13. package/.medusa/server/src/api/store/paypal/webhook/route.js.map +1 -1
  14. package/.medusa/server/src/api/store/paypal-complete/route.d.ts.map +1 -1
  15. package/.medusa/server/src/api/store/paypal-complete/route.js +0 -6
  16. package/.medusa/server/src/api/store/paypal-complete/route.js.map +1 -1
  17. package/.medusa/server/src/jobs/paypal-webhook-retry.d.ts.map +1 -1
  18. package/.medusa/server/src/jobs/paypal-webhook-retry.js +97 -43
  19. package/.medusa/server/src/jobs/paypal-webhook-retry.js.map +1 -1
  20. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.d.ts +6 -0
  21. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.d.ts.map +1 -0
  22. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.js +20 -0
  23. package/.medusa/server/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.js.map +1 -0
  24. package/.medusa/server/src/modules/paypal/payment-provider/service.d.ts.map +1 -1
  25. package/.medusa/server/src/modules/paypal/payment-provider/service.js +0 -42
  26. package/.medusa/server/src/modules/paypal/payment-provider/service.js.map +1 -1
  27. package/.medusa/server/src/modules/paypal/service.d.ts +0 -8
  28. package/.medusa/server/src/modules/paypal/service.d.ts.map +1 -1
  29. package/.medusa/server/src/modules/paypal/service.js +6 -114
  30. package/.medusa/server/src/modules/paypal/service.js.map +1 -1
  31. package/.medusa/server/src/modules/paypal/types/config.d.ts +0 -2
  32. package/.medusa/server/src/modules/paypal/types/config.d.ts.map +1 -1
  33. package/.medusa/server/src/modules/paypal/types/config.js +0 -9
  34. package/.medusa/server/src/modules/paypal/types/config.js.map +1 -1
  35. package/.medusa/server/src/modules/paypal/webhook-processor.d.ts +21 -17
  36. package/.medusa/server/src/modules/paypal/webhook-processor.d.ts.map +1 -1
  37. package/.medusa/server/src/modules/paypal/webhook-processor.js +195 -99
  38. package/.medusa/server/src/modules/paypal/webhook-processor.js.map +1 -1
  39. package/README.md +156 -152
  40. package/package.json +1 -1
  41. package/src/admin/routes/settings/paypal/_components/Tabs.tsx +48 -52
  42. package/src/admin/routes/settings/paypal/paypal-settings/page.tsx +0 -23
  43. package/src/api/store/payment-collections/[id]/payment-sessions/route.ts +56 -65
  44. package/src/api/store/paypal/capture-order/route.ts +266 -276
  45. package/src/api/store/paypal/create-order/route.ts +0 -9
  46. package/src/api/store/paypal/webhook/route.ts +325 -246
  47. package/src/api/store/paypal-complete/route.ts +69 -75
  48. package/src/jobs/paypal-webhook-retry.ts +149 -85
  49. package/src/modules/paypal/migrations/20270201000000_add_webhook_dead_letter.ts +17 -0
  50. package/src/modules/paypal/payment-provider/service.ts +1079 -1121
  51. package/src/modules/paypal/service.ts +6 -127
  52. package/src/modules/paypal/types/config.ts +33 -47
  53. package/src/modules/paypal/webhook-processor.ts +377 -215
  54. package/.medusa/server/src/api/admin/paypal/rotate-credentials/route.d.ts +0 -3
  55. package/.medusa/server/src/api/admin/paypal/rotate-credentials/route.d.ts.map +0 -1
  56. package/.medusa/server/src/api/admin/paypal/rotate-credentials/route.js +0 -9
  57. package/.medusa/server/src/api/admin/paypal/rotate-credentials/route.js.map +0 -1
  58. package/.medusa/server/src/jobs/paypal-reconcile.d.ts +0 -7
  59. package/.medusa/server/src/jobs/paypal-reconcile.d.ts.map +0 -1
  60. package/.medusa/server/src/jobs/paypal-reconcile.js +0 -109
  61. package/.medusa/server/src/jobs/paypal-reconcile.js.map +0 -1
  62. package/.medusa/server/src/modules/paypal/utils/crypto.d.ts +0 -4
  63. package/.medusa/server/src/modules/paypal/utils/crypto.d.ts.map +0 -1
  64. package/.medusa/server/src/modules/paypal/utils/crypto.js +0 -47
  65. package/.medusa/server/src/modules/paypal/utils/crypto.js.map +0 -1
  66. package/src/api/admin/paypal/rotate-credentials/route.ts +0 -8
  67. package/src/jobs/paypal-reconcile.ts +0 -113
  68. package/src/modules/paypal/utils/crypto.ts +0 -51
@@ -1,42 +1,84 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REQUIRED_EVENT_PREFIXES = exports.EVENT_STATUS_MAP = void 0;
3
+ exports.MAX_WEBHOOK_ATTEMPTS = exports.SUPPORTED_EVENT_PREFIXES = exports.EVENT_STATUS_MAP = void 0;
4
+ exports.isTransitionAllowed = isTransitionAllowed;
4
5
  exports.isAllowedEventType = isAllowedEventType;
6
+ exports.isRetryableError = isRetryableError;
7
+ exports.computeNextRetryAt = computeNextRetryAt;
5
8
  exports.normalizeResource = normalizeResource;
6
9
  exports.normalizeEventVersion = normalizeEventVersion;
7
10
  exports.extractIdentifiers = extractIdentifiers;
8
- exports.computeNextRetryAt = computeNextRetryAt;
9
11
  exports.processPayPalWebhookEvent = processPayPalWebhookEvent;
10
12
  const utils_1 = require("@medusajs/framework/utils");
11
13
  const provider_ids_1 = require("./utils/provider-ids");
12
- const index_1 = require("./index");
14
+ // ─── Event → Medusa status mapping ───────────────────────────────────────────
13
15
  exports.EVENT_STATUS_MAP = {
14
16
  "CHECKOUT.ORDER.APPROVED": "authorized",
15
17
  "CHECKOUT.ORDER.CANCELLED": "canceled",
16
18
  "PAYMENT.CAPTURE.COMPLETED": "captured",
17
19
  "PAYMENT.CAPTURE.DENIED": "error",
20
+ "PAYMENT.CAPTURE.PENDING": "authorized",
18
21
  "PAYMENT.CAPTURE.REFUNDED": "canceled",
19
22
  "PAYMENT.CAPTURE.REVERSED": "canceled",
20
23
  "PAYMENT.AUTHORIZATION.CREATED": "authorized",
21
24
  "PAYMENT.AUTHORIZATION.VOIDED": "canceled",
22
25
  "PAYMENT.AUTHORIZATION.DENIED": "error",
26
+ "PAYMENT.AUTHORIZATION.EXPIRED": "canceled",
23
27
  "PAYMENT.REFUND.COMPLETED": "canceled",
24
28
  "PAYMENT.REFUND.DENIED": "error",
25
29
  };
26
- exports.REQUIRED_EVENT_PREFIXES = [
30
+ // ─── Status transition guard ──────────────────────────────────────────────────
31
+ // Only allow forward/meaningful moves.
32
+ // Prevents a late-arriving webhook from downgrading an already-captured payment.
33
+ const ALLOWED_TRANSITIONS = {
34
+ pending: new Set(["authorized", "captured", "canceled", "error"]),
35
+ authorized: new Set(["captured", "canceled", "error"]),
36
+ captured: new Set(["canceled"]),
37
+ canceled: new Set([]),
38
+ error: new Set(["authorized", "captured", "canceled"]),
39
+ };
40
+ function isTransitionAllowed(from, to) {
41
+ return ALLOWED_TRANSITIONS[from]?.has(to) ?? false;
42
+ }
43
+ // ─── Event type helpers ───────────────────────────────────────────────────────
44
+ exports.SUPPORTED_EVENT_PREFIXES = [
27
45
  "PAYMENT.CAPTURE.",
28
46
  "CHECKOUT.ORDER.",
29
47
  "PAYMENT.AUTHORIZATION.",
30
48
  "PAYMENT.REFUND.",
31
49
  ];
32
50
  function isAllowedEventType(eventType) {
33
- return exports.REQUIRED_EVENT_PREFIXES.some((prefix) => eventType.startsWith(prefix));
51
+ return exports.SUPPORTED_EVENT_PREFIXES.some((prefix) => eventType.startsWith(prefix));
52
+ }
53
+ // ─── Error classification ─────────────────────────────────────────────────────
54
+ // Non-retryable: event is permanently unprocessable (wrong cart, missing session).
55
+ // Retryable: transient failure (DB down, network error) — worth trying again.
56
+ const NON_RETRYABLE_PATTERNS = [
57
+ "payment collection not found",
58
+ "no paypal session",
59
+ "session not found",
60
+ "cart not found",
61
+ "no payment collection",
62
+ ];
63
+ function isRetryableError(error) {
64
+ const message = String(error instanceof Error ? error.message : error ?? "").toLowerCase();
65
+ return !NON_RETRYABLE_PATTERNS.some((p) => message.includes(p));
34
66
  }
67
+ // ─── Retry schedule ───────────────────────────────────────────────────────────
68
+ const RETRY_SCHEDULE_MINUTES = [2, 10, 30, 60, 120];
69
+ exports.MAX_WEBHOOK_ATTEMPTS = RETRY_SCHEDULE_MINUTES.length + 1;
70
+ function computeNextRetryAt(attemptCount) {
71
+ const idx = attemptCount - 1;
72
+ const delayMinutes = RETRY_SCHEDULE_MINUTES[idx];
73
+ if (delayMinutes === undefined || attemptCount <= 0)
74
+ return null;
75
+ return new Date(Date.now() + delayMinutes * 60 * 1000);
76
+ }
77
+ // ─── Payload normalisation ────────────────────────────────────────────────────
35
78
  function normalizeResource(payload) {
36
79
  const resource = payload?.resource;
37
- if (!resource) {
80
+ if (!resource)
38
81
  return {};
39
- }
40
82
  if (typeof resource === "string") {
41
83
  try {
42
84
  return JSON.parse(resource);
@@ -53,130 +95,184 @@ function normalizeEventVersion(payload) {
53
95
  payload?.resource?.resource_version ??
54
96
  payload?.resource?.version ??
55
97
  null;
56
- if (!raw) {
98
+ if (!raw)
57
99
  return null;
58
- }
59
100
  return String(raw).trim().replace(/^v/i, "");
60
101
  }
61
- function extractIdentifiers(resource) {
62
- const relatedIds = resource?.supplementary_data?.related_ids || {};
63
- const orderId = relatedIds?.order_id ||
64
- resource?.purchase_units?.[0]?.custom_id ||
65
- resource?.custom_id ||
66
- resource?.purchase_units?.[0]?.reference_id;
67
- const captureId = relatedIds?.capture_id ||
68
- resource?.id ||
69
- resource?.purchase_units?.[0]?.payments?.captures?.[0]?.id;
70
- const refundId = relatedIds?.refund_id ||
71
- resource?.id ||
72
- resource?.purchase_units?.[0]?.payments?.refunds?.[0]?.id;
73
- const cartId = resource?.custom_id ||
74
- resource?.purchase_units?.[0]?.custom_id ||
75
- resource?.purchase_units?.[0]?.reference_id;
76
- return { orderId, captureId, refundId, cartId, resource };
102
+ function extractIdentifiers(resource, eventType) {
103
+ const related = resource?.supplementary_data?.related_ids || {};
104
+ const isOrder = eventType.startsWith("CHECKOUT.ORDER.");
105
+ const isCapture = eventType.startsWith("PAYMENT.CAPTURE.");
106
+ const isAuthorization = eventType.startsWith("PAYMENT.AUTHORIZATION.");
107
+ const isRefund = eventType.startsWith("PAYMENT.REFUND.");
108
+ let orderId = null;
109
+ let captureId = null;
110
+ let refundId = null;
111
+ let cartId = null;
112
+ if (isOrder) {
113
+ orderId = String(resource?.id || "").trim() || null;
114
+ cartId =
115
+ String(resource?.purchase_units?.[0]?.custom_id || resource?.custom_id || "").trim() || null;
116
+ captureId =
117
+ String(resource?.purchase_units?.[0]?.payments?.captures?.[0]?.id || "").trim() || null;
118
+ }
119
+ else if (isCapture) {
120
+ captureId = String(resource?.id || "").trim() || null;
121
+ orderId = String(related?.order_id || "").trim() || null;
122
+ cartId = String(resource?.custom_id || "").trim() || null;
123
+ }
124
+ else if (isAuthorization) {
125
+ orderId = String(related?.order_id || "").trim() || null;
126
+ cartId = String(resource?.custom_id || "").trim() || null;
127
+ }
128
+ else if (isRefund) {
129
+ refundId = String(resource?.id || "").trim() || null;
130
+ orderId = String(related?.order_id || "").trim() || null;
131
+ captureId = String(related?.capture_id || "").trim() || null;
132
+ cartId = null;
133
+ }
134
+ return { orderId, captureId, refundId, cartId };
77
135
  }
136
+ async function findPayPalSession(container, cartId) {
137
+ const paymentModule = container.resolve(utils_1.Modules.PAYMENT);
138
+ let collections;
139
+ try {
140
+ collections = await paymentModule.listPaymentCollections({ cart_id: [cartId] }, { take: 1 });
141
+ }
142
+ catch (e) {
143
+ throw new Error(`payment collection not found for cart ${cartId}: ${e?.message}`);
144
+ }
145
+ const collection = collections?.[0];
146
+ if (!collection?.id) {
147
+ throw new Error(`payment collection not found for cart ${cartId}`);
148
+ }
149
+ const sessions = await paymentModule.listPaymentSessions({
150
+ payment_collection_id: collection.id,
151
+ });
152
+ const paypalSession = (sessions || [])
153
+ .filter((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id))
154
+ .sort((a, b) => new Date(b.created_at || 0).getTime() -
155
+ new Date(a.created_at || 0).getTime())[0];
156
+ if (!paypalSession) {
157
+ throw new Error(`no paypal session found in collection ${collection.id} for cart ${cartId}`);
158
+ }
159
+ return {
160
+ sessionId: paypalSession.id,
161
+ sessionData: (paypalSession.data || {}),
162
+ sessionStatus: String(paypalSession.status || "pending"),
163
+ collectionId: collection.id,
164
+ };
165
+ }
166
+ // ─── Session update ───────────────────────────────────────────────────────────
78
167
  function mergeRefunds(existing, incoming) {
79
168
  const seen = new Set();
80
169
  const merged = [];
81
170
  for (const refund of [...existing, ...incoming]) {
82
- const id = refund?.id ? String(refund.id) : "";
83
- if (id && seen.has(id)) {
171
+ const id = String(refund?.id || "");
172
+ if (id && seen.has(id))
84
173
  continue;
85
- }
86
- if (id) {
174
+ if (id)
87
175
  seen.add(id);
88
- }
89
176
  merged.push(refund);
90
177
  }
91
178
  return merged;
92
179
  }
93
- async function updatePaymentSession(container, cartId, status, data) {
94
- // FIX 4b: was container.resolve("payment_collection") as any
95
- // and container.resolve("payment_session") as any
96
- // Modules.PAYMENT is the official typed constant that resolves the Medusa payment module.
97
- // It gives access to both payment collections and payment sessions through one service.
180
+ async function applyStatusToSession(container, resolved, status, patch) {
98
181
  const paymentModule = container.resolve(utils_1.Modules.PAYMENT);
99
- const pc = await paymentModule.retrievePaymentCollectionByCartId?.(cartId).catch(() => null)
100
- ?? await paymentModule.listPaymentCollections({ cart_id: cartId })
101
- .then((r) => r?.[0] ?? null)
102
- .catch(() => null);
103
- if (!pc?.id) {
182
+ if (!isTransitionAllowed(resolved.sessionStatus, status)) {
183
+ console.info(`[PayPal] webhook: skipping disallowed transition ${resolved.sessionStatus} → ${status} for session ${resolved.sessionId}`);
104
184
  return;
105
185
  }
106
- const sessions = await paymentModule.listPaymentSessions({ payment_collection_id: pc.id });
107
- const paypalSession = sessions?.find((s) => (0, provider_ids_1.isPayPalProviderId)(s.provider_id));
108
- if (!paypalSession) {
109
- return;
110
- }
111
- const existingData = (paypalSession.data || {});
112
- const existingPaypal = (existingData.paypal || {});
113
- const existingRefunds = Array.isArray(existingPaypal.refunds) ? existingPaypal.refunds : [];
114
- const incomingRefunds = Array.isArray(data.refunds) ? data.refunds : null;
186
+ const existingPaypal = (resolved.sessionData.paypal || {});
187
+ const existingRefunds = Array.isArray(existingPaypal.refunds)
188
+ ? existingPaypal.refunds
189
+ : [];
190
+ const incomingRefunds = Array.isArray(patch.refunds)
191
+ ? patch.refunds
192
+ : null;
115
193
  const nextRefunds = incomingRefunds
116
194
  ? mergeRefunds(existingRefunds, incomingRefunds)
117
195
  : existingRefunds;
118
- await paymentModule.updatePaymentSession(paypalSession.id, {
196
+ await paymentModule.updatePaymentSession({
197
+ id: resolved.sessionId,
119
198
  status,
120
199
  data: {
121
- ...existingData,
200
+ ...resolved.sessionData,
122
201
  paypal: {
123
202
  ...existingPaypal,
124
- ...data,
203
+ ...patch,
125
204
  refunds: nextRefunds,
126
205
  },
127
206
  },
128
207
  });
129
208
  }
130
- function computeNextRetryAt(attemptCount) {
131
- const scheduleMinutes = [5, 15, 30, 60, 120];
132
- const delayMinutes = scheduleMinutes[Math.min(attemptCount - 1, scheduleMinutes.length - 1)];
133
- if (!delayMinutes || attemptCount <= 0) {
134
- return null;
135
- }
136
- return new Date(Date.now() + delayMinutes * 60 * 1000);
137
- }
138
209
  async function processPayPalWebhookEvent(container, input) {
139
- // FIX 4c: was container.resolve<PayPalModuleService>("paypal_onboarding")
140
- // PAYPAL_MODULE is the exported constant from ./index.ts — value is "paypal_onboarding"
141
- // Using the constant means if the key ever changes, this file updates automatically.
142
- const paypal = container.resolve(index_1.PAYPAL_MODULE);
143
210
  const resource = normalizeResource(input.payload);
144
- const { orderId, captureId, refundId, cartId } = extractIdentifiers(resource);
145
- const refundReason = String(resource?.note_to_payer || resource?.reason || resource?.seller_note || "").trim() ||
211
+ const { orderId, captureId, refundId, cartId: rawCartId } = extractIdentifiers(resource, input.eventType);
212
+ const refundReason = String(resource?.note_to_payer || resource?.reason || resource?.seller_note || "").trim() || undefined;
213
+ const refundReasonCode = String(resource?.reason_code || resource?.reasonCode || "").trim() ||
146
214
  undefined;
147
- const refundReasonCode = String(resource?.reason_code || resource?.reasonCode || "").trim() || undefined;
148
- const status = exports.EVENT_STATUS_MAP[input.eventType];
149
- if (status && cartId) {
150
- const refundEntry = refundId || resource?.status
151
- ? [
152
- {
153
- id: refundId,
154
- status: resource?.status,
155
- reason: refundReason,
156
- reason_code: refundReasonCode,
157
- amount: resource?.amount,
158
- raw: resource,
159
- },
160
- ]
161
- : null;
162
- await updatePaymentSession(container, cartId, status, {
163
- order_id: orderId,
164
- capture_id: captureId,
165
- refund_id: refundId,
166
- refund_status: resource?.status,
167
- refund_reason: refundReason,
168
- refund_reason_code: refundReasonCode,
169
- refunds: refundEntry || undefined,
170
- webhook_event_type: input.eventType,
171
- webhook_resource: resource,
172
- });
215
+ const targetStatus = exports.EVENT_STATUS_MAP[input.eventType];
216
+ if (!targetStatus) {
217
+ return { orderId, captureId, refundId, cartId: rawCartId, sessionUpdated: false };
173
218
  }
174
- return {
175
- orderId,
176
- captureId,
177
- refundId,
178
- cartId,
179
- resource,
180
- };
219
+ let cartId = rawCartId;
220
+ if (!cartId) {
221
+ try {
222
+ const paymentModule = container.resolve(utils_1.Modules.PAYMENT);
223
+ const allSessions = await paymentModule.listPaymentSessions({
224
+ provider_id: ["pp_paypal_paypal", "pp_paypal_card_paypal_card"],
225
+ });
226
+ const matchedSession = (allSessions || []).find((s) => {
227
+ const pp = (s.data || {}).paypal || {};
228
+ if (orderId && pp.order_id === orderId)
229
+ return true;
230
+ if (captureId && pp.capture_id === captureId)
231
+ return true;
232
+ return false;
233
+ });
234
+ if (matchedSession?.payment_collection_id) {
235
+ const colls = await paymentModule.listPaymentCollections({ id: [matchedSession.payment_collection_id] }, { take: 1 });
236
+ cartId = String(colls?.[0]?.cart_id || "").trim() || null;
237
+ }
238
+ }
239
+ catch (e) {
240
+ console.warn(`[PayPal] webhook: cartId fallback lookup failed for ${input.eventType}:`, e?.message);
241
+ }
242
+ }
243
+ let sessionUpdated = false;
244
+ if (cartId) {
245
+ const resolved = await findPayPalSession(container, cartId);
246
+ if (resolved) {
247
+ const refundEntry = refundId
248
+ ? [
249
+ {
250
+ id: refundId,
251
+ status: resource?.status,
252
+ reason: refundReason,
253
+ reason_code: refundReasonCode,
254
+ amount: resource?.amount,
255
+ raw: resource,
256
+ },
257
+ ]
258
+ : null;
259
+ await applyStatusToSession(container, resolved, targetStatus, {
260
+ order_id: orderId,
261
+ capture_id: captureId ?? resolved.sessionData.paypal?.capture_id ?? undefined,
262
+ refund_id: refundId,
263
+ refund_status: refundId ? resource?.status : undefined,
264
+ refund_reason: refundReason,
265
+ refund_reason_code: refundReasonCode,
266
+ ...(refundEntry ? { refunds: refundEntry } : {}),
267
+ webhook_event_type: input.eventType,
268
+ last_webhook_at: new Date().toISOString(),
269
+ });
270
+ sessionUpdated = true;
271
+ }
272
+ }
273
+ else {
274
+ console.warn(`[PayPal] webhook: could not resolve cartId for event ${input.eventType}`, { orderId, captureId, refundId });
275
+ }
276
+ return { orderId, captureId, refundId, cartId, sessionUpdated };
181
277
  }
182
278
  //# sourceMappingURL=webhook-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-processor.js","sourceRoot":"","sources":["../../../../../src/modules/paypal/webhook-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook-processor.js","sourceRoot":"","sources":["../../../../../src/modules/paypal/webhook-processor.ts"],"names":[],"mappings":"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"}