@solvapay/next 1.0.8-preview.9 → 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 +88 -170
- package/dist/index.d.cts +193 -63
- package/dist/index.d.ts +193 -63
- package/dist/index.js +78 -163
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
} from "./chunk-F7TBIH6W.js";
|
|
5
5
|
|
|
6
6
|
// src/index.ts
|
|
7
|
-
import { NextResponse as
|
|
8
|
-
import { checkPurchaseCore
|
|
7
|
+
import { NextResponse as NextResponse4 } from "next/server";
|
|
8
|
+
import { checkPurchaseCore } from "@solvapay/server";
|
|
9
9
|
|
|
10
10
|
// src/cache.ts
|
|
11
11
|
function createRequestDeduplicator(options = {}) {
|
|
@@ -137,16 +137,29 @@ function getPurchaseCacheStats() {
|
|
|
137
137
|
return deduplicator.getStats();
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
// src/helpers/
|
|
140
|
+
// src/helpers/_response.ts
|
|
141
141
|
import { NextResponse } from "next/server";
|
|
142
|
+
import { isErrorResult } from "@solvapay/server";
|
|
143
|
+
function toNextRouteResponse(result) {
|
|
144
|
+
if (isErrorResult(result)) {
|
|
145
|
+
return NextResponse.json(
|
|
146
|
+
{ error: result.error, details: result.details },
|
|
147
|
+
{ status: result.status }
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
return NextResponse.json(result);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// src/helpers/auth.ts
|
|
154
|
+
import { NextResponse as NextResponse2 } from "next/server";
|
|
142
155
|
import {
|
|
143
156
|
getAuthenticatedUserCore,
|
|
144
|
-
isErrorResult
|
|
157
|
+
isErrorResult as isErrorResult2
|
|
145
158
|
} from "@solvapay/server";
|
|
146
159
|
async function getAuthenticatedUser(request, options = {}) {
|
|
147
160
|
const result = await getAuthenticatedUserCore(request, options);
|
|
148
|
-
if (
|
|
149
|
-
return
|
|
161
|
+
if (isErrorResult2(result)) {
|
|
162
|
+
return NextResponse2.json(
|
|
150
163
|
{ error: result.error, details: result.details },
|
|
151
164
|
{ status: result.status }
|
|
152
165
|
);
|
|
@@ -155,12 +168,12 @@ async function getAuthenticatedUser(request, options = {}) {
|
|
|
155
168
|
}
|
|
156
169
|
|
|
157
170
|
// src/helpers/customer.ts
|
|
158
|
-
import { NextResponse as
|
|
159
|
-
import { syncCustomerCore, getCustomerBalanceCore, isErrorResult as
|
|
171
|
+
import { NextResponse as NextResponse3 } from "next/server";
|
|
172
|
+
import { syncCustomerCore, getCustomerBalanceCore, isErrorResult as isErrorResult3 } from "@solvapay/server";
|
|
160
173
|
async function syncCustomer(request, options = {}) {
|
|
161
174
|
const result = await syncCustomerCore(request, options);
|
|
162
|
-
if (
|
|
163
|
-
return
|
|
175
|
+
if (isErrorResult3(result)) {
|
|
176
|
+
return NextResponse3.json(
|
|
164
177
|
{ error: result.error, details: result.details },
|
|
165
178
|
{ status: result.status }
|
|
166
179
|
);
|
|
@@ -169,223 +182,130 @@ async function syncCustomer(request, options = {}) {
|
|
|
169
182
|
}
|
|
170
183
|
async function getCustomerBalance(request, options = {}) {
|
|
171
184
|
const result = await getCustomerBalanceCore(request, options);
|
|
172
|
-
|
|
173
|
-
return NextResponse2.json(
|
|
174
|
-
{ error: result.error, details: result.details },
|
|
175
|
-
{ status: result.status }
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
return result;
|
|
185
|
+
return toNextRouteResponse(result);
|
|
179
186
|
}
|
|
180
187
|
|
|
181
188
|
// src/helpers/payment.ts
|
|
182
|
-
import { NextResponse as NextResponse3 } from "next/server";
|
|
183
189
|
import {
|
|
184
190
|
createPaymentIntentCore,
|
|
185
191
|
createTopupPaymentIntentCore,
|
|
186
192
|
processPaymentIntentCore,
|
|
187
|
-
isErrorResult as
|
|
193
|
+
isErrorResult as isErrorResult5
|
|
188
194
|
} from "@solvapay/server";
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return NextResponse3.json(
|
|
194
|
-
{ error: result.error, details: result.details },
|
|
195
|
-
{ status: result.status }
|
|
196
|
-
);
|
|
197
|
-
}
|
|
195
|
+
|
|
196
|
+
// src/helpers/_cache.ts
|
|
197
|
+
import { isErrorResult as isErrorResult4, getAuthenticatedUserCore as getAuthenticatedUserCore2 } from "@solvapay/server";
|
|
198
|
+
async function invalidatePurchaseCacheForRequest(request) {
|
|
198
199
|
try {
|
|
199
200
|
const userResult = await getAuthenticatedUserCore2(request);
|
|
200
|
-
if (!
|
|
201
|
+
if (!isErrorResult4(userResult)) {
|
|
201
202
|
clearPurchaseCache(userResult.userId);
|
|
202
203
|
}
|
|
203
204
|
} catch {
|
|
204
205
|
}
|
|
205
|
-
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// src/helpers/payment.ts
|
|
209
|
+
async function createPaymentIntent(request, body, options = {}) {
|
|
210
|
+
const result = await createPaymentIntentCore(request, body, options);
|
|
211
|
+
if (!isErrorResult5(result)) {
|
|
212
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
213
|
+
}
|
|
214
|
+
return toNextRouteResponse(result);
|
|
206
215
|
}
|
|
207
216
|
async function createTopupPaymentIntent(request, body, options = {}) {
|
|
208
217
|
const result = await createTopupPaymentIntentCore(request, body, options);
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
{ error: result.error, details: result.details },
|
|
212
|
-
{ status: result.status }
|
|
213
|
-
);
|
|
218
|
+
if (!isErrorResult5(result)) {
|
|
219
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
214
220
|
}
|
|
215
|
-
|
|
216
|
-
const userResult = await getAuthenticatedUserCore2(request);
|
|
217
|
-
if (!isErrorResult3(userResult)) {
|
|
218
|
-
clearPurchaseCache(userResult.userId);
|
|
219
|
-
}
|
|
220
|
-
} catch {
|
|
221
|
-
}
|
|
222
|
-
return result;
|
|
221
|
+
return toNextRouteResponse(result);
|
|
223
222
|
}
|
|
224
223
|
async function processPaymentIntent(request, body, options = {}) {
|
|
225
224
|
const result = await processPaymentIntentCore(request, body, options);
|
|
226
|
-
if (
|
|
227
|
-
|
|
228
|
-
{ error: result.error, details: result.details },
|
|
229
|
-
{ status: result.status }
|
|
230
|
-
);
|
|
225
|
+
if (!isErrorResult5(result)) {
|
|
226
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
231
227
|
}
|
|
232
|
-
|
|
233
|
-
const userResult = await getAuthenticatedUserCore2(request);
|
|
234
|
-
if (!isErrorResult3(userResult)) {
|
|
235
|
-
clearPurchaseCache(userResult.userId);
|
|
236
|
-
}
|
|
237
|
-
} catch {
|
|
238
|
-
}
|
|
239
|
-
return result;
|
|
228
|
+
return toNextRouteResponse(result);
|
|
240
229
|
}
|
|
241
230
|
|
|
242
231
|
// src/helpers/checkout.ts
|
|
243
|
-
import { NextResponse as NextResponse4 } from "next/server";
|
|
244
232
|
import {
|
|
245
233
|
createCheckoutSessionCore,
|
|
246
|
-
createCustomerSessionCore
|
|
247
|
-
isErrorResult as isErrorResult4
|
|
234
|
+
createCustomerSessionCore
|
|
248
235
|
} from "@solvapay/server";
|
|
249
236
|
async function createCheckoutSession(request, body, options = {}) {
|
|
250
237
|
const result = await createCheckoutSessionCore(request, body, options);
|
|
251
|
-
|
|
252
|
-
return NextResponse4.json(
|
|
253
|
-
{ error: result.error, details: result.details },
|
|
254
|
-
{ status: result.status }
|
|
255
|
-
);
|
|
256
|
-
}
|
|
257
|
-
return result;
|
|
238
|
+
return toNextRouteResponse(result);
|
|
258
239
|
}
|
|
259
240
|
async function createCustomerSession(request, options = {}) {
|
|
260
241
|
const result = await createCustomerSessionCore(request, options);
|
|
261
|
-
|
|
262
|
-
return NextResponse4.json(
|
|
263
|
-
{ error: result.error, details: result.details },
|
|
264
|
-
{ status: result.status }
|
|
265
|
-
);
|
|
266
|
-
}
|
|
267
|
-
return result;
|
|
242
|
+
return toNextRouteResponse(result);
|
|
268
243
|
}
|
|
269
244
|
|
|
270
245
|
// src/helpers/activation.ts
|
|
271
|
-
import {
|
|
272
|
-
import { activatePlanCore, isErrorResult as isErrorResult5 } from "@solvapay/server";
|
|
273
|
-
import { getAuthenticatedUserCore as getAuthenticatedUserCore3 } from "@solvapay/server";
|
|
246
|
+
import { activatePlanCore, isErrorResult as isErrorResult6 } from "@solvapay/server";
|
|
274
247
|
async function activatePlan(request, body, options = {}) {
|
|
275
248
|
const result = await activatePlanCore(request, body, options);
|
|
276
|
-
if (
|
|
277
|
-
|
|
278
|
-
{ error: result.error, details: result.details },
|
|
279
|
-
{ status: result.status }
|
|
280
|
-
);
|
|
281
|
-
}
|
|
282
|
-
try {
|
|
283
|
-
const userResult = await getAuthenticatedUserCore3(request);
|
|
284
|
-
if (!isErrorResult5(userResult)) {
|
|
285
|
-
clearPurchaseCache(userResult.userId);
|
|
286
|
-
}
|
|
287
|
-
} catch {
|
|
249
|
+
if (!isErrorResult6(result)) {
|
|
250
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
288
251
|
}
|
|
289
|
-
return result;
|
|
252
|
+
return toNextRouteResponse(result);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// src/helpers/payment-method.ts
|
|
256
|
+
import { getPaymentMethodCore } from "@solvapay/server";
|
|
257
|
+
async function getPaymentMethod(request, options = {}) {
|
|
258
|
+
const result = await getPaymentMethodCore(request, options);
|
|
259
|
+
return toNextRouteResponse(result);
|
|
290
260
|
}
|
|
291
261
|
|
|
292
262
|
// src/helpers/renewal.ts
|
|
293
|
-
import { NextResponse as NextResponse6 } from "next/server";
|
|
294
263
|
import {
|
|
295
264
|
cancelPurchaseCore,
|
|
296
265
|
reactivatePurchaseCore,
|
|
297
|
-
isErrorResult as
|
|
298
|
-
getAuthenticatedUserCore as getAuthenticatedUserCore4
|
|
266
|
+
isErrorResult as isErrorResult7
|
|
299
267
|
} from "@solvapay/server";
|
|
300
268
|
async function cancelRenewal(request, body, options = {}) {
|
|
301
269
|
const result = await cancelPurchaseCore(request, body, options);
|
|
302
|
-
if (
|
|
303
|
-
|
|
304
|
-
{ error: result.error, details: result.details },
|
|
305
|
-
{ status: result.status }
|
|
306
|
-
);
|
|
307
|
-
}
|
|
308
|
-
try {
|
|
309
|
-
const userResult = await getAuthenticatedUserCore4(request);
|
|
310
|
-
if (!isErrorResult6(userResult)) {
|
|
311
|
-
clearPurchaseCache(userResult.userId);
|
|
312
|
-
}
|
|
313
|
-
} catch {
|
|
270
|
+
if (!isErrorResult7(result)) {
|
|
271
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
314
272
|
}
|
|
315
|
-
return result;
|
|
273
|
+
return toNextRouteResponse(result);
|
|
316
274
|
}
|
|
317
275
|
async function reactivateRenewal(request, body, options = {}) {
|
|
318
276
|
const result = await reactivatePurchaseCore(request, body, options);
|
|
319
|
-
if (
|
|
320
|
-
|
|
321
|
-
{ error: result.error, details: result.details },
|
|
322
|
-
{ status: result.status }
|
|
323
|
-
);
|
|
277
|
+
if (!isErrorResult7(result)) {
|
|
278
|
+
await invalidatePurchaseCacheForRequest(request);
|
|
324
279
|
}
|
|
325
|
-
|
|
326
|
-
const userResult = await getAuthenticatedUserCore4(request);
|
|
327
|
-
if (!isErrorResult6(userResult)) {
|
|
328
|
-
clearPurchaseCache(userResult.userId);
|
|
329
|
-
}
|
|
330
|
-
} catch {
|
|
331
|
-
}
|
|
332
|
-
return result;
|
|
280
|
+
return toNextRouteResponse(result);
|
|
333
281
|
}
|
|
334
282
|
|
|
335
283
|
// src/helpers/plans.ts
|
|
336
|
-
import {
|
|
337
|
-
import { listPlansCore, isErrorResult as isErrorResult7 } from "@solvapay/server";
|
|
284
|
+
import { listPlansCore } from "@solvapay/server";
|
|
338
285
|
async function listPlans(request, options = {}) {
|
|
339
286
|
const result = await listPlansCore(request, options);
|
|
340
|
-
|
|
341
|
-
return NextResponse7.json(
|
|
342
|
-
{ error: result.error, details: result.details },
|
|
343
|
-
{ status: result.status }
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
return result;
|
|
287
|
+
return toNextRouteResponse(result);
|
|
347
288
|
}
|
|
348
289
|
|
|
349
290
|
// src/helpers/merchant.ts
|
|
350
|
-
import {
|
|
351
|
-
import { getMerchantCore, isErrorResult as isErrorResult8 } from "@solvapay/server";
|
|
291
|
+
import { getMerchantCore } from "@solvapay/server";
|
|
352
292
|
async function getMerchant(request, options = {}) {
|
|
353
293
|
const result = await getMerchantCore(request, options);
|
|
354
|
-
|
|
355
|
-
return NextResponse8.json(
|
|
356
|
-
{ error: result.error, details: result.details },
|
|
357
|
-
{ status: result.status }
|
|
358
|
-
);
|
|
359
|
-
}
|
|
360
|
-
return result;
|
|
294
|
+
return toNextRouteResponse(result);
|
|
361
295
|
}
|
|
362
296
|
|
|
363
297
|
// src/helpers/product.ts
|
|
364
|
-
import {
|
|
365
|
-
import { getProductCore, isErrorResult as isErrorResult9 } from "@solvapay/server";
|
|
298
|
+
import { getProductCore } from "@solvapay/server";
|
|
366
299
|
async function getProduct(request, options = {}) {
|
|
367
300
|
const result = await getProductCore(request, options);
|
|
368
|
-
|
|
369
|
-
return NextResponse9.json(
|
|
370
|
-
{ error: result.error, details: result.details },
|
|
371
|
-
{ status: result.status }
|
|
372
|
-
);
|
|
373
|
-
}
|
|
374
|
-
return result;
|
|
301
|
+
return toNextRouteResponse(result);
|
|
375
302
|
}
|
|
376
303
|
|
|
377
304
|
// src/helpers/usage.ts
|
|
378
|
-
import {
|
|
379
|
-
import { trackUsageCore, isErrorResult as isErrorResult10 } from "@solvapay/server";
|
|
305
|
+
import { trackUsageCore } from "@solvapay/server";
|
|
380
306
|
async function trackUsage(request, body, options = {}) {
|
|
381
307
|
const result = await trackUsageCore(request, body, options);
|
|
382
|
-
|
|
383
|
-
return NextResponse10.json(
|
|
384
|
-
{ error: result.error, details: result.details },
|
|
385
|
-
{ status: result.status }
|
|
386
|
-
);
|
|
387
|
-
}
|
|
388
|
-
return NextResponse10.json(result);
|
|
308
|
+
return toNextRouteResponse(result);
|
|
389
309
|
}
|
|
390
310
|
|
|
391
311
|
// src/index.ts
|
|
@@ -397,7 +317,7 @@ async function checkPurchase(request, options = {}) {
|
|
|
397
317
|
if (userIdOrError instanceof Response) {
|
|
398
318
|
const clonedResponse = userIdOrError.clone();
|
|
399
319
|
const body = await clonedResponse.json().catch(() => ({ error: "Unauthorized" }));
|
|
400
|
-
return
|
|
320
|
+
return NextResponse4.json(body, { status: userIdOrError.status });
|
|
401
321
|
}
|
|
402
322
|
const userId = userIdOrError;
|
|
403
323
|
const response = await deduplicator.deduplicate(
|
|
@@ -410,17 +330,11 @@ async function checkPurchase(request, options = {}) {
|
|
|
410
330
|
});
|
|
411
331
|
}
|
|
412
332
|
);
|
|
413
|
-
|
|
414
|
-
return NextResponse11.json(
|
|
415
|
-
{ error: response.error, details: response.details },
|
|
416
|
-
{ status: response.status }
|
|
417
|
-
);
|
|
418
|
-
}
|
|
419
|
-
return response;
|
|
333
|
+
return toNextRouteResponse(response);
|
|
420
334
|
} catch (error) {
|
|
421
335
|
console.error("Check purchase failed:", error);
|
|
422
336
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
423
|
-
return
|
|
337
|
+
return NextResponse4.json(
|
|
424
338
|
{ error: "Failed to check purchase", details: errorMessage },
|
|
425
339
|
{ status: 500 }
|
|
426
340
|
);
|
|
@@ -441,6 +355,7 @@ export {
|
|
|
441
355
|
getAuthenticatedUser,
|
|
442
356
|
getCustomerBalance,
|
|
443
357
|
getMerchant,
|
|
358
|
+
getPaymentMethod,
|
|
444
359
|
getProduct,
|
|
445
360
|
getPurchaseCacheStats,
|
|
446
361
|
listPlans,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solvapay/next",
|
|
3
|
-
"version": "1.0.8
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@solvapay/core": "1.0.8-preview.
|
|
38
|
-
"@solvapay/
|
|
39
|
-
"@solvapay/
|
|
37
|
+
"@solvapay/core": "1.0.8-preview.10",
|
|
38
|
+
"@solvapay/server": "1.0.9",
|
|
39
|
+
"@solvapay/auth": "1.0.8-preview.10"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"next": ">=13.0.0"
|