better-auth 0.8.3-beta.1 → 0.8.3-beta.2

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 (69) hide show
  1. package/dist/adapters/drizzle.cjs +2 -1
  2. package/dist/adapters/drizzle.d.cts +58 -9
  3. package/dist/adapters/drizzle.d.ts +58 -9
  4. package/dist/adapters/drizzle.js +2 -1
  5. package/dist/adapters/kysely.cjs +2 -1
  6. package/dist/adapters/kysely.d.cts +49 -13
  7. package/dist/adapters/kysely.d.ts +49 -13
  8. package/dist/adapters/kysely.js +2 -1
  9. package/dist/adapters/memory.cjs +2 -1
  10. package/dist/adapters/memory.d.cts +46 -4
  11. package/dist/adapters/memory.d.ts +46 -4
  12. package/dist/adapters/memory.js +2 -1
  13. package/dist/adapters/mongodb.cjs +2 -1
  14. package/dist/adapters/mongodb.d.cts +11 -8
  15. package/dist/adapters/mongodb.d.ts +11 -8
  16. package/dist/adapters/mongodb.js +2 -1
  17. package/dist/adapters/prisma.cjs +2 -1
  18. package/dist/adapters/prisma.d.cts +54 -5
  19. package/dist/adapters/prisma.d.ts +54 -5
  20. package/dist/adapters/prisma.js +2 -1
  21. package/dist/api.cjs +1 -1
  22. package/dist/api.d.cts +1 -1
  23. package/dist/api.d.ts +1 -1
  24. package/dist/api.js +1 -1
  25. package/dist/{auth-DBMdxK-M.d.cts → auth-BE8d2yIK.d.cts} +1061 -1052
  26. package/dist/{auth-ElLq7vmm.d.ts → auth-Ct3xWAIa.d.ts} +1061 -1052
  27. package/dist/client/plugins.d.cts +4 -4
  28. package/dist/client/plugins.d.ts +4 -4
  29. package/dist/client.d.cts +1 -1
  30. package/dist/client.d.ts +1 -1
  31. package/dist/cookies.d.cts +3 -3
  32. package/dist/cookies.d.ts +3 -3
  33. package/dist/db.cjs +3 -3
  34. package/dist/db.d.cts +3 -3
  35. package/dist/db.d.ts +3 -3
  36. package/dist/db.js +3 -3
  37. package/dist/{index-DdU1-vYD.d.cts → index-CqIaut9K.d.cts} +374 -374
  38. package/dist/{index-DBaFH8g-.d.ts → index-ld4ngSot.d.ts} +374 -374
  39. package/dist/index.cjs +5 -5
  40. package/dist/index.d.cts +3 -3
  41. package/dist/index.d.ts +3 -3
  42. package/dist/index.js +5 -5
  43. package/dist/next-js.d.cts +3 -3
  44. package/dist/next-js.d.ts +3 -3
  45. package/dist/node.d.cts +3 -3
  46. package/dist/node.d.ts +3 -3
  47. package/dist/oauth2.d.cts +2 -2
  48. package/dist/oauth2.d.ts +2 -2
  49. package/dist/plugins.cjs +2 -2
  50. package/dist/plugins.d.cts +8 -8
  51. package/dist/plugins.d.ts +8 -8
  52. package/dist/plugins.js +2 -2
  53. package/dist/react.d.cts +1 -1
  54. package/dist/react.d.ts +1 -1
  55. package/dist/solid-start.d.cts +3 -3
  56. package/dist/solid-start.d.ts +3 -3
  57. package/dist/solid.d.cts +1 -1
  58. package/dist/solid.d.ts +1 -1
  59. package/dist/{state-El9PW_xP.d.ts → state-BFB-5_r3.d.ts} +1 -1
  60. package/dist/{state-CIhWbtNG.d.cts → state-DzsnYBJi.d.cts} +1 -1
  61. package/dist/svelte-kit.d.cts +3 -3
  62. package/dist/svelte-kit.d.ts +3 -3
  63. package/dist/svelte.d.cts +1 -1
  64. package/dist/svelte.d.ts +1 -1
  65. package/dist/types.d.cts +3 -3
  66. package/dist/types.d.ts +3 -3
  67. package/dist/vue.d.cts +1 -1
  68. package/dist/vue.d.ts +1 -1
  69. package/package.json +1 -1
@@ -1 +1,2 @@
1
- "use strict";var w=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var z=(t,r)=>{for(var s in r)w(t,s,{get:r[s],enumerable:!0})},A=(t,r,s,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of v(r))!P.call(t,n)&&n!==s&&w(t,n,{get:()=>r[n],enumerable:!(c=g(r,n))||c.enumerable});return t};var $=t=>A(w({},"__esModule",{value:!0}),t);var x={};z(x,{drizzleAdapter:()=>q});module.exports=$(x);var a=require("drizzle-orm");var f=class extends Error{constructor(r,s){super(r),this.name="BetterAuthError",this.message=r,this.cause=s,this.stack=""}};function m(t,r){let s=r.schema;if(!s)throw new f("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let c=r.usePlural?`${t}s`:t,n=s[c];if(!n)throw new f(`[# Drizzle Adapter]: The model "${t}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return n}function p(t,r){if(!t)return[];if(t.length===1){let e=t[0];if(!e)return[];if(e.operator==="in"){if(!Array.isArray(e.value))throw new f(`The value for the field "${e.field}" must be an array when using the "in" operator.`);return[(0,a.inArray)(r[e.field],e.value)]}return e.operator==="contains"?[(0,a.like)(r[e.field],`%${e.value}%`)]:e.operator==="starts_with"?[(0,a.like)(r[e.field],`${e.value}%`)]:e.operator==="ends_with"?[(0,a.like)(r[e.field],`%${e.value}`)]:[(0,a.eq)(r[e.field],e.value)]}let s=t.filter(e=>e.connector==="AND"||!e.connector),c=t.filter(e=>e.connector==="OR"),n=(0,a.and)(...s.map(e=>{if(e.operator==="in"){if(!Array.isArray(e.value))throw new f(`The value for the field "${e.field}" must be an array when using the "in" operator.`);return(0,a.inArray)(r[e.field],e.value)}return(0,a.eq)(r[e.field],e.value)})),o=(0,a.or)(...c.map(e=>(0,a.eq)(r[e.field],e.value))),l=[];return s.length&&l.push(n),c.length&&l.push(o),l}var q=(t,r)=>{let s=r.schema||t._.fullSchema,c=r?.provider;return{id:"drizzle",async create(n){let{model:o,data:l}=n,e=m(o,{schema:s,usePlural:r.usePlural});r.generateId!==void 0&&(l.id=r.generateId?r.generateId():void 0);let i=t.insert(e).values(l);return c!=="mysql"?(await i.returning())[0]:(await i,(await t.select().from(e).where((0,a.eq)(e.id,n.data.id)))[0])},async findOne(n){let{model:o,where:l,select:e}=n,i=m(o,{schema:s,usePlural:r.usePlural}),d=p(l,i),u=null;return e?.length?u=await t.select(...e.map(h=>({[h]:i[h]}))).from(i).where(...d):u=await t.select().from(i).where(...d),u.length?u[0]:null},async findMany(n){let{model:o,where:l,limit:e,offset:i,sortBy:d}=n,u=m(o,{schema:s,usePlural:r.usePlural}),h=l?p(l,u):[],y=d?.direction==="desc"?a.desc:a.asc;return await t.select().from(u).limit(e||100).offset(i||0).orderBy(y(u[d?.field||"id"])).where(...h.length?h:[])},async update(n){let{model:o,where:l,update:e}=n,i=m(o,{schema:s,usePlural:r.usePlural});e.id&&(e.id=void 0);let d=p(l,i),u=t.update(i).set(e).where(...d);return c!=="mysql"?(await u.returning())[0]:(await u,(await t.select().from(i).where((0,a.eq)(i.id,n.update.id)))[0])},async delete(n){let{model:o,where:l}=n,e=m(o,{schema:s,usePlural:r.usePlural}),i=p(l,e);return(await t.delete(e).where(...i))[0]},async deleteMany(n){let{model:o,where:l}=n,e=m(o,{schema:s,usePlural:r.usePlural}),i=p(l,e);await t.delete(e).where(...i)},options:r}};0&&(module.exports={drizzleAdapter});
1
+ "use strict";var F=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var q=(e,r)=>{for(var c in r)F(e,c,{get:r[c],enumerable:!0})},B=(e,r,c,y)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of N(r))!R.call(e,m)&&m!==c&&F(e,m,{get:()=>r[m],enumerable:!(y=D(r,m))||y.enumerable});return e};var M=e=>B(F({},"__esModule",{value:!0}),e);var W={};q(W,{drizzleAdapter:()=>_});module.exports=M(W);var u=require("drizzle-orm");var o=require("zod"),Z=o.z.object({id:o.z.string(),providerId:o.z.string(),accountId:o.z.string(),userId:o.z.string(),accessToken:o.z.string().nullish(),refreshToken:o.z.string().nullish(),idToken:o.z.string().nullish(),expiresAt:o.z.date().nullish(),password:o.z.string().nullish()}),X=o.z.object({id:o.z.string(),email:o.z.string().transform(e=>e.toLowerCase()),emailVerified:o.z.boolean().default(!1),name:o.z.string(),image:o.z.string().nullish(),createdAt:o.z.date().default(new Date),updatedAt:o.z.date().default(new Date)}),Y=o.z.object({id:o.z.string(),userId:o.z.string(),expiresAt:o.z.date(),ipAddress:o.z.string().nullish(),userAgent:o.z.string().nullish()}),ee=o.z.object({id:o.z.string(),value:o.z.string(),expiresAt:o.z.date(),identifier:o.z.string()});var V=require("nanoid");var T=Object.create(null),x=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?T:globalThis),U=new Proxy(T,{get(e,r){return x()[r]??T[r]},has(e,r){let c=x();return r in c||r in T},set(e,r,c){let y=x(!0);return y[r]=c,!0},deleteProperty(e,r){if(!r)return!1;let c=x(!0);return delete c[r],!0},ownKeys(){let e=x(!0);return Object.keys(e)}});function C(e){return e?e!=="false":!1}var K=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var P=K==="test"||C(U.TEST);var v=e=>{let r=e.plugins?.reduce((n,t)=>{let i=t.schema;if(!i)return n;for(let[d,l]of Object.entries(i))n[d]={fields:{...n[d]?.fields,...l.fields},tableName:l.tableName||d};return n},{}),c=e.rateLimit?.storage==="database",y={rateLimit:{tableName:e.rateLimit?.tableName||"rateLimit",fields:{key:{type:"string",fieldName:e.rateLimit?.fields?.key||"key"},count:{type:"number",fieldName:e.rateLimit?.fields?.count||"count"},lastRequest:{type:"number",fieldName:e.rateLimit?.fields?.lastRequest||"lastRequest"}}}},{user:m,session:h,account:A,...s}=r||{};return{user:{tableName:e.user?.modelName||"user",fields:{name:{type:"string",required:!0,fieldName:e.user?.fields?.name||"name"},email:{type:"string",unique:!0,required:!0,fieldName:e.user?.fields?.email||"email"},emailVerified:{type:"boolean",defaultValue:()=>!1,required:!0,fieldName:e.user?.fields?.emailVerified||"emailVerified"},image:{type:"string",required:!1,fieldName:e.user?.fields?.image||"image"},createdAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||"updatedAt"},...m?.fields,...e.user?.additionalFields},order:1},session:{tableName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},ipAddress:{type:"string",required:!1,fieldName:e.session?.fields?.ipAddress||"ipAddress"},userAgent:{type:"string",required:!1,fieldName:e.session?.fields?.userAgent||"userAgent"},userId:{type:"string",fieldName:e.session?.fields?.userId||"userId",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0},...h?.fields,...e.session?.additionalFields},order:2},account:{tableName:e.account?.modelName||"account",fields:{accountId:{type:"string",required:!0,fieldName:e.account?.fields?.accountId||"accountId"},providerId:{type:"string",required:!0,fieldName:e.account?.fields?.providerId||"providerId"},userId:{type:"string",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0,fieldName:e.account?.fields?.userId||"userId"},accessToken:{type:"string",required:!1,fieldName:e.account?.fields?.accessToken||"accessToken"},refreshToken:{type:"string",required:!1,fieldName:e.account?.fields?.refreshToken||"refreshToken"},idToken:{type:"string",required:!1,fieldName:e.account?.fields?.idToken||"idToken"},expiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.expiresAt||"expiresAt"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},...A?.fields},order:3},verification:{tableName:e.verification?.modelName||"verification",fields:{identifier:{type:"string",required:!0,fieldName:e.verification?.fields?.identifier||"identifier"},value:{type:"string",required:!0,fieldName:e.verification?.fields?.value||"value"},expiresAt:{type:"date",required:!0,fieldName:e.verification?.fields?.expiresAt||"expiresAt"}},order:4},...s,...c?y:{}}};var j=require("zod");var b=class extends Error{constructor(r,c){super(r),this.name="BetterAuthError",this.message=r,this.cause=c,this.stack=""}};var I=require("kysely"),O=require("kysely");var k=require("consola"),w=(0,k.createConsola)({formatOptions:{date:!1,colors:!0,compact:!0},defaults:{tag:"Better Auth"}}),z=e=>({log:(...r)=>{!e?.disabled&&w.log("",...r)},error:(...r)=>{!e?.disabled&&w.error("",...r)},warn:(...r)=>{!e?.disabled&&w.warn("",...r)},info:(...r)=>{!e?.disabled&&w.info("",...r)},debug:(...r)=>{!e?.disabled&&w.debug("",...r)},box:(...r)=>{!e?.disabled&&w.box("",...r)},success:(...r)=>{!e?.disabled&&w.success("",...r)},break:(...r)=>{!e?.disabled&&console.log(`
2
+ `)}}),$=z();var L=(e,r,c)=>{let y=v(c);function m(s,n){return n==="id"?n:y[s].fields[n].fieldName||n}function h(s){let n=r.schema||e._.fullSchema;if(!n)throw new b("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let t=A(s),i=n[t];if(!i)throw new b(`[# Drizzle Adapter]: The model "${s}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return i}let A=s=>y[s].tableName!==s?y[s].tableName:r.usePlural?`${s}s`:s;return{getSchema:h,transformInput(s,n){let t=s.id?{id:s.id}:{};for(let i in s){let d=y[n].fields[i];d&&(t[d.fieldName||i]=s[i])}return t},transformOutput(s,n,t=[]){if(!s)return null;let i=s.id||s._id?t.length===0||t.includes("id")?{id:s.id}:{}:{},d=y[n].fields;for(let l in d){if(t.length&&!t.includes(l))continue;let g=d[l];g&&(i[l]=s[g.fieldName||l])}return i},convertWhereClause(s,n){let t=h(n);if(!s)return[];if(s.length===1){let a=s[0];if(!a)return[];let p=m(n,a.field);if(a.operator==="in"){if(!Array.isArray(a.value))throw new b(`The value for the field "${a.field}" must be an array when using the "in" operator.`);return[(0,u.inArray)(t[p],a.value)]}return a.operator==="contains"?[(0,u.like)(t[p],`%${a.value}%`)]:a.operator==="starts_with"?[(0,u.like)(t[p],`${a.value}%`)]:a.operator==="ends_with"?[(0,u.like)(t[p],`%${a.value}`)]:[(0,u.eq)(t[p],a.value)]}let i=s.filter(a=>a.connector==="AND"||!a.connector),d=s.filter(a=>a.connector==="OR"),l=(0,u.and)(...i.map(a=>{let p=m(n,a.field);if(a.operator==="in"){if(!Array.isArray(a.value))throw new b(`The value for the field "${a.field}" must be an array when using the "in" operator.`);return(0,u.inArray)(t[p],a.value)}return(0,u.eq)(t[p],a.value)})),g=(0,u.or)(...d.map(a=>{let p=m(n,a.field);return(0,u.eq)(t[p],a.value)})),f=[];return i.length&&f.push(l),d.length&&f.push(g),f},withReturning:async(s,n,t)=>{if(r.provider!=="mysql")return(await n.returning())[0];await n;let i=h(A(s));return(await e.select()(i).where((0,u.eq)(i.id,t.id)))[0]}}},_=(e,r)=>c=>{let{transformInput:y,transformOutput:m,convertWhereClause:h,getSchema:A,withReturning:s}=L(e,r,c);return{id:"drizzle",async create(n){let{model:t,data:i}=n,d=y(i,t),l=A(t),g=e.insert(l).values(d),f=await s(t,g,d);return m(f,t)},async findOne(n){let{model:t,where:i,select:d}=n,l=A(t),g=h(i,t),f=await e.select().from(l).where(...g);return f.length?m(f[0],t,d):null},async findMany(n){let{model:t,where:i,sortBy:d,limit:l,offset:g}=n,f=A(t),a=i?h(i,t):[],p=d?.direction==="desc"?u.desc:u.asc;return(await e.select().from(f).limit(l||100).offset(g||0).orderBy(p(f[d?.field||"id"])).where(...a)).map(S=>m(S,t))},async update(n){let{model:t,where:i,update:d}=n,l=A(t),g=h(i,t),f=y(d,t),a=e.update(l).set(f).where(...g),p=await s(t,a,f);return m(p,t)},async updateMany(n){let{model:t,where:i,update:d}=n,l=A(t),g=h(i,t),f=y(d,t),p=await e.update(l).set(f).where(...g);return p?p.changes:0},async delete(n){let{model:t,where:i}=n,d=A(t),l=h(i,t);await e.delete(d).where(...l)},async deleteMany(n){let{model:t,where:i}=n,d=A(t),l=h(i,t),f=await e.delete(d).where(...l);return f?f.length:0},options:r}};0&&(module.exports={drizzleAdapter});
@@ -1,14 +1,23 @@
1
- import { A as Adapter } from '../auth-DBMdxK-M.cjs';
2
- import 'zod';
1
+ import { B as BetterAuthOptions, W as Where } from '../auth-BE8d2yIK.cjs';
3
2
  import 'kysely';
3
+ import 'zod';
4
4
  import 'better-call';
5
- import '../index-cqC7BcV_.cjs';
6
5
  import '../helper-DPDj8Nix.cjs';
6
+ import '../index-cqC7BcV_.cjs';
7
7
  import 'jose';
8
8
  import 'better-sqlite3';
9
9
 
10
- interface DrizzleAdapterOptions {
10
+ interface DB {
11
+ [key: string]: any;
12
+ }
13
+ interface DrizzleAdapterConfig {
14
+ /**
15
+ * The schema object that defines the tables and fields
16
+ */
11
17
  schema?: Record<string, any>;
18
+ /**
19
+ * The database provider
20
+ */
12
21
  provider: "pg" | "mysql" | "sqlite";
13
22
  /**
14
23
  * If the table names in the schema are plural
@@ -26,9 +35,49 @@ interface DrizzleAdapterOptions {
26
35
  */
27
36
  generateId?: ((size?: number) => string) | false;
28
37
  }
29
- interface DB {
30
- [key: string]: any;
31
- }
32
- declare const drizzleAdapter: (db: DB, options: DrizzleAdapterOptions) => Adapter;
38
+ declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => {
39
+ id: string;
40
+ create<T extends {
41
+ id?: string;
42
+ } & Record<string, any>, R = T>(data: {
43
+ model: string;
44
+ data: T;
45
+ select?: string[];
46
+ }): Promise<any>;
47
+ findOne<T>(data: {
48
+ model: string;
49
+ where: Where[];
50
+ select?: string[];
51
+ }): Promise<any>;
52
+ findMany<T>(data: {
53
+ model: string;
54
+ where?: Where[];
55
+ limit?: number;
56
+ sortBy?: {
57
+ field: string;
58
+ direction: "asc" | "desc";
59
+ };
60
+ offset?: number;
61
+ }): Promise<any[]>;
62
+ update<T>(data: {
63
+ model: string;
64
+ where: Where[];
65
+ update: Record<string, any>;
66
+ }): Promise<any>;
67
+ updateMany(data: {
68
+ model: string;
69
+ where: Where[];
70
+ update: Record<string, any>;
71
+ }): Promise<any>;
72
+ delete<T>(data: {
73
+ model: string;
74
+ where: Where[];
75
+ }): Promise<void>;
76
+ deleteMany(data: {
77
+ model: string;
78
+ where: Where[];
79
+ }): Promise<any>;
80
+ options: DrizzleAdapterConfig;
81
+ };
33
82
 
34
- export { type DrizzleAdapterOptions, drizzleAdapter };
83
+ export { drizzleAdapter };
@@ -1,14 +1,23 @@
1
- import { A as Adapter } from '../auth-ElLq7vmm.js';
2
- import 'zod';
1
+ import { B as BetterAuthOptions, W as Where } from '../auth-Ct3xWAIa.js';
3
2
  import 'kysely';
3
+ import 'zod';
4
4
  import 'better-call';
5
- import '../index-DN9ozDRm.js';
6
5
  import '../helper-DPDj8Nix.js';
6
+ import '../index-DN9ozDRm.js';
7
7
  import 'jose';
8
8
  import 'better-sqlite3';
9
9
 
10
- interface DrizzleAdapterOptions {
10
+ interface DB {
11
+ [key: string]: any;
12
+ }
13
+ interface DrizzleAdapterConfig {
14
+ /**
15
+ * The schema object that defines the tables and fields
16
+ */
11
17
  schema?: Record<string, any>;
18
+ /**
19
+ * The database provider
20
+ */
12
21
  provider: "pg" | "mysql" | "sqlite";
13
22
  /**
14
23
  * If the table names in the schema are plural
@@ -26,9 +35,49 @@ interface DrizzleAdapterOptions {
26
35
  */
27
36
  generateId?: ((size?: number) => string) | false;
28
37
  }
29
- interface DB {
30
- [key: string]: any;
31
- }
32
- declare const drizzleAdapter: (db: DB, options: DrizzleAdapterOptions) => Adapter;
38
+ declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => {
39
+ id: string;
40
+ create<T extends {
41
+ id?: string;
42
+ } & Record<string, any>, R = T>(data: {
43
+ model: string;
44
+ data: T;
45
+ select?: string[];
46
+ }): Promise<any>;
47
+ findOne<T>(data: {
48
+ model: string;
49
+ where: Where[];
50
+ select?: string[];
51
+ }): Promise<any>;
52
+ findMany<T>(data: {
53
+ model: string;
54
+ where?: Where[];
55
+ limit?: number;
56
+ sortBy?: {
57
+ field: string;
58
+ direction: "asc" | "desc";
59
+ };
60
+ offset?: number;
61
+ }): Promise<any[]>;
62
+ update<T>(data: {
63
+ model: string;
64
+ where: Where[];
65
+ update: Record<string, any>;
66
+ }): Promise<any>;
67
+ updateMany(data: {
68
+ model: string;
69
+ where: Where[];
70
+ update: Record<string, any>;
71
+ }): Promise<any>;
72
+ delete<T>(data: {
73
+ model: string;
74
+ where: Where[];
75
+ }): Promise<void>;
76
+ deleteMany(data: {
77
+ model: string;
78
+ where: Where[];
79
+ }): Promise<any>;
80
+ options: DrizzleAdapterConfig;
81
+ };
33
82
 
34
- export { type DrizzleAdapterOptions, drizzleAdapter };
83
+ export { drizzleAdapter };
@@ -1 +1,2 @@
1
- import{and as v,asc as P,desc as z,eq as p,or as A,inArray as y,like as w}from"drizzle-orm";var d=class extends Error{constructor(r,i){super(r),this.name="BetterAuthError",this.message=r,this.cause=i,this.stack=""}};function h(t,r){let i=r.schema;if(!i)throw new d("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let c=r.usePlural?`${t}s`:t,n=i[c];if(!n)throw new d(`[# Drizzle Adapter]: The model "${t}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return n}function m(t,r){if(!t)return[];if(t.length===1){let e=t[0];if(!e)return[];if(e.operator==="in"){if(!Array.isArray(e.value))throw new d(`The value for the field "${e.field}" must be an array when using the "in" operator.`);return[y(r[e.field],e.value)]}return e.operator==="contains"?[w(r[e.field],`%${e.value}%`)]:e.operator==="starts_with"?[w(r[e.field],`${e.value}%`)]:e.operator==="ends_with"?[w(r[e.field],`%${e.value}`)]:[p(r[e.field],e.value)]}let i=t.filter(e=>e.connector==="AND"||!e.connector),c=t.filter(e=>e.connector==="OR"),n=v(...i.map(e=>{if(e.operator==="in"){if(!Array.isArray(e.value))throw new d(`The value for the field "${e.field}" must be an array when using the "in" operator.`);return y(r[e.field],e.value)}return p(r[e.field],e.value)})),l=A(...c.map(e=>p(r[e.field],e.value))),s=[];return i.length&&s.push(n),c.length&&s.push(l),s}var B=(t,r)=>{let i=r.schema||t._.fullSchema,c=r?.provider;return{id:"drizzle",async create(n){let{model:l,data:s}=n,e=h(l,{schema:i,usePlural:r.usePlural});r.generateId!==void 0&&(s.id=r.generateId?r.generateId():void 0);let a=t.insert(e).values(s);return c!=="mysql"?(await a.returning())[0]:(await a,(await t.select().from(e).where(p(e.id,n.data.id)))[0])},async findOne(n){let{model:l,where:s,select:e}=n,a=h(l,{schema:i,usePlural:r.usePlural}),u=m(s,a),o=null;return e?.length?o=await t.select(...e.map(f=>({[f]:a[f]}))).from(a).where(...u):o=await t.select().from(a).where(...u),o.length?o[0]:null},async findMany(n){let{model:l,where:s,limit:e,offset:a,sortBy:u}=n,o=h(l,{schema:i,usePlural:r.usePlural}),f=s?m(s,o):[],g=u?.direction==="desc"?z:P;return await t.select().from(o).limit(e||100).offset(a||0).orderBy(g(o[u?.field||"id"])).where(...f.length?f:[])},async update(n){let{model:l,where:s,update:e}=n,a=h(l,{schema:i,usePlural:r.usePlural});e.id&&(e.id=void 0);let u=m(s,a),o=t.update(a).set(e).where(...u);return c!=="mysql"?(await o.returning())[0]:(await o,(await t.select().from(a).where(p(a.id,n.update.id)))[0])},async delete(n){let{model:l,where:s}=n,e=h(l,{schema:i,usePlural:r.usePlural}),a=m(s,e);return(await t.delete(e).where(...a))[0]},async deleteMany(n){let{model:l,where:s}=n,e=h(l,{schema:i,usePlural:r.usePlural}),a=m(s,e);await t.delete(e).where(...a)},options:r}};export{B as drizzleAdapter};
1
+ import{and as V,asc as U,desc as C,eq as v,inArray as O,like as F,or as K}from"drizzle-orm";import{z as d}from"zod";var L=d.object({id:d.string(),providerId:d.string(),accountId:d.string(),userId:d.string(),accessToken:d.string().nullish(),refreshToken:d.string().nullish(),idToken:d.string().nullish(),expiresAt:d.date().nullish(),password:d.string().nullish()}),_=d.object({id:d.string(),email:d.string().transform(e=>e.toLowerCase()),emailVerified:d.boolean().default(!1),name:d.string(),image:d.string().nullish(),createdAt:d.date().default(new Date),updatedAt:d.date().default(new Date)}),W=d.object({id:d.string(),userId:d.string(),expiresAt:d.date(),ipAddress:d.string().nullish(),userAgent:d.string().nullish()}),H=d.object({id:d.string(),value:d.string(),expiresAt:d.date(),identifier:d.string()});import{nanoid as Q}from"nanoid";var x=Object.create(null),w=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?x:globalThis),k=new Proxy(x,{get(e,n){return w()[n]??x[n]},has(e,n){let p=w();return n in p||n in x},set(e,n,p){let y=w(!0);return y[n]=p,!0},deleteProperty(e,n){if(!n)return!1;let p=w(!0);return delete p[n],!0},ownKeys(){let e=w(!0);return Object.keys(e)}});function S(e){return e?e!=="false":!1}var D=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var N=D==="test"||S(k.TEST);var T=e=>{let n=e.plugins?.reduce((r,t)=>{let i=t.schema;if(!i)return r;for(let[o,l]of Object.entries(i))r[o]={fields:{...r[o]?.fields,...l.fields},tableName:l.tableName||o};return r},{}),p=e.rateLimit?.storage==="database",y={rateLimit:{tableName:e.rateLimit?.tableName||"rateLimit",fields:{key:{type:"string",fieldName:e.rateLimit?.fields?.key||"key"},count:{type:"number",fieldName:e.rateLimit?.fields?.count||"count"},lastRequest:{type:"number",fieldName:e.rateLimit?.fields?.lastRequest||"lastRequest"}}}},{user:h,session:m,account:g,...s}=n||{};return{user:{tableName:e.user?.modelName||"user",fields:{name:{type:"string",required:!0,fieldName:e.user?.fields?.name||"name"},email:{type:"string",unique:!0,required:!0,fieldName:e.user?.fields?.email||"email"},emailVerified:{type:"boolean",defaultValue:()=>!1,required:!0,fieldName:e.user?.fields?.emailVerified||"emailVerified"},image:{type:"string",required:!1,fieldName:e.user?.fields?.image||"image"},createdAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||"updatedAt"},...h?.fields,...e.user?.additionalFields},order:1},session:{tableName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},ipAddress:{type:"string",required:!1,fieldName:e.session?.fields?.ipAddress||"ipAddress"},userAgent:{type:"string",required:!1,fieldName:e.session?.fields?.userAgent||"userAgent"},userId:{type:"string",fieldName:e.session?.fields?.userId||"userId",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0},...m?.fields,...e.session?.additionalFields},order:2},account:{tableName:e.account?.modelName||"account",fields:{accountId:{type:"string",required:!0,fieldName:e.account?.fields?.accountId||"accountId"},providerId:{type:"string",required:!0,fieldName:e.account?.fields?.providerId||"providerId"},userId:{type:"string",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0,fieldName:e.account?.fields?.userId||"userId"},accessToken:{type:"string",required:!1,fieldName:e.account?.fields?.accessToken||"accessToken"},refreshToken:{type:"string",required:!1,fieldName:e.account?.fields?.refreshToken||"refreshToken"},idToken:{type:"string",required:!1,fieldName:e.account?.fields?.idToken||"idToken"},expiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.expiresAt||"expiresAt"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},...g?.fields},order:3},verification:{tableName:e.verification?.modelName||"verification",fields:{identifier:{type:"string",required:!0,fieldName:e.verification?.fields?.identifier||"identifier"},value:{type:"string",required:!0,fieldName:e.verification?.fields?.value||"value"},expiresAt:{type:"date",required:!0,fieldName:e.verification?.fields?.expiresAt||"expiresAt"}},order:4},...s,...p?y:{}}};import{z as we}from"zod";var A=class extends Error{constructor(n,p){super(n),this.name="BetterAuthError",this.message=n,this.cause=p,this.stack=""}};import{Kysely as Fe,MssqlDialect as Oe}from"kysely";import{MysqlDialect as ke,PostgresDialect as Se,SqliteDialect as De}from"kysely";import{createConsola as q}from"consola";var b=q({formatOptions:{date:!1,colors:!0,compact:!0},defaults:{tag:"Better Auth"}}),B=e=>({log:(...n)=>{!e?.disabled&&b.log("",...n)},error:(...n)=>{!e?.disabled&&b.error("",...n)},warn:(...n)=>{!e?.disabled&&b.warn("",...n)},info:(...n)=>{!e?.disabled&&b.info("",...n)},debug:(...n)=>{!e?.disabled&&b.debug("",...n)},box:(...n)=>{!e?.disabled&&b.box("",...n)},success:(...n)=>{!e?.disabled&&b.success("",...n)},break:(...n)=>{!e?.disabled&&console.log(`
2
+ `)}}),M=B();var P=(e,n,p)=>{let y=T(p);function h(s,r){return r==="id"?r:y[s].fields[r].fieldName||r}function m(s){let r=n.schema||e._.fullSchema;if(!r)throw new A("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let t=g(s),i=r[t];if(!i)throw new A(`[# Drizzle Adapter]: The model "${s}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return i}let g=s=>y[s].tableName!==s?y[s].tableName:n.usePlural?`${s}s`:s;return{getSchema:m,transformInput(s,r){let t=s.id?{id:s.id}:{};for(let i in s){let o=y[r].fields[i];o&&(t[o.fieldName||i]=s[i])}return t},transformOutput(s,r,t=[]){if(!s)return null;let i=s.id||s._id?t.length===0||t.includes("id")?{id:s.id}:{}:{},o=y[r].fields;for(let l in o){if(t.length&&!t.includes(l))continue;let f=o[l];f&&(i[l]=s[f.fieldName||l])}return i},convertWhereClause(s,r){let t=m(r);if(!s)return[];if(s.length===1){let a=s[0];if(!a)return[];let c=h(r,a.field);if(a.operator==="in"){if(!Array.isArray(a.value))throw new A(`The value for the field "${a.field}" must be an array when using the "in" operator.`);return[O(t[c],a.value)]}return a.operator==="contains"?[F(t[c],`%${a.value}%`)]:a.operator==="starts_with"?[F(t[c],`${a.value}%`)]:a.operator==="ends_with"?[F(t[c],`%${a.value}`)]:[v(t[c],a.value)]}let i=s.filter(a=>a.connector==="AND"||!a.connector),o=s.filter(a=>a.connector==="OR"),l=V(...i.map(a=>{let c=h(r,a.field);if(a.operator==="in"){if(!Array.isArray(a.value))throw new A(`The value for the field "${a.field}" must be an array when using the "in" operator.`);return O(t[c],a.value)}return v(t[c],a.value)})),f=K(...o.map(a=>{let c=h(r,a.field);return v(t[c],a.value)})),u=[];return i.length&&u.push(l),o.length&&u.push(f),u},withReturning:async(s,r,t)=>{if(n.provider!=="mysql")return(await r.returning())[0];await r;let i=m(g(s));return(await e.select()(i).where(v(i.id,t.id)))[0]}}},ft=(e,n)=>p=>{let{transformInput:y,transformOutput:h,convertWhereClause:m,getSchema:g,withReturning:s}=P(e,n,p);return{id:"drizzle",async create(r){let{model:t,data:i}=r,o=y(i,t),l=g(t),f=e.insert(l).values(o),u=await s(t,f,o);return h(u,t)},async findOne(r){let{model:t,where:i,select:o}=r,l=g(t),f=m(i,t),u=await e.select().from(l).where(...f);return u.length?h(u[0],t,o):null},async findMany(r){let{model:t,where:i,sortBy:o,limit:l,offset:f}=r,u=g(t),a=i?m(i,t):[],c=o?.direction==="desc"?C:U;return(await e.select().from(u).limit(l||100).offset(f||0).orderBy(c(u[o?.field||"id"])).where(...a)).map(I=>h(I,t))},async update(r){let{model:t,where:i,update:o}=r,l=g(t),f=m(i,t),u=y(o,t),a=e.update(l).set(u).where(...f),c=await s(t,a,u);return h(c,t)},async updateMany(r){let{model:t,where:i,update:o}=r,l=g(t),f=m(i,t),u=y(o,t),c=await e.update(l).set(u).where(...f);return c?c.changes:0},async delete(r){let{model:t,where:i}=r,o=g(t),l=m(i,t);await e.delete(o).where(...l)},async deleteMany(r){let{model:t,where:i}=r,o=g(t),l=m(i,t),u=await e.delete(o).where(...l);return u?u.length:0},options:n}};export{ft as drizzleAdapter};
@@ -1 +1,2 @@
1
- "use strict";var A=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var k=(t,e)=>{for(var a in e)A(t,a,{get:e[a],enumerable:!0})},x=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of q(e))!F.call(t,s)&&s!==a&&A(t,s,{get:()=>e[s],enumerable:!(n=T(e,s))||n.enumerable});return t};var K=t=>x(A({},"__esModule",{value:!0}),t);var O={};k(O,{createKyselyAdapter:()=>I,kyselyAdapter:()=>M});module.exports=K(O);var p=require("kysely"),d=require("kysely");function D(t){if("dialect"in t)return D(t.dialect);if("createDriver"in t){if(t instanceof d.SqliteDialect)return"sqlite";if(t instanceof d.MysqlDialect)return"mysql";if(t instanceof d.PostgresDialect)return"postgres";if(t instanceof p.MssqlDialect)return"mssql"}return"aggregate"in t?"sqlite":"getConnection"in t?"mysql":"connect"in t?"postgres":null}var I=async t=>{let e=t.database;if("db"in e)return{kysely:e.db,databaseType:e.type};if("dialect"in e)return{kysely:new p.Kysely({dialect:e.dialect}),databaseType:e.type};let a,n=D(e);return"createDriver"in e&&(a=e),"aggregate"in e&&(a=new d.SqliteDialect({database:e})),"getConnection"in e&&(a=new d.MysqlDialect(e)),"connect"in e&&(a=new d.PostgresDialect({pool:e})),{kysely:a?new p.Kysely({dialect:a}):null,databaseType:n}};function h(t){if(!t)return{and:null,or:null};let e={and:[],or:[]};return t.forEach(a=>{let{field:n,value:s,operator:i="=",connector:f="AND"}=a,o=r=>i.toLowerCase()==="in"?r(n,"in",Array.isArray(s)?s:[s]):i==="contains"?r(n,"like",`%${s}%`):i==="starts_with"?r(n,"like",`${s}%`):i==="ends_with"?r(n,"like",`%${s}`):i==="eq"?r(n,"=",s):i==="ne"?r(n,"<>",s):i==="gt"?r(n,">",s):i==="gte"?r(n,">=",s):i==="lt"?r(n,"<",s):i==="lte"?r(n,"<=",s):r(n,i,s);f==="OR"?e.or.push(o):e.and.push(o)}),{and:e.and.length?e.and:null,or:e.or.length?e.or:null}}function w(t,e,a){for(let n in t){let s=e[n]||Object.values(e).find(i=>i.fieldName===n);t[n]===0&&s.type==="boolean"&&a?.boolean&&(t[n]=!1),t[n]===1&&s?.type==="boolean"&&a?.boolean&&(t[n]=!0),s?.type==="date"&&(t[n]instanceof Date||(t[n]=new Date(t[n])))}return t}function C(t){let e=a=>a<10?"0"+a:a;return t.getFullYear()+"-"+e(t.getMonth()+1)+"-"+e(t.getDate())+" "+e(t.getHours())+":"+e(t.getMinutes())+":"+e(t.getSeconds())}function g(t,e){for(let a in t)typeof t[a]=="boolean"&&e?.boolean&&(t[a]=t[a]?1:0),t[a]instanceof Date&&(t[a]=e?.databaseType==="mysql"?C(t[a]):t[a].toISOString());return t}var M=(t,e)=>({id:"kysely",async create(a){let{model:n,data:s,select:i}=a;e?.transform&&(s=g(s,e.transform)),e?.generateId!==void 0&&(s.id=e.generateId?e.generateId():void 0);let f=t.insertInto(n).values(s),o;if(e?.transform?.databaseType!=="mysql")o=await f.returningAll().executeTakeFirst();else{await f.execute();let r="id",l=s[r];o=await t.selectFrom(n).selectAll().where(r,"=",l).executeTakeFirst()}if(e?.transform){let r=e.transform.schema[n];o=r?w(s,r,e.transform):o}return i?.length&&(o=o?i.reduce((l,y)=>o?.[y]?{...l,[y]:o[y]}:l,{}):null),o},async findOne(a){let{model:n,where:s,select:i}=a,{and:f,or:o}=h(s),r=t.selectFrom(n).selectAll();f&&(r=r.where(y=>y.and(f.map(u=>u(y))))),o&&(r=r.where(y=>y.or(o.map(u=>u(y)))));let l=await r.executeTakeFirst();if(i?.length&&(l=l?i.reduce((u,c)=>l?.[c]?{...u,[c]:l[c]}:u,{}):null),e?.transform){let y=e.transform.schema[n];return l=l&&y?w(l,y,e.transform):l,l||null}return l||null},async findMany(a){let{model:n,where:s,limit:i,offset:f,sortBy:o}=a,r=t.selectFrom(n),{and:l,or:y}=h(s);l&&(r=r.where(c=>c.and(l.map(m=>m(c))))),y&&(r=r.where(c=>c.or(y.map(m=>m(c))))),r=r.limit(i||100),f&&(r=r.offset(f)),o&&(r=r.orderBy(o.field,o.direction));let u=await r.selectAll().execute();if(e?.transform){let c=e.transform.schema[n];return c?u.map(m=>w(m,c,e.transform)):u}return u},async update(a){let{model:n,where:s,update:i}=a,{and:f,or:o}=h(s);e?.transform&&(i=g(i,e.transform)),i.id&&(i.id=void 0);let r=t.updateTable(n).set(i);f&&(r=r.where(y=>y.and(f.map(u=>u(y))))),o&&(r=r.where(y=>y.or(o.map(u=>u(y)))));let l;if(e?.transform?.databaseType!=="mysql")l=await r.returningAll().executeTakeFirst()||null;else{await r.execute();let y="id",u=i[y];l=await t.selectFrom(n).selectAll().where(y,"=",u).executeTakeFirst()}if(e?.transform){let y=e.transform.schema[n];return y?w(l,y,e.transform):l}return l},async delete(a){let{model:n,where:s}=a,{and:i,or:f}=h(s),o=t.deleteFrom(n);i&&(o=o.where(r=>r.and(i.map(l=>l(r))))),f&&(o=o.where(r=>r.or(f.map(l=>l(r))))),await o.execute()},async deleteMany(a){let{model:n,where:s}=a,{and:i,or:f}=h(s),o=t.deleteFrom(n);i&&(o=o.where(r=>r.and(i.map(l=>l(r))))),f&&(o=o.where(r=>r.or(f.map(l=>l(r))))),await o.execute()}});0&&(module.exports={createKyselyAdapter,kyselyAdapter});
1
+ "use strict";var I=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var M=(e,t)=>{for(var c in t)I(e,c,{get:t[c],enumerable:!0})},U=(e,t,c,y)=>{if(t&&typeof t=="object"||typeof t=="function")for(let g of B(t))!V.call(e,g)&&g!==c&&I(e,g,{get:()=>t[g],enumerable:!(y=R(t,g))||y.enumerable});return e};var K=e=>U(I({},"__esModule",{value:!0}),e);var J={};M(J,{createKyselyAdapter:()=>k,kyselyAdapter:()=>D});module.exports=K(J);var T=require("kysely"),b=require("kysely");function N(e){if("dialect"in e)return N(e.dialect);if("createDriver"in e){if(e instanceof b.SqliteDialect)return"sqlite";if(e instanceof b.MysqlDialect)return"mysql";if(e instanceof b.PostgresDialect)return"postgres";if(e instanceof T.MssqlDialect)return"mssql"}return"aggregate"in e?"sqlite":"getConnection"in e?"mysql":"connect"in e?"postgres":null}var k=async e=>{let t=e.database;if("db"in t)return{kysely:t.db,databaseType:t.type};if("dialect"in t)return{kysely:new T.Kysely({dialect:t.dialect}),databaseType:t.type};let c,y=N(t);return"createDriver"in t&&(c=t),"aggregate"in t&&(c=new b.SqliteDialect({database:t})),"getConnection"in t&&(c=new b.MysqlDialect(t)),"connect"in t&&(c=new b.PostgresDialect({pool:t})),{kysely:c?new T.Kysely({dialect:c}):null,databaseType:y}};var u=require("zod"),Q=u.z.object({id:u.z.string(),providerId:u.z.string(),accountId:u.z.string(),userId:u.z.string(),accessToken:u.z.string().nullish(),refreshToken:u.z.string().nullish(),idToken:u.z.string().nullish(),expiresAt:u.z.date().nullish(),password:u.z.string().nullish()}),X=u.z.object({id:u.z.string(),email:u.z.string().transform(e=>e.toLowerCase()),emailVerified:u.z.boolean().default(!1),name:u.z.string(),image:u.z.string().nullish(),createdAt:u.z.date().default(new Date),updatedAt:u.z.date().default(new Date)}),Y=u.z.object({id:u.z.string(),userId:u.z.string(),expiresAt:u.z.date(),ipAddress:u.z.string().nullish(),userAgent:u.z.string().nullish()}),ee=u.z.object({id:u.z.string(),value:u.z.string(),expiresAt:u.z.date(),identifier:u.z.string()});var j=require("nanoid");var v=Object.create(null),F=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?v:globalThis),P=new Proxy(v,{get(e,t){return F()[t]??v[t]},has(e,t){let c=F();return t in c||t in v},set(e,t,c){let y=F(!0);return y[t]=c,!0},deleteProperty(e,t){if(!t)return!1;let c=F(!0);return delete c[t],!0},ownKeys(){let e=F(!0);return Object.keys(e)}});function C(e){return e?e!=="false":!1}var E=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var L=E==="test"||C(P.TEST);var S=e=>{let t=e.plugins?.reduce((n,r)=>{let i=r.schema;if(!i)return n;for(let[d,a]of Object.entries(i))n[d]={fields:{...n[d]?.fields,...a.fields},tableName:a.tableName||d};return n},{}),c=e.rateLimit?.storage==="database",y={rateLimit:{tableName:e.rateLimit?.tableName||"rateLimit",fields:{key:{type:"string",fieldName:e.rateLimit?.fields?.key||"key"},count:{type:"number",fieldName:e.rateLimit?.fields?.count||"count"},lastRequest:{type:"number",fieldName:e.rateLimit?.fields?.lastRequest||"lastRequest"}}}},{user:g,session:x,account:A,...h}=t||{};return{user:{tableName:e.user?.modelName||"user",fields:{name:{type:"string",required:!0,fieldName:e.user?.fields?.name||"name"},email:{type:"string",unique:!0,required:!0,fieldName:e.user?.fields?.email||"email"},emailVerified:{type:"boolean",defaultValue:()=>!1,required:!0,fieldName:e.user?.fields?.emailVerified||"emailVerified"},image:{type:"string",required:!1,fieldName:e.user?.fields?.image||"image"},createdAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||"updatedAt"},...g?.fields,...e.user?.additionalFields},order:1},session:{tableName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},ipAddress:{type:"string",required:!1,fieldName:e.session?.fields?.ipAddress||"ipAddress"},userAgent:{type:"string",required:!1,fieldName:e.session?.fields?.userAgent||"userAgent"},userId:{type:"string",fieldName:e.session?.fields?.userId||"userId",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0},...x?.fields,...e.session?.additionalFields},order:2},account:{tableName:e.account?.modelName||"account",fields:{accountId:{type:"string",required:!0,fieldName:e.account?.fields?.accountId||"accountId"},providerId:{type:"string",required:!0,fieldName:e.account?.fields?.providerId||"providerId"},userId:{type:"string",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0,fieldName:e.account?.fields?.userId||"userId"},accessToken:{type:"string",required:!1,fieldName:e.account?.fields?.accessToken||"accessToken"},refreshToken:{type:"string",required:!1,fieldName:e.account?.fields?.refreshToken||"refreshToken"},idToken:{type:"string",required:!1,fieldName:e.account?.fields?.idToken||"idToken"},expiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.expiresAt||"expiresAt"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},...A?.fields},order:3},verification:{tableName:e.verification?.modelName||"verification",fields:{identifier:{type:"string",required:!0,fieldName:e.verification?.fields?.identifier||"identifier"},value:{type:"string",required:!0,fieldName:e.verification?.fields?.value||"value"},expiresAt:{type:"date",required:!0,fieldName:e.verification?.fields?.expiresAt||"expiresAt"}},order:4},...h,...c?y:{}}};var $=require("zod");var q=require("consola"),w=(0,q.createConsola)({formatOptions:{date:!1,colors:!0,compact:!0},defaults:{tag:"Better Auth"}}),_=e=>({log:(...t)=>{!e?.disabled&&w.log("",...t)},error:(...t)=>{!e?.disabled&&w.error("",...t)},warn:(...t)=>{!e?.disabled&&w.warn("",...t)},info:(...t)=>{!e?.disabled&&w.info("",...t)},debug:(...t)=>{!e?.disabled&&w.debug("",...t)},box:(...t)=>{!e?.disabled&&w.box("",...t)},success:(...t)=>{!e?.disabled&&w.success("",...t)},break:(...t)=>{!e?.disabled&&console.log(`
2
+ `)}}),W=_();var H=(e,t,c)=>{let y=S(t);function g(n,r){if(r==="id")return r;let i=y[n].fields[r];return i||console.log("Field not found",n,r),i.fieldName||r}function x(n,r,i){let{type:d="sqlite"}=c||{},a=y[r].fields[i];return a.type==="boolean"&&d==="sqlite"?n?1:0:a.type==="date"&&n?n.toISOString():n}function A(n,r,i){let{type:d="sqlite"}=c||{},a=y[r].fields[i];return a.type==="boolean"&&d==="sqlite"&&n!==null?n===1:a.type==="date"&&n?new Date(n):n}let h=c?.generateId!==!1;return{transformInput(n,r){let i=n.id&&h?{id:c?.generateId?c.generateId():n.id}:{};for(let d in n){let a=y[r].fields[d];a&&(i[a.fieldName||d]=x(n[d],r,d))}return i},transformOutput(n,r,i=[]){if(!n)return null;let d=n.id?i.length===0||i.includes("id")?{id:n.id}:{}:{},a=y[r].fields;for(let s in a){if(i.length&&!i.includes(s))continue;let o=a[s];o&&(d[s]=A(n[o.fieldName||s],r,s))}return d},convertWhereClause(n,r){if(!r)return{and:null,or:null};let i={and:[],or:[]};return r.forEach(d=>{let{field:a,value:s,operator:o="=",connector:f="AND"}=d,l=g(n,a),m=p=>o.toLowerCase()==="in"?p(l,"in",Array.isArray(s)?s:[s]):o==="contains"?p(l,"like",`%${s}%`):o==="starts_with"?p(l,"like",`${s}%`):o==="ends_with"?p(l,"like",`%${s}`):o==="eq"?p(l,"=",s):o==="ne"?p(l,"<>",s):o==="gt"?p(l,">",s):o==="gte"?p(l,">=",s):o==="lt"?p(l,"<",s):o==="lte"?p(l,"<=",s):p(l,o,s);f==="OR"?i.or.push(m):i.and.push(m)}),{and:i.and.length?i.and:null,or:i.or.length?i.or:null}},async withReturning(n,r,i){let d;if(c?.type!=="mysql")d=await r.returningAll().executeTakeFirst();else{await r.execute();let a="id",s=n[a];d=await e.selectFrom(this.getModelName(i)).selectAll().where(a,"=",s).executeTakeFirst()}return d},getModelName(n){return y[n].tableName}}},D=(e,t)=>c=>{let{transformInput:y,withReturning:g,transformOutput:x,convertWhereClause:A,getModelName:h}=H(e,c,t);return{id:"kysely",async create(n){let{model:r,data:i,select:d}=n,a=y(i,r),s=e.insertInto(h(r)).values(a);return x(await g(a,s,r),r,d)},async findOne(n){let{model:r,where:i,select:d}=n,{and:a,or:s}=A(r,i),o=e.selectFrom(h(r)).selectAll();a&&(o=o.where(l=>l.and(a.map(m=>m(l))))),s&&(o=o.where(l=>l.or(s.map(m=>m(l)))));let f=await o.executeTakeFirst();return f?x(f,r,d):null},async findMany(n){let{model:r,where:i,limit:d,offset:a,sortBy:s}=n,{and:o,or:f}=A(r,i),l=e.selectFrom(h(r)).selectAll();o&&(l=l.where(p=>p.and(o.map(O=>O(p))))),f&&(l=l.where(p=>p.or(f.map(O=>O(p))))),l=l.limit(d||100),a&&(l=l.offset(a)),s&&(l=l.orderBy(s.field,s.direction));let m=await l.selectAll().execute();return m?m.map(p=>x(p,r)):[]},async update(n){let{model:r,where:i,update:d}=n,{and:a,or:s}=A(r,i),o=y(d,r),f=e.updateTable(h(r)).set(o);return a&&(f=f.where(l=>l.and(a.map(m=>m(l))))),s&&(f=f.where(l=>l.or(s.map(m=>m(l))))),x(await g(o,f,r),r)},async updateMany(n){let{model:r,where:i,update:d}=n,{and:a,or:s}=A(r,i),o=y(d,r),f=e.updateTable(h(r)).set(o);return a&&(f=f.where(m=>m.and(a.map(p=>p(m))))),s&&(f=f.where(m=>m.or(s.map(p=>p(m))))),(await f.execute()).length},async delete(n){let{model:r,where:i}=n,{and:d,or:a}=A(r,i),s=e.deleteFrom(h(r));d&&(s=s.where(o=>o.and(d.map(f=>f(o))))),a&&(s=s.where(o=>o.or(a.map(f=>f(o))))),await s.execute()},async deleteMany(n){let{model:r,where:i}=n,{and:d,or:a}=A(r,i),s=e.deleteFrom(h(r));return d&&(s=s.where(o=>o.and(d.map(f=>f(o))))),a&&(s=s.where(o=>o.or(a.map(f=>f(o))))),(await s.execute()).length},options:t}};0&&(module.exports={createKyselyAdapter,kyselyAdapter});
@@ -1,9 +1,9 @@
1
1
  import { Kysely } from 'kysely';
2
- import { B as BetterAuthOptions, K as KyselyDatabaseType, F as FieldAttribute, A as Adapter } from '../auth-DBMdxK-M.cjs';
2
+ import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-BE8d2yIK.cjs';
3
3
  import 'zod';
4
4
  import 'better-call';
5
- import '../index-cqC7BcV_.cjs';
6
5
  import '../helper-DPDj8Nix.cjs';
6
+ import '../index-cqC7BcV_.cjs';
7
7
  import 'jose';
8
8
  import 'better-sqlite3';
9
9
 
@@ -14,16 +14,9 @@ declare const createKyselyAdapter: (config: BetterAuthOptions) => Promise<{
14
14
 
15
15
  interface KyselyAdapterConfig {
16
16
  /**
17
- * Transform dates and booleans for sqlite.
17
+ * Database type.
18
18
  */
19
- transform?: {
20
- schema: {
21
- [table: string]: Record<string, FieldAttribute>;
22
- };
23
- boolean: boolean;
24
- date: boolean;
25
- databaseType?: KyselyDatabaseType | null;
26
- };
19
+ type?: KyselyDatabaseType;
27
20
  /**
28
21
  * Custom generateId function.
29
22
  *
@@ -34,6 +27,49 @@ interface KyselyAdapterConfig {
34
27
  */
35
28
  generateId?: ((size?: number) => string) | false;
36
29
  }
37
- declare const kyselyAdapter: (db: Kysely<any>, config?: KyselyAdapterConfig) => Adapter;
30
+ declare const kyselyAdapter: (db: Kysely<any>, config?: KyselyAdapterConfig) => (opts: BetterAuthOptions) => {
31
+ id: string;
32
+ create<T extends {
33
+ id?: string;
34
+ } & Record<string, any>, R = T>(data: {
35
+ model: string;
36
+ data: T;
37
+ select?: string[];
38
+ }): Promise<any>;
39
+ findOne<T>(data: {
40
+ model: string;
41
+ where: Where[];
42
+ select?: string[];
43
+ }): Promise<any>;
44
+ findMany<T>(data: {
45
+ model: string;
46
+ where?: Where[];
47
+ limit?: number;
48
+ sortBy?: {
49
+ field: string;
50
+ direction: "asc" | "desc";
51
+ };
52
+ offset?: number;
53
+ }): Promise<any[]>;
54
+ update<T>(data: {
55
+ model: string;
56
+ where: Where[];
57
+ update: Record<string, any>;
58
+ }): Promise<any>;
59
+ updateMany(data: {
60
+ model: string;
61
+ where: Where[];
62
+ update: Record<string, any>;
63
+ }): Promise<number>;
64
+ delete<T>(data: {
65
+ model: string;
66
+ where: Where[];
67
+ }): Promise<void>;
68
+ deleteMany(data: {
69
+ model: string;
70
+ where: Where[];
71
+ }): Promise<number>;
72
+ options: KyselyAdapterConfig | undefined;
73
+ };
38
74
 
39
- export { type KyselyAdapterConfig, KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
75
+ export { KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
@@ -1,9 +1,9 @@
1
1
  import { Kysely } from 'kysely';
2
- import { B as BetterAuthOptions, K as KyselyDatabaseType, F as FieldAttribute, A as Adapter } from '../auth-ElLq7vmm.js';
2
+ import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-Ct3xWAIa.js';
3
3
  import 'zod';
4
4
  import 'better-call';
5
- import '../index-DN9ozDRm.js';
6
5
  import '../helper-DPDj8Nix.js';
6
+ import '../index-DN9ozDRm.js';
7
7
  import 'jose';
8
8
  import 'better-sqlite3';
9
9
 
@@ -14,16 +14,9 @@ declare const createKyselyAdapter: (config: BetterAuthOptions) => Promise<{
14
14
 
15
15
  interface KyselyAdapterConfig {
16
16
  /**
17
- * Transform dates and booleans for sqlite.
17
+ * Database type.
18
18
  */
19
- transform?: {
20
- schema: {
21
- [table: string]: Record<string, FieldAttribute>;
22
- };
23
- boolean: boolean;
24
- date: boolean;
25
- databaseType?: KyselyDatabaseType | null;
26
- };
19
+ type?: KyselyDatabaseType;
27
20
  /**
28
21
  * Custom generateId function.
29
22
  *
@@ -34,6 +27,49 @@ interface KyselyAdapterConfig {
34
27
  */
35
28
  generateId?: ((size?: number) => string) | false;
36
29
  }
37
- declare const kyselyAdapter: (db: Kysely<any>, config?: KyselyAdapterConfig) => Adapter;
30
+ declare const kyselyAdapter: (db: Kysely<any>, config?: KyselyAdapterConfig) => (opts: BetterAuthOptions) => {
31
+ id: string;
32
+ create<T extends {
33
+ id?: string;
34
+ } & Record<string, any>, R = T>(data: {
35
+ model: string;
36
+ data: T;
37
+ select?: string[];
38
+ }): Promise<any>;
39
+ findOne<T>(data: {
40
+ model: string;
41
+ where: Where[];
42
+ select?: string[];
43
+ }): Promise<any>;
44
+ findMany<T>(data: {
45
+ model: string;
46
+ where?: Where[];
47
+ limit?: number;
48
+ sortBy?: {
49
+ field: string;
50
+ direction: "asc" | "desc";
51
+ };
52
+ offset?: number;
53
+ }): Promise<any[]>;
54
+ update<T>(data: {
55
+ model: string;
56
+ where: Where[];
57
+ update: Record<string, any>;
58
+ }): Promise<any>;
59
+ updateMany(data: {
60
+ model: string;
61
+ where: Where[];
62
+ update: Record<string, any>;
63
+ }): Promise<number>;
64
+ delete<T>(data: {
65
+ model: string;
66
+ where: Where[];
67
+ }): Promise<void>;
68
+ deleteMany(data: {
69
+ model: string;
70
+ where: Where[];
71
+ }): Promise<number>;
72
+ options: KyselyAdapterConfig | undefined;
73
+ };
38
74
 
39
- export { type KyselyAdapterConfig, KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
75
+ export { KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
@@ -1 +1,2 @@
1
- import{Kysely as h,MssqlDialect as q}from"kysely";import{MysqlDialect as w,PostgresDialect as A,SqliteDialect as D}from"kysely";function g(r){if("dialect"in r)return g(r.dialect);if("createDriver"in r){if(r instanceof D)return"sqlite";if(r instanceof w)return"mysql";if(r instanceof A)return"postgres";if(r instanceof q)return"mssql"}return"aggregate"in r?"sqlite":"getConnection"in r?"mysql":"connect"in r?"postgres":null}var K=async r=>{let e=r.database;if("db"in e)return{kysely:e.db,databaseType:e.type};if("dialect"in e)return{kysely:new h({dialect:e.dialect}),databaseType:e.type};let a,n=g(e);return"createDriver"in e&&(a=e),"aggregate"in e&&(a=new D({database:e})),"getConnection"in e&&(a=new w(e)),"connect"in e&&(a=new A({pool:e})),{kysely:a?new h({dialect:a}):null,databaseType:n}};function m(r){if(!r)return{and:null,or:null};let e={and:[],or:[]};return r.forEach(a=>{let{field:n,value:s,operator:i="=",connector:f="AND"}=a,o=t=>i.toLowerCase()==="in"?t(n,"in",Array.isArray(s)?s:[s]):i==="contains"?t(n,"like",`%${s}%`):i==="starts_with"?t(n,"like",`${s}%`):i==="ends_with"?t(n,"like",`%${s}`):i==="eq"?t(n,"=",s):i==="ne"?t(n,"<>",s):i==="gt"?t(n,">",s):i==="gte"?t(n,">=",s):i==="lt"?t(n,"<",s):i==="lte"?t(n,"<=",s):t(n,i,s);f==="OR"?e.or.push(o):e.and.push(o)}),{and:e.and.length?e.and:null,or:e.or.length?e.or:null}}function p(r,e,a){for(let n in r){let s=e[n]||Object.values(e).find(i=>i.fieldName===n);r[n]===0&&s.type==="boolean"&&a?.boolean&&(r[n]=!1),r[n]===1&&s?.type==="boolean"&&a?.boolean&&(r[n]=!0),s?.type==="date"&&(r[n]instanceof Date||(r[n]=new Date(r[n])))}return r}function F(r){let e=a=>a<10?"0"+a:a;return r.getFullYear()+"-"+e(r.getMonth()+1)+"-"+e(r.getDate())+" "+e(r.getHours())+":"+e(r.getMinutes())+":"+e(r.getSeconds())}function T(r,e){for(let a in r)typeof r[a]=="boolean"&&e?.boolean&&(r[a]=r[a]?1:0),r[a]instanceof Date&&(r[a]=e?.databaseType==="mysql"?F(r[a]):r[a].toISOString());return r}var C=(r,e)=>({id:"kysely",async create(a){let{model:n,data:s,select:i}=a;e?.transform&&(s=T(s,e.transform)),e?.generateId!==void 0&&(s.id=e.generateId?e.generateId():void 0);let f=r.insertInto(n).values(s),o;if(e?.transform?.databaseType!=="mysql")o=await f.returningAll().executeTakeFirst();else{await f.execute();let t="id",l=s[t];o=await r.selectFrom(n).selectAll().where(t,"=",l).executeTakeFirst()}if(e?.transform){let t=e.transform.schema[n];o=t?p(s,t,e.transform):o}return i?.length&&(o=o?i.reduce((l,y)=>o?.[y]?{...l,[y]:o[y]}:l,{}):null),o},async findOne(a){let{model:n,where:s,select:i}=a,{and:f,or:o}=m(s),t=r.selectFrom(n).selectAll();f&&(t=t.where(y=>y.and(f.map(u=>u(y))))),o&&(t=t.where(y=>y.or(o.map(u=>u(y)))));let l=await t.executeTakeFirst();if(i?.length&&(l=l?i.reduce((u,c)=>l?.[c]?{...u,[c]:l[c]}:u,{}):null),e?.transform){let y=e.transform.schema[n];return l=l&&y?p(l,y,e.transform):l,l||null}return l||null},async findMany(a){let{model:n,where:s,limit:i,offset:f,sortBy:o}=a,t=r.selectFrom(n),{and:l,or:y}=m(s);l&&(t=t.where(c=>c.and(l.map(d=>d(c))))),y&&(t=t.where(c=>c.or(y.map(d=>d(c))))),t=t.limit(i||100),f&&(t=t.offset(f)),o&&(t=t.orderBy(o.field,o.direction));let u=await t.selectAll().execute();if(e?.transform){let c=e.transform.schema[n];return c?u.map(d=>p(d,c,e.transform)):u}return u},async update(a){let{model:n,where:s,update:i}=a,{and:f,or:o}=m(s);e?.transform&&(i=T(i,e.transform)),i.id&&(i.id=void 0);let t=r.updateTable(n).set(i);f&&(t=t.where(y=>y.and(f.map(u=>u(y))))),o&&(t=t.where(y=>y.or(o.map(u=>u(y)))));let l;if(e?.transform?.databaseType!=="mysql")l=await t.returningAll().executeTakeFirst()||null;else{await t.execute();let y="id",u=i[y];l=await r.selectFrom(n).selectAll().where(y,"=",u).executeTakeFirst()}if(e?.transform){let y=e.transform.schema[n];return y?p(l,y,e.transform):l}return l},async delete(a){let{model:n,where:s}=a,{and:i,or:f}=m(s),o=r.deleteFrom(n);i&&(o=o.where(t=>t.and(i.map(l=>l(t))))),f&&(o=o.where(t=>t.or(f.map(l=>l(t))))),await o.execute()},async deleteMany(a){let{model:n,where:s}=a,{and:i,or:f}=m(s),o=r.deleteFrom(n);i&&(o=o.where(t=>t.and(i.map(l=>l(t))))),f&&(o=o.where(t=>t.or(f.map(l=>l(t))))),await o.execute()}});export{K as createKyselyAdapter,C as kyselyAdapter};
1
+ import{Kysely as O,MssqlDialect as q}from"kysely";import{MysqlDialect as I,PostgresDialect as k,SqliteDialect as S}from"kysely";function N(e){if("dialect"in e)return N(e.dialect);if("createDriver"in e){if(e instanceof S)return"sqlite";if(e instanceof I)return"mysql";if(e instanceof k)return"postgres";if(e instanceof q)return"mssql"}return"aggregate"in e?"sqlite":"getConnection"in e?"mysql":"connect"in e?"postgres":null}var D=async e=>{let r=e.database;if("db"in r)return{kysely:r.db,databaseType:r.type};if("dialect"in r)return{kysely:new O({dialect:r.dialect}),databaseType:r.type};let f,m=N(r);return"createDriver"in r&&(f=r),"aggregate"in r&&(f=new S({database:r})),"getConnection"in r&&(f=new I(r)),"connect"in r&&(f=new k({pool:r})),{kysely:f?new O({dialect:f}):null,databaseType:m}};import{z as u}from"zod";var H=u.object({id:u.string(),providerId:u.string(),accountId:u.string(),userId:u.string(),accessToken:u.string().nullish(),refreshToken:u.string().nullish(),idToken:u.string().nullish(),expiresAt:u.date().nullish(),password:u.string().nullish()}),J=u.object({id:u.string(),email:u.string().transform(e=>e.toLowerCase()),emailVerified:u.boolean().default(!1),name:u.string(),image:u.string().nullish(),createdAt:u.date().default(new Date),updatedAt:u.date().default(new Date)}),z=u.object({id:u.string(),userId:u.string(),expiresAt:u.date(),ipAddress:u.string().nullish(),userAgent:u.string().nullish()}),Z=u.object({id:u.string(),value:u.string(),expiresAt:u.date(),identifier:u.string()});import{nanoid as X}from"nanoid";var T=Object.create(null),w=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?T:globalThis),R=new Proxy(T,{get(e,r){return w()[r]??T[r]},has(e,r){let f=w();return r in f||r in T},set(e,r,f){let m=w(!0);return m[r]=f,!0},deleteProperty(e,r){if(!r)return!1;let f=w(!0);return delete f[r],!0},ownKeys(){let e=w(!0);return Object.keys(e)}});function B(e){return e?e!=="false":!1}var V=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var M=V==="test"||B(R.TEST);var v=e=>{let r=e.plugins?.reduce((n,t)=>{let i=t.schema;if(!i)return n;for(let[d,a]of Object.entries(i))n[d]={fields:{...n[d]?.fields,...a.fields},tableName:a.tableName||d};return n},{}),f=e.rateLimit?.storage==="database",m={rateLimit:{tableName:e.rateLimit?.tableName||"rateLimit",fields:{key:{type:"string",fieldName:e.rateLimit?.fields?.key||"key"},count:{type:"number",fieldName:e.rateLimit?.fields?.count||"count"},lastRequest:{type:"number",fieldName:e.rateLimit?.fields?.lastRequest||"lastRequest"}}}},{user:x,session:A,account:h,...g}=r||{};return{user:{tableName:e.user?.modelName||"user",fields:{name:{type:"string",required:!0,fieldName:e.user?.fields?.name||"name"},email:{type:"string",unique:!0,required:!0,fieldName:e.user?.fields?.email||"email"},emailVerified:{type:"boolean",defaultValue:()=>!1,required:!0,fieldName:e.user?.fields?.emailVerified||"emailVerified"},image:{type:"string",required:!1,fieldName:e.user?.fields?.image||"image"},createdAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||"updatedAt"},...x?.fields,...e.user?.additionalFields},order:1},session:{tableName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},ipAddress:{type:"string",required:!1,fieldName:e.session?.fields?.ipAddress||"ipAddress"},userAgent:{type:"string",required:!1,fieldName:e.session?.fields?.userAgent||"userAgent"},userId:{type:"string",fieldName:e.session?.fields?.userId||"userId",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0},...A?.fields,...e.session?.additionalFields},order:2},account:{tableName:e.account?.modelName||"account",fields:{accountId:{type:"string",required:!0,fieldName:e.account?.fields?.accountId||"accountId"},providerId:{type:"string",required:!0,fieldName:e.account?.fields?.providerId||"providerId"},userId:{type:"string",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0,fieldName:e.account?.fields?.userId||"userId"},accessToken:{type:"string",required:!1,fieldName:e.account?.fields?.accessToken||"accessToken"},refreshToken:{type:"string",required:!1,fieldName:e.account?.fields?.refreshToken||"refreshToken"},idToken:{type:"string",required:!1,fieldName:e.account?.fields?.idToken||"idToken"},expiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.expiresAt||"expiresAt"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},...h?.fields},order:3},verification:{tableName:e.verification?.modelName||"verification",fields:{identifier:{type:"string",required:!0,fieldName:e.verification?.fields?.identifier||"identifier"},value:{type:"string",required:!0,fieldName:e.verification?.fields?.value||"value"},expiresAt:{type:"date",required:!0,fieldName:e.verification?.fields?.expiresAt||"expiresAt"}},order:4},...g,...f?m:{}}};import{z as Te}from"zod";import{createConsola as K}from"consola";var b=K({formatOptions:{date:!1,colors:!0,compact:!0},defaults:{tag:"Better Auth"}}),j=e=>({log:(...r)=>{!e?.disabled&&b.log("",...r)},error:(...r)=>{!e?.disabled&&b.error("",...r)},warn:(...r)=>{!e?.disabled&&b.warn("",...r)},info:(...r)=>{!e?.disabled&&b.info("",...r)},debug:(...r)=>{!e?.disabled&&b.debug("",...r)},box:(...r)=>{!e?.disabled&&b.box("",...r)},success:(...r)=>{!e?.disabled&&b.success("",...r)},break:(...r)=>{!e?.disabled&&console.log(`
2
+ `)}}),P=j();var C=(e,r,f)=>{let m=v(r);function x(n,t){if(t==="id")return t;let i=m[n].fields[t];return i||console.log("Field not found",n,t),i.fieldName||t}function A(n,t,i){let{type:d="sqlite"}=f||{},a=m[t].fields[i];return a.type==="boolean"&&d==="sqlite"?n?1:0:a.type==="date"&&n?n.toISOString():n}function h(n,t,i){let{type:d="sqlite"}=f||{},a=m[t].fields[i];return a.type==="boolean"&&d==="sqlite"&&n!==null?n===1:a.type==="date"&&n?new Date(n):n}let g=f?.generateId!==!1;return{transformInput(n,t){let i=n.id&&g?{id:f?.generateId?f.generateId():n.id}:{};for(let d in n){let a=m[t].fields[d];a&&(i[a.fieldName||d]=A(n[d],t,d))}return i},transformOutput(n,t,i=[]){if(!n)return null;let d=n.id?i.length===0||i.includes("id")?{id:n.id}:{}:{},a=m[t].fields;for(let s in a){if(i.length&&!i.includes(s))continue;let o=a[s];o&&(d[s]=h(n[o.fieldName||s],t,s))}return d},convertWhereClause(n,t){if(!t)return{and:null,or:null};let i={and:[],or:[]};return t.forEach(d=>{let{field:a,value:s,operator:o="=",connector:c="AND"}=d,l=x(n,a),y=p=>o.toLowerCase()==="in"?p(l,"in",Array.isArray(s)?s:[s]):o==="contains"?p(l,"like",`%${s}%`):o==="starts_with"?p(l,"like",`${s}%`):o==="ends_with"?p(l,"like",`%${s}`):o==="eq"?p(l,"=",s):o==="ne"?p(l,"<>",s):o==="gt"?p(l,">",s):o==="gte"?p(l,">=",s):o==="lt"?p(l,"<",s):o==="lte"?p(l,"<=",s):p(l,o,s);c==="OR"?i.or.push(y):i.and.push(y)}),{and:i.and.length?i.and:null,or:i.or.length?i.or:null}},async withReturning(n,t,i){let d;if(f?.type!=="mysql")d=await t.returningAll().executeTakeFirst();else{await t.execute();let a="id",s=n[a];d=await e.selectFrom(this.getModelName(i)).selectAll().where(a,"=",s).executeTakeFirst()}return d},getModelName(n){return m[n].tableName}}},U=(e,r)=>f=>{let{transformInput:m,withReturning:x,transformOutput:A,convertWhereClause:h,getModelName:g}=C(e,f,r);return{id:"kysely",async create(n){let{model:t,data:i,select:d}=n,a=m(i,t),s=e.insertInto(g(t)).values(a);return A(await x(a,s,t),t,d)},async findOne(n){let{model:t,where:i,select:d}=n,{and:a,or:s}=h(t,i),o=e.selectFrom(g(t)).selectAll();a&&(o=o.where(l=>l.and(a.map(y=>y(l))))),s&&(o=o.where(l=>l.or(s.map(y=>y(l)))));let c=await o.executeTakeFirst();return c?A(c,t,d):null},async findMany(n){let{model:t,where:i,limit:d,offset:a,sortBy:s}=n,{and:o,or:c}=h(t,i),l=e.selectFrom(g(t)).selectAll();o&&(l=l.where(p=>p.and(o.map(F=>F(p))))),c&&(l=l.where(p=>p.or(c.map(F=>F(p))))),l=l.limit(d||100),a&&(l=l.offset(a)),s&&(l=l.orderBy(s.field,s.direction));let y=await l.selectAll().execute();return y?y.map(p=>A(p,t)):[]},async update(n){let{model:t,where:i,update:d}=n,{and:a,or:s}=h(t,i),o=m(d,t),c=e.updateTable(g(t)).set(o);return a&&(c=c.where(l=>l.and(a.map(y=>y(l))))),s&&(c=c.where(l=>l.or(s.map(y=>y(l))))),A(await x(o,c,t),t)},async updateMany(n){let{model:t,where:i,update:d}=n,{and:a,or:s}=h(t,i),o=m(d,t),c=e.updateTable(g(t)).set(o);return a&&(c=c.where(y=>y.and(a.map(p=>p(y))))),s&&(c=c.where(y=>y.or(s.map(p=>p(y))))),(await c.execute()).length},async delete(n){let{model:t,where:i}=n,{and:d,or:a}=h(t,i),s=e.deleteFrom(g(t));d&&(s=s.where(o=>o.and(d.map(c=>c(o))))),a&&(s=s.where(o=>o.or(a.map(c=>c(o))))),await s.execute()},async deleteMany(n){let{model:t,where:i}=n,{and:d,or:a}=h(t,i),s=e.deleteFrom(g(t));return d&&(s=s.where(o=>o.and(d.map(c=>c(o))))),a&&(s=s.where(o=>o.or(a.map(c=>c(o))))),(await s.execute()).length},options:r}};export{D as createKyselyAdapter,U as kyselyAdapter};
@@ -1 +1,2 @@
1
- "use strict";var f=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var h=(s,u)=>{for(var c in u)f(s,c,{get:u[c],enumerable:!0})},m=(s,u,c,t)=>{if(u&&typeof u=="object"||typeof u=="function")for(let n of p(u))!d.call(s,n)&&n!==c&&f(s,n,{get:()=>u[n],enumerable:!(t=o(u,n))||t.enumerable});return s};var A=s=>m(f({},"__esModule",{value:!0}),s);var M={};h(M,{memoryAdapter:()=>w});module.exports=A(M);var w=s=>{let u=(t,n)=>n.filter(e=>t.every(i=>{let{field:a,value:r,operator:l}=i;if(l==="in"){if(!Array.isArray(r))throw new Error("Value must be an array");return r.includes(e[a])}else return l==="contains"?e[a].includes(r):l==="starts_with"?e[a].startsWith(r):l==="ends_with"?e[a].endsWith(r):e[a]===r})),c=(t,n)=>n?n.reduce((e,i)=>(e[i]=t[i],e),{}):t;return{id:"memory",create:async({model:t,data:n})=>(s[t].push(n),n),findOne:async({model:t,where:n,select:e})=>{let i=s[t],r=u(n,i)[0]||null;return r?e?c(r,e):r:null},findMany:async({model:t,where:n,sortBy:e,limit:i,offset:a})=>{let r=s[t];return n&&(r=u(n,r)),e&&(r=r.sort((l,y)=>e.direction==="asc"?l[e.field]>y[e.field]?1:-1:l[e.field]<y[e.field]?1:-1)),a!==void 0&&(r=r.slice(a)),i!==void 0&&(r=r.slice(0,i)),r},update:async({model:t,where:n,update:e})=>{let i=s[t],a=u(n,i);return a.forEach(r=>{Object.assign(r,e)}),a[0]||null},delete:async({model:t,where:n})=>{let e=s[t],i=u(n,e);return s[t]=e.filter(a=>!i.includes(a)),i[0]||null},deleteMany:async({model:t,where:n})=>{let e=s[t],i=u(n,e);s[t]=e.filter(a=>!i.includes(a))}}};0&&(module.exports={memoryAdapter});
1
+ "use strict";var A=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var c in t)A(e,c,{get:t[c],enumerable:!0})},I=(e,t,c,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of F(t))!O.call(e,d)&&d!==c&&A(e,d,{get:()=>t[d],enumerable:!(o=T(t,d))||o.enumerable});return e};var k=e=>I(A({},"__esModule",{value:!0}),e);var C={};v(C,{memoryAdapter:()=>j});module.exports=k(C);var i=require("zod"),L=i.z.object({id:i.z.string(),providerId:i.z.string(),accountId:i.z.string(),userId:i.z.string(),accessToken:i.z.string().nullish(),refreshToken:i.z.string().nullish(),idToken:i.z.string().nullish(),expiresAt:i.z.date().nullish(),password:i.z.string().nullish()}),W=i.z.object({id:i.z.string(),email:i.z.string().transform(e=>e.toLowerCase()),emailVerified:i.z.boolean().default(!1),name:i.z.string(),image:i.z.string().nullish(),createdAt:i.z.date().default(new Date),updatedAt:i.z.date().default(new Date)}),_=i.z.object({id:i.z.string(),userId:i.z.string(),expiresAt:i.z.date(),ipAddress:i.z.string().nullish(),userAgent:i.z.string().nullish()}),$=i.z.object({id:i.z.string(),value:i.z.string(),expiresAt:i.z.date(),identifier:i.z.string()});var S=require("nanoid");var g=Object.create(null),m=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?g:globalThis),N=new Proxy(g,{get(e,t){return m()[t]??g[t]},has(e,t){let c=m();return t in c||t in g},set(e,t,c){let o=m(!0);return o[t]=c,!0},deleteProperty(e,t){if(!t)return!1;let c=m(!0);return delete c[t],!0},ownKeys(){let e=m(!0);return Object.keys(e)}});function D(e){return e?e!=="false":!1}var q=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var R=q==="test"||D(N.TEST);var h=e=>{let t=e.plugins?.reduce((u,l)=>{let a=l.schema;if(!a)return u;for(let[f,y]of Object.entries(a))u[f]={fields:{...u[f]?.fields,...y.fields},tableName:y.tableName||f};return u},{}),c=e.rateLimit?.storage==="database",o={rateLimit:{tableName:e.rateLimit?.tableName||"rateLimit",fields:{key:{type:"string",fieldName:e.rateLimit?.fields?.key||"key"},count:{type:"number",fieldName:e.rateLimit?.fields?.count||"count"},lastRequest:{type:"number",fieldName:e.rateLimit?.fields?.lastRequest||"lastRequest"}}}},{user:d,session:r,account:s,...n}=t||{};return{user:{tableName:e.user?.modelName||"user",fields:{name:{type:"string",required:!0,fieldName:e.user?.fields?.name||"name"},email:{type:"string",unique:!0,required:!0,fieldName:e.user?.fields?.email||"email"},emailVerified:{type:"boolean",defaultValue:()=>!1,required:!0,fieldName:e.user?.fields?.emailVerified||"emailVerified"},image:{type:"string",required:!1,fieldName:e.user?.fields?.image||"image"},createdAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||"updatedAt"},...d?.fields,...e.user?.additionalFields},order:1},session:{tableName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},ipAddress:{type:"string",required:!1,fieldName:e.session?.fields?.ipAddress||"ipAddress"},userAgent:{type:"string",required:!1,fieldName:e.session?.fields?.userAgent||"userAgent"},userId:{type:"string",fieldName:e.session?.fields?.userId||"userId",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0},...r?.fields,...e.session?.additionalFields},order:2},account:{tableName:e.account?.modelName||"account",fields:{accountId:{type:"string",required:!0,fieldName:e.account?.fields?.accountId||"accountId"},providerId:{type:"string",required:!0,fieldName:e.account?.fields?.providerId||"providerId"},userId:{type:"string",references:{model:e.user?.modelName||"user",field:"id",onDelete:"cascade"},required:!0,fieldName:e.account?.fields?.userId||"userId"},accessToken:{type:"string",required:!1,fieldName:e.account?.fields?.accessToken||"accessToken"},refreshToken:{type:"string",required:!1,fieldName:e.account?.fields?.refreshToken||"refreshToken"},idToken:{type:"string",required:!1,fieldName:e.account?.fields?.idToken||"idToken"},expiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.expiresAt||"expiresAt"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},...s?.fields},order:3},verification:{tableName:e.verification?.modelName||"verification",fields:{identifier:{type:"string",required:!0,fieldName:e.verification?.fields?.identifier||"identifier"},value:{type:"string",required:!0,fieldName:e.verification?.fields?.value||"value"},expiresAt:{type:"date",required:!0,fieldName:e.verification?.fields?.expiresAt||"expiresAt"}},order:4},...n,...c?o:{}}};var B=require("zod");var x=require("kysely"),b=require("kysely");var w=require("consola"),p=(0,w.createConsola)({formatOptions:{date:!1,colors:!0,compact:!0},defaults:{tag:"Better Auth"}}),M=e=>({log:(...t)=>{!e?.disabled&&p.log("",...t)},error:(...t)=>{!e?.disabled&&p.error("",...t)},warn:(...t)=>{!e?.disabled&&p.warn("",...t)},info:(...t)=>{!e?.disabled&&p.info("",...t)},debug:(...t)=>{!e?.disabled&&p.debug("",...t)},box:(...t)=>{!e?.disabled&&p.box("",...t)},success:(...t)=>{!e?.disabled&&p.success("",...t)},break:(...t)=>{!e?.disabled&&console.log(`
2
+ `)}}),U=M();var K=e=>{let t=h(e);function c(o,d){return d==="id"?d:t[o].fields[d].fieldName||d}return{transformInput(o,d){let r=o.id?{id:o.id}:{};for(let s in o){let n=t[d].fields[s];n&&(r[n.fieldName||s]=o[s])}return r},transformOutput(o,d,r=[]){if(!o)return null;let s=o.id||o._id?r.length===0||r.includes("id")?{id:o.id}:{}:{},n=t[d].fields;for(let u in n){if(r.length&&!r.includes(u))continue;let l=n[u];l&&(s[u]=o[l.fieldName||u])}return s},convertWhereClause(o,d,r){return d.filter(s=>o.every(n=>{let{field:u,value:l,operator:a}=n,f=c(r,u);if(a==="in"){if(!Array.isArray(l))throw new Error("Value must be an array");return l.includes(s[f])}else return a==="contains"?s[f].includes(l):a==="starts_with"?s[f].startsWith(l):a==="ends_with"?s[f].endsWith(l):s[f]===l}))}}},j=e=>t=>{let{transformInput:c,transformOutput:o,convertWhereClause:d}=K(t);return{id:"memory",create:async({model:r,data:s})=>{let n=c(s,r);return e[r].push(n),o(n,r)},findOne:async({model:r,where:s,select:n})=>{let u=e[r],a=d(s,u,r)[0]||null;return o(a,r,n)},findMany:async({model:r,where:s,sortBy:n,limit:u,offset:l})=>{let a=e[r];return s&&(a=d(s,a,r)),n&&(a=a.sort((f,y)=>n.direction==="asc"?f[n.field]>y[n.field]?1:-1:f[n.field]<y[n.field]?1:-1)),l!==void 0&&(a=a.slice(l)),u!==void 0&&(a=a.slice(0,u)),a.map(f=>o(f,r))},update:async({model:r,where:s,update:n})=>{let u=e[r],l=d(s,u,r);return l.forEach(a=>{Object.assign(a,c(n,r))}),o(l[0],r)},delete:async({model:r,where:s})=>{let n=e[r],u=d(s,n,r);e[r]=n.filter(l=>!u.includes(l))},deleteMany:async({model:r,where:s})=>{let n=e[r],u=d(s,n,r),l=0;return e[r]=n.filter(a=>u.includes(a)?(l++,!1):!u.includes(a)),l},updateMany(r){let{model:s,where:n,update:u}=r,l=e[s],a=d(n,l,s);return a.forEach(f=>{Object.assign(f,u)}),a[0]||null}}};0&&(module.exports={memoryAdapter});