better-auth 1.2.0-beta.5 → 1.2.0-beta.6

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.
Files changed (177) hide show
  1. package/dist/adapters/drizzle.cjs +3 -3
  2. package/dist/adapters/drizzle.d.cts +1 -1
  3. package/dist/adapters/drizzle.d.ts +1 -1
  4. package/dist/adapters/drizzle.js +1 -1
  5. package/dist/adapters/kysely.cjs +3 -3
  6. package/dist/adapters/kysely.d.cts +1 -1
  7. package/dist/adapters/kysely.d.ts +1 -1
  8. package/dist/adapters/kysely.js +1 -1
  9. package/dist/adapters/memory.cjs +2 -2
  10. package/dist/adapters/memory.d.cts +1 -1
  11. package/dist/adapters/memory.d.ts +1 -1
  12. package/dist/adapters/memory.js +1 -1
  13. package/dist/adapters/mongodb.cjs +3 -3
  14. package/dist/adapters/mongodb.d.cts +1 -1
  15. package/dist/adapters/mongodb.d.ts +1 -1
  16. package/dist/adapters/mongodb.js +1 -1
  17. package/dist/adapters/prisma.cjs +3 -3
  18. package/dist/adapters/prisma.d.cts +1 -1
  19. package/dist/adapters/prisma.d.ts +1 -1
  20. package/dist/adapters/prisma.js +1 -1
  21. package/dist/adapters/test.d.cts +1 -1
  22. package/dist/adapters/test.d.ts +1 -1
  23. package/dist/api.cjs +41 -41
  24. package/dist/api.d.cts +1 -1
  25. package/dist/api.d.ts +1 -1
  26. package/dist/api.js +1 -1
  27. package/dist/{auth-BIKkqX3w.d.ts → auth-BfbTouIV.d.ts} +5 -5
  28. package/dist/{auth-DYJ8ix3G.d.cts → auth-CC4kpwks.d.cts} +5 -5
  29. package/dist/{chunk-7P2P7Y35.js → chunk-2F3IX7O2.js} +1 -1
  30. package/dist/{chunk-VG5Y5QXC.js → chunk-4KMR5H5T.js} +1 -1
  31. package/dist/{chunk-XXGFGD3E.js → chunk-52TDJNDX.js} +11 -10
  32. package/dist/{chunk-YTMPZIP7.js → chunk-5AOJMBJI.js} +25 -3
  33. package/dist/{chunk-HQFWDJO3.cjs → chunk-5ECP2UE2.cjs} +5 -5
  34. package/dist/{chunk-VLA6IUW4.js → chunk-5G6XUCMS.js} +51 -2
  35. package/dist/{chunk-7H42DKFN.cjs → chunk-5KTUVZ3H.cjs} +5 -5
  36. package/dist/{chunk-QBBUTLKA.cjs → chunk-5RR5WN52.cjs} +5 -5
  37. package/dist/{chunk-XWK7ZOPU.cjs → chunk-75SPUXMY.cjs} +8 -8
  38. package/dist/{chunk-5LTLUS6A.js → chunk-BZOIXJ2Q.js} +1 -1
  39. package/dist/{chunk-SOFKSYNA.js → chunk-CG2CK6HR.js} +1 -1
  40. package/dist/{chunk-YZFX73MG.cjs → chunk-DURU7ZRA.cjs} +20 -20
  41. package/dist/{chunk-CLHJAEU2.js → chunk-EQYRCOOF.js} +5 -2
  42. package/dist/{chunk-IBIVHEIM.js → chunk-FX2ZHENM.js} +1 -1
  43. package/dist/{chunk-G6W6UQWJ.js → chunk-GWJDRQJ3.js} +2 -2
  44. package/dist/{chunk-C5LREWPU.cjs → chunk-HUDPJXOF.cjs} +24 -24
  45. package/dist/{chunk-DSB4P3WF.cjs → chunk-IUGQVFPG.cjs} +6 -6
  46. package/dist/{chunk-K46S33M5.cjs → chunk-K6WRBJAV.cjs} +3 -3
  47. package/dist/{chunk-C37NPGBI.cjs → chunk-KAEQXMEV.cjs} +46 -46
  48. package/dist/{chunk-CV5JTF37.cjs → chunk-KAR56MJZ.cjs} +5 -2
  49. package/dist/{chunk-6FRITF4C.cjs → chunk-LIGJVOZ4.cjs} +4 -4
  50. package/dist/{chunk-WKBV4PRW.cjs → chunk-MKNDCNWD.cjs} +3 -3
  51. package/dist/{chunk-WKXM7XUV.cjs → chunk-N7UWN6ND.cjs} +16 -4
  52. package/dist/{chunk-TV24P5IW.cjs → chunk-OALLKKNX.cjs} +52 -30
  53. package/dist/{chunk-3BXU3Z5H.js → chunk-QKCLO6S5.js} +1 -1
  54. package/dist/{chunk-E3CHTKRP.js → chunk-QLKU77BF.js} +1 -1
  55. package/dist/{chunk-CYI7H6T2.js → chunk-RMPI2YZ3.js} +1 -1
  56. package/dist/{chunk-R62AOMGV.js → chunk-SCXZXQTZ.js} +16 -4
  57. package/dist/{chunk-G365UCY7.js → chunk-ST2CQ4A2.js} +2 -2
  58. package/dist/{chunk-5RIBF22K.cjs → chunk-U44XLDNH.cjs} +22 -21
  59. package/dist/{chunk-OLGASOBP.cjs → chunk-UZNKBUDH.cjs} +11 -11
  60. package/dist/{chunk-7S7YLBK4.js → chunk-V56HFQQX.js} +1 -1
  61. package/dist/{chunk-HCHSHY7R.cjs → chunk-WD65CNWK.cjs} +77 -28
  62. package/dist/{chunk-H4A3GCFC.cjs → chunk-XKCN2VRG.cjs} +5 -5
  63. package/dist/{chunk-QG2HKEKG.js → chunk-XREMX2NV.js} +1 -1
  64. package/dist/{chunk-MHZNWING.js → chunk-ZDYKAJ67.js} +110 -2
  65. package/dist/{chunk-6QI5735F.js → chunk-ZKMUJOIP.js} +1 -1
  66. package/dist/{chunk-LHWLPZ6K.cjs → chunk-ZUUQ3FFY.cjs} +113 -5
  67. package/dist/client/plugins.d.cts +2 -2
  68. package/dist/client/plugins.d.ts +2 -2
  69. package/dist/client.d.cts +1 -1
  70. package/dist/client.d.ts +1 -1
  71. package/dist/cookies.d.cts +1 -1
  72. package/dist/cookies.d.ts +1 -1
  73. package/dist/db.cjs +12 -12
  74. package/dist/db.d.cts +2 -2
  75. package/dist/db.d.ts +2 -2
  76. package/dist/db.js +1 -1
  77. package/dist/{index-DOB91DVD.d.ts → index-CtbEb8Ls.d.ts} +107 -1
  78. package/dist/{index-BL6paKGE.d.cts → index-F5NLq5XF.d.cts} +107 -1
  79. package/dist/index.cjs +11 -11
  80. package/dist/index.d.cts +2 -2
  81. package/dist/index.d.ts +2 -2
  82. package/dist/index.js +4 -4
  83. package/dist/next-js.cjs +20 -20
  84. package/dist/next-js.d.cts +1 -1
  85. package/dist/next-js.d.ts +1 -1
  86. package/dist/next-js.js +19 -19
  87. package/dist/node.d.cts +1 -1
  88. package/dist/node.d.ts +1 -1
  89. package/dist/oauth2.d.cts +2 -2
  90. package/dist/oauth2.d.ts +2 -2
  91. package/dist/plugins/admin.cjs +3 -3
  92. package/dist/plugins/admin.d.cts +64 -8
  93. package/dist/plugins/admin.d.ts +64 -8
  94. package/dist/plugins/admin.js +2 -2
  95. package/dist/plugins/anonymous.cjs +3 -3
  96. package/dist/plugins/anonymous.d.cts +1 -1
  97. package/dist/plugins/anonymous.d.ts +1 -1
  98. package/dist/plugins/anonymous.js +2 -2
  99. package/dist/plugins/bearer.cjs +3 -3
  100. package/dist/plugins/bearer.d.cts +1 -1
  101. package/dist/plugins/bearer.d.ts +1 -1
  102. package/dist/plugins/bearer.js +2 -2
  103. package/dist/plugins/custom-session.cjs +3 -3
  104. package/dist/plugins/custom-session.d.cts +1 -1
  105. package/dist/plugins/custom-session.d.ts +1 -1
  106. package/dist/plugins/custom-session.js +2 -2
  107. package/dist/plugins/email-otp.cjs +3 -3
  108. package/dist/plugins/email-otp.d.cts +1 -1
  109. package/dist/plugins/email-otp.d.ts +1 -1
  110. package/dist/plugins/email-otp.js +2 -2
  111. package/dist/plugins/generic-oauth.cjs +3 -3
  112. package/dist/plugins/generic-oauth.d.cts +74 -1
  113. package/dist/plugins/generic-oauth.d.ts +74 -1
  114. package/dist/plugins/generic-oauth.js +2 -2
  115. package/dist/plugins/jwt.cjs +3 -3
  116. package/dist/plugins/jwt.d.cts +1 -1
  117. package/dist/plugins/jwt.d.ts +1 -1
  118. package/dist/plugins/jwt.js +2 -2
  119. package/dist/plugins/magic-link.cjs +3 -3
  120. package/dist/plugins/magic-link.d.cts +4 -0
  121. package/dist/plugins/magic-link.d.ts +4 -0
  122. package/dist/plugins/magic-link.js +2 -2
  123. package/dist/plugins/multi-session.cjs +3 -3
  124. package/dist/plugins/multi-session.d.cts +1 -1
  125. package/dist/plugins/multi-session.d.ts +1 -1
  126. package/dist/plugins/multi-session.js +2 -2
  127. package/dist/plugins/oidc-provider.cjs +3 -3
  128. package/dist/plugins/oidc-provider.js +2 -2
  129. package/dist/plugins/one-tap.cjs +3 -3
  130. package/dist/plugins/one-tap.js +2 -2
  131. package/dist/plugins/open-api.cjs +4 -4
  132. package/dist/plugins/open-api.d.cts +1 -1
  133. package/dist/plugins/open-api.d.ts +1 -1
  134. package/dist/plugins/open-api.js +3 -3
  135. package/dist/plugins/organization.cjs +3 -3
  136. package/dist/plugins/organization.d.cts +2 -2
  137. package/dist/plugins/organization.d.ts +2 -2
  138. package/dist/plugins/organization.js +2 -2
  139. package/dist/plugins/passkey.cjs +14 -14
  140. package/dist/plugins/passkey.d.cts +1 -1
  141. package/dist/plugins/passkey.d.ts +1 -1
  142. package/dist/plugins/passkey.js +1 -1
  143. package/dist/plugins/phone-number.cjs +3 -3
  144. package/dist/plugins/phone-number.d.cts +2 -2
  145. package/dist/plugins/phone-number.d.ts +2 -2
  146. package/dist/plugins/phone-number.js +2 -2
  147. package/dist/plugins/sso.cjs +9 -9
  148. package/dist/plugins/sso.d.cts +1 -1
  149. package/dist/plugins/sso.d.ts +1 -1
  150. package/dist/plugins/sso.js +1 -1
  151. package/dist/plugins/two-factor.cjs +3 -3
  152. package/dist/plugins/two-factor.d.cts +1 -1
  153. package/dist/plugins/two-factor.d.ts +1 -1
  154. package/dist/plugins/two-factor.js +2 -2
  155. package/dist/plugins/username.cjs +3 -3
  156. package/dist/plugins/username.d.cts +1 -1
  157. package/dist/plugins/username.d.ts +1 -1
  158. package/dist/plugins/username.js +2 -2
  159. package/dist/plugins.cjs +39 -39
  160. package/dist/plugins.d.cts +3 -3
  161. package/dist/plugins.d.ts +3 -3
  162. package/dist/plugins.js +19 -19
  163. package/dist/react.d.cts +2 -3
  164. package/dist/react.d.ts +2 -3
  165. package/dist/solid.d.cts +1 -1
  166. package/dist/solid.d.ts +1 -1
  167. package/dist/{state-DXzHe8jb.d.ts → state-BlyN0kTT.d.ts} +1 -1
  168. package/dist/{state-CEqdZ_y_.d.cts → state-ClV1x8my.d.cts} +1 -1
  169. package/dist/svelte-kit.d.cts +1 -1
  170. package/dist/svelte-kit.d.ts +1 -1
  171. package/dist/svelte.d.cts +1 -1
  172. package/dist/svelte.d.ts +1 -1
  173. package/dist/types.d.cts +3 -3
  174. package/dist/types.d.ts +3 -3
  175. package/dist/vue.d.cts +1 -1
  176. package/dist/vue.d.ts +1 -1
  177. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWKXM7XUV_cjs = require('./chunk-WKXM7XUV.cjs');
3
+ var chunkN7UWN6ND_cjs = require('./chunk-N7UWN6ND.cjs');
4
4
  var chunkV6HE2MP7_cjs = require('./chunk-V6HE2MP7.cjs');
5
5
  var zod = require('zod');
6
6
 
@@ -16,7 +16,7 @@ var multiSession = (options) => {
16
16
  return {
17
17
  id: "multi-session",
18
18
  endpoints: {
19
- listDeviceSessions: chunkWKXM7XUV_cjs.createAuthEndpoint(
19
+ listDeviceSessions: chunkN7UWN6ND_cjs.createAuthEndpoint(
20
20
  "/multi-session/list-device-sessions",
21
21
  {
22
22
  method: "GET",
@@ -39,7 +39,7 @@ var multiSession = (options) => {
39
39
  return ctx.json(validSessions);
40
40
  }
41
41
  ),
42
- setActiveSession: chunkWKXM7XUV_cjs.createAuthEndpoint(
42
+ setActiveSession: chunkN7UWN6ND_cjs.createAuthEndpoint(
43
43
  "/multi-session/set-active",
44
44
  {
45
45
  method: "POST",
@@ -49,7 +49,7 @@ var multiSession = (options) => {
49
49
  })
50
50
  }),
51
51
  requireHeaders: true,
52
- use: [chunkWKXM7XUV_cjs.sessionMiddleware],
52
+ use: [chunkN7UWN6ND_cjs.sessionMiddleware],
53
53
  metadata: {
54
54
  openapi: {
55
55
  description: "Set the active session",
@@ -81,7 +81,7 @@ var multiSession = (options) => {
81
81
  ctx.context.secret
82
82
  );
83
83
  if (!sessionCookie) {
84
- throw new chunkWKXM7XUV_cjs.APIError("UNAUTHORIZED", {
84
+ throw new chunkN7UWN6ND_cjs.APIError("UNAUTHORIZED", {
85
85
  message: ERROR_CODES.INVALID_SESSION_TOKEN
86
86
  });
87
87
  }
@@ -91,7 +91,7 @@ var multiSession = (options) => {
91
91
  ...ctx.context.authCookies.sessionToken.options,
92
92
  maxAge: 0
93
93
  });
94
- throw new chunkWKXM7XUV_cjs.APIError("UNAUTHORIZED", {
94
+ throw new chunkN7UWN6ND_cjs.APIError("UNAUTHORIZED", {
95
95
  message: ERROR_CODES.INVALID_SESSION_TOKEN
96
96
  });
97
97
  }
@@ -99,7 +99,7 @@ var multiSession = (options) => {
99
99
  return ctx.json(session);
100
100
  }
101
101
  ),
102
- revokeDeviceSession: chunkWKXM7XUV_cjs.createAuthEndpoint(
102
+ revokeDeviceSession: chunkN7UWN6ND_cjs.createAuthEndpoint(
103
103
  "/multi-session/revoke",
104
104
  {
105
105
  method: "POST",
@@ -109,7 +109,7 @@ var multiSession = (options) => {
109
109
  })
110
110
  }),
111
111
  requireHeaders: true,
112
- use: [chunkWKXM7XUV_cjs.sessionMiddleware],
112
+ use: [chunkN7UWN6ND_cjs.sessionMiddleware],
113
113
  metadata: {
114
114
  openapi: {
115
115
  description: "Revoke a device session",
@@ -141,7 +141,7 @@ var multiSession = (options) => {
141
141
  ctx.context.secret
142
142
  );
143
143
  if (!sessionCookie) {
144
- throw new chunkWKXM7XUV_cjs.APIError("UNAUTHORIZED", {
144
+ throw new chunkN7UWN6ND_cjs.APIError("UNAUTHORIZED", {
145
145
  message: ERROR_CODES.INVALID_SESSION_TOKEN
146
146
  });
147
147
  }
@@ -188,7 +188,7 @@ var multiSession = (options) => {
188
188
  after: [
189
189
  {
190
190
  matcher: () => true,
191
- handler: chunkWKXM7XUV_cjs.createAuthMiddleware(async (ctx) => {
191
+ handler: chunkN7UWN6ND_cjs.createAuthMiddleware(async (ctx) => {
192
192
  const cookieString = ctx.context.responseHeaders?.get("set-cookie");
193
193
  if (!cookieString) return;
194
194
  const setCookies = chunkV6HE2MP7_cjs.parseSetCookieHeader(cookieString);
@@ -220,7 +220,7 @@ var multiSession = (options) => {
220
220
  },
221
221
  {
222
222
  matcher: (context) => context.path === "/sign-out",
223
- handler: chunkWKXM7XUV_cjs.createAuthMiddleware(async (ctx) => {
223
+ handler: chunkN7UWN6ND_cjs.createAuthMiddleware(async (ctx) => {
224
224
  const cookieHeader = ctx.headers?.get("cookie");
225
225
  if (!cookieHeader) return;
226
226
  const cookies = Object.fromEntries(chunkV6HE2MP7_cjs.parseCookies(cookieHeader));
@@ -1,4 +1,4 @@
1
- import { createAuthEndpoint, APIError } from './chunk-R62AOMGV.js';
1
+ import { createAuthEndpoint, APIError } from './chunk-SCXZXQTZ.js';
2
2
  import { setSessionCookie } from './chunk-QQGZ3XGI.js';
3
3
  import { z } from 'zod';
4
4
  import { betterFetch } from '@better-fetch/fetch';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk2X5G64P2_cjs = require('./chunk-2X5G64P2.cjs');
4
- var chunkWKXM7XUV_cjs = require('./chunk-WKXM7XUV.cjs');
4
+ var chunkN7UWN6ND_cjs = require('./chunk-N7UWN6ND.cjs');
5
5
  var chunkU4I57HJ4_cjs = require('./chunk-U4I57HJ4.cjs');
6
6
  var chunkV6HE2MP7_cjs = require('./chunk-V6HE2MP7.cjs');
7
7
  var chunkH74YRRNV_cjs = require('./chunk-H74YRRNV.cjs');
@@ -453,12 +453,12 @@ var getOrgAdapter = (context, options) => {
453
453
  };
454
454
 
455
455
  // src/plugins/organization/call.ts
456
- var orgMiddleware = chunkWKXM7XUV_cjs.createAuthMiddleware(async (ctx) => {
456
+ var orgMiddleware = chunkN7UWN6ND_cjs.createAuthMiddleware(async (ctx) => {
457
457
  return {};
458
458
  });
459
- var orgSessionMiddleware = chunkWKXM7XUV_cjs.createAuthMiddleware(
459
+ var orgSessionMiddleware = chunkN7UWN6ND_cjs.createAuthMiddleware(
460
460
  {
461
- use: [chunkWKXM7XUV_cjs.sessionMiddleware]
461
+ use: [chunkN7UWN6ND_cjs.sessionMiddleware]
462
462
  },
463
463
  async (ctx) => {
464
464
  const session = ctx.context.session;
@@ -536,7 +536,7 @@ var hasPermission = (input) => {
536
536
  };
537
537
 
538
538
  // src/plugins/organization/routes/crud-invites.ts
539
- var createInvitation = (option) => chunkWKXM7XUV_cjs.createAuthEndpoint(
539
+ var createInvitation = (option) => chunkN7UWN6ND_cjs.createAuthEndpoint(
540
540
  "/organization/invite-member",
541
541
  {
542
542
  method: "POST",
@@ -697,7 +697,7 @@ var createInvitation = (option) => chunkWKXM7XUV_cjs.createAuthEndpoint(
697
697
  return ctx.json(invitation);
698
698
  }
699
699
  );
700
- var acceptInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
700
+ var acceptInvitation = chunkN7UWN6ND_cjs.createAuthEndpoint(
701
701
  "/organization/accept-invitation",
702
702
  {
703
703
  method: "POST",
@@ -775,7 +775,7 @@ var acceptInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
775
775
  });
776
776
  }
777
777
  );
778
- var rejectInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
778
+ var rejectInvitation = chunkN7UWN6ND_cjs.createAuthEndpoint(
779
779
  "/organization/reject-invitation",
780
780
  {
781
781
  method: "POST",
@@ -835,7 +835,7 @@ var rejectInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
835
835
  });
836
836
  }
837
837
  );
838
- var cancelInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
838
+ var cancelInvitation = chunkN7UWN6ND_cjs.createAuthEndpoint(
839
839
  "/organization/cancel-invitation",
840
840
  {
841
841
  method: "POST",
@@ -903,7 +903,7 @@ var cancelInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
903
903
  return ctx.json(canceledI);
904
904
  }
905
905
  );
906
- var getInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
906
+ var getInvitation = chunkN7UWN6ND_cjs.createAuthEndpoint(
907
907
  "/organization/get-invitation",
908
908
  {
909
909
  method: "GET",
@@ -977,7 +977,7 @@ var getInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
977
977
  }
978
978
  },
979
979
  async (ctx) => {
980
- const session = await chunkWKXM7XUV_cjs.getSessionFromCtx(ctx);
980
+ const session = await chunkN7UWN6ND_cjs.getSessionFromCtx(ctx);
981
981
  if (!session) {
982
982
  throw new betterCall.APIError("UNAUTHORIZED", {
983
983
  message: "Not authenticated"
@@ -1020,7 +1020,7 @@ var getInvitation = chunkWKXM7XUV_cjs.createAuthEndpoint(
1020
1020
  });
1021
1021
  }
1022
1022
  );
1023
- var addMember = () => chunkWKXM7XUV_cjs.createAuthEndpoint(
1023
+ var addMember = () => chunkN7UWN6ND_cjs.createAuthEndpoint(
1024
1024
  "/organization/add-member",
1025
1025
  {
1026
1026
  method: "POST",
@@ -1035,7 +1035,7 @@ var addMember = () => chunkWKXM7XUV_cjs.createAuthEndpoint(
1035
1035
  }
1036
1036
  },
1037
1037
  async (ctx) => {
1038
- const session = ctx.body.userId ? await chunkWKXM7XUV_cjs.getSessionFromCtx(ctx).catch((e) => null) : null;
1038
+ const session = ctx.body.userId ? await chunkN7UWN6ND_cjs.getSessionFromCtx(ctx).catch((e) => null) : null;
1039
1039
  const orgId = ctx.body.organizationId || session?.session.activeOrganizationId;
1040
1040
  if (!orgId) {
1041
1041
  return ctx.json(null, {
@@ -1051,7 +1051,7 @@ var addMember = () => chunkWKXM7XUV_cjs.createAuthEndpoint(
1051
1051
  );
1052
1052
  if (!user) {
1053
1053
  throw new betterCall.APIError("BAD_REQUEST", {
1054
- message: chunkWKXM7XUV_cjs.BASE_ERROR_CODES.USER_NOT_FOUND
1054
+ message: chunkN7UWN6ND_cjs.BASE_ERROR_CODES.USER_NOT_FOUND
1055
1055
  });
1056
1056
  }
1057
1057
  const alreadyMember = await adapter.findMemberByEmail({
@@ -1073,7 +1073,7 @@ var addMember = () => chunkWKXM7XUV_cjs.createAuthEndpoint(
1073
1073
  return ctx.json(createdMember);
1074
1074
  }
1075
1075
  );
1076
- var removeMember = chunkWKXM7XUV_cjs.createAuthEndpoint(
1076
+ var removeMember = chunkN7UWN6ND_cjs.createAuthEndpoint(
1077
1077
  "/organization/remove-member",
1078
1078
  {
1079
1079
  method: "POST",
@@ -1192,7 +1192,7 @@ var removeMember = chunkWKXM7XUV_cjs.createAuthEndpoint(
1192
1192
  });
1193
1193
  }
1194
1194
  );
1195
- var updateMemberRole = (option) => chunkWKXM7XUV_cjs.createAuthEndpoint(
1195
+ var updateMemberRole = (option) => chunkN7UWN6ND_cjs.createAuthEndpoint(
1196
1196
  "/organization/update-member-role",
1197
1197
  {
1198
1198
  method: "POST",
@@ -1301,7 +1301,7 @@ var updateMemberRole = (option) => chunkWKXM7XUV_cjs.createAuthEndpoint(
1301
1301
  return ctx.json(updatedMember);
1302
1302
  }
1303
1303
  );
1304
- var getActiveMember = chunkWKXM7XUV_cjs.createAuthEndpoint(
1304
+ var getActiveMember = chunkN7UWN6ND_cjs.createAuthEndpoint(
1305
1305
  "/organization/get-active-member",
1306
1306
  {
1307
1307
  method: "GET",
@@ -1366,7 +1366,55 @@ var getActiveMember = chunkWKXM7XUV_cjs.createAuthEndpoint(
1366
1366
  return ctx.json(member);
1367
1367
  }
1368
1368
  );
1369
- var createOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1369
+ var leaveOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1370
+ "/organization/leave",
1371
+ {
1372
+ method: "POST",
1373
+ body: zod.z.object({
1374
+ organizationId: zod.z.string()
1375
+ }),
1376
+ use: [chunkN7UWN6ND_cjs.sessionMiddleware, orgMiddleware]
1377
+ },
1378
+ async (ctx) => {
1379
+ const session = ctx.context.session;
1380
+ const adapter = getOrgAdapter(ctx.context);
1381
+ const member = await adapter.findMemberByOrgId({
1382
+ userId: session.user.id,
1383
+ organizationId: ctx.body.organizationId
1384
+ });
1385
+ if (!member) {
1386
+ throw new betterCall.APIError("BAD_REQUEST", {
1387
+ message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND
1388
+ });
1389
+ }
1390
+ const isOwnerLeaving = member.role === (ctx.context.orgOptions?.creatorRole || "owner");
1391
+ if (isOwnerLeaving) {
1392
+ const members = await ctx.context.adapter.findMany({
1393
+ model: "member",
1394
+ where: [
1395
+ {
1396
+ field: "organizationId",
1397
+ value: ctx.body.organizationId
1398
+ }
1399
+ ]
1400
+ });
1401
+ const owners = members.filter(
1402
+ (member2) => member2.role === (ctx.context.orgOptions?.creatorRole || "owner")
1403
+ );
1404
+ if (owners.length <= 1) {
1405
+ throw new betterCall.APIError("BAD_REQUEST", {
1406
+ message: ORGANIZATION_ERROR_CODES.YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER
1407
+ });
1408
+ }
1409
+ }
1410
+ await adapter.deleteMember(member.id);
1411
+ if (session.session.activeOrganizationId === ctx.body.organizationId) {
1412
+ await adapter.setActiveOrganization(session.session.token, null);
1413
+ }
1414
+ return ctx.json(member);
1415
+ }
1416
+ );
1417
+ var createOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1370
1418
  "/organization/create",
1371
1419
  {
1372
1420
  method: "POST",
@@ -1409,7 +1457,7 @@ var createOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1409
1457
  }
1410
1458
  },
1411
1459
  async (ctx) => {
1412
- const session = await chunkWKXM7XUV_cjs.getSessionFromCtx(ctx);
1460
+ const session = await chunkN7UWN6ND_cjs.getSessionFromCtx(ctx);
1413
1461
  console.log(ctx.request, ctx.headers);
1414
1462
  if (!session && (ctx.request || ctx.headers)) {
1415
1463
  throw new betterCall.APIError("UNAUTHORIZED");
@@ -1469,14 +1517,14 @@ var createOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1469
1517
  return ctx.json(organization2);
1470
1518
  }
1471
1519
  );
1472
- var checkOrganizationSlug = chunkWKXM7XUV_cjs.createAuthEndpoint(
1520
+ var checkOrganizationSlug = chunkN7UWN6ND_cjs.createAuthEndpoint(
1473
1521
  "/organization/check-slug",
1474
1522
  {
1475
1523
  method: "POST",
1476
1524
  body: zod.z.object({
1477
1525
  slug: zod.z.string()
1478
1526
  }),
1479
- use: [chunkWKXM7XUV_cjs.requestOnlySessionMiddleware, orgMiddleware]
1527
+ use: [chunkN7UWN6ND_cjs.requestOnlySessionMiddleware, orgMiddleware]
1480
1528
  },
1481
1529
  async (ctx) => {
1482
1530
  const orgAdapter = getOrgAdapter(ctx.context);
@@ -1491,7 +1539,7 @@ var checkOrganizationSlug = chunkWKXM7XUV_cjs.createAuthEndpoint(
1491
1539
  });
1492
1540
  }
1493
1541
  );
1494
- var updateOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1542
+ var updateOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1495
1543
  "/organization/update",
1496
1544
  {
1497
1545
  method: "POST",
@@ -1585,7 +1633,7 @@ var updateOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1585
1633
  return ctx.json(updatedOrg);
1586
1634
  }
1587
1635
  );
1588
- var deleteOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1636
+ var deleteOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1589
1637
  "/organization/delete",
1590
1638
  {
1591
1639
  method: "POST",
@@ -1683,7 +1731,7 @@ var deleteOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1683
1731
  return ctx.json(org);
1684
1732
  }
1685
1733
  );
1686
- var getFullOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1734
+ var getFullOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1687
1735
  "/organization/get-full-organization",
1688
1736
  {
1689
1737
  method: "GET",
@@ -1748,7 +1796,7 @@ var getFullOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1748
1796
  return ctx.json(organization2);
1749
1797
  }
1750
1798
  );
1751
- var setActiveOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1799
+ var setActiveOrganization = chunkN7UWN6ND_cjs.createAuthEndpoint(
1752
1800
  "/organization/set-active",
1753
1801
  {
1754
1802
  method: "POST",
@@ -1836,7 +1884,7 @@ var setActiveOrganization = chunkWKXM7XUV_cjs.createAuthEndpoint(
1836
1884
  return ctx.json(organization2);
1837
1885
  }
1838
1886
  );
1839
- var listOrganizations = chunkWKXM7XUV_cjs.createAuthEndpoint(
1887
+ var listOrganizations = chunkN7UWN6ND_cjs.createAuthEndpoint(
1840
1888
  "/organization/list",
1841
1889
  {
1842
1890
  method: "GET",
@@ -1889,7 +1937,8 @@ var organization = (options) => {
1889
1937
  addMember: addMember(),
1890
1938
  removeMember,
1891
1939
  updateMemberRole: updateMemberRole(),
1892
- getActiveMember
1940
+ getActiveMember,
1941
+ leaveOrganization
1893
1942
  };
1894
1943
  const roles = {
1895
1944
  ...chunk2X5G64P2_cjs.defaultRoles,
@@ -1899,14 +1948,14 @@ var organization = (options) => {
1899
1948
  orgOptions: options || {},
1900
1949
  roles,
1901
1950
  getSession: async (context) => {
1902
- return await chunkWKXM7XUV_cjs.getSessionFromCtx(context);
1951
+ return await chunkN7UWN6ND_cjs.getSessionFromCtx(context);
1903
1952
  }
1904
1953
  });
1905
1954
  return {
1906
1955
  id: "organization",
1907
1956
  endpoints: {
1908
1957
  ...api,
1909
- hasPermission: chunkWKXM7XUV_cjs.createAuthEndpoint(
1958
+ hasPermission: chunkN7UWN6ND_cjs.createAuthEndpoint(
1910
1959
  "/organization/has-permission",
1911
1960
  {
1912
1961
  method: "POST",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkZBKCS3KP_cjs = require('./chunk-ZBKCS3KP.cjs');
4
- var chunkWKXM7XUV_cjs = require('./chunk-WKXM7XUV.cjs');
4
+ var chunkN7UWN6ND_cjs = require('./chunk-N7UWN6ND.cjs');
5
5
  var chunkV6HE2MP7_cjs = require('./chunk-V6HE2MP7.cjs');
6
6
  var chunkB5UCLTPZ_cjs = require('./chunk-B5UCLTPZ.cjs');
7
7
  var zod = require('zod');
@@ -42,7 +42,7 @@ var username = (options) => {
42
42
  return {
43
43
  id: "username",
44
44
  endpoints: {
45
- signInUsername: chunkWKXM7XUV_cjs.createAuthEndpoint(
45
+ signInUsername: chunkN7UWN6ND_cjs.createAuthEndpoint(
46
46
  "/sign-in/username",
47
47
  {
48
48
  method: "POST",
@@ -102,7 +102,7 @@ var username = (options) => {
102
102
  });
103
103
  }
104
104
  if (!user.emailVerified && ctx.context.options.emailAndPassword?.requireEmailVerification) {
105
- await chunkWKXM7XUV_cjs.sendVerificationEmailFn(ctx, user);
105
+ await chunkN7UWN6ND_cjs.sendVerificationEmailFn(ctx, user);
106
106
  throw new betterCall.APIError("FORBIDDEN", {
107
107
  message: ERROR_CODES.EMAIL_NOT_VERIFIED
108
108
  });
@@ -151,7 +151,7 @@ var username = (options) => {
151
151
  return ctx.json(null, {
152
152
  status: 500,
153
153
  body: {
154
- message: chunkWKXM7XUV_cjs.BASE_ERROR_CODES.FAILED_TO_CREATE_SESSION
154
+ message: chunkN7UWN6ND_cjs.BASE_ERROR_CODES.FAILED_TO_CREATE_SESSION
155
155
  }
156
156
  });
157
157
  }
@@ -182,7 +182,7 @@ var username = (options) => {
182
182
  matcher(context) {
183
183
  return context.path === "/sign-up/email";
184
184
  },
185
- handler: chunkWKXM7XUV_cjs.createAuthMiddleware(async (ctx) => {
185
+ handler: chunkN7UWN6ND_cjs.createAuthMiddleware(async (ctx) => {
186
186
  const username2 = ctx.body.username;
187
187
  if (username2) {
188
188
  const user = await ctx.context.adapter.findOne({
@@ -1,4 +1,4 @@
1
- import { createAuthEndpoint, sessionMiddleware, APIError, createAuthMiddleware } from './chunk-R62AOMGV.js';
1
+ import { createAuthEndpoint, sessionMiddleware, APIError, createAuthMiddleware } from './chunk-SCXZXQTZ.js';
2
2
  import { parseCookies, setSessionCookie, deleteSessionCookie, parseSetCookieHeader } from './chunk-QQGZ3XGI.js';
3
3
  import { z } from 'zod';
4
4
 
@@ -1,4 +1,4 @@
1
- import { createAuthEndpoint, handleOAuthUserInfo } from './chunk-R62AOMGV.js';
1
+ import { createAuthEndpoint, handleOAuthUserInfo, sessionMiddleware, BASE_ERROR_CODES } from './chunk-SCXZXQTZ.js';
2
2
  import { createAuthorizationURL, validateAuthorizationCode } from './chunk-R42K7GPF.js';
3
3
  import { setSessionCookie } from './chunk-QQGZ3XGI.js';
4
4
  import { generateState, parseState } from './chunk-ZFUBVSZD.js';
@@ -309,7 +309,7 @@ var genericOAuth = (options) => {
309
309
  }
310
310
  let tokens = void 0;
311
311
  const parsedState = await parseState(ctx);
312
- const { callbackURL, codeVerifier, errorURL, newUserURL } = parsedState;
312
+ const { callbackURL, codeVerifier, errorURL, newUserURL, link } = parsedState;
313
313
  const code = ctx.query.code;
314
314
  let finalTokenUrl = provider.tokenUrl;
315
315
  let finalUserInfoUrl = provider.userInfoUrl;
@@ -361,6 +361,27 @@ var genericOAuth = (options) => {
361
361
  );
362
362
  }
363
363
  const mapUser = provider.mapProfileToUser ? await provider.mapProfileToUser(userInfo) : null;
364
+ if (link) {
365
+ if (link.email !== userInfo.email.toLowerCase()) {
366
+ return redirectOnError("email_doesn't_match");
367
+ }
368
+ const newAccount = await ctx.context.internalAdapter.createAccount({
369
+ userId: link.userId,
370
+ providerId: provider.providerId,
371
+ accountId: userInfo.id
372
+ });
373
+ if (!newAccount) {
374
+ return redirectOnError("unable_to_link_account");
375
+ }
376
+ let toRedirectTo2;
377
+ try {
378
+ const url = callbackURL;
379
+ toRedirectTo2 = url.toString();
380
+ } catch {
381
+ toRedirectTo2 = callbackURL;
382
+ }
383
+ throw ctx.redirect(toRedirectTo2);
384
+ }
364
385
  const result = await handleOAuthUserInfo(ctx, {
365
386
  userInfo: {
366
387
  ...userInfo,
@@ -395,6 +416,93 @@ var genericOAuth = (options) => {
395
416
  }
396
417
  throw ctx.redirect(toRedirectTo);
397
418
  }
419
+ ),
420
+ oAuth2LinkAccount: createAuthEndpoint(
421
+ "/oauth2/link",
422
+ {
423
+ method: "POST",
424
+ body: z.object({
425
+ providerId: z.string(),
426
+ callbackURL: z.string()
427
+ }),
428
+ use: [sessionMiddleware]
429
+ },
430
+ async (c) => {
431
+ const session = c.context.session;
432
+ const account = await c.context.internalAdapter.findAccounts(
433
+ session.user.id
434
+ );
435
+ const existingAccount = account.find(
436
+ (a) => a.providerId === c.body.providerId
437
+ );
438
+ if (existingAccount) {
439
+ throw new APIError("BAD_REQUEST", {
440
+ message: BASE_ERROR_CODES.SOCIAL_ACCOUNT_ALREADY_LINKED
441
+ });
442
+ }
443
+ const provider = options.config.find(
444
+ (p) => p.providerId === c.body.providerId
445
+ );
446
+ if (!provider) {
447
+ throw new APIError("NOT_FOUND", {
448
+ message: BASE_ERROR_CODES.PROVIDER_NOT_FOUND
449
+ });
450
+ }
451
+ const {
452
+ providerId,
453
+ clientId,
454
+ clientSecret,
455
+ redirectURI,
456
+ authorizationUrl,
457
+ discoveryUrl,
458
+ pkce,
459
+ scopes
460
+ } = provider;
461
+ let finalAuthUrl = authorizationUrl;
462
+ if (!finalAuthUrl) {
463
+ if (!discoveryUrl) {
464
+ throw new APIError("BAD_REQUEST", {
465
+ message: ERROR_CODES.INVALID_OAUTH_CONFIGURATION
466
+ });
467
+ }
468
+ const discovery = await betterFetch(discoveryUrl, {
469
+ onError(context) {
470
+ c.context.logger.error(context.error.message, context.error, {
471
+ discoveryUrl
472
+ });
473
+ }
474
+ });
475
+ if (discovery.data) {
476
+ finalAuthUrl = discovery.data.authorization_endpoint;
477
+ }
478
+ }
479
+ if (!finalAuthUrl) {
480
+ throw new APIError("BAD_REQUEST", {
481
+ message: ERROR_CODES.INVALID_OAUTH_CONFIGURATION
482
+ });
483
+ }
484
+ const state = await generateState(c, {
485
+ userId: session.user.id,
486
+ email: session.user.email
487
+ });
488
+ const url = await createAuthorizationURL({
489
+ id: providerId,
490
+ options: {
491
+ clientId,
492
+ clientSecret,
493
+ redirectURI: redirectURI || `${c.context.baseURL}/oauth2/callback`
494
+ },
495
+ authorizationEndpoint: finalAuthUrl,
496
+ state: state.state,
497
+ codeVerifier: pkce ? state.codeVerifier : void 0,
498
+ scopes: scopes || [],
499
+ redirectURI: `${c.context.baseURL}/oauth2/callback/${providerId}`
500
+ });
501
+ return c.json({
502
+ url: url.toString(),
503
+ redirect: true
504
+ });
505
+ }
398
506
  )
399
507
  },
400
508
  $ERROR_CODES: ERROR_CODES
@@ -1,4 +1,4 @@
1
- import { createAuthEndpoint, createAuthMiddleware, getSessionFromCtx, APIError } from './chunk-R62AOMGV.js';
1
+ import { createAuthEndpoint, createAuthMiddleware, getSessionFromCtx, APIError } from './chunk-SCXZXQTZ.js';
2
2
  import { getOrigin } from './chunk-XFCIANZX.js';
3
3
  import { setSessionCookie, parseSetCookieHeader } from './chunk-QQGZ3XGI.js';
4
4
  import { mergeSchema } from './chunk-HZBNUY7E.js';