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.
- package/dist/adapters/drizzle.cjs +2 -1
- package/dist/adapters/drizzle.d.cts +58 -9
- package/dist/adapters/drizzle.d.ts +58 -9
- package/dist/adapters/drizzle.js +2 -1
- package/dist/adapters/kysely.cjs +2 -1
- package/dist/adapters/kysely.d.cts +49 -13
- package/dist/adapters/kysely.d.ts +49 -13
- package/dist/adapters/kysely.js +2 -1
- package/dist/adapters/memory.cjs +2 -1
- package/dist/adapters/memory.d.cts +46 -4
- package/dist/adapters/memory.d.ts +46 -4
- package/dist/adapters/memory.js +2 -1
- package/dist/adapters/mongodb.cjs +2 -1
- package/dist/adapters/mongodb.d.cts +11 -8
- package/dist/adapters/mongodb.d.ts +11 -8
- package/dist/adapters/mongodb.js +2 -1
- package/dist/adapters/prisma.cjs +2 -1
- package/dist/adapters/prisma.d.cts +54 -5
- package/dist/adapters/prisma.d.ts +54 -5
- package/dist/adapters/prisma.js +2 -1
- package/dist/api.cjs +1 -1
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/{auth-DBMdxK-M.d.cts → auth-BE8d2yIK.d.cts} +1061 -1052
- package/dist/{auth-ElLq7vmm.d.ts → auth-Ct3xWAIa.d.ts} +1061 -1052
- package/dist/client/plugins.d.cts +4 -4
- package/dist/client/plugins.d.ts +4 -4
- package/dist/client.d.cts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/cookies.d.cts +3 -3
- package/dist/cookies.d.ts +3 -3
- package/dist/db.cjs +3 -3
- package/dist/db.d.cts +3 -3
- package/dist/db.d.ts +3 -3
- package/dist/db.js +3 -3
- package/dist/{index-DdU1-vYD.d.cts → index-CqIaut9K.d.cts} +374 -374
- package/dist/{index-DBaFH8g-.d.ts → index-ld4ngSot.d.ts} +374 -374
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -5
- package/dist/next-js.d.cts +3 -3
- package/dist/next-js.d.ts +3 -3
- package/dist/node.d.cts +3 -3
- package/dist/node.d.ts +3 -3
- package/dist/oauth2.d.cts +2 -2
- package/dist/oauth2.d.ts +2 -2
- package/dist/plugins.cjs +2 -2
- package/dist/plugins.d.cts +8 -8
- package/dist/plugins.d.ts +8 -8
- package/dist/plugins.js +2 -2
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/solid-start.d.cts +3 -3
- package/dist/solid-start.d.ts +3 -3
- package/dist/solid.d.cts +1 -1
- package/dist/solid.d.ts +1 -1
- package/dist/{state-El9PW_xP.d.ts → state-BFB-5_r3.d.ts} +1 -1
- package/dist/{state-CIhWbtNG.d.cts → state-DzsnYBJi.d.cts} +1 -1
- package/dist/svelte-kit.d.cts +3 -3
- package/dist/svelte-kit.d.ts +3 -3
- package/dist/svelte.d.cts +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/types.d.cts +3 -3
- package/dist/types.d.ts +3 -3
- package/dist/vue.d.cts +1 -1
- package/dist/vue.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
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 {
|
|
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
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 {
|
|
83
|
+
export { drizzleAdapter };
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 {
|
|
83
|
+
export { drizzleAdapter };
|
package/dist/adapters/drizzle.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{and as
|
|
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};
|
package/dist/adapters/kysely.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
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,
|
|
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
|
-
*
|
|
17
|
+
* Database type.
|
|
18
18
|
*/
|
|
19
|
-
|
|
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) =>
|
|
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 {
|
|
75
|
+
export { KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
|
-
import { B as BetterAuthOptions, K as KyselyDatabaseType,
|
|
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
|
-
*
|
|
17
|
+
* Database type.
|
|
18
18
|
*/
|
|
19
|
-
|
|
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) =>
|
|
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 {
|
|
75
|
+
export { KyselyDatabaseType, createKyselyAdapter, kyselyAdapter };
|
package/dist/adapters/kysely.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{Kysely as
|
|
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};
|
package/dist/adapters/memory.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
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});
|