@gjermundgaraba/clankerauth-dev 0.28.1 → 0.29.0

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.
@@ -1,3 +1,3 @@
1
- import{N as e}from"./schemas-lRZfTY17.mjs";const t=Symbol.for(`better-auth:global`);let n=null;const r={},i=`1.7.12`;function a(){return globalThis[t]||(globalThis[t]={version:i,epoch:1,context:r},n=globalThis[t]),n=globalThis[t],n.version!==i&&(n.version=i,n.epoch++),globalThis[t]}function o(){return a().context.endpointContextAsyncStorage?.getStore()}function s(){return a().version}function c(e){return e.toLowerCase()}function l(e){return new TextEncoder().encode(e).length}function u(e,t){let n=``,r=0;for(let i of e){let e=l(i);if(r+e>t)break;n+=i,r+=e}return n}function d(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function f(t,n){if(n.name!==void 0){if(n.name.trim().length===0)throw new e(`Database index names must contain at least one visible character.`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n.name))throw new e(`Database index names must start with a letter or underscore and contain only letters, numbers, and underscores.`);if(l(n.name)>63)throw new e(`Database index names must be at most 63 UTF-8 bytes.`);return n.name}let r=n.unique?`uidx`:`idx`,i=`${t}_${n.fields.join(`_`)}_${r}`;if(l(i)<=63)return i;let a=`_${d(i)}_${r}`;return`${u(i.slice(0,-r.length-1),63-l(a))}${a}`}function p(e,t,n){return f(e,{fields:[t],unique:n})}function ee({fields:t,indexes:n,tableName:r}){let i=(n??[]).map(n=>{if(n.fields.length===0)throw new e(`Index on table "${r}" must include at least one field.`);if(n.fields.length>16)throw new e(`Index on table "${r}" can include at most 16 fields so it works across supported databases.`);if(new Set(n.fields).size!==n.fields.length)throw new e(`Index on table "${r}" contains the same field more than once.`);if(n.unique&&n.fields.some(e=>t[e]?.required===!1))throw new e(`Unique index on table "${r}" can only include required fields so its behavior is consistent across databases.`);let i=n.fields.find(e=>{let n=t[e]?.type;return n===`json`||n===`string[]`||n===`number[]`});if(i)throw new e(`Index on table "${r}" references field "${i}", whose type is not portably indexable.`);let a=n=>{let i=t[n];if(!i)throw new e(`Index on table "${r}" references unknown field "${n}".`);return i.fieldName||n},[o,...s]=n.fields,l=[a(o),...s.map(a)];if(new Set(l.map(c)).size!==l.length)throw new e(`Index on table "${r}" resolves more than one field to the same database column.`);return{columns:l,name:f(r,{...n,fields:l}),unique:n.unique}}),a=/* @__PURE__ */ new Map,o=[];for(let t of i){let n=JSON.stringify([t.columns,t.unique??!1]),i=c(t.name),s=a.get(i);if(s&&s!==n)throw new e(`Database index name "${t.name}" identifies more than one index on table "${r}".`);s||(a.set(i,n),o.push(t))}return o}function te({columnName:e,dialect:t,fields:n,indexes:r}){let i=new Map(Object.entries(n).map(([e,t])=>[t.fieldName||e,t])),a=r.filter(t=>t.columns.includes(e));if(a.length===0)return;let o=t===`mysql`?3072:1700,s=t===`mysql`?4:1,c=t===`mysql`?191:255;return a.reduce((e,t)=>{let n=t.columns.filter(e=>{let t=i.get(e)?.type;return t===`string`||Array.isArray(t)}).length;if(n===0)return e;let r=(t.columns.length-n)*16,a=Math.floor(Math.max(1,o-r)/s/n);return Math.min(e,a)},c)}function ne(t){let n=/* @__PURE__ */ new Map;for(let r of t){let t=n.get(r.tableName);if(t){if(t.indexes.length>0||(r.indexes?.length??0)>0)throw new e(`Database schema resolves more than one indexed logical table to "${r.tableName}". Define table-level indexes through one logical schema key instead of aliasing multiple keys to the same database table.`);Object.assign(t.fields,r.fields);continue}let i={fields:{},indexes:[],tableName:r.tableName};Object.assign(i.fields,r.fields),i.indexes.push(...r.indexes??[]),n.set(r.tableName,i)}let r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,a=new Map([...n.keys()].map(e=>[c(e),e])),o=/* @__PURE__ */ new Map;for(let t of n.values())for(let[n,r]of Object.entries(t.fields)){if(!r.index&&!r.unique)continue;let i=p(t.tableName,r.fieldName||n,r.unique??!1),s=c(i);if(a.has(s))throw new e(`Database index name "${i}" conflicts with a table name. Index and table names must be unique across the schema.`);let l=o.get(s);if(l)throw new e(`Database field-level index name "${i}" is used by both table "${l}" and table "${t.tableName}".`);o.set(s,t.tableName)}for(let t of n.values()){let n=ee(t);r.set(t.tableName,[...n]);for(let r of n){let n=c(r.name);if(a.has(n))throw new e(`Database index name "${r.name}" conflicts with a table name. Index and table names must be unique across the schema.`);let s=o.get(n);if(s)throw new e(`Database index name "${r.name}" is already reserved by field-level index metadata on table "${s}". Remove the duplicate table-level index or give it a distinct name.`);let l=i.get(n);if(l&&l!==t.tableName)throw new e(`Database index name "${r.name}" is used by both table "${l}" and table "${t.tableName}". Index names must be unique across the schema.`);i.set(n,t.tableName)}}return r}function re(...e){let t=[],n=/* @__PURE__ */ new Set;for(let r of e.flatMap(e=>e??[])){let e=JSON.stringify([r.name??null,r.fields,r.unique??!1]);n.has(e)||(n.add(e),t.push(r))}return t}const ie=e=>{let t=(e.plugins??[]).reduce((e,t)=>{let n=t.schema;if(!n)return e;for(let[t,r]of Object.entries(n))e[t]={fields:{...e[t]?.fields,...r.fields},indexes:re(e[t]?.indexes,r.indexes),modelName:r.modelName||t,disableMigrations:r.disableMigration??e[t]?.disableMigrations};return e},{}),n=e.rateLimit?.storage===`database`,r={rateLimit:{modelName:e.rateLimit?.modelName||`rateLimit`,fields:{key:{type:`string`,unique:!0,required:!0,fieldName:e.rateLimit?.fields?.key||`key`},count:{type:`number`,required:!0,fieldName:e.rateLimit?.fields?.count||`count`},lastRequest:{type:`number`,bigint:!0,required:!0,fieldName:e.rateLimit?.fields?.lastRequest||`lastRequest`,defaultValue:()=>Date.now()}}}},{user:i,session:a,account:o,verification:s,...c}=t,l={verification:{modelName:e.verification?.modelName||`verification`,indexes:s?.indexes,fields:{identifier:{type:`string`,required:!0,fieldName:e.verification?.fields?.identifier||`identifier`,index:!0},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:!0,defaultValue:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,required:!0,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.updatedAt||`updatedAt`},...s?.fields,...e.verification?.additionalFields},order:4}},u={session:{modelName:e.session?.modelName||`session`,indexes:a?.indexes,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`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.session?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},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:`user`,field:`id`,onDelete:`cascade`},required:!0,index:!0},...a?.fields,...e.session?.additionalFields},order:2}};return{user:{modelName:e.user?.modelName||`user`,indexes:i?.indexes,fields:{name:{type:`string`,required:!0,fieldName:e.user?.fields?.name||`name`,sortable:!0},email:{type:`string`,unique:!0,required:!0,fieldName:e.user?.fields?.email||`email`,sortable:!0},emailVerified:{type:`boolean`,defaultValue:!1,required:!0,fieldName:e.user?.fields?.emailVerified||`emailVerified`,input:!1},image:{type:`string`,required:!1,fieldName:e.user?.fields?.image||`image`},createdAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.updatedAt||`updatedAt`},...i?.fields,...e.user?.additionalFields},order:1},...!e.secondaryStorage||e.session?.storeSessionInDatabase?u:{},account:{modelName:e.account?.modelName||`account`,indexes:o?.indexes,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:`user`,field:`id`,onDelete:`cascade`},required:!0,fieldName:e.account?.fields?.userId||`userId`,index:!0},accessToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.accessToken||`accessToken`},refreshToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshToken||`refreshToken`},idToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.idToken||`idToken`},accessTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||`accessTokenExpiresAt`},refreshTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshTokenExpiresAt||`refreshTokenExpiresAt`},scope:{type:`string`,required:!1,fieldName:e.account?.fields?.scope||`scope`},password:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.password||`password`},createdAt:{type:`date`,required:!0,fieldName:e.account?.fields?.createdAt||`createdAt`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.account?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},...o?.fields,...e.account?.additionalFields},order:3},...!e.secondaryStorage||e.verification?.storeInDatabase?l:{},...c,...n?r:{}}};function m(e){let t=ie(e);return{indexesByTable:ne(Object.values(t).filter(e=>!(`disableMigrations`in e)||!e.disableMigrations).map(e=>({fields:e.fields,indexes:`indexes`in e?e.indexes:void 0,tableName:e.modelName}))),tables:t}}const ae=e=>m(e).tables,h=Object.create(null),g=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?h:globalThis),_=new Proxy(h,{get(e,t){return g()[t]??h[t]},has(e,t){return t in g()||t in h},set(e,t,n){let r=g(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=g(!0);return delete n[t],!0},ownKeys(){let e=g(!0);return Object.keys(e)}});function oe(e){return e?e!==`false`:!1}const v=_.NODE_ENV??``,se=v===`production`,ce=()=>v===`dev`||v===`development`,le=()=>v===`test`||oe(_.TEST);function y(e,t){return typeof process<`u`&&process.env?process.env[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}function ue(e,t=!0){let n=y(e);return n?n!==`0`&&n.toLowerCase()!==`false`&&n!==``:t}const de=Object.freeze({get BETTER_AUTH_SECRET(){return y(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return y(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return y(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return y(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return y(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return y(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return y(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}}),b={eterm:4,cons25:4,console:4,cygwin:4,dtterm:4,gnome:4,hurd:4,jfbterm:4,konsole:4,kterm:4,mlterm:4,mosh:24,putty:4,st:4,"rxvt-unicode-24bit":24,terminator:24,"xterm-kitty":24},fe=new Map(Object.entries({APPVEYOR:8,BUILDKITE:8,CIRCLECI:24,DRONE:8,GITEA_ACTIONS:24,GITHUB_ACTIONS:24,GITLAB_CI:8,TRAVIS:8})),pe=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];function x(){if(y(`FORCE_COLOR`)!==void 0)switch(y(`FORCE_COLOR`)){case``:case`1`:case`true`:return 4;case`2`:return 8;case`3`:return 24;default:return 1}if(y(`NODE_DISABLE_COLORS`)!==void 0&&y(`NODE_DISABLE_COLORS`)!==``||y(`NO_COLOR`)!==void 0&&y(`NO_COLOR`)!==``||y(`TERM`)===`dumb`)return 1;if(y(`TMUX`))return 24;if(`TF_BUILD`in _&&`AGENT_NAME`in _)return 4;if(`CI`in _){for(let{0:e,1:t}of fe)if(e in _)return t;return y(`CI_NAME`)===`codeship`?8:1}if(`TEAMCITY_VERSION`in _)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(y(`TEAMCITY_VERSION`))===null?1:4;switch(y(`TERM_PROGRAM`)){case`iTerm.app`:return!y(`TERM_PROGRAM_VERSION`)||/^[0-2]\./.exec(y(`TERM_PROGRAM_VERSION`))!==null?8:24;case`HyperTerm`:case`MacTerm`:return 24;case`Apple_Terminal`:return 8}if(y(`COLORTERM`)===`truecolor`||y(`COLORTERM`)===`24bit`)return 24;if(y(`TERM`)){if(/truecolor/.exec(y(`TERM`))!==null)return 24;if(/^xterm-256/.exec(y(`TERM`))!==null)return 8;let e=y(`TERM`).toLowerCase();if(b[e])return b[e];if(pe.some(t=>t.exec(e)!==null))return 4}return y(`COLORTERM`)?4:1}const S={reset:`\x1B[0m`,bright:`\x1B[1m`,dim:`\x1B[2m`,undim:`\x1B[22m`,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`}},C=[`debug`,`info`,`success`,`warn`,`error`];function w(e,t){return C.indexOf(t)>=C.indexOf(e)}const me={info:S.fg.blue,success:S.fg.green,warn:S.fg.yellow,error:S.fg.red,debug:S.fg.magenta},he=(e,t,n)=>{let r=(/* @__PURE__ */ new Date()).toISOString();return n?`${S.dim}${r}${S.reset} ${me[e]}${e.toUpperCase()}${S.reset} ${S.bright}[Better Auth]:${S.reset} ${t}`:`${r} ${e.toUpperCase()} [Better Auth]: ${t}`},T=e=>{let t=e?.disabled!==!0,n=e?.level??`warn`,r=e?.disableColors===void 0?x()!==1:!e.disableColors,i=(i,a,o=[])=>{if(!t||!w(n,i))return;let s=he(i,a,r);!e||typeof e.log!=`function`?i===`error`?console.error(s,...o):i===`warn`?console.warn(s,...o):console.log(s,...o):e.log(i===`success`?`info`:i,a,...o)};return{...Object.fromEntries(C.map(e=>[e,(...[t,...n])=>i(e,t,n)])),get level(){return n}}},ge=T(),E=()=>{let e=o()?.context.logger;return e&&e!==D?e:ge},D={debug:(...e)=>E().debug(...e),info:(...e)=>E().info(...e),success:(...e)=>E().success(...e),warn:(...e)=>E().warn(...e),error:(...e)=>E().error(...e),get level(){return E().level}};function O(e){switch(e){case`a-z`:return`abcdefghijklmnopqrstuvwxyz`;case`A-Z`:return`ABCDEFGHIJKLMNOPQRSTUVWXYZ`;case`0-9`:return`0123456789`;case`-_`:return`-_`;default:throw Error(`Unsupported alphabet: ${e}`)}}function k(...e){let t=e.map(O).join(``);if(t.length===0)throw Error(`No valid characters provided for random string generation.`);let n=t.length;return(e,...r)=>{if(e<=0)throw Error(`Length must be a positive integer.`);let i=t,a=n;r.length>0&&(i=r.map(O).join(``),a=i.length);let o=Math.floor(256/a)*a,s=new Uint8Array(e*2),c=s.length,l=``,u=c,d;for(;l.length<e;)u>=c&&(crypto.getRandomValues(s),u=0),d=s[u++],d<o&&(l+=i[d%a]);return l}}function A(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const j=e=>e?`"${e}" `:``;function M(e,t=``){if(typeof e!=`number`)throw TypeError(j(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(j(t)+`expected integer >= 0, got `+e);return e}function N(e,t,n=``){if(A(e)&&(t===void 0||e.length===t))return e;t!==void 0&&M(t,`length`);let r=A(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=j(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function _e(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(M(e.outputLen),M(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}const ve=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},P=(e,t)=>{ve(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function ye(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function be(e,t){N(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function F(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function xe(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Se(e,t){return e<<32-t|e>>>t}const I=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Ce=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function we(e){if(N(e),I)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Ce[e[n]];return t}function L(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Te(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(I)try{return Uint8Array.fromHex(e)}catch(e){throw e instanceof SyntaxError?RangeError(e.message):e}let t=e.length,n=t/2;if(t%2)throw RangeError(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=L(e.charCodeAt(i)),a=L(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw RangeError(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Ee(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{F(t)}}function De(e,t,n=`opts`){return P(e,`defaults`),t!==void 0&&P(t,n),Object.assign(Object.create(null),e,t)}function Oe(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=De({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const ke=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Ae(e){return typeof e==`string`?new TextEncoder().encode(e):!ArrayBuffer.isView(e)||e.buffer instanceof ArrayBuffer?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function R(e){return typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}function z(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function B(e,t,n){let r=``,i=0,a=0;for(let n of e)for(i=i<<8|n,a+=8;a>=6;)a-=6,r+=t[i>>a&63];if(a>0&&(r+=t[i<<6-a&63]),n){let e=(4-r.length%4)%4;r+=`=`.repeat(e)}return r}function V(e,t){let n=/* @__PURE__ */ new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);let r=[],i=0,a=0;for(let t of e){if(t===`=`)break;let e=n.get(t);if(e===void 0)throw Error(`Invalid Base64 character: ${t}`);i=i<<6|e,a+=6,a>=8&&(a-=8,r.push(i>>a&255))}return Uint8Array.from(r)}const je={encode(e,t={}){let n=z(!1);return B(R(e),n,t.padding??!0)},decode(e){typeof e!=`string`&&(e=new TextDecoder().decode(e));let t=z(e.includes(`-`)||e.includes(`_`));return V(e,t)}},H={encode(e,t={}){let n=z(!0);return B(R(e),n,t.padding??!0)},decode(e){return V(e,z(e.includes(`-`)||e.includes(`_`)))}},Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;function U(e){if(typeof e==`string`&&Me.test(e)){let t=new Date(e);if(!isNaN(t.getTime()))return t}return e}function W(e){if(e==null)return e;if(typeof e==`string`)return U(e);if(e instanceof Date)return e;if(Array.isArray(e))return e.map(W);if(typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=W(e[n]);return t}return e}function Ne(e){try{return typeof e==`string`?JSON.parse(e,(e,t)=>U(t)):e==null?null:W(e)}catch(e){return D.error(`Error parsing JSON`,{error:e}),null}}const G=e=>Te(e),K={encode:e=>{let t=R(e);if(t.byteLength===0)return``;let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n},decode:e=>e?typeof e==`string`?new TextDecoder().decode(G(e)):new TextDecoder().decode(e):``,toBytes:G},Pe=`db.collection.name`,Fe=`db.operation.name`,q=`http.response.status_code`,Ie=`http.route`,Le=`better_auth.operation_id`,Re=`better_auth.hook.type`,ze=`better_auth.context`;function Be(){let e={end(){},setAttribute(e,t){},setStatus(e){},recordException(e){},updateName(t){return e}};return e}function Ve(e){function t(t,...n){let r=n[n.length-1];return r(e)}return{startActiveSpan:t}}function He(){let e=Ve(Be());return{getTracer(t,n){return e},getActiveSpan(){}}}function Ue(){return{SpanStatusCode:{UNSET:0,OK:1,ERROR:2},trace:He()}}const We=Ue();function Ge(e,t,n){return n()}let Ke,J;async function qe(){try{J=await import(`./esm-CdWTLqG7.mjs`)}catch{}}function Y(){return Ke||=qe(),J??We}function Je(e){if(typeof e==`object`&&e&&`name`in e&&e.name===`APIError`&&`statusCode`in e){let t=e.statusCode;return t>=300&&t<400}return!1}function X(e,t){let{SpanStatusCode:n}=Y();Je(t)?(e.setAttribute(q,t.statusCode),e.setStatus({code:n.OK})):(e.recordException(t),e.setStatus({code:n.ERROR,message:String(t?.message??t)})),e.end()}function Ye(e,t,n){let{trace:r}=Y();return r.getTracer(`better-auth`,`1.7.12`).startActiveSpan(e,{attributes:t},e=>{try{let t=n();return t instanceof Promise?t.then(t=>(e.end(),t)).catch(t=>{throw X(e,t),t}):(e.end(),t)}catch(t){throw X(e,t),t}})}function Xe(e){return e.experimental?.instrumentation?.enabled===!1?Ge:Ye}const Z=e=>k(`a-z`,`A-Z`,`0-9`)(e||32),Q=({usePlural:t,schema:n})=>r=>{let i=e=>n[e]?e:Object.entries(n).find(([t,n])=>n.modelName===e)?.[0];if(t&&r.charAt(r.length-1)===`s`){let e=i(r.slice(0,-1));if(e)return e}let a=i(r);if(!a)throw new e(`Model "${r}" not found in schema`);return a};let $=!1;function Ze(e,t){let n=t.advanced?.database?.generateId;if(n===`serial`&&!$&&($=!0,D.warn('Single-use checks (such as SAML assertion IDs, DPoP proofs, and private_key_jwt assertions) need string ids and are not enforced with `advanced.database.generateId: "serial"`.')),n!==`uuid`)return H.encode(e,{padding:!1});let r=e.slice(0,16);r[6]=r[6]&15|80,r[8]=r[8]&63|128;let i=K.encode(r);return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}const Qe=({usePlural:e,schema:t,disableIdGeneration:n,options:r,customIdGenerator:i,supportsUUIDs:a})=>{let o=Q({usePlural:e,schema:t});return({customModelName:e,forceAllowId:t})=>{let s=r.advanced?.database?.generateId===`serial`,c=r.advanced?.database?.generateId===`uuid`,l=n||s&&!t?!1:!c||!a,u=o(e??`id`);return{type:s?`number`:`string`,required:!!l,...l?{defaultValue(){if(n)return;let e=r.advanced?.database?.generateId;if(e!==!1&&e!==`serial`)return typeof e==`function`?e({model:u}):e===`uuid`?crypto.randomUUID():i?i({model:u}):Z()}}:{},transform:{input:e=>{if(e){if(s){let t=Number(e);return isNaN(t)?void 0:t}if(c){if(l&&!t)return e;if(n)return;if(t&&typeof e==`string`){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))return e;{let e=(/* @__PURE__ */ Error()).stack?.split(`
1
+ import{N as e}from"./schemas-lRZfTY17.mjs";const t=Symbol.for(`better-auth:global`);let n=null;const r={},i=`1.7.12`;function a(){return globalThis[t]||(globalThis[t]={version:i,epoch:1,context:r},n=globalThis[t]),n=globalThis[t],n.version!==i&&(n.version=i,n.epoch++),globalThis[t]}function o(){return a().context.endpointContextAsyncStorage?.getStore()}function s(){return a().version}function c(e){return e.toLowerCase()}function l(e){return new TextEncoder().encode(e).length}function u(e,t){let n=``,r=0;for(let i of e){let e=l(i);if(r+e>t)break;n+=i,r+=e}return n}function d(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function f(t,n){if(n.name!==void 0){if(n.name.trim().length===0)throw new e(`Database index names must contain at least one visible character.`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n.name))throw new e(`Database index names must start with a letter or underscore and contain only letters, numbers, and underscores.`);if(l(n.name)>63)throw new e(`Database index names must be at most 63 UTF-8 bytes.`);return n.name}let r=n.unique?`uidx`:`idx`,i=`${t}_${n.fields.join(`_`)}_${r}`;if(l(i)<=63)return i;let a=`_${d(i)}_${r}`;return`${u(i.slice(0,-r.length-1),63-l(a))}${a}`}function p(e,t,n){return f(e,{fields:[t],unique:n})}function ee({fields:t,indexes:n,tableName:r}){let i=(n??[]).map(n=>{if(n.fields.length===0)throw new e(`Index on table "${r}" must include at least one field.`);if(n.fields.length>16)throw new e(`Index on table "${r}" can include at most 16 fields so it works across supported databases.`);if(new Set(n.fields).size!==n.fields.length)throw new e(`Index on table "${r}" contains the same field more than once.`);if(n.unique&&n.fields.some(e=>t[e]?.required===!1))throw new e(`Unique index on table "${r}" can only include required fields so its behavior is consistent across databases.`);let i=n.fields.find(e=>{let n=t[e]?.type;return n===`json`||n===`string[]`||n===`number[]`});if(i)throw new e(`Index on table "${r}" references field "${i}", whose type is not portably indexable.`);let a=n=>{let i=t[n];if(!i)throw new e(`Index on table "${r}" references unknown field "${n}".`);return i.fieldName||n},[o,...s]=n.fields,l=[a(o),...s.map(a)];if(new Set(l.map(c)).size!==l.length)throw new e(`Index on table "${r}" resolves more than one field to the same database column.`);return{columns:l,name:f(r,{...n,fields:l}),unique:n.unique}}),a=/* @__PURE__ */ new Map,o=[];for(let t of i){let n=JSON.stringify([t.columns,t.unique??!1]),i=c(t.name),s=a.get(i);if(s&&s!==n)throw new e(`Database index name "${t.name}" identifies more than one index on table "${r}".`);s||(a.set(i,n),o.push(t))}return o}function te({columnName:e,dialect:t,fields:n,indexes:r}){let i=new Map(Object.entries(n).map(([e,t])=>[t.fieldName||e,t])),a=r.filter(t=>t.columns.includes(e));if(a.length===0)return;let o=t===`mysql`?3072:1700,s=t===`mysql`?4:1,c=t===`mysql`?191:255;return a.reduce((e,t)=>{let n=t.columns.filter(e=>{let t=i.get(e)?.type;return t===`string`||Array.isArray(t)}).length;if(n===0)return e;let r=(t.columns.length-n)*16,a=Math.floor(Math.max(1,o-r)/s/n);return Math.min(e,a)},c)}function ne(t){let n=/* @__PURE__ */ new Map;for(let r of t){let t=n.get(r.tableName);if(t){if(t.indexes.length>0||(r.indexes?.length??0)>0)throw new e(`Database schema resolves more than one indexed logical table to "${r.tableName}". Define table-level indexes through one logical schema key instead of aliasing multiple keys to the same database table.`);Object.assign(t.fields,r.fields);continue}let i={fields:{},indexes:[],tableName:r.tableName};Object.assign(i.fields,r.fields),i.indexes.push(...r.indexes??[]),n.set(r.tableName,i)}let r=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,a=new Map([...n.keys()].map(e=>[c(e),e])),o=/* @__PURE__ */ new Map;for(let t of n.values())for(let[n,r]of Object.entries(t.fields)){if(!r.index&&!r.unique)continue;let i=p(t.tableName,r.fieldName||n,r.unique??!1),s=c(i);if(a.has(s))throw new e(`Database index name "${i}" conflicts with a table name. Index and table names must be unique across the schema.`);let l=o.get(s);if(l)throw new e(`Database field-level index name "${i}" is used by both table "${l}" and table "${t.tableName}".`);o.set(s,t.tableName)}for(let t of n.values()){let n=ee(t);r.set(t.tableName,[...n]);for(let r of n){let n=c(r.name);if(a.has(n))throw new e(`Database index name "${r.name}" conflicts with a table name. Index and table names must be unique across the schema.`);let s=o.get(n);if(s)throw new e(`Database index name "${r.name}" is already reserved by field-level index metadata on table "${s}". Remove the duplicate table-level index or give it a distinct name.`);let l=i.get(n);if(l&&l!==t.tableName)throw new e(`Database index name "${r.name}" is used by both table "${l}" and table "${t.tableName}". Index names must be unique across the schema.`);i.set(n,t.tableName)}}return r}function re(...e){let t=[],n=/* @__PURE__ */ new Set;for(let r of e.flatMap(e=>e??[])){let e=JSON.stringify([r.name??null,r.fields,r.unique??!1]);n.has(e)||(n.add(e),t.push(r))}return t}const ie=e=>{let t=(e.plugins??[]).reduce((e,t)=>{let n=t.schema;if(!n)return e;for(let[t,r]of Object.entries(n))e[t]={fields:{...e[t]?.fields,...r.fields},indexes:re(e[t]?.indexes,r.indexes),modelName:r.modelName||t,disableMigrations:r.disableMigration??e[t]?.disableMigrations};return e},{}),n=e.rateLimit?.storage===`database`,r={rateLimit:{modelName:e.rateLimit?.modelName||`rateLimit`,fields:{key:{type:`string`,unique:!0,required:!0,fieldName:e.rateLimit?.fields?.key||`key`},count:{type:`number`,required:!0,fieldName:e.rateLimit?.fields?.count||`count`},lastRequest:{type:`number`,bigint:!0,required:!0,fieldName:e.rateLimit?.fields?.lastRequest||`lastRequest`,defaultValue:()=>Date.now()}}}},{user:i,session:a,account:o,verification:s,...c}=t,l={verification:{modelName:e.verification?.modelName||`verification`,indexes:s?.indexes,fields:{identifier:{type:`string`,required:!0,fieldName:e.verification?.fields?.identifier||`identifier`,index:!0},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:!0,defaultValue:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,required:!0,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,fieldName:e.verification?.fields?.updatedAt||`updatedAt`},...s?.fields,...e.verification?.additionalFields},order:4}},u={session:{modelName:e.session?.modelName||`session`,indexes:a?.indexes,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`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.session?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},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:`user`,field:`id`,onDelete:`cascade`},required:!0,index:!0},...a?.fields,...e.session?.additionalFields},order:2}};return{user:{modelName:e.user?.modelName||`user`,indexes:i?.indexes,fields:{name:{type:`string`,required:!0,fieldName:e.user?.fields?.name||`name`,sortable:!0},email:{type:`string`,unique:!0,required:!0,fieldName:e.user?.fields?.email||`email`,sortable:!0},emailVerified:{type:`boolean`,defaultValue:!1,required:!0,fieldName:e.user?.fields?.emailVerified||`emailVerified`,input:!1},image:{type:`string`,required:!1,fieldName:e.user?.fields?.image||`image`},createdAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,defaultValue:()=>/* @__PURE__ */ new Date,onUpdate:()=>/* @__PURE__ */ new Date,required:!0,fieldName:e.user?.fields?.updatedAt||`updatedAt`},...i?.fields,...e.user?.additionalFields},order:1},...!e.secondaryStorage||e.session?.storeSessionInDatabase?u:{},account:{modelName:e.account?.modelName||`account`,indexes:o?.indexes,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:`user`,field:`id`,onDelete:`cascade`},required:!0,fieldName:e.account?.fields?.userId||`userId`,index:!0},accessToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.accessToken||`accessToken`},refreshToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshToken||`refreshToken`},idToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.idToken||`idToken`},accessTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||`accessTokenExpiresAt`},refreshTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshTokenExpiresAt||`refreshTokenExpiresAt`},scope:{type:`string`,required:!1,fieldName:e.account?.fields?.scope||`scope`},password:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.password||`password`},createdAt:{type:`date`,required:!0,fieldName:e.account?.fields?.createdAt||`createdAt`,defaultValue:()=>/* @__PURE__ */ new Date},updatedAt:{type:`date`,required:!0,fieldName:e.account?.fields?.updatedAt||`updatedAt`,onUpdate:()=>/* @__PURE__ */ new Date},...o?.fields,...e.account?.additionalFields},order:3},...!e.secondaryStorage||e.verification?.storeInDatabase?l:{},...c,...n?r:{}}};function m(e){let t=ie(e);return{indexesByTable:ne(Object.values(t).filter(e=>!(`disableMigrations`in e)||!e.disableMigrations).map(e=>({fields:e.fields,indexes:`indexes`in e?e.indexes:void 0,tableName:e.modelName}))),tables:t}}const ae=e=>m(e).tables,h=Object.create(null),g=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?h:globalThis),_=new Proxy(h,{get(e,t){return g()[t]??h[t]},has(e,t){return t in g()||t in h},set(e,t,n){let r=g(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=g(!0);return delete n[t],!0},ownKeys(){let e=g(!0);return Object.keys(e)}});function oe(e){return e?e!==`false`:!1}const v=_.NODE_ENV??``,se=v===`production`,ce=()=>v===`dev`||v===`development`,le=()=>v===`test`||oe(_.TEST);function y(e,t){return typeof process<`u`&&process.env?process.env[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}function ue(e,t=!0){let n=y(e);return n?n!==`0`&&n.toLowerCase()!==`false`&&n!==``:t}const de=Object.freeze({get BETTER_AUTH_SECRET(){return y(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return y(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return y(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return y(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return y(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return y(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return y(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}}),b={eterm:4,cons25:4,console:4,cygwin:4,dtterm:4,gnome:4,hurd:4,jfbterm:4,konsole:4,kterm:4,mlterm:4,mosh:24,putty:4,st:4,"rxvt-unicode-24bit":24,terminator:24,"xterm-kitty":24},fe=new Map(Object.entries({APPVEYOR:8,BUILDKITE:8,CIRCLECI:24,DRONE:8,GITEA_ACTIONS:24,GITHUB_ACTIONS:24,GITLAB_CI:8,TRAVIS:8})),pe=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];function x(){if(y(`FORCE_COLOR`)!==void 0)switch(y(`FORCE_COLOR`)){case``:case`1`:case`true`:return 4;case`2`:return 8;case`3`:return 24;default:return 1}if(y(`NODE_DISABLE_COLORS`)!==void 0&&y(`NODE_DISABLE_COLORS`)!==``||y(`NO_COLOR`)!==void 0&&y(`NO_COLOR`)!==``||y(`TERM`)===`dumb`)return 1;if(y(`TMUX`))return 24;if(`TF_BUILD`in _&&`AGENT_NAME`in _)return 4;if(`CI`in _){for(let{0:e,1:t}of fe)if(e in _)return t;return y(`CI_NAME`)===`codeship`?8:1}if(`TEAMCITY_VERSION`in _)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(y(`TEAMCITY_VERSION`))===null?1:4;switch(y(`TERM_PROGRAM`)){case`iTerm.app`:return!y(`TERM_PROGRAM_VERSION`)||/^[0-2]\./.exec(y(`TERM_PROGRAM_VERSION`))!==null?8:24;case`HyperTerm`:case`MacTerm`:return 24;case`Apple_Terminal`:return 8}if(y(`COLORTERM`)===`truecolor`||y(`COLORTERM`)===`24bit`)return 24;if(y(`TERM`)){if(/truecolor/.exec(y(`TERM`))!==null)return 24;if(/^xterm-256/.exec(y(`TERM`))!==null)return 8;let e=y(`TERM`).toLowerCase();if(b[e])return b[e];if(pe.some(t=>t.exec(e)!==null))return 4}return y(`COLORTERM`)?4:1}const S={reset:`\x1B[0m`,bright:`\x1B[1m`,dim:`\x1B[2m`,undim:`\x1B[22m`,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`}},C=[`debug`,`info`,`success`,`warn`,`error`];function w(e,t){return C.indexOf(t)>=C.indexOf(e)}const me={info:S.fg.blue,success:S.fg.green,warn:S.fg.yellow,error:S.fg.red,debug:S.fg.magenta},he=(e,t,n)=>{let r=(/* @__PURE__ */ new Date()).toISOString();return n?`${S.dim}${r}${S.reset} ${me[e]}${e.toUpperCase()}${S.reset} ${S.bright}[Better Auth]:${S.reset} ${t}`:`${r} ${e.toUpperCase()} [Better Auth]: ${t}`},T=e=>{let t=e?.disabled!==!0,n=e?.level??`warn`,r=e?.disableColors===void 0?x()!==1:!e.disableColors,i=(i,a,o=[])=>{if(!t||!w(n,i))return;let s=he(i,a,r);!e||typeof e.log!=`function`?i===`error`?console.error(s,...o):i===`warn`?console.warn(s,...o):console.log(s,...o):e.log(i===`success`?`info`:i,a,...o)};return{...Object.fromEntries(C.map(e=>[e,(...[t,...n])=>i(e,t,n)])),get level(){return n}}},ge=T(),E=()=>{let e=o()?.context.logger;return e&&e!==D?e:ge},D={debug:(...e)=>E().debug(...e),info:(...e)=>E().info(...e),success:(...e)=>E().success(...e),warn:(...e)=>E().warn(...e),error:(...e)=>E().error(...e),get level(){return E().level}};function O(e){switch(e){case`a-z`:return`abcdefghijklmnopqrstuvwxyz`;case`A-Z`:return`ABCDEFGHIJKLMNOPQRSTUVWXYZ`;case`0-9`:return`0123456789`;case`-_`:return`-_`;default:throw Error(`Unsupported alphabet: ${e}`)}}function k(...e){let t=e.map(O).join(``);if(t.length===0)throw Error(`No valid characters provided for random string generation.`);let n=t.length;return(e,...r)=>{if(e<=0)throw Error(`Length must be a positive integer.`);let i=t,a=n;r.length>0&&(i=r.map(O).join(``),a=i.length);let o=Math.floor(256/a)*a,s=new Uint8Array(e*2),c=s.length,l=``,u=c,d;for(;l.length<e;)u>=c&&(crypto.getRandomValues(s),u=0),d=s[u++],d<o&&(l+=i[d%a]);return l}}function A(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}const j=e=>e?`"${e}" `:``;function M(e,t=``){if(typeof e!=`number`)throw TypeError(j(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(j(t)+`expected integer >= 0, got `+e);return e}function N(e,t,n=``){if(A(e)&&(t===void 0||e.length===t))return e;t!==void 0&&M(t,`length`);let r=A(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=j(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function _e(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(M(e.outputLen),M(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}const ve=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},P=(e,t)=>{ve(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function ye(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function be(e,t){N(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function F(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function xe(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Se(e,t){return e<<32-t|e>>>t}const I=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Ce=/* @__PURE__ */ Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function we(e){if(N(e),I)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Ce[e[n]];return t}function L(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Te(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(I)try{return Uint8Array.fromHex(e)}catch(e){throw e instanceof SyntaxError?RangeError(e.message):e}let t=e.length,n=t/2;if(t%2)throw RangeError(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=L(e.charCodeAt(i)),a=L(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw RangeError(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function Ee(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{F(t)}}function De(e,t,n=`opts`){return P(e,`defaults`),t!==void 0&&P(t,n),Object.assign(Object.create(null),e,t)}function Oe(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=De({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}const ke=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Ae(e){return typeof e==`string`?new TextEncoder().encode(e):!ArrayBuffer.isView(e)||e.buffer instanceof ArrayBuffer?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function R(e){return typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}function z(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function B(e,t,n){let r=``,i=0,a=0;for(let n of e)for(i=i<<8|n,a+=8;a>=6;)a-=6,r+=t[i>>a&63];if(a>0&&(r+=t[i<<6-a&63]),n){let e=(4-r.length%4)%4;r+=`=`.repeat(e)}return r}function V(e,t){let n=/* @__PURE__ */ new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);let r=[],i=0,a=0;for(let t of e){if(t===`=`)break;let e=n.get(t);if(e===void 0)throw Error(`Invalid Base64 character: ${t}`);i=i<<6|e,a+=6,a>=8&&(a-=8,r.push(i>>a&255))}return Uint8Array.from(r)}const je={encode(e,t={}){let n=z(!1);return B(R(e),n,t.padding??!0)},decode(e){typeof e!=`string`&&(e=new TextDecoder().decode(e));let t=z(e.includes(`-`)||e.includes(`_`));return V(e,t)}},H={encode(e,t={}){let n=z(!0);return B(R(e),n,t.padding??!0)},decode(e){return V(e,z(e.includes(`-`)||e.includes(`_`)))}},Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;function U(e){if(typeof e==`string`&&Me.test(e)){let t=new Date(e);if(!isNaN(t.getTime()))return t}return e}function W(e){if(e==null)return e;if(typeof e==`string`)return U(e);if(e instanceof Date)return e;if(Array.isArray(e))return e.map(W);if(typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=W(e[n]);return t}return e}function Ne(e){try{return typeof e==`string`?JSON.parse(e,(e,t)=>U(t)):e==null?null:W(e)}catch(e){return D.error(`Error parsing JSON`,{error:e}),null}}const G=e=>Te(e),K={encode:e=>{let t=R(e);if(t.byteLength===0)return``;let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n},decode:e=>e?typeof e==`string`?new TextDecoder().decode(G(e)):new TextDecoder().decode(e):``,toBytes:G},Pe=`db.collection.name`,Fe=`db.operation.name`,q=`http.response.status_code`,Ie=`http.route`,Le=`better_auth.operation_id`,Re=`better_auth.hook.type`,ze=`better_auth.context`;function Be(){let e={end(){},setAttribute(e,t){},setStatus(e){},recordException(e){},updateName(t){return e}};return e}function Ve(e){function t(t,...n){let r=n[n.length-1];return r(e)}return{startActiveSpan:t}}function He(){let e=Ve(Be());return{getTracer(t,n){return e},getActiveSpan(){}}}function Ue(){return{SpanStatusCode:{UNSET:0,OK:1,ERROR:2},trace:He()}}const We=Ue();function Ge(e,t,n){return n()}let Ke,J;async function qe(){try{J=await import(`./esm-C4unvuYB.mjs`)}catch{}}function Y(){return Ke||=qe(),J??We}function Je(e){if(typeof e==`object`&&e&&`name`in e&&e.name===`APIError`&&`statusCode`in e){let t=e.statusCode;return t>=300&&t<400}return!1}function X(e,t){let{SpanStatusCode:n}=Y();Je(t)?(e.setAttribute(q,t.statusCode),e.setStatus({code:n.OK})):(e.recordException(t),e.setStatus({code:n.ERROR,message:String(t?.message??t)})),e.end()}function Ye(e,t,n){let{trace:r}=Y();return r.getTracer(`better-auth`,`1.7.12`).startActiveSpan(e,{attributes:t},e=>{try{let t=n();return t instanceof Promise?t.then(t=>(e.end(),t)).catch(t=>{throw X(e,t),t}):(e.end(),t)}catch(t){throw X(e,t),t}})}function Xe(e){return e.experimental?.instrumentation?.enabled===!1?Ge:Ye}const Z=e=>k(`a-z`,`A-Z`,`0-9`)(e||32),Q=({usePlural:t,schema:n})=>r=>{let i=e=>n[e]?e:Object.entries(n).find(([t,n])=>n.modelName===e)?.[0];if(t&&r.charAt(r.length-1)===`s`){let e=i(r.slice(0,-1));if(e)return e}let a=i(r);if(!a)throw new e(`Model "${r}" not found in schema`);return a};let $=!1;function Ze(e,t){let n=t.advanced?.database?.generateId;if(n===`serial`&&!$&&($=!0,D.warn('Single-use checks (such as SAML assertion IDs, DPoP proofs, and private_key_jwt assertions) need string ids and are not enforced with `advanced.database.generateId: "serial"`.')),n!==`uuid`)return H.encode(e,{padding:!1});let r=e.slice(0,16);r[6]=r[6]&15|80,r[8]=r[8]&63|128;let i=K.encode(r);return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}const Qe=({usePlural:e,schema:t,disableIdGeneration:n,options:r,customIdGenerator:i,supportsUUIDs:a})=>{let o=Q({usePlural:e,schema:t});return({customModelName:e,forceAllowId:t})=>{let s=r.advanced?.database?.generateId===`serial`,c=r.advanced?.database?.generateId===`uuid`,l=n||s&&!t?!1:!c||!a,u=o(e??`id`);return{type:s?`number`:`string`,required:!!l,...l?{defaultValue(){if(n)return;let e=r.advanced?.database?.generateId;if(e!==!1&&e!==`serial`)return typeof e==`function`?e({model:u}):e===`uuid`?crypto.randomUUID():i?i({model:u}):Z()}}:{},transform:{input:e=>{if(e){if(s){let t=Number(e);return isNaN(t)?void 0:t}if(c){if(l&&!t)return e;if(n)return;if(t&&typeof e==`string`){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))return e;{let e=(/* @__PURE__ */ Error()).stack?.split(`
2
2
  `).filter((e,t)=>t!==1).join(`
3
3
  `).replace(`Error:`,``);D.warn("[Adapter Factory] - Invalid UUID value for field `id` provided when `forceAllowId` is true. Generating a new UUID.",e)}}return a?void 0:typeof e!=`string`&&!a?crypto.randomUUID():void 0}return e}},output:e=>{if(e)return String(e)}}}}};export{k as A,ce as B,we as C,ke as D,xe as E,x as F,p as G,le as H,de as I,a as J,te as K,_ as L,T as M,D as N,Se as O,w as P,ue as R,be as S,Oe as T,ae as U,se as V,m as W,s as X,o as Y,Ae as _,Xe as a,_e as b,Fe as c,Ie as d,Le as f,H as g,je as h,Z as i,S as j,Ee as k,Re as l,Ne as m,Qe as n,ze as o,K as p,c as q,Q as r,Pe as s,Ze as t,q as u,N as v,F as w,M as x,ye as y,y as z};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{t as startDisposableIssuer}from"./src-BI6_69JM.mjs";
1
+ export{t as startDisposableIssuer}from"./src-Dp5AmEkA.mjs";
@@ -0,0 +1 @@
1
+ export{t as createKyselyAdapter,a as kyselyAdapter}from"./dist-DspAa54g.mjs";
@@ -1,4 +1,4 @@
1
- import{U as e}from"./get-id-field-DvYh1rwM.mjs";import{N as t}from"./schemas-lRZfTY17.mjs";function n(t,{usePlural:n=!1}={}){let r={};for(let i of Object.values(e(t))){let e=n?`${i.modelName}s`:i.modelName,t=r[e]??={fields:{},disableMigrations:!0};for(let[e,n]of Object.entries(i.fields))t.fields[n.fieldName||e]=n;t.disableMigrations=t.disableMigrations&&!!i.disableMigrations}return r}function r(e,t){let n=[];for(let[r,i]of Object.entries(e)){if(i.disableMigrations)continue;let e=t.find(e=>e.name===r&&(i.schema===void 0||e.schema===i.schema));if(!e){n.push({kind:`missing-table`,table:r});continue}let a=/* @__PURE__ */ new Set([i.idColumn??`id`,...Object.keys(i.fields)]);for(let t of a)e.columns.some(e=>e.name===t)||n.push({kind:`missing-column`,table:r,column:t});for(let t of e.columns)a.has(t.name)||t.nullable||t.hasDefault||n.push({kind:`unexpected-required-column`,table:r,column:t.name})}return n}const i={database:"Run `npx auth migrate` to add it.",drizzle:"Run `npx auth generate` to refresh the Drizzle schema, then apply it with your migration tool.",prisma:"Run `npx auth generate` to refresh the Prisma schema, then run `prisma migrate`."},a={database:`Drop the column, make it nullable, or give it a database default.`,drizzle:`Remove it from the Drizzle schema, make it nullable, or give it a default, then apply the change with your migration tool.`,prisma:"Remove it from the Prisma schema, make it optional, or give it a default, then run `prisma migrate`."},o={database:`Database`,drizzle:`Drizzle`,prisma:`Prisma`};function s(e,t){switch(e.kind){case`missing-table`:return`Table "${e.table}" is missing. ${i[t]}`;case`missing-column`:return`Column "${e.column}" is missing from table "${e.table}". ${i[t]}`;case`unexpected-required-column`:{let n=e.column===`issuer`?` If this column came from Better Auth 1.7.0 through 1.7.2, follow the upgrade guide before removing it: https://www.better-auth.com/docs/guides/1-7-upgrade-guide`:``;return`Column "${e.column}" on table "${e.table}" is required but Better Auth never writes it, so every insert into "${e.table}" fails. ${a[t]}${n}`}}}const c={database:`Make the listed columns nullable, give them defaults, or remove them.`,drizzle:`Make the listed columns nullable in your Drizzle schema, give them defaults, or remove them.`,prisma:`Make the listed fields optional in your Prisma schema, give them defaults, or remove them.`},l={...i,database:"Run `npx auth migrate` to add the missing tables and columns."};function u(e,t){let n=[],r=[],i=[],a=/* @__PURE__ */ new Set,s=!1;for(let t of e)switch(t.kind){case`missing-table`:n.push(t.table);break;case`missing-column`:r.push(`${t.table}.${t.column}`);break;case`unexpected-required-column`:i.push(`${t.table}.${t.column}`),a.add(t.table),s||=t.column===`issuer`}let u=[`${o[t]} schema mismatch`];n.length&&u.push(` Missing tables\n ${n.join(`, `)}`),r.length&&u.push(` Missing columns\n ${r.join(`
1
+ import{U as e}from"./get-id-field-CRbL15xV.mjs";import{N as t}from"./schemas-lRZfTY17.mjs";function n(t,{usePlural:n=!1}={}){let r={};for(let i of Object.values(e(t))){let e=n?`${i.modelName}s`:i.modelName,t=r[e]??={fields:{},disableMigrations:!0};for(let[e,n]of Object.entries(i.fields))t.fields[n.fieldName||e]=n;t.disableMigrations=t.disableMigrations&&!!i.disableMigrations}return r}function r(e,t){let n=[];for(let[r,i]of Object.entries(e)){if(i.disableMigrations)continue;let e=t.find(e=>e.name===r&&(i.schema===void 0||e.schema===i.schema));if(!e){n.push({kind:`missing-table`,table:r});continue}let a=/* @__PURE__ */ new Set([i.idColumn??`id`,...Object.keys(i.fields)]);for(let t of a)e.columns.some(e=>e.name===t)||n.push({kind:`missing-column`,table:r,column:t});for(let t of e.columns)a.has(t.name)||t.nullable||t.hasDefault||n.push({kind:`unexpected-required-column`,table:r,column:t.name})}return n}const i={database:"Run `npx auth migrate` to add it.",drizzle:"Run `npx auth generate` to refresh the Drizzle schema, then apply it with your migration tool.",prisma:"Run `npx auth generate` to refresh the Prisma schema, then run `prisma migrate`."},a={database:`Drop the column, make it nullable, or give it a database default.`,drizzle:`Remove it from the Drizzle schema, make it nullable, or give it a default, then apply the change with your migration tool.`,prisma:"Remove it from the Prisma schema, make it optional, or give it a default, then run `prisma migrate`."},o={database:`Database`,drizzle:`Drizzle`,prisma:`Prisma`};function s(e,t){switch(e.kind){case`missing-table`:return`Table "${e.table}" is missing. ${i[t]}`;case`missing-column`:return`Column "${e.column}" is missing from table "${e.table}". ${i[t]}`;case`unexpected-required-column`:{let n=e.column===`issuer`?` If this column came from Better Auth 1.7.0 through 1.7.2, follow the upgrade guide before removing it: https://www.better-auth.com/docs/guides/1-7-upgrade-guide`:``;return`Column "${e.column}" on table "${e.table}" is required but Better Auth never writes it, so every insert into "${e.table}" fails. ${a[t]}${n}`}}}const c={database:`Make the listed columns nullable, give them defaults, or remove them.`,drizzle:`Make the listed columns nullable in your Drizzle schema, give them defaults, or remove them.`,prisma:`Make the listed fields optional in your Prisma schema, give them defaults, or remove them.`},l={...i,database:"Run `npx auth migrate` to add the missing tables and columns."};function u(e,t){let n=[],r=[],i=[],a=/* @__PURE__ */ new Set,s=!1;for(let t of e)switch(t.kind){case`missing-table`:n.push(t.table);break;case`missing-column`:r.push(`${t.table}.${t.column}`);break;case`unexpected-required-column`:i.push(`${t.table}.${t.column}`),a.add(t.table),s||=t.column===`issuer`}let u=[`${o[t]} schema mismatch`];n.length&&u.push(` Missing tables\n ${n.join(`, `)}`),r.length&&u.push(` Missing columns\n ${r.join(`
2
2
  `)}`),i.length&&(u.push(` Required columns Better Auth never writes\n ${i.join(`
3
3
  `)}`),u.push(` Inserts into ${[...a].join(`, `)} will fail.`));let d=[];return i.length&&d.push(c[t]),(n.length||r.length||i.length&&t!==`database`)&&d.push(l[t]),d.length&&u.push(` help: ${d.join(`
4
4
  `)}`),s&&u.push(` note: If this column came from Better Auth 1.7.0 through 1.7.2,
@@ -1 +1 @@
1
- import{s as e}from"./sqlite-introspector-DSCAP82F-CISODKY3.mjs";var t=class{get supportsCreateIfNotExists(){return!0}get supportsMultipleConnections(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!1}get supportsOutput(){return!1}};const n=/"/g,r=/[\\'"]/g;var i=class extends e{visitOrAction(e){this.append(`or `),this.append(e.action)}getCurrentParameterPlaceholder(){return`?`}getLeftExplainOptionsWrapper(){return``}getRightExplainOptionsWrapper(){return``}getLeftIdentifierWrapper(){return`"`}getRightIdentifierWrapper(){return`"`}getAutoIncrement(){return`autoincrement`}sanitizeIdentifier(e){return e.replace(n,`""`)}sanitizeJSONPathMemberValue(e){return e.replace(r,e=>e===`\\`?`\\\\`:e===`'`?`''`:`\\"`)}visitDefaultInsertValue(e){this.append(`null`)}},a=class extends t{get supportsMultipleConnections(){return!1}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(e,t){}async releaseMigrationLock(e,t){}};export{i as n,t as r,a as t};
1
+ import{s as e}from"./sqlite-introspector-DSCAP82F-Dol_IzW4.mjs";var t=class{get supportsCreateIfNotExists(){return!0}get supportsMultipleConnections(){return!0}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!1}get supportsOutput(){return!1}};const n=/"/g,r=/[\\'"]/g;var i=class extends e{visitOrAction(e){this.append(`or `),this.append(e.action)}getCurrentParameterPlaceholder(){return`?`}getLeftExplainOptionsWrapper(){return``}getRightExplainOptionsWrapper(){return``}getLeftIdentifierWrapper(){return`"`}getRightIdentifierWrapper(){return`"`}getAutoIncrement(){return`autoincrement`}sanitizeIdentifier(e){return e.replace(n,`""`)}sanitizeJSONPathMemberValue(e){return e.replace(r,e=>e===`\\`?`\\\\`:e===`'`?`''`:`\\"`)}visitDefaultInsertValue(e){this.append(`null`)}},a=class extends t{get supportsMultipleConnections(){return!1}get supportsTransactionalDdl(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(e,t){}async releaseMigrationLock(e,t){}};export{i as n,t as r,a as t};