@better-auth/stripe 1.7.0-beta.2 → 1.7.0-beta.3
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/client.d.mts
CHANGED
package/dist/client.mjs
CHANGED
|
@@ -341,21 +341,24 @@ type SubscriptionOptions = {
|
|
|
341
341
|
plan: StripePlan;
|
|
342
342
|
}, ctx: GenericEndpointContext) => Promise<void>) | undefined;
|
|
343
343
|
/**
|
|
344
|
-
* A callback to run
|
|
344
|
+
* A callback to run on every subscription update webhook. Use `stripeSubscription`
|
|
345
|
+
* to read fields that are not persisted in the local subscription row.
|
|
345
346
|
* @returns
|
|
346
347
|
*/
|
|
347
348
|
onSubscriptionUpdate?: ((data: {
|
|
348
349
|
event: Stripe.Event;
|
|
350
|
+
stripeSubscription: Stripe.Subscription;
|
|
349
351
|
subscription: Subscription;
|
|
350
352
|
}) => Promise<void>) | undefined;
|
|
351
353
|
/**
|
|
352
|
-
* A callback to run
|
|
354
|
+
* A callback to run once when a subscription transitions into a pending-cancel state
|
|
355
|
+
* (e.g. `cancel_at_period_end` or a scheduled `cancel_at`).
|
|
353
356
|
* @returns
|
|
354
357
|
*/
|
|
355
358
|
onSubscriptionCancel?: ((data: {
|
|
356
359
|
event?: Stripe.Event;
|
|
357
|
-
subscription: Subscription;
|
|
358
360
|
stripeSubscription: Stripe.Subscription;
|
|
361
|
+
subscription: Subscription;
|
|
359
362
|
cancellationDetails?: Stripe.Subscription.CancellationDetails | null;
|
|
360
363
|
}) => Promise<void>) | undefined;
|
|
361
364
|
/**
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as CheckoutSessionLocale, c as StripeOptions, d as SubscriptionOptions, f as WithActiveOrganizationId, i as CheckoutSessionLineItem, l as StripePlan, n as stripe, o as CustomerType, p as WithStripeCustomerId, r as AuthorizeReferenceAction, s as StripeCtxSession, t as StripePlugin, u as Subscription } from "./index-
|
|
1
|
+
import { a as CheckoutSessionLocale, c as StripeOptions, d as SubscriptionOptions, f as WithActiveOrganizationId, i as CheckoutSessionLineItem, l as StripePlan, n as stripe, o as CustomerType, p as WithStripeCustomerId, r as AuthorizeReferenceAction, s as StripeCtxSession, t as StripePlugin, u as Subscription } from "./index-C-c67H8y.mjs";
|
|
2
2
|
export { AuthorizeReferenceAction, CheckoutSessionLineItem, CheckoutSessionLocale, CustomerType, StripeCtxSession, StripeOptions, StripePlan, StripePlugin, Subscription, SubscriptionOptions, WithActiveOrganizationId, WithStripeCustomerId, stripe };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as STRIPE_ERROR_CODES, t as PACKAGE_VERSION } from "./version-
|
|
1
|
+
import { n as STRIPE_ERROR_CODES, t as PACKAGE_VERSION } from "./version-CzGWwAIx.mjs";
|
|
2
2
|
import { APIError, HIDE_METADATA } from "better-auth";
|
|
3
3
|
import { defu } from "defu";
|
|
4
4
|
import { createAuthEndpoint, createAuthMiddleware } from "@better-auth/core/api";
|
|
@@ -234,13 +234,13 @@ async function onCheckoutSessionCompleted(ctx, options, event) {
|
|
|
234
234
|
async function onSubscriptionCreated(ctx, options, event) {
|
|
235
235
|
try {
|
|
236
236
|
if (!options.subscription?.enabled) return;
|
|
237
|
-
const
|
|
238
|
-
const stripeCustomerId =
|
|
237
|
+
const stripeSubscriptionCreated = event.data.object;
|
|
238
|
+
const stripeCustomerId = stripeSubscriptionCreated.customer?.toString();
|
|
239
239
|
if (!stripeCustomerId) {
|
|
240
240
|
ctx.context.logger.warn(`Stripe webhook warning: customer.subscription.created event received without customer ID`);
|
|
241
241
|
return;
|
|
242
242
|
}
|
|
243
|
-
const { subscriptionId } = subscriptionMetadata.get(
|
|
243
|
+
const { subscriptionId } = subscriptionMetadata.get(stripeSubscriptionCreated.metadata);
|
|
244
244
|
const existingSubscription = await ctx.context.adapter.findOne({
|
|
245
245
|
model: "subscription",
|
|
246
246
|
where: subscriptionId ? [{
|
|
@@ -248,7 +248,7 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
248
248
|
value: subscriptionId
|
|
249
249
|
}] : [{
|
|
250
250
|
field: "stripeSubscriptionId",
|
|
251
|
-
value:
|
|
251
|
+
value: stripeSubscriptionCreated.id
|
|
252
252
|
}]
|
|
253
253
|
});
|
|
254
254
|
if (existingSubscription) {
|
|
@@ -261,9 +261,9 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
261
261
|
return;
|
|
262
262
|
}
|
|
263
263
|
const { referenceId, customerType } = reference;
|
|
264
|
-
const resolved = await resolvePlanItem(options,
|
|
264
|
+
const resolved = await resolvePlanItem(options, stripeSubscriptionCreated.items.data);
|
|
265
265
|
if (!resolved) {
|
|
266
|
-
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${
|
|
266
|
+
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${stripeSubscriptionCreated.id} has no items matching a configured plan`);
|
|
267
267
|
return;
|
|
268
268
|
}
|
|
269
269
|
const { item: subscriptionItem, plan } = resolved;
|
|
@@ -271,12 +271,12 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
271
271
|
ctx.context.logger.warn(`Stripe webhook warning: No matching plan found for priceId: ${subscriptionItem.price.id}`);
|
|
272
272
|
return;
|
|
273
273
|
}
|
|
274
|
-
const seats = resolveQuantity(
|
|
274
|
+
const seats = resolveQuantity(stripeSubscriptionCreated.items.data, subscriptionItem, plan.seatPriceId);
|
|
275
275
|
const periodStart = /* @__PURE__ */ new Date(subscriptionItem.current_period_start * 1e3);
|
|
276
276
|
const periodEnd = /* @__PURE__ */ new Date(subscriptionItem.current_period_end * 1e3);
|
|
277
|
-
const trial =
|
|
278
|
-
trialStart: /* @__PURE__ */ new Date(
|
|
279
|
-
trialEnd: /* @__PURE__ */ new Date(
|
|
277
|
+
const trial = stripeSubscriptionCreated.trial_start && stripeSubscriptionCreated.trial_end ? {
|
|
278
|
+
trialStart: /* @__PURE__ */ new Date(stripeSubscriptionCreated.trial_start * 1e3),
|
|
279
|
+
trialEnd: /* @__PURE__ */ new Date(stripeSubscriptionCreated.trial_end * 1e3)
|
|
280
280
|
} : {};
|
|
281
281
|
const newSubscription = await ctx.context.adapter.create({
|
|
282
282
|
model: "subscription",
|
|
@@ -285,8 +285,8 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
285
285
|
...plan.limits ? { limits: plan.limits } : {},
|
|
286
286
|
referenceId,
|
|
287
287
|
stripeCustomerId,
|
|
288
|
-
stripeSubscriptionId:
|
|
289
|
-
status:
|
|
288
|
+
stripeSubscriptionId: stripeSubscriptionCreated.id,
|
|
289
|
+
status: stripeSubscriptionCreated.status,
|
|
290
290
|
plan: plan.name.toLowerCase(),
|
|
291
291
|
periodStart,
|
|
292
292
|
periodEnd,
|
|
@@ -294,11 +294,11 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
294
294
|
billingInterval: subscriptionItem.price.recurring?.interval
|
|
295
295
|
}
|
|
296
296
|
});
|
|
297
|
-
ctx.context.logger.info(`Stripe webhook: Created subscription ${
|
|
297
|
+
ctx.context.logger.info(`Stripe webhook: Created subscription ${stripeSubscriptionCreated.id} for ${customerType} ${referenceId} from dashboard`);
|
|
298
298
|
await options.subscription.onSubscriptionCreated?.({
|
|
299
299
|
event,
|
|
300
300
|
subscription: newSubscription,
|
|
301
|
-
stripeSubscription:
|
|
301
|
+
stripeSubscription: stripeSubscriptionCreated,
|
|
302
302
|
plan
|
|
303
303
|
});
|
|
304
304
|
} catch (error) {
|
|
@@ -308,15 +308,15 @@ async function onSubscriptionCreated(ctx, options, event) {
|
|
|
308
308
|
async function onSubscriptionUpdated(ctx, options, event) {
|
|
309
309
|
try {
|
|
310
310
|
if (!options.subscription?.enabled) return;
|
|
311
|
-
const
|
|
312
|
-
const resolved = await resolvePlanItem(options,
|
|
311
|
+
const stripeSubscriptionUpdated = event.data.object;
|
|
312
|
+
const resolved = await resolvePlanItem(options, stripeSubscriptionUpdated.items.data);
|
|
313
313
|
if (!resolved) {
|
|
314
|
-
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${
|
|
314
|
+
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${stripeSubscriptionUpdated.id} has no items matching a configured plan`);
|
|
315
315
|
return;
|
|
316
316
|
}
|
|
317
317
|
const { item: subscriptionItem, plan } = resolved;
|
|
318
|
-
const { subscriptionId } = subscriptionMetadata.get(
|
|
319
|
-
const customerId =
|
|
318
|
+
const { subscriptionId } = subscriptionMetadata.get(stripeSubscriptionUpdated.metadata);
|
|
319
|
+
const customerId = stripeSubscriptionUpdated.customer?.toString();
|
|
320
320
|
let subscription = await ctx.context.adapter.findOne({
|
|
321
321
|
model: "subscription",
|
|
322
322
|
where: subscriptionId ? [{
|
|
@@ -324,7 +324,7 @@ async function onSubscriptionUpdated(ctx, options, event) {
|
|
|
324
324
|
value: subscriptionId
|
|
325
325
|
}] : [{
|
|
326
326
|
field: "stripeSubscriptionId",
|
|
327
|
-
value:
|
|
327
|
+
value: stripeSubscriptionUpdated.id
|
|
328
328
|
}]
|
|
329
329
|
});
|
|
330
330
|
if (!subscription) {
|
|
@@ -344,12 +344,12 @@ async function onSubscriptionUpdated(ctx, options, event) {
|
|
|
344
344
|
subscription = activeSub;
|
|
345
345
|
} else subscription = subs[0];
|
|
346
346
|
}
|
|
347
|
-
const seats = plan ? resolveQuantity(
|
|
348
|
-
const trial =
|
|
349
|
-
trialStart: /* @__PURE__ */ new Date(
|
|
350
|
-
trialEnd: /* @__PURE__ */ new Date(
|
|
347
|
+
const seats = plan ? resolveQuantity(stripeSubscriptionUpdated.items.data, subscriptionItem, plan.seatPriceId) : subscriptionItem.quantity;
|
|
348
|
+
const trial = stripeSubscriptionUpdated.trial_start && stripeSubscriptionUpdated.trial_end ? {
|
|
349
|
+
trialStart: /* @__PURE__ */ new Date(stripeSubscriptionUpdated.trial_start * 1e3),
|
|
350
|
+
trialEnd: /* @__PURE__ */ new Date(stripeSubscriptionUpdated.trial_end * 1e3)
|
|
351
351
|
} : {};
|
|
352
|
-
const
|
|
352
|
+
const subscriptionUpdated = await ctx.context.adapter.update({
|
|
353
353
|
model: "subscription",
|
|
354
354
|
update: {
|
|
355
355
|
...trial,
|
|
@@ -358,36 +358,41 @@ async function onSubscriptionUpdated(ctx, options, event) {
|
|
|
358
358
|
limits: plan.limits
|
|
359
359
|
} : {},
|
|
360
360
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
361
|
-
status:
|
|
361
|
+
status: stripeSubscriptionUpdated.status,
|
|
362
362
|
periodStart: /* @__PURE__ */ new Date(subscriptionItem.current_period_start * 1e3),
|
|
363
363
|
periodEnd: /* @__PURE__ */ new Date(subscriptionItem.current_period_end * 1e3),
|
|
364
|
-
cancelAtPeriodEnd:
|
|
365
|
-
cancelAt:
|
|
366
|
-
canceledAt:
|
|
367
|
-
endedAt:
|
|
364
|
+
cancelAtPeriodEnd: stripeSubscriptionUpdated.cancel_at_period_end,
|
|
365
|
+
cancelAt: stripeSubscriptionUpdated.cancel_at ? /* @__PURE__ */ new Date(stripeSubscriptionUpdated.cancel_at * 1e3) : null,
|
|
366
|
+
canceledAt: stripeSubscriptionUpdated.canceled_at ? /* @__PURE__ */ new Date(stripeSubscriptionUpdated.canceled_at * 1e3) : null,
|
|
367
|
+
endedAt: stripeSubscriptionUpdated.ended_at ? /* @__PURE__ */ new Date(stripeSubscriptionUpdated.ended_at * 1e3) : null,
|
|
368
368
|
seats,
|
|
369
|
-
stripeSubscriptionId:
|
|
369
|
+
stripeSubscriptionId: stripeSubscriptionUpdated.id,
|
|
370
370
|
billingInterval: subscriptionItem.price.recurring?.interval,
|
|
371
|
-
stripeScheduleId:
|
|
371
|
+
stripeScheduleId: stripeSubscriptionUpdated.schedule ? typeof stripeSubscriptionUpdated.schedule === "string" ? stripeSubscriptionUpdated.schedule : stripeSubscriptionUpdated.schedule.id : null
|
|
372
372
|
},
|
|
373
373
|
where: [{
|
|
374
374
|
field: "id",
|
|
375
375
|
value: subscription.id
|
|
376
376
|
}]
|
|
377
377
|
});
|
|
378
|
-
if (subscriptionUpdated
|
|
379
|
-
subscription,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
378
|
+
if (!subscriptionUpdated) {
|
|
379
|
+
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${subscription.id} update returned no row (likely deleted concurrently), skipping callbacks`);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
if (stripeSubscriptionUpdated.status === "active" && isStripePendingCancel(stripeSubscriptionUpdated) && !isPendingCancel(subscription)) await options.subscription.onSubscriptionCancel?.({
|
|
383
|
+
event,
|
|
384
|
+
subscription: subscriptionUpdated,
|
|
385
|
+
stripeSubscription: stripeSubscriptionUpdated,
|
|
386
|
+
cancellationDetails: stripeSubscriptionUpdated.cancellation_details || void 0
|
|
383
387
|
});
|
|
384
388
|
await options.subscription.onSubscriptionUpdate?.({
|
|
385
389
|
event,
|
|
386
|
-
subscription:
|
|
390
|
+
subscription: subscriptionUpdated,
|
|
391
|
+
stripeSubscription: stripeSubscriptionUpdated
|
|
387
392
|
});
|
|
388
393
|
if (plan) {
|
|
389
|
-
if (
|
|
390
|
-
if (
|
|
394
|
+
if (stripeSubscriptionUpdated.status === "active" && subscription.status === "trialing" && plan.freeTrial?.onTrialEnd) await plan.freeTrial.onTrialEnd({ subscription: subscriptionUpdated }, ctx);
|
|
395
|
+
if (stripeSubscriptionUpdated.status === "incomplete_expired" && subscription.status === "trialing" && plan.freeTrial?.onTrialExpired) await plan.freeTrial.onTrialExpired(subscriptionUpdated, ctx);
|
|
391
396
|
}
|
|
392
397
|
} catch (error) {
|
|
393
398
|
ctx.context.logger.error(`Stripe webhook failed. Error: ${error}`);
|
|
@@ -396,8 +401,8 @@ async function onSubscriptionUpdated(ctx, options, event) {
|
|
|
396
401
|
async function onSubscriptionDeleted(ctx, options, event) {
|
|
397
402
|
if (!options.subscription?.enabled) return;
|
|
398
403
|
try {
|
|
399
|
-
const
|
|
400
|
-
const subscriptionId =
|
|
404
|
+
const stripeSubscriptionDeleted = event.data.object;
|
|
405
|
+
const subscriptionId = stripeSubscriptionDeleted.id;
|
|
401
406
|
const subscription = await ctx.context.adapter.findOne({
|
|
402
407
|
model: "subscription",
|
|
403
408
|
where: [{
|
|
@@ -406,11 +411,11 @@ async function onSubscriptionDeleted(ctx, options, event) {
|
|
|
406
411
|
}]
|
|
407
412
|
});
|
|
408
413
|
if (subscription) {
|
|
409
|
-
const trial =
|
|
410
|
-
trialStart: /* @__PURE__ */ new Date(
|
|
411
|
-
trialEnd: /* @__PURE__ */ new Date(
|
|
414
|
+
const trial = stripeSubscriptionDeleted.trial_start && stripeSubscriptionDeleted.trial_end ? {
|
|
415
|
+
trialStart: /* @__PURE__ */ new Date(stripeSubscriptionDeleted.trial_start * 1e3),
|
|
416
|
+
trialEnd: /* @__PURE__ */ new Date(stripeSubscriptionDeleted.trial_end * 1e3)
|
|
412
417
|
} : {};
|
|
413
|
-
await ctx.context.adapter.update({
|
|
418
|
+
const subscriptionUpdated = await ctx.context.adapter.update({
|
|
414
419
|
model: "subscription",
|
|
415
420
|
where: [{
|
|
416
421
|
field: "id",
|
|
@@ -420,17 +425,21 @@ async function onSubscriptionDeleted(ctx, options, event) {
|
|
|
420
425
|
...trial,
|
|
421
426
|
status: "canceled",
|
|
422
427
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
423
|
-
cancelAtPeriodEnd:
|
|
424
|
-
cancelAt:
|
|
425
|
-
canceledAt:
|
|
426
|
-
endedAt:
|
|
428
|
+
cancelAtPeriodEnd: stripeSubscriptionDeleted.cancel_at_period_end,
|
|
429
|
+
cancelAt: stripeSubscriptionDeleted.cancel_at ? /* @__PURE__ */ new Date(stripeSubscriptionDeleted.cancel_at * 1e3) : null,
|
|
430
|
+
canceledAt: stripeSubscriptionDeleted.canceled_at ? /* @__PURE__ */ new Date(stripeSubscriptionDeleted.canceled_at * 1e3) : null,
|
|
431
|
+
endedAt: stripeSubscriptionDeleted.ended_at ? /* @__PURE__ */ new Date(stripeSubscriptionDeleted.ended_at * 1e3) : null,
|
|
427
432
|
stripeScheduleId: null
|
|
428
433
|
}
|
|
429
434
|
});
|
|
435
|
+
if (!subscriptionUpdated) {
|
|
436
|
+
ctx.context.logger.warn(`Stripe webhook warning: Subscription ${subscription.id} update returned no row (likely deleted concurrently), skipping callbacks`);
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
430
439
|
await options.subscription.onSubscriptionDeleted?.({
|
|
431
440
|
event,
|
|
432
|
-
stripeSubscription:
|
|
433
|
-
subscription
|
|
441
|
+
stripeSubscription: stripeSubscriptionDeleted,
|
|
442
|
+
subscription: subscriptionUpdated
|
|
434
443
|
});
|
|
435
444
|
} else ctx.context.logger.warn(`Stripe webhook error: Subscription not found for subscriptionId: ${subscriptionId}`);
|
|
436
445
|
} catch (error) {
|
|
@@ -983,16 +992,23 @@ const upgradeSubscription = (options) => {
|
|
|
983
992
|
})).some((s) => {
|
|
984
993
|
return !!(s.trialStart || s.trialEnd) || s.status === "trialing";
|
|
985
994
|
}) && plan.freeTrial ? { trial_period_days: plan.freeTrial.days } : void 0;
|
|
995
|
+
const { mode: _mode, customer: _customer, customer_email: _customer_email, success_url: _success_url, cancel_url: _cancel_url, line_items: _line_items, client_reference_id: _client_reference_id, ...additionalParams } = params?.params ?? {};
|
|
986
996
|
const response = {
|
|
987
997
|
...await client.checkout.sessions.create({
|
|
998
|
+
...additionalParams,
|
|
999
|
+
mode: "subscription",
|
|
988
1000
|
...customerId ? {
|
|
989
1001
|
customer: customerId,
|
|
990
|
-
|
|
1002
|
+
customer_email: void 0,
|
|
1003
|
+
customer_update: additionalParams.customer_update ?? (customerType !== "user" ? { address: "auto" } : {
|
|
991
1004
|
name: "auto",
|
|
992
1005
|
address: "auto"
|
|
993
|
-
}
|
|
994
|
-
} : {
|
|
995
|
-
|
|
1006
|
+
})
|
|
1007
|
+
} : {
|
|
1008
|
+
customer: void 0,
|
|
1009
|
+
customer_email: user.email
|
|
1010
|
+
},
|
|
1011
|
+
locale: ctx.body.locale ?? additionalParams.locale,
|
|
996
1012
|
success_url: getUrl(ctx, `${ctx.context.baseURL}/subscription/success?callbackURL=${encodeURIComponent(ctx.body.successUrl)}&checkoutSessionId={CHECKOUT_SESSION_ID}`),
|
|
997
1013
|
cancel_url: getUrl(ctx, ctx.body.cancelUrl),
|
|
998
1014
|
line_items: [
|
|
@@ -1006,22 +1022,21 @@ const upgradeSubscription = (options) => {
|
|
|
1006
1022
|
}] : [],
|
|
1007
1023
|
...plan.lineItems ?? []
|
|
1008
1024
|
],
|
|
1025
|
+
client_reference_id: referenceId,
|
|
1009
1026
|
subscription_data: {
|
|
1010
1027
|
...freeTrial,
|
|
1028
|
+
...additionalParams.subscription_data,
|
|
1011
1029
|
metadata: subscriptionMetadata.set({
|
|
1012
1030
|
userId: user.id,
|
|
1013
1031
|
subscriptionId: subscription.id,
|
|
1014
1032
|
referenceId
|
|
1015
|
-
}, ctx.body.metadata,
|
|
1033
|
+
}, ctx.body.metadata, additionalParams.subscription_data?.metadata)
|
|
1016
1034
|
},
|
|
1017
|
-
mode: "subscription",
|
|
1018
|
-
client_reference_id: referenceId,
|
|
1019
|
-
...params?.params,
|
|
1020
1035
|
metadata: subscriptionMetadata.set({
|
|
1021
1036
|
userId: user.id,
|
|
1022
1037
|
subscriptionId: subscription.id,
|
|
1023
1038
|
referenceId
|
|
1024
|
-
}, ctx.body.metadata,
|
|
1039
|
+
}, ctx.body.metadata, additionalParams.metadata)
|
|
1025
1040
|
}, params?.options).catch(async (e) => {
|
|
1026
1041
|
throw ctx.error("BAD_REQUEST", {
|
|
1027
1042
|
message: e.message,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@better-auth/stripe",
|
|
3
|
-
"version": "1.7.0-beta.
|
|
3
|
+
"version": "1.7.0-beta.3",
|
|
4
4
|
"description": "Stripe plugin for Better Auth",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,14 +58,14 @@
|
|
|
58
58
|
"better-call": "1.3.5",
|
|
59
59
|
"stripe": "^22.0.1",
|
|
60
60
|
"tsdown": "0.21.1",
|
|
61
|
-
"@better-auth/core": "1.7.0-beta.
|
|
62
|
-
"better-auth": "1.7.0-beta.
|
|
61
|
+
"@better-auth/core": "1.7.0-beta.3",
|
|
62
|
+
"better-auth": "1.7.0-beta.3"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"better-call": "1.3.5",
|
|
66
66
|
"stripe": "^18 || ^19 || ^20 || ^21 || ^22",
|
|
67
|
-
"@better-auth/core": "^1.7.0-beta.
|
|
68
|
-
"better-auth": "^1.7.0-beta.
|
|
67
|
+
"@better-auth/core": "^1.7.0-beta.3",
|
|
68
|
+
"better-auth": "^1.7.0-beta.3"
|
|
69
69
|
},
|
|
70
70
|
"scripts": {
|
|
71
71
|
"build": "tsdown",
|