@solvapay/next 1.0.8-preview.8 → 1.0.8

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/dist/index.cjs CHANGED
@@ -44,6 +44,7 @@ __export(index_exports, {
44
44
  getAuthenticatedUser: () => getAuthenticatedUser,
45
45
  getCustomerBalance: () => getCustomerBalance,
46
46
  getMerchant: () => getMerchant,
47
+ getPaymentMethod: () => getPaymentMethod,
47
48
  getProduct: () => getProduct,
48
49
  getPurchaseCacheStats: () => getPurchaseCacheStats,
49
50
  listPlans: () => listPlans,
@@ -53,8 +54,8 @@ __export(index_exports, {
53
54
  trackUsage: () => trackUsage
54
55
  });
55
56
  module.exports = __toCommonJS(index_exports);
56
- var import_server24 = require("next/server");
57
- var import_server25 = require("@solvapay/server");
57
+ var import_server18 = require("next/server");
58
+ var import_server19 = require("@solvapay/server");
58
59
 
59
60
  // src/cache.ts
60
61
  function createRequestDeduplicator(options = {}) {
@@ -186,35 +187,24 @@ function getPurchaseCacheStats() {
186
187
  return deduplicator.getStats();
187
188
  }
188
189
 
189
- // src/helpers/auth.ts
190
+ // src/helpers/_response.ts
190
191
  var import_server = require("next/server");
191
192
  var import_server2 = require("@solvapay/server");
192
- async function getAuthenticatedUser(request, options = {}) {
193
- const result = await (0, import_server2.getAuthenticatedUserCore)(request, options);
193
+ function toNextRouteResponse(result) {
194
194
  if ((0, import_server2.isErrorResult)(result)) {
195
195
  return import_server.NextResponse.json(
196
196
  { error: result.error, details: result.details },
197
197
  { status: result.status }
198
198
  );
199
199
  }
200
- return result;
200
+ return import_server.NextResponse.json(result);
201
201
  }
202
202
 
203
- // src/helpers/customer.ts
203
+ // src/helpers/auth.ts
204
204
  var import_server3 = require("next/server");
205
205
  var import_server4 = require("@solvapay/server");
206
- async function syncCustomer(request, options = {}) {
207
- const result = await (0, import_server4.syncCustomerCore)(request, options);
208
- if ((0, import_server4.isErrorResult)(result)) {
209
- return import_server3.NextResponse.json(
210
- { error: result.error, details: result.details },
211
- { status: result.status }
212
- );
213
- }
214
- return result;
215
- }
216
- async function getCustomerBalance(request, options = {}) {
217
- const result = await (0, import_server4.getCustomerBalanceCore)(request, options);
206
+ async function getAuthenticatedUser(request, options = {}) {
207
+ const result = await (0, import_server4.getAuthenticatedUserCore)(request, options);
218
208
  if ((0, import_server4.isErrorResult)(result)) {
219
209
  return import_server3.NextResponse.json(
220
210
  { error: result.error, details: result.details },
@@ -224,211 +214,144 @@ async function getCustomerBalance(request, options = {}) {
224
214
  return result;
225
215
  }
226
216
 
227
- // src/helpers/payment.ts
217
+ // src/helpers/customer.ts
228
218
  var import_server5 = require("next/server");
229
219
  var import_server6 = require("@solvapay/server");
230
- var import_server7 = require("@solvapay/server");
231
- async function createPaymentIntent(request, body, options = {}) {
232
- const result = await (0, import_server6.createPaymentIntentCore)(request, body, options);
220
+ async function syncCustomer(request, options = {}) {
221
+ const result = await (0, import_server6.syncCustomerCore)(request, options);
233
222
  if ((0, import_server6.isErrorResult)(result)) {
234
223
  return import_server5.NextResponse.json(
235
224
  { error: result.error, details: result.details },
236
225
  { status: result.status }
237
226
  );
238
227
  }
228
+ return result;
229
+ }
230
+ async function getCustomerBalance(request, options = {}) {
231
+ const result = await (0, import_server6.getCustomerBalanceCore)(request, options);
232
+ return toNextRouteResponse(result);
233
+ }
234
+
235
+ // src/helpers/payment.ts
236
+ var import_server8 = require("@solvapay/server");
237
+
238
+ // src/helpers/_cache.ts
239
+ var import_server7 = require("@solvapay/server");
240
+ async function invalidatePurchaseCacheForRequest(request) {
239
241
  try {
240
242
  const userResult = await (0, import_server7.getAuthenticatedUserCore)(request);
241
- if (!(0, import_server6.isErrorResult)(userResult)) {
243
+ if (!(0, import_server7.isErrorResult)(userResult)) {
242
244
  clearPurchaseCache(userResult.userId);
243
245
  }
244
246
  } catch {
245
247
  }
246
- return result;
247
248
  }
248
- async function createTopupPaymentIntent(request, body, options = {}) {
249
- const result = await (0, import_server6.createTopupPaymentIntentCore)(request, body, options);
250
- if ((0, import_server6.isErrorResult)(result)) {
251
- return import_server5.NextResponse.json(
252
- { error: result.error, details: result.details },
253
- { status: result.status }
254
- );
249
+
250
+ // src/helpers/payment.ts
251
+ async function createPaymentIntent(request, body, options = {}) {
252
+ const result = await (0, import_server8.createPaymentIntentCore)(request, body, options);
253
+ if (!(0, import_server8.isErrorResult)(result)) {
254
+ await invalidatePurchaseCacheForRequest(request);
255
255
  }
256
- try {
257
- const userResult = await (0, import_server7.getAuthenticatedUserCore)(request);
258
- if (!(0, import_server6.isErrorResult)(userResult)) {
259
- clearPurchaseCache(userResult.userId);
260
- }
261
- } catch {
256
+ return toNextRouteResponse(result);
257
+ }
258
+ async function createTopupPaymentIntent(request, body, options = {}) {
259
+ const result = await (0, import_server8.createTopupPaymentIntentCore)(request, body, options);
260
+ if (!(0, import_server8.isErrorResult)(result)) {
261
+ await invalidatePurchaseCacheForRequest(request);
262
262
  }
263
- return result;
263
+ return toNextRouteResponse(result);
264
264
  }
265
265
  async function processPaymentIntent(request, body, options = {}) {
266
- const result = await (0, import_server6.processPaymentIntentCore)(request, body, options);
267
- if ((0, import_server6.isErrorResult)(result)) {
268
- return import_server5.NextResponse.json(
269
- { error: result.error, details: result.details },
270
- { status: result.status }
271
- );
272
- }
273
- try {
274
- const userResult = await (0, import_server7.getAuthenticatedUserCore)(request);
275
- if (!(0, import_server6.isErrorResult)(userResult)) {
276
- clearPurchaseCache(userResult.userId);
277
- }
278
- } catch {
266
+ const result = await (0, import_server8.processPaymentIntentCore)(request, body, options);
267
+ if (!(0, import_server8.isErrorResult)(result)) {
268
+ await invalidatePurchaseCacheForRequest(request);
279
269
  }
280
- return result;
270
+ return toNextRouteResponse(result);
281
271
  }
282
272
 
283
273
  // src/helpers/checkout.ts
284
- var import_server8 = require("next/server");
285
274
  var import_server9 = require("@solvapay/server");
286
275
  async function createCheckoutSession(request, body, options = {}) {
287
276
  const result = await (0, import_server9.createCheckoutSessionCore)(request, body, options);
288
- if ((0, import_server9.isErrorResult)(result)) {
289
- return import_server8.NextResponse.json(
290
- { error: result.error, details: result.details },
291
- { status: result.status }
292
- );
293
- }
294
- return result;
277
+ return toNextRouteResponse(result);
295
278
  }
296
279
  async function createCustomerSession(request, options = {}) {
297
280
  const result = await (0, import_server9.createCustomerSessionCore)(request, options);
298
- if ((0, import_server9.isErrorResult)(result)) {
299
- return import_server8.NextResponse.json(
300
- { error: result.error, details: result.details },
301
- { status: result.status }
302
- );
303
- }
304
- return result;
281
+ return toNextRouteResponse(result);
305
282
  }
306
283
 
307
284
  // src/helpers/activation.ts
308
- var import_server10 = require("next/server");
309
- var import_server11 = require("@solvapay/server");
310
- var import_server12 = require("@solvapay/server");
285
+ var import_server10 = require("@solvapay/server");
311
286
  async function activatePlan(request, body, options = {}) {
312
- const result = await (0, import_server11.activatePlanCore)(request, body, options);
313
- if ((0, import_server11.isErrorResult)(result)) {
314
- return import_server10.NextResponse.json(
315
- { error: result.error, details: result.details },
316
- { status: result.status }
317
- );
318
- }
319
- try {
320
- const userResult = await (0, import_server12.getAuthenticatedUserCore)(request);
321
- if (!(0, import_server11.isErrorResult)(userResult)) {
322
- clearPurchaseCache(userResult.userId);
323
- }
324
- } catch {
287
+ const result = await (0, import_server10.activatePlanCore)(request, body, options);
288
+ if (!(0, import_server10.isErrorResult)(result)) {
289
+ await invalidatePurchaseCacheForRequest(request);
325
290
  }
326
- return result;
291
+ return toNextRouteResponse(result);
292
+ }
293
+
294
+ // src/helpers/payment-method.ts
295
+ var import_server11 = require("@solvapay/server");
296
+ async function getPaymentMethod(request, options = {}) {
297
+ const result = await (0, import_server11.getPaymentMethodCore)(request, options);
298
+ return toNextRouteResponse(result);
327
299
  }
328
300
 
329
301
  // src/helpers/renewal.ts
330
- var import_server13 = require("next/server");
331
- var import_server14 = require("@solvapay/server");
302
+ var import_server12 = require("@solvapay/server");
332
303
  async function cancelRenewal(request, body, options = {}) {
333
- const result = await (0, import_server14.cancelPurchaseCore)(request, body, options);
334
- if ((0, import_server14.isErrorResult)(result)) {
335
- return import_server13.NextResponse.json(
336
- { error: result.error, details: result.details },
337
- { status: result.status }
338
- );
339
- }
340
- try {
341
- const userResult = await (0, import_server14.getAuthenticatedUserCore)(request);
342
- if (!(0, import_server14.isErrorResult)(userResult)) {
343
- clearPurchaseCache(userResult.userId);
344
- }
345
- } catch {
304
+ const result = await (0, import_server12.cancelPurchaseCore)(request, body, options);
305
+ if (!(0, import_server12.isErrorResult)(result)) {
306
+ await invalidatePurchaseCacheForRequest(request);
346
307
  }
347
- return result;
308
+ return toNextRouteResponse(result);
348
309
  }
349
310
  async function reactivateRenewal(request, body, options = {}) {
350
- const result = await (0, import_server14.reactivatePurchaseCore)(request, body, options);
351
- if ((0, import_server14.isErrorResult)(result)) {
352
- return import_server13.NextResponse.json(
353
- { error: result.error, details: result.details },
354
- { status: result.status }
355
- );
311
+ const result = await (0, import_server12.reactivatePurchaseCore)(request, body, options);
312
+ if (!(0, import_server12.isErrorResult)(result)) {
313
+ await invalidatePurchaseCacheForRequest(request);
356
314
  }
357
- try {
358
- const userResult = await (0, import_server14.getAuthenticatedUserCore)(request);
359
- if (!(0, import_server14.isErrorResult)(userResult)) {
360
- clearPurchaseCache(userResult.userId);
361
- }
362
- } catch {
363
- }
364
- return result;
315
+ return toNextRouteResponse(result);
365
316
  }
366
317
 
367
318
  // src/helpers/plans.ts
368
- var import_server15 = require("next/server");
369
- var import_server16 = require("@solvapay/server");
319
+ var import_server13 = require("@solvapay/server");
370
320
  async function listPlans(request, options = {}) {
371
- const result = await (0, import_server16.listPlansCore)(request, options);
372
- if ((0, import_server16.isErrorResult)(result)) {
373
- return import_server15.NextResponse.json(
374
- { error: result.error, details: result.details },
375
- { status: result.status }
376
- );
377
- }
378
- return result;
321
+ const result = await (0, import_server13.listPlansCore)(request, options);
322
+ return toNextRouteResponse(result);
379
323
  }
380
324
 
381
325
  // src/helpers/merchant.ts
382
- var import_server17 = require("next/server");
383
- var import_server18 = require("@solvapay/server");
326
+ var import_server14 = require("@solvapay/server");
384
327
  async function getMerchant(request, options = {}) {
385
- const result = await (0, import_server18.getMerchantCore)(request, options);
386
- if ((0, import_server18.isErrorResult)(result)) {
387
- return import_server17.NextResponse.json(
388
- { error: result.error, details: result.details },
389
- { status: result.status }
390
- );
391
- }
392
- return result;
328
+ const result = await (0, import_server14.getMerchantCore)(request, options);
329
+ return toNextRouteResponse(result);
393
330
  }
394
331
 
395
332
  // src/helpers/product.ts
396
- var import_server19 = require("next/server");
397
- var import_server20 = require("@solvapay/server");
333
+ var import_server15 = require("@solvapay/server");
398
334
  async function getProduct(request, options = {}) {
399
- const result = await (0, import_server20.getProductCore)(request, options);
400
- if ((0, import_server20.isErrorResult)(result)) {
401
- return import_server19.NextResponse.json(
402
- { error: result.error, details: result.details },
403
- { status: result.status }
404
- );
405
- }
406
- return result;
335
+ const result = await (0, import_server15.getProductCore)(request, options);
336
+ return toNextRouteResponse(result);
407
337
  }
408
338
 
409
339
  // src/helpers/usage.ts
410
- var import_server21 = require("next/server");
411
- var import_server22 = require("@solvapay/server");
340
+ var import_server16 = require("@solvapay/server");
412
341
  async function trackUsage(request, body, options = {}) {
413
- const result = await (0, import_server22.trackUsageCore)(request, body, options);
414
- if ((0, import_server22.isErrorResult)(result)) {
415
- return import_server21.NextResponse.json(
416
- { error: result.error, details: result.details },
417
- { status: result.status }
418
- );
419
- }
420
- return import_server21.NextResponse.json(result);
342
+ const result = await (0, import_server16.trackUsageCore)(request, body, options);
343
+ return toNextRouteResponse(result);
421
344
  }
422
345
 
423
346
  // src/helpers/middleware.ts
424
- var import_server23 = require("next/server");
347
+ var import_server17 = require("next/server");
425
348
  function createAuthMiddleware(options) {
426
349
  const { adapter, publicRoutes = [], userIdHeader = "x-user-id" } = options;
427
350
  return async function middleware(request) {
428
351
  const req = request;
429
352
  const { pathname } = req.nextUrl;
430
353
  if (!pathname.startsWith("/api")) {
431
- return import_server23.NextResponse.next();
354
+ return import_server17.NextResponse.next();
432
355
  }
433
356
  const isPublicRoute = publicRoutes.some((route) => pathname.startsWith(route));
434
357
  const userId = await adapter.getUserIdFromRequest(req);
@@ -437,21 +360,21 @@ function createAuthMiddleware(options) {
437
360
  if (userId) {
438
361
  requestHeaders2.set(userIdHeader, userId);
439
362
  }
440
- return import_server23.NextResponse.next({
363
+ return import_server17.NextResponse.next({
441
364
  request: {
442
365
  headers: requestHeaders2
443
366
  }
444
367
  });
445
368
  }
446
369
  if (!userId) {
447
- return import_server23.NextResponse.json(
370
+ return import_server17.NextResponse.json(
448
371
  { error: "Unauthorized", details: "Valid authentication required" },
449
372
  { status: 401 }
450
373
  );
451
374
  }
452
375
  const requestHeaders = new Headers(req.headers);
453
376
  requestHeaders.set(userIdHeader, userId);
454
- return import_server23.NextResponse.next({
377
+ return import_server17.NextResponse.next({
455
378
  request: {
456
379
  headers: requestHeaders
457
380
  }
@@ -499,30 +422,24 @@ async function checkPurchase(request, options = {}) {
499
422
  if (userIdOrError instanceof Response) {
500
423
  const clonedResponse = userIdOrError.clone();
501
424
  const body = await clonedResponse.json().catch(() => ({ error: "Unauthorized" }));
502
- return import_server24.NextResponse.json(body, { status: userIdOrError.status });
425
+ return import_server18.NextResponse.json(body, { status: userIdOrError.status });
503
426
  }
504
427
  const userId = userIdOrError;
505
428
  const response = await deduplicator.deduplicate(
506
429
  userId,
507
430
  async () => {
508
- return await (0, import_server25.checkPurchaseCore)(request, {
431
+ return await (0, import_server19.checkPurchaseCore)(request, {
509
432
  solvaPay: options.solvaPay,
510
433
  includeEmail: options.includeEmail,
511
434
  includeName: options.includeName
512
435
  });
513
436
  }
514
437
  );
515
- if ((0, import_server25.isErrorResult)(response)) {
516
- return import_server24.NextResponse.json(
517
- { error: response.error, details: response.details },
518
- { status: response.status }
519
- );
520
- }
521
- return response;
438
+ return toNextRouteResponse(response);
522
439
  } catch (error) {
523
440
  console.error("Check purchase failed:", error);
524
441
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
525
- return import_server24.NextResponse.json(
442
+ return import_server18.NextResponse.json(
526
443
  { error: "Failed to check purchase", details: errorMessage },
527
444
  { status: 500 }
528
445
  );
@@ -544,6 +461,7 @@ async function checkPurchase(request, options = {}) {
544
461
  getAuthenticatedUser,
545
462
  getCustomerBalance,
546
463
  getMerchant,
464
+ getPaymentMethod,
547
465
  getProduct,
548
466
  getPurchaseCacheStats,
549
467
  listPlans,