@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
@@ -1,4 +1,4 @@
1
- import { l as StripePlan, n as stripe } from "./index-C8Utp7ig.mjs";
1
+ import { l as StripePlan, n as stripe } from "./index-C-c67H8y.mjs";
2
2
  import * as better_auth0 from "better-auth";
3
3
 
4
4
  //#region src/error-codes.d.ts
package/dist/client.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { n as STRIPE_ERROR_CODES, t as PACKAGE_VERSION } from "./version-m_cDeAXN.mjs";
1
+ import { n as STRIPE_ERROR_CODES, t as PACKAGE_VERSION } from "./version-CzGWwAIx.mjs";
2
2
  //#region src/client.ts
3
3
  const stripeClient = (options) => {
4
4
  return {
@@ -341,21 +341,24 @@ type SubscriptionOptions = {
341
341
  plan: StripePlan;
342
342
  }, ctx: GenericEndpointContext) => Promise<void>) | undefined;
343
343
  /**
344
- * A callback to run after a user is about to cancel their subscription
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 after a user is about to cancel their subscription
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-C8Utp7ig.mjs";
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-m_cDeAXN.mjs";
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 subscriptionCreated = event.data.object;
238
- const stripeCustomerId = subscriptionCreated.customer?.toString();
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(subscriptionCreated.metadata);
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: subscriptionCreated.id
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, subscriptionCreated.items.data);
264
+ const resolved = await resolvePlanItem(options, stripeSubscriptionCreated.items.data);
265
265
  if (!resolved) {
266
- ctx.context.logger.warn(`Stripe webhook warning: Subscription ${subscriptionCreated.id} has no items matching a configured plan`);
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(subscriptionCreated.items.data, subscriptionItem, plan.seatPriceId);
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 = subscriptionCreated.trial_start && subscriptionCreated.trial_end ? {
278
- trialStart: /* @__PURE__ */ new Date(subscriptionCreated.trial_start * 1e3),
279
- trialEnd: /* @__PURE__ */ new Date(subscriptionCreated.trial_end * 1e3)
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: subscriptionCreated.id,
289
- status: subscriptionCreated.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 ${subscriptionCreated.id} for ${customerType} ${referenceId} from dashboard`);
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: subscriptionCreated,
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 subscriptionUpdated = event.data.object;
312
- const resolved = await resolvePlanItem(options, subscriptionUpdated.items.data);
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 ${subscriptionUpdated.id} has no items matching a configured plan`);
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(subscriptionUpdated.metadata);
319
- const customerId = subscriptionUpdated.customer?.toString();
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: subscriptionUpdated.id
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(subscriptionUpdated.items.data, subscriptionItem, plan.seatPriceId) : subscriptionItem.quantity;
348
- const trial = subscriptionUpdated.trial_start && subscriptionUpdated.trial_end ? {
349
- trialStart: /* @__PURE__ */ new Date(subscriptionUpdated.trial_start * 1e3),
350
- trialEnd: /* @__PURE__ */ new Date(subscriptionUpdated.trial_end * 1e3)
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 updatedSubscription = await ctx.context.adapter.update({
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: subscriptionUpdated.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: subscriptionUpdated.cancel_at_period_end,
365
- cancelAt: subscriptionUpdated.cancel_at ? /* @__PURE__ */ new Date(subscriptionUpdated.cancel_at * 1e3) : null,
366
- canceledAt: subscriptionUpdated.canceled_at ? /* @__PURE__ */ new Date(subscriptionUpdated.canceled_at * 1e3) : null,
367
- endedAt: subscriptionUpdated.ended_at ? /* @__PURE__ */ new Date(subscriptionUpdated.ended_at * 1e3) : null,
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: subscriptionUpdated.id,
369
+ stripeSubscriptionId: stripeSubscriptionUpdated.id,
370
370
  billingInterval: subscriptionItem.price.recurring?.interval,
371
- stripeScheduleId: subscriptionUpdated.schedule ? typeof subscriptionUpdated.schedule === "string" ? subscriptionUpdated.schedule : subscriptionUpdated.schedule.id : null
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.status === "active" && isStripePendingCancel(subscriptionUpdated) && !isPendingCancel(subscription)) await options.subscription.onSubscriptionCancel?.({
379
- subscription,
380
- cancellationDetails: subscriptionUpdated.cancellation_details || void 0,
381
- stripeSubscription: subscriptionUpdated,
382
- event
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: updatedSubscription || subscription
390
+ subscription: subscriptionUpdated,
391
+ stripeSubscription: stripeSubscriptionUpdated
387
392
  });
388
393
  if (plan) {
389
- if (subscriptionUpdated.status === "active" && subscription.status === "trialing" && plan.freeTrial?.onTrialEnd) await plan.freeTrial.onTrialEnd({ subscription }, ctx);
390
- if (subscriptionUpdated.status === "incomplete_expired" && subscription.status === "trialing" && plan.freeTrial?.onTrialExpired) await plan.freeTrial.onTrialExpired(subscription, ctx);
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 subscriptionDeleted = event.data.object;
400
- const subscriptionId = subscriptionDeleted.id;
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 = subscriptionDeleted.trial_start && subscriptionDeleted.trial_end ? {
410
- trialStart: /* @__PURE__ */ new Date(subscriptionDeleted.trial_start * 1e3),
411
- trialEnd: /* @__PURE__ */ new Date(subscriptionDeleted.trial_end * 1e3)
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: subscriptionDeleted.cancel_at_period_end,
424
- cancelAt: subscriptionDeleted.cancel_at ? /* @__PURE__ */ new Date(subscriptionDeleted.cancel_at * 1e3) : null,
425
- canceledAt: subscriptionDeleted.canceled_at ? /* @__PURE__ */ new Date(subscriptionDeleted.canceled_at * 1e3) : null,
426
- endedAt: subscriptionDeleted.ended_at ? /* @__PURE__ */ new Date(subscriptionDeleted.ended_at * 1e3) : null,
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: subscriptionDeleted,
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
- customer_update: customerType !== "user" ? { address: "auto" } : {
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
- } : { customer_email: user.email },
995
- locale: ctx.body.locale,
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, params?.params?.subscription_data?.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, params?.params?.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,
@@ -27,6 +27,6 @@ const STRIPE_ERROR_CODES = defineErrorCodes({
27
27
  });
28
28
  //#endregion
29
29
  //#region src/version.ts
30
- const PACKAGE_VERSION = "1.7.0-beta.2";
30
+ const PACKAGE_VERSION = "1.7.0-beta.3";
31
31
  //#endregion
32
32
  export { STRIPE_ERROR_CODES as n, PACKAGE_VERSION as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-auth/stripe",
3
- "version": "1.7.0-beta.2",
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.2",
62
- "better-auth": "1.7.0-beta.2"
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.2",
68
- "better-auth": "^1.7.0-beta.2"
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",