@paykit-sdk/medusajs 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Universal payment provider adapter for Medusa v2+ using PayKit. Compatible with
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- npm install @paykit-sdk/medusajs @paykit-sdk/core
8
+ npm install @paykit-sdk/medusajs
9
9
  ```
10
10
 
11
11
  ## Install your provider
@@ -25,7 +25,7 @@ import { createStripe } from '@paykit-sdk/stripe';
25
25
  export default defineConfig({
26
26
  modules: [
27
27
  {
28
- resolve: '@paykit-sdk/medusa-adapter',
28
+ resolve: '@paykit-sdk/medusajs',
29
29
  options: {
30
30
  provider: createStripe({ apiKey: process.env.STRIPE_API_KEY }),
31
31
  webhookSecret: process.env.STRIPE_WEBHOOK_SECRET,
package/dist/index.js CHANGED
@@ -83,14 +83,20 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
83
83
  data
84
84
  }) => {
85
85
  if (this.options.debug) {
86
- console.info("[PayKit] Initiating payment", { context, amount, currency_code, data });
86
+ console.info("[PayKit] Initiating payment", {
87
+ context,
88
+ amount,
89
+ currency_code,
90
+ data
91
+ });
87
92
  }
88
93
  const intent = {
89
- status: "pending",
90
94
  amount: Number(amount),
91
95
  currency: currency_code,
92
- metadata: { ...data?.metadata ?? {}, session_id: data?.session_id ?? "" },
93
- provider_metadata: data?.provider_metadata ?? void 0
96
+ metadata: { ...data?.metadata ?? {}, session_id: data?.session_id ?? null },
97
+ provider_metadata: data?.provider_metadata,
98
+ capture_method: "manual",
99
+ item_id: data?.item_id
94
100
  };
95
101
  let customer;
96
102
  if (context?.account_holder?.data?.id) {
@@ -99,7 +105,10 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
99
105
  customer = { email: data.email };
100
106
  }
101
107
  if (!customer) {
102
- throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Required: customer ID (account_holder) or email (data)");
108
+ throw new utils.MedusaError(
109
+ utils.MedusaError.Types.INVALID_DATA,
110
+ "Required: customer ID (account_holder) or email (data)"
111
+ );
103
112
  }
104
113
  if (typeof customer === "object" && "email" in customer) {
105
114
  await core.tryCatchAsync(
@@ -107,7 +116,9 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
107
116
  email: customer.email,
108
117
  phone: data?.phone ?? "",
109
118
  name: data?.name ? data.name : customer.email.split("@")[0],
110
- metadata: { PAYKIT_METADATA_KEY: JSON.stringify({ source: "medusa" }) }
119
+ metadata: {
120
+ PAYKIT_METADATA_KEY: JSON.stringify({ source: "medusa-paykit-adapter" })
121
+ }
111
122
  })
112
123
  );
113
124
  } else {
@@ -117,9 +128,25 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
117
128
  const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
118
129
  this.paykit.payments.create(intent)
119
130
  );
120
- if (paymentIntentError)
121
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
122
- return { id: paymentIntentResult.id, status: medusaStatus$InboundSchema(paymentIntentResult.status) };
131
+ if (paymentIntentError) {
132
+ throw new utils.MedusaError(
133
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
134
+ paymentIntentError.message
135
+ );
136
+ }
137
+ if (paymentIntentResult.requires_action && paymentIntentResult.payment_url) {
138
+ return {
139
+ id: paymentIntentResult.id,
140
+ status: utils.PaymentSessionStatus.REQUIRES_MORE,
141
+ data: {
142
+ payment_url: paymentIntentResult.payment_url
143
+ }
144
+ };
145
+ }
146
+ return {
147
+ id: paymentIntentResult.id,
148
+ status: medusaStatus$InboundSchema(paymentIntentResult.status)
149
+ };
123
150
  };
124
151
  capturePayment = async (input) => {
125
152
  if (this.options.debug) {
@@ -130,13 +157,24 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
130
157
  input?.data ?? {},
131
158
  "Missing required payment ID"
132
159
  );
133
- if (!id) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
134
- if (!amount) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment amount");
160
+ if (!id)
161
+ throw new utils.MedusaError(
162
+ utils.MedusaError.Types.INVALID_DATA,
163
+ "Missing required payment ID"
164
+ );
165
+ if (!amount)
166
+ throw new utils.MedusaError(
167
+ utils.MedusaError.Types.INVALID_DATA,
168
+ "Missing required payment amount"
169
+ );
135
170
  const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
136
171
  this.paykit.payments.capture(id, { amount: Number(amount) })
137
172
  );
138
173
  if (paymentIntentError)
139
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
174
+ throw new utils.MedusaError(
175
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
176
+ paymentIntentError.message
177
+ );
140
178
  return { data: paymentIntentResult };
141
179
  };
142
180
  authorizePayment = async (input) => {
@@ -154,10 +192,19 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
154
192
  input?.data ?? {},
155
193
  "Missing required payment ID"
156
194
  );
157
- if (!id) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
158
- const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(this.paykit.payments.cancel(id));
195
+ if (!id)
196
+ throw new utils.MedusaError(
197
+ utils.MedusaError.Types.INVALID_DATA,
198
+ "Missing required payment ID"
199
+ );
200
+ const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
201
+ this.paykit.payments.cancel(id)
202
+ );
159
203
  if (paymentIntentError)
160
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
204
+ throw new utils.MedusaError(
205
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
206
+ paymentIntentError.message
207
+ );
161
208
  return { data: paymentIntentResult };
162
209
  };
163
210
  deletePayment = async (input) => {
@@ -169,11 +216,24 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
169
216
  input?.data ?? {},
170
217
  "Missing required payment ID"
171
218
  );
172
- if (!id) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
173
- const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(this.paykit.payments.retrieve(id));
219
+ if (!id)
220
+ throw new utils.MedusaError(
221
+ utils.MedusaError.Types.INVALID_DATA,
222
+ "Missing required payment ID"
223
+ );
224
+ const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
225
+ this.paykit.payments.retrieve(id)
226
+ );
174
227
  if (paymentIntentError)
175
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
176
- if (!paymentIntentResult) throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, "Payment not found");
228
+ throw new utils.MedusaError(
229
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
230
+ paymentIntentError.message
231
+ );
232
+ if (!paymentIntentResult)
233
+ throw new utils.MedusaError(
234
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
235
+ "Payment not found"
236
+ );
177
237
  return {
178
238
  status: medusaStatus$InboundSchema(paymentIntentResult.status),
179
239
  data: paymentIntentResult
@@ -188,7 +248,11 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
188
248
  input?.data ?? {},
189
249
  "Missing required payment ID"
190
250
  );
191
- if (!paymentId) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
251
+ if (!paymentId)
252
+ throw new utils.MedusaError(
253
+ utils.MedusaError.Types.INVALID_DATA,
254
+ "Missing required payment ID"
255
+ );
192
256
  const [refundResult, refundError] = await core.tryCatchAsync(
193
257
  this.paykit.refunds.create({
194
258
  payment_id: paymentId,
@@ -198,7 +262,11 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
198
262
  provider_metadata: input.data?.provider_metadata ? input.data.provider_metadata : void 0
199
263
  })
200
264
  );
201
- if (refundError) throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, refundError.message);
265
+ if (refundError)
266
+ throw new utils.MedusaError(
267
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
268
+ refundError.message
269
+ );
202
270
  return { data: refundResult };
203
271
  };
204
272
  retrievePayment = async (input) => {
@@ -210,10 +278,19 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
210
278
  input?.data ?? {},
211
279
  "Missing required payment ID"
212
280
  );
213
- if (!id) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
214
- const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(this.paykit.payments.retrieve(id));
281
+ if (!id)
282
+ throw new utils.MedusaError(
283
+ utils.MedusaError.Types.INVALID_DATA,
284
+ "Missing required payment ID"
285
+ );
286
+ const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
287
+ this.paykit.payments.retrieve(id)
288
+ );
215
289
  if (paymentIntentError)
216
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
290
+ throw new utils.MedusaError(
291
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
292
+ paymentIntentError.message
293
+ );
217
294
  return { data: paymentIntentResult };
218
295
  };
219
296
  updatePayment = async (input) => {
@@ -226,13 +303,20 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
226
303
  "Missing required payment ID"
227
304
  );
228
305
  if (!amount || !currency_code)
229
- throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required amount or currency code");
306
+ throw new utils.MedusaError(
307
+ utils.MedusaError.Types.INVALID_DATA,
308
+ "Missing required amount or currency code"
309
+ );
230
310
  const { id: paymentId } = core.validateRequiredKeys(
231
311
  ["id"],
232
312
  input.data,
233
313
  "Missing required payment ID"
234
314
  );
235
- if (!paymentId) throw new utils.MedusaError(utils.MedusaError.Types.INVALID_DATA, "Missing required payment ID");
315
+ if (!paymentId)
316
+ throw new utils.MedusaError(
317
+ utils.MedusaError.Types.INVALID_DATA,
318
+ "Missing required payment ID"
319
+ );
236
320
  const [paymentIntentResult, paymentIntentError] = await core.tryCatchAsync(
237
321
  this.paykit.payments.update(paymentId, {
238
322
  amount: Number(amount),
@@ -242,7 +326,10 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
242
326
  })
243
327
  );
244
328
  if (paymentIntentError)
245
- throw new utils.MedusaError(utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
329
+ throw new utils.MedusaError(
330
+ utils.MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
331
+ paymentIntentError.message
332
+ );
246
333
  return { data: paymentIntentResult };
247
334
  };
248
335
  getWebhookActionAndData = async (payload) => {
@@ -271,7 +358,10 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
271
358
  const webhook = this.paykit.webhooks.setup({ webhookSecret: this.options.webhookSecret }).on("payment.created", async (event) => {
272
359
  return {
273
360
  action: utils.PaymentActions.PENDING,
274
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
361
+ data: {
362
+ session_id: event.data?.metadata?.session_id,
363
+ amount: event.data?.amount
364
+ }
275
365
  };
276
366
  }).on("payment.updated", async (event) => {
277
367
  const statusActionMap = {
@@ -285,17 +375,26 @@ var PaykitMedusaJSAdapter = class extends utils.AbstractPaymentProvider {
285
375
  };
286
376
  return {
287
377
  action: event.data?.status ? statusActionMap[event.data.status] : utils.PaymentActions.PENDING,
288
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
378
+ data: {
379
+ session_id: event.data?.metadata?.session_id,
380
+ amount: event.data?.amount
381
+ }
289
382
  };
290
383
  }).on("payment.canceled", async (event) => {
291
384
  return {
292
385
  action: utils.PaymentActions.CANCELED,
293
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
386
+ data: {
387
+ session_id: event.data?.metadata?.session_id,
388
+ amount: event.data?.amount
389
+ }
294
390
  };
295
391
  });
392
+ const stringifiedHeaders = Object.fromEntries(
393
+ Object.entries(headers).map(([key, value]) => [key, String(value)])
394
+ );
296
395
  const webhookEvents = await webhook.handle({
297
396
  body: rawData,
298
- headers,
397
+ headers: new Headers(stringifiedHeaders),
299
398
  fullUrl
300
399
  });
301
400
  return webhookEvents;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { ModuleProvider, Modules, AbstractPaymentProvider, MedusaError, PaymentActions, PaymentSessionStatus } from '@medusajs/framework/utils';
1
+ import { ModuleProvider, Modules, AbstractPaymentProvider, MedusaError, PaymentSessionStatus, PaymentActions } from '@medusajs/framework/utils';
2
2
  import { providerSchema, PayKit, tryCatchAsync, validateRequiredKeys } from '@paykit-sdk/core';
3
3
  import { z } from 'zod';
4
4
 
@@ -79,14 +79,20 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
79
79
  data
80
80
  }) => {
81
81
  if (this.options.debug) {
82
- console.info("[PayKit] Initiating payment", { context, amount, currency_code, data });
82
+ console.info("[PayKit] Initiating payment", {
83
+ context,
84
+ amount,
85
+ currency_code,
86
+ data
87
+ });
83
88
  }
84
89
  const intent = {
85
- status: "pending",
86
90
  amount: Number(amount),
87
91
  currency: currency_code,
88
- metadata: { ...data?.metadata ?? {}, session_id: data?.session_id ?? "" },
89
- provider_metadata: data?.provider_metadata ?? void 0
92
+ metadata: { ...data?.metadata ?? {}, session_id: data?.session_id ?? null },
93
+ provider_metadata: data?.provider_metadata,
94
+ capture_method: "manual",
95
+ item_id: data?.item_id
90
96
  };
91
97
  let customer;
92
98
  if (context?.account_holder?.data?.id) {
@@ -95,7 +101,10 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
95
101
  customer = { email: data.email };
96
102
  }
97
103
  if (!customer) {
98
- throw new MedusaError(MedusaError.Types.INVALID_DATA, "Required: customer ID (account_holder) or email (data)");
104
+ throw new MedusaError(
105
+ MedusaError.Types.INVALID_DATA,
106
+ "Required: customer ID (account_holder) or email (data)"
107
+ );
99
108
  }
100
109
  if (typeof customer === "object" && "email" in customer) {
101
110
  await tryCatchAsync(
@@ -103,7 +112,9 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
103
112
  email: customer.email,
104
113
  phone: data?.phone ?? "",
105
114
  name: data?.name ? data.name : customer.email.split("@")[0],
106
- metadata: { PAYKIT_METADATA_KEY: JSON.stringify({ source: "medusa" }) }
115
+ metadata: {
116
+ PAYKIT_METADATA_KEY: JSON.stringify({ source: "medusa-paykit-adapter" })
117
+ }
107
118
  })
108
119
  );
109
120
  } else {
@@ -113,9 +124,25 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
113
124
  const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
114
125
  this.paykit.payments.create(intent)
115
126
  );
116
- if (paymentIntentError)
117
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
118
- return { id: paymentIntentResult.id, status: medusaStatus$InboundSchema(paymentIntentResult.status) };
127
+ if (paymentIntentError) {
128
+ throw new MedusaError(
129
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
130
+ paymentIntentError.message
131
+ );
132
+ }
133
+ if (paymentIntentResult.requires_action && paymentIntentResult.payment_url) {
134
+ return {
135
+ id: paymentIntentResult.id,
136
+ status: PaymentSessionStatus.REQUIRES_MORE,
137
+ data: {
138
+ payment_url: paymentIntentResult.payment_url
139
+ }
140
+ };
141
+ }
142
+ return {
143
+ id: paymentIntentResult.id,
144
+ status: medusaStatus$InboundSchema(paymentIntentResult.status)
145
+ };
119
146
  };
120
147
  capturePayment = async (input) => {
121
148
  if (this.options.debug) {
@@ -126,13 +153,24 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
126
153
  input?.data ?? {},
127
154
  "Missing required payment ID"
128
155
  );
129
- if (!id) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
130
- if (!amount) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment amount");
156
+ if (!id)
157
+ throw new MedusaError(
158
+ MedusaError.Types.INVALID_DATA,
159
+ "Missing required payment ID"
160
+ );
161
+ if (!amount)
162
+ throw new MedusaError(
163
+ MedusaError.Types.INVALID_DATA,
164
+ "Missing required payment amount"
165
+ );
131
166
  const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
132
167
  this.paykit.payments.capture(id, { amount: Number(amount) })
133
168
  );
134
169
  if (paymentIntentError)
135
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
170
+ throw new MedusaError(
171
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
172
+ paymentIntentError.message
173
+ );
136
174
  return { data: paymentIntentResult };
137
175
  };
138
176
  authorizePayment = async (input) => {
@@ -150,10 +188,19 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
150
188
  input?.data ?? {},
151
189
  "Missing required payment ID"
152
190
  );
153
- if (!id) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
154
- const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(this.paykit.payments.cancel(id));
191
+ if (!id)
192
+ throw new MedusaError(
193
+ MedusaError.Types.INVALID_DATA,
194
+ "Missing required payment ID"
195
+ );
196
+ const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
197
+ this.paykit.payments.cancel(id)
198
+ );
155
199
  if (paymentIntentError)
156
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
200
+ throw new MedusaError(
201
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
202
+ paymentIntentError.message
203
+ );
157
204
  return { data: paymentIntentResult };
158
205
  };
159
206
  deletePayment = async (input) => {
@@ -165,11 +212,24 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
165
212
  input?.data ?? {},
166
213
  "Missing required payment ID"
167
214
  );
168
- if (!id) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
169
- const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(this.paykit.payments.retrieve(id));
215
+ if (!id)
216
+ throw new MedusaError(
217
+ MedusaError.Types.INVALID_DATA,
218
+ "Missing required payment ID"
219
+ );
220
+ const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
221
+ this.paykit.payments.retrieve(id)
222
+ );
170
223
  if (paymentIntentError)
171
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
172
- if (!paymentIntentResult) throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, "Payment not found");
224
+ throw new MedusaError(
225
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
226
+ paymentIntentError.message
227
+ );
228
+ if (!paymentIntentResult)
229
+ throw new MedusaError(
230
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
231
+ "Payment not found"
232
+ );
173
233
  return {
174
234
  status: medusaStatus$InboundSchema(paymentIntentResult.status),
175
235
  data: paymentIntentResult
@@ -184,7 +244,11 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
184
244
  input?.data ?? {},
185
245
  "Missing required payment ID"
186
246
  );
187
- if (!paymentId) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
247
+ if (!paymentId)
248
+ throw new MedusaError(
249
+ MedusaError.Types.INVALID_DATA,
250
+ "Missing required payment ID"
251
+ );
188
252
  const [refundResult, refundError] = await tryCatchAsync(
189
253
  this.paykit.refunds.create({
190
254
  payment_id: paymentId,
@@ -194,7 +258,11 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
194
258
  provider_metadata: input.data?.provider_metadata ? input.data.provider_metadata : void 0
195
259
  })
196
260
  );
197
- if (refundError) throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, refundError.message);
261
+ if (refundError)
262
+ throw new MedusaError(
263
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
264
+ refundError.message
265
+ );
198
266
  return { data: refundResult };
199
267
  };
200
268
  retrievePayment = async (input) => {
@@ -206,10 +274,19 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
206
274
  input?.data ?? {},
207
275
  "Missing required payment ID"
208
276
  );
209
- if (!id) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
210
- const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(this.paykit.payments.retrieve(id));
277
+ if (!id)
278
+ throw new MedusaError(
279
+ MedusaError.Types.INVALID_DATA,
280
+ "Missing required payment ID"
281
+ );
282
+ const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
283
+ this.paykit.payments.retrieve(id)
284
+ );
211
285
  if (paymentIntentError)
212
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
286
+ throw new MedusaError(
287
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
288
+ paymentIntentError.message
289
+ );
213
290
  return { data: paymentIntentResult };
214
291
  };
215
292
  updatePayment = async (input) => {
@@ -222,13 +299,20 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
222
299
  "Missing required payment ID"
223
300
  );
224
301
  if (!amount || !currency_code)
225
- throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required amount or currency code");
302
+ throw new MedusaError(
303
+ MedusaError.Types.INVALID_DATA,
304
+ "Missing required amount or currency code"
305
+ );
226
306
  const { id: paymentId } = validateRequiredKeys(
227
307
  ["id"],
228
308
  input.data,
229
309
  "Missing required payment ID"
230
310
  );
231
- if (!paymentId) throw new MedusaError(MedusaError.Types.INVALID_DATA, "Missing required payment ID");
311
+ if (!paymentId)
312
+ throw new MedusaError(
313
+ MedusaError.Types.INVALID_DATA,
314
+ "Missing required payment ID"
315
+ );
232
316
  const [paymentIntentResult, paymentIntentError] = await tryCatchAsync(
233
317
  this.paykit.payments.update(paymentId, {
234
318
  amount: Number(amount),
@@ -238,7 +322,10 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
238
322
  })
239
323
  );
240
324
  if (paymentIntentError)
241
- throw new MedusaError(MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR, paymentIntentError.message);
325
+ throw new MedusaError(
326
+ MedusaError.Types.PAYMENT_AUTHORIZATION_ERROR,
327
+ paymentIntentError.message
328
+ );
242
329
  return { data: paymentIntentResult };
243
330
  };
244
331
  getWebhookActionAndData = async (payload) => {
@@ -267,7 +354,10 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
267
354
  const webhook = this.paykit.webhooks.setup({ webhookSecret: this.options.webhookSecret }).on("payment.created", async (event) => {
268
355
  return {
269
356
  action: PaymentActions.PENDING,
270
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
357
+ data: {
358
+ session_id: event.data?.metadata?.session_id,
359
+ amount: event.data?.amount
360
+ }
271
361
  };
272
362
  }).on("payment.updated", async (event) => {
273
363
  const statusActionMap = {
@@ -281,17 +371,26 @@ var PaykitMedusaJSAdapter = class extends AbstractPaymentProvider {
281
371
  };
282
372
  return {
283
373
  action: event.data?.status ? statusActionMap[event.data.status] : PaymentActions.PENDING,
284
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
374
+ data: {
375
+ session_id: event.data?.metadata?.session_id,
376
+ amount: event.data?.amount
377
+ }
285
378
  };
286
379
  }).on("payment.canceled", async (event) => {
287
380
  return {
288
381
  action: PaymentActions.CANCELED,
289
- data: { session_id: event.data?.metadata?.session_id, amount: event.data?.amount }
382
+ data: {
383
+ session_id: event.data?.metadata?.session_id,
384
+ amount: event.data?.amount
385
+ }
290
386
  };
291
387
  });
388
+ const stringifiedHeaders = Object.fromEntries(
389
+ Object.entries(headers).map(([key, value]) => [key, String(value)])
390
+ );
292
391
  const webhookEvents = await webhook.handle({
293
392
  body: rawData,
294
- headers,
393
+ headers: new Headers(stringifiedHeaders),
295
394
  fullUrl
296
395
  });
297
396
  return webhookEvents;