@solvapay/next 1.0.9-preview.1 → 1.0.9

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