@gjermundgaraba/clankerauth-dev 0.26.2 → 0.27.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.
- package/dist/THIRD_PARTY_NOTICES.txt +12 -219
- package/dist/{access-CoaNEa0I.mjs → access-CGVwFSPz.mjs} +1 -1
- package/dist/{dist-Dse7wyrJ.mjs → dist-BwJIqVtn.mjs} +1 -1
- package/dist/dist-CLLAHXOK.mjs +17 -0
- package/dist/{factory-tEOeUNZI.mjs → factory-Cf28yuX6.mjs} +3 -3
- package/dist/{get-id-field-CHlYHt3y.mjs → get-id-field-DvYh1rwM.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/kysely-adapter-B9j0_OfU.mjs +1 -0
- package/dist/{organization-FxrB4RLj.mjs → organization-B_0UJJOj.mjs} +1 -1
- package/dist/{schema-check-6AE7KkNs.mjs → schema-check-DYtufmXq.mjs} +1 -1
- package/dist/{schemas-CYWNDEcx.mjs → schemas-lRZfTY17.mjs} +1 -1
- package/dist/src-dv9-ePIU.mjs +539 -0
- package/dist/web/assets/index-C-vB7TuL.css +1 -0
- package/dist/web/assets/index-C_9T06d-.js +2300 -0
- package/dist/web/index.html +2 -2
- package/package.json +4 -4
- package/dist/dist-BtO0lgmD.mjs +0 -17
- package/dist/kysely-adapter-BxenTacV.mjs +0 -1
- package/dist/src-mhYy55vF.mjs +0 -539
- package/dist/web/assets/index-kuPpbPut.js +0 -2300
- package/dist/web/assets/index-sZpVl70Z.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{B as e,M as t,O as n,a as r,d as i,k as a,n as o,o as s,r as c,s as l}from"./get-id-field-CHlYHt3y.mjs";import{C as u,N as d,S as f,_ as p,b as m,l as h,u as g,v as _,w as v}from"./schemas-CYWNDEcx.mjs";const y=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t});return({field:t,model:r})=>{if(t===`id`||t===`_id`)return`id`;let i=n(r),a=e[i]?.fields[t];if(!a){let n=Object.entries(e[i].fields).find(([e,n])=>n.fieldName===t);n&&(a=n[1],t=n[0])}if(!a)throw new d(`Field ${t} not found in model ${i}`);return t}},b=({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i})=>{let a=c({usePlural:e,schema:t}),s=y({usePlural:e,schema:t}),l=o({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i});return({model:e,field:n})=>{let r=a(e),i=s({field:n,model:r}),o=t[r].fields;o.id=l({customModelName:r});let c=o[i];if(!c)throw new d(`Field ${n} not found in model ${e}`);return c}},x=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t}),r=y({schema:e,usePlural:t});function i({model:t,field:i}){let a=n(t),o=r({model:a,field:i});return e[a]?.fields[o]?.fieldName||o}return i},S=({usePlural:e,schema:t})=>{let n=c({schema:t,usePlural:e});return r=>{let i=n(r);return t&&t[i]&&t[i].modelName!==r?e?`${t[i].modelName}s`:t[i].modelName:e?`${r}s`:r}};function C(e,t,n){return n===`update`?e===void 0&&t.onUpdate!==void 0?typeof t.onUpdate==`function`?t.onUpdate():t.onUpdate:e:n===`create`&&(e===void 0||t.required===!0&&e===null)&&t.defaultValue!==void 0?typeof t.defaultValue==`function`?t.defaultValue():t.defaultValue:e}const w=u([f(),p(),h(),g()]).nullable(),T=m(f(),v()).nullish(),E=m(f(),v()).transform(e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}),D=_({increment:m(f(),p()),set:E.optional()}),O=p().nullish();function k(e){let{adapter:t,adapterId:n}=e,r=Object.entries(e.mapKeysTransformOutput??{}).find(([,e])=>e===`id`)?.[0]??`id`;async function i(t,n,i){let a=e.mapKeysTransformInput?.id||e.getFieldName({model:n,field:`id`});if(t[a]===void 0||t[a]===null)throw new d(`Adapter "${e.adapterId}" must return the row id for atomic fallbacks.`);let o=(await e.transformOutput(t,n,[r],void 0))?.id;if(typeof o!=`string`&&typeof o!=`number`)throw new d(`Adapter "${e.adapterId}" must expose a logical string or number id through its output transform.`);let[s]=e.transformWhereClause({model:n,where:[{field:`id`,value:o}],action:i});if(!s)throw new d(`The atomic fallback id condition was transformed away.`);return s}async function a({model:e,modelKey:r,where:i}){let a=T.safeParse(await t.findOne({model:e,modelKey:r,where:i}));if(!a.success)throw new d(`Adapter "${n}" must return a row snapshot or null.`);return a.data??null}async function o(e,t,r,a){let o=await i(e,r.modelKey,a),s=r.where.some(e=>e.connector===`OR`),c=s?[o]:[...r.where,o],l=new Set(t);for(let t of l){if(t===o.field)continue;let i=w.safeParse(e[t]??null);if(i.success)c.push({field:t,value:i.data,operator:`eq`,connector:`AND`,mode:`sensitive`});else if(s&&r.where.some(e=>e.field===t))throw new d(`Adapter "${n}" must implement native atomic methods for OR predicates on structured values.`)}return c}function s(e){if(e!==0&&e!==1)throw new d(`Adapter "${n}" must return an affected row count of 0 or 1 from an atomic fallback.`);return e===1}async function c(e){let{model:n,where:r}=e,i=await a(e);if(i===null)return null;let c=await o(i,[...Object.keys(i),...r.map(({field:e})=>e)],e,`consumeOne`);return s(await t.deleteMany({model:n,modelKey:e.modelKey,where:c}))?i:null}async function l(e){let{model:r,where:i}=e,c=D.safeParse(e);if(!c.success)throw new d(`incrementOne requires finite increments and a set object for the atomic fallback.`);let{increment:l,set:u}=c.data,f=Object.entries(l),p=[...i.map(({field:e})=>e),...Object.keys(l),...Object.keys(u??{})];for(let i=0;i<5;i++){let i=await a(e);if(i===null)return null;let c={...u};for(let[e,t]of f){let r=O.safeParse(i[e]);if(!r.success)throw new d(`Adapter "${n}" must return finite numeric counter values or null for atomic increments.`);let a=r.data??0,o=a+t;if(!Number.isFinite(o)||t!==0&&o===a)throw new d(`Adapter "${n}" cannot represent the requested counter increment safely.`);c[e]=o}let l=await o(i,p,e,`incrementOne`);if(Object.entries(c).every(([e,t])=>{let n=i[e];return n instanceof Date&&t instanceof Date?n.getTime()===t.getTime():Object.is(n,t)}))return i;if(s(await t.updateMany({model:r,modelKey:e.modelKey,where:l,update:c})))return{...i,...c}}throw new d(`Adapter "${n}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:c,incrementOne:l}}let A=[],j=-1;const M=e=>t=>t(e),N=({adapter:t,config:n})=>u=>{let f=r(u),p=Math.random().toString(36).substring(2,15),m={...n,supportsBooleans:n.supportsBooleans??!0,supportsDates:n.supportsDates??!0,supportsJSON:n.supportsJSON??!1,adapterName:n.adapterName??n.adapterId,supportsNumericIds:n.supportsNumericIds??!0,supportsUUIDs:n.supportsUUIDs??!1,supportsArrays:n.supportsArrays??!1,transaction:n.transaction??!1,disableTransformInput:n.disableTransformInput??!1,disableTransformOutput:n.disableTransformOutput??!1,disableTransformJoin:n.disableTransformJoin??!1};if(u.advanced?.database?.generateId===`serial`&&m.supportsNumericIds===!1)throw new d(`[${m.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let h=e(u),g=(...e)=>{if(m.debugLogs===!0||typeof m.debugLogs==`object`){let t=a({level:`info`});if(typeof m.debugLogs==`object`&&`isRunningAdapterTests`in m.debugLogs){m.debugLogs.isRunningAdapterTests&&(e.shift(),A.push({instance:p,args:e}));return}if(typeof m.debugLogs==`object`&&m.debugLogs.logCondition&&!m.debugLogs.logCondition?.())return;if(typeof e[0]==`object`&&`method`in e[0]){let n=e.shift().method;if(typeof m.debugLogs==`object`&&(n===`create`&&!m.debugLogs.create||n===`update`&&!m.debugLogs.update||n===`updateMany`&&!m.debugLogs.updateMany||n===`findOne`&&!m.debugLogs.findOne||n===`findMany`&&!m.debugLogs.findMany||n===`delete`&&!m.debugLogs.delete||n===`deleteMany`&&!m.debugLogs.deleteMany||n===`consumeOne`&&!m.debugLogs.consumeOne||n===`incrementOne`&&!m.debugLogs.incrementOne||n===`count`&&!m.debugLogs.count))return;t.info(`[${m.adapterName}]`,...e)}else t.info(`[${m.adapterName}]`,...e)}},_=a(u.logger),v=c({usePlural:m.usePlural,schema:h}),w=y({usePlural:m.usePlural,schema:h}),T=S({usePlural:m.usePlural,schema:h}),E=x({schema:h,usePlural:m.usePlural}),D=o({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator,supportsUUIDs:m.supportsUUIDs}),O=b({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator}),N=async(e,t,n,r)=>{let i={},a=h[t].fields,o=m.mapKeysTransformInput??{},s=u.advanced?.database?.generateId===`serial`;a.id=D({customModelName:t,forceAllowId:r&&`id`in e});for(let r in a){let c=e[r],l=a[r],d=o[r]||a[r].fieldName||r;if(c===void 0&&(l.defaultValue===void 0&&!l.transform?.input&&!(n===`update`&&l.onUpdate)||n===`update`&&!l.onUpdate))continue;if(l&&l.type===`date`&&!(c instanceof Date)&&typeof c==`string`)try{c=new Date(c)}catch{_.error(`[Adapter Factory] Failed to convert string to date`,{value:c,field:r})}let f=C(c,l,n);l.transform?.input&&(f=await l.transform.input(f)),l.references?.field===`id`&&s?f=Array.isArray(f)?f.map(e=>e===null?null:Number(e)):f===null?null:Number(f):m.supportsJSON===!1&&typeof f==`object`&&l.type===`json`||m.supportsArrays===!1&&Array.isArray(f)&&(l.type===`string[]`||l.type===`number[]`)?f=JSON.stringify(f):m.supportsDates===!1&&f instanceof Date&&l.type===`date`?f=f.toISOString():m.supportsBooleans===!1&&typeof f==`boolean`&&(f=+!!f),m.customTransformInput&&(f=m.customTransformInput({data:f,action:n,field:d,fieldAttributes:l,model:T(t),schema:h,options:u})),f!==void 0&&(i[d]=f)}return i},R=async(e,t,n=[],r)=>{let a=async(e,t,n=[])=>{if(!e)return null;let r=v(t),a=m.mapKeysTransformOutput??{},o={},s=h[r].fields,c=Object.entries(a).find(([e,t])=>t===`id`)?.[0];s[c??`id`]={type:u.advanced?.database?.generateId===`serial`?`number`:`string`};for(let t in s){if(n.length&&!n.includes(t))continue;let c=s[t];if(c){let s=c.fieldName||t,l=e[Object.entries(a).find(([e,t])=>t===s)?.[0]||s];c.transform?.output&&(l=await c.transform.output(l));let d=a[t]||t;s===`id`||c.references?.field===`id`?l!=null&&(l=String(l)):m.supportsJSON===!1&&typeof l==`string`&&c.type===`json`||m.supportsArrays===!1&&typeof l==`string`&&(c.type===`string[]`||c.type===`number[]`)?l=i(l):m.supportsDates===!1&&typeof l==`string`&&c.type===`date`?l=new Date(l):m.supportsBooleans===!1&&typeof l==`number`&&c.type===`boolean`&&(l=l===1),m.customTransformOutput&&(l=m.customTransformOutput({data:l,field:d,fieldAttributes:c,select:n,model:T(r),schema:h,options:u})),o[d]=l}}return o};if(!r||Object.keys(r).length===0)return await a(e,t,n);let o=v(t),s=await a(e,o,n),c=Object.entries(r).map(([e,t])=>({modelName:e,defaultModelName:t.modelKey??v(e),joinConfig:t}));if(!e)return null;for(let{modelName:t,defaultModelName:n,joinConfig:r}of c){let i=await(async()=>u.advanced?.database?.joins&&t in e?e[t]:await V({baseModel:o,baseData:s,joinModel:t,specificJoinConfig:r}))();i??=r.relation===`one-to-one`?null:[],r.relation===`one-to-many`&&!Array.isArray(i)&&(i=[i]);let c=[];if(Array.isArray(i))for(let e of i){let t=await a(e,n,[]);c.push(t)}else{let e=await a(i,n,[]);c.push(e)}s[n]=(r.relation===`one-to-one`?c[0]:c)??null}return s},z=({model:e,where:t,action:n})=>{if(!t)return;let r=m.mapKeysTransformInput??{};return t.map(t=>{let{field:i,value:a,operator:o=`eq`,connector:s=`AND`,mode:c=`sensitive`}=t;if(o===`in`&&!Array.isArray(a))throw new d(`Value must be an array`);let l=a,f=v(e),p=w({field:i,model:e}),g=r[p]||E({field:p,model:f}),_=O({field:p,model:f}),y=u.advanced?.database?.generateId===`serial`;if((p===`id`||_.references?.field===`id`)&&y&&(l=Array.isArray(a)?a.map(Number):Number(a)),_.type===`date`&&a instanceof Date&&!m.supportsDates&&(l=a.toISOString()),_.type===`boolean`&&typeof l==`string`&&(l=l===`true`),_.type===`number`){if(typeof l==`string`&&l.trim()!==``){let e=Number(l);Number.isNaN(e)||(l=e)}else if(Array.isArray(l)){let e=l.map(e=>typeof e==`string`&&e.trim()!==``?Number(e):NaN);e.every(e=>!Number.isNaN(e))&&(l=e)}}if(_.type===`boolean`&&typeof l==`boolean`&&!m.supportsBooleans&&(l=+!!l),_.type===`json`&&typeof a==`object`&&!m.supportsJSON)try{l=JSON.stringify(a)}catch(e){throw Error(`Failed to stringify JSON value for field ${g}`,{cause:e})}return m.customTransformInput&&(l=m.customTransformInput({data:l,fieldAttributes:_,field:g,model:T(e),schema:h,options:u,action:n})),{operator:o,connector:s,field:g,value:l,mode:c}})},B=(e,t,n)=>{if(!t||Object.keys(t).length===0)return;let r={};for(let[i,a]of Object.entries(t)){if(!a)continue;let t=v(i),o=v(e),s=Object.entries(h[t].fields).filter(([e,t])=>t.references&&v(t.references.model)===o),c=!0;if(s.length||(s=Object.entries(h[o].fields).filter(([e,n])=>n.references&&v(n.references.model)===t),c=!1),!s.length)throw new d(`No foreign key found for model ${i} and base model ${e} while performing join operation.`);if(s.length>1)throw new d(`Multiple foreign keys found for model ${i} and base model ${e} while performing join operation. Only one foreign key is supported.`);let[l,f]=s[0];if(!f.references)throw new d(`No references found for foreign key ${l} on model ${i} while performing join operation.`);let p,m,g;c?(g=f.references.field,p=E({model:e,field:g}),m=E({model:i,field:l})):(g=l,p=E({model:e,field:g}),m=E({model:i,field:f.references.field})),n&&!n.includes(g)&&n.push(g);let _=m===`id`?!0:f.unique??!1,y=u.advanced?.database?.defaultFindManyLimit??100;_?y=1:typeof a==`object`&&typeof a.limit==`number`&&(y=a.limit),r[T(i)]={modelKey:i,on:{from:p,to:m},limit:y,relation:_?`one-to-one`:`one-to-many`}}return{join:r,select:n}},V=async({baseModel:e,baseData:t,joinModel:n,specificJoinConfig:r})=>{if(!t)return t;let i=r.modelKey??v(n),a=T(i),o=r.on.to,c=t[w({field:r.on.from,model:e})];if(c==null)return r.relation===`one-to-one`?null:[];let d,p=z({model:i,where:[{field:o,value:c,operator:`eq`,connector:`AND`}],action:`findOne`});try{if(r.relation===`one-to-one`)d=await f(`db findOne ${a}`,{[l]:`findOne`,[s]:a},()=>H.findOne({model:a,modelKey:i,where:p}));else{let e=r.limit??u.advanced?.database?.defaultFindManyLimit??100;d=await f(`db findMany ${a}`,{[l]:`findMany`,[s]:a},()=>H.findMany({model:a,modelKey:i,where:p,limit:e}))}}catch(e){throw _.error(`Failed to query fallback join for model ${a}:`,{where:p,limit:r.limit}),console.error(e),e}return d},H=t({options:u,schema:h,debugLog:g,getFieldName:E,getModelName:T,getDefaultModelName:v,getDefaultFieldName:w,getFieldAttributes:O,transformInput:N,transformOutput:R,transformWhereClause:z}),U=null,W=k({adapter:H,adapterId:m.adapterId,mapKeysTransformInput:m.mapKeysTransformInput,mapKeysTransformOutput:m.mapKeysTransformOutput,getFieldName:E,transformOutput:R,transformWhereClause:z}),G={transaction:async e=>(U||(m.transaction?(_.debug(`[${m.adapterName}] - Using provided transaction implementation.`),U=m.transaction):U=M(G)),U(e)),create:async({data:e,model:t,select:n,forceAllowId:r=!1})=>{j++;let i=j,a=v(t),o=T(a);if(`id`in e&&e.id!==void 0&&!r){_.warn(`[${m.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \`forceAllowId\` parameter. The id will be ignored.`);let t=(/* @__PURE__ */ Error()).stack?.split(`
|
|
1
|
+
import{F as e,M as t,U as n,a as r,c as i,j as a,m as o,n as s,r as c,s as l}from"./get-id-field-DvYh1rwM.mjs";import{C as u,N as d,S as f,_ as p,b as m,l as h,u as g,v as _,w as v}from"./schemas-lRZfTY17.mjs";const y=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t});return({field:t,model:r})=>{if(t===`id`||t===`_id`)return`id`;let i=n(r),a=e[i]?.fields[t];if(!a){let n=Object.entries(e[i].fields).find(([e,n])=>n.fieldName===t);n&&(a=n[1],t=n[0])}if(!a)throw new d(`Field ${t} not found in model ${i}`);return t}},b=({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i})=>{let a=c({usePlural:e,schema:t}),o=y({usePlural:e,schema:t}),l=s({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i});return({model:e,field:n})=>{let r=a(e),i=o({field:n,model:r}),s=t[r].fields;s.id=l({customModelName:r});let c=s[i];if(!c)throw new d(`Field ${n} not found in model ${e}`);return c}},x=({schema:e,usePlural:t})=>{let n=c({schema:e,usePlural:t}),r=y({schema:e,usePlural:t});function i({model:t,field:i}){let a=n(t),o=r({model:a,field:i});return e[a]?.fields[o]?.fieldName||o}return i},S=({usePlural:e,schema:t})=>{let n=c({schema:t,usePlural:e});return r=>{let i=n(r);return t&&t[i]&&t[i].modelName!==r?e?`${t[i].modelName}s`:t[i].modelName:e?`${r}s`:r}};function C(e,t,n){return n===`update`?e===void 0&&t.onUpdate!==void 0?typeof t.onUpdate==`function`?t.onUpdate():t.onUpdate:e:n===`create`&&(e===void 0||t.required===!0&&e===null)&&t.defaultValue!==void 0?typeof t.defaultValue==`function`?t.defaultValue():t.defaultValue:e}const w=u([f(),p(),h(),g()]).nullable(),T=m(f(),v()).nullish(),E=m(f(),v()).transform(e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}),D=_({increment:m(f(),p()),set:E.optional()}),O=p().nullish();function k(e){let{adapter:t,adapterId:n}=e,r=Object.entries(e.mapKeysTransformOutput??{}).find(([,e])=>e===`id`)?.[0]??`id`;async function i(t,n,i){let a=e.mapKeysTransformInput?.id||e.getFieldName({model:n,field:`id`});if(t[a]===void 0||t[a]===null)throw new d(`Adapter "${e.adapterId}" must return the row id for atomic fallbacks.`);let o=(await e.transformOutput(t,n,[r],void 0))?.id;if(typeof o!=`string`&&typeof o!=`number`)throw new d(`Adapter "${e.adapterId}" must expose a logical string or number id through its output transform.`);let[s]=e.transformWhereClause({model:n,where:[{field:`id`,value:o}],action:i});if(!s)throw new d(`The atomic fallback id condition was transformed away.`);return s}async function a({model:e,modelKey:r,where:i}){let a=T.safeParse(await t.findOne({model:e,modelKey:r,where:i}));if(!a.success)throw new d(`Adapter "${n}" must return a row snapshot or null.`);return a.data??null}async function o(e,t,r,a){let o=await i(e,r.modelKey,a),s=r.where.some(e=>e.connector===`OR`),c=s?[o]:[...r.where,o],l=new Set(t);for(let t of l){if(t===o.field)continue;let i=w.safeParse(e[t]??null);if(i.success)c.push({field:t,value:i.data,operator:`eq`,connector:`AND`,mode:`sensitive`});else if(s&&r.where.some(e=>e.field===t))throw new d(`Adapter "${n}" must implement native atomic methods for OR predicates on structured values.`)}return c}function s(e){if(e!==0&&e!==1)throw new d(`Adapter "${n}" must return an affected row count of 0 or 1 from an atomic fallback.`);return e===1}async function c(e){let{model:n,where:r}=e,i=await a(e);if(i===null)return null;let c=await o(i,[...Object.keys(i),...r.map(({field:e})=>e)],e,`consumeOne`);return s(await t.deleteMany({model:n,modelKey:e.modelKey,where:c}))?i:null}async function l(e){let{model:r,where:i}=e,c=D.safeParse(e);if(!c.success)throw new d(`incrementOne requires finite increments and a set object for the atomic fallback.`);let{increment:l,set:u}=c.data,f=Object.entries(l),p=[...i.map(({field:e})=>e),...Object.keys(l),...Object.keys(u??{})];for(let i=0;i<5;i++){let i=await a(e);if(i===null)return null;let c={...u};for(let[e,t]of f){let r=O.safeParse(i[e]);if(!r.success)throw new d(`Adapter "${n}" must return finite numeric counter values or null for atomic increments.`);let a=r.data??0,o=a+t;if(!Number.isFinite(o)||t!==0&&o===a)throw new d(`Adapter "${n}" cannot represent the requested counter increment safely.`);c[e]=o}let l=await o(i,p,e,`incrementOne`);if(Object.entries(c).every(([e,t])=>{let n=i[e];return n instanceof Date&&t instanceof Date?n.getTime()===t.getTime():Object.is(n,t)}))return i;if(s(await t.updateMany({model:r,modelKey:e.modelKey,where:l,update:c})))return{...i,...c}}throw new d(`Adapter "${n}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:c,incrementOne:l}}let A=[],j=-1;const M=e=>t=>t(e),N=({adapter:e,config:a})=>u=>{let f=r(u),p=Math.random().toString(36).substring(2,15),m={...a,supportsBooleans:a.supportsBooleans??!0,supportsDates:a.supportsDates??!0,supportsJSON:a.supportsJSON??!1,adapterName:a.adapterName??a.adapterId,supportsNumericIds:a.supportsNumericIds??!0,supportsUUIDs:a.supportsUUIDs??!1,supportsArrays:a.supportsArrays??!1,transaction:a.transaction??!1,disableTransformInput:a.disableTransformInput??!1,disableTransformOutput:a.disableTransformOutput??!1,disableTransformJoin:a.disableTransformJoin??!1};if(u.advanced?.database?.generateId===`serial`&&m.supportsNumericIds===!1)throw new d(`[${m.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let h=n(u),g=(...e)=>{if(m.debugLogs===!0||typeof m.debugLogs==`object`){let n=t({level:`info`});if(typeof m.debugLogs==`object`&&`isRunningAdapterTests`in m.debugLogs){m.debugLogs.isRunningAdapterTests&&(e.shift(),A.push({instance:p,args:e}));return}if(typeof m.debugLogs==`object`&&m.debugLogs.logCondition&&!m.debugLogs.logCondition?.())return;if(typeof e[0]==`object`&&`method`in e[0]){let t=e.shift().method;if(typeof m.debugLogs==`object`&&(t===`create`&&!m.debugLogs.create||t===`update`&&!m.debugLogs.update||t===`updateMany`&&!m.debugLogs.updateMany||t===`findOne`&&!m.debugLogs.findOne||t===`findMany`&&!m.debugLogs.findMany||t===`delete`&&!m.debugLogs.delete||t===`deleteMany`&&!m.debugLogs.deleteMany||t===`consumeOne`&&!m.debugLogs.consumeOne||t===`incrementOne`&&!m.debugLogs.incrementOne||t===`count`&&!m.debugLogs.count))return;n.info(`[${m.adapterName}]`,...e)}else n.info(`[${m.adapterName}]`,...e)}},_=t(u.logger),v=c({usePlural:m.usePlural,schema:h}),w=y({usePlural:m.usePlural,schema:h}),T=S({usePlural:m.usePlural,schema:h}),E=x({schema:h,usePlural:m.usePlural}),D=s({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator,supportsUUIDs:m.supportsUUIDs}),O=b({schema:h,options:u,usePlural:m.usePlural,disableIdGeneration:m.disableIdGeneration,customIdGenerator:m.customIdGenerator}),N=async(e,t,n,r)=>{let i={},a=h[t].fields,o=m.mapKeysTransformInput??{},s=u.advanced?.database?.generateId===`serial`;a.id=D({customModelName:t,forceAllowId:r&&`id`in e});for(let r in a){let c=e[r],l=a[r],d=o[r]||a[r].fieldName||r;if(c===void 0&&(l.defaultValue===void 0&&!l.transform?.input&&!(n===`update`&&l.onUpdate)||n===`update`&&!l.onUpdate))continue;if(l&&l.type===`date`&&!(c instanceof Date)&&typeof c==`string`)try{c=new Date(c)}catch{_.error(`[Adapter Factory] Failed to convert string to date`,{value:c,field:r})}let f=C(c,l,n);l.transform?.input&&(f=await l.transform.input(f)),l.references?.field===`id`&&s?f=Array.isArray(f)?f.map(e=>e===null?null:Number(e)):f===null?null:Number(f):m.supportsJSON===!1&&typeof f==`object`&&l.type===`json`||m.supportsArrays===!1&&Array.isArray(f)&&(l.type===`string[]`||l.type===`number[]`)?f=JSON.stringify(f):m.supportsDates===!1&&f instanceof Date&&l.type===`date`?f=f.toISOString():m.supportsBooleans===!1&&typeof f==`boolean`&&(f=+!!f),m.customTransformInput&&(f=m.customTransformInput({data:f,action:n,field:d,fieldAttributes:l,model:T(t),schema:h,options:u})),f!==void 0&&(i[d]=f)}return i},R=async(e,t,n=[],r)=>{let i=async(e,t,n=[])=>{if(!e)return null;let r=v(t),i=m.mapKeysTransformOutput??{},a={},s=h[r].fields,c=Object.entries(i).find(([e,t])=>t===`id`)?.[0];s[c??`id`]={type:u.advanced?.database?.generateId===`serial`?`number`:`string`};for(let t in s){if(n.length&&!n.includes(t))continue;let c=s[t];if(c){let s=c.fieldName||t,l=e[Object.entries(i).find(([e,t])=>t===s)?.[0]||s];c.transform?.output&&(l=await c.transform.output(l));let d=i[t]||t;s===`id`||c.references?.field===`id`?l!=null&&(l=String(l)):m.supportsJSON===!1&&typeof l==`string`&&c.type===`json`||m.supportsArrays===!1&&typeof l==`string`&&(c.type===`string[]`||c.type===`number[]`)?l=o(l):m.supportsDates===!1&&typeof l==`string`&&c.type===`date`?l=new Date(l):m.supportsBooleans===!1&&typeof l==`number`&&c.type===`boolean`&&(l=l===1),m.customTransformOutput&&(l=m.customTransformOutput({data:l,field:d,fieldAttributes:c,select:n,model:T(r),schema:h,options:u})),a[d]=l}}return a};if(!r||Object.keys(r).length===0)return await i(e,t,n);let a=v(t),s=await i(e,a,n),c=Object.entries(r).map(([e,t])=>({modelName:e,defaultModelName:t.modelKey??v(e),joinConfig:t}));if(!e)return null;for(let{modelName:t,defaultModelName:n,joinConfig:r}of c){let o=await(async()=>u.advanced?.database?.joins&&t in e?e[t]:await V({baseModel:a,baseData:s,joinModel:t,specificJoinConfig:r}))();o??=r.relation===`one-to-one`?null:[],r.relation===`one-to-many`&&!Array.isArray(o)&&(o=[o]);let c=[];if(Array.isArray(o))for(let e of o){let t=await i(e,n,[]);c.push(t)}else{let e=await i(o,n,[]);c.push(e)}s[n]=(r.relation===`one-to-one`?c[0]:c)??null}return s},z=({model:e,where:t,action:n})=>{if(!t)return;let r=m.mapKeysTransformInput??{};return t.map(t=>{let{field:i,value:a,operator:o=`eq`,connector:s=`AND`,mode:c=`sensitive`}=t;if(o===`in`&&!Array.isArray(a))throw new d(`Value must be an array`);let l=a,f=v(e),p=w({field:i,model:e}),g=r[p]||E({field:p,model:f}),_=O({field:p,model:f}),y=u.advanced?.database?.generateId===`serial`;if((p===`id`||_.references?.field===`id`)&&y&&(l=Array.isArray(a)?a.map(Number):Number(a)),_.type===`date`&&a instanceof Date&&!m.supportsDates&&(l=a.toISOString()),_.type===`boolean`&&typeof l==`string`&&(l=l===`true`),_.type===`number`){if(typeof l==`string`&&l.trim()!==``){let e=Number(l);Number.isNaN(e)||(l=e)}else if(Array.isArray(l)){let e=l.map(e=>typeof e==`string`&&e.trim()!==``?Number(e):NaN);e.every(e=>!Number.isNaN(e))&&(l=e)}}if(_.type===`boolean`&&typeof l==`boolean`&&!m.supportsBooleans&&(l=+!!l),_.type===`json`&&typeof a==`object`&&!m.supportsJSON)try{l=JSON.stringify(a)}catch(e){throw Error(`Failed to stringify JSON value for field ${g}`,{cause:e})}return m.customTransformInput&&(l=m.customTransformInput({data:l,fieldAttributes:_,field:g,model:T(e),schema:h,options:u,action:n})),{operator:o,connector:s,field:g,value:l,mode:c}})},B=(e,t,n)=>{if(!t||Object.keys(t).length===0)return;let r={};for(let[i,a]of Object.entries(t)){if(!a)continue;let t=v(i),o=v(e),s=Object.entries(h[t].fields).filter(([e,t])=>t.references&&v(t.references.model)===o),c=!0;if(s.length||(s=Object.entries(h[o].fields).filter(([e,n])=>n.references&&v(n.references.model)===t),c=!1),!s.length)throw new d(`No foreign key found for model ${i} and base model ${e} while performing join operation.`);if(s.length>1)throw new d(`Multiple foreign keys found for model ${i} and base model ${e} while performing join operation. Only one foreign key is supported.`);let[l,f]=s[0];if(!f.references)throw new d(`No references found for foreign key ${l} on model ${i} while performing join operation.`);let p,m,g;c?(g=f.references.field,p=E({model:e,field:g}),m=E({model:i,field:l})):(g=l,p=E({model:e,field:g}),m=E({model:i,field:f.references.field})),n&&!n.includes(g)&&n.push(g);let _=m===`id`?!0:f.unique??!1,y=u.advanced?.database?.defaultFindManyLimit??100;_?y=1:typeof a==`object`&&typeof a.limit==`number`&&(y=a.limit),r[T(i)]={modelKey:i,on:{from:p,to:m},limit:y,relation:_?`one-to-one`:`one-to-many`}}return{join:r,select:n}},V=async({baseModel:e,baseData:t,joinModel:n,specificJoinConfig:r})=>{if(!t)return t;let a=r.modelKey??v(n),o=T(a),s=r.on.to,c=t[w({field:r.on.from,model:e})];if(c==null)return r.relation===`one-to-one`?null:[];let d,p=z({model:a,where:[{field:s,value:c,operator:`eq`,connector:`AND`}],action:`findOne`});try{if(r.relation===`one-to-one`)d=await f(`db findOne ${o}`,{[i]:`findOne`,[l]:o},()=>H.findOne({model:o,modelKey:a,where:p}));else{let e=r.limit??u.advanced?.database?.defaultFindManyLimit??100;d=await f(`db findMany ${o}`,{[i]:`findMany`,[l]:o},()=>H.findMany({model:o,modelKey:a,where:p,limit:e}))}}catch(e){throw _.error(`Failed to query fallback join for model ${o}:`,{where:p,limit:r.limit}),console.error(e),e}return d},H=e({options:u,schema:h,debugLog:g,getFieldName:E,getModelName:T,getDefaultModelName:v,getDefaultFieldName:w,getFieldAttributes:O,transformInput:N,transformOutput:R,transformWhereClause:z}),U=null,W=k({adapter:H,adapterId:m.adapterId,mapKeysTransformInput:m.mapKeysTransformInput,mapKeysTransformOutput:m.mapKeysTransformOutput,getFieldName:E,transformOutput:R,transformWhereClause:z}),G={transaction:async e=>(U||(m.transaction?(_.debug(`[${m.adapterName}] - Using provided transaction implementation.`),U=m.transaction):U=M(G)),U(e)),create:async({data:e,model:t,select:n,forceAllowId:r=!1})=>{j++;let a=j,o=v(t),s=T(o);if(`id`in e&&e.id!==void 0&&!r){_.warn(`[${m.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \`forceAllowId\` parameter. The id will be ignored.`);let t=(/* @__PURE__ */ Error()).stack?.split(`
|
|
2
2
|
`).filter((e,t)=>t!==1).join(`
|
|
3
|
-
`).replace(`Error:`,"Create method with `id` being called at:");console.log(t),e.id=void 0}g({method:`create`},`${P(
|
|
4
|
-
`])).reduce((e,t)=>[...t,...e],[`\n${e}`]);console.log(...n)}}}:{}};return G};function P(
|
|
3
|
+
`).replace(`Error:`,"Create method with `id` being called at:");console.log(t),e.id=void 0}g({method:`create`},`${P(a)} ${F(1,4)}`,`${I(`create`)} ${L(`Unsafe Input`)}:`,{model:s,data:e});let c=e;m.disableTransformInput||(c=await N(e,o,`create`,r)),g({method:`create`},`${P(a)} ${F(2,4)}`,`${I(`create`)} ${L(`Parsed Input`)}:`,{model:s,data:c});let u=await f(`db create ${s}`,{[i]:`create`,[l]:s},()=>H.create({data:c,model:s,modelKey:o}));g({method:`create`},`${P(a)} ${F(3,4)}`,`${I(`create`)} ${L(`DB Result`)}:`,{model:s,res:u});let d=u;return m.disableTransformOutput||(d=await R(u,o,n,void 0)),g({method:`create`},`${P(a)} ${F(4,4)}`,`${I(`create`)} ${L(`Parsed Result`)}:`,{model:s,data:d}),d},update:async({model:e,where:t,update:n})=>{j++;let r=j,a=v(e),o=T(a),s=z({model:a,where:t,action:`update`});if(s.length===0)return null;g({method:`update`},`${P(r)} ${F(1,4)}`,`${I(`update`)} ${L(`Unsafe Input`)}:`,{model:o,data:n});let c=n;m.disableTransformInput||(c=await N(n,a,`update`)),g({method:`update`},`${P(r)} ${F(2,4)}`,`${I(`update`)} ${L(`Parsed Input`)}:`,{model:o,data:c});let u=await f(`db update ${o}`,{[i]:`update`,[l]:o},()=>H.update({model:o,modelKey:a,where:s,update:c}));g({method:`update`},`${P(r)} ${F(3,4)}`,`${I(`update`)} ${L(`DB Result`)}:`,{model:o,data:u});let d=u;return m.disableTransformOutput||(d=await R(u,a,void 0,void 0)),g({method:`update`},`${P(r)} ${F(4,4)}`,`${I(`update`)} ${L(`Parsed Result`)}:`,{model:o,data:d}),d},updateMany:async({model:e,where:t,update:n})=>{j++;let r=j,a=v(e),o=T(a),s=z({model:a,where:t,action:`updateMany`});g({method:`updateMany`},`${P(r)} ${F(1,4)}`,`${I(`updateMany`)} ${L(`Unsafe Input`)}:`,{model:o,data:n});let c=n;m.disableTransformInput||(c=await N(n,a,`update`)),g({method:`updateMany`},`${P(r)} ${F(2,4)}`,`${I(`updateMany`)} ${L(`Parsed Input`)}:`,{model:o,data:c});let u=await f(`db updateMany ${o}`,{[i]:`updateMany`,[l]:o},()=>H.updateMany({model:o,modelKey:a,where:s,update:c}));if(typeof u!=`number`||!Number.isFinite(u))throw new d(`Adapter "${m.adapterId}" updateMany must return a finite number affected row count.`);return g({method:`updateMany`},`${P(r)} ${F(3,4)}`,`${I(`updateMany`)} ${L(`DB Result`)}:`,{model:o,data:u}),g({method:`updateMany`},`${P(r)} ${F(4,4)}`,`${I(`updateMany`)} ${L(`Parsed Result`)}:`,{model:o,data:u}),u},findOne:async({model:e,where:t,select:n,join:r})=>{j++;let a=j,o=v(e),s=T(o),c=z({model:o,where:t,action:`findOne`}),d,p=!0;if(m.disableTransformJoin)d=r;else{let e=B(o,r,n);e&&(d=e.join,n=e.select),!u.advanced?.database?.joins&&d&&Object.keys(d).length>0&&(p=!1)}g({method:`findOne`},`${P(a)} ${F(1,3)}`,`${I(`findOne`)}:`,{model:s,where:c,select:n,join:d});let h=await f(`db findOne ${s}`,{[i]:`findOne`,[l]:s},()=>H.findOne({model:s,modelKey:o,where:c,select:n,join:p?d:void 0}));g({method:`findOne`},`${P(a)} ${F(2,3)}`,`${I(`findOne`)} ${L(`DB Result`)}:`,{model:s,data:h});let _=h;return m.disableTransformOutput||(_=await R(h,o,n,d)),g({method:`findOne`},`${P(a)} ${F(3,3)}`,`${I(`findOne`)} ${L(`Parsed Result`)}:`,{model:s,data:_}),_},findMany:async({model:e,where:t,limit:n,select:r,sortBy:a,offset:o,join:s})=>{j++;let c=j,d=n??u.advanced?.database?.defaultFindManyLimit??100,p=v(e),h=T(p),_=z({model:p,where:t,action:`findMany`}),y,b=!0;if(m.disableTransformJoin)y=s;else{let e=B(p,s,r);e&&(y=e.join,r=e.select),!u.advanced?.database?.joins&&y&&Object.keys(y).length>0&&(b=!1)}g({method:`findMany`},`${P(c)} ${F(1,3)}`,`${I(`findMany`)}:`,{model:h,where:_,limit:d,sortBy:a,offset:o,join:y});let x=await f(`db findMany ${h}`,{[i]:`findMany`,[l]:h},()=>H.findMany({model:h,modelKey:p,where:_,limit:d,select:r,sortBy:a,offset:o,join:b?y:void 0}));g({method:`findMany`},`${P(c)} ${F(2,3)}`,`${I(`findMany`)} ${L(`DB Result`)}:`,{model:h,data:x});let S=x;return m.disableTransformOutput||(S=await Promise.all(x.map(async e=>await R(e,p,void 0,y)))),g({method:`findMany`},`${P(c)} ${F(3,3)}`,`${I(`findMany`)} ${L(`Parsed Result`)}:`,{model:h,data:S}),S},delete:async({model:e,where:t})=>{j++;let n=j,r=v(e),a=T(r),o=z({model:r,where:t,action:`delete`});g({method:`delete`},`${P(n)} ${F(1,2)}`,`${I(`delete`)}:`,{model:a,where:o}),await f(`db delete ${a}`,{[i]:`delete`,[l]:a},()=>H.delete({model:a,modelKey:r,where:o})),g({method:`delete`},`${P(n)} ${F(2,2)}`,`${I(`delete`)} ${L(`DB Result`)}:`,{model:a})},deleteMany:async({model:e,where:t})=>{j++;let n=j,r=v(e),a=T(r),o=z({model:r,where:t,action:`deleteMany`});g({method:`deleteMany`},`${P(n)} ${F(1,2)}`,`${I(`deleteMany`)} ${L(`DeleteMany`)}:`,{model:a,where:o});let s=await f(`db deleteMany ${a}`,{[i]:`deleteMany`,[l]:a},()=>H.deleteMany({model:a,modelKey:r,where:o}));return g({method:`deleteMany`},`${P(n)} ${F(2,2)}`,`${I(`deleteMany`)} ${L(`DB Result`)}:`,{model:a,data:s}),s},consumeOne:async({model:e,where:t})=>{j++;let n=j,r=v(e),a=T(r),o=z({model:r,where:t,action:`consumeOne`});g({method:`consumeOne`},`${P(n)} ${F(1,3)}`,`${I(`consumeOne`)} ${L(`ConsumeOne`)}:`,{model:a,where:o});let s=await f(`db consumeOne ${a}`,{[i]:`consumeOne`,[l]:a},()=>H.consumeOne?H.consumeOne({model:a,modelKey:r,where:o}):W.consumeOne({model:a,modelKey:r,where:o}));g({method:`consumeOne`},`${P(n)} ${F(2,3)}`,`${I(`consumeOne`)} ${L(`DB Result`)}:`,{model:a,data:s});let c=s;return!m.disableTransformOutput&&s&&(c=await R(s,r,void 0,void 0)),g({method:`consumeOne`},`${P(n)} ${F(3,3)}`,`${I(`consumeOne`)} ${L(`Parsed Result`)}:`,{model:a,data:c}),c},incrementOne:async({model:e,where:t,increment:n,set:r})=>{let a=Object.keys(n).length>0,o=!!r&&Object.keys(r).length>0;if(!a&&!o)throw new d("incrementOne requires a non-empty `increment` or `set`; both were empty.");j++;let s=j,c=v(e),u=T(c),p=z({model:c,where:t,action:`incrementOne`});g({method:`incrementOne`},`${P(s)} ${F(1,3)}`,`${I(`incrementOne`)} ${L(`IncrementOne`)}:`,{model:u,where:p,increment:n,set:r});let h=m.mapKeysTransformInput??{},_={};for(let[e,t]of Object.entries(n))_[h[e]||E({model:c,field:e})]=t;let y;if(y=r&&!m.disableTransformInput?await N(r,c,`update`):r,Object.keys(_).length===0&&(!y||Object.keys(y).length===0))throw new d(`incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.`);let b=await f(`db incrementOne ${u}`,{[i]:`incrementOne`,[l]:u},()=>H.incrementOne?H.incrementOne({model:u,modelKey:c,where:p,increment:_,set:y}):W.incrementOne({model:u,modelKey:c,where:p,increment:_,set:y}));g({method:`incrementOne`},`${P(s)} ${F(2,3)}`,`${I(`incrementOne`)} ${L(`DB Result`)}:`,{model:u,data:b});let x=b;return!m.disableTransformOutput&&b&&(x=await R(b,c,void 0,void 0)),g({method:`incrementOne`},`${P(s)} ${F(3,3)}`,`${I(`incrementOne`)} ${L(`Parsed Result`)}:`,{model:u,data:x}),x},count:async({model:e,where:t})=>{j++;let n=j,r=v(e),a=T(r),o=z({model:r,where:t,action:`count`});g({method:`count`},`${P(n)} ${F(1,2)}`,`${I(`count`)}:`,{model:a,where:o});let s=await f(`db count ${a}`,{[i]:`count`,[l]:a},()=>H.count({model:a,modelKey:r,where:o}));return g({method:`count`},`${P(n)} ${F(2,2)}`,`${I(`count`)}:`,{model:a,data:s}),s},createSchema:H.createSchema?async(e,t)=>{let r=n(u);return u.secondaryStorage&&!u.session?.storeSessionInDatabase&&delete r.session,H.createSchema({file:t,tables:r})}:void 0,options:{adapterConfig:m,...H.options??{}},id:m.adapterId,...m.debugLogs?.isRunningAdapterTests?{adapterTestDebugLogs:{resetDebugLogs(){A=A.filter(e=>e.instance!==p)},printDebugLogs(){let e=`─`.repeat(80),t=A.filter(e=>e.instance===p);if(t.length===0)return;let n=t.reverse().map(e=>(e.args[0]=`\n${e.args[0]}`,[...e.args,`
|
|
4
|
+
`])).reduce((e,t)=>[...t,...e],[`\n${e}`]);console.log(...n)}}}:{}};return G};function P(t){return e()<8?`#${t}`:`${a.fg.magenta}#${t}${a.reset}`}function F(e,t){return`${a.bg.black}${a.fg.yellow}[${e}/${t}]${a.reset}`}function I(e){return`${a.bright}${e}${a.reset}`}function L(e){return`${a.dim}(${e})${a.reset}`}export{S as n,x as r,N as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{N as e}from"./schemas-CYWNDEcx.mjs";const t=Symbol.for(`better-auth:global`);let n=null;const r={},i=`1.7.10`;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`;function Le(){let e={end(){},setAttribute(e,t){},setStatus(e){},recordException(e){},updateName(t){return e}};return e}function Re(e){function t(t,...n){let r=n[n.length-1];return r(e)}return{startActiveSpan:t}}function ze(){let e=Re(Le());return{getTracer(t,n){return e},getActiveSpan(){}}}function Be(){return{SpanStatusCode:{UNSET:0,OK:1,ERROR:2},trace:ze()}}const Ve=Be();function He(e,t,n){return n()}let Ue,J;async function We(){try{J=await import(`./esm-CdWTLqG7.mjs`)}catch{}}function Y(){return Ue||=We(),J??Ve}function Ge(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();Ge(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 Ke(e,t,n){let{trace:r}=Y();return r.getTracer(`better-auth`,`1.7.10`).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 qe(e){return e.experimental?.instrumentation?.enabled===!1?He:Ke}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 Je(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 Ye=({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-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(`
|
|
2
2
|
`).filter((e,t)=>t!==1).join(`
|
|
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{
|
|
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-
|
|
1
|
+
export{t as startDisposableIssuer}from"./src-dv9-ePIU.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{t as createKyselyAdapter,a as kyselyAdapter}from"./dist-CLLAHXOK.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as e,S as t,b as n,c as r}from"./schemas-
|
|
1
|
+
import{M as e,S as t,b as n,c as r}from"./schemas-lRZfTY17.mjs";import{t as i}from"./access-CGVwFSPz.mjs";const a=i({organization:[`update`,`delete`],member:[`create`,`update`,`delete`],invitation:[`create`,`cancel`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),o={admin:a.newRole({organization:[`update`],invitation:[`create`,`cancel`],member:[`create`,`update`,`delete`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),owner:a.newRole({organization:[`update`,`delete`],member:[`create`,`update`,`delete`],invitation:[`create`,`cancel`],team:[`create`,`update`,`delete`],ac:[`create`,`read`,`update`,`delete`]}),member:a.newRole({organization:[],member:[],invitation:[],team:[],ac:[`read`]})},s=(e,t)=>{if(!e.permissions)return!1;let n=e.role.split(`,`),r=e.options.creatorRole||`owner`,i=n.includes(r),a=e.allowCreatorAllPermissions||!1;if(i&&a)return!0;for(let r of n)if(t[r]?.authorize(e.permissions)?.success)return!0;return!1},c=/* @__PURE__ */ new Map,l=n(t(),r(t())),u=async(t,n)=>{let r={...t.options.roles||o};if(n&&t.organizationId&&t.options.dynamicAccessControl?.enabled&&t.options.ac&&!t.useMemoryCache){let i=await n.context.adapter.findMany({model:`organizationRole`,where:[{field:`organizationId`,value:t.organizationId}]});for(let{role:a,permission:o}of i){let i=JSON.parse(o),s=l.safeParse(i);if(!s.success)throw n.context.logger.error(`[hasPermission] Invalid permissions for role `+a,{permissions:i}),new e(`INTERNAL_SERVER_ERROR`,{message:`Invalid permissions for role `+a});let c={...r[a]?.statements};for(let[e,t]of Object.entries(s.data))c[e]=[.../* @__PURE__ */ new Set([...c[e]??[],...t])];r[a]=t.options.ac.newRole(c)}}return t.useMemoryCache&&(r=c.get(t.organizationId)||r),c.set(t.organizationId,r),s(t,r)};export{u as hasPermission};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
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(`
|
|
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,6 +1,6 @@
|
|
|
1
1
|
function e(){let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.prototype.hasOwnProperty.call(e,`writable`)?e.writable:e.set!==void 0}function t(e){let t=e.split(`
|
|
2
2
|
at `);return t.length<=1?e:(t.splice(1,1),t.join(`
|
|
3
|
-
at `))}function n(n,r){class i extends n{#e;constructor(...n){if(e()){let e=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...n),Error.stackTraceLimit=e}else super(...n);let r=(/* @__PURE__ */ Error()).stack;r&&(this.#e=t(r.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(i.prototype,"constructor",{get(){return r},enumerable:!1,configurable:!0}),i}const r={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};var i=class extends Error{status;body;headers;statusCode;constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},i=typeof e==`number`?e:r[e]){super(t?.message,t?.cause?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=i,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=i,this.body=t}},a=class extends i{message;issues;constructor(e,t){super(400,{message:e,code:`VALIDATION_ERROR`}),this.message=e,this.issues=t,this.issues=t}},o=class extends Error{constructor(e){super(e),this.name=`BetterCallError`}};const s=Symbol.for(`better-call:api-error-headers`),c=n(i,Error);var l=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}},u=class e extends c{constructor(...e){super(...e)}static fromStatus(t,n){return new e(t,n)}static from(t,n){return new e(t,{message:n.message,code:n.code})}};function d(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function f(e,t=`|`){return e.map(e=>me(e)).join(t)}function p(e,t){return typeof t==`bigint`?t.toString():t}var m=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function h(e){return new m(e)}function ee(e){return e==null}function te(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function ne(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function g(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function re(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function _(e){return re(e._zod.def)??e._zod.def.shape}function ie(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return g(this,t,e),e},enumerable:!0,configurable:!0})}function ae(e,t,n){t in e?g(e,t,n):e[t]=n}function v(e,t,n,r){let i=_(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?ie(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):ae(e,a,r?r(n.value,a):n.value))}}function oe(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?ie(e,n,()=>t[n]):ae(e,n,r.value))}}function y(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function se(e){return JSON.stringify(e)}function ce(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const le=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function ue(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const de=/* @__PURE__*/ h(()=>{if(P.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function b(e){if(ue(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return ue(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function fe(e){return b(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const pe=/* @__PURE__*/ new Set([`string`,`number`,`symbol`]);function x(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function S(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function C(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function me(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function he(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}const ge={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},_e={int64:[/* @__PURE__*/ BigInt(`-9223372036854775808`),/* @__PURE__*/ BigInt(`9223372036854775807`)],uint64:[/* @__PURE__*/ BigInt(0),/* @__PURE__*/ BigInt(`18446744073709551615`)]};function ve(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return v(i,e,ye(e,t)),S(e,y(n,{shape:i,checks:[]}))}function ye(e,t){let n=_(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function be(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(ye(e,t)),a={};return v(a,e,Reflect.ownKeys(_(e)).filter(e=>!i.has(e))),S(e,y(n,{shape:a,checks:[]}))}function xe(e,t){if(!b(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=_(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return S(e,y(e._zod.def,{shape:Se(e,t)}))}function Se(e,t){let n={};return v(n,e,Reflect.ownKeys(_(e))),oe(n,t),n}function Ce(e,t){if(!b(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return S(e,y(e._zod.def,{shape:Se(e,t)}))}function we(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return v(n,e,Reflect.ownKeys(_(e))),v(n,t,Reflect.ownKeys(_(t))),S(e,y(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Te(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(ye(t,n)):void 0,o={};return v(o,t,Reflect.ownKeys(_(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),S(t,y(t._zod.def,{shape:o,checks:[]}))}function Ee(e,t,n){let r=n?new Set(ye(t,n)):void 0,i={};return v(i,t,Reflect.ownKeys(_(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),S(t,y(t._zod.def,{shape:i}))}function w(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function De(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function T(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function E(e){return typeof e==`string`?e:e?.message}function Oe(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function D(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:E(e.inst?._zod.def?.error?.(e))??E(a?.(e))??E(t?.error?.(e))??E(n.customError?.(e))??E(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}const ke=/[\uD800-\uDBFF]/;function Ae(e){let t=e.length;if(!ke.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function je(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Me(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function O(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Ne(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ie(e,n,r.value)}}function k(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Pe(e,t,n){return k(e,t,n,!1)}/* @__NO_SIDE_EFFECTS__ */
|
|
3
|
+
at `))}function n(n,r){class i extends n{#e;constructor(...n){if(e()){let e=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...n),Error.stackTraceLimit=e}else super(...n);let r=(/* @__PURE__ */ Error()).stack;r&&(this.#e=t(r.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(i.prototype,"constructor",{get(){return r},enumerable:!1,configurable:!0}),i}const r={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};var i=class extends Error{status;body;headers;statusCode;constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},i=typeof e==`number`?e:r[e]){if(super(t?.message,t&&`cause`in t?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=i,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=i,t&&`cause`in t){let{cause:e,...n}=t;this.body=Object.defineProperty(n,"cause",{value:e,writable:!0,configurable:!0})}else this.body=t}},a=class extends i{message;issues;constructor(e,t){super(400,{message:e,code:`VALIDATION_ERROR`}),this.message=e,this.issues=t,this.issues=t}},o=class extends Error{constructor(e){super(e),this.name=`BetterCallError`}};const s=Symbol.for(`better-call:api-error-headers`),c=n(i,Error);var l=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}},u=class e extends c{constructor(...e){super(...e)}static fromStatus(t,n){return new e(t,n)}static from(t,n,r){let{code:i,message:a}=n;return r?.cause===void 0?new e(t,{message:a,code:i}):new e(t,{message:a,code:i,cause:r.cause})}};function d(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function f(e,t=`|`){return e.map(e=>me(e)).join(t)}function p(e,t){return typeof t==`bigint`?t.toString():t}var m=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function h(e){return new m(e)}function ee(e){return e==null}function te(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function ne(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function g(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function re(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function _(e){return re(e._zod.def)??e._zod.def.shape}function ie(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return g(this,t,e),e},enumerable:!0,configurable:!0})}function ae(e,t,n){t in e?g(e,t,n):e[t]=n}function v(e,t,n,r){let i=_(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?ie(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):ae(e,a,r?r(n.value,a):n.value))}}function oe(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?ie(e,n,()=>t[n]):ae(e,n,r.value))}}function y(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function se(e){return JSON.stringify(e)}function ce(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const le=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function ue(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const de=/* @__PURE__*/ h(()=>{if(P.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function b(e){if(ue(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return ue(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function fe(e){return b(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const pe=/* @__PURE__*/ new Set([`string`,`number`,`symbol`]);function x(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function S(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function C(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function me(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function he(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}const ge={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},_e={int64:[/* @__PURE__*/ BigInt(`-9223372036854775808`),/* @__PURE__*/ BigInt(`9223372036854775807`)],uint64:[/* @__PURE__*/ BigInt(0),/* @__PURE__*/ BigInt(`18446744073709551615`)]};function ve(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return v(i,e,ye(e,t)),S(e,y(n,{shape:i,checks:[]}))}function ye(e,t){let n=_(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function be(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(ye(e,t)),a={};return v(a,e,Reflect.ownKeys(_(e)).filter(e=>!i.has(e))),S(e,y(n,{shape:a,checks:[]}))}function xe(e,t){if(!b(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=_(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return S(e,y(e._zod.def,{shape:Se(e,t)}))}function Se(e,t){let n={};return v(n,e,Reflect.ownKeys(_(e))),oe(n,t),n}function Ce(e,t){if(!b(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return S(e,y(e._zod.def,{shape:Se(e,t)}))}function we(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return v(n,e,Reflect.ownKeys(_(e))),v(n,t,Reflect.ownKeys(_(t))),S(e,y(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Te(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(ye(t,n)):void 0,o={};return v(o,t,Reflect.ownKeys(_(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),S(t,y(t._zod.def,{shape:o,checks:[]}))}function Ee(e,t,n){let r=n?new Set(ye(t,n)):void 0,i={};return v(i,t,Reflect.ownKeys(_(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),S(t,y(t._zod.def,{shape:i}))}function w(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function De(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function T(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function E(e){return typeof e==`string`?e:e?.message}function Oe(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function D(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:E(e.inst?._zod.def?.error?.(e))??E(a?.(e))??E(t?.error?.(e))??E(n.customError?.(e))??E(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}const ke=/[\uD800-\uDBFF]/;function Ae(e){let t=e.length;if(!ke.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function je(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Me(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function O(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Ne(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ie(e,n,r.value)}}function k(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Pe(e,t,n){return k(e,t,n,!1)}/* @__NO_SIDE_EFFECTS__ */
|
|
4
4
|
function Fe(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return k(this,n,r(this))},set(e){k(this,n,e)}})}return t}function Ie(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:k(this,t,n.bind(this))},set(e){k(this,t,e)}})}function Le(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}let Re,A=!1;const ze={configurable:!0,get(){A=!0}};function j(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&Re!==e._zod?Re=void 0:(Re=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,ze);let e=A;A=!1;try{let r=n(this);return A?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),A||=e,r}catch(n){throw delete this[t],A||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function Be(e,t,n,r){let i=Le(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function Ve(e){let t=()=>e;return t[`~constantCatch`]=!0,t}var He;const Ue=/*@__PURE__*/ Object.freeze({status:`aborted`}),We={value:void 0,enumerable:!1};let Ge=`captureStackTrace`in Error?Error:null;function Ke(e){let t=Ge;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return Ge=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}/* @__NO_SIDE_EFFECTS__ */
|
|
5
5
|
function M(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=/* @__PURE__ */ new Set}a.prototype=i;let o=n,s=o&&/* @__PURE__ */ new WeakSet;function c(n,r){if(!n._zod){We.value=new a(r);try{Object.defineProperty(n,"_zod",We)}finally{We.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Ne(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?Ke(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var N=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},qe=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(He=globalThis).__zod_globalConfig??(He.__zod_globalConfig={});const P=globalThis.__zod_globalConfig;function F(e){return e&&Object.assign(P,e),P}function Je(){let e=this._zod;return e.message??=JSON.stringify(e.def,p,2),e.message}function Ye(e){this._zod.message=e}const Xe={get:Je,set:Ye,enumerable:!0,configurable:!0},Ze={value:void 0,enumerable:!1},Qe=/* @__PURE__ */ new WeakSet([Object.prototype,Error.prototype]),$e=/* @__PURE__ */ M(`$ZodError`,(e,t)=>{e.name=`$ZodError`,Ze.value=t,Object.defineProperty(e,"issues",Ze),Ze.value=void 0,Object.defineProperty(e,"message",Xe);let n=Object.getPrototypeOf(e);Qe.has(n)||(Qe.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))});function et(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function tt(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?et(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function nt(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function rt(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function I(e,t){return{callee:t?.callee??e,Err:t?.Err}}const it=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new N;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>D(e,o,F())));throw le(n,a?.callee??t),n}return s.value};return t},at=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>D(e,o,F())));throw le(n,a?.callee??t),n}return s.value};return t},ot=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new N;return a.issues.length?st(e,a.issues,i):{success:!0,data:a.value}};function st(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>D(e,n,F()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}const ct=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?st(e,a.issues,i):{success:!0,data:a.value}},lt=/* @__PURE__ */ Symbol.for(`zod.compile.invalid`),ut=/* @__PURE__ */ Symbol.for(`zod.compile.fallback`),dt=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==lt)return!0;if(r.definite===!0&&n===void 0)return!1}return ft(e,t,n)});function ft(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[ut]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new N;return a.issues.length===0}const pt=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},mt=e=>{let t=it(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,I(n,a))};return n},ht=e=>{let t=it(e),n=(e,r,i,a)=>t(e,r,i,I(n,a));return n},gt=e=>{let t=at(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,I(n,a))};return n},_t=e=>{let t=at(e),n=async(e,r,i,a)=>await t(e,r,i,I(n,a));return n},vt=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ot(e)(t,n,i)},yt=e=>(t,n,r)=>ot(e)(t,n,r),bt=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ct(e)(t,n,i)},xt=e=>async(t,n,r)=>ct(e)(t,n,r),St=/^[cC][0-9a-z]{6,}$/,Ct=/^[0-9a-z]+$/,wt=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Tt=/^[0-9a-vA-V]{20}$/,Et=/^[A-Za-z0-9]{27}$/,Dt=/^[a-zA-Z0-9_-]{21}$/;function Ot(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const kt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,At=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,jt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Mt=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function Nt(){return/* @__PURE__ */ RegExp(`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,`u`)}const Pt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ft=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,It=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Lt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Rt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,zt=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Bt=/^https?$/,Vt=/^\+[1-9]\d{6,14}$/,Ht=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function Ut(e){return RegExp(`^${e}$`)}const Wt=/*@__PURE__*/ Ut(Ht);function Gt(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Kt(e){return RegExp(`^${Gt(e)}$`)}function qt(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${Gt({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${Gt({precision:e.precision})}`:n;return RegExp(`^${Ht}T(?:${r})$`)}const Jt=/^[\s\S]{0,}$/,Yt=/^-?\d+$/,Xt=/^-?\d+(?:\.\d+)?$/,Zt=/^(?:true|false)$/i,Qt=/^[^A-Z]*$/,$t=/^[^a-z]*$/,L=/*@__PURE__*/ M(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),en=e=>{let t=e.value;return!ee(t)&&t.length!==void 0},tn={number:`number`,bigint:`bigint`,object:`date`},nn=/*@__PURE__*/ M(`$ZodCheckLessThan`,(e,t)=>{L.init(e,t);let n=tn[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:tn[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),rn=/*@__PURE__*/ M(`$ZodCheckGreaterThan`,(e,t)=>{L.init(e,t);let n=tn[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:tn[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),an=/*@__PURE__*/ M(`$ZodCheckMultipleOf`,(e,t)=>{L.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):ne(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),on=/*@__PURE__*/ M(`$ZodCheckNumberFormat`,(e,t)=>{L.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ge[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),sn=/*@__PURE__*/ M(`$ZodCheckMaxLength`,(e,t)=>{var n;L.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?Ae(r):i)<=t.maximum)return;let a=je(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),cn=/*@__PURE__*/ M(`$ZodCheckMinLength`,(e,t)=>{var n;L.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?Ae(r):i)>=t.minimum)return;let a=je(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ln=/*@__PURE__*/ M(`$ZodCheckLengthEquals`,(e,t)=>{var n;L.init(e,t),(n=e._zod.def).when??(n.when=en),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?Ae(r):i;if(a===t.length)return;let o=je(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),un=/*@__PURE__*/ M(`$ZodCheckStringFormat`,(e,t)=>{var n,r;L.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),dn=/*@__PURE__*/ M(`$ZodCheckRegex`,(e,t)=>{un.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),fn=/*@__PURE__*/ M(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Qt,un.init(e,t)}),pn=/*@__PURE__*/ M(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=$t,un.init(e,t)}),mn=/*@__PURE__*/ M(`$ZodCheckIncludes`,(e,t)=>{L.init(e,t);let n=x(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),hn=/*@__PURE__*/ M(`$ZodCheckStartsWith`,(e,t)=>{L.init(e,t);let n=RegExp(`^${x(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),gn=/*@__PURE__*/ M(`$ZodCheckEndsWith`,(e,t)=>{L.init(e,t);let n=RegExp(`.*${x(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),_n=/*@__PURE__*/ M(`$ZodCheckOverwrite`,(e,t)=>{L.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var vn=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
6
6
|
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
|