better-auth 1.1.11 → 1.1.12-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 +251 -1
- package/dist/adapters/drizzle.d.cts +1 -1
- package/dist/adapters/drizzle.d.ts +1 -1
- package/dist/adapters/drizzle.js +249 -1
- package/dist/adapters/kysely.cjs +23 -1
- package/dist/adapters/kysely.d.cts +1 -1
- package/dist/adapters/kysely.d.ts +1 -1
- package/dist/adapters/kysely.js +10 -1
- package/dist/adapters/memory.cjs +19 -1
- package/dist/adapters/memory.d.cts +1 -1
- package/dist/adapters/memory.d.ts +1 -1
- package/dist/adapters/memory.js +10 -1
- package/dist/adapters/mongodb.cjs +254 -1
- package/dist/adapters/mongodb.d.cts +1 -1
- package/dist/adapters/mongodb.d.ts +1 -1
- package/dist/adapters/mongodb.js +252 -1
- package/dist/adapters/prisma.cjs +230 -1
- package/dist/adapters/prisma.d.cts +1 -1
- package/dist/adapters/prisma.d.ts +1 -1
- package/dist/adapters/prisma.js +228 -1
- package/dist/api.cjs +174 -84
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +13 -84
- package/dist/{auth-B4q3QYSY.d.ts → auth-Dm4WNKuW.d.ts} +13 -384
- package/dist/{auth-D9zpnDkH.d.cts → auth-oBkuHUtD.d.cts} +13 -384
- package/dist/chunk-2ER5HOHJ.js +2082 -0
- package/dist/chunk-2HPSCSV7.cjs +8 -0
- package/dist/chunk-2I33AEHM.js +1029 -0
- package/dist/chunk-2X5G64P2.cjs +81 -0
- package/dist/chunk-3E7OEPEH.cjs +136 -0
- package/dist/chunk-3XTQSPPA.js +6 -0
- package/dist/chunk-4P3KBE7L.js +396 -0
- package/dist/chunk-6MEZJUZT.cjs +202 -0
- package/dist/chunk-6SBNW7JC.cjs +3570 -0
- package/dist/chunk-6T6SEKFV.cjs +427 -0
- package/dist/chunk-6YL5J5JY.js +83 -0
- package/dist/chunk-7MR76GKR.js +242 -0
- package/dist/chunk-7PNIJFHF.js +43 -0
- package/dist/chunk-7S3SGUTK.cjs +204 -0
- package/dist/chunk-AKVA7CNE.js +470 -0
- package/dist/chunk-CCJHRP4R.js +816 -0
- package/dist/chunk-CCKQSGIR.cjs +8 -0
- package/dist/chunk-CEUVCFNN.js +200 -0
- package/dist/chunk-CF7NIEGH.cjs +38 -0
- package/dist/chunk-CXGP5FNG.cjs +269 -0
- package/dist/chunk-DCDSHXKU.cjs +1906 -0
- package/dist/chunk-DHJZMB33.js +899 -0
- package/dist/chunk-E4CGMRYN.cjs +917 -0
- package/dist/chunk-EHFDU6IF.cjs +45 -0
- package/dist/chunk-EQHSHTP2.js +126 -0
- package/dist/chunk-EYVLBKES.cjs +666 -0
- package/dist/chunk-F3XCJ5EQ.cjs +472 -0
- package/dist/chunk-FURNA6HY.js +6 -0
- package/dist/chunk-G4C5G7RC.cjs +253 -0
- package/dist/chunk-GBLEGHZW.js +72 -0
- package/dist/chunk-GYDUPG7X.js +36 -0
- package/dist/chunk-GYWZXTXT.js +251 -0
- package/dist/chunk-H2JFIDVT.cjs +132 -0
- package/dist/chunk-H74YRRNV.cjs +92 -0
- package/dist/chunk-HCR7I6FS.cjs +818 -0
- package/dist/chunk-HVHN3Y2L.js +126 -0
- package/dist/chunk-HXWF5ZDH.js +202 -0
- package/dist/chunk-HYHDNF4B.js +3526 -0
- package/dist/chunk-IJZCIQNZ.cjs +95 -0
- package/dist/chunk-IWEXZ2ES.js +315 -0
- package/dist/chunk-KBSS2O5Q.js +42 -0
- package/dist/chunk-KLDFBLYL.js +85 -0
- package/dist/chunk-KM6MHLUE.cjs +1031 -0
- package/dist/chunk-LB4ZM24Q.cjs +86 -0
- package/dist/chunk-LGQDD23L.cjs +244 -0
- package/dist/chunk-MIDGMNAZ.cjs +984 -0
- package/dist/chunk-NIMYOIVU.cjs +2 -0
- package/dist/chunk-NRWK5VGW.cjs +45 -0
- package/dist/chunk-OJX3P352.cjs +323 -0
- package/dist/chunk-PAQJNMGG.js +265 -0
- package/dist/chunk-PEZRSDZS.cjs +23 -0
- package/dist/chunk-QAM4N2LT.js +199 -0
- package/dist/chunk-RBN34WVC.cjs +45 -0
- package/dist/chunk-RSUDUH2M.js +425 -0
- package/dist/chunk-S5UORXJH.cjs +65 -0
- package/dist/chunk-S6QVQEW5.js +93 -0
- package/dist/chunk-SK6Y2YH6.js +1 -0
- package/dist/chunk-SUGPMPO6.cjs +2084 -0
- package/dist/chunk-TOKZL3ZI.js +42 -0
- package/dist/chunk-TQQSPPNA.js +41 -0
- package/dist/chunk-U4I57HJ4.cjs +129 -0
- package/dist/chunk-U6DXGW5I.cjs +398 -0
- package/dist/chunk-UJEXYGEC.cjs +206 -0
- package/dist/chunk-UNWCXKMP.js +20 -0
- package/dist/chunk-URPHRM5F.js +173 -0
- package/dist/chunk-URSHNSAO.js +134 -0
- package/dist/chunk-V3KX5VO2.cjs +164 -0
- package/dist/chunk-VCABRLBS.js +664 -0
- package/dist/chunk-VXYIYABQ.cjs +46 -0
- package/dist/chunk-WMXBA6LX.js +11 -0
- package/dist/chunk-WN2RDYR6.js +96 -0
- package/dist/chunk-WZPS4WMO.js +982 -0
- package/dist/chunk-XFCIANZX.js +60 -0
- package/dist/chunk-XJGHQ3F6.cjs +106 -0
- package/dist/chunk-Y3NFVXCG.js +162 -0
- package/dist/chunk-YLFV4SQL.cjs +176 -0
- package/dist/chunk-Z5DOA2YV.js +1890 -0
- package/dist/chunk-ZBKCS3KP.cjs +13 -0
- package/dist/client/plugins.cjs +346 -1
- package/dist/client/plugins.d.cts +3 -3
- package/dist/client/plugins.d.ts +3 -3
- package/dist/client/plugins.js +317 -1
- package/dist/client.cjs +24 -1
- package/dist/client.d.cts +1 -7
- package/dist/client.d.ts +1 -7
- package/dist/client.js +7 -1
- package/dist/cookies.cjs +37 -1
- package/dist/cookies.d.cts +1 -1
- package/dist/cookies.d.ts +1 -1
- package/dist/cookies.js +4 -1
- package/dist/crypto.cjs +42 -1
- package/dist/crypto.js +1 -1
- package/dist/db.cjs +58 -2
- package/dist/db.d.cts +2 -2
- package/dist/db.d.ts +2 -2
- package/dist/db.js +10 -3
- package/dist/{index-aK2eJ6vI.d.cts → index-1xFLXy2e.d.cts} +1 -1
- package/dist/{index-BgSa4YkH.d.ts → index-JEzB2GCA.d.ts} +1 -1
- package/dist/index.cjs +291 -82
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +219 -82
- package/dist/next-js.cjs +62 -1
- package/dist/next-js.d.cts +1 -1
- package/dist/next-js.d.ts +1 -1
- package/dist/next-js.js +59 -1
- package/dist/node.cjs +24 -1
- package/dist/node.d.cts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +21 -1
- package/dist/oauth2.cjs +37 -1
- package/dist/oauth2.d.cts +2 -2
- package/dist/oauth2.d.ts +2 -2
- package/dist/oauth2.js +4 -1
- package/dist/plugin/custom-session.cjs +23 -84
- package/dist/plugin/custom-session.d.cts +1 -1
- package/dist/plugin/custom-session.d.ts +1 -1
- package/dist/plugin/custom-session.js +14 -84
- package/dist/plugins/access.cjs +38 -1
- package/dist/plugins/access.js +1 -1
- package/dist/plugins/admin.cjs +24 -84
- package/dist/plugins/admin.d.cts +1 -1
- package/dist/plugins/admin.d.ts +1 -1
- package/dist/plugins/admin.js +15 -84
- package/dist/plugins/anonymous.cjs +23 -84
- package/dist/plugins/anonymous.d.cts +1 -1
- package/dist/plugins/anonymous.d.ts +1 -1
- package/dist/plugins/anonymous.js +14 -84
- package/dist/plugins/bearer.cjs +23 -84
- package/dist/plugins/bearer.d.cts +1 -1
- package/dist/plugins/bearer.d.ts +1 -1
- package/dist/plugins/bearer.js +14 -84
- package/dist/plugins/email-otp.cjs +23 -84
- package/dist/plugins/email-otp.d.cts +1 -1
- package/dist/plugins/email-otp.d.ts +1 -1
- package/dist/plugins/email-otp.js +14 -84
- package/dist/plugins/generic-oauth.cjs +23 -84
- package/dist/plugins/generic-oauth.d.cts +1 -23
- package/dist/plugins/generic-oauth.d.ts +1 -23
- package/dist/plugins/generic-oauth.js +14 -84
- package/dist/plugins/jwt.cjs +23 -84
- package/dist/plugins/jwt.d.cts +1 -1
- package/dist/plugins/jwt.d.ts +1 -1
- package/dist/plugins/jwt.js +14 -84
- package/dist/plugins/magic-link.cjs +23 -84
- package/dist/plugins/magic-link.js +14 -84
- package/dist/plugins/multi-session.cjs +23 -84
- package/dist/plugins/multi-session.d.cts +1 -1
- package/dist/plugins/multi-session.d.ts +1 -1
- package/dist/plugins/multi-session.js +14 -84
- package/dist/plugins/oidc-provider.cjs +23 -84
- package/dist/plugins/oidc-provider.d.cts +204 -2
- package/dist/plugins/oidc-provider.d.ts +204 -2
- package/dist/plugins/oidc-provider.js +14 -84
- package/dist/plugins/one-tap.cjs +23 -84
- package/dist/plugins/one-tap.js +14 -84
- package/dist/plugins/open-api.cjs +24 -122
- package/dist/plugins/open-api.d.cts +1 -1
- package/dist/plugins/open-api.d.ts +1 -1
- package/dist/plugins/open-api.js +16 -123
- package/dist/plugins/organization.cjs +25 -84
- package/dist/plugins/organization.d.cts +2 -2
- package/dist/plugins/organization.d.ts +2 -2
- package/dist/plugins/organization.js +16 -84
- package/dist/plugins/passkey.cjs +804 -77
- package/dist/plugins/passkey.d.cts +1 -1
- package/dist/plugins/passkey.d.ts +1 -1
- package/dist/plugins/passkey.js +794 -77
- package/dist/plugins/phone-number.cjs +23 -84
- package/dist/plugins/phone-number.d.cts +1 -1
- package/dist/plugins/phone-number.d.ts +1 -1
- package/dist/plugins/phone-number.js +14 -84
- package/dist/plugins/sso.cjs +550 -80
- package/dist/plugins/sso.d.cts +1 -1
- package/dist/plugins/sso.d.ts +1 -1
- package/dist/plugins/sso.js +548 -80
- package/dist/plugins/two-factor.cjs +30 -84
- package/dist/plugins/two-factor.d.cts +1 -1
- package/dist/plugins/two-factor.d.ts +1 -1
- package/dist/plugins/two-factor.js +17 -84
- package/dist/plugins/username.cjs +24 -84
- package/dist/plugins/username.d.cts +1 -1
- package/dist/plugins/username.d.ts +1 -1
- package/dist/plugins/username.js +15 -84
- package/dist/plugins.cjs +253 -119
- package/dist/plugins.d.cts +4 -4
- package/dist/plugins.d.ts +4 -4
- package/dist/plugins.js +168 -119
- package/dist/react.cjs +64 -1
- package/dist/react.d.cts +1 -7
- package/dist/react.d.ts +1 -7
- package/dist/react.js +60 -1
- package/dist/social.cjs +81 -1
- package/dist/social.js +8 -1
- package/dist/solid-start.cjs +14 -1
- package/dist/solid-start.js +12 -1
- package/dist/solid.cjs +56 -1
- package/dist/solid.d.cts +1 -7
- package/dist/solid.d.ts +1 -7
- package/dist/solid.js +54 -1
- package/dist/{state-Cu5wvnGo.d.cts → state-NLBzjubK.d.cts} +1 -1
- package/dist/{state-BKQ3v4am.d.ts → state-yA1wO0nt.d.ts} +1 -1
- package/dist/svelte-kit.cjs +38 -1
- package/dist/svelte-kit.d.cts +1 -1
- package/dist/svelte-kit.d.ts +1 -1
- package/dist/svelte-kit.js +34 -1
- package/dist/svelte.cjs +40 -1
- package/dist/svelte.d.cts +1 -7
- package/dist/svelte.d.ts +1 -7
- package/dist/svelte.js +38 -1
- package/dist/types.cjs +4 -1
- package/dist/types.d.cts +2 -2
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -0
- package/dist/vue.cjs +85 -1
- package/dist/vue.d.cts +1 -7
- package/dist/vue.d.ts +1 -7
- package/dist/vue.js +83 -1
- package/package.json +2 -2
|
@@ -1 +1,251 @@
|
|
|
1
|
-
"use strict";var O=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var $=(e,r)=>{for(var d in r)O(e,d,{get:r[d],enumerable:!0})},j=(e,r,d,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of _(r))!C.call(e,c)&&c!==d&&O(e,c,{get:()=>r[c],enumerable:!(p=V(r,c))||p.enumerable});return e};var H=e=>j(O({},"__esModule",{value:!0}),e);var ge={};$(ge,{drizzleAdapter:()=>ye});module.exports=H(ge);var y=require("drizzle-orm");var i=require("zod"),K=require("better-call"),xe=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(),accessTokenExpiresAt:i.z.date().nullish(),refreshTokenExpiresAt:i.z.date().nullish(),scope:i.z.string().nullish(),password:i.z.string().nullish(),createdAt:i.z.date().default(()=>new Date),updatedAt:i.z.date().default(()=>new Date)}),be=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)}),ve=i.z.object({id:i.z.string(),userId:i.z.string(),expiresAt:i.z.date(),createdAt:i.z.date().default(()=>new Date),updatedAt:i.z.date().default(()=>new Date),token:i.z.string(),ipAddress:i.z.string().nullish(),userAgent:i.z.string().nullish()}),Te=i.z.object({id:i.z.string(),value:i.z.string(),createdAt:i.z.date().default(()=>new Date),updatedAt:i.z.date().default(()=>new Date),expiresAt:i.z.date(),identifier:i.z.string()});var D=Object.create(null),k=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?D:globalThis),U=new Proxy(D,{get(e,r){return k()[r]??D[r]},has(e,r){let d=k();return r in d||r in D},set(e,r,d){let p=k(!0);return p[r]=d,!0},deleteProperty(e,r){if(!r)return!1;let d=k(!0);return delete d[r],!0},ownKeys(){let e=k(!0);return Object.keys(e)}});function W(e){return e?e!=="false":!1}var z=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var J=z==="test"||W(U.TEST);var q=require("@better-auth/utils/random"),R=e=>(0,q.createRandomStringGenerator)("a-z","A-Z","0-9")(e||32);var ie=require("zod"),ae=require("better-call");var w=class extends Error{constructor(r,d){super(r),this.name="BetterAuthError",this.message=r,this.cause=d,this.stack=""}};var re=require("@better-auth/utils/hash"),ne=require("@noble/ciphers/chacha"),I=require("@noble/ciphers/utils"),se=require("@noble/ciphers/webcrypto");var Q=require("@better-auth/utils/hash");var Z=require("jose");var X=require("@noble/hashes/scrypt"),Y=require("uncrypto"),ee=require("@better-auth/utils/hex");var L=require("@better-auth/utils/random"),te=(0,L.createRandomStringGenerator)("a-z","0-9","A-Z","-_");var N=["info","success","warn","error","debug"];function oe(e,r){return N.indexOf(r)<=N.indexOf(e)}var b={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},de={info:b.fg.blue,success:b.fg.green,warn:b.fg.yellow,error:b.fg.red,debug:b.fg.magenta},ue=(e,r)=>{let d=new Date().toISOString();return`${b.dim}${d}${b.reset} ${de[e]}${e.toUpperCase()}${b.reset} ${b.bright}[Better Auth]:${b.reset} ${r}`},E=e=>{let r=e?.disabled!==!0,d=e?.level??"error",p=(c,g,m=[])=>{if(!r||!oe(d,c))return;let x=ue(c,g);if(!e||typeof e.log!="function"){c==="error"?console.error(x,...m):c==="warn"?console.warn(x,...m):console.log(x,...m);return}e.log(c==="success"?"info":c,g,...m)};return Object.fromEntries(N.map(c=>[c,(...[g,...m])=>p(c,g,m)]))},ce=E();var T=e=>{let r=e.plugins?.reduce((a,l)=>{let s=l.schema;if(!s)return a;for(let[t,u]of Object.entries(s))a[t]={fields:{...a[t]?.fields,...u.fields},modelName:u.modelName||t};return a},{}),d=e.rateLimit?.storage==="database",p={rateLimit:{modelName:e.rateLimit?.modelName||"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:c,session:g,account:m,...x}=r||{};return{user:{modelName: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"},...c?.fields,...e.user?.additionalFields},order:1},session:{modelName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},token:{type:"string",required:!0,fieldName:e.session?.fields?.token||"token",unique:!0},createdAt:{type:"date",required:!0,fieldName:e.session?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.session?.fields?.updatedAt||"updatedAt"},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},...g?.fields,...e.session?.additionalFields},order:2},account:{modelName: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"},accessTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"accessTokenExpiresAt"},refreshTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"refreshTokenExpiresAt"},scope:{type:"string",required:!1,fieldName:e.account?.fields?.scope||"scope"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},createdAt:{type:"date",required:!0,fieldName:e.account?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.account?.fields?.updatedAt||"updatedAt"},...m?.fields},order:3},verification:{modelName: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"},createdAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.updatedAt||"updatedAt"}},order:4},...x,...d?p:{}}};var le=require("zod");var M=require("kysely"),S=require("kysely");function F(e,r,d){return d==="update"?e:e==null&&r.defaultValue?typeof r.defaultValue=="function"?r.defaultValue():r.defaultValue:e}var pe=(e,r,d)=>{let p=T(d);function c(a,l){return l==="id"?l:p[a].fields[l].fieldName||l}function g(a){let l=r.schema||e._.fullSchema;if(!l)throw new w("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let s=m(a),t=l[s];if(!t)throw new w(`[# Drizzle Adapter]: The model "${s}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return t}let m=a=>p[a].modelName!==a?p[a].modelName:r.usePlural?`${a}s`:a,x=d?.advanced?.generateId===!1;return{getSchema:g,transformInput(a,l,s){let t=x||s==="update"?{}:{id:d.advanced?.generateId?d.advanced.generateId({model:l}):a.id||R()},u=p[l].fields;for(let o in u){let f=a[o];f===void 0&&!u[o].defaultValue||(t[u[o].fieldName||o]=F(f,u[o],s))}return t},transformOutput(a,l,s=[]){if(!a)return null;let t=a.id||a._id?s.length===0||s.includes("id")?{id:a.id}:{}:{},u=p[l].fields;for(let o in u){if(s.length&&!s.includes(o))continue;let f=u[o];f&&(t[o]=a[f.fieldName||o])}return t},convertWhereClause(a,l){let s=g(l);if(!a)return[];if(a.length===1){let n=a[0];if(!n)return[];let h=c(l,n.field);if(!s[h])throw new w(`The field "${n.field}" does not exist in the schema for the model "${l}". Please update your schema.`);if(n.operator==="in"){if(!Array.isArray(n.value))throw new w(`The value for the field "${n.field}" must be an array when using the "in" operator.`);return[(0,y.inArray)(s[h],n.value)]}return n.operator==="contains"?[(0,y.like)(s[h],`%${n.value}%`)]:n.operator==="starts_with"?[(0,y.like)(s[h],`${n.value}%`)]:n.operator==="ends_with"?[(0,y.like)(s[h],`%${n.value}`)]:[(0,y.eq)(s[h],n.value)]}let t=a.filter(n=>n.connector==="AND"||!n.connector),u=a.filter(n=>n.connector==="OR"),o=(0,y.and)(...t.map(n=>{let h=c(l,n.field);if(n.operator==="in"){if(!Array.isArray(n.value))throw new w(`The value for the field "${n.field}" must be an array when using the "in" operator.`);return(0,y.inArray)(s[h],n.value)}return(0,y.eq)(s[h],n.value)})),f=(0,y.or)(...u.map(n=>{let h=c(l,n.field);return(0,y.eq)(s[h],n.value)})),A=[];return t.length&&A.push(o),u.length&&A.push(f),A},withReturning:async(a,l,s)=>{if(r.provider!=="mysql")return(await l.returning())[0];await l;let t=g(m(a));return(await e.select().from(t).where((0,y.eq)(t.id,s.id)))[0]},getField:c,getModelName:m}};function me(e,r,d){if(!e)throw new w("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");for(let p in d)if(!e[p])throw new w(`The field "${p}" does not exist in the "${r}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`)}var ye=(e,r)=>d=>{let{transformInput:p,transformOutput:c,convertWhereClause:g,getSchema:m,withReturning:x,getField:a,getModelName:l}=pe(e,r,d);return{id:"drizzle",async create(s){let{model:t,data:u}=s,o=p(u,t,"create"),f=m(t);me(f,l(t),o);let A=e.insert(f).values(o),n=await x(t,A,o);return c(n,t)},async findOne(s){let{model:t,where:u,select:o}=s,f=m(t),A=g(u,t),n=await e.select().from(f).where(...A);return n.length?c(n[0],t,o):null},async findMany(s){let{model:t,where:u,sortBy:o,limit:f,offset:A}=s,n=m(t),h=u?g(u,t):[],v=o?.direction==="desc"?y.desc:y.asc,B=e.select().from(n).limit(f||100).offset(A||0);return o?.field&&B.orderBy(v(n[a(t,o?.field)])),(await B.where(...h)).map(P=>c(P,t))},async update(s){let{model:t,where:u,update:o}=s,f=m(t),A=g(u,t),n=p(o,t,"update"),h=e.update(f).set(n).where(...A),v=await x(t,h,n);return c(v,t)},async updateMany(s){let{model:t,where:u,update:o}=s,f=m(t),A=g(u,t),n=p(o,t,"update"),v=await e.update(f).set(n).where(...A);return v?v.changes:0},async delete(s){let{model:t,where:u}=s,o=m(t),f=g(u,t);await e.delete(o).where(...f)},async deleteMany(s){let{model:t,where:u}=s,o=m(t),f=g(u,t),n=await e.delete(o).where(...f);return n?n.length:0},options:r}};0&&(module.exports={drizzleAdapter});
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDCDSHXKU_cjs = require('../chunk-DCDSHXKU.cjs');
|
|
4
|
+
require('../chunk-UJEXYGEC.cjs');
|
|
5
|
+
var chunkH74YRRNV_cjs = require('../chunk-H74YRRNV.cjs');
|
|
6
|
+
require('../chunk-LB4ZM24Q.cjs');
|
|
7
|
+
require('../chunk-NIMYOIVU.cjs');
|
|
8
|
+
require('../chunk-CCKQSGIR.cjs');
|
|
9
|
+
require('../chunk-XJGHQ3F6.cjs');
|
|
10
|
+
require('../chunk-2HPSCSV7.cjs');
|
|
11
|
+
require('../chunk-VXYIYABQ.cjs');
|
|
12
|
+
var chunkPEZRSDZS_cjs = require('../chunk-PEZRSDZS.cjs');
|
|
13
|
+
var drizzleOrm = require('drizzle-orm');
|
|
14
|
+
|
|
15
|
+
var createTransform = (db, config, options) => {
|
|
16
|
+
const schema = chunkDCDSHXKU_cjs.getAuthTables(options);
|
|
17
|
+
function getField(model, field) {
|
|
18
|
+
if (field === "id") {
|
|
19
|
+
return field;
|
|
20
|
+
}
|
|
21
|
+
const f = schema[model].fields[field];
|
|
22
|
+
return f.fieldName || field;
|
|
23
|
+
}
|
|
24
|
+
function getSchema(modelName) {
|
|
25
|
+
const schema2 = config.schema || db._.fullSchema;
|
|
26
|
+
if (!schema2) {
|
|
27
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
28
|
+
"Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
const model = getModelName(modelName);
|
|
32
|
+
const schemaModel = schema2[model];
|
|
33
|
+
if (!schemaModel) {
|
|
34
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
35
|
+
`[# Drizzle Adapter]: The model "${model}" was not found in the schema object. Please pass the schema directly to the adapter options.`
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return schemaModel;
|
|
39
|
+
}
|
|
40
|
+
const getModelName = (model) => {
|
|
41
|
+
return schema[model].modelName !== model ? schema[model].modelName : config.usePlural ? `${model}s` : model;
|
|
42
|
+
};
|
|
43
|
+
const useDatabaseGeneratedId = options?.advanced?.generateId === false;
|
|
44
|
+
return {
|
|
45
|
+
getSchema,
|
|
46
|
+
transformInput(data, model, action) {
|
|
47
|
+
const transformedData = useDatabaseGeneratedId || action === "update" ? {} : {
|
|
48
|
+
id: options.advanced?.generateId ? options.advanced.generateId({
|
|
49
|
+
model
|
|
50
|
+
}) : data.id || chunkH74YRRNV_cjs.generateId()
|
|
51
|
+
};
|
|
52
|
+
const fields = schema[model].fields;
|
|
53
|
+
for (const field in fields) {
|
|
54
|
+
const value = data[field];
|
|
55
|
+
if (value === void 0 && !fields[field].defaultValue) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
transformedData[fields[field].fieldName || field] = chunkDCDSHXKU_cjs.withApplyDefault(
|
|
59
|
+
value,
|
|
60
|
+
fields[field],
|
|
61
|
+
action
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
return transformedData;
|
|
65
|
+
},
|
|
66
|
+
transformOutput(data, model, select = []) {
|
|
67
|
+
if (!data) return null;
|
|
68
|
+
const transformedData = data.id || data._id ? select.length === 0 || select.includes("id") ? {
|
|
69
|
+
id: data.id
|
|
70
|
+
} : {} : {};
|
|
71
|
+
const tableSchema = schema[model].fields;
|
|
72
|
+
for (const key in tableSchema) {
|
|
73
|
+
if (select.length && !select.includes(key)) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const field = tableSchema[key];
|
|
77
|
+
if (field) {
|
|
78
|
+
transformedData[key] = data[field.fieldName || key];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return transformedData;
|
|
82
|
+
},
|
|
83
|
+
convertWhereClause(where, model) {
|
|
84
|
+
const schemaModel = getSchema(model);
|
|
85
|
+
if (!where) return [];
|
|
86
|
+
if (where.length === 1) {
|
|
87
|
+
const w = where[0];
|
|
88
|
+
if (!w) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
const field = getField(model, w.field);
|
|
92
|
+
if (!schemaModel[field]) {
|
|
93
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
94
|
+
`The field "${w.field}" does not exist in the schema for the model "${model}". Please update your schema.`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
if (w.operator === "in") {
|
|
98
|
+
if (!Array.isArray(w.value)) {
|
|
99
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
100
|
+
`The value for the field "${w.field}" must be an array when using the "in" operator.`
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
return [drizzleOrm.inArray(schemaModel[field], w.value)];
|
|
104
|
+
}
|
|
105
|
+
if (w.operator === "contains") {
|
|
106
|
+
return [drizzleOrm.like(schemaModel[field], `%${w.value}%`)];
|
|
107
|
+
}
|
|
108
|
+
if (w.operator === "starts_with") {
|
|
109
|
+
return [drizzleOrm.like(schemaModel[field], `${w.value}%`)];
|
|
110
|
+
}
|
|
111
|
+
if (w.operator === "ends_with") {
|
|
112
|
+
return [drizzleOrm.like(schemaModel[field], `%${w.value}`)];
|
|
113
|
+
}
|
|
114
|
+
return [drizzleOrm.eq(schemaModel[field], w.value)];
|
|
115
|
+
}
|
|
116
|
+
const andGroup = where.filter(
|
|
117
|
+
(w) => w.connector === "AND" || !w.connector
|
|
118
|
+
);
|
|
119
|
+
const orGroup = where.filter((w) => w.connector === "OR");
|
|
120
|
+
const andClause = drizzleOrm.and(
|
|
121
|
+
...andGroup.map((w) => {
|
|
122
|
+
const field = getField(model, w.field);
|
|
123
|
+
if (w.operator === "in") {
|
|
124
|
+
if (!Array.isArray(w.value)) {
|
|
125
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
126
|
+
`The value for the field "${w.field}" must be an array when using the "in" operator.`
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
return drizzleOrm.inArray(schemaModel[field], w.value);
|
|
130
|
+
}
|
|
131
|
+
return drizzleOrm.eq(schemaModel[field], w.value);
|
|
132
|
+
})
|
|
133
|
+
);
|
|
134
|
+
const orClause = drizzleOrm.or(
|
|
135
|
+
...orGroup.map((w) => {
|
|
136
|
+
const field = getField(model, w.field);
|
|
137
|
+
return drizzleOrm.eq(schemaModel[field], w.value);
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
const clause = [];
|
|
141
|
+
if (andGroup.length) clause.push(andClause);
|
|
142
|
+
if (orGroup.length) clause.push(orClause);
|
|
143
|
+
return clause;
|
|
144
|
+
},
|
|
145
|
+
withReturning: async (model, builder, data) => {
|
|
146
|
+
if (config.provider !== "mysql") {
|
|
147
|
+
const c = await builder.returning();
|
|
148
|
+
return c[0];
|
|
149
|
+
}
|
|
150
|
+
await builder;
|
|
151
|
+
const schemaModel = getSchema(getModelName(model));
|
|
152
|
+
const res = await db.select().from(schemaModel).where(drizzleOrm.eq(schemaModel.id, data.id));
|
|
153
|
+
return res[0];
|
|
154
|
+
},
|
|
155
|
+
getField,
|
|
156
|
+
getModelName
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
function checkMissingFields(schema, model, values) {
|
|
160
|
+
if (!schema) {
|
|
161
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
162
|
+
"Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
for (const key in values) {
|
|
166
|
+
if (!schema[key]) {
|
|
167
|
+
throw new chunkPEZRSDZS_cjs.BetterAuthError(
|
|
168
|
+
`The field "${key}" does not exist in the "${model}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
var drizzleAdapter = (db, config) => (options) => {
|
|
174
|
+
const {
|
|
175
|
+
transformInput,
|
|
176
|
+
transformOutput,
|
|
177
|
+
convertWhereClause,
|
|
178
|
+
getSchema,
|
|
179
|
+
withReturning,
|
|
180
|
+
getField,
|
|
181
|
+
getModelName
|
|
182
|
+
} = createTransform(db, config, options);
|
|
183
|
+
return {
|
|
184
|
+
id: "drizzle",
|
|
185
|
+
async create(data) {
|
|
186
|
+
const { model, data: values } = data;
|
|
187
|
+
const transformed = transformInput(values, model, "create");
|
|
188
|
+
const schemaModel = getSchema(model);
|
|
189
|
+
checkMissingFields(schemaModel, getModelName(model), transformed);
|
|
190
|
+
const builder = db.insert(schemaModel).values(transformed);
|
|
191
|
+
const returned = await withReturning(model, builder, transformed);
|
|
192
|
+
return transformOutput(returned, model);
|
|
193
|
+
},
|
|
194
|
+
async findOne(data) {
|
|
195
|
+
const { model, where, select } = data;
|
|
196
|
+
const schemaModel = getSchema(model);
|
|
197
|
+
const clause = convertWhereClause(where, model);
|
|
198
|
+
const res = await db.select().from(schemaModel).where(...clause);
|
|
199
|
+
if (!res.length) return null;
|
|
200
|
+
return transformOutput(res[0], model, select);
|
|
201
|
+
},
|
|
202
|
+
async findMany(data) {
|
|
203
|
+
const { model, where, sortBy, limit, offset } = data;
|
|
204
|
+
const schemaModel = getSchema(model);
|
|
205
|
+
const clause = where ? convertWhereClause(where, model) : [];
|
|
206
|
+
const sortFn = sortBy?.direction === "desc" ? drizzleOrm.desc : drizzleOrm.asc;
|
|
207
|
+
const builder = db.select().from(schemaModel).limit(limit || 100).offset(offset || 0);
|
|
208
|
+
if (sortBy?.field) {
|
|
209
|
+
builder.orderBy(sortFn(schemaModel[getField(model, sortBy?.field)]));
|
|
210
|
+
}
|
|
211
|
+
const res = await builder.where(...clause);
|
|
212
|
+
return res.map((r) => transformOutput(r, model));
|
|
213
|
+
},
|
|
214
|
+
async update(data) {
|
|
215
|
+
const { model, where, update: values } = data;
|
|
216
|
+
const schemaModel = getSchema(model);
|
|
217
|
+
const clause = convertWhereClause(where, model);
|
|
218
|
+
const transformed = transformInput(values, model, "update");
|
|
219
|
+
const builder = db.update(schemaModel).set(transformed).where(...clause);
|
|
220
|
+
const returned = await withReturning(model, builder, transformed);
|
|
221
|
+
return transformOutput(returned, model);
|
|
222
|
+
},
|
|
223
|
+
async updateMany(data) {
|
|
224
|
+
const { model, where, update: values } = data;
|
|
225
|
+
const schemaModel = getSchema(model);
|
|
226
|
+
const clause = convertWhereClause(where, model);
|
|
227
|
+
const transformed = transformInput(values, model, "update");
|
|
228
|
+
const builder = db.update(schemaModel).set(transformed).where(...clause);
|
|
229
|
+
const res = await builder;
|
|
230
|
+
return res ? res.changes : 0;
|
|
231
|
+
},
|
|
232
|
+
async delete(data) {
|
|
233
|
+
const { model, where } = data;
|
|
234
|
+
const schemaModel = getSchema(model);
|
|
235
|
+
const clause = convertWhereClause(where, model);
|
|
236
|
+
const builder = db.delete(schemaModel).where(...clause);
|
|
237
|
+
await builder;
|
|
238
|
+
},
|
|
239
|
+
async deleteMany(data) {
|
|
240
|
+
const { model, where } = data;
|
|
241
|
+
const schemaModel = getSchema(model);
|
|
242
|
+
const clause = convertWhereClause(where, model);
|
|
243
|
+
const builder = db.delete(schemaModel).where(...clause);
|
|
244
|
+
const res = await builder;
|
|
245
|
+
return res ? res.length : 0;
|
|
246
|
+
},
|
|
247
|
+
options: config
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
exports.drizzleAdapter = drizzleAdapter;
|
package/dist/adapters/drizzle.js
CHANGED
|
@@ -1 +1,249 @@
|
|
|
1
|
-
import{and as z,asc as J,desc as G,eq as F,inArray as U,like as I,or as Q}from"drizzle-orm";import{z as s}from"zod";import{APIError as ne}from"better-call";var se=s.object({id:s.string(),providerId:s.string(),accountId:s.string(),userId:s.string(),accessToken:s.string().nullish(),refreshToken:s.string().nullish(),idToken:s.string().nullish(),accessTokenExpiresAt:s.date().nullish(),refreshTokenExpiresAt:s.date().nullish(),scope:s.string().nullish(),password:s.string().nullish(),createdAt:s.date().default(()=>new Date),updatedAt:s.date().default(()=>new Date)}),ie=s.object({id:s.string(),email:s.string().transform(e=>e.toLowerCase()),emailVerified:s.boolean().default(!1),name:s.string(),image:s.string().nullish(),createdAt:s.date().default(()=>new Date),updatedAt:s.date().default(()=>new Date)}),ae=s.object({id:s.string(),userId:s.string(),expiresAt:s.date(),createdAt:s.date().default(()=>new Date),updatedAt:s.date().default(()=>new Date),token:s.string(),ipAddress:s.string().nullish(),userAgent:s.string().nullish()}),oe=s.object({id:s.string(),value:s.string(),createdAt:s.date().default(()=>new Date),updatedAt:s.date().default(()=>new Date),expiresAt:s.date(),identifier:s.string()});var R=Object.create(null),T=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?R:globalThis),S=new Proxy(R,{get(e,i){return T()[i]??R[i]},has(e,i){let u=T();return i in u||i in R},set(e,i,u){let m=T(!0);return m[i]=u,!0},deleteProperty(e,i){if(!i)return!1;let u=T(!0);return delete u[i],!0},ownKeys(){let e=T(!0);return Object.keys(e)}});function L(e){return e?e!=="false":!1}var E=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var M=E==="test"||L(S.TEST);import{createRandomStringGenerator as P}from"@better-auth/utils/random";var k=e=>P("a-z","A-Z","0-9")(e||32);import{z as at}from"zod";import{APIError as dt}from"better-call";var A=class extends Error{constructor(i,u){super(i),this.name="BetterAuthError",this.message=i,this.cause=u,this.stack=""}};import{createHash as je}from"@better-auth/utils/hash";import{xchacha20poly1305 as Ke}from"@noble/ciphers/chacha";import{bytesToHex as ze,hexToBytes as Je,utf8ToBytes as Ge}from"@noble/ciphers/utils";import{managedNonce as Ze}from"@noble/ciphers/webcrypto";import{createHash as Fe}from"@better-auth/utils/hash";import{SignJWT as Ne}from"jose";import{scryptAsync as qe}from"@noble/hashes/scrypt";import{getRandomValues as Ee}from"uncrypto";import{hex as Pe}from"@better-auth/utils/hex";import{createRandomStringGenerator as _}from"@better-auth/utils/random";var C=_("a-z","0-9","A-Z","-_");var O=["info","success","warn","error","debug"];function $(e,i){return O.indexOf(i)<=O.indexOf(e)}var x={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},j={info:x.fg.blue,success:x.fg.green,warn:x.fg.yellow,error:x.fg.red,debug:x.fg.magenta},H=(e,i)=>{let u=new Date().toISOString();return`${x.dim}${u}${x.reset} ${j[e]}${e.toUpperCase()}${x.reset} ${x.bright}[Better Auth]:${x.reset} ${i}`},B=e=>{let i=e?.disabled!==!0,u=e?.level??"error",m=(f,y,p=[])=>{if(!i||!$(u,f))return;let w=H(f,y);if(!e||typeof e.log!="function"){f==="error"?console.error(w,...p):f==="warn"?console.warn(w,...p):console.log(w,...p);return}e.log(f==="success"?"info":f,y,...p)};return Object.fromEntries(O.map(f=>[f,(...[y,...p])=>m(f,y,p)]))},K=B();var v=e=>{let i=e.plugins?.reduce((a,c)=>{let n=c.schema;if(!n)return a;for(let[t,d]of Object.entries(n))a[t]={fields:{...a[t]?.fields,...d.fields},modelName:d.modelName||t};return a},{}),u=e.rateLimit?.storage==="database",m={rateLimit:{modelName:e.rateLimit?.modelName||"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:f,session:y,account:p,...w}=i||{};return{user:{modelName: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"},...f?.fields,...e.user?.additionalFields},order:1},session:{modelName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},token:{type:"string",required:!0,fieldName:e.session?.fields?.token||"token",unique:!0},createdAt:{type:"date",required:!0,fieldName:e.session?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.session?.fields?.updatedAt||"updatedAt"},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},...y?.fields,...e.session?.additionalFields},order:2},account:{modelName: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"},accessTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"accessTokenExpiresAt"},refreshTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"refreshTokenExpiresAt"},scope:{type:"string",required:!1,fieldName:e.account?.fields?.scope||"scope"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},createdAt:{type:"date",required:!0,fieldName:e.account?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.account?.fields?.updatedAt||"updatedAt"},...p?.fields},order:3},verification:{modelName: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"},createdAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.updatedAt||"updatedAt"}},order:4},...w,...u?m:{}}};import{z as Mt}from"zod";import{Kysely as _t,MssqlDialect as Ct}from"kysely";import{MysqlDialect as jt,PostgresDialect as Ht,SqliteDialect as Kt}from"kysely";function D(e,i,u){return u==="update"?e:e==null&&i.defaultValue?typeof i.defaultValue=="function"?i.defaultValue():i.defaultValue:e}var Z=(e,i,u)=>{let m=v(u);function f(a,c){return c==="id"?c:m[a].fields[c].fieldName||c}function y(a){let c=i.schema||e._.fullSchema;if(!c)throw new A("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");let n=p(a),t=c[n];if(!t)throw new A(`[# Drizzle Adapter]: The model "${n}" was not found in the schema object. Please pass the schema directly to the adapter options.`);return t}let p=a=>m[a].modelName!==a?m[a].modelName:i.usePlural?`${a}s`:a,w=u?.advanced?.generateId===!1;return{getSchema:y,transformInput(a,c,n){let t=w||n==="update"?{}:{id:u.advanced?.generateId?u.advanced.generateId({model:c}):a.id||k()},d=m[c].fields;for(let o in d){let l=a[o];l===void 0&&!d[o].defaultValue||(t[d[o].fieldName||o]=D(l,d[o],n))}return t},transformOutput(a,c,n=[]){if(!a)return null;let t=a.id||a._id?n.length===0||n.includes("id")?{id:a.id}:{}:{},d=m[c].fields;for(let o in d){if(n.length&&!n.includes(o))continue;let l=d[o];l&&(t[o]=a[l.fieldName||o])}return t},convertWhereClause(a,c){let n=y(c);if(!a)return[];if(a.length===1){let r=a[0];if(!r)return[];let g=f(c,r.field);if(!n[g])throw new A(`The field "${r.field}" does not exist in the schema for the model "${c}". Please update your schema.`);if(r.operator==="in"){if(!Array.isArray(r.value))throw new A(`The value for the field "${r.field}" must be an array when using the "in" operator.`);return[U(n[g],r.value)]}return r.operator==="contains"?[I(n[g],`%${r.value}%`)]:r.operator==="starts_with"?[I(n[g],`${r.value}%`)]:r.operator==="ends_with"?[I(n[g],`%${r.value}`)]:[F(n[g],r.value)]}let t=a.filter(r=>r.connector==="AND"||!r.connector),d=a.filter(r=>r.connector==="OR"),o=z(...t.map(r=>{let g=f(c,r.field);if(r.operator==="in"){if(!Array.isArray(r.value))throw new A(`The value for the field "${r.field}" must be an array when using the "in" operator.`);return U(n[g],r.value)}return F(n[g],r.value)})),l=Q(...d.map(r=>{let g=f(c,r.field);return F(n[g],r.value)})),h=[];return t.length&&h.push(o),d.length&&h.push(l),h},withReturning:async(a,c,n)=>{if(i.provider!=="mysql")return(await c.returning())[0];await c;let t=y(p(a));return(await e.select().from(t).where(F(t.id,n.id)))[0]},getField:f,getModelName:p}};function X(e,i,u){if(!e)throw new A("Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object.");for(let m in u)if(!e[m])throw new A(`The field "${m}" does not exist in the "${i}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`)}var Vr=(e,i)=>u=>{let{transformInput:m,transformOutput:f,convertWhereClause:y,getSchema:p,withReturning:w,getField:a,getModelName:c}=Z(e,i,u);return{id:"drizzle",async create(n){let{model:t,data:d}=n,o=m(d,t,"create"),l=p(t);X(l,c(t),o);let h=e.insert(l).values(o),r=await w(t,h,o);return f(r,t)},async findOne(n){let{model:t,where:d,select:o}=n,l=p(t),h=y(d,t),r=await e.select().from(l).where(...h);return r.length?f(r[0],t,o):null},async findMany(n){let{model:t,where:d,sortBy:o,limit:l,offset:h}=n,r=p(t),g=d?y(d,t):[],b=o?.direction==="desc"?G:J,N=e.select().from(r).limit(l||100).offset(h||0);return o?.field&&N.orderBy(b(r[a(t,o?.field)])),(await N.where(...g)).map(q=>f(q,t))},async update(n){let{model:t,where:d,update:o}=n,l=p(t),h=y(d,t),r=m(o,t,"update"),g=e.update(l).set(r).where(...h),b=await w(t,g,r);return f(b,t)},async updateMany(n){let{model:t,where:d,update:o}=n,l=p(t),h=y(d,t),r=m(o,t,"update"),b=await e.update(l).set(r).where(...h);return b?b.changes:0},async delete(n){let{model:t,where:d}=n,o=p(t),l=y(d,t);await e.delete(o).where(...l)},async deleteMany(n){let{model:t,where:d}=n,o=p(t),l=y(d,t),r=await e.delete(o).where(...l);return r?r.length:0},options:i}};export{Vr as drizzleAdapter};
|
|
1
|
+
import { getAuthTables, withApplyDefault } from '../chunk-Z5DOA2YV.js';
|
|
2
|
+
import '../chunk-QAM4N2LT.js';
|
|
3
|
+
import { generateId } from '../chunk-KLDFBLYL.js';
|
|
4
|
+
import '../chunk-6YL5J5JY.js';
|
|
5
|
+
import '../chunk-SK6Y2YH6.js';
|
|
6
|
+
import '../chunk-3XTQSPPA.js';
|
|
7
|
+
import '../chunk-WN2RDYR6.js';
|
|
8
|
+
import '../chunk-FURNA6HY.js';
|
|
9
|
+
import '../chunk-TQQSPPNA.js';
|
|
10
|
+
import { BetterAuthError } from '../chunk-UNWCXKMP.js';
|
|
11
|
+
import { desc, asc, inArray, like, eq, and, or } from 'drizzle-orm';
|
|
12
|
+
|
|
13
|
+
var createTransform = (db, config, options) => {
|
|
14
|
+
const schema = getAuthTables(options);
|
|
15
|
+
function getField(model, field) {
|
|
16
|
+
if (field === "id") {
|
|
17
|
+
return field;
|
|
18
|
+
}
|
|
19
|
+
const f = schema[model].fields[field];
|
|
20
|
+
return f.fieldName || field;
|
|
21
|
+
}
|
|
22
|
+
function getSchema(modelName) {
|
|
23
|
+
const schema2 = config.schema || db._.fullSchema;
|
|
24
|
+
if (!schema2) {
|
|
25
|
+
throw new BetterAuthError(
|
|
26
|
+
"Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
const model = getModelName(modelName);
|
|
30
|
+
const schemaModel = schema2[model];
|
|
31
|
+
if (!schemaModel) {
|
|
32
|
+
throw new BetterAuthError(
|
|
33
|
+
`[# Drizzle Adapter]: The model "${model}" was not found in the schema object. Please pass the schema directly to the adapter options.`
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return schemaModel;
|
|
37
|
+
}
|
|
38
|
+
const getModelName = (model) => {
|
|
39
|
+
return schema[model].modelName !== model ? schema[model].modelName : config.usePlural ? `${model}s` : model;
|
|
40
|
+
};
|
|
41
|
+
const useDatabaseGeneratedId = options?.advanced?.generateId === false;
|
|
42
|
+
return {
|
|
43
|
+
getSchema,
|
|
44
|
+
transformInput(data, model, action) {
|
|
45
|
+
const transformedData = useDatabaseGeneratedId || action === "update" ? {} : {
|
|
46
|
+
id: options.advanced?.generateId ? options.advanced.generateId({
|
|
47
|
+
model
|
|
48
|
+
}) : data.id || generateId()
|
|
49
|
+
};
|
|
50
|
+
const fields = schema[model].fields;
|
|
51
|
+
for (const field in fields) {
|
|
52
|
+
const value = data[field];
|
|
53
|
+
if (value === void 0 && !fields[field].defaultValue) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
transformedData[fields[field].fieldName || field] = withApplyDefault(
|
|
57
|
+
value,
|
|
58
|
+
fields[field],
|
|
59
|
+
action
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return transformedData;
|
|
63
|
+
},
|
|
64
|
+
transformOutput(data, model, select = []) {
|
|
65
|
+
if (!data) return null;
|
|
66
|
+
const transformedData = data.id || data._id ? select.length === 0 || select.includes("id") ? {
|
|
67
|
+
id: data.id
|
|
68
|
+
} : {} : {};
|
|
69
|
+
const tableSchema = schema[model].fields;
|
|
70
|
+
for (const key in tableSchema) {
|
|
71
|
+
if (select.length && !select.includes(key)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const field = tableSchema[key];
|
|
75
|
+
if (field) {
|
|
76
|
+
transformedData[key] = data[field.fieldName || key];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return transformedData;
|
|
80
|
+
},
|
|
81
|
+
convertWhereClause(where, model) {
|
|
82
|
+
const schemaModel = getSchema(model);
|
|
83
|
+
if (!where) return [];
|
|
84
|
+
if (where.length === 1) {
|
|
85
|
+
const w = where[0];
|
|
86
|
+
if (!w) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
const field = getField(model, w.field);
|
|
90
|
+
if (!schemaModel[field]) {
|
|
91
|
+
throw new BetterAuthError(
|
|
92
|
+
`The field "${w.field}" does not exist in the schema for the model "${model}". Please update your schema.`
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
if (w.operator === "in") {
|
|
96
|
+
if (!Array.isArray(w.value)) {
|
|
97
|
+
throw new BetterAuthError(
|
|
98
|
+
`The value for the field "${w.field}" must be an array when using the "in" operator.`
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
return [inArray(schemaModel[field], w.value)];
|
|
102
|
+
}
|
|
103
|
+
if (w.operator === "contains") {
|
|
104
|
+
return [like(schemaModel[field], `%${w.value}%`)];
|
|
105
|
+
}
|
|
106
|
+
if (w.operator === "starts_with") {
|
|
107
|
+
return [like(schemaModel[field], `${w.value}%`)];
|
|
108
|
+
}
|
|
109
|
+
if (w.operator === "ends_with") {
|
|
110
|
+
return [like(schemaModel[field], `%${w.value}`)];
|
|
111
|
+
}
|
|
112
|
+
return [eq(schemaModel[field], w.value)];
|
|
113
|
+
}
|
|
114
|
+
const andGroup = where.filter(
|
|
115
|
+
(w) => w.connector === "AND" || !w.connector
|
|
116
|
+
);
|
|
117
|
+
const orGroup = where.filter((w) => w.connector === "OR");
|
|
118
|
+
const andClause = and(
|
|
119
|
+
...andGroup.map((w) => {
|
|
120
|
+
const field = getField(model, w.field);
|
|
121
|
+
if (w.operator === "in") {
|
|
122
|
+
if (!Array.isArray(w.value)) {
|
|
123
|
+
throw new BetterAuthError(
|
|
124
|
+
`The value for the field "${w.field}" must be an array when using the "in" operator.`
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
return inArray(schemaModel[field], w.value);
|
|
128
|
+
}
|
|
129
|
+
return eq(schemaModel[field], w.value);
|
|
130
|
+
})
|
|
131
|
+
);
|
|
132
|
+
const orClause = or(
|
|
133
|
+
...orGroup.map((w) => {
|
|
134
|
+
const field = getField(model, w.field);
|
|
135
|
+
return eq(schemaModel[field], w.value);
|
|
136
|
+
})
|
|
137
|
+
);
|
|
138
|
+
const clause = [];
|
|
139
|
+
if (andGroup.length) clause.push(andClause);
|
|
140
|
+
if (orGroup.length) clause.push(orClause);
|
|
141
|
+
return clause;
|
|
142
|
+
},
|
|
143
|
+
withReturning: async (model, builder, data) => {
|
|
144
|
+
if (config.provider !== "mysql") {
|
|
145
|
+
const c = await builder.returning();
|
|
146
|
+
return c[0];
|
|
147
|
+
}
|
|
148
|
+
await builder;
|
|
149
|
+
const schemaModel = getSchema(getModelName(model));
|
|
150
|
+
const res = await db.select().from(schemaModel).where(eq(schemaModel.id, data.id));
|
|
151
|
+
return res[0];
|
|
152
|
+
},
|
|
153
|
+
getField,
|
|
154
|
+
getModelName
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
function checkMissingFields(schema, model, values) {
|
|
158
|
+
if (!schema) {
|
|
159
|
+
throw new BetterAuthError(
|
|
160
|
+
"Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
for (const key in values) {
|
|
164
|
+
if (!schema[key]) {
|
|
165
|
+
throw new BetterAuthError(
|
|
166
|
+
`The field "${key}" does not exist in the "${model}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
var drizzleAdapter = (db, config) => (options) => {
|
|
172
|
+
const {
|
|
173
|
+
transformInput,
|
|
174
|
+
transformOutput,
|
|
175
|
+
convertWhereClause,
|
|
176
|
+
getSchema,
|
|
177
|
+
withReturning,
|
|
178
|
+
getField,
|
|
179
|
+
getModelName
|
|
180
|
+
} = createTransform(db, config, options);
|
|
181
|
+
return {
|
|
182
|
+
id: "drizzle",
|
|
183
|
+
async create(data) {
|
|
184
|
+
const { model, data: values } = data;
|
|
185
|
+
const transformed = transformInput(values, model, "create");
|
|
186
|
+
const schemaModel = getSchema(model);
|
|
187
|
+
checkMissingFields(schemaModel, getModelName(model), transformed);
|
|
188
|
+
const builder = db.insert(schemaModel).values(transformed);
|
|
189
|
+
const returned = await withReturning(model, builder, transformed);
|
|
190
|
+
return transformOutput(returned, model);
|
|
191
|
+
},
|
|
192
|
+
async findOne(data) {
|
|
193
|
+
const { model, where, select } = data;
|
|
194
|
+
const schemaModel = getSchema(model);
|
|
195
|
+
const clause = convertWhereClause(where, model);
|
|
196
|
+
const res = await db.select().from(schemaModel).where(...clause);
|
|
197
|
+
if (!res.length) return null;
|
|
198
|
+
return transformOutput(res[0], model, select);
|
|
199
|
+
},
|
|
200
|
+
async findMany(data) {
|
|
201
|
+
const { model, where, sortBy, limit, offset } = data;
|
|
202
|
+
const schemaModel = getSchema(model);
|
|
203
|
+
const clause = where ? convertWhereClause(where, model) : [];
|
|
204
|
+
const sortFn = sortBy?.direction === "desc" ? desc : asc;
|
|
205
|
+
const builder = db.select().from(schemaModel).limit(limit || 100).offset(offset || 0);
|
|
206
|
+
if (sortBy?.field) {
|
|
207
|
+
builder.orderBy(sortFn(schemaModel[getField(model, sortBy?.field)]));
|
|
208
|
+
}
|
|
209
|
+
const res = await builder.where(...clause);
|
|
210
|
+
return res.map((r) => transformOutput(r, model));
|
|
211
|
+
},
|
|
212
|
+
async update(data) {
|
|
213
|
+
const { model, where, update: values } = data;
|
|
214
|
+
const schemaModel = getSchema(model);
|
|
215
|
+
const clause = convertWhereClause(where, model);
|
|
216
|
+
const transformed = transformInput(values, model, "update");
|
|
217
|
+
const builder = db.update(schemaModel).set(transformed).where(...clause);
|
|
218
|
+
const returned = await withReturning(model, builder, transformed);
|
|
219
|
+
return transformOutput(returned, model);
|
|
220
|
+
},
|
|
221
|
+
async updateMany(data) {
|
|
222
|
+
const { model, where, update: values } = data;
|
|
223
|
+
const schemaModel = getSchema(model);
|
|
224
|
+
const clause = convertWhereClause(where, model);
|
|
225
|
+
const transformed = transformInput(values, model, "update");
|
|
226
|
+
const builder = db.update(schemaModel).set(transformed).where(...clause);
|
|
227
|
+
const res = await builder;
|
|
228
|
+
return res ? res.changes : 0;
|
|
229
|
+
},
|
|
230
|
+
async delete(data) {
|
|
231
|
+
const { model, where } = data;
|
|
232
|
+
const schemaModel = getSchema(model);
|
|
233
|
+
const clause = convertWhereClause(where, model);
|
|
234
|
+
const builder = db.delete(schemaModel).where(...clause);
|
|
235
|
+
await builder;
|
|
236
|
+
},
|
|
237
|
+
async deleteMany(data) {
|
|
238
|
+
const { model, where } = data;
|
|
239
|
+
const schemaModel = getSchema(model);
|
|
240
|
+
const clause = convertWhereClause(where, model);
|
|
241
|
+
const builder = db.delete(schemaModel).where(...clause);
|
|
242
|
+
const res = await builder;
|
|
243
|
+
return res ? res.length : 0;
|
|
244
|
+
},
|
|
245
|
+
options: config
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
export { drizzleAdapter };
|
package/dist/adapters/kysely.cjs
CHANGED
|
@@ -1 +1,23 @@
|
|
|
1
|
-
"use strict";var D=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var c in t)D(e,c,{get:t[c],enumerable:!0})},H=(e,t,c,y)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of C(t))!j.call(e,m)&&m!==c&&D(e,m,{get:()=>t[m],enumerable:!(y=_(t,m))||y.enumerable});return e};var K=e=>H(D({},"__esModule",{value:!0}),e);var ye={};$(ye,{createKyselyAdapter:()=>U,kyselyAdapter:()=>M});module.exports=K(ye);var T=require("kysely"),b=require("kysely");function B(e){if(!e)return null;if("dialect"in e)return B(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 U=async e=>{let t=e.database;if(!t)return{kysely:null,databaseType:null};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=B(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 d=require("zod"),W=require("better-call"),xe=d.z.object({id:d.z.string(),providerId:d.z.string(),accountId:d.z.string(),userId:d.z.string(),accessToken:d.z.string().nullish(),refreshToken:d.z.string().nullish(),idToken:d.z.string().nullish(),accessTokenExpiresAt:d.z.date().nullish(),refreshTokenExpiresAt:d.z.date().nullish(),scope:d.z.string().nullish(),password:d.z.string().nullish(),createdAt:d.z.date().default(()=>new Date),updatedAt:d.z.date().default(()=>new Date)}),we=d.z.object({id:d.z.string(),email:d.z.string().transform(e=>e.toLowerCase()),emailVerified:d.z.boolean().default(!1),name:d.z.string(),image:d.z.string().nullish(),createdAt:d.z.date().default(()=>new Date),updatedAt:d.z.date().default(()=>new Date)}),be=d.z.object({id:d.z.string(),userId:d.z.string(),expiresAt:d.z.date(),createdAt:d.z.date().default(()=>new Date),updatedAt:d.z.date().default(()=>new Date),token:d.z.string(),ipAddress:d.z.string().nullish(),userAgent:d.z.string().nullish()}),ve=d.z.object({id:d.z.string(),value:d.z.string(),createdAt:d.z.date().default(()=>new Date),updatedAt:d.z.date().default(()=>new Date),expiresAt:d.z.date(),identifier:d.z.string()});var F=Object.create(null),k=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?F:globalThis),L=new Proxy(F,{get(e,t){return k()[t]??F[t]},has(e,t){let c=k();return t in c||t in F},set(e,t,c){let y=k(!0);return y[t]=c,!0},deleteProperty(e,t){if(!t)return!1;let c=k(!0);return delete c[t],!0},ownKeys(){let e=k(!0);return Object.keys(e)}});function J(e){return e?e!=="false":!1}var z=typeof process<"u"&&process.env&&process.env.NODE_ENV||"";var G=z==="test"||J(L.TEST);var E=require("@better-auth/utils/random"),O=e=>(0,E.createRandomStringGenerator)("a-z","A-Z","0-9")(e||32);var oe=require("zod"),de=require("better-call");var ie=require("@better-auth/utils/hash"),se=require("@noble/ciphers/chacha"),N=require("@noble/ciphers/utils"),ae=require("@noble/ciphers/webcrypto");var X=require("@better-auth/utils/hash");var Y=require("jose");var ee=require("@noble/hashes/scrypt"),te=require("uncrypto"),re=require("@better-auth/utils/hex");var P=require("@better-auth/utils/random"),ne=(0,P.createRandomStringGenerator)("a-z","0-9","A-Z","-_");var S=["info","success","warn","error","debug"];function ue(e,t){return S.indexOf(t)<=S.indexOf(e)}var w={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},ce={info:w.fg.blue,success:w.fg.green,warn:w.fg.yellow,error:w.fg.red,debug:w.fg.magenta},le=(e,t)=>{let c=new Date().toISOString();return`${w.dim}${c}${w.reset} ${ce[e]}${e.toUpperCase()}${w.reset} ${w.bright}[Better Auth]:${w.reset} ${t}`},V=e=>{let t=e?.disabled!==!0,c=e?.level??"error",y=(m,x,A=[])=>{if(!t||!ue(c,m))return;let h=le(m,x);if(!e||typeof e.log!="function"){m==="error"?console.error(h,...A):m==="warn"?console.warn(h,...A):console.log(h,...A);return}e.log(m==="success"?"info":m,x,...A)};return Object.fromEntries(S.map(m=>[m,(...[x,...A])=>y(m,x,A)]))},fe=V();var R=e=>{let t=e.plugins?.reduce((v,i)=>{let r=i.schema;if(!r)return v;for(let[a,u]of Object.entries(r))v[a]={fields:{...v[a]?.fields,...u.fields},modelName:u.modelName||a};return v},{}),c=e.rateLimit?.storage==="database",y={rateLimit:{modelName:e.rateLimit?.modelName||"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:x,account:A,...h}=t||{};return{user:{modelName: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:{modelName:e.session?.modelName||"session",fields:{expiresAt:{type:"date",required:!0,fieldName:e.session?.fields?.expiresAt||"expiresAt"},token:{type:"string",required:!0,fieldName:e.session?.fields?.token||"token",unique:!0},createdAt:{type:"date",required:!0,fieldName:e.session?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.session?.fields?.updatedAt||"updatedAt"},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:{modelName: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"},accessTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"accessTokenExpiresAt"},refreshTokenExpiresAt:{type:"date",required:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||"refreshTokenExpiresAt"},scope:{type:"string",required:!1,fieldName:e.account?.fields?.scope||"scope"},password:{type:"string",required:!1,fieldName:e.account?.fields?.password||"password"},createdAt:{type:"date",required:!0,fieldName:e.account?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!0,fieldName:e.account?.fields?.updatedAt||"updatedAt"},...A?.fields},order:3},verification:{modelName: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"},createdAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.createdAt||"createdAt"},updatedAt:{type:"date",required:!1,defaultValue:()=>new Date,fieldName:e.verification?.fields?.updatedAt||"updatedAt"}},order:4},...h,...c?y:{}}};var pe=require("zod");function q(e,t,c){return c==="update"?e:e==null&&t.defaultValue?typeof t.defaultValue=="function"?t.defaultValue():t.defaultValue:e}var me=(e,t,c)=>{let y=R(t);function m(i,r){if(r==="id")return r;let a=y[i].fields[r];return a||console.log("Field not found",i,r),a.fieldName||r}function x(i,r,a){let{type:u="sqlite"}=c||{},o=y[r].fields[a];return o.type==="boolean"&&u==="sqlite"&&i!==null&&i!==void 0?i?1:0:o.type==="date"&&i&&i instanceof Date&&u==="sqlite"?i.toISOString():i}function A(i,r,a){let{type:u="sqlite"}=c||{},o=y[r].fields[a];return o.type==="boolean"&&u==="sqlite"&&i!==null?i===1:o.type==="date"&&i?new Date(i):i}function h(i){return y[i].modelName}let v=t?.advanced?.generateId===!1;return{transformInput(i,r,a){let u=v||a==="update"?{}:{id:t.advanced?.generateId?t.advanced.generateId({model:r}):i.id||O()},o=y[r].fields;for(let n in o){let s=i[n];u[o[n].fieldName||n]=q(x(s,r,n),o[n],a)}return u},transformOutput(i,r,a=[]){if(!i)return null;let u=i.id?a.length===0||a.includes("id")?{id:i.id}:{}:{},o=y[r].fields;for(let n in o){if(a.length&&!a.includes(n))continue;let s=o[n];s&&(u[n]=A(i[s.fieldName||n],r,n))}return u},convertWhereClause(i,r){if(!r)return{and:null,or:null};let a={and:[],or:[]};return r.forEach(u=>{let{field:o,value:n,operator:s="=",connector:f="AND"}=u,l=m(i,o),g=p=>s.toLowerCase()==="in"?p(l,"in",Array.isArray(n)?n:[n]):s==="contains"?p(l,"like",`%${n}%`):s==="starts_with"?p(l,"like",`${n}%`):s==="ends_with"?p(l,"like",`%${n}`):s==="eq"?p(l,"=",n):s==="ne"?p(l,"<>",n):s==="gt"?p(l,">",n):s==="gte"?p(l,">=",n):s==="lt"?p(l,"<",n):s==="lte"?p(l,"<=",n):p(l,s,n);f==="OR"?a.or.push(g):a.and.push(g)}),{and:a.and.length?a.and:null,or:a.or.length?a.or:null}},async withReturning(i,r,a,u){let o;if(c?.type!=="mysql")o=await r.returningAll().executeTakeFirst();else{await r.execute();let n=i.id?"id":u[0].field?u[0].field:"id",s=i[n]||u[0].value;o=await e.selectFrom(h(a)).selectAll().where(m(a,n),"=",s).executeTakeFirst()}return o},getModelName:h,getField:m}},M=(e,t)=>c=>{let{transformInput:y,withReturning:m,transformOutput:x,convertWhereClause:A,getModelName:h,getField:v}=me(e,c,t);return{id:"kysely",async create(i){let{model:r,data:a,select:u}=i,o=y(a,r,"create"),n=e.insertInto(h(r)).values(o);return x(await m(o,n,r,[]),r,u)},async findOne(i){let{model:r,where:a,select:u}=i,{and:o,or:n}=A(r,a),s=e.selectFrom(h(r)).selectAll();o&&(s=s.where(l=>l.and(o.map(g=>g(l))))),n&&(s=s.where(l=>l.or(n.map(g=>g(l)))));let f=await s.executeTakeFirst();return f?x(f,r,u):null},async findMany(i){let{model:r,where:a,limit:u,offset:o,sortBy:n}=i,{and:s,or:f}=A(r,a),l=e.selectFrom(h(r));s&&(l=l.where(p=>p.and(s.map(I=>I(p))))),f&&(l=l.where(p=>p.or(f.map(I=>I(p))))),l=l.limit(u||100),o&&(l=l.offset(o)),n&&(l=l.orderBy(v(r,n.field),n.direction));let g=await l.selectAll().execute();return g?g.map(p=>x(p,r)):[]},async update(i){let{model:r,where:a,update:u}=i,{and:o,or:n}=A(r,a),s=y(u,r,"update"),f=e.updateTable(h(r)).set(s);return o&&(f=f.where(g=>g.and(o.map(p=>p(g))))),n&&(f=f.where(g=>g.or(n.map(p=>p(g))))),await x(await m(s,f,r,a),r)},async updateMany(i){let{model:r,where:a,update:u}=i,{and:o,or:n}=A(r,a),s=y(u,r,"update"),f=e.updateTable(h(r)).set(s);return o&&(f=f.where(g=>g.and(o.map(p=>p(g))))),n&&(f=f.where(g=>g.or(n.map(p=>p(g))))),(await f.execute()).length},async delete(i){let{model:r,where:a}=i,{and:u,or:o}=A(r,a),n=e.deleteFrom(h(r));u&&(n=n.where(s=>s.and(u.map(f=>f(s))))),o&&(n=n.where(s=>s.or(o.map(f=>f(s))))),await n.execute()},async deleteMany(i){let{model:r,where:a}=i,{and:u,or:o}=A(r,a),n=e.deleteFrom(h(r));return u&&(n=n.where(s=>s.and(u.map(f=>f(s))))),o&&(n=n.where(s=>s.or(o.map(f=>f(s))))),(await n.execute()).length},options:t}};0&&(module.exports={createKyselyAdapter,kyselyAdapter});
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDCDSHXKU_cjs = require('../chunk-DCDSHXKU.cjs');
|
|
4
|
+
require('../chunk-UJEXYGEC.cjs');
|
|
5
|
+
require('../chunk-H74YRRNV.cjs');
|
|
6
|
+
require('../chunk-LB4ZM24Q.cjs');
|
|
7
|
+
require('../chunk-NIMYOIVU.cjs');
|
|
8
|
+
require('../chunk-CCKQSGIR.cjs');
|
|
9
|
+
require('../chunk-XJGHQ3F6.cjs');
|
|
10
|
+
require('../chunk-2HPSCSV7.cjs');
|
|
11
|
+
require('../chunk-VXYIYABQ.cjs');
|
|
12
|
+
require('../chunk-PEZRSDZS.cjs');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
Object.defineProperty(exports, "createKyselyAdapter", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkDCDSHXKU_cjs.createKyselyAdapter; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "kyselyAdapter", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkDCDSHXKU_cjs.kyselyAdapter; }
|
|
23
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
|
-
import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-
|
|
2
|
+
import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-oBkuHUtD.cjs';
|
|
3
3
|
import 'better-call';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '../helper-Bi8FQwDD.cjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
|
-
import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-
|
|
2
|
+
import { B as BetterAuthOptions, K as KyselyDatabaseType, W as Where } from '../auth-Dm4WNKuW.js';
|
|
3
3
|
import 'better-call';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '../helper-Bi8FQwDD.js';
|