@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 +101 -151
- package/dist/index.d.cts +221 -55
- package/dist/index.d.ts +221 -55
- package/dist/index.js +92 -147
- package/package.json +4 -4
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
|
|
55
|
-
var
|
|
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/
|
|
190
|
+
// src/helpers/_response.ts
|
|
188
191
|
var import_server = require("next/server");
|
|
189
192
|
var import_server2 = require("@solvapay/server");
|
|
190
|
-
|
|
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/
|
|
203
|
+
// src/helpers/auth.ts
|
|
202
204
|
var import_server3 = require("next/server");
|
|
203
205
|
var import_server4 = require("@solvapay/server");
|
|
204
|
-
async function
|
|
205
|
-
const result = await (0, import_server4.
|
|
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/
|
|
217
|
+
// src/helpers/customer.ts
|
|
226
218
|
var import_server5 = require("next/server");
|
|
227
219
|
var import_server6 = require("@solvapay/server");
|
|
228
|
-
|
|
229
|
-
|
|
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,
|
|
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
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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,
|
|
265
|
-
if ((0,
|
|
266
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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("
|
|
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,
|
|
311
|
-
if ((0,
|
|
312
|
-
|
|
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
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
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
|
|
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,
|
|
332
|
-
if ((0,
|
|
333
|
-
|
|
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,
|
|
349
|
-
if ((0,
|
|
350
|
-
|
|
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
|
-
|
|
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
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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
|
|
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,
|
|
384
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|